agent-insight 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (832) hide show
  1. package/.env.example +6 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +9 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +51 -3
  6. package/.next/standalone/.next/routes-manifest.json +60 -0
  7. package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(main)/agents/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(main)/eval/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(main)/quality/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/(main)/skill-eval/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/(main)/skills/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/(main)/version-analysis/page/app-paths-manifest.json +3 -0
  60. package/.next/standalone/.next/server/app/(main)/version-analysis/page/build-manifest.json +17 -0
  61. package/.next/standalone/.next/server/app/(main)/version-analysis/page/next-font-manifest.json +6 -0
  62. package/.next/standalone/.next/server/app/(main)/version-analysis/page/react-loadable-manifest.json +1 -0
  63. package/.next/standalone/.next/server/app/(main)/version-analysis/page/server-reference-manifest.json +4 -0
  64. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js +17 -0
  65. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.map +5 -0
  66. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.nft.json +1 -0
  67. package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +2 -0
  68. package/.next/standalone/.next/server/app/(main)/version-management/page/app-paths-manifest.json +3 -0
  69. package/.next/standalone/.next/server/app/(main)/version-management/page/build-manifest.json +17 -0
  70. package/.next/standalone/.next/server/app/(main)/version-management/page/next-font-manifest.json +6 -0
  71. package/.next/standalone/.next/server/app/(main)/version-management/page/react-loadable-manifest.json +1 -0
  72. package/.next/standalone/.next/server/app/(main)/version-management/page/server-reference-manifest.json +4 -0
  73. package/.next/standalone/.next/server/app/(main)/version-management/page.js +17 -0
  74. package/.next/standalone/.next/server/app/(main)/version-management/page.js.map +5 -0
  75. package/.next/standalone/.next/server/app/(main)/version-management/page.js.nft.json +1 -0
  76. package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +2 -0
  77. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  78. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  79. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  86. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  87. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  88. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  90. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  93. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  94. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
  95. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
  96. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
  99. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
  100. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
  102. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  104. package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
  105. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
  106. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
  109. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
  110. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
  112. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
  114. package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
  115. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
  119. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
  120. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
  122. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  124. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
  125. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
  126. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
  129. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
  130. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
  132. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  134. package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
  135. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
  138. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
  139. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
  141. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
  142. package/.next/standalone/.next/server/app/agents.html +1 -1
  143. package/.next/standalone/.next/server/app/agents.rsc +5 -5
  144. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  145. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  146. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  147. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  148. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  150. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  151. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js +10 -10
  165. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js +6 -6
  170. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/eval/config/route.js +6 -6
  174. package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js +6 -6
  178. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js +5 -5
  184. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +13 -13
  186. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/fleet/agent/route/app-paths-manifest.json +3 -0
  193. package/.next/standalone/.next/server/app/api/fleet/agent/route/build-manifest.json +11 -0
  194. package/.next/standalone/.next/server/app/api/fleet/agent/route/server-reference-manifest.json +4 -0
  195. package/.next/standalone/.next/server/app/api/fleet/agent/route.js +8 -0
  196. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.map +5 -0
  197. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.nft.json +1 -0
  198. package/.next/standalone/.next/server/app/api/fleet/agent/route_client-reference-manifest.js +2 -0
  199. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/fleet/trends/route.js +2 -2
  202. package/.next/standalone/.next/server/app/api/fleet/trends/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js +3 -3
  205. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js +5 -5
  209. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js +9 -9
  212. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/ingest/upload/route.js +8 -8
  217. package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/app-paths-manifest.json +3 -0
  219. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/build-manifest.json +11 -0
  220. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/server-reference-manifest.json +4 -0
  221. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js +8 -0
  222. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.map +5 -0
  223. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.nft.json +1 -0
  224. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route_client-reference-manifest.js +2 -0
  225. package/.next/standalone/.next/server/app/api/observe/data/route.js +3 -3
  226. package/.next/standalone/.next/server/app/api/observe/data/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js +13 -13
  229. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/app-paths-manifest.json +3 -0
  233. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/build-manifest.json +11 -0
  234. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/server-reference-manifest.json +4 -0
  235. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js +8 -0
  236. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.map +5 -0
  237. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.nft.json +1 -0
  238. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route_client-reference-manifest.js +2 -0
  239. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js +3 -3
  248. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/app-paths-manifest.json +3 -0
  250. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/build-manifest.json +11 -0
  251. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/server-reference-manifest.json +4 -0
  252. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +8 -0
  253. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.map +5 -0
  254. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -0
  255. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route_client-reference-manifest.js +2 -0
  256. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/app-paths-manifest.json +3 -0
  257. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/build-manifest.json +11 -0
  258. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/server-reference-manifest.json +4 -0
  259. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +8 -0
  260. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.map +5 -0
  261. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -0
  262. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route_client-reference-manifest.js +2 -0
  263. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +5 -5
  264. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/quality/agents/route.js +7 -7
  266. package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
  267. package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/quality/executions/route.js +7 -7
  269. package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
  270. package/.next/standalone/.next/server/app/api/quality/report/route.js.nft.json +1 -1
  271. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js.nft.json +1 -1
  273. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js.nft.json +1 -1
  277. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  279. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js.nft.json +1 -1
  280. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  282. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  283. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js.nft.json +1 -1
  285. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js.nft.json +1 -1
  288. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js.nft.json +1 -1
  289. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
  291. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  294. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js +7 -7
  295. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
  296. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js +2 -2
  297. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
  298. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  300. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js.nft.json +1 -1
  301. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  303. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  304. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  306. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  307. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
  309. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
  310. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  312. package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -6
  313. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
  315. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  316. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  318. package/.next/standalone/.next/server/app/api/tags/[id]/route/app-paths-manifest.json +3 -0
  319. package/.next/standalone/.next/server/app/api/tags/[id]/route/build-manifest.json +11 -0
  320. package/.next/standalone/.next/server/app/api/tags/[id]/route/server-reference-manifest.json +4 -0
  321. package/.next/standalone/.next/server/app/api/tags/[id]/route.js +8 -0
  322. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.map +5 -0
  323. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.nft.json +1 -0
  324. package/.next/standalone/.next/server/app/api/tags/[id]/route_client-reference-manifest.js +2 -0
  325. package/.next/standalone/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  326. package/.next/standalone/.next/server/app/api/tags/route/build-manifest.json +11 -0
  327. package/.next/standalone/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  328. package/.next/standalone/.next/server/app/api/tags/route.js +8 -0
  329. package/.next/standalone/.next/server/app/api/tags/route.js.map +5 -0
  330. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -0
  331. package/.next/standalone/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  332. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  333. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  334. package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
  335. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  336. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
  338. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  339. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  340. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  341. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  342. package/.next/standalone/.next/server/app/dataset.html +1 -1
  343. package/.next/standalone/.next/server/app/dataset.rsc +5 -5
  344. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  345. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
  348. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
  350. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
  351. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  352. package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
  353. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  355. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  356. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
  357. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
  358. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
  360. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
  361. package/.next/standalone/.next/server/app/eval.html +1 -1
  362. package/.next/standalone/.next/server/app/eval.rsc +5 -5
  363. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  365. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
  366. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
  367. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  368. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
  369. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
  370. package/.next/standalone/.next/server/app/fault.html +1 -1
  371. package/.next/standalone/.next/server/app/fault.rsc +5 -5
  372. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  373. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  374. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
  375. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
  376. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  377. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
  378. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
  379. package/.next/standalone/.next/server/app/index.html +1 -1
  380. package/.next/standalone/.next/server/app/index.rsc +3 -3
  381. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  382. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  383. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  384. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  385. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  386. package/.next/standalone/.next/server/app/infra/sources.html +1 -1
  387. package/.next/standalone/.next/server/app/infra/sources.rsc +5 -5
  388. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +2 -2
  389. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
  390. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
  391. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +2 -2
  392. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +5 -5
  393. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
  394. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +3 -3
  395. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -2
  396. package/.next/standalone/.next/server/app/infra.html +1 -1
  397. package/.next/standalone/.next/server/app/infra.rsc +5 -5
  398. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +2 -2
  399. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +2 -2
  401. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +5 -5
  402. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +3 -3
  404. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -2
  405. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  406. package/.next/standalone/.next/server/app/login.html +1 -1
  407. package/.next/standalone/.next/server/app/login.rsc +4 -4
  408. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  409. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  410. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  411. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  412. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  413. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  414. package/.next/standalone/.next/server/app/memory.html +1 -1
  415. package/.next/standalone/.next/server/app/memory.rsc +5 -5
  416. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
  417. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  418. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
  419. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
  420. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  421. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  422. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  423. package/.next/standalone/.next/server/app/metrics.html +1 -1
  424. package/.next/standalone/.next/server/app/metrics.rsc +5 -5
  425. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  426. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  427. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
  428. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
  429. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  430. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
  431. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
  432. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  433. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
  434. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  435. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  436. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  437. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
  438. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
  439. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  440. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
  441. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
  442. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  443. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
  444. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  445. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  446. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  447. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
  448. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
  449. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  450. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
  451. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
  452. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  453. package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
  454. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  455. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  456. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
  457. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
  458. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  459. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
  460. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
  461. package/.next/standalone/.next/server/app/optapi.html +1 -1
  462. package/.next/standalone/.next/server/app/optapi.rsc +5 -5
  463. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
  464. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  465. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
  466. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
  467. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  468. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
  469. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
  470. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  471. package/.next/standalone/.next/server/app/quality.html +1 -1
  472. package/.next/standalone/.next/server/app/quality.rsc +5 -5
  473. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  474. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  475. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
  476. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +5 -5
  477. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  478. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
  479. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
  480. package/.next/standalone/.next/server/app/security.html +1 -1
  481. package/.next/standalone/.next/server/app/security.rsc +5 -5
  482. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
  483. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  484. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
  485. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
  486. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  487. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
  488. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
  489. package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
  490. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  491. package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
  492. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
  493. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  494. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
  495. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
  496. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
  497. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  498. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  499. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +6 -6
  500. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  501. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  502. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  503. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
  504. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +6 -6
  505. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  506. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
  507. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
  508. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  509. package/.next/standalone/.next/server/app/skill-eval.rsc +6 -6
  510. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  511. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  512. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
  513. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +6 -6
  514. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  515. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
  516. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
  517. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  518. package/.next/standalone/.next/server/app/skill-generator.rsc +5 -5
  519. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  520. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  521. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
  522. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +5 -5
  523. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  524. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
  525. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
  526. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  527. package/.next/standalone/.next/server/app/skill-history.rsc +6 -6
  528. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  529. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  530. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
  531. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +6 -6
  532. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  533. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
  534. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
  535. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  536. package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
  537. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  538. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  539. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
  540. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
  541. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  542. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
  543. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
  544. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  545. package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
  546. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
  547. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  548. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
  549. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
  550. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  551. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
  552. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
  553. package/.next/standalone/.next/server/app/skills.html +1 -1
  554. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  555. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  556. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  557. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
  558. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  559. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  560. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  561. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  562. package/.next/standalone/.next/server/app/trace.html +1 -1
  563. package/.next/standalone/.next/server/app/trace.rsc +7 -7
  564. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  565. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  566. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
  567. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +7 -7
  568. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  569. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
  570. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
  571. package/.next/standalone/.next/server/app/version-analysis.html +1 -0
  572. package/.next/standalone/.next/server/app/version-analysis.meta +16 -0
  573. package/.next/standalone/.next/server/app/version-analysis.rsc +23 -0
  574. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +9 -0
  575. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +4 -0
  576. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +7 -0
  577. package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +23 -0
  578. package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +6 -0
  579. package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +6 -0
  580. package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -0
  581. package/.next/standalone/.next/server/app/version-management.html +1 -0
  582. package/.next/standalone/.next/server/app/version-management.meta +16 -0
  583. package/.next/standalone/.next/server/app/version-management.rsc +22 -0
  584. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +9 -0
  585. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +4 -0
  586. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +7 -0
  587. package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +22 -0
  588. package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +6 -0
  589. package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +6 -0
  590. package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -0
  591. package/.next/standalone/.next/server/app-paths-manifest.json +9 -0
  592. package/.next/standalone/.next/server/chunks/[root-of-the-server]__096d00c3._.js +3 -0
  593. package/.next/standalone/.next/server/chunks/[root-of-the-server]__28078c4e._.js +1 -1
  594. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4509f30c._.js +1 -1
  595. package/.next/standalone/.next/server/chunks/[root-of-the-server]__51f686fd._.js +22 -0
  596. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5386e9b4._.js +22 -0
  597. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cb21a03._.js +3 -0
  598. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +1 -1
  599. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88e070f0._.js +1 -1
  600. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b872712._.js +22 -0
  601. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98ce63c7._.js +1 -1
  602. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f6a4627._.js +1 -1
  603. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c875b500._.js +3 -0
  604. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8b9af98._.js +1 -1
  605. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfcf074d._.js +3 -0
  606. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d754b2c2._.js +3 -0
  607. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e60b9568._.js +22 -0
  608. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b9c639._.js +22 -0
  609. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f30eea21._.js +3 -0
  610. package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
  611. package/.next/standalone/.next/server/chunks/_1c2f3589._.js +1 -1
  612. package/.next/standalone/.next/server/chunks/{_1a32fa23._.js → _5090183e._.js} +2 -2
  613. package/.next/standalone/.next/server/chunks/{_e84c3e5f._.js → _6a203624._.js} +1 -1
  614. package/.next/standalone/.next/server/chunks/{_a0074544._.js → _70b9b972._.js} +1 -1
  615. package/.next/standalone/.next/server/chunks/_78c6471e._.js +1 -1
  616. package/.next/standalone/.next/server/chunks/{_547fcde4._.js → _d02fac80._.js} +2 -2
  617. package/.next/standalone/.next/server/chunks/_d043f698._.js +1 -1
  618. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_fleet_agent_route_actions_b98e2c99.js +3 -0
  619. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_modelconfig_pricing_route_actions_bca6856d.js +3 -0
  620. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_[id]_route_actions_a6f8b324.js +3 -0
  621. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_caf13f5f.js +3 -0
  622. package/.next/standalone/.next/server/chunks/bec2d_app_api_observe_version-analysis_tags_[tagId]_traces_route_actions_ff37f2d3.js +3 -0
  623. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_tags_route_actions_08aa41a4.js +3 -0
  624. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_version-analysis_compare_route_actions_b48ab573.js +3 -0
  625. package/.next/standalone/.next/server/chunks/src_lib_266d6cf4._.js +51 -0
  626. package/.next/standalone/.next/server/chunks/src_lib_5d95b500._.js +3 -0
  627. package/.next/standalone/.next/server/chunks/src_lib_67530201._.js +51 -0
  628. package/.next/standalone/.next/server/chunks/src_lib_9513f84d._.js +48 -0
  629. package/.next/standalone/.next/server/chunks/src_lib_9d09752c._.js +1 -1
  630. package/.next/standalone/.next/server/chunks/src_lib_a03a423b._.js +48 -0
  631. package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
  632. package/.next/standalone/.next/server/chunks/{src_lib_4751db31._.js → src_lib_dc72b90b._.js} +1 -1
  633. package/.next/standalone/.next/server/chunks/src_lib_ea85a447._.js +1 -1
  634. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eb5d21d._.js +3 -0
  635. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__143c2f65._.js +3 -0
  636. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__85e7edfe._.js +3 -0
  637. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c9cf8076._.js → [root-of-the-server]__90686664._.js} +2 -2
  638. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__96628a39._.js +3 -0
  639. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c69baa4a._.js +3 -0
  640. package/.next/standalone/.next/server/chunks/ssr/_051b1443._.js +3 -0
  641. package/.next/standalone/.next/server/chunks/ssr/_0ae78458._.js +3 -0
  642. package/.next/standalone/.next/server/chunks/ssr/{_400d0da3._.js → _1278164d._.js} +2 -2
  643. package/.next/standalone/.next/server/chunks/ssr/_15e714f2._.js +3 -0
  644. package/.next/standalone/.next/server/chunks/ssr/_2f20fbfc._.js +3 -0
  645. package/.next/standalone/.next/server/chunks/ssr/_4e720925._.js +3 -0
  646. package/.next/standalone/.next/server/chunks/ssr/_5aa55aa6._.js +3 -0
  647. package/.next/standalone/.next/server/chunks/ssr/_8b68f69f._.js +3 -0
  648. package/.next/standalone/.next/server/chunks/ssr/_8d4b753e._.js +3 -0
  649. package/.next/standalone/.next/server/chunks/ssr/_976dfbab._.js +4 -0
  650. package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
  651. package/.next/standalone/.next/server/chunks/ssr/_be1ffbbf._.js +12 -0
  652. package/.next/standalone/.next/server/chunks/ssr/_c815e0e7._.js +4 -0
  653. package/.next/standalone/.next/server/chunks/ssr/_e4c81263._.js +3 -0
  654. package/.next/standalone/.next/server/chunks/ssr/{_a3d5f9bc._.js → _e5ee8977._.js} +2 -2
  655. package/.next/standalone/.next/server/chunks/ssr/_f634ea15._.js +12 -0
  656. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-analysis_page_actions_479d49a7.js +3 -0
  657. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-management_page_actions_aea5ae93.js +3 -0
  658. package/.next/standalone/.next/server/chunks/ssr/{node_modules_a443e166._.js → node_modules_3b1fd8eb._.js} +2 -2
  659. package/.next/standalone/.next/server/chunks/ssr/node_modules_7680a21d._.js +3 -0
  660. package/.next/standalone/.next/server/chunks/ssr/node_modules_bda25b86._.js +3 -0
  661. package/.next/standalone/.next/server/chunks/ssr/node_modules_bfffaa78._.js +3 -0
  662. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_2e7afafc._.js +3 -0
  663. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_cd0b182b._.js +3 -0
  664. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -3
  665. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_dashboard_page_tsx_7eac7774._.js +1 -1
  666. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_modelconfig_registry_page_tsx_1ead2fd4._.js +1 -1
  667. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_quality_page_tsx_26bb8e80._.js +1 -1
  668. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
  669. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-analysis_page_tsx_63ae8791._.js +3 -0
  670. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-management_page_tsx_87fe0372._.js +3 -0
  671. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_4c0f64d8._.js +1 -1
  672. package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
  673. package/.next/standalone/.next/server/pages/404.html +1 -1
  674. package/.next/standalone/.next/server/pages/500.html +2 -2
  675. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  676. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  677. package/.next/standalone/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  678. package/.next/standalone/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  679. package/.next/standalone/.next/static/chunks/0fe047909a490ef0.js +1 -0
  680. package/.next/standalone/.next/static/chunks/151b95e65092aa16.js +1 -0
  681. package/.next/standalone/.next/static/chunks/1624a1adcb73d784.js +1 -0
  682. package/.next/standalone/.next/static/chunks/1cb2cee6b2f89fb7.js +1 -0
  683. package/.next/standalone/.next/static/chunks/1f173de64ad85757.js +10 -0
  684. package/.next/standalone/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  685. package/.next/standalone/.next/static/chunks/25a9b2907e03a172.css +1 -0
  686. package/.next/standalone/.next/static/chunks/2fb55cc737806639.js +1 -0
  687. package/.next/standalone/.next/static/chunks/30a686796d86273c.js +1 -0
  688. package/.next/standalone/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  689. package/.next/standalone/.next/static/chunks/379315313d164a57.js +1 -0
  690. package/.next/standalone/.next/static/chunks/39157b51ed6489eb.js +1 -0
  691. package/.next/standalone/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  692. package/.next/standalone/.next/static/chunks/4b72abe72a9b6cd9.js +6 -0
  693. package/.next/standalone/.next/static/chunks/54538e1a80e53392.js +1 -0
  694. package/.next/standalone/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  695. package/.next/standalone/.next/static/chunks/63220d0acc5073cc.js +1 -0
  696. package/.next/standalone/.next/static/chunks/6da1d3424f804755.js +1 -0
  697. package/.next/standalone/.next/static/chunks/6e6f2418240877c6.js +1 -0
  698. package/.next/standalone/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  699. package/.next/standalone/.next/static/chunks/946d260668afc16b.js +1 -0
  700. package/.next/standalone/.next/static/chunks/97822ca2c186f93d.js +1 -0
  701. package/.next/{static/chunks/96c7e2e47438553a.js → standalone/.next/static/chunks/98588c35b1e00bea.js} +1 -1
  702. package/.next/standalone/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  703. package/.next/standalone/.next/static/chunks/b223106f6c610a67.js +1 -0
  704. package/.next/standalone/.next/static/chunks/b5e671771efd9e7d.js +1 -0
  705. package/.next/standalone/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  706. package/.next/standalone/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  707. package/.next/standalone/.next/static/chunks/d15d7f6146b85000.js +1 -0
  708. package/.next/standalone/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  709. package/.next/standalone/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  710. package/.next/standalone/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  711. package/.next/standalone/node_modules/.prisma/client/edge.js +26 -3
  712. package/.next/standalone/node_modules/.prisma/client/index-browser.js +23 -0
  713. package/.next/standalone/node_modules/.prisma/client/index.js +26 -3
  714. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  715. package/.next/standalone/node_modules/.prisma/client/schema.prisma +39 -0
  716. package/.next/standalone/node_modules/.prisma/client/wasm.js +23 -0
  717. package/.next/standalone/package.json +1 -1
  718. package/.next/standalone/prisma/schema.prisma +38 -0
  719. package/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  720. package/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  721. package/.next/static/chunks/0fe047909a490ef0.js +1 -0
  722. package/.next/static/chunks/151b95e65092aa16.js +1 -0
  723. package/.next/static/chunks/1624a1adcb73d784.js +1 -0
  724. package/.next/static/chunks/1cb2cee6b2f89fb7.js +1 -0
  725. package/.next/static/chunks/1f173de64ad85757.js +10 -0
  726. package/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  727. package/.next/static/chunks/25a9b2907e03a172.css +1 -0
  728. package/.next/static/chunks/2fb55cc737806639.js +1 -0
  729. package/.next/static/chunks/30a686796d86273c.js +1 -0
  730. package/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  731. package/.next/static/chunks/379315313d164a57.js +1 -0
  732. package/.next/static/chunks/39157b51ed6489eb.js +1 -0
  733. package/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  734. package/.next/static/chunks/4b72abe72a9b6cd9.js +6 -0
  735. package/.next/static/chunks/54538e1a80e53392.js +1 -0
  736. package/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  737. package/.next/static/chunks/63220d0acc5073cc.js +1 -0
  738. package/.next/static/chunks/6da1d3424f804755.js +1 -0
  739. package/.next/static/chunks/6e6f2418240877c6.js +1 -0
  740. package/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  741. package/.next/static/chunks/946d260668afc16b.js +1 -0
  742. package/.next/static/chunks/97822ca2c186f93d.js +1 -0
  743. package/.next/{standalone/.next/static/chunks/96c7e2e47438553a.js → static/chunks/98588c35b1e00bea.js} +1 -1
  744. package/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  745. package/.next/static/chunks/b223106f6c610a67.js +1 -0
  746. package/.next/static/chunks/b5e671771efd9e7d.js +1 -0
  747. package/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  748. package/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  749. package/.next/static/chunks/d15d7f6146b85000.js +1 -0
  750. package/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  751. package/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  752. package/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  753. package/package.json +1 -1
  754. package/prisma/schema.prisma +38 -0
  755. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2574e6ed._.js +0 -3
  756. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2710fb53._.js +0 -3
  757. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8cc92af1._.js +0 -3
  758. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d2e5f60._.js +0 -3
  759. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd3dc3ab._.js +0 -3
  760. package/.next/standalone/.next/server/chunks/src_lib_6cb48964._.js +0 -32
  761. package/.next/standalone/.next/server/chunks/src_lib_a3155704._.js +0 -3
  762. package/.next/standalone/.next/server/chunks/src_lib_baaf83ef._.js +0 -29
  763. package/.next/standalone/.next/server/chunks/src_lib_bf0ee699._.js +0 -32
  764. package/.next/standalone/.next/server/chunks/src_lib_dbf3c792._.js +0 -29
  765. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2ec2bb09._.js +0 -3
  766. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3cb83dc3._.js +0 -3
  767. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fc94ba06._.js +0 -3
  768. package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +0 -3
  769. package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +0 -3
  770. package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +0 -3
  771. package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +0 -12
  772. package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +0 -3
  773. package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +0 -12
  774. package/.next/standalone/.next/server/chunks/ssr/_b08dc931._.js +0 -3
  775. package/.next/standalone/.next/server/chunks/ssr/_c4db9cec._.js +0 -3
  776. package/.next/standalone/.next/server/chunks/ssr/node_modules_8bfa35b3._.js +0 -3
  777. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_30858f09._.js +0 -3
  778. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js +0 -3
  779. package/.next/standalone/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  780. package/.next/standalone/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  781. package/.next/standalone/.next/static/chunks/16047b19dda5c90d.js +0 -10
  782. package/.next/standalone/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  783. package/.next/standalone/.next/static/chunks/3d19f62114122bd3.js +0 -1
  784. package/.next/standalone/.next/static/chunks/3d6127f72467176d.js +0 -1
  785. package/.next/standalone/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  786. package/.next/standalone/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  787. package/.next/standalone/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  788. package/.next/standalone/.next/static/chunks/66b23011cd8544ad.js +0 -1
  789. package/.next/standalone/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  790. package/.next/standalone/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  791. package/.next/standalone/.next/static/chunks/7d4fa817c5229801.js +0 -1
  792. package/.next/standalone/.next/static/chunks/8f18a711543d804a.js +0 -1
  793. package/.next/standalone/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  794. package/.next/standalone/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  795. package/.next/standalone/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  796. package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  797. package/.next/standalone/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  798. package/.next/standalone/.next/static/chunks/d170174df1128338.js +0 -1
  799. package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  800. package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +0 -1
  801. package/.next/standalone/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  802. package/.next/standalone/.next/static/chunks/ffd21617593aaafd.js +0 -1
  803. package/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  804. package/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  805. package/.next/static/chunks/16047b19dda5c90d.js +0 -10
  806. package/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  807. package/.next/static/chunks/3d19f62114122bd3.js +0 -1
  808. package/.next/static/chunks/3d6127f72467176d.js +0 -1
  809. package/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  810. package/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  811. package/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  812. package/.next/static/chunks/66b23011cd8544ad.js +0 -1
  813. package/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  814. package/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  815. package/.next/static/chunks/7d4fa817c5229801.js +0 -1
  816. package/.next/static/chunks/8f18a711543d804a.js +0 -1
  817. package/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  818. package/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  819. package/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  820. package/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  821. package/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  822. package/.next/static/chunks/d170174df1128338.js +0 -1
  823. package/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  824. package/.next/static/chunks/e159d293fc72e91b.css +0 -1
  825. package/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  826. package/.next/static/chunks/ffd21617593aaafd.js +0 -1
  827. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_buildManifest.js +0 -0
  828. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_clientMiddlewareManifest.json +0 -0
  829. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_ssgManifest.js +0 -0
  830. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_buildManifest.js +0 -0
  831. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_clientMiddlewareManifest.json +0 -0
  832. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,716327,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],716327)},867927,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],867927)},632781,e=>{"use strict";let t=(0,e.i(456420).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],632781)},77071,e=>{"use strict";let t=(0,e.i(456420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],77071)},853138,e=>{"use strict";let t=(0,e.i(456420).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],853138)},263676,e=>{"use strict";let t=(0,e.i(456420).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],263676)},776639,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(981140),r=e.i(820783),i=e.i(30030),n=e.i(610772),o=e.i(369340),l=e.i(726330),d=e.i(765491),c=e.i(774606),u=e.i(296626),m=e.i(248425),p=e.i(303536),g=e.i(985369),x=e.i(186312),f=e.i(991918),h="Dialog",[v,b]=(0,i.createContextScope)(h),[j,y]=v(h),N=e=>{let{__scopeDialog:a,children:r,open:i,defaultOpen:l,onOpenChange:d,modal:c=!0}=e,u=s.useRef(null),m=s.useRef(null),[p,g]=(0,o.useControllableState)({prop:i,defaultProp:l??!1,onChange:d,caller:h});return(0,t.jsx)(j,{scope:a,triggerRef:u,contentRef:m,contentId:(0,n.useId)(),titleId:(0,n.useId)(),descriptionId:(0,n.useId)(),open:p,onOpenChange:g,onOpenToggle:s.useCallback(()=>g(e=>!e),[g]),modal:c,children:r})};N.displayName=h;var w="DialogTrigger";s.forwardRef((e,s)=>{let{__scopeDialog:i,...n}=e,o=y(w,i),l=(0,r.useComposedRefs)(s,o.triggerRef);return(0,t.jsx)(m.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":U(o.open),...n,ref:l,onClick:(0,a.composeEventHandlers)(e.onClick,o.onOpenToggle)})}).displayName=w;var C="DialogPortal",[D,T]=v(C,{forceMount:void 0}),k=e=>{let{__scopeDialog:a,forceMount:r,children:i,container:n}=e,o=y(C,a);return(0,t.jsx)(D,{scope:a,forceMount:r,children:s.Children.map(i,e=>(0,t.jsx)(u.Presence,{present:r||o.open,children:(0,t.jsx)(c.Portal,{asChild:!0,container:n,children:e})}))})};k.displayName=C;var F="DialogOverlay",P=s.forwardRef((e,s)=>{let a=T(F,e.__scopeDialog),{forceMount:r=a.forceMount,...i}=e,n=y(F,e.__scopeDialog);return n.modal?(0,t.jsx)(u.Presence,{present:r||n.open,children:(0,t.jsx)(R,{...i,ref:s})}):null});P.displayName=F;var I=(0,f.createSlot)("DialogOverlay.RemoveScroll"),R=s.forwardRef((e,s)=>{let{__scopeDialog:a,...i}=e,n=y(F,a),o=(0,l.useDismissableLayerSurface)(),d=(0,r.useComposedRefs)(s,o);return(0,t.jsx)(g.RemoveScroll,{as:I,allowPinchZoom:!0,shards:[n.contentRef],children:(0,t.jsx)(m.Primitive.div,{"data-state":U(n.open),...i,ref:d,style:{pointerEvents:"auto",...i.style}})})}),E="DialogContent",S=s.forwardRef((e,s)=>{let a=T(E,e.__scopeDialog),{forceMount:r=a.forceMount,...i}=e,n=y(E,e.__scopeDialog);return(0,t.jsx)(u.Presence,{present:r||n.open,children:n.modal?(0,t.jsx)(z,{...i,ref:s}):(0,t.jsx)(A,{...i,ref:s})})});S.displayName=E;var z=s.forwardRef((e,i)=>{let n=y(E,e.__scopeDialog),o=s.useRef(null),l=(0,r.useComposedRefs)(i,n.contentRef,o);return s.useEffect(()=>{let e=o.current;if(e)return(0,x.hideOthers)(e)},[]),(0,t.jsx)(B,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:(0,a.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:(0,a.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,s=0===t.button&&!0===t.ctrlKey;(2===t.button||s)&&e.preventDefault()}),onFocusOutside:(0,a.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),A=s.forwardRef((e,a)=>{let r=y(E,e.__scopeDialog),i=s.useRef(!1),n=s.useRef(!1);return(0,t.jsx)(B,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(i.current||r.triggerRef.current?.focus(),t.preventDefault()),i.current=!1,n.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(i.current=!0,"pointerdown"===t.detail.originalEvent.type&&(n.current=!0));let s=t.target;r.triggerRef.current?.contains(s)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&n.current&&t.preventDefault()}})}),B=s.forwardRef((e,s)=>{let{__scopeDialog:a,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:n,...o}=e,c=y(E,a);return(0,p.useFocusGuards)(),(0,t.jsx)(t.Fragment,{children:(0,t.jsx)(d.FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:n,children:(0,t.jsx)(l.DismissableLayer,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":U(c.open),...o,ref:s,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})}),O="DialogTitle",M=s.forwardRef((e,s)=>{let{__scopeDialog:a,...r}=e,i=y(O,a);return(0,t.jsx)(m.Primitive.h2,{id:i.titleId,...r,ref:s})});M.displayName=O;var V="DialogDescription",H=s.forwardRef((e,s)=>{let{__scopeDialog:a,...r}=e,i=y(V,a);return(0,t.jsx)(m.Primitive.p,{id:i.descriptionId,...r,ref:s})});H.displayName=V;var L="DialogClose",_=s.forwardRef((e,s)=>{let{__scopeDialog:r,...i}=e,n=y(L,r);return(0,t.jsx)(m.Primitive.button,{type:"button",...i,ref:s,onClick:(0,a.composeEventHandlers)(e.onClick,()=>n.onOpenChange(!1))})});function U(e){return e?"open":"closed"}_.displayName=L;var $=e.i(263676),q=e.i(975157);function K({className:e,...s}){return(0,t.jsx)(P,{"data-slot":"dialog-overlay",className:(0,q.cn)("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...s})}function J({className:e,children:s,...a}){return(0,t.jsxs)(k,{children:[(0,t.jsx)(K,{}),(0,t.jsxs)(S,{"data-slot":"dialog-content",className:(0,q.cn)("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border border-card-border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",e),...a,children:[s,(0,t.jsx)(_,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring","aria-label":"Close",children:(0,t.jsx)($.X,{className:"size-4"})})]})]})}function W({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,q.cn)("flex flex-col gap-1.5 text-left",e),...s})}function X({className:e,...s}){return(0,t.jsx)("div",{"data-slot":"dialog-footer",className:(0,q.cn)("flex flex-row justify-end gap-2 pt-2",e),...s})}function G({className:e,...s}){return(0,t.jsx)(M,{"data-slot":"dialog-title",className:(0,q.cn)("text-base font-semibold text-foreground",e),...s})}function Y({className:e,...s}){return(0,t.jsx)(H,{"data-slot":"dialog-description",className:(0,q.cn)("text-sm text-foreground-secondary",e),...s})}e.s(["Dialog",()=>N,"DialogContent",()=>J,"DialogDescription",()=>Y,"DialogFooter",()=>X,"DialogHeader",()=>W,"DialogTitle",()=>G],776639)},573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],573474)},347101,e=>{"use strict";var t=e.i(843476),s=e.i(271645),a=e.i(853138),r=e.i(776639),i=e.i(519455),n=e.i(975157);function o({open:e,onOpenChange:o,title:l,description:d,confirmText:c="确认",cancelText:u="取消",tone:m="normal",onConfirm:p}){let[g,x]=s.useState(!1),f=async()=>{try{x(!0),await p(),o(!1)}finally{x(!1)}};return(0,t.jsx)(r.Dialog,{open:e,onOpenChange:e=>!g&&o(e),children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsxs)(r.DialogTitle,{className:(0,n.cn)("flex items-center gap-2","danger"===m&&"text-destructive"),children:["danger"===m&&(0,t.jsx)(a.AlertTriangle,{className:"size-4"}),l]}),d&&(0,t.jsx)(r.DialogDescription,{children:d})]}),(0,t.jsxs)(r.DialogFooter,{children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>o(!1),disabled:g,children:u}),(0,t.jsx)(i.Button,{onClick:f,disabled:g,className:(0,n.cn)("danger"===m&&"bg-error text-error-foreground hover:bg-error/90"),children:g?"处理中…":c})]})]})})}e.s(["ConfirmDialog",()=>o])},793479,e=>{"use strict";var t=e.i(843476),s=e.i(975157);function a({className:e,type:a,...r}){return(0,t.jsx)("input",{type:a,"data-slot":"input",className:(0,s.cn)("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}e.s(["Input",()=>a])},708511,570059,e=>{"use strict";var t=e.i(843476),s=e.i(975157);let a={default:"w-full px-6 py-6",wide:"w-full px-8 py-6",canvas:"w-full p-0"};function r({variant:e="default",className:r,children:i}){return(0,t.jsx)("div",{className:(0,s.cn)("flex-1 flex flex-col min-h-0 overflow-y-auto",a[e],r),children:i})}function i({title:e,description:a,actions:r,className:i}){return(0,t.jsxs)("div",{className:(0,s.cn)("flex items-start justify-between gap-4 mb-4",i),children:[(0,t.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,t.jsx)("h1",{className:"text-xl font-semibold text-foreground truncate",children:e}),a&&(0,t.jsx)("p",{className:"text-sm text-foreground-muted",children:a})]}),r&&(0,t.jsx)("div",{className:"flex items-center gap-2 shrink-0",children:r})]})}function n({className:e,children:a}){return(0,t.jsx)("div",{className:(0,s.cn)("flex flex-wrap items-center gap-2 mb-3",e),children:a})}function o({className:e,children:a}){return(0,t.jsx)("div",{className:(0,s.cn)("flex-1 min-h-0",e),children:a})}function l({className:e,children:a}){return(0,t.jsx)("div",{className:(0,s.cn)("flex items-center justify-between gap-3 mt-4 pt-3 border-t border-border",e),children:a})}e.s(["PageContainer",()=>r,"PageContent",()=>o,"PageFooter",()=>l,"PageHeader",()=>i,"PageToolbar",()=>n],708511);let d=(0,e.i(456420).default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);function c({icon:e=d,title:a,description:r,action:i,className:n}){return(0,t.jsxs)("div",{className:(0,s.cn)("flex flex-col items-center justify-center gap-3 text-center py-12 px-6","text-foreground-muted",n),children:[(0,t.jsx)("div",{className:"size-10 rounded-full bg-background-secondary text-foreground-muted flex items-center justify-center",children:(0,t.jsx)(e,{className:"size-5","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-base font-semibold text-foreground",children:a}),r&&(0,t.jsx)("p",{className:"text-sm text-foreground-muted max-w-md",children:r})]}),i&&(0,t.jsx)("div",{className:"pt-1",children:i})]})}e.s(["EmptyState",()=>c],570059)},980799,e=>{"use strict";let t=(0,e.i(456420).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);e.s(["Tag",()=>t],980799)},627960,e=>{"use strict";var t=e.i(843476),s=e.i(271645);let a=(0,e.i(456420).default)("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);var r=e.i(632781),i=e.i(77071),n=e.i(980799),o=e.i(573474),l=e.i(846696),d=e.i(540568),c=e.i(708511),u=e.i(519455),m=e.i(347101),p=e.i(776639),g=e.i(793479),x=e.i(967489),f=e.i(975157);function h({className:e,...s}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,f.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...s})}var v=e.i(570059),b=e.i(927643),j=e.i(183752),y=e.i(726526);let N={name:"",description:"",kind:"version",color:"#6366f1"},w=["#6366f1","#16a34a","#0ea5e9","#f59e0b","#ef4444","#8b5cf6","#64748b"];async function C(e,t){try{let s=await e.json();return String(s?.error||t)}catch{return t}}function D(){let{user:e}=(0,b.useAuth)(),{locale:a}=(0,y.useLocale)(),n=a.toLowerCase().startsWith("zh")?{title:"版本管理",subtitle:"通过标签管理版本分组和业务筛选范围",intro:"通过标签实现版本管理:版本标签用于版本分析的对比与详情;业务标签用于在链路追踪中筛选 Trace。",newTag:"新建标签",newVersion:"新建版本标签",newBusiness:"新建业务标签",version:"版本标签",business:"业务标签",versionHint:"用于版本分析的对比与详情",businessHint:"用于链路追踪中筛选 Trace",traceCount:"Trace 数",totalTags:"标签总数",versionTags:"版本标签",businessTags:"业务标签",bindings:"Trace 绑定",createdAt:"创建时间",descriptionColumn:"说明",noDesc:"无说明",edit:"编辑",delete:"删除",actions:"操作",formTitleNew:"新建标签",formTitleEdit:"编辑标签",formDescNew:"创建后可在链路追踪的用户标签列绑定到 Trace。",formDescEdit:"修改会影响所有已绑定 Trace 上的标签展示。",editImpact:"影响范围:名称、说明、颜色和类型变化会同步影响链路追踪、版本分析和业务筛选中的展示;已绑定的 Trace 不会丢失。",name:"名称",description:"描述",type:"标签类型",color:"颜色",cancel:"取消",save:"保存",create:"创建",saving:"保存中...",namePlaceholder:"如 baseline / v1.4 / 回归测试",descPlaceholder:"简短说明版本、实验或业务范围",emptyVersionTitle:"还没有版本标签",emptyBusinessTitle:"还没有业务标签",emptyDesc:"新建标签后,可从链路追踪给 Trace 打标。",loadFailed:"加载标签失败",saveFailed:"保存标签失败",deleteFailed:"删除标签失败",saved:"标签已保存",deleted:"标签已删除",deleteTitle:"确认删除标签?",deleteDesc:"这是硬删除:会删除标签并移除所有 Trace 绑定,Trace 记录本身会保留。",deleteImpactTitle:"影响范围",deleteImpactBindings:"将从 {count} 条 Trace 上移除此标签绑定。",deleteImpactVersion:"版本标签删除后,对应版本会从版本分析的对比和详情中消失。",deleteImpactBusiness:"业务标签删除后,对应链路追踪筛选条件将失效。",confirmDelete:"删除"}:{title:"Version Management",subtitle:"Manage version cohorts and business filter tags",intro:"Version tags power Version Analysis; business tags are used to filter traces in Trace.",newTag:"New tag",newVersion:"New version tag",newBusiness:"New business tag",version:"Version tags",business:"Business tags",versionHint:"Used by Version Analysis comparison and detail views",businessHint:"Used to filter traces in Trace",traceCount:"Traces",totalTags:"Total tags",versionTags:"Version tags",businessTags:"Business tags",bindings:"Trace bindings",createdAt:"Created",descriptionColumn:"Description",noDesc:"No description",edit:"Edit",delete:"Delete",actions:"Actions",formTitleNew:"Create tag",formTitleEdit:"Edit tag",formDescNew:"After creation, tags can be attached to traces in Trace.",formDescEdit:"Changes affect how the tag appears on every bound trace.",editImpact:"Impact: name, description, color, and type changes are reflected in Trace, Version Analysis, and business filters. Bound traces are kept.",name:"Name",description:"Description",type:"Type",color:"Color",cancel:"Cancel",save:"Save",create:"Create",saving:"Saving...",namePlaceholder:"e.g. baseline / v1.4 / regression",descPlaceholder:"Describe the version, experiment, or business scope",emptyVersionTitle:"No version tags yet",emptyBusinessTitle:"No business tags yet",emptyDesc:"Create tags, then attach them from Trace.",loadFailed:"Failed to load tags",saveFailed:"Failed to save tag",deleteFailed:"Failed to delete tag",saved:"Tag saved",deleted:"Tag deleted",deleteTitle:"Delete tag?",deleteDesc:"This hard-deletes the tag and removes it from every trace. Trace records are kept.",deleteImpactTitle:"Impact scope",deleteImpactBindings:"This tag will be removed from {count} traces.",deleteImpactVersion:"Deleting a version tag removes that version from Version Analysis comparison and detail views.",deleteImpactBusiness:"Deleting a business tag makes the corresponding Trace filter unavailable.",confirmDelete:"Delete"},[o,v]=(0,s.useState)([]),[D,F]=(0,s.useState)(!1),[P,I]=(0,s.useState)(!1),[R,E]=(0,s.useState)(N),[S,z]=(0,s.useState)(!1),[A,B]=(0,s.useState)(null),O=(0,s.useCallback)(async()=>{if(e){F(!0);try{let t=await (0,j.apiFetch)(`/api/tags?user=${encodeURIComponent(e)}`);if(!t.ok)throw Error(await C(t,n.loadFailed));let s=await t.json();v(Array.isArray(s)?s:[])}catch(e){l.toast.error(e?.message||n.loadFailed),v([])}finally{F(!1)}}},[n.loadFailed,e]);(0,s.useEffect)(()=>{O()},[O]);let M=(0,s.useMemo)(()=>{let e=o.filter(e=>"version"===e.kind).length;return{version:e,business:o.filter(e=>"business"===e.kind).length,bindings:o.reduce((e,t)=>e+(t.usageCount||0),0)}},[o]),V=(0,s.useMemo)(()=>o.filter(e=>"version"===e.kind).sort((e,t)=>e.name.localeCompare(t.name)),[o]),H=(0,s.useMemo)(()=>o.filter(e=>"business"===e.kind).sort((e,t)=>e.name.localeCompare(t.name)),[o]),L=(e="version")=>{E({...N,kind:e}),I(!0)},_=e=>{E({id:e.id,name:e.name,description:e.description||"",kind:e.kind,color:e.color||N.color}),I(!0)},U=async()=>{if(e&&R.name.trim()){z(!0);try{let t={user:e,name:R.name.trim(),description:R.description.trim(),kind:R.kind,color:R.color},s=R.id?await (0,j.apiFetch)(`/api/tags/${encodeURIComponent(R.id)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}):await (0,j.apiFetch)("/api/tags",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok)throw Error(await C(s,n.saveFailed));l.toast.success(n.saved),I(!1),await O()}catch(e){l.toast.error(e?.message||n.saveFailed)}finally{z(!1)}}},$=async()=>{if(!e||!A)return;let t=await (0,j.apiFetch)(`/api/tags/${encodeURIComponent(A.id)}?user=${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok)throw Error(await C(t,n.deleteFailed));l.toast.success(n.deleted),B(null),await O()};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.AppTopBar,{title:n.title,showDefaultActions:!1}),(0,t.jsxs)(c.PageContainer,{variant:"wide",className:"bg-background",children:[(0,t.jsx)(c.PageHeader,{title:n.title,description:n.subtitle,actions:(0,t.jsxs)(u.Button,{onClick:()=>L("version"),className:"h-8 gap-1.5",children:[(0,t.jsx)(i.Plus,{className:"size-4"}),n.newTag]})}),(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-4 mb-4",children:[(0,t.jsx)(k,{label:n.totalTags,value:o.length}),(0,t.jsx)(k,{label:n.versionTags,value:M.version}),(0,t.jsx)(k,{label:n.businessTags,value:M.business}),(0,t.jsx)(k,{label:n.bindings,value:M.bindings})]}),(0,t.jsx)("div",{className:"mb-4 rounded-md border border-border bg-background-secondary px-3 py-2 text-sm text-foreground-secondary",children:n.intro}),D?(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-16 text-sm text-foreground-muted",children:[(0,t.jsx)(r.Loader2,{className:"size-4 animate-spin"}),n.saving.replace("...","")]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(T,{title:n.version,hint:n.versionHint,tone:"version",tags:V,copy:n,locale:a,emptyTitle:n.emptyVersionTitle,onCreate:()=>L("version"),onEdit:_,onDelete:B}),(0,t.jsx)(T,{title:n.business,hint:n.businessHint,tone:"business",tags:H,copy:n,locale:a,emptyTitle:n.emptyBusinessTitle,onCreate:()=>L("business"),onEdit:_,onDelete:B})]})]}),(0,t.jsx)(p.Dialog,{open:P,onOpenChange:e=>!S&&I(e),children:(0,t.jsxs)(p.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(p.DialogHeader,{children:[(0,t.jsx)(p.DialogTitle,{children:R.id?n.formTitleEdit:n.formTitleNew}),(0,t.jsx)(p.DialogDescription,{children:R.id?n.formDescEdit:n.formDescNew})]}),(0,t.jsxs)("div",{className:"grid gap-4",children:[(0,t.jsxs)("label",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[n.name,(0,t.jsx)(g.Input,{value:R.name,onChange:e=>E(t=>({...t,name:e.target.value})),placeholder:n.namePlaceholder,maxLength:80})]}),(0,t.jsxs)("label",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[n.description,(0,t.jsx)(h,{value:R.description,onChange:e=>E(t=>({...t,description:e.target.value})),placeholder:n.descPlaceholder,maxLength:300})]}),(0,t.jsxs)("div",{className:"grid gap-1.5 text-sm font-medium text-foreground",children:[n.type,(0,t.jsx)(x.Select,{value:R.kind,onChange:e=>E(t=>({...t,kind:e})),options:[{value:"version",label:n.version},{value:"business",label:n.business}],size:"md"})]}),(0,t.jsxs)("div",{className:"grid gap-2 text-sm font-medium text-foreground",children:[n.color,(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[w.map(e=>(0,t.jsx)("button",{type:"button","aria-label":e,onClick:()=>E(t=>({...t,color:e})),className:(0,f.cn)("size-7 rounded-md border transition-transform focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",R.color===e?"border-foreground scale-105":"border-border"),style:{backgroundColor:e}},e)),(0,t.jsx)(g.Input,{type:"color",value:R.color,onChange:e=>E(t=>({...t,color:e.target.value})),className:"h-8 w-12 p-1"})]})]}),R.id&&(0,t.jsx)("div",{className:"rounded-md border border-warning-subtle bg-warning-subtle px-3 py-2 text-xs leading-5 text-warning",children:n.editImpact})]}),(0,t.jsxs)(p.DialogFooter,{children:[(0,t.jsx)(u.Button,{variant:"outline",onClick:()=>I(!1),disabled:S,children:n.cancel}),(0,t.jsx)(u.Button,{onClick:U,disabled:S||!R.name.trim(),children:S?n.saving:R.id?n.save:n.create})]})]})}),(0,t.jsx)(m.ConfirmDialog,{open:!!A,onOpenChange:e=>!e&&B(null),title:n.deleteTitle,description:A?(0,t.jsxs)("span",{className:"block space-y-2",children:[(0,t.jsxs)("span",{className:"block",children:[n.deleteDesc," (",A.name,")"]}),(0,t.jsxs)("span",{className:"block rounded-md border border-error-border bg-error-subtle px-3 py-2 text-xs leading-5 text-error",children:[(0,t.jsx)("span",{className:"block font-semibold",children:n.deleteImpactTitle}),(0,t.jsx)("span",{className:"mt-1 block",children:n.deleteImpactBindings.replace("{count}",(A.usageCount||0).toLocaleString())}),(0,t.jsx)("span",{className:"mt-1 block",children:"version"===A.kind?n.deleteImpactVersion:n.deleteImpactBusiness})]})]}):n.deleteDesc,confirmText:n.confirmDelete,cancelText:n.cancel,tone:"danger",onConfirm:$})]})}function T({title:e,hint:s,tone:r,tags:l,copy:d,locale:c,emptyTitle:m,onCreate:p,onEdit:g,onDelete:x}){return(0,t.jsxs)("section",{className:"rounded-md border border-border bg-card overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-4 py-3",children:[(0,t.jsx)("span",{className:"size-2 rounded-full",style:{backgroundColor:"version"===r?"var(--primary)":"var(--success)"}}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:e}),(0,t.jsx)("p",{className:"mt-0.5 text-xs text-foreground-muted",children:s})]}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsxs)(u.Button,{variant:"outline",size:"sm",onClick:p,children:[(0,t.jsx)(i.Plus,{className:"size-4"}),"version"===r?d.newVersion:d.newBusiness]})]}),0===l.length?(0,t.jsx)(v.EmptyState,{icon:n.Tag,title:m,description:d.emptyDesc}):(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"w-full min-w-[760px] text-sm",children:[(0,t.jsx)("thead",{className:"bg-background-secondary text-xs text-foreground-muted",children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.type}),(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.descriptionColumn}),(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.traceCount}),(0,t.jsx)("th",{className:"px-3 py-2 text-left font-medium",children:d.createdAt}),(0,t.jsx)("th",{className:"w-[88px] px-3 py-2 text-center font-medium",children:d.actions})]})}),(0,t.jsx)("tbody",{children:l.map(e=>{var s;let r;return(0,t.jsxs)("tr",{className:"border-t border-border hover:bg-background-secondary",children:[(0,t.jsx)("td",{className:"px-3 py-2 align-top",children:(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"size-2.5 shrink-0 rounded-full",style:{backgroundColor:e.color}}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate font-semibold text-foreground",children:e.name}),(0,t.jsx)("div",{className:"text-[11px] text-foreground-muted",children:(s=e.kind,r=c.toLowerCase().startsWith("zh"),"version"===s?r?"版本":"Version":r?"业务":"Business")})]})]})}),(0,t.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:(0,t.jsx)("span",{className:"line-clamp-2 max-w-[420px]",children:e.description||d.noDesc})}),(0,t.jsx)("td",{className:"px-3 py-2 align-top font-semibold tabular-nums text-foreground",children:(e.usageCount||0).toLocaleString()}),(0,t.jsx)("td",{className:"px-3 py-2 align-top text-foreground-secondary",children:function(e){if(!e)return"-";let t=new Date(e);return Number.isFinite(t.getTime())?`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`:"-"}(e.createdAt)}),(0,t.jsx)("td",{className:"w-[88px] px-3 py-2 align-top text-center",children:(0,t.jsxs)("div",{className:"inline-flex justify-center gap-1",children:[(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-7",onClick:()=>g(e),"aria-label":d.edit,children:(0,t.jsx)(a,{className:"size-3.5"})}),(0,t.jsx)(u.Button,{variant:"ghost",size:"icon",className:"size-7 text-error hover:text-error",onClick:()=>x(e),"aria-label":d.delete,children:(0,t.jsx)(o.Trash2,{className:"size-3.5"})})]})})]},e.id)})})]})})]})}function k({label:e,value:s}){return(0,t.jsxs)("div",{className:"rounded-md border border-border bg-card px-4 py-3",children:[(0,t.jsx)("div",{className:"text-xs text-foreground-muted",children:e}),(0,t.jsx)("div",{className:"mt-1 text-2xl font-semibold tabular-nums text-foreground",children:s.toLocaleString()})]})}e.s(["default",()=>D],627960)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76706,861171,e=>{"use strict";function t(e,r=1){return null==e||Number.isNaN(e)?"--":(100*e).toFixed(r)}e.s(["fmtPercentScore",()=>t],76706);let r="[no-evaluable-case]",n="preset-agent-trace-quality",a={trace:"Trace 数据问题",dataset:"评测集配置问题",case:"Case 配置问题",skill:"Skill 归因问题",model:"模型调用问题",evaluator:"评测器问题",system:"系统问题"},s={trace_missing_input:{errorCategory:"trace",shortStatus:"Trace 缺输入",userMessage:"Trace 缺少实际输入,无法匹配评测集 case。",reason:"系统没有从本次执行记录中提取到可用于匹配 case 的任务输入。",nextAction:"检查 trace 采集是否包含用户任务输入;必要时重新采集或重新执行该任务。",retryable:!1,stage:"case-match"},trace_missing_output:{errorCategory:"trace",shortStatus:"Trace 缺输出",userMessage:"Trace 缺少实际输出,无法做任务完成度评测。",reason:"本次 trace 没有提取到 Agent 最终输出,也没有可用的 execution.finalResult fallback。",nextAction:"检查 Agent 是否产出最终回复;确认 trace 采集包含 assistant final message;必要时重新跑该 case。",retryable:!1,stage:"result-artifact"},task_output_extraction_failed:{errorCategory:"trace",shortStatus:"任务输出提取失败",userMessage:"无法从 trace 中提取任务输出。",reason:"任务输出提取流程没有定位到可用于任务完成度评测的最终输出,且没有 fallback 可用。",nextAction:"检查 trace 中是否包含最终回复或关键工具输出;必要时重试评测或重新采集 trace。",retryable:!0,stage:"result-artifact"},trace_data_empty:{errorCategory:"trace",shortStatus:"Trace 数据为空",userMessage:"Trace 数据为空,无法评测。",reason:"系统没有找到可用的 session interactions,也没有足够的 query/finalResult 生成兜底交互。",nextAction:"检查 trace 采集、上传或执行记录入库是否完整。",retryable:!1,stage:"trace-load"},trace_parse_failed:{errorCategory:"trace",shortStatus:"Trace 解析失败",userMessage:"Trace 数据解析失败,无法评测。",reason:"Session.interactions 不是合法 JSON 或结构不兼容。",nextAction:"检查 trace 采集数据格式,必要时重新上传或修复采集链路。",retryable:!1,stage:"trace-parse"},case_not_matched:{errorCategory:"case",shortStatus:"无匹配 case",userMessage:"Trace 输入没有匹配到可用于评测的 case。",reason:"本次任务输入与当前评测集中的 case.input 没有达到可用匹配。",nextAction:"补充对应 case,或确认本次 trace 的任务输入与评测集 case.input 是否一致。",retryable:!1,stage:"case-match"},case_match_failed:{errorCategory:"case",shortStatus:"匹配 case 失败",userMessage:"无法根据 trace 输入自动定位可用于评测的 case。",reason:"trace 输入没有精确匹配到评测集 case,后台自动匹配也没有得到可用结果。",nextAction:"检查本次 trace 的任务输入是否与评测集 case.input 对齐;必要时补充 case 或重新选择评测集。",retryable:!0,stage:"case-match"},dataset_missing:{errorCategory:"dataset",shortStatus:"评测集不存在",userMessage:"评测集不存在,无法匹配可评测 case。",reason:"评测结果关联的数据集已经不存在,或当前用户不可访问。",nextAction:"重新选择评测集后再发起评测。",retryable:!1,stage:"dataset-load"},dataset_empty:{errorCategory:"dataset",shortStatus:"评测集为空",userMessage:"评测集没有可评测 case。",reason:"当前匹配范围内没有可用于评测的 case。",nextAction:"补充评测集 case 后重新评测。",retryable:!1,stage:"dataset-load"},case_missing_expected_output:{errorCategory:"case",shortStatus:"Case 缺预期结果",userMessage:"Case 缺少预期结果,无法做任务完成度评测。",reason:"已匹配到 case,但 expectedOutput 为空。",nextAction:"为该 case 补充 expectedOutput 后重新评测。",retryable:!1,stage:"case-match"},custom_reference_missing:{errorCategory:"case",shortStatus:"缺 reference_output",userMessage:"自定义评估器缺少 reference_output。",reason:"自定义评估器 prompt 引用了 reference_output,但没有匹配到带预期结果的 case。",nextAction:"补充评测集 expectedOutput,或调整自定义评估器 prompt。",retryable:!1,stage:"custom-evaluator"},trace_step_analysis_failed:{errorCategory:"model",shortStatus:"步骤抽取失败",userMessage:"Trace 步骤动态分析失败。",reason:"系统尝试从 trace 中抽取实际执行步骤时失败,通常与模型配置或调用异常有关。",nextAction:"检查评测模型配置和服务状态后重试。",retryable:!0,stage:"trace-step-analysis"},trace_no_steps:{errorCategory:"trace",shortStatus:"Trace 无步骤",userMessage:"Trace 无可提取执行步骤,无法做轨迹评测。",reason:"系统没有从本次 trace 中提取到可用于轨迹评测的实际执行步骤。",nextAction:"检查 trace 质量、采集粒度或执行记录是否完整。",retryable:!1,stage:"trace-step-analysis"},evaluator_timeout:{errorCategory:"evaluator",shortStatus:"评测超时",userMessage:"评测器运行超时。",reason:"评测器在限定时间内没有返回结果。",nextAction:"重试评测;如果持续出现,请检查模型服务响应时间。",retryable:!0,stage:"evaluator"},evaluator_output_invalid:{errorCategory:"evaluator",shortStatus:"评测器输出异常",userMessage:"评测器未返回有效结构化结果。",reason:"评测器输出无法解析为系统需要的 JSON/评分结构。",nextAction:"重试评测;如果持续出现,请检查评测器模型输出。",retryable:!0,stage:"evaluator"},result_evaluator_failed:{errorCategory:"evaluator",shortStatus:"结果评测失败",userMessage:"任务完成度评测失败。",reason:"任务完成度评测器没有产出可用评分或评测 session。",nextAction:"重试评测;如果持续出现,请检查模型配置和评测器日志。",retryable:!0,stage:"result-evaluator"},persist_failed:{errorCategory:"system",shortStatus:"保存失败",userMessage:"评测结果保存失败。",reason:"评测已执行,但结果写入数据库时失败。",nextAction:"检查数据库或服务状态后重试。",retryable:!0,stage:"persist"},evaluator_recovered_failed:{errorCategory:"system",shortStatus:"评测进程异常",userMessage:"评测进程异常中断。",reason:"后台恢复逻辑发现该评测长期停留在 pending/running 状态。",nextAction:"重试评测,并查看服务日志确认是否有进程异常。",retryable:!0,stage:"recover"}};function i(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e){return"number"==typeof e&&Number.isFinite(e)}function l(e){return i(e?.rawAnalysis)}function c(e){return Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[]}function d(e,t){let r=c(e);return 0===r.length?t===n:r.includes(t)}function u(e){return!!(d(e,n)&&o(e.trajectoryScore)||d(e,"preset-agent-task-completion")&&null!=function(e){if(o(e.resultEvaluationScore))return e.resultEvaluationScore;let t=i(l(e).resultEvaluation);return o(t.score)?t.score:null}(e))||!!c(e).some(e=>e.startsWith("custom-"))&&null!=function(e){if(o(e.customEvaluationScore))return e.customEvaluationScore;let t=(Array.isArray(e.customEvaluations)?e.customEvaluations:e.customEvaluations&&"object"==typeof e.customEvaluations?Object.values(e.customEvaluations):[]).map(e=>i(e).score).filter(o);return t.length>0?t.reduce((e,t)=>e+t,0)/t.length:null}(e)}function g(e,t={}){let r=s[e]??{errorCategory:"system",shortStatus:"评测失败",userMessage:"评测执行失败。",reason:"评测执行过程中出现未分类异常。",nextAction:"重试评测;如果持续出现,请查看服务日志。",retryable:!0,stage:"unknown"};return{errorCode:e,errorCategory:r.errorCategory,shortStatus:r.shortStatus,userMessage:t.userMessage||r.userMessage,reason:t.reason||r.reason,nextAction:t.nextAction||r.nextAction,retryable:"boolean"==typeof t.retryable?t.retryable:r.retryable,stage:t.stage||r.stage,...t.details?{details:t.details}:{},...t.internal?{internal:t.internal}:{}}}function f(e){if(!e)return null;let t=e.diagnostic;if(t&&"object"==typeof t&&!Array.isArray(t))return t;let n=l(e),a=n.diagnostic;if(a&&"object"==typeof a&&!Array.isArray(a))return a;let s="string"==typeof n.resultEvaluationError?n.resultEvaluationError.trim():"",i=String(e.resultEvaluationError||s||"").trim();if(i)return g(i.includes("结果输出提取失败")||i.includes("任务输出提取")?"task_output_extraction_failed":"result_evaluator_failed",{details:i,reason:i});let o=String(e.errorMessage||"").trim();return o?o.includes(r)?g("case_not_matched",{details:v(o),reason:v(o)}):"failed"===e.status&&o.includes("[recover]")?g("evaluator_recovered_failed",{details:o,reason:o}):null:null}function p(e){return"done"===e||"failed"===e}function h(e){return"pending"===e.status?"pending":"running"===e.status?"running":f(e)?"done"===e.status&&u(e)?"partial_failed":"failed":e.status}function x(e){if("pending"===e.status)return"待评测";if("running"===e.status)return"评测中";let t=f(e);return t?"done"===e.status&&u(e)?"部分评测失败":t.shortStatus:"done"===e.status?"已评测":"评测失败"}function y(e){if("pending"===e.status)return"muted";if("running"===e.status)return"running";let t=f(e);return t?"done"===e.status&&u(e)||["trace","dataset","case","skill"].includes(t.errorCategory)?"warning":"danger":"done"===e.status?"success":"danger"}function m(e){if("pending"===e.status||"running"===e.status)return"";let t=f(e);return t?[t.userMessage,t.reason?`具体原因:${t.reason}`:"",t.nextAction?`下一步建议:${t.nextAction}`:"",t.details?`详细信息:${t.details}`:""].filter(Boolean).join("\n"):String(e.errorMessage||e.resultEvaluationError||"").trim()}function j(e,t={}){if(!e)return"该执行尚未评测";let r=f(e);if(r&&"pending"!==e.status&&"running"!==e.status)return[r.userMessage,"",`错误分类:${a[r.errorCategory]}`,`具体原因:${r.reason}`,`下一步建议:${r.nextAction}`,r.details?`详细信息:${r.details}`:""].filter(e=>""!==e).join("\n");let n=t.composite??null;return null!=n&&Number.isFinite(n)?n>=.8?"该执行在结果与过程两个维度均表现良好":n>=.5?"该执行结果基本可用,但部分关键动作覆盖不足":"该执行关键动作覆盖不足,建议优先排查":"该执行尚未评测"}function v(e){return e.replace(r,"").trim()||"未匹配到可评测 case"}e.s(["getTrajectoryDisplayStatus",()=>h,"getTrajectoryOverallConclusion",()=>j,"getTrajectoryStatusLabel",()=>x,"getTrajectoryStatusTitle",()=>m,"getTrajectoryStatusTone",()=>y,"isTrajectoryEvaluationTerminal",()=>p,"parseTrajectoryDiagnostic",()=>f],861171)},642726,e=>{"use strict";let t=["evaluator","checker","judge","locator","assessor","grader","评估器"],r=["你是「轨迹评估器」的总协调者","你是「Agent 任务完成度」评估器","trace-quality-evaluator","task-completion-evaluator","reference_trajectory","actual_trace","key_point_findings","key-points-checker","detect_redundancy_and_loops","已写入 final_result.json"],n=new Set(["trace-quality-evaluator","task-completion-evaluator"]);function a(e){let r=String(e||"").trim().toLowerCase();return!!r&&(!!n.has(r)||t.some(e=>r.includes(e)))}function s(e){return!!e&&(a(e.name)||a(e.parentAgent))}function i(e){return!!e&&(!![e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].some(e=>a(e))||!!e&&[e.query,e.final_result,e.label].some(e=>{let t=String(e||"");return!!t&&r.some(e=>t.includes(e))}))}function o(e){return e?String([e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].find(e=>{let t=String(e||"").trim();return t&&!a(t)})||"").trim():""}e.s(["getPrimaryExecutionAgentName",()=>o,"isEvaluatorAgent",()=>s,"isEvaluatorTraceRecord",()=>i])},573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],573474)},347101,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(853138),a=e.i(776639),s=e.i(519455),i=e.i(975157);function o({open:e,onOpenChange:o,title:l,description:c,confirmText:d="确认",cancelText:u="取消",tone:g="normal",onConfirm:f}){let[p,h]=r.useState(!1),x=async()=>{try{h(!0),await f(),o(!1)}finally{h(!1)}};return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:e=>!p&&o(e),children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsxs)(a.DialogTitle,{className:(0,i.cn)("flex items-center gap-2","danger"===g&&"text-destructive"),children:["danger"===g&&(0,t.jsx)(n.AlertTriangle,{className:"size-4"}),l]}),c&&(0,t.jsx)(a.DialogDescription,{children:c})]}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>o(!1),disabled:p,children:u}),(0,t.jsx)(s.Button,{onClick:x,disabled:p,className:(0,i.cn)("danger"===g&&"bg-error text-error-foreground hover:bg-error/90"),children:p?"处理中…":d})]})]})})}e.s(["ConfirmDialog",()=>o])},111298,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(573474),s=e.i(846696),i=e.i(183752),o=e.i(927643),l=e.i(540568),c=e.i(726526),d=e.i(347101),u=e.i(76706),g=e.i(861171),f=e.i(642726),p=e.i(460435);let h="#534AB7",x="#EEEDFE",y="#0F6E56",m="#A32D2D",j="#FFEBEB",v="#9A7311",b="#eceae4",S="#f3f2ee",w="#f9f9fb",k="#1a1a18",A="#2c2b28",C="#6b6a66",T="#8a8884",I="agent-insight:eval-history-state";function E(e){if(!e)return"--";try{return new Date(e).toLocaleString("zh-CN",{hour12:!1})}catch{return e}}function _(e){if(!e)return"--";try{let t=new Date(e),r=Date.now()-t.getTime();if(r<6e4)return"刚刚";if(r<36e5)return`${Math.floor(r/6e4)} 分钟前`;if(r<864e5)return`${Math.floor(r/36e5)} 小时前`;return`${Math.floor(r/864e5)} 天前`}catch{return e}}function $(e){return e&&e.slice(0,14)||"--"}function F(...e){for(let t of e){if("string"!=typeof t)continue;let e=t.trim();if(e)return e}return""}function W(e,t){let r=Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[];return 0===r.length?"preset-agent-trace-quality"===t:r.includes(t)}function M(e){let t=e.evaluatorName?e.evaluatorName.split("、").map(e=>e.trim()):[],r=e.evaluatorIds.map((e,r)=>e.startsWith("custom-")?"":t[r]?t[r]:"preset-agent-task-completion"===e?"Agent 任务完成度":"preset-agent-trace-quality"===e?"Agent 轨迹质量":e).filter(Boolean);return r.length>0?Array.from(new Set(r)).join("、"):"—"}function D(){let{t:e}=(0,c.useLocale)(),{user:a}=(0,o.useAuth)(),u=(0,n.useRouter)(),g=(0,n.useSearchParams)(),f=g?.get("runId")||"",y=g?.get("autoWatchOnly")==="1"||g?.get("autoWatchOnly")==="true",[m,j]=(0,r.useState)([]),[v,S]=(0,r.useState)([]),[w,A]=(0,r.useState)([]),[T,E]=(0,r.useState)(10),[_,$]=(0,r.useState)(!1),[F,W]=(0,r.useState)(!1),[M,D]=(0,r.useState)(null),[z,O]=(0,r.useState)(!0),[P,q]=(0,r.useState)(""),[H,U]=(0,r.useState)(!1),[J,K]=(0,r.useState)(y),[V,X]=(0,r.useState)(null),[Y,G]=(0,r.useState)(null),Q=(0,r.useRef)(null),Z=(0,r.useRef)(null),ee=(0,r.useRef)(!1),et=(0,r.useRef)("");(0,r.useEffect)(()=>{if(!a)return;let e=!1;return(async()=>{if(f&&!ee.current&&1){let e=window.sessionStorage.getItem(I);if(e)try{let t=JSON.parse(e);if(Date.now()-Number(t.savedAt||0)<6e5&&t.user===a&&t.selectedRunId===f&&t.autoWatchOnly===y&&Array.isArray(t.runSummaries)&&t.runSummaries.some(e=>e.runId===f)){ee.current=!0,A(t.runSummaries),E(t.historyOffset||10),$(!!t.historyHasMore),D(f),K(t.autoWatchOnly),U(t.historyOpen),j([]),S([]),q(""),O(!1),requestAnimationFrame(()=>{Z.current&&(Z.current.scrollTop=t.historyScrollTop||0)});return}}catch{window.sessionStorage.removeItem(I)}}e||(O(!0),A([]),j([]),S([]),E(10),$(!1),D(null));try{let t=new URLSearchParams({user:a,limit:String(10)}),r=f||et.current;r&&t.set("includeRunId",r),J&&t.set("autoWatchOnly","1");let n=await (0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`),s=await n.json();if(!n.ok)throw Error(s?.error||n.statusText);let o=Array.isArray(s?.runs)?s.runs:[];if(!e){A(o),E("number"==typeof s?.nextOffset?s.nextOffset:10),$(!!s?.hasMore);let e=f||et.current,t=e?o.find(t=>t.runId===e):null;D(t?.runId||o[0]?.runId||null),et.current="",q("")}}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}finally{e||O(!1)}})(),()=>{e=!0}},[a,J,f,y]),(0,r.useEffect)(()=>{if(!a||!M)return;let e=!1,t=async()=>{try{let t=await (0,i.apiFetch)(`/api/eval/trajectory/results?user=${encodeURIComponent(a)}&runId=${encodeURIComponent(M)}&limit=500`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);let n=Array.isArray(r?.results)?r.results:[],s=Array.from(new Set(n.map(e=>e.taskId||"").filter(Boolean))),o=[];if(s.length>0){let e=new URLSearchParams({user:a,taskIds:s.join(","),skipAutoEvalReady:"1"}),t=await (0,i.apiFetch)(`/api/observe/data?${e.toString()}`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);o=Array.isArray(r)?r:[]}e||(j(n),S(o),q(""))}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}};t();let r=setInterval(t,5e3);return()=>{e=!0,clearInterval(r)}},[M,a]),(0,r.useEffect)(()=>{M||(j([]),S([]))},[M]),(0,r.useEffect)(()=>{let e=Q.current;if(!e||!a||!_||F)return;let t=new IntersectionObserver(e=>{if(!e.some(e=>e.isIntersecting))return;W(!0);let t=new URLSearchParams({user:a,limit:String(10)});t.set("offset",String(T)),J&&t.set("autoWatchOnly","1"),(0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=Array.isArray(t?.runs)?t.runs:[];A(e=>{let t=new Set(e.map(e=>e.runId));return[...e,...r.filter(e=>!t.has(e.runId))]}),E("number"==typeof t?.nextOffset?t.nextOffset:T+10),$(!!t?.hasMore)}).catch(e=>q(`加载历史任务失败:${e instanceof Error?e.message:String(e)}`)).finally(()=>W(!1))},{rootMargin:"180px"});return t.observe(e),()=>t.disconnect()},[J,_,F,T,a]);let er=(0,r.useMemo)(()=>{let e=new Map;for(let t of v)t.task_id&&e.set(t.task_id,t),t.upload_id&&e.set(t.upload_id,t);return e},[v]),en=(0,r.useMemo)(()=>w.find(e=>e.runId===M)||null,[w,M]),ea=(0,r.useMemo)(()=>m.filter(e=>!e.watchPlaceholder),[m]),es=async()=>{if(a&&V){G(V.runId);try{let e=await (0,i.apiFetch)("/api/eval/trajectory/runs",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,runId:V.runId})}),t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=w.findIndex(e=>e.runId===V.runId),n=w.filter(e=>e.runId!==V.runId),o=M===V.runId?n[r]?.runId||n[r-1]?.runId||n[0]?.runId||null:M;A(n),M===V.runId&&(D(o),j([]),S([])),X(null),q(""),s.toast.success(`已删除评测批次「${V.taskTitle}」`)}catch(e){throw s.toast.error(`删除失败:${e instanceof Error?e.message:String(e)}`),e}finally{G(null)}}},ei=(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsxs)("button",{onClick:()=>U(e=>!e),title:H?"收起历史任务":"展开历史任务",style:{display:"flex",alignItems:"center",gap:5,padding:"5px 10px",background:H?x:"transparent",color:H?h:C,border:`1px solid ${H?h:b}`,borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all 0.15s"},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsx)("button",{onClick:()=>u.push("/eval/trajectory"),style:{padding:"6px 14px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 发起新评测"})]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.AppTopBar,{title:(0,t.jsx)(p.Term,{id:"eval-batch",label:e("nav.eval")}),actions:ei,showDefaultActions:!1}),(0,t.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,t.jsx)("main",{style:{flex:1,overflowY:"auto",minWidth:0,color:k},children:z?(0,t.jsx)("div",{style:{padding:24,color:C},children:"正在加载评测批次..."}):0!==w.length||J?0===w.length?(0,t.jsx)(L,{onClear:()=>K(!1)}):en?(0,t.jsx)(R,{run:en,results:ea,records:v,recordMap:er,router:u,user:a,error:P,autoWatchOnly:J,onBeforeOpenTrace:function(e){if(!a)return;let t={user:a,selectedRunId:e,autoWatchOnly:J,historyOpen:H,historyOffset:T,historyHasMore:_,historyScrollTop:Z.current?.scrollTop||0,runSummaries:w,savedAt:Date.now()};window.sessionStorage.setItem(I,JSON.stringify(t))},onDeleteRun:()=>X(en),deleteDisabled:en.runningCount>0||Y===en.runId,deleting:Y===en.runId},en.runId):null:(0,t.jsx)(N,{onCreate:()=>u.push("/eval/trajectory"),error:P})}),(0,t.jsxs)("aside",{style:{width:300*!!H,flexShrink:0,borderLeft:H?`1px solid ${b}`:"none",background:"#FBFAF6",display:"flex",flexDirection:"column",overflow:"hidden",transition:"width 0.2s ease"},children:[(0,t.jsxs)("header",{style:{display:"flex",alignItems:"center",padding:"12px 16px",borderBottom:`1px solid ${b}`,flexShrink:0,whiteSpace:"nowrap"},children:[(0,t.jsxs)("div",{style:{fontSize:13,fontWeight:600,color:k,display:"flex",alignItems:"center",gap:6},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsxs)("button",{type:"button",onClick:function(){et.current=M||"",K(e=>!e)},title:J?"查看全部历史任务":"只看自动观测任务",style:{marginLeft:8,padding:"5px 10px",height:28,borderRadius:8,border:`1px solid ${J?h:b}`,background:J?x:"#fff",color:J?h:C,display:"flex",alignItems:"center",gap:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 13 13",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M2 3h9M3.5 6.5h6M5.2 10h2.6",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),(0,t.jsx)("span",{children:J?"全部任务":"自动观测任务"})]})]}),(0,t.jsxs)("div",{ref:Z,style:{flex:1,overflowY:"auto",padding:10,display:"flex",flexDirection:"column",gap:6},children:[0===w.length?(0,t.jsx)("div",{style:{padding:24,textAlign:"center",fontSize:12,color:C},children:J?"没有自动观测任务":"还没有任何评测任务"}):w.map(e=>(0,t.jsx)(B,{run:e,active:e.runId===M,onClick:()=>D(e.runId),onDelete:()=>X(e),deleteDisabled:e.runningCount>0||Y===e.runId,deleting:Y===e.runId},e.runId)),(0,t.jsx)("div",{ref:Q,style:{height:1}}),F&&(0,t.jsx)("div",{style:{padding:8,textAlign:"center",fontSize:11,color:C},children:"正在加载更多..."})]})]})]}),(0,t.jsx)(d.ConfirmDialog,{open:!!V,onOpenChange:e=>{(e||!Y)&&(e||X(null))},title:"删除这次评测执行?",description:V?`会删除该批次下的评测结果和由本批次派生的优化点数据,原始 trace 会保留,可稍后重新评测。任务:${V.taskTitle}`:void 0,confirmText:"删除批次",cancelText:"取消",tone:"danger",onConfirm:es})]})}function z(){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{style:{padding:24,color:C},children:"Loading..."}),children:(0,t.jsx)(D,{})})}function R({run:e,results:n,records:s,recordMap:o,router:l,user:c,error:d,autoWatchOnly:I,onBeforeOpenTrace:D,onDeleteRun:z,deleteDisabled:R,deleting:B}){let[O,N]=(0,r.useState)(!1),[L,V]=(0,r.useState)(new Set),[X,Y]=(0,r.useState)(!1),[G,Q]=(0,r.useState)(""),[Z,ee]=(0,r.useState)(""),[et,er]=(0,r.useState)([]),[en,ea]=(0,r.useState)(!1),[es,ei]=(0,r.useState)(null),eo=es??e.autoWatch,el=O?et:s,ec=(0,r.useMemo)(()=>new Set(n.map(e=>e.taskId||e.executionId||"").filter(Boolean)),[n]),ed=(0,r.useMemo)(()=>{let t=e.watchedAgent||e.executionAgent;return el.filter(e=>!!e.task_id).filter(e=>!(0,f.isEvaluatorTraceRecord)(e)).filter(e=>!ec.has(e.task_id||"")).filter(e=>(0,f.getPrimaryExecutionAgentName)(e)===t).sort((e,t)=>{let r=e.timestamp?new Date(e.timestamp).getTime():0;return(t.timestamp?new Date(t.timestamp).getTime():0)-r})},[ec,el,e.executionAgent,e.watchedAgent]);(0,r.useEffect)(()=>{if(!O||!c||et.length>0)return;let e=!1,t=new URLSearchParams({user:c,skipAutoEvalReady:"1"});return(0,i.apiFetch)(`/api/observe/data?${t.toString()}`).then(async t=>{let r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);e||er(Array.isArray(r)?r:[])}).catch(t=>{e||ee(`加载可追加 trace 失败:${t instanceof Error?t.message:String(t)}`)}),()=>{e=!0}},[et.length,O,c]);let eu=async()=>{if(!c)return void ee("请先登录");let t=Array.from(L);if(0===t.length)return void ee("请至少选择一条 trace");Y(!0),ee(""),Q("");try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,taskIds:t,evaluators:e.evaluatorIds})}),n=await r.json();if(!r.ok)return void ee(`追加失败:${n?.error||r.statusText}`);Q(`已追加 ${n.created?.length??0} 条 trace 到本批次`),V(new Set),N(!1)}catch(e){ee(`追加失败:${e instanceof Error?e.message:String(e)}`)}finally{Y(!1)}},eg=async t=>{if(!c)return void ee("请先登录");ea(!0),ee(""),Q(""),ei(t);try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,autoWatch:t})}),n=await r.json();if(!r.ok){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${n?.error||r.statusText}`);return}Q(t?"已重新开启自动观测":"已关闭自动观测,后续新 trace 不会再自动追加")}catch(r){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${r instanceof Error?r.message:String(r)}`)}finally{ea(!1)}};return(0,t.jsxs)("div",{style:{padding:"18px 22px 28px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:H(x,h),children:"评测批次"}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y),children:"自动观测"}),(0,t.jsx)("span",{style:{fontSize:12,color:C},children:"任务已同步到历史卡片与详情页"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:B?"删除中...":R?"评测进行中,暂时不能删除":"删除该评测批次",disabled:R,onClick:z,style:{width:28,height:28,borderRadius:8,border:`1px solid ${R?b:"#F1D1D1"}`,background:B?j:"#fff",color:R?T:m,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:R?"not-allowed":"pointer",opacity:R?.6:1},children:(0,t.jsx)(a.Trash2,{size:14,strokeWidth:2.1})}),(0,t.jsxs)("span",{style:{fontSize:11,color:C},children:["发起时间:",E(e.createdAt)]})]}),d&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:d}),(0,t.jsxs)("div",{style:{background:"linear-gradient(135deg, #FBFAF6 0%, #FFFFFF 100%)",border:`1px solid ${b}`,borderRadius:8,padding:16,marginBottom:14},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"flex-start",flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{minWidth:0,flex:"1 1 420px"},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:6},children:"评测任务"}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,t.jsx)("div",{style:{fontSize:20,fontWeight:700,color:k,lineHeight:1.3},children:e.taskTitle}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})]}),(0,t.jsx)("div",{style:{marginTop:6,fontSize:12.5,color:e.taskDescription?A:T,lineHeight:1.6},children:e.taskDescription||""})]}),(0,t.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"flex-end",minWidth:408},children:(0,t.jsxs)("div",{style:{minWidth:200,flex:"0 0 200px",padding:"12px 14px",borderRadius:10,border:`1px solid ${eo?"#CDECDD":b}`,background:eo?"#F6FFFA":"#fff",display:"flex",alignItems:"center",justifyContent:"space-between",gap:14},children:[(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:11.5,color:C,marginBottom:4},children:(0,t.jsx)(p.Term,{id:"auto-observe",label:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:14,color:eo?y:T,fontWeight:700},children:eo?"开启中":"已关闭"})]}),(0,t.jsx)(q,{checked:eo,disabled:en,onChange:eg,"aria-label":"切换自动观测"})]})})]}),(0,t.jsxs)("div",{style:{marginTop:16,paddingTop:16,borderTop:`1px solid ${S}`,display:"grid",gridTemplateColumns:"minmax(220px, 1.25fr) minmax(180px, 1.15fr) repeat(3, minmax(120px, 1fr))",gap:14},children:[(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"eval-agent",label:"执行 Agent"}),value:e.executionAgent||"—",mono:!0,primary:!0,truncate:!0}),(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"evaluator",label:"评估器"}),value:M(e),truncate:!0}),(0,t.jsx)(P,{label:"trace 总数",value:String(e.traceCount)}),(0,t.jsx)(P,{label:"评测进度",value:`${e.doneCount} / ${e.traceCount}`,detail:(0,t.jsxs)("span",{style:{fontSize:11},children:[(0,t.jsxs)("span",{style:{color:y},children:["完成 ",e.doneCount]}),e.runningCount>0&&(0,t.jsxs)("span",{style:{color:"#1677ff"},children:[" · 进行中 ",e.runningCount]}),e.failedCount>0&&(0,t.jsxs)("span",{style:{color:m},children:[" · 失败 ",e.failedCount]})]})}),(0,t.jsx)(P,{label:"平均分",value:null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"--",valueColor:null!=e.avgScore?e.avgScore>=.8?y:e.avgScore>=.5?v:m:T})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600,color:k},children:"本批次 trace 评测列表"}),(0,t.jsx)("div",{style:{fontSize:12,color:C},children:"点行查看单条 trace 的评测细节"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",onClick:()=>{N(e=>!e),ee(""),Q("")},style:{padding:"5px 11px",borderRadius:6,border:`1px solid ${h}`,background:O?x:"#fff",color:h,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 增加评测 trace"})]}),(O||G||Z)&&(0,t.jsxs)("div",{style:{border:`1px solid ${b}`,borderRadius:8,background:"#fff",padding:12,marginBottom:10},children:[Z&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:Z}),G&&(0,t.jsx)("div",{style:U(y,"#F0F7F4","#D1EAE2"),children:G}),O?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsxs)("div",{style:{fontSize:12,color:C},children:["可追加 trace:",ed.length]}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",disabled:X||0===L.size,onClick:eu,style:{padding:"5px 12px",borderRadius:6,border:"none",background:X||0===L.size?"#bdb8df":h,color:"#fff",fontSize:12,cursor:X||0===L.size?"not-allowed":"pointer"},children:X?"追加中...":`开始评测 (${L.size})`})]}),0===ed.length?(0,t.jsx)("div",{style:{padding:16,textAlign:"center",fontSize:12,color:C},children:"没有可追加的 trace。"}):(0,t.jsxs)("div",{style:{maxHeight:260,overflow:"auto",border:`1px solid ${S}`,borderRadius:6},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,background:w,color:C,fontSize:11,fontWeight:500},children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{children:"TRACE ID"}),(0,t.jsx)("span",{children:"Trace 任务输入"}),(0,t.jsx)("span",{children:"Trace 任务输出"}),(0,t.jsx)("span",{style:{textAlign:"right"},children:"执行时间"})]}),ed.map(e=>{let r=e.task_id||"";return(0,t.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,cursor:"pointer",fontSize:12},children:[(0,t.jsx)("input",{type:"checkbox",checked:L.has(r),onChange:()=>{V(e=>{let t=new Set(e);return t.has(r)?t.delete(r):t.add(r),t})}}),(0,t.jsx)("code",{style:{color:C,fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},title:r,children:$(r)}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.query||"",children:e.query||"(空输入)"}),(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.final_result||"",children:e.final_result||"—"}),(0,t.jsxs)("span",{style:{display:"block",color:T,fontSize:10,marginTop:2},children:[e.framework||"",e.model?` \xb7 ${e.model}`:""]})]}),(0,t.jsx)("span",{style:{color:C,textAlign:"right"},children:_(e.timestamp)})]},r)})]})]}):null]}),(0,t.jsx)("div",{style:{border:`1px solid ${b}`,borderRadius:9,overflow:"hidden",background:"#fff"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{style:{background:w,borderBottom:`1px solid ${b}`},children:[(0,t.jsx)("th",{style:J(170,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"TRACE ID"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输入"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输出"})}),(0,t.jsx)("th",{style:J(80,"center"),children:"评测状态"}),(0,t.jsx)("th",{style:J(92,"left"),children:"得分"}),(0,t.jsx)("th",{style:J(110,"left"),children:"评测时间"})]})}),(0,t.jsx)("tbody",{children:n.map(r=>{let n,a=r.taskId||r.executionId||"",s=o.get(a),i=!!a,c=function(e){if(!(0,g.isTrajectoryEvaluationTerminal)(e.status)||"done"!==(0,g.getTrajectoryDisplayStatus)(e))return null;let t=W(e,"preset-agent-trace-quality")?e.trajectoryScore:null,r=W(e,"preset-agent-task-completion")?e.resultEvaluationScore??null:null;if(W(e,"preset-agent-trace-quality")&&(null==t||!Number.isFinite(t))||W(e,"preset-agent-task-completion")&&(null==r||!Number.isFinite(r)))return null;let n=[t,r].filter(e=>"number"==typeof e&&Number.isFinite(e));return n.length>0?n.reduce((e,t)=>e+t,0)/n.length:null}(r),d=F(r.traceInput,s?.query),f=F(r.traceOutput,s?.final_result),p=[F(s?.framework,r.traceFramework),F(s?.model,r.traceModel)].filter(Boolean).join(" · ");return(0,t.jsxs)("tr",{onClick:()=>{if(!a)return;D(e.runId);let t=new URLSearchParams({runId:e.runId,datasetId:r.datasetId,resultId:r.id});I&&t.set("autoWatchOnly","1"),l.push(`/eval/trajectory/${encodeURIComponent(a)}?${t.toString()}`)},style:{borderBottom:`1px solid ${S}`,cursor:i?"pointer":"default"},onMouseEnter:e=>{i&&(e.currentTarget.style.background=w)},onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,t.jsx)("td",{style:{...K("left"),fontFamily:"var(--font-mono)",color:A,whiteSpace:"nowrap"},title:a,children:$(a)}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:d,children:d?(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输入"})}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:f,children:f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f}),p&&(0,t.jsx)("div",{style:{fontSize:11,color:T,marginTop:2},children:p})]}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输出"})}),(0,t.jsx)("td",{style:K("center"),children:(0,t.jsx)("span",{style:{color:"warning"===(n=(0,g.getTrajectoryStatusTone)(r))?v:"danger"===n?m:"running"===n?"#1677ff":"success"===n?y:T,fontWeight:500},title:(0,g.getTrajectoryStatusTitle)(r),children:(0,g.getTrajectoryStatusLabel)(r)})}),(0,t.jsx)("td",{style:{...K("left"),minWidth:92,color:null!=c?h:T,fontWeight:600},children:null!=c?`${(0,u.fmtPercentScore)(c)} 分`:"--"}),(0,t.jsx)("td",{style:{...K("left"),color:C},children:E(r.createdAt)})]},r.id)})})]})})]})}function B({run:e,active:r,onClick:n,onDelete:s,deleteDisabled:i,deleting:o}){let l=null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"—",c=M(e);return(0,t.jsxs)("div",{onClick:n,style:{padding:12,border:`1px solid ${r?h:b}`,borderRadius:6,background:r?x:"#fff",cursor:"pointer",transition:"border-color 0.15s, background 0.15s"},onMouseEnter:e=>{r||(e.currentTarget.style.borderColor="#d8d6cf")},onMouseLeave:e=>{r||(e.currentTarget.style.borderColor=b)},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,t.jsxs)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:8,flex:1},children:[(0,t.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:k,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.taskTitle,children:e.taskTitle}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:o?"删除中...":i?"评测进行中,暂时不能删除":"删除该评测批次",disabled:i,onClick:e=>{e.stopPropagation(),i||s()},style:{flexShrink:0,width:22,height:22,borderRadius:6,border:"none",background:o?j:"transparent",color:i?T:C,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:i?"not-allowed":"pointer",opacity:i?.5:.9},children:(0,t.jsx)(a.Trash2,{size:13,strokeWidth:2.1})})]}),(0,t.jsx)("span",{style:{fontSize:11,color:C,flexShrink:0},children:_(e.createdAt)})]}),e.autoWatch&&(0,t.jsx)("div",{style:{marginBottom:8},children:(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:11.5,color:e.taskDescription?A:T,marginBottom:8,lineHeight:1.5,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},title:e.taskDescription||"",children:e.taskDescription||""}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:(0,t.jsx)("span",{style:{fontSize:11,color:C,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.executionAgent||"未识别 Agent"})}),(0,t.jsxs)("div",{style:{fontSize:11,color:C,marginBottom:8,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:c,children:["评估器:",c]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11},children:[(0,t.jsx)(O,{done:e.doneCount,running:e.runningCount,failed:e.failedCount,total:e.traceCount}),(0,t.jsxs)("span",{style:{color:C},children:[e.doneCount,"/",e.traceCount]}),(0,t.jsx)("span",{style:{flex:1}}),(0,t.jsx)("span",{style:{color:null!=e.avgScore?h:T,fontWeight:600},children:l})]})]})}function O({done:e,running:r,failed:n,total:a}){return 0===a?null:(0,t.jsxs)("div",{style:{display:"flex",height:4,width:60,background:w,borderRadius:2,overflow:"hidden"},children:[(0,t.jsx)("div",{style:{width:`${e/a*100}%`,background:y}}),(0,t.jsx)("div",{style:{width:`${r/a*100}%`,background:"#1677ff"}}),(0,t.jsx)("div",{style:{width:`${n/a*100}%`,background:m}})]})}function N({onCreate:e,error:r}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"还没有任何评测批次"}),r&&(0,t.jsx)("div",{style:{...U(m,j,"#FFD4D4"),maxWidth:480,margin:"0 auto 12px"},children:r}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"发起首次评测 →"})]})}function L({onClear:e}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"没有自动观测历史任务"}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:"#fff",color:h,border:`1px solid ${h}`,borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"查看全部历史任务"})]})}function P({label:e,value:r,detail:n,primary:a,mono:s,valueColor:i,truncate:o}){return(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:4},children:e}),(0,t.jsx)("div",{title:o?r:void 0,style:{fontSize:14,fontWeight:600,color:i||(a?k:A),fontFamily:s?"monospace":void 0,lineHeight:1.35,...o?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:r}),n?(0,t.jsx)("div",{style:{marginTop:3},children:n}):null]})}function q({checked:e,disabled:r,onChange:n,"aria-label":a}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":a,disabled:r,onClick:()=>n(!e),style:{width:42,height:22,borderRadius:999,border:`1px solid ${e?"#21A36B":"#C9CDD3"}`,background:e?"#23B26F":"#D6D8DC",padding:2,cursor:r?"not-allowed":"pointer",opacity:r?.6:1,boxShadow:e?"inset 0 0 0 1px rgba(255,255,255,0.2), 0 1px 4px rgba(18, 128, 79, 0.16)":"inset 0 0 0 1px rgba(255,255,255,0.35)",transition:"background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease"},children:(0,t.jsx)("span",{style:{display:"block",width:16,height:16,borderRadius:"50%",background:"#fff",transform:e?"translateX(20px)":"translateX(0)",boxShadow:"0 1px 4px rgba(24, 24, 27, 0.2)",transition:"transform 0.16s ease"}})})}function H(e,t,r){return{display:"inline-block",padding:r?"1px 6px":"2px 8px",background:e,color:t,borderRadius:4,fontSize:r?10:11,fontWeight:500,whiteSpace:"nowrap"}}function U(e,t,r){return{padding:10,marginBottom:12,borderRadius:6,background:t,border:`1px solid ${r}`,color:e,fontSize:12}}function J(e,t="left"){return{padding:"9px 10px",textAlign:t,fontWeight:500,color:C,fontSize:12,...e?{width:e}:{}}}function K(e="left"){return{padding:"9px 10px",textAlign:e,verticalAlign:"middle",fontSize:13}}e.s(["default",()=>z])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,573474,e=>{"use strict";let t=(0,e.i(456420).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],573474)},347101,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(853138),a=e.i(776639),s=e.i(519455),i=e.i(975157);function o({open:e,onOpenChange:o,title:l,description:c,confirmText:d="确认",cancelText:u="取消",tone:g="normal",onConfirm:f}){let[p,h]=r.useState(!1),x=async()=>{try{h(!0),await f(),o(!1)}finally{h(!1)}};return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:e=>!p&&o(e),children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsxs)(a.DialogTitle,{className:(0,i.cn)("flex items-center gap-2","danger"===g&&"text-destructive"),children:["danger"===g&&(0,t.jsx)(n.AlertTriangle,{className:"size-4"}),l]}),c&&(0,t.jsx)(a.DialogDescription,{children:c})]}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>o(!1),disabled:p,children:u}),(0,t.jsx)(s.Button,{onClick:x,disabled:p,className:(0,i.cn)("danger"===g&&"bg-error text-error-foreground hover:bg-error/90"),children:p?"处理中…":d})]})]})})}e.s(["ConfirmDialog",()=>o])},76706,861171,e=>{"use strict";function t(e,r=1){return null==e||Number.isNaN(e)?"--":(100*e).toFixed(r)}e.s(["fmtPercentScore",()=>t],76706);let r="[no-evaluable-case]",n="preset-agent-trace-quality",a={trace:"Trace 数据问题",dataset:"评测集配置问题",case:"Case 配置问题",skill:"Skill 归因问题",model:"模型调用问题",evaluator:"评测器问题",system:"系统问题"},s={trace_missing_input:{errorCategory:"trace",shortStatus:"Trace 缺输入",userMessage:"Trace 缺少实际输入,无法匹配评测集 case。",reason:"系统没有从本次执行记录中提取到可用于匹配 case 的任务输入。",nextAction:"检查 trace 采集是否包含用户任务输入;必要时重新采集或重新执行该任务。",retryable:!1,stage:"case-match"},trace_missing_output:{errorCategory:"trace",shortStatus:"Trace 缺输出",userMessage:"Trace 缺少实际输出,无法做任务完成度评测。",reason:"本次 trace 没有提取到 Agent 最终输出,也没有可用的 execution.finalResult fallback。",nextAction:"检查 Agent 是否产出最终回复;确认 trace 采集包含 assistant final message;必要时重新跑该 case。",retryable:!1,stage:"result-artifact"},task_output_extraction_failed:{errorCategory:"trace",shortStatus:"任务输出提取失败",userMessage:"无法从 trace 中提取任务输出。",reason:"任务输出提取流程没有定位到可用于任务完成度评测的最终输出,且没有 fallback 可用。",nextAction:"检查 trace 中是否包含最终回复或关键工具输出;必要时重试评测或重新采集 trace。",retryable:!0,stage:"result-artifact"},trace_data_empty:{errorCategory:"trace",shortStatus:"Trace 数据为空",userMessage:"Trace 数据为空,无法评测。",reason:"系统没有找到可用的 session interactions,也没有足够的 query/finalResult 生成兜底交互。",nextAction:"检查 trace 采集、上传或执行记录入库是否完整。",retryable:!1,stage:"trace-load"},trace_parse_failed:{errorCategory:"trace",shortStatus:"Trace 解析失败",userMessage:"Trace 数据解析失败,无法评测。",reason:"Session.interactions 不是合法 JSON 或结构不兼容。",nextAction:"检查 trace 采集数据格式,必要时重新上传或修复采集链路。",retryable:!1,stage:"trace-parse"},case_not_matched:{errorCategory:"case",shortStatus:"无匹配 case",userMessage:"Trace 输入没有匹配到可用于评测的 case。",reason:"本次任务输入与当前评测集中的 case.input 没有达到可用匹配。",nextAction:"补充对应 case,或确认本次 trace 的任务输入与评测集 case.input 是否一致。",retryable:!1,stage:"case-match"},case_match_failed:{errorCategory:"case",shortStatus:"匹配 case 失败",userMessage:"无法根据 trace 输入自动定位可用于评测的 case。",reason:"trace 输入没有精确匹配到评测集 case,后台自动匹配也没有得到可用结果。",nextAction:"检查本次 trace 的任务输入是否与评测集 case.input 对齐;必要时补充 case 或重新选择评测集。",retryable:!0,stage:"case-match"},dataset_missing:{errorCategory:"dataset",shortStatus:"评测集不存在",userMessage:"评测集不存在,无法匹配可评测 case。",reason:"评测结果关联的数据集已经不存在,或当前用户不可访问。",nextAction:"重新选择评测集后再发起评测。",retryable:!1,stage:"dataset-load"},dataset_empty:{errorCategory:"dataset",shortStatus:"评测集为空",userMessage:"评测集没有可评测 case。",reason:"当前匹配范围内没有可用于评测的 case。",nextAction:"补充评测集 case 后重新评测。",retryable:!1,stage:"dataset-load"},case_missing_expected_output:{errorCategory:"case",shortStatus:"Case 缺预期结果",userMessage:"Case 缺少预期结果,无法做任务完成度评测。",reason:"已匹配到 case,但 expectedOutput 为空。",nextAction:"为该 case 补充 expectedOutput 后重新评测。",retryable:!1,stage:"case-match"},custom_reference_missing:{errorCategory:"case",shortStatus:"缺 reference_output",userMessage:"自定义评估器缺少 reference_output。",reason:"自定义评估器 prompt 引用了 reference_output,但没有匹配到带预期结果的 case。",nextAction:"补充评测集 expectedOutput,或调整自定义评估器 prompt。",retryable:!1,stage:"custom-evaluator"},trace_step_analysis_failed:{errorCategory:"model",shortStatus:"步骤抽取失败",userMessage:"Trace 步骤动态分析失败。",reason:"系统尝试从 trace 中抽取实际执行步骤时失败,通常与模型配置或调用异常有关。",nextAction:"检查评测模型配置和服务状态后重试。",retryable:!0,stage:"trace-step-analysis"},trace_no_steps:{errorCategory:"trace",shortStatus:"Trace 无步骤",userMessage:"Trace 无可提取执行步骤,无法做轨迹评测。",reason:"系统没有从本次 trace 中提取到可用于轨迹评测的实际执行步骤。",nextAction:"检查 trace 质量、采集粒度或执行记录是否完整。",retryable:!1,stage:"trace-step-analysis"},evaluator_timeout:{errorCategory:"evaluator",shortStatus:"评测超时",userMessage:"评测器运行超时。",reason:"评测器在限定时间内没有返回结果。",nextAction:"重试评测;如果持续出现,请检查模型服务响应时间。",retryable:!0,stage:"evaluator"},evaluator_output_invalid:{errorCategory:"evaluator",shortStatus:"评测器输出异常",userMessage:"评测器未返回有效结构化结果。",reason:"评测器输出无法解析为系统需要的 JSON/评分结构。",nextAction:"重试评测;如果持续出现,请检查评测器模型输出。",retryable:!0,stage:"evaluator"},result_evaluator_failed:{errorCategory:"evaluator",shortStatus:"结果评测失败",userMessage:"任务完成度评测失败。",reason:"任务完成度评测器没有产出可用评分或评测 session。",nextAction:"重试评测;如果持续出现,请检查模型配置和评测器日志。",retryable:!0,stage:"result-evaluator"},persist_failed:{errorCategory:"system",shortStatus:"保存失败",userMessage:"评测结果保存失败。",reason:"评测已执行,但结果写入数据库时失败。",nextAction:"检查数据库或服务状态后重试。",retryable:!0,stage:"persist"},evaluator_recovered_failed:{errorCategory:"system",shortStatus:"评测进程异常",userMessage:"评测进程异常中断。",reason:"后台恢复逻辑发现该评测长期停留在 pending/running 状态。",nextAction:"重试评测,并查看服务日志确认是否有进程异常。",retryable:!0,stage:"recover"}};function i(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e){return"number"==typeof e&&Number.isFinite(e)}function l(e){return i(e?.rawAnalysis)}function c(e){return Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[]}function d(e,t){let r=c(e);return 0===r.length?t===n:r.includes(t)}function u(e){return!!(d(e,n)&&o(e.trajectoryScore)||d(e,"preset-agent-task-completion")&&null!=function(e){if(o(e.resultEvaluationScore))return e.resultEvaluationScore;let t=i(l(e).resultEvaluation);return o(t.score)?t.score:null}(e))||!!c(e).some(e=>e.startsWith("custom-"))&&null!=function(e){if(o(e.customEvaluationScore))return e.customEvaluationScore;let t=(Array.isArray(e.customEvaluations)?e.customEvaluations:e.customEvaluations&&"object"==typeof e.customEvaluations?Object.values(e.customEvaluations):[]).map(e=>i(e).score).filter(o);return t.length>0?t.reduce((e,t)=>e+t,0)/t.length:null}(e)}function g(e,t={}){let r=s[e]??{errorCategory:"system",shortStatus:"评测失败",userMessage:"评测执行失败。",reason:"评测执行过程中出现未分类异常。",nextAction:"重试评测;如果持续出现,请查看服务日志。",retryable:!0,stage:"unknown"};return{errorCode:e,errorCategory:r.errorCategory,shortStatus:r.shortStatus,userMessage:t.userMessage||r.userMessage,reason:t.reason||r.reason,nextAction:t.nextAction||r.nextAction,retryable:"boolean"==typeof t.retryable?t.retryable:r.retryable,stage:t.stage||r.stage,...t.details?{details:t.details}:{},...t.internal?{internal:t.internal}:{}}}function f(e){if(!e)return null;let t=e.diagnostic;if(t&&"object"==typeof t&&!Array.isArray(t))return t;let n=l(e),a=n.diagnostic;if(a&&"object"==typeof a&&!Array.isArray(a))return a;let s="string"==typeof n.resultEvaluationError?n.resultEvaluationError.trim():"",i=String(e.resultEvaluationError||s||"").trim();if(i)return g(i.includes("结果输出提取失败")||i.includes("任务输出提取")?"task_output_extraction_failed":"result_evaluator_failed",{details:i,reason:i});let o=String(e.errorMessage||"").trim();return o?o.includes(r)?g("case_not_matched",{details:v(o),reason:v(o)}):"failed"===e.status&&o.includes("[recover]")?g("evaluator_recovered_failed",{details:o,reason:o}):null:null}function p(e){return"done"===e||"failed"===e}function h(e){return"pending"===e.status?"pending":"running"===e.status?"running":f(e)?"done"===e.status&&u(e)?"partial_failed":"failed":e.status}function x(e){if("pending"===e.status)return"待评测";if("running"===e.status)return"评测中";let t=f(e);return t?"done"===e.status&&u(e)?"部分评测失败":t.shortStatus:"done"===e.status?"已评测":"评测失败"}function y(e){if("pending"===e.status)return"muted";if("running"===e.status)return"running";let t=f(e);return t?"done"===e.status&&u(e)||["trace","dataset","case","skill"].includes(t.errorCategory)?"warning":"danger":"done"===e.status?"success":"danger"}function m(e){if("pending"===e.status||"running"===e.status)return"";let t=f(e);return t?[t.userMessage,t.reason?`具体原因:${t.reason}`:"",t.nextAction?`下一步建议:${t.nextAction}`:"",t.details?`详细信息:${t.details}`:""].filter(Boolean).join("\n"):String(e.errorMessage||e.resultEvaluationError||"").trim()}function j(e,t={}){if(!e)return"该执行尚未评测";let r=f(e);if(r&&"pending"!==e.status&&"running"!==e.status)return[r.userMessage,"",`错误分类:${a[r.errorCategory]}`,`具体原因:${r.reason}`,`下一步建议:${r.nextAction}`,r.details?`详细信息:${r.details}`:""].filter(e=>""!==e).join("\n");let n=t.composite??null;return null!=n&&Number.isFinite(n)?n>=.8?"该执行在结果与过程两个维度均表现良好":n>=.5?"该执行结果基本可用,但部分关键动作覆盖不足":"该执行关键动作覆盖不足,建议优先排查":"该执行尚未评测"}function v(e){return e.replace(r,"").trim()||"未匹配到可评测 case"}e.s(["getTrajectoryDisplayStatus",()=>h,"getTrajectoryOverallConclusion",()=>j,"getTrajectoryStatusLabel",()=>x,"getTrajectoryStatusTitle",()=>m,"getTrajectoryStatusTone",()=>y,"isTrajectoryEvaluationTerminal",()=>p,"parseTrajectoryDiagnostic",()=>f],861171)},642726,e=>{"use strict";let t=["evaluator","checker","judge","locator","assessor","grader","评估器"],r=["你是「轨迹评估器」的总协调者","你是「Agent 任务完成度」评估器","trace-quality-evaluator","task-completion-evaluator","reference_trajectory","actual_trace","key_point_findings","key-points-checker","detect_redundancy_and_loops","已写入 final_result.json"],n=new Set(["trace-quality-evaluator","task-completion-evaluator"]);function a(e){let r=String(e||"").trim().toLowerCase();return!!r&&(!!n.has(r)||t.some(e=>r.includes(e)))}function s(e){return!!e&&(a(e.name)||a(e.parentAgent))}function i(e){return!!e&&(!![e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].some(e=>a(e))||!!e&&[e.query,e.final_result,e.label].some(e=>{let t=String(e||"");return!!t&&r.some(e=>t.includes(e))}))}function o(e){return e?String([e.agentName,e.agent,...Array.isArray(e.agents)?e.agents:[]].find(e=>{let t=String(e||"").trim();return t&&!a(t)})||"").trim():""}e.s(["getPrimaryExecutionAgentName",()=>o,"isEvaluatorAgent",()=>s,"isEvaluatorTraceRecord",()=>i])},111298,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(618566),a=e.i(573474),s=e.i(846696),i=e.i(183752),o=e.i(927643),l=e.i(540568),c=e.i(726526),d=e.i(347101),u=e.i(76706),g=e.i(861171),f=e.i(642726),p=e.i(460435);let h="#534AB7",x="#EEEDFE",y="#0F6E56",m="#A32D2D",j="#FFEBEB",v="#9A7311",b="#eceae4",S="#f3f2ee",w="#f9f9fb",k="#1a1a18",A="#2c2b28",C="#6b6a66",T="#8a8884",I="agent-insight:eval-history-state";function E(e){if(!e)return"--";try{return new Date(e).toLocaleString("zh-CN",{hour12:!1})}catch{return e}}function _(e){if(!e)return"--";try{let t=new Date(e),r=Date.now()-t.getTime();if(r<6e4)return"刚刚";if(r<36e5)return`${Math.floor(r/6e4)} 分钟前`;if(r<864e5)return`${Math.floor(r/36e5)} 小时前`;return`${Math.floor(r/864e5)} 天前`}catch{return e}}function $(e){return e&&e.slice(0,14)||"--"}function F(...e){for(let t of e){if("string"!=typeof t)continue;let e=t.trim();if(e)return e}return""}function W(e,t){let r=Array.isArray(e.selectedEvaluators)?e.selectedEvaluators:[];return 0===r.length?"preset-agent-trace-quality"===t:r.includes(t)}function M(e){let t=e.evaluatorName?e.evaluatorName.split("、").map(e=>e.trim()):[],r=e.evaluatorIds.map((e,r)=>e.startsWith("custom-")?"":t[r]?t[r]:"preset-agent-task-completion"===e?"Agent 任务完成度":"preset-agent-trace-quality"===e?"Agent 轨迹质量":e).filter(Boolean);return r.length>0?Array.from(new Set(r)).join("、"):"—"}function D(){let{t:e}=(0,c.useLocale)(),{user:a}=(0,o.useAuth)(),u=(0,n.useRouter)(),g=(0,n.useSearchParams)(),f=g?.get("runId")||"",y=g?.get("autoWatchOnly")==="1"||g?.get("autoWatchOnly")==="true",[m,j]=(0,r.useState)([]),[v,S]=(0,r.useState)([]),[w,A]=(0,r.useState)([]),[T,E]=(0,r.useState)(10),[_,$]=(0,r.useState)(!1),[F,W]=(0,r.useState)(!1),[M,D]=(0,r.useState)(null),[z,O]=(0,r.useState)(!0),[P,q]=(0,r.useState)(""),[H,U]=(0,r.useState)(!1),[J,K]=(0,r.useState)(y),[V,X]=(0,r.useState)(null),[Y,G]=(0,r.useState)(null),Q=(0,r.useRef)(null),Z=(0,r.useRef)(null),ee=(0,r.useRef)(!1),et=(0,r.useRef)("");(0,r.useEffect)(()=>{if(!a)return;let e=!1;return(async()=>{if(f&&!ee.current&&1){let e=window.sessionStorage.getItem(I);if(e)try{let t=JSON.parse(e);if(Date.now()-Number(t.savedAt||0)<6e5&&t.user===a&&t.selectedRunId===f&&t.autoWatchOnly===y&&Array.isArray(t.runSummaries)&&t.runSummaries.some(e=>e.runId===f)){ee.current=!0,A(t.runSummaries),E(t.historyOffset||10),$(!!t.historyHasMore),D(f),K(t.autoWatchOnly),U(t.historyOpen),j([]),S([]),q(""),O(!1),requestAnimationFrame(()=>{Z.current&&(Z.current.scrollTop=t.historyScrollTop||0)});return}}catch{window.sessionStorage.removeItem(I)}}e||(O(!0),A([]),j([]),S([]),E(10),$(!1),D(null));try{let t=new URLSearchParams({user:a,limit:String(10)}),r=f||et.current;r&&t.set("includeRunId",r),J&&t.set("autoWatchOnly","1");let n=await (0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`),s=await n.json();if(!n.ok)throw Error(s?.error||n.statusText);let o=Array.isArray(s?.runs)?s.runs:[];if(!e){A(o),E("number"==typeof s?.nextOffset?s.nextOffset:10),$(!!s?.hasMore);let e=f||et.current,t=e?o.find(t=>t.runId===e):null;D(t?.runId||o[0]?.runId||null),et.current="",q("")}}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}finally{e||O(!1)}})(),()=>{e=!0}},[a,J,f,y]),(0,r.useEffect)(()=>{if(!a||!M)return;let e=!1,t=async()=>{try{let t=await (0,i.apiFetch)(`/api/eval/trajectory/results?user=${encodeURIComponent(a)}&runId=${encodeURIComponent(M)}&limit=500`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);let n=Array.isArray(r?.results)?r.results:[],s=Array.from(new Set(n.map(e=>e.taskId||"").filter(Boolean))),o=[];if(s.length>0){let e=new URLSearchParams({user:a,taskIds:s.join(","),skipAutoEvalReady:"1"}),t=await (0,i.apiFetch)(`/api/observe/data?${e.toString()}`),r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);o=Array.isArray(r)?r:[]}e||(j(n),S(o),q(""))}catch(r){let t=r instanceof Error?r.message:String(r);e||q(`加载失败:${t}`)}};t();let r=setInterval(t,5e3);return()=>{e=!0,clearInterval(r)}},[M,a]),(0,r.useEffect)(()=>{M||(j([]),S([]))},[M]),(0,r.useEffect)(()=>{let e=Q.current;if(!e||!a||!_||F)return;let t=new IntersectionObserver(e=>{if(!e.some(e=>e.isIntersecting))return;W(!0);let t=new URLSearchParams({user:a,limit:String(10)});t.set("offset",String(T)),J&&t.set("autoWatchOnly","1"),(0,i.apiFetch)(`/api/eval/trajectory/runs?${t.toString()}`).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=Array.isArray(t?.runs)?t.runs:[];A(e=>{let t=new Set(e.map(e=>e.runId));return[...e,...r.filter(e=>!t.has(e.runId))]}),E("number"==typeof t?.nextOffset?t.nextOffset:T+10),$(!!t?.hasMore)}).catch(e=>q(`加载历史任务失败:${e instanceof Error?e.message:String(e)}`)).finally(()=>W(!1))},{rootMargin:"180px"});return t.observe(e),()=>t.disconnect()},[J,_,F,T,a]);let er=(0,r.useMemo)(()=>{let e=new Map;for(let t of v)t.task_id&&e.set(t.task_id,t),t.upload_id&&e.set(t.upload_id,t);return e},[v]),en=(0,r.useMemo)(()=>w.find(e=>e.runId===M)||null,[w,M]),ea=(0,r.useMemo)(()=>m.filter(e=>!e.watchPlaceholder),[m]),es=async()=>{if(a&&V){G(V.runId);try{let e=await (0,i.apiFetch)("/api/eval/trajectory/runs",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a,runId:V.runId})}),t=await e.json();if(!e.ok)throw Error(t?.error||e.statusText);let r=w.findIndex(e=>e.runId===V.runId),n=w.filter(e=>e.runId!==V.runId),o=M===V.runId?n[r]?.runId||n[r-1]?.runId||n[0]?.runId||null:M;A(n),M===V.runId&&(D(o),j([]),S([])),X(null),q(""),s.toast.success(`已删除评测批次「${V.taskTitle}」`)}catch(e){throw s.toast.error(`删除失败:${e instanceof Error?e.message:String(e)}`),e}finally{G(null)}}},ei=(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsxs)("button",{onClick:()=>U(e=>!e),title:H?"收起历史任务":"展开历史任务",style:{display:"flex",alignItems:"center",gap:5,padding:"5px 10px",background:H?x:"transparent",color:H?h:C,border:`1px solid ${H?h:b}`,borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all 0.15s"},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsx)("button",{onClick:()=>u.push("/eval/trajectory"),style:{padding:"6px 14px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 发起新评测"})]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.AppTopBar,{title:(0,t.jsx)(p.Term,{id:"eval-batch",label:e("nav.eval")}),actions:ei,showDefaultActions:!1}),(0,t.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden",minHeight:0},children:[(0,t.jsx)("main",{style:{flex:1,overflowY:"auto",minWidth:0,color:k},children:z?(0,t.jsx)("div",{style:{padding:24,color:C},children:"正在加载评测批次..."}):0!==w.length||J?0===w.length?(0,t.jsx)(L,{onClear:()=>K(!1)}):en?(0,t.jsx)(R,{run:en,results:ea,records:v,recordMap:er,router:u,user:a,error:P,autoWatchOnly:J,onBeforeOpenTrace:function(e){if(!a)return;let t={user:a,selectedRunId:e,autoWatchOnly:J,historyOpen:H,historyOffset:T,historyHasMore:_,historyScrollTop:Z.current?.scrollTop||0,runSummaries:w,savedAt:Date.now()};window.sessionStorage.setItem(I,JSON.stringify(t))},onDeleteRun:()=>X(en),deleteDisabled:en.runningCount>0||Y===en.runId,deleting:Y===en.runId},en.runId):null:(0,t.jsx)(N,{onCreate:()=>u.push("/eval/trajectory"),error:P})}),(0,t.jsxs)("aside",{style:{width:300*!!H,flexShrink:0,borderLeft:H?`1px solid ${b}`:"none",background:"#FBFAF6",display:"flex",flexDirection:"column",overflow:"hidden",transition:"width 0.2s ease"},children:[(0,t.jsxs)("header",{style:{display:"flex",alignItems:"center",padding:"12px 16px",borderBottom:`1px solid ${b}`,flexShrink:0,whiteSpace:"nowrap"},children:[(0,t.jsxs)("div",{style:{fontSize:13,fontWeight:600,color:k,display:"flex",alignItems:"center",gap:6},children:[(0,t.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",children:[(0,t.jsx)("circle",{cx:"6.5",cy:"6.5",r:"5.5",stroke:"currentColor",strokeWidth:"1.3"}),(0,t.jsx)("path",{d:"M6.5 3.5v3l2 1",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]}),"历史任务"]}),(0,t.jsxs)("button",{type:"button",onClick:function(){et.current=M||"",K(e=>!e)},title:J?"查看全部历史任务":"只看自动观测任务",style:{marginLeft:8,padding:"5px 10px",height:28,borderRadius:8,border:`1px solid ${J?h:b}`,background:J?x:"#fff",color:J?h:C,display:"flex",alignItems:"center",gap:6,fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 13 13",fill:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M2 3h9M3.5 6.5h6M5.2 10h2.6",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})}),(0,t.jsx)("span",{children:J?"全部任务":"自动观测任务"})]})]}),(0,t.jsxs)("div",{ref:Z,style:{flex:1,overflowY:"auto",padding:10,display:"flex",flexDirection:"column",gap:6},children:[0===w.length?(0,t.jsx)("div",{style:{padding:24,textAlign:"center",fontSize:12,color:C},children:J?"没有自动观测任务":"还没有任何评测任务"}):w.map(e=>(0,t.jsx)(B,{run:e,active:e.runId===M,onClick:()=>D(e.runId),onDelete:()=>X(e),deleteDisabled:e.runningCount>0||Y===e.runId,deleting:Y===e.runId},e.runId)),(0,t.jsx)("div",{ref:Q,style:{height:1}}),F&&(0,t.jsx)("div",{style:{padding:8,textAlign:"center",fontSize:11,color:C},children:"正在加载更多..."})]})]})]}),(0,t.jsx)(d.ConfirmDialog,{open:!!V,onOpenChange:e=>{(e||!Y)&&(e||X(null))},title:"删除这次评测执行?",description:V?`会删除该批次下的评测结果和由本批次派生的优化点数据,原始 trace 会保留,可稍后重新评测。任务:${V.taskTitle}`:void 0,confirmText:"删除批次",cancelText:"取消",tone:"danger",onConfirm:es})]})}function z(){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{style:{padding:24,color:C},children:"Loading..."}),children:(0,t.jsx)(D,{})})}function R({run:e,results:n,records:s,recordMap:o,router:l,user:c,error:d,autoWatchOnly:I,onBeforeOpenTrace:D,onDeleteRun:z,deleteDisabled:R,deleting:B}){let[O,N]=(0,r.useState)(!1),[L,V]=(0,r.useState)(new Set),[X,Y]=(0,r.useState)(!1),[G,Q]=(0,r.useState)(""),[Z,ee]=(0,r.useState)(""),[et,er]=(0,r.useState)([]),[en,ea]=(0,r.useState)(!1),[es,ei]=(0,r.useState)(null),eo=es??e.autoWatch,el=O?et:s,ec=(0,r.useMemo)(()=>new Set(n.map(e=>e.taskId||e.executionId||"").filter(Boolean)),[n]),ed=(0,r.useMemo)(()=>{let t=e.watchedAgent||e.executionAgent;return el.filter(e=>!!e.task_id).filter(e=>!(0,f.isEvaluatorTraceRecord)(e)).filter(e=>!ec.has(e.task_id||"")).filter(e=>(0,f.getPrimaryExecutionAgentName)(e)===t).sort((e,t)=>{let r=e.timestamp?new Date(e.timestamp).getTime():0;return(t.timestamp?new Date(t.timestamp).getTime():0)-r})},[ec,el,e.executionAgent,e.watchedAgent]);(0,r.useEffect)(()=>{if(!O||!c||et.length>0)return;let e=!1,t=new URLSearchParams({user:c,skipAutoEvalReady:"1"});return(0,i.apiFetch)(`/api/observe/data?${t.toString()}`).then(async t=>{let r=await t.json();if(!t.ok)throw Error(r?.error||t.statusText);e||er(Array.isArray(r)?r:[])}).catch(t=>{e||ee(`加载可追加 trace 失败:${t instanceof Error?t.message:String(t)}`)}),()=>{e=!0}},[et.length,O,c]);let eu=async()=>{if(!c)return void ee("请先登录");let t=Array.from(L);if(0===t.length)return void ee("请至少选择一条 trace");Y(!0),ee(""),Q("");try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,taskIds:t,evaluators:e.evaluatorIds})}),n=await r.json();if(!r.ok)return void ee(`追加失败:${n?.error||r.statusText}`);Q(`已追加 ${n.created?.length??0} 条 trace 到本批次`),V(new Set),N(!1)}catch(e){ee(`追加失败:${e instanceof Error?e.message:String(e)}`)}finally{Y(!1)}},eg=async t=>{if(!c)return void ee("请先登录");ea(!0),ee(""),Q(""),ei(t);try{let r=await (0,i.apiFetch)("/api/eval/trajectory/run",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:c,evaluatorRunId:e.runId,autoWatch:t})}),n=await r.json();if(!r.ok){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${n?.error||r.statusText}`);return}Q(t?"已重新开启自动观测":"已关闭自动观测,后续新 trace 不会再自动追加")}catch(r){ei(e.autoWatch),ee(`${t?"开启":"关闭"}自动观测失败:${r instanceof Error?r.message:String(r)}`)}finally{ea(!1)}};return(0,t.jsxs)("div",{style:{padding:"18px 22px 28px"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14,flexWrap:"wrap"},children:[(0,t.jsx)("span",{style:H(x,h),children:"评测批次"}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y),children:"自动观测"}),(0,t.jsx)("span",{style:{fontSize:12,color:C},children:"任务已同步到历史卡片与详情页"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:B?"删除中...":R?"评测进行中,暂时不能删除":"删除该评测批次",disabled:R,onClick:z,style:{width:28,height:28,borderRadius:8,border:`1px solid ${R?b:"#F1D1D1"}`,background:B?j:"#fff",color:R?T:m,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:R?"not-allowed":"pointer",opacity:R?.6:1},children:(0,t.jsx)(a.Trash2,{size:14,strokeWidth:2.1})}),(0,t.jsxs)("span",{style:{fontSize:11,color:C},children:["发起时间:",E(e.createdAt)]})]}),d&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:d}),(0,t.jsxs)("div",{style:{background:"linear-gradient(135deg, #FBFAF6 0%, #FFFFFF 100%)",border:`1px solid ${b}`,borderRadius:8,padding:16,marginBottom:14},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",gap:16,alignItems:"flex-start",flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{minWidth:0,flex:"1 1 420px"},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:6},children:"评测任务"}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,t.jsx)("div",{style:{fontSize:20,fontWeight:700,color:k,lineHeight:1.3},children:e.taskTitle}),eo&&(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})]}),(0,t.jsx)("div",{style:{marginTop:6,fontSize:12.5,color:e.taskDescription?A:T,lineHeight:1.6},children:e.taskDescription||""})]}),(0,t.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"flex-end",minWidth:408},children:(0,t.jsxs)("div",{style:{minWidth:200,flex:"0 0 200px",padding:"12px 14px",borderRadius:10,border:`1px solid ${eo?"#CDECDD":b}`,background:eo?"#F6FFFA":"#fff",display:"flex",alignItems:"center",justifyContent:"space-between",gap:14},children:[(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:11.5,color:C,marginBottom:4},children:(0,t.jsx)(p.Term,{id:"auto-observe",label:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:14,color:eo?y:T,fontWeight:700},children:eo?"开启中":"已关闭"})]}),(0,t.jsx)(q,{checked:eo,disabled:en,onChange:eg,"aria-label":"切换自动观测"})]})})]}),(0,t.jsxs)("div",{style:{marginTop:16,paddingTop:16,borderTop:`1px solid ${S}`,display:"grid",gridTemplateColumns:"minmax(220px, 1.25fr) minmax(180px, 1.15fr) repeat(3, minmax(120px, 1fr))",gap:14},children:[(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"eval-agent",label:"执行 Agent"}),value:e.executionAgent||"—",mono:!0,primary:!0,truncate:!0}),(0,t.jsx)(P,{label:(0,t.jsx)(p.Term,{id:"evaluator",label:"评估器"}),value:M(e),truncate:!0}),(0,t.jsx)(P,{label:"trace 总数",value:String(e.traceCount)}),(0,t.jsx)(P,{label:"评测进度",value:`${e.doneCount} / ${e.traceCount}`,detail:(0,t.jsxs)("span",{style:{fontSize:11},children:[(0,t.jsxs)("span",{style:{color:y},children:["完成 ",e.doneCount]}),e.runningCount>0&&(0,t.jsxs)("span",{style:{color:"#1677ff"},children:[" · 进行中 ",e.runningCount]}),e.failedCount>0&&(0,t.jsxs)("span",{style:{color:m},children:[" · 失败 ",e.failedCount]})]})}),(0,t.jsx)(P,{label:"平均分",value:null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"--",valueColor:null!=e.avgScore?e.avgScore>=.8?y:e.avgScore>=.5?v:m:T})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600,color:k},children:"本批次 trace 评测列表"}),(0,t.jsx)("div",{style:{fontSize:12,color:C},children:"点行查看单条 trace 的评测细节"}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",onClick:()=>{N(e=>!e),ee(""),Q("")},style:{padding:"5px 11px",borderRadius:6,border:`1px solid ${h}`,background:O?x:"#fff",color:h,fontSize:12,fontWeight:500,cursor:"pointer"},children:"+ 增加评测 trace"})]}),(O||G||Z)&&(0,t.jsxs)("div",{style:{border:`1px solid ${b}`,borderRadius:8,background:"#fff",padding:12,marginBottom:10},children:[Z&&(0,t.jsx)("div",{style:U(m,j,"#FFD4D4"),children:Z}),G&&(0,t.jsx)("div",{style:U(y,"#F0F7F4","#D1EAE2"),children:G}),O?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsxs)("div",{style:{fontSize:12,color:C},children:["可追加 trace:",ed.length]}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsx)("button",{type:"button",disabled:X||0===L.size,onClick:eu,style:{padding:"5px 12px",borderRadius:6,border:"none",background:X||0===L.size?"#bdb8df":h,color:"#fff",fontSize:12,cursor:X||0===L.size?"not-allowed":"pointer"},children:X?"追加中...":`开始评测 (${L.size})`})]}),0===ed.length?(0,t.jsx)("div",{style:{padding:16,textAlign:"center",fontSize:12,color:C},children:"没有可追加的 trace。"}):(0,t.jsxs)("div",{style:{maxHeight:260,overflow:"auto",border:`1px solid ${S}`,borderRadius:6},children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,background:w,color:C,fontSize:11,fontWeight:500},children:[(0,t.jsx)("span",{}),(0,t.jsx)("span",{children:"TRACE ID"}),(0,t.jsx)("span",{children:"Trace 任务输入"}),(0,t.jsx)("span",{children:"Trace 任务输出"}),(0,t.jsx)("span",{style:{textAlign:"right"},children:"执行时间"})]}),ed.map(e=>{let r=e.task_id||"";return(0,t.jsxs)("label",{style:{display:"grid",gridTemplateColumns:"28px minmax(170px, 220px) minmax(0, 1fr) minmax(0, 1fr) 84px",gap:10,alignItems:"center",padding:"8px 10px",borderBottom:`1px solid ${S}`,cursor:"pointer",fontSize:12},children:[(0,t.jsx)("input",{type:"checkbox",checked:L.has(r),onChange:()=>{V(e=>{let t=new Set(e);return t.has(r)?t.delete(r):t.add(r),t})}}),(0,t.jsx)("code",{style:{color:C,fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},title:r,children:$(r)}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.query||"",children:e.query||"(空输入)"}),(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.final_result||"",children:e.final_result||"—"}),(0,t.jsxs)("span",{style:{display:"block",color:T,fontSize:10,marginTop:2},children:[e.framework||"",e.model?` \xb7 ${e.model}`:""]})]}),(0,t.jsx)("span",{style:{color:C,textAlign:"right"},children:_(e.timestamp)})]},r)})]})]}):null]}),(0,t.jsx)("div",{style:{border:`1px solid ${b}`,borderRadius:9,overflow:"hidden",background:"#fff"},children:(0,t.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{style:{background:w,borderBottom:`1px solid ${b}`},children:[(0,t.jsx)("th",{style:J(170,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"TRACE ID"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输入"})}),(0,t.jsx)("th",{style:J(void 0,"left"),children:(0,t.jsx)(p.Term,{id:"trace",label:"Trace 任务输出"})}),(0,t.jsx)("th",{style:J(80,"center"),children:"评测状态"}),(0,t.jsx)("th",{style:J(92,"left"),children:"得分"}),(0,t.jsx)("th",{style:J(110,"left"),children:"评测时间"})]})}),(0,t.jsx)("tbody",{children:n.map(r=>{let n,a=r.taskId||r.executionId||"",s=o.get(a),i=!!a,c=function(e){if(!(0,g.isTrajectoryEvaluationTerminal)(e.status)||"done"!==(0,g.getTrajectoryDisplayStatus)(e))return null;let t=W(e,"preset-agent-trace-quality")?e.trajectoryScore:null,r=W(e,"preset-agent-task-completion")?e.resultEvaluationScore??null:null;if(W(e,"preset-agent-trace-quality")&&(null==t||!Number.isFinite(t))||W(e,"preset-agent-task-completion")&&(null==r||!Number.isFinite(r)))return null;let n=[t,r].filter(e=>"number"==typeof e&&Number.isFinite(e));return n.length>0?n.reduce((e,t)=>e+t,0)/n.length:null}(r),d=F(r.traceInput,s?.query),f=F(r.traceOutput,s?.final_result),p=[F(s?.framework,r.traceFramework),F(s?.model,r.traceModel)].filter(Boolean).join(" · ");return(0,t.jsxs)("tr",{onClick:()=>{if(!a)return;D(e.runId);let t=new URLSearchParams({runId:e.runId,datasetId:r.datasetId,resultId:r.id});I&&t.set("autoWatchOnly","1"),l.push(`/eval/trajectory/${encodeURIComponent(a)}?${t.toString()}`)},style:{borderBottom:`1px solid ${S}`,cursor:i?"pointer":"default"},onMouseEnter:e=>{i&&(e.currentTarget.style.background=w)},onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,t.jsx)("td",{style:{...K("left"),fontFamily:"var(--font-mono)",color:A,whiteSpace:"nowrap"},title:a,children:$(a)}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:d,children:d?(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输入"})}),(0,t.jsx)("td",{style:{...K("left"),maxWidth:280},title:f,children:f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f}),p&&(0,t.jsx)("div",{style:{fontSize:11,color:T,marginTop:2},children:p})]}):(0,t.jsx)("span",{style:{color:T},children:"未提取到任务输出"})}),(0,t.jsx)("td",{style:K("center"),children:(0,t.jsx)("span",{style:{color:"warning"===(n=(0,g.getTrajectoryStatusTone)(r))?v:"danger"===n?m:"running"===n?"#1677ff":"success"===n?y:T,fontWeight:500},title:(0,g.getTrajectoryStatusTitle)(r),children:(0,g.getTrajectoryStatusLabel)(r)})}),(0,t.jsx)("td",{style:{...K("left"),minWidth:92,color:null!=c?h:T,fontWeight:600},children:null!=c?`${(0,u.fmtPercentScore)(c)} 分`:"--"}),(0,t.jsx)("td",{style:{...K("left"),color:C},children:E(r.createdAt)})]},r.id)})})]})})]})}function B({run:e,active:r,onClick:n,onDelete:s,deleteDisabled:i,deleting:o}){let l=null!=e.avgScore?`${(0,u.fmtPercentScore)(e.avgScore)} / 100`:"—",c=M(e);return(0,t.jsxs)("div",{onClick:n,style:{padding:12,border:`1px solid ${r?h:b}`,borderRadius:6,background:r?x:"#fff",cursor:"pointer",transition:"border-color 0.15s, background 0.15s"},onMouseEnter:e=>{r||(e.currentTarget.style.borderColor="#d8d6cf")},onMouseLeave:e=>{r||(e.currentTarget.style.borderColor=b)},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[(0,t.jsxs)("div",{style:{minWidth:0,display:"flex",alignItems:"center",gap:8,flex:1},children:[(0,t.jsx)("span",{style:{fontSize:12.5,fontWeight:600,color:k,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.taskTitle,children:e.taskTitle}),(0,t.jsx)("button",{type:"button","aria-label":`删除评测批次 ${e.taskTitle}`,title:o?"删除中...":i?"评测进行中,暂时不能删除":"删除该评测批次",disabled:i,onClick:e=>{e.stopPropagation(),i||s()},style:{flexShrink:0,width:22,height:22,borderRadius:6,border:"none",background:o?j:"transparent",color:i?T:C,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:i?"not-allowed":"pointer",opacity:i?.5:.9},children:(0,t.jsx)(a.Trash2,{size:13,strokeWidth:2.1})})]}),(0,t.jsx)("span",{style:{fontSize:11,color:C,flexShrink:0},children:_(e.createdAt)})]}),e.autoWatch&&(0,t.jsx)("div",{style:{marginBottom:8},children:(0,t.jsx)("span",{style:H("#EAF7F1",y,!0),children:"自动观测"})}),(0,t.jsx)("div",{style:{fontSize:11.5,color:e.taskDescription?A:T,marginBottom:8,lineHeight:1.5,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},title:e.taskDescription||"",children:e.taskDescription||""}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:(0,t.jsx)("span",{style:{fontSize:11,color:C,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.executionAgent||"未识别 Agent"})}),(0,t.jsxs)("div",{style:{fontSize:11,color:C,marginBottom:8,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:c,children:["评估器:",c]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11},children:[(0,t.jsx)(O,{done:e.doneCount,running:e.runningCount,failed:e.failedCount,total:e.traceCount}),(0,t.jsxs)("span",{style:{color:C},children:[e.doneCount,"/",e.traceCount]}),(0,t.jsx)("span",{style:{flex:1}}),(0,t.jsx)("span",{style:{color:null!=e.avgScore?h:T,fontWeight:600},children:l})]})]})}function O({done:e,running:r,failed:n,total:a}){return 0===a?null:(0,t.jsxs)("div",{style:{display:"flex",height:4,width:60,background:w,borderRadius:2,overflow:"hidden"},children:[(0,t.jsx)("div",{style:{width:`${e/a*100}%`,background:y}}),(0,t.jsx)("div",{style:{width:`${r/a*100}%`,background:"#1677ff"}}),(0,t.jsx)("div",{style:{width:`${n/a*100}%`,background:m}})]})}function N({onCreate:e,error:r}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"还没有任何评测批次"}),r&&(0,t.jsx)("div",{style:{...U(m,j,"#FFD4D4"),maxWidth:480,margin:"0 auto 12px"},children:r}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:h,color:"#fff",border:"none",borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"发起首次评测 →"})]})}function L({onClear:e}){return(0,t.jsxs)("div",{style:{padding:"60px 22px",textAlign:"center",color:C},children:[(0,t.jsx)("div",{style:{marginBottom:12,fontSize:14},children:"没有自动观测历史任务"}),(0,t.jsx)("button",{onClick:e,style:{padding:"8px 18px",background:"#fff",color:h,border:`1px solid ${h}`,borderRadius:6,fontSize:13,fontWeight:500,cursor:"pointer"},children:"查看全部历史任务"})]})}function P({label:e,value:r,detail:n,primary:a,mono:s,valueColor:i,truncate:o}){return(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:12,color:C,marginBottom:4},children:e}),(0,t.jsx)("div",{title:o?r:void 0,style:{fontSize:14,fontWeight:600,color:i||(a?k:A),fontFamily:s?"monospace":void 0,lineHeight:1.35,...o?{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}:{}},children:r}),n?(0,t.jsx)("div",{style:{marginTop:3},children:n}):null]})}function q({checked:e,disabled:r,onChange:n,"aria-label":a}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":a,disabled:r,onClick:()=>n(!e),style:{width:42,height:22,borderRadius:999,border:`1px solid ${e?"#21A36B":"#C9CDD3"}`,background:e?"#23B26F":"#D6D8DC",padding:2,cursor:r?"not-allowed":"pointer",opacity:r?.6:1,boxShadow:e?"inset 0 0 0 1px rgba(255,255,255,0.2), 0 1px 4px rgba(18, 128, 79, 0.16)":"inset 0 0 0 1px rgba(255,255,255,0.35)",transition:"background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease"},children:(0,t.jsx)("span",{style:{display:"block",width:16,height:16,borderRadius:"50%",background:"#fff",transform:e?"translateX(20px)":"translateX(0)",boxShadow:"0 1px 4px rgba(24, 24, 27, 0.2)",transition:"transform 0.16s ease"}})})}function H(e,t,r){return{display:"inline-block",padding:r?"1px 6px":"2px 8px",background:e,color:t,borderRadius:4,fontSize:r?10:11,fontWeight:500,whiteSpace:"nowrap"}}function U(e,t,r){return{padding:10,marginBottom:12,borderRadius:6,background:t,border:`1px solid ${r}`,color:e,fontSize:12}}function J(e,t="left"){return{padding:"9px 10px",textAlign:t,fontWeight:500,color:C,fontSize:12,...e?{width:e}:{}}}function K(e="left"){return{padding:"9px 10px",textAlign:e,verticalAlign:"middle",fontSize:13}}e.s(["default",()=>z])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,615408,e=>{"use strict";e.s(["presetEvaluators",0,[{id:"preset-agent-task-completion",name:"Agent 任务完成度",description:"评估 Agent 是否成功、完整地实现了用户目标,适合回归集和上线验收。",evaluatorType:"LLM",source:"preset",targetTypes:["结果"],objectives:["任务完成","内容质量"],scenarios:["Agent通用评测"],runMode:"LLM Judge",scoreRange:"0-1",popularity:96,mappedMetrics:["目标达成","步骤完整","答案可用"],status:"ready",runtimeHref:"/eval/trajectory",runtimeNote:"opencode-task-completion-evaluator.ts (single opencode agent)"},{id:"preset-agent-trace-quality",name:"Agent 轨迹质量",description:"评估 Agent 内部执行轨迹是否准确、稳定,关注规划、调用和中间结果。基于 opencode 单主评估器完成 completeness / tool-choice / attribution 判断,并结合规则冗余检测。",evaluatorType:"LLM",source:"preset",targetTypes:["轨迹"],objectives:["轨迹质量"],scenarios:["Agent通用评测","轨迹评测"],runMode:"Trace Judge (opencode)",scoreRange:"0-1",popularity:91,mappedMetrics:["轨迹准确性","推理连续性","异常处理"],status:"ready",runtimeHref:"/eval/trajectory",runtimeNote:"opencode-trajectory-evaluator.ts (single opencode agent)"}]])},482022,e=>{"use strict";let t=(0,e.i(456420).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],482022)},741120,e=>{"use strict";let t=(0,e.i(456420).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],741120)},77071,e=>{"use strict";let t=(0,e.i(456420).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],77071)},853138,e=>{"use strict";let t=(0,e.i(456420).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],853138)},716327,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],716327)},867927,e=>{"use strict";let t=(0,e.i(456420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],867927)},583967,e=>{"use strict";let t=(0,e.i(456420).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],583967)},632781,e=>{"use strict";let t=(0,e.i(456420).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],632781)},616933,e=>{"use strict";let t=(0,e.i(456420).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},847211,e=>{"use strict";let t=(0,e.i(456420).default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);e.s(["Ban",()=>t],847211)},551757,e=>{"use strict";var t=e.i(616933);e.s(["CheckCircle2",()=>t.default])},474544,e=>{"use strict";let t=(0,e.i(456420).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],474544)},51907,e=>{"use strict";var t=e.i(843476),r=e.i(853138),a=e.i(847211),s=e.i(551757),n=e.i(474544),l=e.i(632781),o=e.i(583967),c=e.i(975157);let i={running:{subtle:"bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-500/10 dark:text-blue-300 dark:border-blue-400/30",outline:"bg-transparent text-blue-700 border-blue-300 dark:text-blue-300 dark:border-blue-400/40",iconClass:"animate-spin"},success:{subtle:"bg-success-subtle text-success border-success-border",outline:"bg-transparent text-success border-success/40"},warning:{subtle:"bg-warning-subtle text-warning border-warning-border",outline:"bg-transparent text-warning border-warning/40"},error:{subtle:"bg-error-subtle text-error border-error-border",outline:"bg-transparent text-error border-error/40"},cancelled:{subtle:"bg-background-secondary text-foreground-muted border-border",outline:"bg-transparent text-foreground-muted border-border-dark"},pending:{subtle:"bg-background-secondary text-foreground-muted border-border",outline:"bg-transparent text-foreground-muted border-border"}},d={running:l.Loader2,success:s.CheckCircle2,warning:r.AlertTriangle,error:o.XCircle,cancelled:a.Ban,pending:n.Clock};function u({status:e,label:r,variant:a="subtle",size:s="sm",className:n,...l}){let o=d[e],u=i[e];return(0,t.jsxs)("span",{role:"status",className:(0,c.cn)("inline-flex items-center rounded-sm border font-medium whitespace-nowrap","sm"===s?"h-5 px-1.5 text-xs gap-1":"h-6 px-2 text-sm gap-1.5",u[a],n),...l,children:[(0,t.jsx)(o,{className:(0,c.cn)("size-3.5 shrink-0",u.iconClass),"aria-hidden":!0}),(0,t.jsx)("span",{children:r})]})}e.s(["StatusBadge",()=>u])},994004,e=>{"use strict";let t=(0,e.i(456420).default)("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);e.s(["History",()=>t],994004)}]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-insight",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "Agent Skill 评估与观测平台 — 量化评估 Skills 在 Agent 上的实际运行效果",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -118,6 +118,9 @@ model Execution {
118
118
  // 可索引的多对多,替代 skills/invokedSkills JSON blob 做"按 skill+version 反查 trace"与统一筛选。
119
119
  executionSkills ExecutionSkill[]
120
120
 
121
+ // Trace ↔ 用户标签的可索引绑定。系统标签不入库,由读路径派生。
122
+ executionTags ExecutionTag[]
123
+
121
124
  @@index([parentExecutionId])
122
125
  @@index([rootExecutionId])
123
126
  @@index([isSubagent, timestamp])
@@ -175,6 +178,41 @@ model ExecutionSkill {
175
178
  @@index([skillName]) // 按 skill 任意版本反查
176
179
  @@index([executionId])
177
180
  }
181
+ // 用户可维护的 Trace 标签定义。kind = version | business。
182
+ // 系统标签不存这里,避免用户编辑派生事实。
183
+ model Tag {
184
+ id String @id @default(cuid())
185
+ name String
186
+ description String?
187
+ kind String
188
+ color String
189
+ createdBy String?
190
+ user String?
191
+ createdAt DateTime @default(now())
192
+ updatedAt DateTime @updatedAt
193
+
194
+ executionTags ExecutionTag[]
195
+
196
+ @@unique([user, kind, name])
197
+ @@index([user, kind, createdAt])
198
+ }
199
+
200
+ // Trace ↔ 用户标签多对多绑定。硬删除 Tag 时级联清理绑定,Trace 本体保留。
201
+ model ExecutionTag {
202
+ id String @id @default(cuid())
203
+ executionId String
204
+ execution Execution @relation(fields: [executionId], references: [id], onDelete: Cascade)
205
+ tagId String
206
+ tag Tag @relation(fields: [tagId], references: [id], onDelete: Cascade)
207
+ user String?
208
+ createdBy String?
209
+ createdAt DateTime @default(now())
210
+
211
+ @@unique([executionId, tagId])
212
+ @@index([tagId, createdAt])
213
+ @@index([executionId])
214
+ @@index([user, tagId])
215
+ }
178
216
 
179
217
  /// 一次评估事件——静态评估和动态评估统一到这张表,按 type 区分。
180
218
  /// 详细设计见 docs/plans/2026-05-08-skill-opt-issues-api-design.md
@@ -1,3 +0,0 @@
1
- module.exports=[478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},727028,(e,t,r)=>{t.exports=e.x("node:zlib",()=>require("node:zlib"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},57328,(e,t,r)=>{t.exports=e.x("node:assert",()=>require("node:assert"))},483324,(e,t,r)=>{t.exports=e.x("node:querystring",()=>require("node:querystring"))},677652,(e,t,r)=>{t.exports=e.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},685560,(e,t,r)=>{t.exports=e.x("node:tls",()=>require("node:tls"))},951615,(e,t,r)=>{t.exports=e.x("node:buffer",()=>require("node:buffer"))},874096,(e,t,r)=>{t.exports=e.x("node:perf_hooks",()=>require("node:perf_hooks"))},107417,(e,t,r)=>{t.exports=e.x("node:util/types",()=>require("node:util/types"))},246479,(e,t,r)=>{t.exports=e.x("node:http2",()=>require("node:http2"))},241293,(e,t,r)=>{t.exports=e.x("node:console",()=>require("node:console"))},26910,(e,t,r)=>{t.exports=e.x("node:timers",()=>require("node:timers"))},495879,(e,t,r)=>{t.exports=e.x("node:dns",()=>require("node:dns"))},687769,(e,t,r)=>{t.exports=e.x("node:events",()=>require("node:events"))},857764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},463021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},723862,e=>e.a(async(t,r)=>{try{let t=await e.y("pg-587764f78a6c7a9c");e.n(t),r()}catch(e){r(e)}},!0),666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},925127,(e,t,r)=>{t.exports=e.x("node:worker_threads",()=>require("node:worker_threads"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},347299,(e,t,r)=>{t.exports=e.x("node:http",()=>require("node:http"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},899871,(e,t,r)=>{t.exports=e.x("node:string_decoder",()=>require("node:string_decoder"))},711070,e=>{"use strict";function t(){let e=[],t=1;for(;;){let r=process.env[`DEFAULT_MODEL_${t}_NAME`],s=process.env[`DEFAULT_MODEL_${t}_PROVIDER`],n=process.env[`DEFAULT_MODEL_${t}_API_KEY`];if(!r||!s||!n)break;e.push({id:`default_${t}`,name:r,provider:s,apiKey:n,baseUrl:process.env[`DEFAULT_MODEL_${t}_BASE_URL`],model:process.env[`DEFAULT_MODEL_${t}_MODEL`]}),t++}return e}e.s(["loadDefaultModelConfigs",()=>t])},401682,e=>e.a(async(t,r)=>{try{var s=e.i(309418),n=e.i(711070),o=t([s]);function i(e){return"string"==typeof e&&e.includes("•")}function a(e){return e?e.length<=8?"•".repeat(8):`${e.slice(0,4)}${"•".repeat(8)}${e.slice(-4)}`:""}function l(e){return{...e,configs:e.configs.map(e=>({...e,apiKey:a(e.apiKey)})),searchApiKey:a(e.searchApiKey)}}async function u(e){let t=await c(e);return t&&t.activeConfigId&&t.configs.find(e=>e.id===t.activeConfigId)||null}async function c(e){let t,r;if(!e)return{activeConfigId:null,configs:[],autoEvaluationEnabled:!0};let o=(0,n.loadDefaultModelConfigs)(),i=[],a=null,l=!0;try{let n=await s.db.findUserSettings(e);if(n?.settingsJson){let e=JSON.parse(n.settingsJson);i=e.configs.filter(e=>!e.id.startsWith("default_")),a=e.activeConfigId,"boolean"==typeof e.autoEvaluationEnabled&&(l=e.autoEvaluationEnabled),("tavily"===e.searchProvider||"none"===e.searchProvider)&&(t=e.searchProvider),"string"==typeof e.searchApiKey&&(r=e.searchApiKey)}}catch(e){console.error("Failed to load user settings:",e)}let u=[...o,...i];return a&&u.find(e=>e.id===a)||(a=o.length>0?o[0].id:null),{activeConfigId:a,configs:u,autoEvaluationEnabled:l,searchProvider:t,searchApiKey:r}}async function p(e,t){let r=await c(e),n=new Map(r.configs.map(e=>[e.id,e.apiKey])),o=t.configs.map(e=>i(e.apiKey)?{...e,apiKey:n.get(e.id)??""}:e),a=i(t.searchApiKey)?r.searchApiKey??"":t.searchApiKey??"",l=o.filter(e=>!e.id.startsWith("default_")),u=JSON.stringify({activeConfigId:t.activeConfigId,configs:l,autoEvaluationEnabled:t.autoEvaluationEnabled??!0,searchProvider:t.searchProvider??"none",searchApiKey:a});await s.db.upsertUserSettings(e,u)}[s]=o.then?(await o)():o,e.s(["getActiveConfig",()=>u,"getUserSettings",()=>c,"isMaskedApiKey",()=>i,"maskApiKey",()=>a,"maskUserSettings",()=>l,"saveUserSettings",()=>p]),r()}catch(e){r(e)}},!1),264996,e=>{"use strict";let t=new Set(["skill-generator-agent","fault-diagnosis-agent","skill-optimizer-chat","trace-quality-evaluator","task-completion-evaluator","skill-trigger-analyzer","skill-suggestion-advisor","grayscale-skill-agent","grayscale-baseline-agent"]);function r(e){return!!e&&t.has(e.trim())}e.s(["SYSTEM_AGENT_NAME_SET",0,t,"isInternalSystemAgentTrace",()=>r])},594559,e=>{"use strict";let t=["vllm:time_to_first_token_seconds","vllm:inter_token_latency_seconds","vllm:request_time_per_output_token_seconds","vllm:e2e_request_latency_seconds","vllm:request_queue_time_seconds","vllm:request_prefill_time_seconds","vllm:request_inference_time_seconds"],r=new Set(["vllm:num_requests_running","vllm:num_requests_waiting","vllm:kv_cache_usage_perc"]),s=new Set(["vllm:prompt_tokens_total","vllm:generation_tokens_total","vllm:num_preemptions_total","vllm:prefix_cache_queries_total","vllm:prefix_cache_hits_total","vllm:estimated_flops_per_gpu_total","vllm:estimated_read_bytes_per_gpu_total","vllm:estimated_write_bytes_per_gpu_total"]);function n(e){let t=new URL(e);return`${t.protocol}//${t.host}`}async function o(e,i={}){let a,{timeoutMs:l=8e3,tsMs:u=Date.now(),fetchImpl:c=fetch}=i,p=((a=new URL(e)).username="",a.password="",a.search="",a.hash="",a.pathname.endsWith("/metrics")||(a.pathname=a.pathname.replace(/\/+$/,"")+"/metrics"),a.toString()),d=await c(p,{signal:AbortSignal.timeout(l)});if(!d.ok)throw Error(`scrape ${p} failed: HTTP ${d.status}`);return function(e,n={}){let{source:o="vllm-pull",target:i="",tsMs:a=Date.now()}=n,l=new Map,u=e=>{let t=l.get(e);return t||(t={gauges:{},counters:{},histograms:{},waitingByReason:{}},l.set(e,t)),t};for(let n of e.samples){let e=n.labels.model_name;if(!e)continue;let o=u(e),i=e=>o.histograms[e]??={buckets:[],sum:0,count:0};if(r.has(n.name))o.gauges[n.name]=n.value;else if(s.has(n.name))o.counters[n.name]=n.value;else if("vllm:num_requests_waiting_by_reason"===n.name)o.waitingByReason[n.labels.reason]=n.value;else for(let e of t)if(n.name===`${e}_bucket`){var c;i(e).buckets.push({le:(c=n.labels.le,/^[+]?inf(inity)?$/i.test(c.trim())?1/0:Number.parseFloat(c)),count:n.value})}else n.name===`${e}_sum`?i(e).sum=n.value:n.name===`${e}_count`&&(i(e).count=n.value)}return[...l.entries()].map(([e,t])=>{for(let e of Object.values(t.histograms))e.buckets.sort((e,t)=>e.le-t.le);return{tsMs:a,source:o,target:i,model:e,...t}})}(function(e){let t=new Map,r=[];for(let s of e.split("\n")){let e=s.trim();if(!e)continue;if(e.startsWith("#")){let r=e.match(/^#\s+(HELP|TYPE)\s+(\S+)\s+(.*)$/);if(!r)continue;let[,s,n,o]=r,i=t.get(n)??{type:"untyped",help:""};"TYPE"===s?i.type=o.trim():i.help=o.trim(),t.set(n,i);continue}let n=e.match(/^([^{\s]+)(\{[^}]*\})?\s+(.+)$/);if(!n)continue;let[,o,i,a]=n,l=Number.parseFloat(a.trim().split(/\s+/)[0]),u={};if(i)for(let e of i.slice(1,-1).split(/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){let t=e.match(/^\s*([^=]+)="(.*)"\s*$/);t&&(u[t[1]]=t[2])}r.push({name:o,labels:u,value:l})}return{families:t,samples:r}}(await d.text()),{source:"vllm-pull",target:n(e),tsMs:u})}e.s(["normalizeEndpoint",()=>n,"scrapeVllmTargetModels",()=>o],594559)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__2574e6ed._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[478500,(e,t,r)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},727028,(e,t,r)=>{t.exports=e.x("node:zlib",()=>require("node:zlib"))},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},57328,(e,t,r)=>{t.exports=e.x("node:assert",()=>require("node:assert"))},483324,(e,t,r)=>{t.exports=e.x("node:querystring",()=>require("node:querystring"))},677652,(e,t,r)=>{t.exports=e.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},685560,(e,t,r)=>{t.exports=e.x("node:tls",()=>require("node:tls"))},951615,(e,t,r)=>{t.exports=e.x("node:buffer",()=>require("node:buffer"))},874096,(e,t,r)=>{t.exports=e.x("node:perf_hooks",()=>require("node:perf_hooks"))},107417,(e,t,r)=>{t.exports=e.x("node:util/types",()=>require("node:util/types"))},246479,(e,t,r)=>{t.exports=e.x("node:http2",()=>require("node:http2"))},241293,(e,t,r)=>{t.exports=e.x("node:console",()=>require("node:console"))},26910,(e,t,r)=>{t.exports=e.x("node:timers",()=>require("node:timers"))},495879,(e,t,r)=>{t.exports=e.x("node:dns",()=>require("node:dns"))},687769,(e,t,r)=>{t.exports=e.x("node:events",()=>require("node:events"))},857764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},463021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},723862,e=>e.a(async(t,r)=>{try{let t=await e.y("pg-587764f78a6c7a9c");e.n(t),r()}catch(e){r(e)}},!0),666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},912714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},925127,(e,t,r)=>{t.exports=e.x("node:worker_threads",()=>require("node:worker_threads"))},761095,(e,t,r)=>{t.exports=e.x("node:net",()=>require("node:net"))},347299,(e,t,r)=>{t.exports=e.x("node:http",()=>require("node:http"))},711070,e=>{"use strict";function t(){let e=[],t=1;for(;;){let r=process.env[`DEFAULT_MODEL_${t}_NAME`],n=process.env[`DEFAULT_MODEL_${t}_PROVIDER`],i=process.env[`DEFAULT_MODEL_${t}_API_KEY`];if(!r||!n||!i)break;e.push({id:`default_${t}`,name:r,provider:n,apiKey:i,baseUrl:process.env[`DEFAULT_MODEL_${t}_BASE_URL`],model:process.env[`DEFAULT_MODEL_${t}_MODEL`]}),t++}return e}e.s(["loadDefaultModelConfigs",()=>t])},401682,e=>e.a(async(t,r)=>{try{var n=e.i(309418),i=e.i(711070),s=t([n]);function o(e){return"string"==typeof e&&e.includes("•")}function a(e){return e?e.length<=8?"•".repeat(8):`${e.slice(0,4)}${"•".repeat(8)}${e.slice(-4)}`:""}function l(e){return{...e,configs:e.configs.map(e=>({...e,apiKey:a(e.apiKey)})),searchApiKey:a(e.searchApiKey)}}async function u(e){let t=await c(e);return t&&t.activeConfigId&&t.configs.find(e=>e.id===t.activeConfigId)||null}async function c(e){let t,r;if(!e)return{activeConfigId:null,configs:[],autoEvaluationEnabled:!0};let s=(0,i.loadDefaultModelConfigs)(),o=[],a=null,l=!0;try{let i=await n.db.findUserSettings(e);if(i?.settingsJson){let e=JSON.parse(i.settingsJson);o=e.configs.filter(e=>!e.id.startsWith("default_")),a=e.activeConfigId,"boolean"==typeof e.autoEvaluationEnabled&&(l=e.autoEvaluationEnabled),("tavily"===e.searchProvider||"none"===e.searchProvider)&&(t=e.searchProvider),"string"==typeof e.searchApiKey&&(r=e.searchApiKey)}}catch(e){console.error("Failed to load user settings:",e)}let u=[...s,...o];return a&&u.find(e=>e.id===a)||(a=s.length>0?s[0].id:null),{activeConfigId:a,configs:u,autoEvaluationEnabled:l,searchProvider:t,searchApiKey:r}}async function p(e,t){let r=await c(e),i=new Map(r.configs.map(e=>[e.id,e.apiKey])),s=t.configs.map(e=>o(e.apiKey)?{...e,apiKey:i.get(e.id)??""}:e),a=o(t.searchApiKey)?r.searchApiKey??"":t.searchApiKey??"",l=s.filter(e=>!e.id.startsWith("default_")),u=JSON.stringify({activeConfigId:t.activeConfigId,configs:l,autoEvaluationEnabled:t.autoEvaluationEnabled??!0,searchProvider:t.searchProvider??"none",searchApiKey:a});await n.db.upsertUserSettings(e,u)}[n]=s.then?(await s)():s,e.s(["getActiveConfig",()=>u,"getUserSettings",()=>c,"isMaskedApiKey",()=>o,"maskApiKey",()=>a,"maskUserSettings",()=>l,"saveUserSettings",()=>p]),r()}catch(e){r(e)}},!1),264996,e=>{"use strict";let t=new Set(["skill-generator-agent","fault-diagnosis-agent","skill-optimizer-chat","trace-quality-evaluator","task-completion-evaluator","skill-trigger-analyzer","skill-suggestion-advisor","grayscale-skill-agent","grayscale-baseline-agent"]);function r(e){return!!e&&t.has(e.trim())}e.s(["SYSTEM_AGENT_NAME_SET",0,t,"isInternalSystemAgentTrace",()=>r])},594559,e=>{"use strict";let t=["vllm:time_to_first_token_seconds","vllm:inter_token_latency_seconds","vllm:request_time_per_output_token_seconds","vllm:e2e_request_latency_seconds","vllm:request_queue_time_seconds","vllm:request_prefill_time_seconds","vllm:request_inference_time_seconds"],r=new Set(["vllm:num_requests_running","vllm:num_requests_waiting","vllm:kv_cache_usage_perc"]),n=new Set(["vllm:prompt_tokens_total","vllm:generation_tokens_total","vllm:num_preemptions_total","vllm:prefix_cache_queries_total","vllm:prefix_cache_hits_total","vllm:estimated_flops_per_gpu_total","vllm:estimated_read_bytes_per_gpu_total","vllm:estimated_write_bytes_per_gpu_total"]);function i(e){let t=new URL(e);return`${t.protocol}//${t.host}`}async function s(e,o={}){let a,{timeoutMs:l=8e3,tsMs:u=Date.now(),fetchImpl:c=fetch}=o,p=((a=new URL(e)).username="",a.password="",a.search="",a.hash="",a.pathname.endsWith("/metrics")||(a.pathname=a.pathname.replace(/\/+$/,"")+"/metrics"),a.toString()),d=await c(p,{signal:AbortSignal.timeout(l)});if(!d.ok)throw Error(`scrape ${p} failed: HTTP ${d.status}`);return function(e,i={}){let{source:s="vllm-pull",target:o="",tsMs:a=Date.now()}=i,l=new Map,u=e=>{let t=l.get(e);return t||(t={gauges:{},counters:{},histograms:{},waitingByReason:{}},l.set(e,t)),t};for(let i of e.samples){let e=i.labels.model_name;if(!e)continue;let s=u(e),o=e=>s.histograms[e]??={buckets:[],sum:0,count:0};if(r.has(i.name))s.gauges[i.name]=i.value;else if(n.has(i.name))s.counters[i.name]=i.value;else if("vllm:num_requests_waiting_by_reason"===i.name)s.waitingByReason[i.labels.reason]=i.value;else for(let e of t)if(i.name===`${e}_bucket`){var c;o(e).buckets.push({le:(c=i.labels.le,/^[+]?inf(inity)?$/i.test(c.trim())?1/0:Number.parseFloat(c)),count:i.value})}else i.name===`${e}_sum`?o(e).sum=i.value:i.name===`${e}_count`&&(o(e).count=i.value)}return[...l.entries()].map(([e,t])=>{for(let e of Object.values(t.histograms))e.buckets.sort((e,t)=>e.le-t.le);return{tsMs:a,source:s,target:o,model:e,...t}})}(function(e){let t=new Map,r=[];for(let n of e.split("\n")){let e=n.trim();if(!e)continue;if(e.startsWith("#")){let r=e.match(/^#\s+(HELP|TYPE)\s+(\S+)\s+(.*)$/);if(!r)continue;let[,n,i,s]=r,o=t.get(i)??{type:"untyped",help:""};"TYPE"===n?o.type=s.trim():o.help=s.trim(),t.set(i,o);continue}let i=e.match(/^([^{\s]+)(\{[^}]*\})?\s+(.+)$/);if(!i)continue;let[,s,o,a]=i,l=Number.parseFloat(a.trim().split(/\s+/)[0]),u={};if(o)for(let e of o.slice(1,-1).split(/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){let t=e.match(/^\s*([^=]+)="(.*)"\s*$/);t&&(u[t[1]]=t[2])}r.push({name:s,labels:u,value:l})}return{families:t,samples:r}}(await d.text()),{source:"vllm-pull",target:i(e),tsMs:u})}e.s(["normalizeEndpoint",()=>i,"scrapeVllmTargetModels",()=>s],594559)},889764,e=>e.a(async(t,r)=>{try{var n=e.i(904239),i=t([n]);function s(e){let t="number"==typeof e?e:"string"==typeof e?Number(e):NaN;return Number.isFinite(t)?t:void 0}function o(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"!=typeof e)return null;let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let r=Date.parse(t);return Number.isFinite(r)?r:null}function a(e){return e.map(e=>e&&"object"==typeof e&&"text"===String(e.type||"").toLowerCase()?String(e.text||""):"").filter(Boolean).join("")}function l(e){return Array.isArray(e)&&0!==e.length?e.map(e=>{var t;let r,n,i,l,u,c;if(!function(e){if(!e||"object"!=typeof e)return!1;let t=e.info;if(!t||"object"!=typeof t)return!1;let r=e.parts;return Array.isArray(r)||Array.isArray(t.parts)}(e))return null;let p=e.info||{},d=Array.isArray(e.parts)?e.parts:Array.isArray(p.parts)?p.parts:[],m=(t=p.role,"string"==typeof t&&t.trim()?t.trim():"assistant"),f=p.time?.created,g=p.time?.completed,_=o(f),y="user"===m?a(d)||String(p.system||""):a(d),v=d.map(e=>{if(!e||"object"!=typeof e||"tool"!==String(e.type||"").toLowerCase())return null;let t=e.state&&"object"==typeof e.state?e.state:{};return{id:e.callID||e.callId||e.id,type:"function",function:{name:e.tool,arguments:function(e){if("string"==typeof e)return e;try{return JSON.stringify(e??{})}catch{return"{}"}}(t.input)},state:t.status||t.state,output:t.output}}).filter(Boolean),h=p.tokens&&"object"==typeof p.tokens?p.tokens:void 0,x=h?{input:s(h.input),output:s(h.output),reasoning:s(h.reasoning),cache:{read:s(h.cache?.read),write:s(h.cache?.write)},total:(r=s(h?.input)||0,n=s(h?.output)||0,i=s(h?.reasoning)||0,l=s(h?.cache?.read)||0,u=s(h?.cache?.write)||0,c=i>0&&n<i?n+i:n,{input:r,output:c,reasoning:i,cacheRead:l,cacheWrite:u,total:r+c+i+l+u}).total}:void 0;return{role:m,content:y||void 0,tool_calls:v.length>0?v:void 0,usage:x,timestamp:null!==_?new Date(_).toISOString():void 0,timeInfo:null!=f||null!=g?{created:f,completed:g}:void 0,agent:"string"==typeof p.agent?p.agent:void 0,modelID:"string"==typeof p.modelID?p.modelID:void 0,providerID:"string"==typeof p.providerID?p.providerID:void 0,cost:p.cost}}).filter(e=>null!==e).sort((e,t)=>(o(e.timeInfo?.created)||0)-(o(t.timeInfo?.created)||0)):[]}function u(e){let t=e.map(e=>o(e.timeInfo?.created)??o(e.timestamp)).find(e=>Number.isFinite(e));return t?new Date(t):new Date}function c(e){let t=e.flatMap(e=>[o(e.timeInfo?.completed),o(e.timeInfo?.created),o(e.timestamp)]).filter(e=>Number.isFinite(e)).reduce((e,t)=>Math.max(e,t),0);return t>0?new Date(t):new Date}function p(e,t){let r,n,i,s,o=e.some(e=>"assistant"===e.role&&"string"==typeof e.content&&e.content.trim().length>0),a=(r=new Date().toISOString(),n=String(t.query||"").trim(),i=String(t.fallbackOutput||"").trim(),s=[],n&&s.push({role:"user",content:n,timestamp:r}),i&&s.push({role:"assistant",content:i,timestamp:r,agent:String(t.agentName||"").trim()||void 0}),s);if(0===e.length)return a;if(o||!String(t.fallbackOutput||"").trim())return e;let l=a.find(e=>"assistant"===e.role);return l?[...e,l]:e}async function d(e,t){let r=String(t.taskId||"").trim(),i=String(t.agentName||"").trim();if(!r||!i)return 0;let s=await e.listMessages(r),o=p(l(Array.isArray(s)?s:[]),t);return await (0,n.saveExecutionRecord)({task_id:r,upload_id:r,query:String(t.query||"").trim()||void 0,framework:t.framework||"opencode",user:t.user??null,agent:i,agentName:i,final_result:String(t.fallbackOutput||"").trim()||void 0,skill:t.skill??void 0,skill_version:t.skillVersion??void 0,interactions:o,timestamp:u(o),skip_evaluation:!0,skip_internal_judgment:!0,failures:[],skill_issues:[],force_query_update:!0,opencode_cli_completed:!0}),o.length}function m(e){let t=e.timestampISO||new Date().toISOString(),r=[],n=String(e.systemPrompt||"").trim();n&&r.push({role:"system",content:n,timestamp:t});let i=String(e.userMessage||e.query||"").trim();i&&r.push({role:"user",content:i,timestamp:t});let s=String(e.assistantOutput||"").trim();if(s){let n=e.usage?{input:e.usage.input,output:e.usage.output,total:"number"==typeof e.usage.total?e.usage.total:(e.usage.input||0)+(e.usage.output||0)}:void 0;r.push({role:"assistant",content:s,timestamp:t,agent:e.agentName||void 0,modelID:e.modelID||void 0,usage:n})}return r}async function f(e){let t=String(e.taskId||"").trim(),r=String(e.agentName||"").trim();if(!t||!r)return 0;let i=m(e);return 0===i.length?0:(await (0,n.saveExecutionRecord)({task_id:t,upload_id:t,query:String(e.query||"").trim()||void 0,framework:e.framework||"direct-llm",user:e.user??null,agent:r,agentName:r,model:e.modelID??void 0,final_result:String(e.assistantOutput||"").trim()||void 0,skill:e.skill??void 0,skill_version:e.skillVersion??void 0,interactions:i,timestamp:u(i),skip_evaluation:!0,skip_internal_judgment:!0,failures:[],skill_issues:[],force_query_update:!0,trace_completed_at:c(i)}),i.length)}function g(){return"1"===process.env.EVAL_FORCE_OPENCODE_TRANSPORT}[n]=i.then?(await i)():i,e.s(["buildDirectEvaluatorInteractions",()=>m,"ensureEvaluatorExecutionInteractions",()=>p,"inferCompletionTimestampFromInteractions",()=>c,"normalizeEvaluatorExecutionInteractions",()=>l,"recordDirectEvaluatorExecution",()=>f,"recordEvaluatorExecution",()=>d,"shouldForceOpencodeEvalTransport",()=>g]),r()}catch(e){r(e)}},!1)];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__2710fb53._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},463021,(e,t,r)=>{t.exports=e.x("@prisma/client-2c3a283f134fdcb6",()=>require("@prisma/client-2c3a283f134fdcb6"))},723862,e=>e.a(async(t,r)=>{try{let t=await e.y("pg-587764f78a6c7a9c");e.n(t),r()}catch(e){r(e)}},!0),666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},497289,(e,t,r)=>{let n=e.r(522734),a=e.r(814747),o=e.r(446786),s=e.r(254799),i=["◈ encrypted .env [www.dotenvx.com]","◈ secrets for agents [www.dotenvx.com]","⌁ auth for agents [www.vestauth.com]","⌘ custom filepath { path: '/custom/path/.env' }","⌘ enable debugging { debug: true }","⌘ override existing { override: true }","⌘ suppress logs { quiet: true }","⌘ multiple files { path: ['.env.local', '.env'] }"];function l(e){return"string"==typeof e?!["false","0","no","off",""].includes(e.toLowerCase()):!!e}let u=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function c(e){console.log(`┆ ${e}`)}function d(e){console.log(`◇ ${e}`)}function p(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function f(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)n.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=a.resolve(process.cwd(),".env.vault");return n.existsSync(t)?t:null}function h(e){return"~"===e[0]?a.join(o.homedir(),e.slice(1)):e}let g={configDotenv:function(e){let t,r=a.resolve(process.cwd(),".env"),o="utf8",s=process.env;e&&null!=e.processEnv&&(s=e.processEnv);let u=l(s.DOTENV_CONFIG_DEBUG||e&&e.debug),p=l(s.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?o=e.encoding:u&&c("no encoding is specified (UTF-8 is used by default)");let f=[r];if(e&&e.path)if(Array.isArray(e.path))for(let t of(f=[],e.path))f.push(h(t));else f=[h(e.path)];let m={};for(let r of f)try{let t=g.parse(n.readFileSync(r,{encoding:o}));g.populate(m,t,e)}catch(e){u&&c(`failed to load ${r} ${e.message}`),t=e}let y=g.populate(s,m,e);if(u=l(s.DOTENV_CONFIG_DEBUG||u),p=l(s.DOTENV_CONFIG_QUIET||p),u||!p){var w;let e=Object.keys(y).length,r=[];for(let e of f)try{let t=a.relative(process.cwd(),e);r.push(t)}catch(r){u&&c(`failed to load ${e} ${r.message}`),t=r}d(`injected env (${e}) from ${r.join(",")} ${(w=`// tip: ${i[Math.floor(Math.random()*i.length)]}`,process.stdout.isTTY?`\x1b[2m${w}\x1b[0m`:w)}`)}return t?{parsed:m,error:t}:{parsed:m}},_configVault:function(e){let t=l(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),r=l(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);(t||!r)&&d("loading env from encrypted .env.vault");let n=g._parseVault(e),a=process.env;return e&&null!=e.processEnv&&(a=e.processEnv),g.populate(a,n,e),{parsed:n}},_parseVault:function(e){let t,r=f(e=e||{});e.path=r;let n=g.configDotenv(e);if(!n.parsed){let e=Error(`MISSING_DATA: Cannot parse ${r} for an unknown reason`);throw e.code="MISSING_DATA",e}let a=p(e).split(","),o=a.length;for(let e=0;e<o;e++)try{let r=a[e].trim(),o=function(e,t){let r;try{r=new URL(t)}catch(e){if("ERR_INVALID_URL"===e.code){let e=Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw e.code="INVALID_DOTENV_KEY",e}throw e}let n=r.password;if(!n){let e=Error("INVALID_DOTENV_KEY: Missing key part");throw e.code="INVALID_DOTENV_KEY",e}let a=r.searchParams.get("environment");if(!a){let e=Error("INVALID_DOTENV_KEY: Missing environment part");throw e.code="INVALID_DOTENV_KEY",e}let o=`DOTENV_VAULT_${a.toUpperCase()}`,s=e.parsed[o];if(!s){let e=Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw e.code="NOT_FOUND_DOTENV_ENVIRONMENT",e}return{ciphertext:s,key:n}}(n,r);t=g.decrypt(o.ciphertext,o.key);break}catch(t){if(e+1>=o)throw t}return g.parse(t)},config:function(e){if(0===p(e).length)return g.configDotenv(e);let t=f(e);if(!t){var r;return r=`you set DOTENV_KEY but you are missing a .env.vault file at ${t}`,console.error(`⚠ ${r}`),g.configDotenv(e)}return g._configVault(e)},decrypt:function(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),a=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let e=s.createDecipheriv("aes-256-gcm",r,a);return e.setAuthTag(o),`${e.update(n)}${e.final()}`}catch(n){let e=n instanceof RangeError,t="Invalid key length"===n.message,r="Unsupported state or unable to authenticate data"===n.message;if(e||t){let e=Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw e.code="INVALID_DOTENV_KEY",e}if(r){let e=Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw e.code="DECRYPTION_FAILED",e}throw n}},parse:function(e){let t,r={},n=e.toString();for(n=n.replace(/\r\n?/mg,"\n");null!=(t=u.exec(n));){let e=t[1],n=t[2]||"",a=(n=n.trim())[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),'"'===a&&(n=(n=n.replace(/\\n/g,"\n")).replace(/\\r/g,"\r")),r[e]=n}return r},populate:function(e,t,r={}){let n=!!(r&&r.debug),a=!!(r&&r.override),o={};if("object"!=typeof t){let e=Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw e.code="OBJECT_REQUIRED",e}for(let r of Object.keys(t))Object.prototype.hasOwnProperty.call(e,r)?(!0===a&&(e[r]=t[r],o[r]=t[r]),n&&(!0===a?c(`"${r}" is already defined and WAS overwritten`):c(`"${r}" is already defined and was NOT overwritten`))):(e[r]=t[r],o[r]=t[r]);return o}};t.exports.configDotenv=g.configDotenv,t.exports._configVault=g._configVault,t.exports._parseVault=g._parseVault,t.exports.config=g.config,t.exports.decrypt=g.decrypt,t.exports.parse=g.parse,t.exports.populate=g.populate,t.exports=g},547499,e=>{"use strict";var t=e.i(497289),r=e.i(660526),n=e.i(750227);function a(){return process.env.AGENT_INSIGHT_DATA_DIR||n.default.join(r.default.homedir(),".agent-insight")}function o(...e){return n.default.join(n.default.join(a(),"data"),...e)}function s(){return o("storage","skills")}function i(e,t){return`data/storage/skills/${e}/v${t}`}function l(e,t){return n.default.join(s(),e,`v${t}`)}function u(e){return n.default.isAbsolute(e)?e:"data"===e||e.startsWith("data/")?n.default.join(a(),e):o(e)}function c(){(0,t.config)({path:n.default.join(a(),".env")}),(0,t.config)(),process.env.DATABASE_URL=function(e){let t=`file:${o("witty_insight.db")}`;if(!e||!e.trim()||"file:../data/witty_insight.db"===e)return t;let a=e.match(/^file:(~(?:\/.*)?)$/);if(a){let e=n.default.join(r.default.homedir(),a[1].slice(1));return`file:${e}`}return e}(process.env.DATABASE_URL)}e.s(["getSkillStorageRoot",()=>s,"getSkillVersionAssetPath",()=>i,"getSkillVersionStorageDir",()=>l,"loadAgentInsightEnv",()=>c,"resolveAgentInsightDataPath",()=>o,"resolveRuntimeAssetPath",()=>u])},854763,e=>e.a(async(t,r)=>{try{let l;var n,a=e.i(547499),o=e.i(463021),s=e.i(261998),i=t([s]);[s]=i.then?(await i)():i,(0,a.loadAgentInsightEnv)();let u=e.g.prisma||new o.PrismaClient,c=(0,s.getDatabaseAdapter)(),d=process.env.DB_HOST?(l=(n=c).getClient())instanceof o.PrismaClient?l:{user:{findUnique:async e=>e.where?.apiKey?n.findUserByApiKey(e.where.apiKey):e.where?.username?n.findUserByUsername(e.where.username):null,findFirst:async e=>e.where?.username?n.findUserByUsername(e.where.username):null},skill:{findFirst:async e=>{let t=e.where?.name,r=e.where?.OR?.[0]?.user??e.where?.OR?.[1]?.user;return n.findSkill(t,r)},findMany:async e=>n.findSkills(e.where||{}),findUnique:async e=>n.findSkill(e.where?.name,e.where?.user),delete:async e=>(console.warn("[OpenGaussAdapter] skill.delete not fully implemented"),null)},skillVersion:{findFirst:async e=>e.where?.skillId?n.findLatestSkillVersion(e.where.skillId):null},config:{findMany:async e=>n.findConfigs(e.where||{})},session:{findUnique:async e=>e.where?.taskId?n.findSessionByTaskId(e.where.taskId):null,update:async e=>e.where?.id?n.updateSession(e.where.id,e.data):null,upsert:async e=>{let t=e.where?.taskId;return t?n.upsertSession(t,e.create,e.update):null}},execution:{findUnique:async e=>e.where?.id?n.findExecutionById(e.where.id):null,upsert:async e=>n.upsertExecution(e),findMany:async e=>n.findExecutions(e.where,e.orderBy),update:async e=>e.where?.id?n.updateExecution(e.where.id,e.data):null},debugHistory:{findMany:async e=>(console.warn("[PrismaWrapper] debugHistory.findMany not implemented in adapter"),[]),create:async e=>(console.warn("[PrismaWrapper] debugHistory.create not implemented in adapter"),null),deleteMany:async e=>(console.warn("[PrismaWrapper] debugHistory.deleteMany not implemented in adapter"),{count:0})}}:u;e.s(["db",0,c,"prisma",0,d,"prismaRaw",0,u]),r()}catch(e){r(e)}},!1),907366,e=>e.a(async(t,r)=>{try{var n=e.i(854763),a=t([n]);async function o(e,t){if(t)return{username:t,apiKey:null};let r=e.headers.get("x-witty-api-key");if(r)return{username:await s(r),apiKey:r};let n=new URL(e.url).searchParams.get("apiKey");return n?{username:await s(n),apiKey:n}:{username:null,apiKey:null}}async function s(e){try{let t=await n.db.findUserByApiKey(e);return t?.username||null}catch(e){return console.error("[Auth] Failed to lookup user by API Key:",e),null}}async function i(e,t){let r=await n.db.findSkillById(e);return r?"public"!==r.visibility&&r.user&&(!t||r.user!==t)&&t?{allowed:!1,skill:r}:{allowed:!0,skill:r}:{allowed:!1,skill:null}}[n]=a.then?(await a)():a,e.s(["canAccessSkill",()=>i,"resolveUser",()=>o]),r()}catch(e){r(e)}},!1),137165,e=>{"use strict";var t=e.i(522734),r=e.i(814747);let n={"claude-opus-4-6":{inputTokenPrice:5,outputTokenPrice:25,cacheReadInputTokenPrice:.5,cacheCreationInputTokenPrice:6.25},"claude-sonnet-4-6":{inputTokenPrice:3,outputTokenPrice:15,cacheReadInputTokenPrice:.3,cacheCreationInputTokenPrice:3.75},"deepseek-chat":{inputTokenPrice:.28,outputTokenPrice:.42,cacheReadInputTokenPrice:.028},"deepseek-reasoner":{inputTokenPrice:.28,outputTokenPrice:.42,cacheReadInputTokenPrice:.028},"minimax-m2.5-free":{inputTokenPrice:0,outputTokenPrice:0}},a={"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"deepseek-chat":128e3,"deepseek-reasoner":128e3,"minimax-m2.5-free":196608},o=r.default.join(process.cwd(),"custom-models.json"),s={},i={},l=-1;function u(){try{let e=t.default.statSync(o).mtimeMs;if(e===l)return{pricing:s,contextWindows:i};let r=JSON.parse(t.default.readFileSync(o,"utf-8")),n={},a={};for(let[e,t]of Object.entries(r))e.startsWith("_")||("number"==typeof t.inputTokenPrice&&"number"==typeof t.outputTokenPrice&&(n[e]=t),"number"==typeof t.contextWindow&&(a[e]=t.contextWindow));s=n,i=a,l=e}catch(e){e instanceof SyntaxError&&console.warn("[model-config] Failed to parse custom-models.json:",e.message),s={},i={},l=-1}return{pricing:s,contextWindows:i}}function c(e,t){if(t[e])return t[e];for(let[r,n]of Object.entries(t).sort((e,t)=>t[0].length-e[0].length))if(e.startsWith(r))return n;return null}function d(e){let{pricing:t}=u(),r=c(e,t);if(r)return{pricing:r,source:"custom"};let a=c(e,n);return a?{pricing:a,source:"default"}:null}function p(e){let{contextWindows:t}=u(),r=c(e,t);if(null!=r)return{contextWindow:r,source:"custom"};let n=c(e,a);return null!=n?{contextWindow:n,source:"default"}:null}function f(e,t,r,n,a){let o=r.cacheReadInputTokenPrice??.1*r.inputTokenPrice,s=r.cacheCreationInputTokenPrice??1.25*r.inputTokenPrice;return(e*r.inputTokenPrice+(n??0)*o+(a??0)*s+t*r.outputTokenPrice)/1e6}e.s(["DEFAULT_CACHE_CREATION_RATIO",0,1.25,"DEFAULT_CACHE_READ_RATIO",0,.1,"calculateCost",()=>f,"getModelContextWindow",()=>p,"getModelPricing",()=>d])},2441,e=>{"use strict";var t=e.i(137165);function r(e){return"1d"===e?{gran:"hour",count:24,step:36e5}:"1m"===e?{gran:"day",count:30,step:864e5}:{gran:"day",count:7,step:864e5}}function n(e){return["1d","1w","1m"].includes(e)?e:"1w"}function a(e,t){let r=new Date(e);"hour"===t.gran?r.setMinutes(0,0,0):r.setHours(0,0,0,0);let n=[];for(let e=t.count-1;e>=0;e--)n.push(r.getTime()-e*t.step);return n}function o(e,t){let r=new Date(e);return"hour"===t?`${String(r.getHours()).padStart(2,"0")}:00`:`${r.getMonth()+1}/${r.getDate()}`}function s(e,t){if(!e.length)return 0;let r=[...e].sort((e,t)=>e-t),n=Math.ceil(r.length*t)-1;return r[Math.max(0,Math.min(r.length-1,n))]}function i(e){if(null!=e.toolCallErrorCount&&e.toolCallErrorCount>0)return!1;if(e.failures)try{let t=JSON.parse(e.failures);if(Array.isArray(t)&&t.length>0)return!1}catch{}return!0}function l(e){let t=e.inputTokens??0,r=e.outputTokens??0,n=t+r;return 0===n&&e.tokens&&(n=e.tokens),{input:t,output:r,total:n}}function u(e,r){let n=e.model||"",a=(0,t.getModelPricing)(n);return a?(0,t.calculateCost)(e.inputTokens??0,e.outputTokens??0,a.pricing,e.cacheReadInputTokens??0,e.cacheCreationInputTokens??0):(n&&r.add(n),0)}function c(e){if(e.observedAgents)try{let t=JSON.parse(e.observedAgents);if(Array.isArray(t))return Math.max(1,t.length)}catch{}return 1}function d(e,t,r){return t.map(t=>{let n=t+r;return e.filter(e=>{let r=e.timestamp.getTime();return r>=t&&r<n})})}e.s(["agentCountOf",()=>c,"assignBuckets",()=>d,"bucketLabel",()=>o,"bucketStarts",()=>a,"isSuccess",()=>i,"normalizeWindow",()=>n,"pct",()=>s,"planOf",()=>r,"rowCost",()=>u,"rowTokens",()=>l])},897946,e=>e.a(async(t,r)=>{try{var n=e.i(89171),a=e.i(854763),o=e.i(907366),s=e.i(2441),i=t([a,o]);function l(e,t){let r=e.length,n=e.filter(s.isSuccess).length,a=e.map(e=>e.latency).filter(e=>null!=e&&e>0),o=e.reduce((e,t)=>e+(t.toolCallCount??0),0),i=e.reduce((e,t)=>e+(t.toolCallErrorCount??0),0),l=e.reduce((e,t)=>e+(t.llmCallCount??0),0),u=0,c=0,d=0,p=0;for(let r of e){let e=(0,s.rowTokens)(r);u+=e.input,c+=e.output,d+=e.total,p+=(0,s.rowCost)(r,t)}return{traces:r,successRate:r?Math.round(n/r*1e3)/10:0,p95Latency:Math.round(100*(0,s.pct)(a,.95))/100,activeAgents:new Set(e.map(e=>e.agentName?.trim()).filter(Boolean)).size,activeModels:new Set(e.map(e=>e.model?.trim()).filter(Boolean)).size,toolCalls:o,toolErrorRate:o?Math.round(i/o*1e3)/10:0,llmCalls:l,totalTokens:d,inputTokens:u,outputTokens:c,totalCost:Math.round(1e6*p)/1e6}}async function u(e){try{let t=new URL(e.url),{username:r}=await (0,o.resolveUser)(e,t.searchParams.get("user")),i=(0,s.normalizeWindow)(t.searchParams.get("window")),u=(0,s.planOf)(i),c=new Date,d=(0,s.bucketStarts)(c,u),p=d[0],f=u.count*u.step,h=p-f,g=await a.prisma.execution.findMany({where:{...r?{user:r}:{},isSubagent:!1,timestamp:{gte:new Date(h)}},select:{timestamp:!0,latency:!0,isAnswerCorrect:!0,toolCallCount:!0,toolCallErrorCount:!0,llmCallCount:!0,failures:!0,inputTokens:!0,outputTokens:!0,tokens:!0,cacheReadInputTokens:!0,cacheCreationInputTokens:!0,model:!0,agentName:!0,taskId:!0}}),m=new Set,y=g.filter(e=>e.timestamp.getTime()>=p),w=g.filter(e=>{let t=e.timestamp.getTime();return t>=h&&t<p}),v=l(y,m),E=l(w,m),T=(0,s.assignBuckets)(y,d,u.step),x=d.map((e,t)=>{let r=T[t],n=r.length,a=r.filter(s.isSuccess).length,o=n-a,i=r.map(e=>e.latency).filter(e=>null!=e&&e>0),l=0,c=0,d=0;for(let e of r){let t=(0,s.rowTokens)(e);l+=t.input,c+=t.output,d+=(0,s.rowCost)(e,m)}let p=l+c;return{ts:new Date(e).toISOString(),label:(0,s.bucketLabel)(e,u.gran),traces:n,success:a,fail:o,errorRate:n?Math.round(o/n*1e3)/10:0,latencyP50:Math.round(100*(0,s.pct)(i,.5))/100,latencyP95:Math.round(100*(0,s.pct)(i,.95))/100,latencyP99:Math.round(100*(0,s.pct)(i,.99))/100,inputTokens:l,outputTokens:c,totalTokens:p,cost:Math.round(1e6*d)/1e6,avgTokens:n?Math.round(p/n):0,avgCost:n?Math.round(d/n*1e6)/1e6:0}});return n.NextResponse.json({window:i,granularity:u.gran,currency:"USD",errorThreshold:5,generatedAt:c.toISOString(),pricingMissingModels:[...m],kpi:{current:v,previous:E},buckets:x})}catch(e){return console.error("[Fleet Trends Error]",e),n.NextResponse.json({error:"Failed to load fleet trends"},{status:500})}}[a,o]=i.then?(await i)():i,e.s(["GET",()=>u,"dynamic",0,"force-dynamic"]),r()}catch(e){r(e)}},!1),485218,e=>e.a(async(t,r)=>{try{var n=e.i(747909),a=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),c=e.i(316795),d=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),g=e.i(570101),m=e.i(626937),y=e.i(10372),w=e.i(193695);e.i(52474);var v=e.i(600220),E=e.i(897946),T=t([E]);[E]=T.then?(await T)():T;let R=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/fleet/trends/route",pathname:"/api/fleet/trends",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/fleet/trends/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:_,workUnitAsyncStorage:A,serverHooks:C}=R;function x(){return(0,o.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:A})}async function k(e,t,r){R.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let n="/api/fleet/trends/route";n=n.replace(/\/index$/,"")||"/";let o=await R.prepare(e,t,{srcPage:n,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:E,params:T,nextConfig:x,parsedUrl:k,isDraftMode:_,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:I,revalidateOnlyGenerated:N,resolvedPathname:D,clientReferenceManifest:O,serverActionsManifest:b}=o,P=(0,u.normalizeAppPath)(n),S=!!(A.dynamicRoutes[P]||A.routes[D]),M=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,k,!1):t.end("This page could not be found"),null);if(S&&!_){let e=!!A.routes[D],t=A.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await M();throw new w.NoFallbackError}}let V=null;!S||R.isDev||_||(V=D,V="/index"===V?"/":V);let U=!0===R.isDev||!S,$=S&&!U;b&&O&&(0,l.setManifestsSingleton)({page:n,clientReferenceManifest:O,serverActionsManifest:b});let j=e.method||"GET",q=(0,i.getTracer)(),K=q.getActiveScopeSpan(),F={params:T,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>R.onRequestError(e,t,n,a,C)},sharedContext:{buildId:E}},L=new c.NodeNextRequest(e),B=new c.NodeNextResponse(t),H=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let o=async e=>R.handle(H,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${j} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${n}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var i,u;let c=async({previousCacheEntry:a})=>{try{if(!l&&I&&N&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await o(s);e.fetchMetrics=F.renderOpts.fetchMetrics;let i=F.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=F.renderOpts.collectedTags;if(!S)return await (0,h.sendResponse)(L,B,n,F.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[y.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==a?void 0:a.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:n,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:I})},!1,C),t}},d=await R.handleResponse({req:e,nextConfig:x,cacheKey:V,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:N,responseGenerator:c,waitUntil:r.waitUntil,isMinimalMode:l});if(!S)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",I?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&S||p.delete(y.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(L,B,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};K?await u(K):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${j} ${n}`,kind:i.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},u))}catch(t){if(t instanceof w.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:$,isOnDemandRevalidate:I})},!1,C),S)throw t;return await (0,h.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>x,"routeModule",()=>R,"serverHooks",()=>C,"workAsyncStorage",()=>_,"workUnitAsyncStorage",()=>A]),r()}catch(e){r(e)}},!1)];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__8cc92af1._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[912714,(e,t,n)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},925127,(e,t,n)=>{t.exports=e.x("node:worker_threads",()=>require("node:worker_threads"))},478500,(e,t,n)=>{t.exports=e.x("node:async_hooks",()=>require("node:async_hooks"))},727028,(e,t,n)=>{t.exports=e.x("node:zlib",()=>require("node:zlib"))},812057,(e,t,n)=>{t.exports=e.x("node:util",()=>require("node:util"))},761095,(e,t,n)=>{t.exports=e.x("node:net",()=>require("node:net"))},347299,(e,t,n)=>{t.exports=e.x("node:http",()=>require("node:http"))},687769,(e,t,n)=>{t.exports=e.x("node:events",()=>require("node:events"))},857764,(e,t,n)=>{t.exports=e.x("node:url",()=>require("node:url"))},81111,(e,t,n)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},57328,(e,t,n)=>{t.exports=e.x("node:assert",()=>require("node:assert"))},483324,(e,t,n)=>{t.exports=e.x("node:querystring",()=>require("node:querystring"))},677652,(e,t,n)=>{t.exports=e.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},685560,(e,t,n)=>{t.exports=e.x("node:tls",()=>require("node:tls"))},951615,(e,t,n)=>{t.exports=e.x("node:buffer",()=>require("node:buffer"))},874096,(e,t,n)=>{t.exports=e.x("node:perf_hooks",()=>require("node:perf_hooks"))},107417,(e,t,n)=>{t.exports=e.x("node:util/types",()=>require("node:util/types"))},246479,(e,t,n)=>{t.exports=e.x("node:http2",()=>require("node:http2"))},241293,(e,t,n)=>{t.exports=e.x("node:console",()=>require("node:console"))},26910,(e,t,n)=>{t.exports=e.x("node:timers",()=>require("node:timers"))},495879,(e,t,n)=>{t.exports=e.x("node:dns",()=>require("node:dns"))},637351,e=>{"use strict";var t=e.i(936689);let n=null;function s(){let e;if(n)return n;let s=process.env.https_proxy||process.env.HTTPS_PROXY||process.env.http_proxy||process.env.HTTP_PROXY,r="0"!==process.env.NODE_TLS_REJECT_UNAUTHORIZED;if(s){console.log("[ProxyConfig] HTTP proxy configured (URL hidden for privacy)"),!1===r&&console.log("[ProxyConfig] SSL certificate verification is disabled");let n=new t.ProxyAgent({uri:s,connect:{rejectUnauthorized:r}}),o=new t.Agent({connect:{rejectUnauthorized:r}}),i=process.env.no_proxy||process.env.NO_PROXY,a=i?i.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean):[];e=(e,s)=>{let r=e.toString(),i=!1;if(a.length>0)try{let e=new URL(r).hostname.toLowerCase();i=a.some(t=>!!("*"===t||e===t||t.startsWith(".")&&e.endsWith(t)||!t.startsWith(".")&&(e===t||e.endsWith("."+t))))}catch(e){}return(0,t.fetch)(e,{...s,dispatcher:i?o:n})}}else if(!1===r){console.log("[ProxyConfig] No proxy, but SSL certificate verification is disabled");let n=new t.Agent({connect:{rejectUnauthorized:!1}});e=(e,s)=>(0,t.fetch)(e,{...s,dispatcher:n})}return n={customFetch:e,proxyUrl:s,rejectUnauthorized:r}}e.s(["getProxyConfig",()=>s])},997215,e=>{"use strict";function t(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return String(e);if(Array.isArray(e))return e.map(function e(t){if(null==t)return"";if("string"==typeof t)return t;if("number"==typeof t||"boolean"==typeof t)return String(t);if(Array.isArray(t))return t.map(e).filter(Boolean).join("");if("object"==typeof t){if("string"==typeof t.text)return t.text;if("string"==typeof t.content)return t.content;if(Array.isArray(t.content))return e(t.content)}return""}).filter(Boolean).join("");if("object"==typeof e){if("string"==typeof e.text)return e.text;if("string"==typeof e.content)return e.content;if(Array.isArray(e.content))return t(e.content)}return""}function n(e){if(!e||!Object.prototype.hasOwnProperty.call(e,"content")||"string"==typeof e.content)return e;let n={...e};return void 0===n.content_blocks&&null!=n.content&&(n.content_blocks=n.content),n.content=t(n.content),n}function s(e){if(!e||"object"!=typeof e)return e;let t=n({...e});return t.message&&"object"==typeof t.message&&(t.message=n({...t.message})),t.responseMessage&&"object"==typeof t.responseMessage&&(t.responseMessage=n({...t.responseMessage})),Array.isArray(t.requestMessages)&&(t.requestMessages=t.requestMessages.map(e=>e&&"object"==typeof e?n({...e}):e)),t}function r(e){return Array.isArray(e)?e.map(s):[]}e.s(["normalizeClaudeCodeInteractionsForStorage",()=>r,"stringifyClaudeContent",()=>t])},286372,e=>{"use strict";var t=e.i(997215);function n(e){if(!e||0===e.length)return null;let n=0,u=()=>`n${++n}`,p=e.find(e=>e.agent)?.agent||"Agent",d=r({id:u(),agentName:p,subagentType:null,sessionId:"TOP",parentId:null,depth:0}),f=[],c=new Map;c.set("TOP",d);let m=new Map;for(let n=0;n<e.length;n++){var g,y,h,x;let b,_=e[n];if("system"===_.role){let e={text:(0,t.stringifyClaudeContent)(_.content),sha256:_.system_prompt_sha256,length:_.system_prompt_length,modelID:_.system_prompt_modelID,providerID:_.system_prompt_providerID};if(!e.text)continue;let n=_.subagent_session_id;if(n)if(c.has(n)){let t=c.get(n);t.systemPrompts||(t.systemPrompts=[]),t.systemPrompts.some(t=>e.sha256&&t.sha256===e.sha256||!e.sha256&&t.text===e.text)||t.systemPrompts.push(e)}else m.has(n)||m.set(n,[]),m.get(n).push(e);else d.systemPrompts||(d.systemPrompts=[]),d.systemPrompts.some(t=>e.sha256&&t.sha256===e.sha256||!e.sha256&&t.text===e.text)||d.systemPrompts.push(e);continue}let k="subagent"===_.role&&!!_.subagent_session_id,A=k?_.subagent_session_id:"TOP",C=_.agent||(k?_.subagent_name||"Subagent":p);if(k){let e=function(e){let t=(e.subagent_name||e.agent||"").trim();if(!t)return null;let n=t.match(/^([A-Za-z][\w-]*)/);return n?n[1].toLowerCase():t.toLowerCase()}(_),t=function(e,t){let n=f.findIndex(n=>n.expectedSessionId===e&&(!t||n.subagentType===t));if(n>=0)return f.splice(n,1)[0];if(!t)return;let s=f.findIndex(e=>!e.expectedSessionId&&e.subagentType===t);return s>=0?f.splice(s,1)[0]:void 0}(A,e);if(t){let n=t.parentNode;for(let s of(b=r({id:u(),agentName:C,subagentType:t.subagentType||e,sessionId:A,parentId:n.id,depth:n.depth+1}),t.parallelCount>1&&(b.parallelCallCount=t.parallelCount),n.children.push(b),c.set(A,b),t.spawnEvents))s.spawnedChildId=b.id;null==t.startedAt||b.startedAt||(b.startedAt=t.startedAt),function(e,t){let n=m.get(t);if(n&&n.length){for(let t of(e.systemPrompts||(e.systemPrompts=[]),n))e.systemPrompts.some(e=>t.sha256&&e.sha256===t.sha256||!t.sha256&&e.text===t.text)||e.systemPrompts.push(t);m.delete(t)}}(b,A)}else b=c.get(A)}else b=c.get(A)||d;if(b||(b=d),function(e){if("user"!==e.role&&"opencode"!==e.role&&"subagent"!==e.role||(0,t.stringifyClaudeContent)(e.content).trim())return!1;let n=e.parts;return!!Array.isArray(n)&&0!==n.length&&n.every(e=>"compaction"===(e?.type||"").toLowerCase())}(_))continue;let v=i(_),T=a(_)??v;null!=v&&(!b.startedAt||v<b.startedAt)&&(b.startedAt=v),null!=T&&(!b.endedAt||T>b.endedAt)&&(b.endedAt=T);let I=_.usage;if(I&&(b.stats.inputTokens+=I.input||0,b.stats.outputTokens+=I.output||0,b.stats.cacheReadTokens+=I.cache?.read||0,b.stats.cacheWriteTokens+=I.cache?.write||0,b.stats.reasoningTokens+=I.reasoning||0,b.stats.totalTokens+=I.total||0),"compaction"===(g=_).mode&&!0===g.summary){let e={interactionIndex:n,summaryText:l(_.parts,"text"),reasoningText:l(_.parts,"reasoning")||void 0,modelID:_.modelID,providerID:_.providerID,startedAt:v,completedAt:T,usage:_.usage};b.compactions||(b.compactions=[]),b.compactions.push(e);continue}for(let e of(b.interactionIndices.push(n),b.stats.interactions++,"Agent"===b.agentName&&C&&(b.agentName=C),function(e,n){let s=[],r=i(e),u=a(e),p=(0,t.stringifyClaudeContent)(e.content),d=function(e){let t=[],n=new Map;for(let s of e){let e=function(e){let t=e.id;if("string"==typeof t&&t.trim())return`id:${t.trim()}`;let n=e.function?.name||e.name||"unknown",s=e.function?.arguments??e.arguments??"";return`sig:${n}:${function(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(s)}`}(s),r=n.get(e);null==r?(n.set(e,t.length),t.push(s)):t[r]=function(e,t){let n={...e,...t};return void 0!==e.output&&void 0===t.output&&(n.output=e.output),void 0!==e.result&&void 0===t.result&&(n.result=e.result),e.timing&&!t.timing&&(n.timing=e.timing),n}(t[r],s)}return t}(e.tool_calls||[]);"user"===e.role&&p.trim()&&s.push({kind:"user",interaction:e,interactionIndex:n,startedAt:r,completedAt:u,summary:p});let f="assistant"===e.role||"subagent"===e.role||"opencode"===e.role,c=p.trim()?p:l(e.parts,"reasoning");if(0===d.length)return f&&c.trim()&&s.push({kind:"llm",interaction:e,interactionIndex:n,startedAt:r,completedAt:u,summary:c,usage:e.usage}),s;for(let t of(f&&s.push({kind:"llm",interaction:e,interactionIndex:n,startedAt:r,completedAt:u,summary:c,usage:e.usage}),d)){let i,a=t.function?.name||t.name||"unknown",l=t.function?.arguments??t.arguments;if("string"==typeof l)try{i=JSON.parse(l)}catch{i=l}else i=l;let u=a.toLowerCase(),p={kind:"task"===u?"task":"skill"===u||"load_skill"===u||"skill_view"===u||"skill_tool"===u?"skill":"tool",name:a,args:i,output:t.output??t.result,toolCallId:t.id,toolStatus:t.state,interaction:e,interactionIndex:n,startedAt:o(t.timing?.started_at)??r,completedAt:o(t.timing?.completed_at),summary:function(e,t){if(!t||"object"!=typeof t)return e;if("task"===e){let e=t.description||t.subagent_type||"",n=t.subagent_type?`[${t.subagent_type}]`:"";return`task ${n} ${e}`.trim()}return"skill"===e?`skill: ${t.name||""}`:"bash"===e?`bash: ${(t.command||"").slice(0,80)}`:"read"===e?`read: ${t.path||t.file_path||""}`:"write"===e?`write: ${t.path||t.file_path||""}`:"glob"===e?`glob: ${t.pattern||""}`:e}(a,i)};p._toolCallId=t.id,p.splitParallelTask=!!t.trace_split_parallel_task,s.push(p)}return s}(_,n)))if(b.events.push(e),"llm"===e.kind)b.stats.llmCalls++;else if("skill"===e.kind)b.stats.skillCalls++;else if("task"===e.kind){b.stats.taskCalls++;let t=e.args?.subagent_type||e.args?.subagentType;t&&(y=b,h=n,f.push({parentNode:y,subagentType:t,expectedSessionId:s((x=e).args)??s(x.output),startedAt:e.startedAt,spawnEvents:[e],parallelCount:1,parentInteractionIndex:h}))}else"tool"===e.kind&&b.stats.toolCalls++}return function e(t){if(Number.isFinite(t.startedAt)&&Number.isFinite(t.endedAt)){let e=t.endedAt-t.startedAt;t.stats.durationMs=e>=0?e:void 0}for(let n of t.children)e(n)}(d),d}function s(e,t=0){if(null!=e&&!(t>3)){if("string"==typeof e){let n=e.trim();if(!n)return;if(n.startsWith("{")||n.startsWith("["))try{let e=JSON.parse(n),r=s(e,t+1);if(r)return r}catch{}let r=n.match(/\b(?:session_id|sessionId|subagent_session_id|subagentSessionId)\s*[:=]\s*([A-Za-z0-9_.:-]+)/);return r?.[1]}if(Array.isArray(e)){for(let n of e){let e=s(n,t+1);if(e)return e}return}if("object"==typeof e){let n=e.session_id??e.sessionId??e.subagent_session_id??e.subagentSessionId;if("string"==typeof n&&n.trim())return n.trim();for(let n of Object.values(e)){let e=s(n,t+1);if(e)return e}}}}function r(e){return{...e,events:[],children:[],startedAt:void 0,endedAt:void 0,stats:{interactions:0,llmCalls:0,toolCalls:0,skillCalls:0,taskCalls:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,reasoningTokens:0,totalTokens:0,durationMs:void 0},interactionIndices:[]}}function o(e){if(null!=e){if("number"==typeof e&&Number.isFinite(e))return e>0&&e<1e10?1e3*e:e;if("string"==typeof e){let t=e.trim();if(!t)return;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);if(!Number.isFinite(e))return;return e>0&&e<1e10?1e3*e:e}let n=Date.parse(t);return Number.isFinite(n)?n:void 0}}}function i(e){return o(e.timeInfo?.created)??o(e.timestamp)}function a(e){return o(e.timeInfo?.completed)}function l(e,t){if(!Array.isArray(e)||0===e.length)return"";let n=[];for(let s of e){if((s?.type||"").toLowerCase()!==t)continue;let e="string"==typeof s?.text?s.text:"";e&&n.push(e)}return n.join("")}e.s(["buildAgentCallTree",()=>n,"walkTree",()=>function e(t,n){for(let s of(n(t),t.children))e(s,n)}])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__9d2e5f60._.js.map