agent-insight 0.4.1 → 0.4.2

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 (1191) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +13 -0
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +51 -3
  5. package/.next/standalone/.next/routes-manifest.json +82 -0
  6. package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/agents/page.js.nft.json +1 -1
  13. package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/dataset/page.js.nft.json +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.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(main)/infra/page/app-paths-manifest.json +3 -0
  33. package/.next/standalone/.next/server/app/(main)/infra/page/build-manifest.json +17 -0
  34. package/.next/standalone/.next/server/app/(main)/infra/page/next-font-manifest.json +6 -0
  35. package/.next/standalone/.next/server/app/(main)/infra/page/react-loadable-manifest.json +1 -0
  36. package/.next/standalone/.next/server/app/(main)/infra/page/server-reference-manifest.json +4 -0
  37. package/.next/standalone/.next/server/app/(main)/infra/page.js +17 -0
  38. package/.next/standalone/.next/server/app/(main)/infra/page.js.map +5 -0
  39. package/.next/standalone/.next/server/app/(main)/infra/page.js.nft.json +1 -0
  40. package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +2 -0
  41. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/app-paths-manifest.json +3 -0
  42. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/build-manifest.json +17 -0
  43. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/next-font-manifest.json +6 -0
  44. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/react-loadable-manifest.json +1 -0
  45. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page/server-reference-manifest.json +4 -0
  46. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page.js +17 -0
  47. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page.js.map +5 -0
  48. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page.js.nft.json +1 -0
  49. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +2 -0
  50. package/.next/standalone/.next/server/app/(main)/infra/sources/page/app-paths-manifest.json +3 -0
  51. package/.next/standalone/.next/server/app/(main)/infra/sources/page/build-manifest.json +17 -0
  52. package/.next/standalone/.next/server/app/(main)/infra/sources/page/next-font-manifest.json +6 -0
  53. package/.next/standalone/.next/server/app/(main)/infra/sources/page/react-loadable-manifest.json +1 -0
  54. package/.next/standalone/.next/server/app/(main)/infra/sources/page/server-reference-manifest.json +4 -0
  55. package/.next/standalone/.next/server/app/(main)/infra/sources/page.js +17 -0
  56. package/.next/standalone/.next/server/app/(main)/infra/sources/page.js.map +5 -0
  57. package/.next/standalone/.next/server/app/(main)/infra/sources/page.js.nft.json +1 -0
  58. package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +2 -0
  59. package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/(main)/metrics/page.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/(main)/quality/page.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/(main)/skill-eval/page.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/(main)/skill-generator/page.js.nft.json +1 -1
  79. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/(main)/skill-opt/page.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/(main)/skills/page.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  92. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  93. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  94. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  95. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  100. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  101. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  102. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  103. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  104. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  106. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  107. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  108. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
  109. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
  110. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  112. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
  114. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  115. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
  116. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
  117. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  118. package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
  119. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
  120. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
  124. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  125. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
  126. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
  127. package/.next/standalone/.next/server/app/accessconfig/install.html +3 -1
  128. package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
  129. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  130. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  132. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
  134. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
  136. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
  137. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  138. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
  139. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
  140. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  141. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  142. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
  143. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
  144. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  145. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
  146. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
  147. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  148. package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
  149. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  150. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  151. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
  152. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
  153. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  154. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
  155. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
  156. package/.next/standalone/.next/server/app/agents.html +1 -1
  157. package/.next/standalone/.next/server/app/agents.rsc +5 -5
  158. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  159. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  160. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  161. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  162. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  163. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  164. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  165. package/.next/standalone/.next/server/app/api/agent/run/route.js +5 -4
  166. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/agent/stream/route.js +5 -4
  168. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js +5 -4
  170. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/agent-datasets/route.js +6 -5
  172. package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/agents/[id]/route.js +3 -3
  174. package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/agents/route.js +2 -2
  176. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/auth/apikey/route.js +5 -5
  178. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/auth/organization/route.js +3 -3
  180. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js +3 -3
  182. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js +6 -5
  184. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js +2 -2
  186. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js +2 -2
  188. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/debug/execute/route.js +5 -4
  190. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js +14 -13
  192. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js +2 -2
  194. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
  195. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js +2 -2
  196. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/debug/history/route.js +2 -2
  198. package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js +7 -6
  200. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/eval/config/create/route.js +6 -5
  202. package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js +5 -4
  204. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/api/eval/config/route.js +9 -8
  206. package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/eval/config/status/route.js +3 -3
  208. package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js +1 -1
  210. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js +9 -8
  212. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/eval/settings/route.js +4 -3
  214. package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js +5 -4
  216. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js.nft.json +1 -1
  217. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js +6 -5
  218. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  219. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js +3 -3
  220. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js +6 -5
  222. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +17 -16
  224. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js +2 -2
  226. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js +6 -5
  228. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
  229. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js +3 -3
  230. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js +2 -2
  232. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js +6 -5
  234. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  235. package/.next/standalone/.next/server/app/api/guide/route.js +3 -3
  236. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
  237. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js +7 -6
  238. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js +2 -2
  240. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js +5 -2
  242. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js +9 -8
  244. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js +4 -3
  246. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js +12 -11
  248. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js +3 -3
  250. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
  251. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js +3 -3
  252. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
  253. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js +3 -3
  254. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
  255. package/.next/standalone/.next/server/app/api/ingest/upload/route.js +14 -13
  256. package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/app/api/observe/data/route.js +9 -8
  258. package/.next/standalone/.next/server/app/api/observe/data/route.js.nft.json +1 -1
  259. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js +10 -9
  260. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  261. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js +12 -11
  262. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js +7 -6
  264. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route/app-paths-manifest.json +3 -0
  266. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route/build-manifest.json +11 -0
  267. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route/server-reference-manifest.json +4 -0
  268. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js +9 -0
  269. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.map +5 -0
  270. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -0
  271. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route_client-reference-manifest.js +2 -0
  272. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route/app-paths-manifest.json +3 -0
  273. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route/build-manifest.json +11 -0
  274. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route/server-reference-manifest.json +4 -0
  275. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route.js +7 -0
  276. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route.js.map +5 -0
  277. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route.js.nft.json +1 -0
  278. package/.next/standalone/.next/server/app/api/observe/infra/diagnose/route_client-reference-manifest.js +2 -0
  279. package/.next/standalone/.next/server/app/api/observe/infra/history/route/app-paths-manifest.json +3 -0
  280. package/.next/standalone/.next/server/app/api/observe/infra/history/route/build-manifest.json +11 -0
  281. package/.next/standalone/.next/server/app/api/observe/infra/history/route/server-reference-manifest.json +4 -0
  282. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js +8 -0
  283. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.map +5 -0
  284. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -0
  285. package/.next/standalone/.next/server/app/api/observe/infra/history/route_client-reference-manifest.js +2 -0
  286. package/.next/standalone/.next/server/app/api/observe/infra/poll/route/app-paths-manifest.json +3 -0
  287. package/.next/standalone/.next/server/app/api/observe/infra/poll/route/build-manifest.json +11 -0
  288. package/.next/standalone/.next/server/app/api/observe/infra/poll/route/server-reference-manifest.json +4 -0
  289. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js +8 -0
  290. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.map +5 -0
  291. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -0
  292. package/.next/standalone/.next/server/app/api/observe/infra/poll/route_client-reference-manifest.js +2 -0
  293. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route/app-paths-manifest.json +3 -0
  294. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route/build-manifest.json +11 -0
  295. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route/server-reference-manifest.json +4 -0
  296. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js +8 -0
  297. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.map +5 -0
  298. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -0
  299. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route_client-reference-manifest.js +2 -0
  300. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route/app-paths-manifest.json +3 -0
  301. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route/build-manifest.json +11 -0
  302. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route/server-reference-manifest.json +4 -0
  303. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js +8 -0
  304. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.map +5 -0
  305. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -0
  306. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route_client-reference-manifest.js +2 -0
  307. package/.next/standalone/.next/server/app/api/observe/infra/sources/route/app-paths-manifest.json +3 -0
  308. package/.next/standalone/.next/server/app/api/observe/infra/sources/route/build-manifest.json +11 -0
  309. package/.next/standalone/.next/server/app/api/observe/infra/sources/route/server-reference-manifest.json +4 -0
  310. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js +8 -0
  311. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.map +5 -0
  312. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -0
  313. package/.next/standalone/.next/server/app/api/observe/infra/sources/route_client-reference-manifest.js +2 -0
  314. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route/app-paths-manifest.json +3 -0
  315. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route/build-manifest.json +11 -0
  316. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route/server-reference-manifest.json +4 -0
  317. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js +8 -0
  318. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.map +5 -0
  319. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -0
  320. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route_client-reference-manifest.js +2 -0
  321. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route/app-paths-manifest.json +3 -0
  322. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route/build-manifest.json +11 -0
  323. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route/server-reference-manifest.json +4 -0
  324. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js +8 -0
  325. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.map +5 -0
  326. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -0
  327. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route_client-reference-manifest.js +2 -0
  328. package/.next/standalone/.next/server/app/api/observe/session/route.js +5 -4
  329. package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
  330. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js +8 -7
  331. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
  332. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route/app-paths-manifest.json +3 -0
  333. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route/build-manifest.json +11 -0
  334. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route/server-reference-manifest.json +4 -0
  335. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +17 -0
  336. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.map +5 -0
  337. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -0
  338. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route_client-reference-manifest.js +2 -0
  339. package/.next/standalone/.next/server/app/api/quality/agents/route.js +9 -8
  340. package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
  341. package/.next/standalone/.next/server/app/api/quality/backfill/route.js +11 -10
  342. package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
  343. package/.next/standalone/.next/server/app/api/quality/executions/route.js +9 -8
  344. package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
  345. package/.next/standalone/.next/server/app/api/quality/report/route.js +3 -3
  346. package/.next/standalone/.next/server/app/api/quality/report/route.js.nft.json +1 -1
  347. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js +7 -6
  348. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  349. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js +3 -3
  350. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js.nft.json +1 -1
  351. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js +2 -2
  352. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js.nft.json +1 -1
  353. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js +8 -7
  354. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  355. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js +3 -3
  356. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
  357. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js +3 -3
  358. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js.nft.json +1 -1
  359. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js +1 -1
  360. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  361. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js +7 -6
  362. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  363. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js +3 -3
  364. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js.nft.json +1 -1
  365. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js +1 -1
  366. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  367. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js +1 -1
  368. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  369. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js +1 -1
  370. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  371. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js +1 -1
  372. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  373. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js +2 -2
  374. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js.nft.json +1 -1
  375. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js +2 -2
  376. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js.nft.json +1 -1
  377. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js +11 -10
  378. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  379. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js +3 -3
  380. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js.nft.json +1 -1
  381. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js +6 -5
  382. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js.nft.json +1 -1
  383. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js +8 -7
  384. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  385. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js +2 -2
  386. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
  387. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js +2 -2
  388. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
  389. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js +2 -2
  390. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
  391. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js +3 -3
  392. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  393. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js +10 -9
  394. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
  395. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js +7 -6
  396. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
  397. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js +3 -3
  398. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  399. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js +3 -3
  400. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  401. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js +6 -5
  402. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js.nft.json +1 -1
  403. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js +6 -5
  404. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js.nft.json +1 -1
  405. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js +3 -3
  406. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  407. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js +6 -5
  408. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  409. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +3 -3
  410. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  411. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js +7 -6
  412. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  413. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js +6 -5
  414. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  415. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js +3 -3
  416. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  417. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js +5 -4
  418. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
  419. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js +2 -2
  420. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
  421. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js +2 -2
  422. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
  423. package/.next/standalone/.next/server/app/api/skills/by-name/route.js +3 -3
  424. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  425. package/.next/standalone/.next/server/app/api/skills/logs/route.js +7 -6
  426. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  427. package/.next/standalone/.next/server/app/api/skills/publish/route.js +6 -5
  428. package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
  429. package/.next/standalone/.next/server/app/api/skills/route.js +4 -4
  430. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  431. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js +3 -3
  432. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
  433. package/.next/standalone/.next/server/app/api/skills/upload/route.js +7 -6
  434. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  435. package/.next/standalone/.next/server/app/api/user-evaluators/route.js +3 -2
  436. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  437. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  438. package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
  439. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  440. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  441. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
  442. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  443. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  444. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  445. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  446. package/.next/standalone/.next/server/app/dataset.html +1 -1
  447. package/.next/standalone/.next/server/app/dataset.rsc +5 -5
  448. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  449. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  450. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
  451. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
  452. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  453. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
  454. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
  455. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  456. package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
  457. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  458. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  459. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  460. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
  461. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
  462. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  463. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
  464. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
  465. package/.next/standalone/.next/server/app/eval.html +1 -1
  466. package/.next/standalone/.next/server/app/eval.rsc +5 -5
  467. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  468. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  469. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
  470. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
  471. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  472. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
  473. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
  474. package/.next/standalone/.next/server/app/fault.html +1 -1
  475. package/.next/standalone/.next/server/app/fault.rsc +5 -5
  476. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  477. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  478. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
  479. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
  480. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  481. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
  482. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
  483. package/.next/standalone/.next/server/app/index.html +1 -1
  484. package/.next/standalone/.next/server/app/index.rsc +3 -3
  485. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  486. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  487. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  488. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  489. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  490. package/.next/standalone/.next/server/app/infra/sources.html +1 -0
  491. package/.next/standalone/.next/server/app/infra/sources.meta +17 -0
  492. package/.next/standalone/.next/server/app/infra/sources.rsc +22 -0
  493. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +9 -0
  494. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +4 -0
  495. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +4 -0
  496. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +7 -0
  497. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +22 -0
  498. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +6 -0
  499. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +6 -0
  500. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -0
  501. package/.next/standalone/.next/server/app/infra.html +1 -0
  502. package/.next/standalone/.next/server/app/infra.meta +16 -0
  503. package/.next/standalone/.next/server/app/infra.rsc +22 -0
  504. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +9 -0
  505. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +4 -0
  506. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +7 -0
  507. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +22 -0
  508. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +6 -0
  509. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +6 -0
  510. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -0
  511. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  512. package/.next/standalone/.next/server/app/login.html +1 -1
  513. package/.next/standalone/.next/server/app/login.rsc +4 -4
  514. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  515. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  516. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  517. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  518. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  519. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  520. package/.next/standalone/.next/server/app/memory.html +1 -1
  521. package/.next/standalone/.next/server/app/memory.rsc +5 -5
  522. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
  523. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  524. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
  525. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
  526. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  527. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  528. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  529. package/.next/standalone/.next/server/app/metrics.html +1 -1
  530. package/.next/standalone/.next/server/app/metrics.rsc +5 -5
  531. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  532. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  533. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
  534. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
  535. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  536. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
  537. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
  538. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  539. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
  540. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  541. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  542. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  543. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
  544. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
  545. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  546. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
  547. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
  548. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  549. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
  550. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  551. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  552. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  553. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
  554. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
  555. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  556. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
  557. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
  558. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  559. package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
  560. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  561. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  562. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
  563. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
  564. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  565. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
  566. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
  567. package/.next/standalone/.next/server/app/optapi.html +1 -1
  568. package/.next/standalone/.next/server/app/optapi.rsc +5 -5
  569. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
  570. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  571. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
  572. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
  573. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  574. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
  575. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
  576. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  577. package/.next/standalone/.next/server/app/quality.html +1 -1
  578. package/.next/standalone/.next/server/app/quality.rsc +10 -9
  579. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  580. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  581. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
  582. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +10 -9
  583. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  584. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
  585. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
  586. package/.next/standalone/.next/server/app/security.html +1 -1
  587. package/.next/standalone/.next/server/app/security.rsc +5 -5
  588. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
  589. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  590. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
  591. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
  592. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  593. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
  594. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
  595. package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
  596. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  597. package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
  598. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
  599. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  600. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
  601. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
  602. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
  603. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  604. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  605. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +7 -7
  606. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  607. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  608. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  609. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
  610. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +7 -7
  611. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  612. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
  613. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
  614. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  615. package/.next/standalone/.next/server/app/skill-eval.rsc +7 -7
  616. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  617. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  618. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
  619. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +7 -7
  620. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  621. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
  622. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
  623. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  624. package/.next/standalone/.next/server/app/skill-generator.rsc +6 -6
  625. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  626. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  627. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
  628. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +6 -6
  629. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  630. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
  631. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
  632. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  633. package/.next/standalone/.next/server/app/skill-history.rsc +18 -14
  634. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  635. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  636. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
  637. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +18 -14
  638. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  639. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
  640. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
  641. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  642. package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
  643. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  644. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  645. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
  646. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
  647. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  648. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
  649. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
  650. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  651. package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
  652. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
  653. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  654. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
  655. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
  656. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  657. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
  658. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
  659. package/.next/standalone/.next/server/app/skills.html +1 -1
  660. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  661. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  662. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  663. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
  664. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  665. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  666. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  667. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  668. package/.next/standalone/.next/server/app/trace.html +1 -1
  669. package/.next/standalone/.next/server/app/trace.rsc +20 -17
  670. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  671. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  672. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
  673. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +20 -17
  674. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  675. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
  676. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
  677. package/.next/standalone/.next/server/app-paths-manifest.json +13 -0
  678. package/.next/standalone/.next/server/chunks/[externals]__9fdb9c7d._.js +3 -0
  679. package/.next/standalone/.next/server/chunks/[root-of-the-server]__006f015e._.js +3 -0
  680. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0267beef._.js +3 -0
  681. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02c8a296._.js +3 -0
  682. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__fe35f136._.js → [root-of-the-server]__040c0eb8._.js} +2 -2
  683. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0984a1fa._.js +3 -0
  684. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e446f5e._.js +3 -0
  685. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10150e61._.js +5 -0
  686. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10dc192b._.js +3 -0
  687. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12f2f819._.js +3 -0
  688. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1307c1ad._.js +3 -0
  689. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13eb0d25._.js +3 -0
  690. package/.next/standalone/.next/server/chunks/[root-of-the-server]__146d0997._.js +3 -0
  691. package/.next/standalone/.next/server/chunks/[root-of-the-server]__14f6c06c._.js +3 -0
  692. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1596a789._.js +1 -1
  693. package/.next/standalone/.next/server/chunks/[root-of-the-server]__170fbfb7._.js +5 -0
  694. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1917f41f._.js +3 -0
  695. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19f66254._.js +3 -0
  696. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dac3981._.js +3 -0
  697. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__46adf712._.js → [root-of-the-server]__1e4ede06._.js} +2 -2
  698. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__32ce67c7._.js → [root-of-the-server]__1eb9a6ee._.js} +2 -2
  699. package/.next/standalone/.next/server/chunks/[root-of-the-server]__27ca3a21._.js +3 -0
  700. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b6716cd._.js +3 -0
  701. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b7f3823._.js +3 -0
  702. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d398403._.js +3 -0
  703. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2dd8ff54._.js +3 -0
  704. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2ec78f3e._.js +3 -0
  705. package/.next/standalone/.next/server/chunks/[root-of-the-server]__31f85657._.js +3 -0
  706. package/.next/standalone/.next/server/chunks/[root-of-the-server]__379129ab._.js +3 -0
  707. package/.next/standalone/.next/server/chunks/[root-of-the-server]__39dd5a92._.js +3 -0
  708. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3a70614f._.js +3 -0
  709. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3d91ff40._.js +3 -0
  710. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4299e672._.js +3 -0
  711. package/.next/standalone/.next/server/chunks/[root-of-the-server]__43edd917._.js +3 -0
  712. package/.next/standalone/.next/server/chunks/[root-of-the-server]__44e72985._.js +5 -0
  713. package/.next/standalone/.next/server/chunks/[root-of-the-server]__49fe2c7e._.js +3 -0
  714. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a0ac677._.js +3 -0
  715. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4ce39c11._.js +3 -0
  716. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4fa7606a._.js +3 -0
  717. package/.next/standalone/.next/server/chunks/[root-of-the-server]__528e2fde._.js +3 -0
  718. package/.next/standalone/.next/server/chunks/[root-of-the-server]__592b8090._.js +3 -0
  719. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__19ede63b._.js → [root-of-the-server]__626d0308._.js} +2 -2
  720. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__b74d3160._.js → [root-of-the-server]__65c43993._.js} +2 -2
  721. package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c69839._.js +3 -0
  722. package/.next/standalone/.next/server/chunks/[root-of-the-server]__682d0ba0._.js +3 -0
  723. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6b22780d._.js +3 -0
  724. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c350697._.js +3 -0
  725. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d948bdc._.js +3 -0
  726. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6ecfaae0._.js +5 -0
  727. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fafd86f._.js +3 -0
  728. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +3 -0
  729. package/.next/standalone/.next/server/chunks/[root-of-the-server]__70f19ec4._.js +3 -0
  730. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7582bf4c._.js +3 -0
  731. package/.next/standalone/.next/server/chunks/[root-of-the-server]__79ada3fa._.js +3 -0
  732. package/.next/standalone/.next/server/chunks/[root-of-the-server]__85a7678b._.js +3 -0
  733. package/.next/standalone/.next/server/chunks/[root-of-the-server]__85c943bd._.js +6 -0
  734. package/.next/standalone/.next/server/chunks/[root-of-the-server]__87677b37._.js +3 -0
  735. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__8af85028._.js → [root-of-the-server]__892e3377._.js} +2 -2
  736. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8ab933cd._.js +3 -0
  737. package/.next/standalone/.next/server/chunks/[root-of-the-server]__930e22bb._.js +7 -0
  738. package/.next/standalone/.next/server/chunks/[root-of-the-server]__93970ae1._.js +3 -3
  739. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1fb9a578._.js → [root-of-the-server]__968974bd._.js} +2 -2
  740. package/.next/standalone/.next/server/chunks/[root-of-the-server]__97045cfa._.js +3 -0
  741. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__d62326e3._.js → [root-of-the-server]__970b099f._.js} +2 -2
  742. package/.next/standalone/.next/server/chunks/[root-of-the-server]__99ad309a._.js +3 -0
  743. package/.next/standalone/.next/server/chunks/[root-of-the-server]__99c6aa2d._.js +13 -0
  744. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f278f61._.js +3 -0
  745. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9fd05c54._.js +3 -0
  746. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a1182ad1._.js +3 -0
  747. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a51b64ae._.js +3 -0
  748. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a6900486._.js +3 -0
  749. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a7a740bb._.js +3 -0
  750. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad4b402b._.js +3 -0
  751. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ad9bbfad._.js +3 -0
  752. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b238a277._.js +3 -0
  753. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b4b7e8ef._.js +3 -0
  754. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b7f142c3._.js +3 -0
  755. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bac6c232._.js +3 -0
  756. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bb4f4492._.js +3 -0
  757. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bc21598f._.js +3 -0
  758. package/.next/standalone/.next/server/chunks/[root-of-the-server]__beb32ef1._.js +3 -0
  759. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c10b74c1._.js +3 -0
  760. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c12d7aad._.js +3 -0
  761. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c16c84b6._.js +5 -0
  762. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8611482._.js +3 -0
  763. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ceb630e2._.js +3 -0
  764. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ced5e5ca._.js +3 -0
  765. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cedc21b1._.js +3 -0
  766. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d178c81c._.js +3 -0
  767. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d80a36e0._.js +3 -0
  768. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8e819a1._.js +3 -0
  769. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e0e69916._.js +3 -0
  770. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e84bc7ce._.js +3 -0
  771. package/.next/standalone/.next/server/chunks/[root-of-the-server]__edf01394._.js +3 -0
  772. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fd09870b._.js +3 -0
  773. package/.next/standalone/.next/server/chunks/_048f2013._.js +1 -1
  774. package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
  775. package/.next/standalone/.next/server/chunks/_08c6dd4c._.js +3 -3
  776. package/.next/standalone/.next/server/chunks/{_5041b697._.js → _1a32fa23._.js} +2 -2
  777. package/.next/standalone/.next/server/chunks/_28b9b733._.js +32 -0
  778. package/.next/standalone/.next/server/chunks/_2ac292b0._.js +1 -1
  779. package/.next/standalone/.next/server/chunks/_3f71c366._.js +4 -4
  780. package/.next/standalone/.next/server/chunks/_40f80932._.js +3 -0
  781. package/.next/standalone/.next/server/chunks/{_0ea4c12b._.js → _45a619b0._.js} +1 -1
  782. package/.next/standalone/.next/server/chunks/_49e36e44._.js +1 -1
  783. package/.next/standalone/.next/server/chunks/_4ec439ea._.js +3 -3
  784. package/.next/standalone/.next/server/chunks/_4ffe9f62._.js +3 -0
  785. package/.next/standalone/.next/server/chunks/{_19441465._.js → _547fcde4._.js} +2 -2
  786. package/.next/standalone/.next/server/chunks/_5936e19d._.js +3 -0
  787. package/.next/standalone/.next/server/chunks/_6842a9ba._.js +1 -1
  788. package/.next/standalone/.next/server/chunks/{_bc01feba._.js → _68685b8c._.js} +7 -7
  789. package/.next/standalone/.next/server/chunks/_694f4232._.js +3 -0
  790. package/.next/standalone/.next/server/chunks/_6ed9d796._.js +4 -4
  791. package/.next/standalone/.next/server/chunks/_78078171._.js +3 -0
  792. package/.next/standalone/.next/server/chunks/_78c6471e._.js +1 -1
  793. package/.next/standalone/.next/server/chunks/_8603f9ca._.js +1 -1
  794. package/.next/standalone/.next/server/chunks/_89a3536c._.js +1 -1
  795. package/.next/standalone/.next/server/chunks/_a2ff108d._.js +1 -1
  796. package/.next/standalone/.next/server/chunks/_a305d8b8._.js +3 -3
  797. package/.next/standalone/.next/server/chunks/_adf9e9c5._.js +1 -1
  798. package/.next/standalone/.next/server/chunks/_b30c2ca8._.js +1 -1
  799. package/.next/standalone/.next/server/chunks/{_cdaee29d._.js → _c707acf8._.js} +2 -2
  800. package/.next/standalone/.next/server/chunks/_d0e3dc8c._.js +1 -1
  801. package/.next/standalone/.next/server/chunks/_d4d51026._.js +1 -1
  802. package/.next/standalone/.next/server/chunks/_d5fd7ab4._.js +3 -0
  803. package/.next/standalone/.next/server/chunks/_d8e04766._.js +1 -1
  804. package/.next/standalone/.next/server/chunks/_e0cf0d37._.js +3 -0
  805. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_diagnose_route_actions_31275b71.js +3 -0
  806. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_history_route_actions_2e62a90f.js +3 -0
  807. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_poll_route_actions_e79f2641.js +3 -0
  808. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_sources_route_actions_0b142b73.js +3 -0
  809. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_observe_infra_sources_test_route_actions_1d51e227.js +3 -0
  810. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_public_otel_v1_traces_route_actions_c13e2c65.js +3 -0
  811. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_infra_route_actions_0e9e320e.js +3 -0
  812. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_infra_sources_derive_route_actions_4888b1cf.js +3 -0
  813. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_infra_sources_overview_route_actions_e027c8e7.js +3 -0
  814. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_infra_sources_sessions_route_actions_9005a00a.js +3 -0
  815. package/.next/standalone/.next/server/chunks/{src_49f0d71c._.js → src_08719fbb._.js} +2 -2
  816. package/.next/standalone/.next/server/chunks/src_34fb142e._.js +4 -4
  817. package/.next/standalone/.next/server/chunks/src_4fe54147._.js +1 -1
  818. package/.next/standalone/.next/server/chunks/src_9c08bd78._.js +1 -1
  819. package/.next/standalone/.next/server/chunks/src_lib_7bae418f._.js +1 -1
  820. package/.next/standalone/.next/server/chunks/src_lib_84cf46e8._.js +3 -0
  821. package/.next/standalone/.next/server/chunks/src_lib_9cf1dab3._.js +29 -0
  822. package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +7 -7
  823. package/.next/standalone/.next/server/chunks/src_lib_engine_general-agent_970b1dfe._.js +2 -2
  824. package/.next/standalone/.next/server/chunks/src_lib_engine_skill-generation_opencode-agent-cli_opencode-manager_ts_94c7d385._.js +3 -3
  825. package/.next/standalone/.next/server/chunks/src_lib_engine_skill-issues_static-evaluator_5e9f2d8a._.js +4 -4
  826. package/.next/standalone/.next/server/chunks/src_lib_f12f8b56._.js +32 -0
  827. package/.next/standalone/.next/server/chunks/{src_lib_bc5e5c04._.js → src_lib_fca90805._.js} +1 -1
  828. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15099475._.js +3 -0
  829. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15600e29._.js +1 -1
  830. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2505addc._.js +3 -0
  831. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__30536471._.js +3 -0
  832. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ad69e0c0._.js +3 -0
  833. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__920fa087._.js → [root-of-the-server]__c9cf8076._.js} +2 -2
  834. package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +1 -1
  835. package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +3 -0
  836. package/.next/standalone/.next/server/chunks/ssr/_0d3145ea._.js +3 -0
  837. package/.next/standalone/.next/server/chunks/ssr/_1568477b._.js +3 -0
  838. package/.next/standalone/.next/server/chunks/ssr/_1f67a52d._.js +4 -0
  839. package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +1 -1
  840. package/.next/standalone/.next/server/chunks/ssr/_23385550._.js +1 -1
  841. package/.next/standalone/.next/server/chunks/ssr/_2534caac._.js +3 -0
  842. package/.next/standalone/.next/server/chunks/ssr/_3b019a38._.js +3 -0
  843. package/.next/standalone/.next/server/chunks/ssr/_44e49071._.js +4 -0
  844. package/.next/standalone/.next/server/chunks/ssr/_4796bd79._.js +1 -1
  845. package/.next/standalone/.next/server/chunks/ssr/_4b46054f._.js +3 -0
  846. package/.next/standalone/.next/server/chunks/ssr/_5d1986bf._.js +3 -0
  847. package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +12 -0
  848. package/.next/standalone/.next/server/chunks/ssr/_5e0dfc4e._.js +1 -1
  849. package/.next/standalone/.next/server/chunks/ssr/_5ea9f29c._.js +1 -1
  850. package/.next/standalone/.next/server/chunks/ssr/_640e1d24._.js +3 -0
  851. package/.next/standalone/.next/server/chunks/ssr/_70e4bd42._.js +3 -0
  852. package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +1 -1
  853. package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +12 -0
  854. package/.next/standalone/.next/server/chunks/ssr/_a8c793c2._.js +3 -0
  855. package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
  856. package/.next/standalone/.next/server/chunks/ssr/_aab6dc4c._.js +3 -0
  857. package/.next/standalone/.next/server/chunks/ssr/_aea60571._.js +1 -1
  858. package/.next/standalone/.next/server/chunks/ssr/_c16d64b3._.js +1 -1
  859. package/.next/standalone/.next/server/chunks/ssr/_cebf2190._.js +1 -1
  860. package/.next/standalone/.next/server/chunks/ssr/_cfe5178e._.js +1 -1
  861. package/.next/standalone/.next/server/chunks/ssr/_fc22c215._.js +4 -0
  862. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_infra_page_actions_df5e07da.js +3 -0
  863. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_infra_source_[id]_page_actions_3d61ac95.js +3 -0
  864. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_infra_sources_page_actions_135a5ab7.js +3 -0
  865. package/.next/standalone/.next/server/chunks/ssr/node_modules_1d12ce21._.js +3 -0
  866. package/.next/standalone/.next/server/chunks/ssr/node_modules_23404e09._.js +3 -0
  867. package/.next/standalone/.next/server/chunks/ssr/{node_modules_6d029f8e._.js → node_modules_278cdc27._.js} +2 -2
  868. package/.next/standalone/.next/server/chunks/ssr/node_modules_285bde65._.js +17 -0
  869. package/.next/standalone/.next/server/chunks/ssr/node_modules_32b85991._.js +3 -0
  870. package/.next/standalone/.next/server/chunks/ssr/node_modules_35a4a3d2._.js +3 -0
  871. package/.next/standalone/.next/server/chunks/ssr/node_modules_37be0399._.js +3 -0
  872. package/.next/standalone/.next/server/chunks/ssr/node_modules_55cbf86b._.js +17 -0
  873. package/.next/standalone/.next/server/chunks/ssr/node_modules_5f7174a8._.js +3 -0
  874. package/.next/standalone/.next/server/chunks/ssr/node_modules_778a153f._.js +3 -0
  875. package/.next/standalone/.next/server/chunks/ssr/node_modules_7e6a708b._.js +3 -0
  876. package/.next/standalone/.next/server/chunks/ssr/node_modules_855a50c1._.js +3 -0
  877. package/.next/standalone/.next/server/chunks/ssr/node_modules_878c20b4._.js +3 -0
  878. package/.next/standalone/.next/server/chunks/ssr/node_modules_9b301091._.js +24 -0
  879. package/.next/standalone/.next/server/chunks/ssr/node_modules_b3078440._.js +3 -0
  880. package/.next/standalone/.next/server/chunks/ssr/node_modules_b3fd4e7e._.js +17 -0
  881. package/.next/standalone/.next/server/chunks/ssr/node_modules_c0554e87._.js +3 -0
  882. package/.next/standalone/.next/server/chunks/ssr/node_modules_cfcb6a3a._.js +3 -0
  883. package/.next/standalone/.next/server/chunks/ssr/node_modules_da0a7049._.js +3 -0
  884. package/.next/standalone/.next/server/chunks/ssr/node_modules_e0cd63d9._.js +17 -0
  885. package/.next/standalone/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_icons_f712a172._.js → node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js} +2 -2
  886. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_9774470f._.js +1 -1
  887. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js +1 -1
  888. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js +1 -1
  889. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -1
  890. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_infra_source_[id]_page_tsx_b48521fc._.js +19 -0
  891. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_modelconfig_registry_page_tsx_1ead2fd4._.js +1 -1
  892. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_quality_page_tsx_26bb8e80._.js +3 -0
  893. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
  894. package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
  895. package/.next/standalone/.next/server/pages/404.html +1 -1
  896. package/.next/standalone/.next/server/pages/500.html +2 -2
  897. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  898. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  899. package/.next/standalone/.next/static/chunks/012f27d0d790dc0f.js +1 -0
  900. package/.next/standalone/.next/static/chunks/07b2d7e6b58603c1.js +1 -0
  901. package/.next/standalone/.next/static/chunks/1626d47d4b84fc8b.js +1 -0
  902. package/.next/standalone/.next/static/chunks/175e0609137d7eed.js +1 -0
  903. package/.next/standalone/.next/static/chunks/1aa5156b12972154.js +1 -0
  904. package/.next/standalone/.next/static/chunks/2dc7fabb2f12bf39.js +1 -0
  905. package/.next/{static/chunks/819be4f6dc602b73.js → standalone/.next/static/chunks/3d040755d3686976.js} +1 -1
  906. package/.next/standalone/.next/static/chunks/466edc01ad624a7e.js +1 -0
  907. package/.next/standalone/.next/static/chunks/48fba91726a41a66.js +1 -0
  908. package/.next/standalone/.next/static/chunks/5c301dcc3995f72c.js +1 -0
  909. package/.next/standalone/.next/static/chunks/60f3a73e9fa6c625.js +1 -0
  910. package/.next/standalone/.next/static/chunks/61003f0aededf3d6.js +1 -0
  911. package/.next/{static/chunks/f08011a9c5cd16a6.js → standalone/.next/static/chunks/6238734a2f04b1f9.js} +1 -1
  912. package/.next/standalone/.next/static/chunks/{314eea8ce9b18ba1.js → 66de628824ded594.js} +1 -1
  913. package/.next/standalone/.next/static/chunks/6f6e529cc8a0535d.js +1 -0
  914. package/.next/standalone/.next/static/chunks/747a8d06793299fa.js +1 -0
  915. package/.next/standalone/.next/static/chunks/755c604ba44e0e9b.js +1 -0
  916. package/.next/standalone/.next/static/chunks/76a6d562e6507740.js +1 -0
  917. package/.next/standalone/.next/static/chunks/77a10bcb350555d9.js +1 -0
  918. package/.next/standalone/.next/static/chunks/7837bb465385ecd8.js +1 -0
  919. package/.next/standalone/.next/static/chunks/7dc8bfae4aed86c2.js +1 -0
  920. package/.next/{static/chunks/264991644d73270c.js → standalone/.next/static/chunks/80f28b2193bf35d3.js} +1 -1
  921. package/.next/standalone/.next/static/chunks/85f356e3e23b09ab.js +1 -0
  922. package/.next/standalone/.next/static/chunks/{3e55642a8eb5ba23.js → 8754e0cf40813330.js} +1 -1
  923. package/.next/{static/chunks/5d0423a5cf33f34e.js → standalone/.next/static/chunks/8dff7ffbfcc5cc39.js} +1 -1
  924. package/.next/standalone/.next/static/chunks/{f2228519196f8f44.js → 9155a6c07dc0502d.js} +2 -2
  925. package/.next/standalone/.next/static/chunks/96823b122a037ed1.js +1 -0
  926. package/.next/standalone/.next/static/chunks/96c7e2e47438553a.js +1 -0
  927. package/.next/standalone/.next/static/chunks/9adb155358e88cb2.js +1 -0
  928. package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +3 -0
  929. package/.next/standalone/.next/static/chunks/a534005e8a8ec626.js +1 -0
  930. package/.next/standalone/.next/static/chunks/aa2b0b8c9ed6b185.js +2 -0
  931. package/.next/standalone/.next/static/chunks/b0fb37ef626a34a0.js +1 -0
  932. package/.next/standalone/.next/static/chunks/c1a9ea80807777b8.js +10 -0
  933. package/.next/standalone/.next/static/chunks/c7e8296357638830.js +1 -0
  934. package/.next/standalone/.next/static/chunks/cc6c6efcf6de727b.js +17 -0
  935. package/.next/standalone/.next/static/chunks/d6af33336f13dd65.js +1 -0
  936. package/.next/standalone/.next/static/chunks/d7ff390550d8ae02.js +1 -0
  937. package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +1 -0
  938. package/.next/standalone/.next/static/chunks/daad76cdc09960bb.js +10 -0
  939. package/.next/{static/chunks/e396958d5e8ecaf8.js → standalone/.next/static/chunks/dc22f906bd43e9a3.js} +3 -3
  940. package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +1 -0
  941. package/.next/standalone/.next/static/chunks/e6bdd7840d3e35e8.js +1 -0
  942. package/.next/standalone/.next/static/chunks/e8b69a66912006d0.js +1 -0
  943. package/.next/standalone/.next/static/chunks/eb6a581f1851670e.js +1 -0
  944. package/.next/standalone/.next/static/chunks/fc00d1dd80dd9357.js +1 -0
  945. package/.next/standalone/.opencode/bun.lock +18 -0
  946. package/.next/standalone/.opencode/package.json +5 -0
  947. package/.next/standalone/Dockerfile +1 -0
  948. package/.next/standalone/RELEASE.md +6 -0
  949. package/.next/standalone/node_modules/.prisma/client/edge.js +43 -4
  950. package/.next/standalone/node_modules/.prisma/client/index-browser.js +40 -1
  951. package/.next/standalone/node_modules/.prisma/client/index.js +43 -4
  952. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  953. package/.next/standalone/node_modules/.prisma/client/schema.prisma +53 -0
  954. package/.next/standalone/node_modules/.prisma/client/wasm.js +40 -1
  955. package/.next/standalone/package.json +1 -1
  956. package/.next/standalone/prisma/schema.prisma +53 -0
  957. package/.next/standalone/scripts/__pycache__/hermes_agent_insight_plugin.cpython-312.pyc +0 -0
  958. package/.next/standalone/scripts/dryrun_readrecords_batched.ts +3 -2
  959. package/.next/standalone/scripts/infra-vllm-loadcheck.ts +84 -0
  960. package/.next/standalone/scripts/infra-vllm-probe.ts +57 -0
  961. package/.next/standalone/scripts/ping_monitor.ts +2 -1
  962. package/.next/standalone/scripts/start.sh +23 -3
  963. package/.next/standalone/skills/agent-debug-diagnosis/scripts/__pycache__/agentdebug_common.cpython-312.pyc +0 -0
  964. package/.next/static/chunks/012f27d0d790dc0f.js +1 -0
  965. package/.next/static/chunks/07b2d7e6b58603c1.js +1 -0
  966. package/.next/static/chunks/1626d47d4b84fc8b.js +1 -0
  967. package/.next/static/chunks/175e0609137d7eed.js +1 -0
  968. package/.next/static/chunks/1aa5156b12972154.js +1 -0
  969. package/.next/static/chunks/2dc7fabb2f12bf39.js +1 -0
  970. package/.next/{standalone/.next/static/chunks/819be4f6dc602b73.js → static/chunks/3d040755d3686976.js} +1 -1
  971. package/.next/static/chunks/466edc01ad624a7e.js +1 -0
  972. package/.next/static/chunks/48fba91726a41a66.js +1 -0
  973. package/.next/static/chunks/5c301dcc3995f72c.js +1 -0
  974. package/.next/static/chunks/60f3a73e9fa6c625.js +1 -0
  975. package/.next/static/chunks/61003f0aededf3d6.js +1 -0
  976. package/.next/{standalone/.next/static/chunks/f08011a9c5cd16a6.js → static/chunks/6238734a2f04b1f9.js} +1 -1
  977. package/.next/static/chunks/{314eea8ce9b18ba1.js → 66de628824ded594.js} +1 -1
  978. package/.next/static/chunks/6f6e529cc8a0535d.js +1 -0
  979. package/.next/static/chunks/747a8d06793299fa.js +1 -0
  980. package/.next/static/chunks/755c604ba44e0e9b.js +1 -0
  981. package/.next/static/chunks/76a6d562e6507740.js +1 -0
  982. package/.next/static/chunks/77a10bcb350555d9.js +1 -0
  983. package/.next/static/chunks/7837bb465385ecd8.js +1 -0
  984. package/.next/static/chunks/7dc8bfae4aed86c2.js +1 -0
  985. package/.next/{standalone/.next/static/chunks/264991644d73270c.js → static/chunks/80f28b2193bf35d3.js} +1 -1
  986. package/.next/static/chunks/85f356e3e23b09ab.js +1 -0
  987. package/.next/static/chunks/{3e55642a8eb5ba23.js → 8754e0cf40813330.js} +1 -1
  988. package/.next/{standalone/.next/static/chunks/5d0423a5cf33f34e.js → static/chunks/8dff7ffbfcc5cc39.js} +1 -1
  989. package/.next/static/chunks/{f2228519196f8f44.js → 9155a6c07dc0502d.js} +2 -2
  990. package/.next/static/chunks/96823b122a037ed1.js +1 -0
  991. package/.next/static/chunks/96c7e2e47438553a.js +1 -0
  992. package/.next/static/chunks/9adb155358e88cb2.js +1 -0
  993. package/.next/static/chunks/a31bf4e176b5e90c.js +3 -0
  994. package/.next/static/chunks/a534005e8a8ec626.js +1 -0
  995. package/.next/static/chunks/aa2b0b8c9ed6b185.js +2 -0
  996. package/.next/static/chunks/b0fb37ef626a34a0.js +1 -0
  997. package/.next/static/chunks/c1a9ea80807777b8.js +10 -0
  998. package/.next/static/chunks/c7e8296357638830.js +1 -0
  999. package/.next/static/chunks/cc6c6efcf6de727b.js +17 -0
  1000. package/.next/static/chunks/d6af33336f13dd65.js +1 -0
  1001. package/.next/static/chunks/d7ff390550d8ae02.js +1 -0
  1002. package/.next/static/chunks/d91c2c0bbe0b59ab.js +1 -0
  1003. package/.next/static/chunks/daad76cdc09960bb.js +10 -0
  1004. package/.next/{standalone/.next/static/chunks/e396958d5e8ecaf8.js → static/chunks/dc22f906bd43e9a3.js} +3 -3
  1005. package/.next/static/chunks/e159d293fc72e91b.css +1 -0
  1006. package/.next/static/chunks/e6bdd7840d3e35e8.js +1 -0
  1007. package/.next/static/chunks/e8b69a66912006d0.js +1 -0
  1008. package/.next/static/chunks/eb6a581f1851670e.js +1 -0
  1009. package/.next/static/chunks/fc00d1dd80dd9357.js +1 -0
  1010. package/package.json +1 -1
  1011. package/prisma/schema.prisma +53 -0
  1012. package/scripts/__pycache__/hermes_agent_insight_plugin.cpython-312.pyc +0 -0
  1013. package/scripts/dryrun_readrecords_batched.ts +3 -2
  1014. package/scripts/infra-vllm-loadcheck.ts +84 -0
  1015. package/scripts/infra-vllm-probe.ts +57 -0
  1016. package/scripts/ping_monitor.ts +2 -1
  1017. package/scripts/start.sh +23 -3
  1018. package/.next/standalone/.next/server/chunks/[externals]__f458ab79._.js +0 -3
  1019. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0068c1fc._.js +0 -3
  1020. package/.next/standalone/.next/server/chunks/[root-of-the-server]__040b569f._.js +0 -3
  1021. package/.next/standalone/.next/server/chunks/[root-of-the-server]__045587bf._.js +0 -6
  1022. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0644629d._.js +0 -5
  1023. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0805dbf7._.js +0 -3
  1024. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08ae7361._.js +0 -3
  1025. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0aa7083b._.js +0 -3
  1026. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c3644ff._.js +0 -3
  1027. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e81c059._.js +0 -3
  1028. package/.next/standalone/.next/server/chunks/[root-of-the-server]__10970a34._.js +0 -3
  1029. package/.next/standalone/.next/server/chunks/[root-of-the-server]__151a437e._.js +0 -3
  1030. package/.next/standalone/.next/server/chunks/[root-of-the-server]__15f53674._.js +0 -3
  1031. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b7feef9._.js +0 -5
  1032. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b902b9e._.js +0 -3
  1033. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dd8d4fe._.js +0 -3
  1034. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1def0351._.js +0 -3
  1035. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e033f42._.js +0 -3
  1036. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ffaeedd._.js +0 -5
  1037. package/.next/standalone/.next/server/chunks/[root-of-the-server]__25a767e5._.js +0 -7
  1038. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2d337f2e._.js +0 -3
  1039. package/.next/standalone/.next/server/chunks/[root-of-the-server]__326abfd9._.js +0 -3
  1040. package/.next/standalone/.next/server/chunks/[root-of-the-server]__35b27244._.js +0 -3
  1041. package/.next/standalone/.next/server/chunks/[root-of-the-server]__363f8caf._.js +0 -3
  1042. package/.next/standalone/.next/server/chunks/[root-of-the-server]__39374c1f._.js +0 -3
  1043. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3943f2d4._.js +0 -3
  1044. package/.next/standalone/.next/server/chunks/[root-of-the-server]__39b0a6a8._.js +0 -3
  1045. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3a23ad34._.js +0 -3
  1046. package/.next/standalone/.next/server/chunks/[root-of-the-server]__45f15a40._.js +0 -3
  1047. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4d9694c3._.js +0 -3
  1048. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5231c174._.js +0 -3
  1049. package/.next/standalone/.next/server/chunks/[root-of-the-server]__549af36b._.js +0 -3
  1050. package/.next/standalone/.next/server/chunks/[root-of-the-server]__57e6d2a2._.js +0 -3
  1051. package/.next/standalone/.next/server/chunks/[root-of-the-server]__59ad7214._.js +0 -3
  1052. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5c39010e._.js +0 -3
  1053. package/.next/standalone/.next/server/chunks/[root-of-the-server]__60643e13._.js +0 -3
  1054. package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c90eea._.js +0 -3
  1055. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6bd638de._.js +0 -5
  1056. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f67398a._.js +0 -3
  1057. package/.next/standalone/.next/server/chunks/[root-of-the-server]__72038149._.js +0 -13
  1058. package/.next/standalone/.next/server/chunks/[root-of-the-server]__79874fb4._.js +0 -3
  1059. package/.next/standalone/.next/server/chunks/[root-of-the-server]__79918828._.js +0 -3
  1060. package/.next/standalone/.next/server/chunks/[root-of-the-server]__872ecf84._.js +0 -3
  1061. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8a8c1c09._.js +0 -3
  1062. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b738c2a._.js +0 -3
  1063. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9a4686fd._.js +0 -3
  1064. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9e377fa0._.js +0 -3
  1065. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a01fde2c._.js +0 -3
  1066. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a0a8a394._.js +0 -3
  1067. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a1fdf600._.js +0 -3
  1068. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a60f0985._.js +0 -3
  1069. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a62c8374._.js +0 -3
  1070. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9d5005d._.js +0 -3
  1071. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac03d782._.js +0 -5
  1072. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b63dd7b6._.js +0 -3
  1073. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b853df47._.js +0 -3
  1074. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b9ba9fe9._.js +0 -3
  1075. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b9ea78fe._.js +0 -3
  1076. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bb26d00a._.js +0 -3
  1077. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd6a35b1._.js +0 -3
  1078. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c139b60a._.js +0 -3
  1079. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c15e98e6._.js +0 -3
  1080. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ca706dfb._.js +0 -3
  1081. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cb09a0f9._.js +0 -3
  1082. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cc3948c5._.js +0 -3
  1083. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cca882cf._.js +0 -3
  1084. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d03fa951._.js +0 -3
  1085. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9c98a95._.js +0 -3
  1086. package/.next/standalone/.next/server/chunks/[root-of-the-server]__dc598d38._.js +0 -3
  1087. package/.next/standalone/.next/server/chunks/[root-of-the-server]__de3c01d3._.js +0 -3
  1088. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b45be8._.js +0 -3
  1089. package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb9c84fc._.js +0 -3
  1090. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f43a6132._.js +0 -3
  1091. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fef5bbd7._.js +0 -3
  1092. package/.next/standalone/.next/server/chunks/_098d414d._.js +0 -3
  1093. package/.next/standalone/.next/server/chunks/_f53757b9._.js +0 -3
  1094. package/.next/standalone/.next/server/chunks/src_lib_1466262d._.js +0 -29
  1095. package/.next/standalone/.next/server/chunks/src_lib_beee2d37._.js +0 -32
  1096. package/.next/standalone/.next/server/chunks/src_lib_c6d9db51._.js +0 -3
  1097. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c0f4a8e3._.js +0 -3
  1098. package/.next/standalone/.next/server/chunks/ssr/_338db557._.js +0 -3
  1099. package/.next/standalone/.next/server/chunks/ssr/_434d90cf._.js +0 -3
  1100. package/.next/standalone/.next/server/chunks/ssr/_54f7cd42._.js +0 -3
  1101. package/.next/standalone/.next/server/chunks/ssr/_715ced03._.js +0 -12
  1102. package/.next/standalone/.next/server/chunks/ssr/_86e4a207._.js +0 -12
  1103. package/.next/standalone/.next/server/chunks/ssr/_9adbeadd._.js +0 -3
  1104. package/.next/standalone/.next/server/chunks/ssr/_9e56acbd._.js +0 -3
  1105. package/.next/standalone/.next/server/chunks/ssr/_ad052dd8._.js +0 -3
  1106. package/.next/standalone/.next/server/chunks/ssr/_d4c77173._.js +0 -3
  1107. package/.next/standalone/.next/server/chunks/ssr/_f778c2ae._.js +0 -3
  1108. package/.next/standalone/.next/server/chunks/ssr/node_modules_0446465d._.js +0 -3
  1109. package/.next/standalone/.next/server/chunks/ssr/node_modules_14fdec98._.js +0 -17
  1110. package/.next/standalone/.next/server/chunks/ssr/node_modules_39b590d2._.js +0 -3
  1111. package/.next/standalone/.next/server/chunks/ssr/node_modules_5765f642._.js +0 -3
  1112. package/.next/standalone/.next/server/chunks/ssr/node_modules_5a7ce65f._.js +0 -17
  1113. package/.next/standalone/.next/server/chunks/ssr/node_modules_67a600ea._.js +0 -24
  1114. package/.next/standalone/.next/server/chunks/ssr/node_modules_73b73ed2._.js +0 -17
  1115. package/.next/standalone/.next/server/chunks/ssr/node_modules_88623ea5._.js +0 -3
  1116. package/.next/standalone/.next/server/chunks/ssr/node_modules_9a06f164._.js +0 -3
  1117. package/.next/standalone/.next/server/chunks/ssr/node_modules_9ad38d6b._.js +0 -3
  1118. package/.next/standalone/.next/server/chunks/ssr/node_modules_c5bc32c0._.js +0 -3
  1119. package/.next/standalone/.next/server/chunks/ssr/node_modules_c8b340b1._.js +0 -3
  1120. package/.next/standalone/.next/server/chunks/ssr/node_modules_c93bc0d4._.js +0 -3
  1121. package/.next/standalone/.next/server/chunks/ssr/node_modules_d492394b._.js +0 -3
  1122. package/.next/standalone/.next/server/chunks/ssr/node_modules_e9abd531._.js +0 -17
  1123. package/.next/standalone/.next/server/chunks/ssr/node_modules_f69e47e0._.js +0 -3
  1124. package/.next/standalone/.next/static/chunks/130e114057a9ebcd.js +0 -1
  1125. package/.next/standalone/.next/static/chunks/1e5b3e371cbf00f5.js +0 -1
  1126. package/.next/standalone/.next/static/chunks/34a7894eb476b8eb.js +0 -1
  1127. package/.next/standalone/.next/static/chunks/373d7e41b5d2192a.js +0 -1
  1128. package/.next/standalone/.next/static/chunks/43df5d7cd8ec46ff.js +0 -1
  1129. package/.next/standalone/.next/static/chunks/463b43ecde7acc6b.js +0 -1
  1130. package/.next/standalone/.next/static/chunks/4b3b11e28e77c3fe.js +0 -1
  1131. package/.next/standalone/.next/static/chunks/53af8dcc7be02445.js +0 -1
  1132. package/.next/standalone/.next/static/chunks/558b2944268322c0.js +0 -1
  1133. package/.next/standalone/.next/static/chunks/5f48fb5ff13515f9.js +0 -10
  1134. package/.next/standalone/.next/static/chunks/662ee72c2b3f282f.js +0 -1
  1135. package/.next/standalone/.next/static/chunks/72fce1376de53ff1.js +0 -1
  1136. package/.next/standalone/.next/static/chunks/7aff5373689149f6.css +0 -1
  1137. package/.next/standalone/.next/static/chunks/83910a2aebec21cd.js +0 -1
  1138. package/.next/standalone/.next/static/chunks/85dc1714d62ff17c.js +0 -1
  1139. package/.next/standalone/.next/static/chunks/880f54e2ee46369a.js +0 -1
  1140. package/.next/standalone/.next/static/chunks/90356ff82a1a4b7b.js +0 -1
  1141. package/.next/standalone/.next/static/chunks/91118d4316b25490.js +0 -2
  1142. package/.next/standalone/.next/static/chunks/9190bb5077c01f1d.js +0 -1
  1143. package/.next/standalone/.next/static/chunks/ac4d824ecef761ad.js +0 -1
  1144. package/.next/standalone/.next/static/chunks/b7afe26e3f5150a6.js +0 -1
  1145. package/.next/standalone/.next/static/chunks/c6fc32540074c5d9.js +0 -1
  1146. package/.next/standalone/.next/static/chunks/ca321802d5bec89a.js +0 -1
  1147. package/.next/standalone/.next/static/chunks/d3d4e0d0251fae88.js +0 -1
  1148. package/.next/standalone/.next/static/chunks/d4b8cecb3e0e7d14.js +0 -1
  1149. package/.next/standalone/.next/static/chunks/e1ca3a6b74761a34.js +0 -1
  1150. package/.next/standalone/.next/static/chunks/f078268d4167c317.js +0 -1
  1151. package/.next/standalone/.next/static/chunks/f3601c4fe7c72e05.js +0 -1
  1152. package/.next/standalone/.next/static/chunks/f6bada18c43a7d59.js +0 -1
  1153. package/.next/standalone/.next/static/chunks/f73f243ebf49bd78.js +0 -10
  1154. package/.next/standalone/.next/static/chunks/fff45888c8c81b7a.js +0 -1
  1155. package/.next/static/chunks/130e114057a9ebcd.js +0 -1
  1156. package/.next/static/chunks/1e5b3e371cbf00f5.js +0 -1
  1157. package/.next/static/chunks/34a7894eb476b8eb.js +0 -1
  1158. package/.next/static/chunks/373d7e41b5d2192a.js +0 -1
  1159. package/.next/static/chunks/43df5d7cd8ec46ff.js +0 -1
  1160. package/.next/static/chunks/463b43ecde7acc6b.js +0 -1
  1161. package/.next/static/chunks/4b3b11e28e77c3fe.js +0 -1
  1162. package/.next/static/chunks/53af8dcc7be02445.js +0 -1
  1163. package/.next/static/chunks/558b2944268322c0.js +0 -1
  1164. package/.next/static/chunks/5f48fb5ff13515f9.js +0 -10
  1165. package/.next/static/chunks/662ee72c2b3f282f.js +0 -1
  1166. package/.next/static/chunks/72fce1376de53ff1.js +0 -1
  1167. package/.next/static/chunks/7aff5373689149f6.css +0 -1
  1168. package/.next/static/chunks/83910a2aebec21cd.js +0 -1
  1169. package/.next/static/chunks/85dc1714d62ff17c.js +0 -1
  1170. package/.next/static/chunks/880f54e2ee46369a.js +0 -1
  1171. package/.next/static/chunks/90356ff82a1a4b7b.js +0 -1
  1172. package/.next/static/chunks/91118d4316b25490.js +0 -2
  1173. package/.next/static/chunks/9190bb5077c01f1d.js +0 -1
  1174. package/.next/static/chunks/ac4d824ecef761ad.js +0 -1
  1175. package/.next/static/chunks/b7afe26e3f5150a6.js +0 -1
  1176. package/.next/static/chunks/c6fc32540074c5d9.js +0 -1
  1177. package/.next/static/chunks/ca321802d5bec89a.js +0 -1
  1178. package/.next/static/chunks/d3d4e0d0251fae88.js +0 -1
  1179. package/.next/static/chunks/d4b8cecb3e0e7d14.js +0 -1
  1180. package/.next/static/chunks/e1ca3a6b74761a34.js +0 -1
  1181. package/.next/static/chunks/f078268d4167c317.js +0 -1
  1182. package/.next/static/chunks/f3601c4fe7c72e05.js +0 -1
  1183. package/.next/static/chunks/f6bada18c43a7d59.js +0 -1
  1184. package/.next/static/chunks/f73f243ebf49bd78.js +0 -10
  1185. package/.next/static/chunks/fff45888c8c81b7a.js +0 -1
  1186. /package/.next/standalone/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_buildManifest.js +0 -0
  1187. /package/.next/standalone/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_clientMiddlewareManifest.json +0 -0
  1188. /package/.next/standalone/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_ssgManifest.js +0 -0
  1189. /package/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_buildManifest.js +0 -0
  1190. /package/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_clientMiddlewareManifest.json +0 -0
  1191. /package/.next/static/{OsR67Q2lFVMHMaAqxt_js → w5kcVDBsBKgqTtNX9-Kqj}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[685260,a=>{"use strict";var b=a.i(187924),c=a.i(729936),d=a.i(572131),e=a.i(403512),f=a.i(233540),g=a.i(164831);let h=(0,g.default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var i=a.i(118343),j=a.i(590629),k=a.i(980180),l=a.i(752562),m=a.i(752357),n=a.i(597024);let o=(0,g.default)("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),p=(0,g.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),q=(0,g.default)("heart-pulse",[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}],["path",{d:"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"auskq0"}]]);var r=a.i(118688),s=a.i(168370),t=a.i(519783),u=a.i(875160),v=a.i(211134),w=a.i(575110),x=a.i(943408),y=a.i(106927),z=a.i(757430);let A=[{id:"openai",label:"OpenAI",category:"frontier",baseUrl:"https://api.openai.com/v1",defaultModel:"gpt-4o-mini",suggestedModels:["gpt-5","gpt-5-mini","gpt-4o","gpt-4o-mini","gpt-4.1","o3","o3-mini","o4-mini"],docsUrl:"https://platform.openai.com/docs/models",oaiCompat:!0,initials:"OA",logoSlug:"openai"},{id:"anthropic",label:"Anthropic",category:"frontier",baseUrl:"https://api.anthropic.com/v1",defaultModel:"claude-sonnet-4-6",suggestedModels:["claude-opus-4-7","claude-sonnet-4-6","claude-haiku-4-5","claude-3-5-sonnet-latest"],docsUrl:"https://docs.anthropic.com/en/docs/models-overview",oaiCompat:!0,initials:"AN",logoSlug:"anthropic",note:"使用 Anthropic OpenAI 兼容端点(/v1/messages 自动转换)。"},{id:"gemini",label:"Google Gemini",category:"frontier",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",defaultModel:"gemini-2.5-flash",suggestedModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.0-flash","gemini-1.5-pro"],docsUrl:"https://ai.google.dev/gemini-api/docs/openai",oaiCompat:!0,initials:"GM",logoSlug:"gemini",note:"走 Gemini OpenAI 兼容层(generativelanguage.googleapis.com)。"},{id:"azure-openai",label:"Azure OpenAI",category:"frontier",baseUrl:"https://YOUR-RESOURCE.openai.azure.com/openai",defaultModel:"gpt-4o",suggestedModels:["gpt-4o","gpt-4o-mini","gpt-4-turbo","o1-mini"],docsUrl:"https://learn.microsoft.com/azure/ai-services/openai/reference",oaiCompat:!0,initials:"AZ",logoSlug:"azure",note:"Base URL 形如 https://<resource>.openai.azure.com/openai/deployments/<deployment>"},{id:"xai",label:"xAI Grok",category:"frontier",baseUrl:"https://api.x.ai/v1",defaultModel:"grok-3",suggestedModels:["grok-4","grok-3","grok-3-mini","grok-2-1212","grok-2-vision-1212"],docsUrl:"https://docs.x.ai/api",oaiCompat:!0,initials:"GR",logoSlug:"grok"},{id:"mistral",label:"Mistral AI",category:"frontier",baseUrl:"https://api.mistral.ai/v1",defaultModel:"mistral-large-latest",suggestedModels:["mistral-large-latest","mistral-large-2411","mistral-small-latest","codestral-2501","open-mistral-nemo"],docsUrl:"https://docs.mistral.ai/getting-started/models/models_overview/",oaiCompat:!0,initials:"MI",logoSlug:"mistral"},{id:"cohere",label:"Cohere",category:"frontier",baseUrl:"https://api.cohere.ai/compatibility/v1",defaultModel:"command-r-plus",suggestedModels:["command-r-plus","command-r","command-r7b"],docsUrl:"https://docs.cohere.com/docs/compatibility-api",oaiCompat:!0,initials:"CO",logoSlug:"cohere"},{id:"openrouter",label:"OpenRouter",category:"aggregator",baseUrl:"https://openrouter.ai/api/v1",defaultModel:"openai/gpt-4o-mini",suggestedModels:["anthropic/claude-3.5-sonnet","openai/gpt-4o","meta-llama/llama-3.3-70b-instruct","google/gemini-2.0-flash-exp:free"],docsUrl:"https://openrouter.ai/docs",oaiCompat:!0,initials:"OR",logoSlug:"openrouter"},{id:"together",label:"Together AI",category:"aggregator",baseUrl:"https://api.together.xyz/v1",defaultModel:"meta-llama/Llama-3.3-70B-Instruct-Turbo",suggestedModels:["meta-llama/Llama-3.3-70B-Instruct-Turbo","deepseek-ai/DeepSeek-V3","Qwen/Qwen2.5-72B-Instruct-Turbo"],docsUrl:"https://docs.together.ai/docs/quickstart",oaiCompat:!0,initials:"TG",logoSlug:"together"},{id:"fireworks",label:"Fireworks AI",category:"aggregator",baseUrl:"https://api.fireworks.ai/inference/v1",defaultModel:"accounts/fireworks/models/llama-v3p3-70b-instruct",suggestedModels:["accounts/fireworks/models/llama-v3p3-70b-instruct","accounts/fireworks/models/deepseek-v3","accounts/fireworks/models/qwen2p5-72b-instruct"],docsUrl:"https://docs.fireworks.ai",oaiCompat:!0,initials:"FW",logoSlug:"fireworks"},{id:"groq",label:"Groq",category:"aggregator",baseUrl:"https://api.groq.com/openai/v1",defaultModel:"llama-3.3-70b-versatile",suggestedModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768"],docsUrl:"https://console.groq.com/docs/models",oaiCompat:!0,initials:"GQ",logoSlug:"groq"},{id:"deepinfra",label:"DeepInfra",category:"aggregator",baseUrl:"https://api.deepinfra.com/v1/openai",defaultModel:"meta-llama/Meta-Llama-3.1-70B-Instruct",suggestedModels:["meta-llama/Meta-Llama-3.1-70B-Instruct","deepseek-ai/DeepSeek-V3","Qwen/Qwen2.5-72B-Instruct"],docsUrl:"https://deepinfra.com/docs",oaiCompat:!0,initials:"DI",logoSlug:"deepinfra"},{id:"perplexity",label:"Perplexity",category:"aggregator",baseUrl:"https://api.perplexity.ai",defaultModel:"sonar",suggestedModels:["sonar","sonar-pro","sonar-reasoning","sonar-reasoning-pro"],docsUrl:"https://docs.perplexity.ai",oaiCompat:!0,initials:"PX",logoSlug:"perplexity"},{id:"nvidia",label:"NVIDIA NIM",category:"aggregator",baseUrl:"https://integrate.api.nvidia.com/v1",defaultModel:"meta/llama-3.3-70b-instruct",suggestedModels:["meta/llama-3.3-70b-instruct","deepseek-ai/deepseek-r1","nvidia/llama-3.1-nemotron-70b-instruct"],docsUrl:"https://docs.api.nvidia.com",oaiCompat:!0,initials:"NV",logoSlug:"nvidia"},{id:"databricks",label:"Databricks",category:"aggregator",baseUrl:"https://YOUR-WORKSPACE.cloud.databricks.com/serving-endpoints",defaultModel:"databricks-meta-llama-3-3-70b-instruct",suggestedModels:["databricks-meta-llama-3-3-70b-instruct","databricks-dbrx-instruct"],docsUrl:"https://docs.databricks.com/aws/en/machine-learning/foundation-models/api-reference",oaiCompat:!0,initials:"DB",logoSlug:"databricks",note:"Base URL 形如 https://<workspace>.cloud.databricks.com/serving-endpoints"},{id:"novita",label:"Novita AI",category:"aggregator",baseUrl:"https://api.novita.ai/v3/openai",defaultModel:"meta-llama/llama-3.3-70b-instruct",suggestedModels:["meta-llama/llama-3.3-70b-instruct","qwen/qwen-2.5-72b-instruct"],docsUrl:"https://novita.ai/docs/api-reference",oaiCompat:!0,initials:"NV",logoSlug:"novita"},{id:"hyperbolic",label:"Hyperbolic",category:"aggregator",baseUrl:"https://api.hyperbolic.xyz/v1",defaultModel:"meta-llama/Meta-Llama-3.1-70B-Instruct",suggestedModels:["meta-llama/Meta-Llama-3.1-70B-Instruct","Qwen/Qwen2.5-Coder-32B-Instruct"],docsUrl:"https://docs.hyperbolic.xyz",oaiCompat:!0,initials:"HY",logoSlug:"hyperbolic"},{id:"deepseek-official",label:"DeepSeek (Official)",category:"china",baseUrl:"https://api.deepseek.com",defaultModel:"deepseek-chat",suggestedModels:["deepseek-chat","deepseek-reasoner","deepseek-v3.1"],docsUrl:"https://api-docs.deepseek.com",oaiCompat:!0,initials:"DS",logoSlug:"deepseek"},{id:"siliconflow",label:"SiliconFlow / 硅基流动",category:"china",baseUrl:"https://api.siliconflow.cn/v1",defaultModel:"deepseek-ai/DeepSeek-V3",suggestedModels:["deepseek-ai/DeepSeek-V3","deepseek-ai/DeepSeek-R1","Qwen/Qwen2.5-72B-Instruct","meta-llama/Meta-Llama-3.1-70B-Instruct"],docsUrl:"https://docs.siliconflow.cn",oaiCompat:!0,initials:"SF",logoSlug:"siliconcloud"},{id:"moonshot",label:"Moonshot / Kimi",category:"china",baseUrl:"https://api.moonshot.cn/v1",defaultModel:"kimi-latest",suggestedModels:["kimi-k2","kimi-latest","moonshot-v1-128k","moonshot-v1-32k","moonshot-v1-8k"],docsUrl:"https://platform.moonshot.cn/docs",oaiCompat:!0,initials:"MK",logoSlug:"moonshot"},{id:"zhipu",label:"Zhipu GLM / 智谱",category:"china",baseUrl:"https://open.bigmodel.cn/api/paas/v4",defaultModel:"glm-4.5",suggestedModels:["glm-4.5","glm-4-plus","glm-4-air","glm-4-long","glm-4-flash"],docsUrl:"https://bigmodel.cn/dev/api",oaiCompat:!0,initials:"ZP",logoSlug:"zhipu"},{id:"doubao",label:"Doubao / 火山方舟",category:"china",baseUrl:"https://ark.cn-beijing.volces.com/api/v3",defaultModel:"doubao-1.5-pro-32k",suggestedModels:["doubao-1.5-pro-32k","doubao-1.5-pro-256k","doubao-pro-32k","doubao-lite-32k"],docsUrl:"https://www.volcengine.com/docs/82379",oaiCompat:!0,initials:"DB",logoSlug:"doubao",note:'模型名通常是火山方舟"接入点 ID",不是发布的模型名。'},{id:"qwen",label:"Tongyi Qwen / 通义千问",category:"china",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",defaultModel:"qwen-plus",suggestedModels:["qwen3-max","qwen3-plus","qwen-max","qwen-plus","qwen-turbo","qwen2.5-72b-instruct"],docsUrl:"https://help.aliyun.com/zh/model-studio/developer-reference/use-qwen-by-calling-api",oaiCompat:!0,initials:"QW",logoSlug:"qwen"},{id:"hunyuan",label:"Tencent Hunyuan / 腾讯混元",category:"china",baseUrl:"https://api.hunyuan.cloud.tencent.com/v1",defaultModel:"hunyuan-pro",suggestedModels:["hunyuan-turbo","hunyuan-pro","hunyuan-standard","hunyuan-lite"],docsUrl:"https://cloud.tencent.com/document/product/1729/97732",oaiCompat:!0,initials:"HY",logoSlug:"hunyuan"},{id:"yi",label:"01.AI Yi / 零一万物",category:"china",baseUrl:"https://api.lingyiwanwu.com/v1",defaultModel:"yi-large",suggestedModels:["yi-large","yi-large-turbo","yi-medium","yi-vision"],docsUrl:"https://platform.lingyiwanwu.com/docs",oaiCompat:!0,initials:"YI",logoSlug:"yi"},{id:"modelscope",label:"ModelScope / 魔搭",category:"china",baseUrl:"https://api-inference.modelscope.cn/v1",defaultModel:"Qwen/Qwen2.5-72B-Instruct",suggestedModels:["Qwen/Qwen2.5-72B-Instruct","deepseek-ai/DeepSeek-V3","meta-llama/Llama-3.3-70B-Instruct"],docsUrl:"https://modelscope.cn/docs/model-service/API-Inference",oaiCompat:!0,initials:"MS",logoSlug:"modelscope"},{id:"ppio",label:"PPIO / 派欧云",category:"china",baseUrl:"https://api.ppinfra.com/v3/openai",defaultModel:"deepseek/deepseek-v3",suggestedModels:["deepseek/deepseek-v3","deepseek/deepseek-r1","qwen/qwen2.5-72b-instruct","meta-llama/llama-3.3-70b-instruct"],docsUrl:"https://ppinfra.com/docs",oaiCompat:!0,initials:"PP",logoSlug:"ppio"},{id:"baidu",label:"Baidu Qianfan / 文心一言",category:"china",baseUrl:"https://qianfan.baidubce.com/v2",defaultModel:"ernie-4.0-8k",suggestedModels:["ernie-4.0-8k","ernie-4.0-turbo-8k","ernie-3.5-8k"],docsUrl:"https://cloud.baidu.com/doc/qianfan-api/index.html",oaiCompat:!0,initials:"BD",logoSlug:"wenxin"},{id:"minimax",label:"MiniMax",category:"china",baseUrl:"https://api.minimax.chat/v1",defaultModel:"abab6.5s-chat",suggestedModels:["abab6.5s-chat","abab6.5-chat","minimax-text-01"],docsUrl:"https://platform.minimaxi.com/document/algorithm-concept",oaiCompat:!0,initials:"MM",logoSlug:"minimax"},{id:"stepfun",label:"Stepfun / 阶跃星辰",category:"china",baseUrl:"https://api.stepfun.com/v1",defaultModel:"step-1-8k",suggestedModels:["step-1-8k","step-1-32k","step-2-16k"],docsUrl:"https://platform.stepfun.com/docs",oaiCompat:!0,initials:"ST",logoSlug:"stepfun"},{id:"ollama",label:"Ollama",category:"selfhost",baseUrl:"http://localhost:11434/v1",defaultModel:"llama3.3",suggestedModels:["llama3.3","qwen2.5","deepseek-r1","mistral"],docsUrl:"https://ollama.com/library",oaiCompat:!0,initials:"OL",logoSlug:"ollama",note:"本地 Ollama 通常无需 API Key,留空即可。"},{id:"vllm",label:"vLLM",category:"selfhost",baseUrl:"http://localhost:8000/v1",defaultModel:"meta-llama/Meta-Llama-3-8B-Instruct",suggestedModels:["meta-llama/Meta-Llama-3-8B-Instruct","Qwen/Qwen2.5-7B-Instruct"],docsUrl:"https://docs.vllm.ai/en/stable/serving/openai_compatible_server.html",oaiCompat:!0,initials:"VL",logoSlug:"vllm",note:"vLLM 默认以 OpenAI 兼容模式启动,API Key 任意字符串即可。"},{id:"lmstudio",label:"LM Studio",category:"selfhost",baseUrl:"http://localhost:1234/v1",defaultModel:"local-model",suggestedModels:["local-model"],docsUrl:"https://lmstudio.ai/docs/local-server",oaiCompat:!0,initials:"LM",logoSlug:"lmstudio",note:'在 LM Studio 中开启 "Local Inference Server",端口默认 1234。'},{id:"tgi",label:"Text Generation Inference (TGI)",category:"selfhost",baseUrl:"http://localhost:8080/v1",defaultModel:"tgi",suggestedModels:["tgi"],docsUrl:"https://huggingface.co/docs/text-generation-inference/messages_api",oaiCompat:!0,initials:"TG",logoSlug:"huggingface"},{id:"xinference",label:"Xinference",category:"selfhost",baseUrl:"http://localhost:9997/v1",defaultModel:"qwen2.5-instruct",suggestedModels:["qwen2.5-instruct","llama-3.3-instruct","deepseek-r1-distill-qwen"],docsUrl:"https://inference.readthedocs.io/en/latest/models/builtin/llm.html",oaiCompat:!0,initials:"XI",logoSlug:"xinference",note:"通过模型 UID 接入 Xinference 本地实例。"},{id:"localai",label:"LocalAI",category:"selfhost",baseUrl:"http://localhost:8080/v1",defaultModel:"gpt-3.5-turbo",suggestedModels:["gpt-3.5-turbo"],docsUrl:"https://localai.io",oaiCompat:!0,initials:"LA",logoSlug:"localai",note:"OpenAI 兼容的本地推理网关,模型名按本地配置填写。"},{id:"custom",label:"Custom (OpenAI Compatible)",category:"selfhost",baseUrl:"",defaultModel:"",suggestedModels:[],oaiCompat:!0,initials:"CU",note:"任何兼容 OpenAI /v1/chat/completions 协议的端点。"}],B=A.reduce((a,b)=>(a[b.id]=b,a),{}),C=[{id:"frontier",labelZh:"主流闭源 SaaS",labelEn:"Frontier SaaS"},{id:"aggregator",labelZh:"推理聚合 / 路由",labelEn:"Inference Aggregators"},{id:"china",labelZh:"国内厂商",labelEn:"China Providers"},{id:"selfhost",labelZh:"本地 / 自部署",labelEn:"Self-hosted"}],D={"deepseek-official":{baseUrl:"https://api.deepseek.com",model:"deepseek-chat"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1",model:"deepseek-ai/DeepSeek-V3"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-4o"},anthropic:{baseUrl:"https://api.anthropic.com/v1",model:"claude-3-5-sonnet-20240620"},custom:{baseUrl:"",model:""}},E={"deepseek-official":{label:"DeepSeek (Official)",monogram:"DS",category:"cn"},siliconflow:{label:"SiliconFlow",monogram:"SF",category:"cn"},openai:{label:"OpenAI",monogram:"OA",category:"saas"},anthropic:{label:"Anthropic",monogram:"AN",category:"saas"},custom:{label:"Custom (OpenAI Compatible)",monogram:"CX",category:"other"}},F=a=>!!a&&a.startsWith("default_"),G=a=>a.apiKey?"ok":"unconfigured";function H({}={}){let{user:a}=(0,x.useAuth)(),{t:c,locale:g}=(0,y.useLocale)(),[h,i]=(0,d.useState)([]),[j,k]=(0,d.useState)("default"),[l,n]=(0,d.useState)(null),[o,p]=(0,d.useState)({id:"new",name:"zh"===g?"新配置":"New Config",provider:"deepseek-official",model:"deepseek-chat"}),[q,r]=(0,d.useState)(!1),[s,t]=(0,d.useState)(null),[u,v]=(0,d.useState)(!1),[A,B]=(0,d.useState)(""),[C,D]=(0,d.useState)("all"),[O,P]=(0,d.useState)(null),[Q,U]=(0,d.useState)({}),[ad,ae]=(0,d.useState)(!1),[af,ag]=(0,d.useState)(!1),[ah,ai]=(0,d.useState)(null),aj=(0,d.useCallback)(async()=>{if(!a)return void v(!0);try{let b=await (0,w.apiFetch)(`/api/eval/settings?user=${encodeURIComponent(a)}`);if(b.ok){let a=await b.json();a.configs&&(i(a.configs),k(a.activeConfigId||a.configs[0]?.id||"default"))}}catch(a){console.error("Failed to fetch settings",a)}finally{v(!0)}},[a]);(0,d.useEffect)(()=>{aj()},[aj]),(0,d.useEffect)(()=>{U(a=>{let b={...a};for(let a of h)a.id in b||(b[a.id]=G(a));for(let a of Object.keys(b))h.find(b=>b.id===a)||delete b[a];return b})},[h]);let ak=(0,d.useCallback)(async()=>{if(ad||0===h.length)return;ae(!0),U(a=>{let b={...a};for(let a of h)b[a.id]=a.apiKey?"checking":"unconfigured";return b});let b=await Promise.all(h.map(async b=>{if(!b.apiKey)return[b.id,"unconfigured"];try{let c=await (0,w.apiFetch)("/api/eval/settings/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b.provider,apiKey:b.apiKey,baseUrl:b.baseUrl,model:b.model,user:a,configId:b.id})}),d=await c.json().catch(()=>({success:!1}));return[b.id,d.success?"ok":"failed"]}catch{return[b.id,"failed"]}}));U(a=>{let c={...a};for(let[a,d]of b)c[a]=d;return c}),ae(!1)},[h,ad]),al=(0,d.useCallback)(async(b,c)=>(0,w.apiFetch)("/api/eval/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{activeConfigId:c,configs:b},user:a})}),[a]),am=async()=>{r(!0),t({type:"info",msg:"zh"===g?"正在测试连接…":"Testing connection…"});try{let b=[...h],c={...o};"new"===c.id?(c.id=`config_${Date.now()}`,b.push(c)):b=b.map(a=>a.id===c.id?c:a);let d=await (0,w.apiFetch)("/api/eval/settings/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:c.provider,apiKey:c.apiKey,baseUrl:c.baseUrl,model:c.model,user:a,configId:c.id})}),e=await d.json();if(!e.success){t({type:"error",msg:("zh"===g?"连接测试失败:":"Connection test failed: ")+e.error}),r(!1);return}let f=j;(1===b.length||"default"===j)&&(f=c.id);let i=await al(b,f);if(i.ok)await aj(),n(null),ai(null),t({type:"success",msg:"zh"===g?"已保存":"Saved"}),setTimeout(()=>t(null),1500);else{let a=await i.json().catch(()=>({}));t({type:"error",msg:("zh"===g?"保存失败:":"Save failed: ")+(a.error||i.statusText)})}}catch(a){t({type:"error",msg:`Error: ${a.message}`})}finally{r(!1)}},ar=async a=>{(await al(h,a)).ok&&(k(a),t({type:"success",msg:"zh"===g?"默认模型已切换":"Active model updated"}),setTimeout(()=>t(null),1500))},as=async a=>{let b=h.filter(b=>b.id!==a),c=j;a===j&&(c=b[0]?.id||"default"),(await al(b,c)).ok&&(i(b),k(c),t({type:"success",msg:"zh"===g?"已删除":"Deleted"}),setTimeout(()=>t(null),1500))},at=()=>{ag(!0),ai(null),n(null),t(null)},au=(0,d.useMemo)(()=>{let a=A.trim().toLowerCase();return h.filter(b=>("all"===C||E[b.provider]?.category===C)&&(!a||b.name.toLowerCase().includes(a)||(b.model||"").toLowerCase().includes(a)||(b.baseUrl||"").toLowerCase().includes(a)||(E[b.provider]?.label||b.provider||"").toLowerCase().includes(a)))},[h,A,C]),av=(0,d.useMemo)(()=>{let a={saas:0,cn:0,local:0,other:0};for(let b of h){let c=E[b.provider]?.category;c&&(a[c]+=1)}return a},[h]),aw=h.find(a=>a.id===j),ax=new Set(h.map(a=>a.provider)).size;return u?(0,b.jsxs)("div",{style:V,children:[(0,b.jsxs)("div",{style:W,children:[s&&(0,b.jsx)(I,{status:s}),af?(0,b.jsx)(S,{onPick:a=>{var b;p({id:"new",name:a.label,provider:"openai"===(b=a.id)?"openai":"anthropic"===b?"anthropic":"deepseek-official"===b?"deepseek-official":"siliconflow"===b?"siliconflow":"custom",baseUrl:a.baseUrl,model:a.defaultModel,apiKey:""}),ai(a),ag(!1),n("new"),t(null)},onCancel:()=>ag(!1),locale:g}):l?(0,b.jsx)(T,{config:o,setConfig:p,onCancel:()=>{n(null),ai(null)},onReselect:"new"===l?()=>{n(null),ag(!0)}:void 0,onSave:am,isSaving:q,isDefault:F(l),pickedProvider:ah,locale:g}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:X,children:[(0,b.jsx)("p",{style:Y,children:"zh"===g?(0,b.jsxs)(b.Fragment,{children:["注册并管理评测 / 优化使用的 ",(0,b.jsx)("b",{style:Z,children:"LLM"}),",可切换默认、编辑参数、管理 API Key。兼容 ",(0,b.jsx)("b",{style:Z,children:"OpenAI / Anthropic / DeepSeek"})," 等主流厂商,亦支持",(0,b.jsx)("b",{style:Z,children:"国内厂商"}),"与",(0,b.jsx)("b",{style:Z,children:"本地推理"}),"部署。"]}):(0,b.jsxs)(b.Fragment,{children:["Register and manage LLMs used for evaluation/optimization. Set the default, edit parameters, and manage API keys. Compatible with ",(0,b.jsx)("b",{style:Z,children:"OpenAI / Anthropic / DeepSeek"})," as well as ",(0,b.jsx)("b",{style:Z,children:"regional providers"})," and ",(0,b.jsx)("b",{style:Z,children:"self-hosted"})," inference."]})}),(0,b.jsxs)("button",{style:aL,onClick:at,children:[(0,b.jsx)(e.Plus,{size:14,strokeWidth:2.4}),"zh"===g?"新增模型":"New Model"]})]}),(0,b.jsxs)("div",{style:$,children:[(0,b.jsxs)("div",{style:_,children:[(0,b.jsxs)("div",{style:an,children:[(0,b.jsxs)("div",{style:ao,children:[(0,b.jsx)(f.Search,{size:14,strokeWidth:2,style:{position:"absolute",left:11,top:"50%",transform:"translateY(-50%)",color:"var(--foreground-muted)"}}),(0,b.jsx)("input",{type:"text",placeholder:"zh"===g?"搜索名称 / 模型 / Base URL":"Search name / model / Base URL",value:A,onChange:a=>B(a.target.value),style:ap})]}),(0,b.jsxs)("div",{style:aq,children:[(0,b.jsx)(J,{active:"all"===C,onClick:()=>D("all"),count:h.length,children:"zh"===g?"全部":"All"}),(0,b.jsx)(J,{active:"saas"===C,onClick:()=>D("saas"),count:av.saas,children:"zh"===g?"主流闭源":"SaaS"}),(0,b.jsx)(J,{active:"cn"===C,onClick:()=>D("cn"),count:av.cn,children:"zh"===g?"国内厂商":"Regional"}),(0,b.jsx)(J,{active:"other"===C,onClick:()=>D("other"),count:av.other,children:"zh"===g?"自定义":"Custom"})]})]}),(0,b.jsxs)("div",{style:ab,children:[(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:600,color:"var(--foreground)"},children:"zh"===g?"已注册模型":"Registered Models"}),(0,b.jsx)("span",{style:ac,children:au.length}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{fontSize:11.5,color:"var(--foreground-muted)"},children:"zh"===g?`容量 ${h.length} / 32`:`Capacity ${h.length} / 32`})]}),0===au.length?(0,b.jsx)(R,{locale:g,hasConfigs:h.length>0,onAdd:at,onReset:()=>{B(""),D("all")}}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:au.map(a=>(0,b.jsx)(K,{config:a,isActive:a.id===j,isDefault:F(a.id),health:Q[a.id],onActivate:()=>ar(a.id),onEdit:()=>{p({...a}),ai(null),n(a.id),ag(!1),t(null)},onDelete:()=>P(a),locale:g},a.id))}),(0,b.jsxs)("div",{style:aS,children:[(0,b.jsx)("div",{style:aT,children:(0,b.jsx)(m.Info,{size:16})}),(0,b.jsxs)("div",{style:{flex:1,fontSize:12.5,color:"var(--foreground-secondary)",lineHeight:1.6},children:[(0,b.jsx)("b",{style:{color:"var(--foreground)",fontWeight:600},children:"zh"===g?"提示":"Tip"})," · ","zh"===g?"至少保留一个默认模型,用于评测与优化任务的兜底调用。删除默认模型前,请先指定其它模型为默认。":"Keep at least one default model for evaluation/optimization fallback. Switch the default before deleting it."]})]})]}),(0,b.jsxs)("aside",{style:aa,children:[(0,b.jsx)(L,{active:aw,providerKinds:ax,registeredCount:h.length,locale:g}),(0,b.jsx)(M,{configs:h,healthMap:Q,isRechecking:ad,onRecheck:ak,locale:g}),(0,b.jsx)(N,{locale:g})]})]})]})]}),(0,b.jsx)(z.ConfirmDialog,{open:!!O,onOpenChange:a=>!a&&P(null),tone:"danger",title:"zh"===g?"删除该模型?":"Delete this model?",description:O?"zh"===g?`将永久删除「${O.name}」配置,无法恢复。`:`"${O.name}" will be permanently removed.`:"",confirmText:"zh"===g?"删除":"Delete",cancelText:"zh"===g?"取消":"Cancel",onConfirm:async()=>{O&&await as(O.id)}})]}):(0,b.jsx)("div",{style:{padding:32,color:"var(--foreground-muted)",fontSize:12},children:c("common.loading")})}function I({status:a}){let c="success"===a.type?{bg:"var(--success-subtle)",fg:"var(--success)",border:"var(--success-subtle-border)"}:"error"===a.type?{bg:"var(--error-subtle)",fg:"var(--error)",border:"var(--error-subtle-border)"}:{bg:"var(--primary-subtle)",fg:"var(--primary)",border:"var(--primary-subtle-border)"};return(0,b.jsxs)("div",{style:{padding:"8px 12px",marginBottom:14,borderRadius:8,background:c.bg,color:c.fg,border:`1px solid ${c.border}`,fontSize:12,fontWeight:500,display:"flex",alignItems:"center",gap:6},children:["success"===a.type&&(0,b.jsx)(l.Check,{size:13,strokeWidth:2.5}),a.msg]})}function J({active:a,onClick:c,count:d,children:e}){return(0,b.jsxs)("button",{type:"button",onClick:c,"aria-pressed":a,className:"ai-filter-chip","data-active":a?"true":"false",style:ar,children:[e,"number"==typeof d&&d>0&&(0,b.jsx)("span",{className:"ai-filter-chip__count",children:d})]})}function K({config:a,isActive:c,isDefault:d,health:e,onActivate:f,onEdit:g,onDelete:h,locale:m}){let p=E[a.provider]??{label:a.provider||"Unknown",monogram:(a.provider?.slice(0,2)||"??").toUpperCase(),category:"other"},q=function(a,b){let c=B[a];if(c)return c;if(!b)return;let d=b.replace(/\/+$/,"").toLowerCase();return A.find(a=>{if(!a.baseUrl)return!1;let b=a.baseUrl.replace(/\/+$/,"").toLowerCase();return d===b||d.startsWith(b)})}(a.provider,a.baseUrl),r=e??G(a);return(0,b.jsxs)("article",{style:{...as,borderColor:c?"var(--primary-subtle-border)":"var(--card-border)",background:c?"linear-gradient(180deg, var(--primary-subtle) 0%, var(--card-bg) 56px)":"var(--card-bg)"},children:[c&&(0,b.jsx)("span",{style:at}),(0,b.jsx)(P,{slug:q?.logoSlug,initials:p.monogram,size:48,radius:12}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",marginBottom:6},children:[(0,b.jsx)("span",{style:av,children:a.name}),c&&(0,b.jsxs)("span",{style:ax,children:[(0,b.jsx)(o,{size:11,strokeWidth:2.5}),"zh"===m?"当前默认":"Default"]}),"ok"===r&&(0,b.jsxs)("span",{style:ay,children:[(0,b.jsx)("span",{style:aD}),"zh"===m?"正常":"Healthy"]}),"checking"===r&&(0,b.jsxs)("span",{style:aA,children:[(0,b.jsx)(u.Loader2,{size:11,strokeWidth:2.4,style:{animation:"spin 1s linear infinite"}}),"zh"===m?"连接中":"Checking"]}),"failed"===r&&(0,b.jsxs)("span",{style:aB,children:[(0,b.jsx)(v.XCircle,{size:11,strokeWidth:2.4}),"zh"===m?"Key 已失效":"Key invalid"]}),"unconfigured"===r&&(0,b.jsx)("span",{style:az,children:"zh"===m?"未设置 Key":"No key"}),d&&(0,b.jsx)("span",{style:aC,children:"zh"===m?"系统默认":"System"})]}),(0,b.jsxs)("div",{style:aE,children:[(0,b.jsxs)("span",{style:aF,children:[(0,b.jsx)("span",{style:aG,children:"Provider"}),(0,b.jsx)("span",{style:aH,children:p.label})]}),(0,b.jsx)("span",{style:aI}),(0,b.jsxs)("span",{style:aF,children:[(0,b.jsx)("span",{style:aG,children:"Model"}),(0,b.jsx)("span",{style:{...aH,fontFamily:"var(--font-mono)",fontSize:12},children:a.model||"—"})]}),a.baseUrl&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:aI}),(0,b.jsxs)("span",{style:aF,children:[(0,b.jsx)("span",{style:aG,children:"Base URL"}),(0,b.jsx)("span",{style:{...aH,fontFamily:"var(--font-mono)",fontSize:12},title:a.baseUrl,children:a.baseUrl})]})]})]}),(0,b.jsxs)("div",{style:aJ,children:[(0,b.jsx)(i.Key,{size:12,strokeWidth:2.2,style:{color:"var(--primary)"}}),a.apiKey?(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12},children:a.apiKey}):(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",fontSize:12},children:"zh"===m?"(未设置)":"(not set)"})]})]}),(0,b.jsxs)("div",{style:aK,children:[c?(0,b.jsxs)("button",{style:aO,disabled:!0,children:[(0,b.jsx)(n.CircleCheck,{size:13,strokeWidth:2.4}),"zh"===m?"当前使用":"In use"]}):(0,b.jsxs)("button",{style:aN,onClick:f,children:[(0,b.jsx)(l.Check,{size:13,strokeWidth:2.2}),"zh"===m?"设为默认":"Set default"]}),!d&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{style:aN,onClick:g,children:[(0,b.jsx)(j.Pencil,{size:13,strokeWidth:2.2}),"zh"===m?"编辑":"Edit"]}),(0,b.jsxs)("button",{style:aP,onClick:h,children:[(0,b.jsx)(k.Trash2,{size:13,strokeWidth:2.2}),"zh"===m?"删除":"Delete"]})]})]})]})}function L({active:a,providerKinds:c,registeredCount:d,locale:e}){return(0,b.jsxs)("section",{style:ad,children:[(0,b.jsxs)("header",{style:ae,children:[(0,b.jsx)(p,{size:13,strokeWidth:2.2,style:{color:"var(--primary)"}}),(0,b.jsx)("span",{children:"zh"===e?"当前默认":"Current Default"})]}),a?(0,b.jsxs)("ul",{style:af,children:[(0,b.jsx)(O,{label:"zh"===e?"名称":"Name",value:a.name,bold:!0}),(0,b.jsx)(O,{label:"Provider",value:a.provider,mono:!0}),(0,b.jsx)(O,{label:"Model",value:a.model||"—",mono:!0}),a.baseUrl&&(0,b.jsx)(O,{label:"Base URL",value:a.baseUrl,mono:!0,ellipsis:!0}),(0,b.jsx)(O,{label:"zh"===e?"已注册":"Registered",value:`${d} / 32`}),(0,b.jsx)(O,{label:"zh"===e?"供应商种类":"Providers",value:String(c)})]}):(0,b.jsx)("div",{style:{padding:"4px 0",fontSize:12,color:"var(--foreground-muted)"},children:"zh"===e?"尚未选定默认模型。":"No default selected."})]})}function M({configs:a,healthMap:c,isRechecking:d,onRecheck:e,locale:f}){return(0,b.jsxs)("section",{style:ad,children:[(0,b.jsxs)("header",{style:ae,children:[(0,b.jsx)(q,{size:13,strokeWidth:2.2,style:{color:"var(--success)"}}),(0,b.jsx)("span",{children:"zh"===f?"健康检查":"Health Check"})]}),0===a.length?(0,b.jsx)("div",{style:{padding:"4px 0",fontSize:12,color:"var(--foreground-muted)"},children:"zh"===f?"暂无模型可检查。":"No models to check."}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{style:{display:"flex",flexDirection:"column",gap:8,padding:0,margin:0,listStyle:"none"},children:a.map(a=>{let d=c[a.id]??G(a);return(0,b.jsxs)("li",{style:ag,children:[(0,b.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.model||a.name,children:a.model||a.name}),(0,b.jsx)(Q,{state:d,locale:f})]},a.id)})}),(0,b.jsxs)("button",{style:ah,onClick:e,disabled:d,children:[(0,b.jsx)(t.RefreshCw,{size:12,strokeWidth:2.2,style:d?{animation:"spin 1s linear infinite"}:void 0}),d?"zh"===f?"检查中…":"Checking…":"zh"===f?"重新检查":"Re-check"]})]})]})}function N({locale:a}){return(0,b.jsxs)("section",{style:ad,children:[(0,b.jsxs)("header",{style:ae,children:[(0,b.jsx)(r.BookOpen,{size:13,strokeWidth:2.2,style:{color:"var(--foreground-secondary)"}}),(0,b.jsx)("span",{children:"zh"===a?"相关文档":"Related Docs"})]}),(0,b.jsx)("ul",{style:{display:"flex",flexDirection:"column",gap:2,padding:0,margin:0,listStyle:"none"},children:("zh"===a?[{label:"如何获取 API Key",href:"#"},{label:"密钥加密与轮转策略",href:"#"},{label:"模型注册最佳实践",href:"#"}]:[{label:"How to obtain an API Key",href:"#"},{label:"Key encryption & rotation",href:"#"},{label:"Model registry best practices",href:"#"}]).map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("a",{href:a.href,style:ai,children:[(0,b.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.label}),(0,b.jsx)(s.ExternalLink,{size:12,strokeWidth:2,style:{color:"var(--foreground-muted)",flexShrink:0}})]})},a.label))})]})}function O({label:a,value:c,mono:d,bold:e,ellipsis:f}){return(0,b.jsxs)("li",{style:{display:"flex",alignItems:"center",gap:12,padding:"5px 0",borderBottom:"1px dashed var(--border)",minWidth:0},children:[(0,b.jsx)("span",{style:{fontSize:11.5,color:"var(--foreground-muted)",flexShrink:0},children:a}),(0,b.jsx)("span",{style:{flex:1,minWidth:0,textAlign:"right",fontSize:12,color:"var(--foreground)",fontWeight:e?600:500,fontFamily:d?"var(--font-mono)":"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:f?c:void 0,children:c})]})}function P({slug:a,initials:c,size:e=36,radius:f=10}){let[g,h]=(0,d.useState)("color");(0,d.useEffect)(()=>{h("color")},[a]);let i="failed"===g?void 0:function(a,b="color"){if(a)return`https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@latest/icons/${a}${"color"===b?"-color":""}.svg`}(a,g),j=!!i;return(0,b.jsx)("div",{style:{...au,width:e,height:e,borderRadius:f,fontSize:Math.round(.32*e),background:j?"#ffffff":"var(--background-secondary)",padding:j?Math.round(.16*e):0,color:"var(--foreground)"},children:j?(0,b.jsx)("img",{src:i,alt:c,onError:()=>h("color"===g?"plain":"failed"),style:{width:"100%",height:"100%",objectFit:"contain"},loading:"lazy"}):c})}function Q({state:a,locale:c}){return"ok"===a?(0,b.jsxs)("span",{style:ay,children:[(0,b.jsx)(n.CircleCheck,{size:11,strokeWidth:2.4}),"zh"===c?"正常":"OK"]}):"checking"===a?(0,b.jsxs)("span",{style:aA,children:[(0,b.jsx)(u.Loader2,{size:11,strokeWidth:2.4,style:{animation:"spin 1s linear infinite"}}),"zh"===c?"检测中":"Checking"]}):"failed"===a?(0,b.jsxs)("span",{style:aB,children:[(0,b.jsx)(v.XCircle,{size:11,strokeWidth:2.4}),"zh"===c?"失效":"Failed"]}):(0,b.jsx)("span",{style:az,children:"zh"===c?"未配置":"No key"})}function R({locale:a,hasConfigs:c,onAdd:d,onReset:f}){return(0,b.jsxs)("div",{style:aU,children:[(0,b.jsx)("div",{style:aV,children:(0,b.jsx)(h,{size:20})}),(0,b.jsx)("div",{style:{fontSize:13.5,color:"var(--foreground)",fontWeight:500,marginBottom:4},children:c?"zh"===a?"没有匹配的模型":"No matching models":"zh"===a?"尚未注册任何模型":"No models registered yet"}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginBottom:14,textAlign:"center",maxWidth:360},children:c?"zh"===a?"试试调整搜索关键字或筛选条件。":"Try a different keyword or filter.":"zh"===a?"注册首个 LLM 后即可在评测、优化、对比中使用。":"Register your first LLM to use it for evaluation, optimization and comparison."}),c?(0,b.jsx)("button",{style:aN,onClick:f,children:"zh"===a?"清除筛选":"Reset filters"}):(0,b.jsxs)("button",{style:aL,onClick:d,children:[(0,b.jsx)(e.Plus,{size:14,strokeWidth:2.4}),"zh"===a?"注册首个模型":"Register your first model"]})]})}function S({onPick:a,onCancel:c,locale:e}){let[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)("all"),k=(0,d.useMemo)(()=>{let a=g.trim().toLowerCase();return A.filter(b=>("all"===i||b.category===i)&&(!a||b.label.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)||b.defaultModel.toLowerCase().includes(a)||b.suggestedModels.some(b=>b.toLowerCase().includes(a))))},[g,i]),l=(0,d.useMemo)(()=>{let a={};for(let b of k)a[b.category]||(a[b.category]=[]),a[b.category].push(b);return a},[k]),m=(0,d.useMemo)(()=>{let a={all:A.length};for(let b of A)a[b.category]=(a[b.category]||0)+1;return a},[]);return(0,b.jsxs)("div",{style:aQ,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",marginBottom:16,gap:16},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.01em"},children:"zh"===e?"选择模型供应商":"Choose a Model Provider"}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginTop:3},children:"zh"===e?"挑选预置供应商即可自动填写 Base URL 与默认模型,下一步只需录入 API Key。":"Pick a built-in provider — Base URL and default model auto-fill. You only need to paste an API key next."})]}),(0,b.jsx)("button",{style:aN,onClick:c,children:"zh"===e?"返回列表":"Back to list"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{...ao,width:280},children:[(0,b.jsx)(f.Search,{size:14,strokeWidth:2,style:{position:"absolute",left:11,top:"50%",transform:"translateY(-50%)",color:"var(--foreground-muted)"}}),(0,b.jsx)("input",{type:"text",placeholder:"zh"===e?"搜索供应商 / 模型":"Search provider / model",value:g,onChange:a=>h(a.target.value),style:ap})]}),(0,b.jsxs)("div",{style:aq,children:[(0,b.jsx)(J,{active:"all"===i,onClick:()=>j("all"),count:m.all,children:"zh"===e?"全部":"All"}),C.map(a=>(0,b.jsx)(J,{active:i===a.id,onClick:()=>j(a.id),count:m[a.id]||0,children:"zh"===e?a.labelZh:a.labelEn},a.id))]})]}),0===k.length?(0,b.jsx)("div",{style:{padding:"40px 0",textAlign:"center",fontSize:13,color:"var(--foreground-muted)"},children:"zh"===e?"没有匹配的供应商。":"No matching provider."}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:22},children:C.map(c=>{let d=l[c.id];return d&&0!==d.length?(0,b.jsxs)("section",{children:[(0,b.jsxs)("div",{style:aj,children:[(0,b.jsx)("span",{children:"zh"===e?c.labelZh:c.labelEn}),(0,b.jsx)("span",{style:ac,children:d.length})]}),(0,b.jsx)("div",{style:ak,children:d.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a(c),style:al,className:"provider-pick-card",children:[(0,b.jsx)(P,{slug:c.logoSlug,initials:c.initials,size:36,radius:9}),(0,b.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,b.jsx)("div",{style:{fontSize:13.5,fontWeight:600,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c.label}),(0,b.jsx)("div",{style:{marginTop:3,fontSize:11.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:c.suggestedModels.join(" · ")||c.defaultModel,children:c.suggestedModels.slice(0,3).join(" · ")||c.defaultModel||("zh"===e?"自填模型":"Custom model")})]})]},c.id))})]},c.id):null})})]})}function T({config:a,setConfig:c,onCancel:d,onReselect:e,onSave:f,isSaving:g,isDefault:h,pickedProvider:i,locale:j}){return(0,b.jsxs)("div",{style:aQ,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",marginBottom:18,gap:16},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,minWidth:0},children:[i&&(0,b.jsx)(P,{slug:i.logoSlug,initials:i.initials,size:40,radius:10}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.01em"},children:"new"===a.id?i?i.label:"zh"===j?"新增模型":"New Model":"zh"===j?"编辑模型":"Edit Model"}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginTop:3},children:i?.note?i.note:"zh"===j?"保存前会自动测试连接,连通后才会写入。":"Connection is tested before saving."})]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:8,flexShrink:0},children:[e&&(0,b.jsx)("button",{style:aN,onClick:e,children:"zh"===j?"← 选择其它供应商":"← Choose other provider"}),(0,b.jsx)("button",{style:aN,onClick:d,children:"zh"===j?"返回列表":"Back to list"})]})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"14px 18px"},children:[(0,b.jsx)(U,{label:"zh"===j?"配置名称":"Config Name",children:(0,b.jsx)("input",{style:aR,placeholder:"zh"===j?"例如:我的 DeepSeek":"e.g. My DeepSeek",value:a.name||"",disabled:h,onChange:b=>c({...a,name:b.target.value})})}),(0,b.jsx)(U,{label:"zh"===j?"供应商":"Provider",children:(0,b.jsxs)("select",{style:aR,value:a.provider,disabled:h,onChange:b=>{var d;let e;return e=D[d=b.target.value],void c({...a,provider:d,baseUrl:e.baseUrl||a.baseUrl,model:e.model||a.model})},children:[(0,b.jsx)("option",{value:"deepseek-official",children:"DeepSeek (Official)"}),(0,b.jsx)("option",{value:"siliconflow",children:"SiliconFlow"}),(0,b.jsx)("option",{value:"openai",children:"OpenAI"}),(0,b.jsx)("option",{value:"anthropic",children:"Anthropic"}),(0,b.jsx)("option",{value:"custom",children:"Custom (OpenAI Compatible)"})]})}),(0,b.jsx)(U,{label:"Base URL",children:(0,b.jsx)("input",{style:aR,placeholder:"https://api.deepseek.com",value:a.baseUrl||"",disabled:h,onChange:b=>c({...a,baseUrl:b.target.value.replace(/\/chat\/completions\/?$/,"")})})}),(0,b.jsxs)(U,{label:"zh"===j?"模型名":"Model Name",children:[(0,b.jsx)("input",{style:aR,placeholder:"deepseek-chat / gpt-4o / ...",value:a.model||"",disabled:h,onChange:b=>c({...a,model:b.target.value})}),i&&i.suggestedModels.length>0&&(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:5,marginTop:7},children:i.suggestedModels.slice(0,6).map(d=>(0,b.jsx)("button",{type:"button",onClick:()=>c({...a,model:d}),style:{...am,background:a.model===d?"var(--primary-subtle)":"var(--background-secondary)",color:a.model===d?"var(--primary)":"var(--foreground-secondary)",borderColor:a.model===d?"var(--primary-subtle-border)":"var(--border)"},children:d},d))})]}),(0,b.jsx)("div",{style:{gridColumn:"1 / -1"},children:(0,b.jsxs)(U,{label:"zh"===j?"API 密钥":"API Key",children:[(0,b.jsx)("input",{style:{...aR,fontFamily:"var(--font-mono, ui-monospace, monospace)"},type:"text",placeholder:"sk-...",value:a.apiKey||"",disabled:h,onChange:b=>c({...a,apiKey:b.target.value})}),(a.apiKey||"").includes("•")&&(0,b.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--foreground-muted)"},children:"zh"===j?"出于安全考虑仅显示掩码。保持不变则沿用原 Key;如需更换请清空后输入新 Key。":"Masked for security. Leave unchanged to keep the current key; clear and type a new key to replace it."}),i?.docsUrl&&(0,b.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--foreground-muted)"},children:(0,b.jsxs)("a",{href:i.docsUrl,target:"_blank",rel:"noreferrer",style:{color:"var(--primary)",textDecoration:"none",display:"inline-flex",alignItems:"center",gap:4},children:["zh"===j?"如何获取 API Key":"How to obtain an API Key",(0,b.jsx)(s.ExternalLink,{size:11,strokeWidth:2})]})})]})})]}),(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:20},children:[(0,b.jsx)("button",{style:aN,onClick:d,children:"zh"===j?"取消":"Cancel"}),!h&&(0,b.jsx)("button",{style:g?aM:aL,disabled:g,onClick:f,children:g?"zh"===j?"测试并保存中…":"Testing & Saving…":"zh"===j?"测试连接并保存":"Test & Save"})]})]})}function U({label:a,children:c}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontSize:11.5,fontWeight:500,color:"var(--foreground-secondary)",marginBottom:6,letterSpacing:"0.01em"},children:a}),c]})}let V={flex:1,minHeight:0,overflowY:"auto",padding:"24px 28px 40px",width:"100%"},W={maxWidth:1320,margin:"0 auto"},X={display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:24,marginBottom:22},Y={margin:0,fontSize:13,lineHeight:1.65,color:"var(--foreground-secondary)",maxWidth:720},Z={color:"var(--foreground)",fontWeight:600},$={display:"grid",gridTemplateColumns:"minmax(0, 1fr) 300px",gap:22,alignItems:"flex-start"},_={minWidth:0,display:"flex",flexDirection:"column",gap:14},aa={display:"flex",flexDirection:"column",gap:14,position:"sticky",top:0},ab={display:"flex",alignItems:"center",gap:8,padding:"2px 2px 6px",borderBottom:"1px solid var(--border)"},ac={display:"inline-flex",alignItems:"center",padding:"1px 8px",fontSize:11,fontWeight:600,fontFamily:"var(--font-mono)",color:"var(--foreground-secondary)",background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:999,lineHeight:1.5},ad={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,padding:"14px 16px 12px",display:"flex",flexDirection:"column",gap:10},ae={display:"flex",alignItems:"center",gap:7,fontSize:13,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.005em",paddingBottom:8,borderBottom:"1px solid var(--border)"},af={display:"flex",flexDirection:"column",padding:0,margin:0,listStyle:"none"},ag={display:"flex",alignItems:"center",gap:10,padding:"5px 0",minWidth:0},ah={width:"100%",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,padding:"7px 10px",marginTop:4,background:"var(--card-bg)",color:"var(--foreground-secondary)",border:"1px solid var(--border)",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all .12s ease"},ai={display:"flex",alignItems:"center",gap:8,padding:"7px 8px",fontSize:12.5,color:"var(--foreground-secondary)",textDecoration:"none",borderRadius:6,transition:"background .1s"},aj={display:"flex",alignItems:"center",gap:8,marginBottom:10,fontSize:12,fontWeight:600,color:"var(--foreground-secondary)",textTransform:"uppercase",letterSpacing:"0.08em"},ak={display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:10},al={display:"flex",alignItems:"center",gap:12,padding:"11px 12px",background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:10,cursor:"pointer",textAlign:"left",fontFamily:"inherit",transition:"all .12s ease",minWidth:0},am={padding:"3px 10px",fontSize:11,fontFamily:"var(--font-mono)",border:"1px solid var(--border)",borderRadius:999,cursor:"pointer",transition:"all .12s",lineHeight:1.5},an={display:"flex",alignItems:"center",gap:14,marginBottom:14,flexWrap:"wrap"},ao={position:"relative",width:280},ap={width:"100%",height:34,padding:"0 12px 0 32px",border:"1px solid var(--input-border)",borderRadius:8,background:"var(--input-bg)",fontSize:12.5,color:"var(--foreground)",outline:"none"},aq={display:"inline-flex",flexWrap:"wrap",gap:6},ar={padding:"6px 12px",fontSize:12,fontWeight:500,borderRadius:6,cursor:"pointer",fontFamily:"inherit",display:"inline-flex",alignItems:"center",gap:6,whiteSpace:"nowrap",lineHeight:1.4},as={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,padding:"18px 22px",display:"grid",gridTemplateColumns:"auto 1fr auto",gap:22,alignItems:"center",transition:"all .15s ease",position:"relative",overflow:"hidden"},at={position:"absolute",left:0,top:0,bottom:0,width:3,background:"var(--primary)"},au={width:48,height:48,borderRadius:12,background:"var(--background-secondary)",border:"1px solid var(--card-border)",display:"grid",placeItems:"center",fontWeight:600,fontSize:14,color:"var(--foreground-secondary)",letterSpacing:"0.02em",flexShrink:0},av={fontSize:16,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.01em"},aw={display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:10.5,fontWeight:600,borderRadius:999,lineHeight:1.5,letterSpacing:"0.01em"},ax={...aw,background:"var(--primary)",color:"var(--primary-foreground)"},ay={...aw,background:"var(--success-subtle)",color:"var(--success)"},az={...aw,background:"var(--warning-subtle)",color:"var(--warning)"},aA={...aw,background:"var(--primary-subtle)",color:"var(--primary)"},aB={...aw,background:"var(--error-subtle)",color:"var(--error)"},aC={...aw,background:"var(--background-secondary)",color:"var(--foreground-secondary)",border:"1px solid var(--border)"},aD={width:5,height:5,background:"var(--success)",borderRadius:"50%"},aE={display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",marginBottom:10,fontSize:12.5,color:"var(--foreground-secondary)"},aF={display:"inline-flex",alignItems:"center",gap:6,minWidth:0},aG={fontSize:10.5,fontWeight:500,color:"var(--foreground-muted)",textTransform:"uppercase",letterSpacing:"0.06em"},aH={color:"var(--foreground)",fontWeight:500,maxWidth:280,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},aI={width:1,height:11,background:"var(--border)"},aJ={display:"inline-flex",alignItems:"center",gap:8,padding:"5px 10px",background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:7,color:"var(--foreground-secondary)",maxWidth:"fit-content"},aK={display:"flex",alignItems:"center",gap:6,paddingLeft:16,borderLeft:"1px dashed var(--border)"},aL={display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",background:"var(--primary)",color:"var(--primary-foreground)",border:"none",borderRadius:8,fontSize:12.5,fontWeight:500,cursor:"pointer",transition:"background .12s ease",lineHeight:1.4},aM={...aL,opacity:.6,cursor:"not-allowed"},aN={display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",background:"var(--card-bg)",color:"var(--foreground-secondary)",borderWidth:1,borderStyle:"solid",borderColor:"var(--border)",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all .12s ease",lineHeight:1.4},aO={...aN,background:"var(--success-subtle)",color:"var(--success)",borderColor:"var(--success-subtle-border)",cursor:"default"},aP={...aN,color:"var(--foreground-secondary)"},aQ={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,padding:"22px 26px"},aR={width:"100%",padding:"8px 10px",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:7,color:"var(--foreground)",fontSize:12.5,outline:"none"},aS={marginTop:24,padding:"14px 18px",border:"1px dashed var(--border-dark)",borderRadius:10,background:"var(--background-secondary)",display:"flex",alignItems:"center",gap:12},aT={width:30,height:30,borderRadius:8,background:"var(--primary-subtle)",color:"var(--primary)",display:"grid",placeItems:"center",flexShrink:0},aU={padding:"40px 24px",background:"var(--card-bg)",border:"1px dashed var(--border-dark)",borderRadius:12,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},aV={width:44,height:44,borderRadius:10,background:"var(--background-secondary)",color:"var(--foreground-muted)",display:"grid",placeItems:"center",marginBottom:12};var aW=a.i(960798);function aX(){let{t:a}=(0,y.useLocale)();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.AppTopBar,{title:(0,b.jsx)(aW.Term,{id:"model-registry",label:a("nav.modelRegistry")})}),(0,b.jsx)(H,{})]})}a.s(["default",()=>aX],685260)}];
1
+ module.exports=[685260,a=>{"use strict";var b=a.i(187924),c=a.i(729936),d=a.i(572131),e=a.i(403512),f=a.i(233540),g=a.i(164831);let h=(0,g.default)("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);var i=a.i(118343),j=a.i(590629),k=a.i(980180),l=a.i(752562),m=a.i(752357),n=a.i(597024);let o=(0,g.default)("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]),p=(0,g.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),q=(0,g.default)("heart-pulse",[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}],["path",{d:"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"auskq0"}]]);var r=a.i(118688),s=a.i(168370),t=a.i(519783),u=a.i(875160),v=a.i(211134),w=a.i(575110),x=a.i(943408),y=a.i(106927),z=a.i(757430);let A=[{id:"openai",label:"OpenAI",category:"frontier",baseUrl:"https://api.openai.com/v1",defaultModel:"gpt-4o-mini",suggestedModels:["gpt-5","gpt-5-mini","gpt-4o","gpt-4o-mini","gpt-4.1","o3","o3-mini","o4-mini"],docsUrl:"https://platform.openai.com/docs/models",oaiCompat:!0,initials:"OA",logoSlug:"openai"},{id:"anthropic",label:"Anthropic",category:"frontier",baseUrl:"https://api.anthropic.com/v1",defaultModel:"claude-sonnet-4-6",suggestedModels:["claude-opus-4-7","claude-sonnet-4-6","claude-haiku-4-5","claude-3-5-sonnet-latest"],docsUrl:"https://docs.anthropic.com/en/docs/models-overview",oaiCompat:!0,initials:"AN",logoSlug:"anthropic",note:"使用 Anthropic OpenAI 兼容端点(/v1/messages 自动转换)。"},{id:"gemini",label:"Google Gemini",category:"frontier",baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai/",defaultModel:"gemini-2.5-flash",suggestedModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.0-flash","gemini-1.5-pro"],docsUrl:"https://ai.google.dev/gemini-api/docs/openai",oaiCompat:!0,initials:"GM",logoSlug:"gemini",note:"走 Gemini OpenAI 兼容层(generativelanguage.googleapis.com)。"},{id:"azure-openai",label:"Azure OpenAI",category:"frontier",baseUrl:"https://YOUR-RESOURCE.openai.azure.com/openai",defaultModel:"gpt-4o",suggestedModels:["gpt-4o","gpt-4o-mini","gpt-4-turbo","o1-mini"],docsUrl:"https://learn.microsoft.com/azure/ai-services/openai/reference",oaiCompat:!0,initials:"AZ",logoSlug:"azure",note:"Base URL 形如 https://<resource>.openai.azure.com/openai/deployments/<deployment>"},{id:"xai",label:"xAI Grok",category:"frontier",baseUrl:"https://api.x.ai/v1",defaultModel:"grok-3",suggestedModels:["grok-4","grok-3","grok-3-mini","grok-2-1212","grok-2-vision-1212"],docsUrl:"https://docs.x.ai/api",oaiCompat:!0,initials:"GR",logoSlug:"grok"},{id:"mistral",label:"Mistral AI",category:"frontier",baseUrl:"https://api.mistral.ai/v1",defaultModel:"mistral-large-latest",suggestedModels:["mistral-large-latest","mistral-large-2411","mistral-small-latest","codestral-2501","open-mistral-nemo"],docsUrl:"https://docs.mistral.ai/getting-started/models/models_overview/",oaiCompat:!0,initials:"MI",logoSlug:"mistral"},{id:"cohere",label:"Cohere",category:"frontier",baseUrl:"https://api.cohere.ai/compatibility/v1",defaultModel:"command-r-plus",suggestedModels:["command-r-plus","command-r","command-r7b"],docsUrl:"https://docs.cohere.com/docs/compatibility-api",oaiCompat:!0,initials:"CO",logoSlug:"cohere"},{id:"openrouter",label:"OpenRouter",category:"aggregator",baseUrl:"https://openrouter.ai/api/v1",defaultModel:"openai/gpt-4o-mini",suggestedModels:["anthropic/claude-3.5-sonnet","openai/gpt-4o","meta-llama/llama-3.3-70b-instruct","google/gemini-2.0-flash-exp:free"],docsUrl:"https://openrouter.ai/docs",oaiCompat:!0,initials:"OR",logoSlug:"openrouter"},{id:"together",label:"Together AI",category:"aggregator",baseUrl:"https://api.together.xyz/v1",defaultModel:"meta-llama/Llama-3.3-70B-Instruct-Turbo",suggestedModels:["meta-llama/Llama-3.3-70B-Instruct-Turbo","deepseek-ai/DeepSeek-V3","Qwen/Qwen2.5-72B-Instruct-Turbo"],docsUrl:"https://docs.together.ai/docs/quickstart",oaiCompat:!0,initials:"TG",logoSlug:"together"},{id:"fireworks",label:"Fireworks AI",category:"aggregator",baseUrl:"https://api.fireworks.ai/inference/v1",defaultModel:"accounts/fireworks/models/llama-v3p3-70b-instruct",suggestedModels:["accounts/fireworks/models/llama-v3p3-70b-instruct","accounts/fireworks/models/deepseek-v3","accounts/fireworks/models/qwen2p5-72b-instruct"],docsUrl:"https://docs.fireworks.ai",oaiCompat:!0,initials:"FW",logoSlug:"fireworks"},{id:"groq",label:"Groq",category:"aggregator",baseUrl:"https://api.groq.com/openai/v1",defaultModel:"llama-3.3-70b-versatile",suggestedModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768"],docsUrl:"https://console.groq.com/docs/models",oaiCompat:!0,initials:"GQ",logoSlug:"groq"},{id:"deepinfra",label:"DeepInfra",category:"aggregator",baseUrl:"https://api.deepinfra.com/v1/openai",defaultModel:"meta-llama/Meta-Llama-3.1-70B-Instruct",suggestedModels:["meta-llama/Meta-Llama-3.1-70B-Instruct","deepseek-ai/DeepSeek-V3","Qwen/Qwen2.5-72B-Instruct"],docsUrl:"https://deepinfra.com/docs",oaiCompat:!0,initials:"DI",logoSlug:"deepinfra"},{id:"perplexity",label:"Perplexity",category:"aggregator",baseUrl:"https://api.perplexity.ai",defaultModel:"sonar",suggestedModels:["sonar","sonar-pro","sonar-reasoning","sonar-reasoning-pro"],docsUrl:"https://docs.perplexity.ai",oaiCompat:!0,initials:"PX",logoSlug:"perplexity"},{id:"nvidia",label:"NVIDIA NIM",category:"aggregator",baseUrl:"https://integrate.api.nvidia.com/v1",defaultModel:"meta/llama-3.3-70b-instruct",suggestedModels:["meta/llama-3.3-70b-instruct","deepseek-ai/deepseek-r1","nvidia/llama-3.1-nemotron-70b-instruct"],docsUrl:"https://docs.api.nvidia.com",oaiCompat:!0,initials:"NV",logoSlug:"nvidia"},{id:"databricks",label:"Databricks",category:"aggregator",baseUrl:"https://YOUR-WORKSPACE.cloud.databricks.com/serving-endpoints",defaultModel:"databricks-meta-llama-3-3-70b-instruct",suggestedModels:["databricks-meta-llama-3-3-70b-instruct","databricks-dbrx-instruct"],docsUrl:"https://docs.databricks.com/aws/en/machine-learning/foundation-models/api-reference",oaiCompat:!0,initials:"DB",logoSlug:"databricks",note:"Base URL 形如 https://<workspace>.cloud.databricks.com/serving-endpoints"},{id:"novita",label:"Novita AI",category:"aggregator",baseUrl:"https://api.novita.ai/v3/openai",defaultModel:"meta-llama/llama-3.3-70b-instruct",suggestedModels:["meta-llama/llama-3.3-70b-instruct","qwen/qwen-2.5-72b-instruct"],docsUrl:"https://novita.ai/docs/api-reference",oaiCompat:!0,initials:"NV",logoSlug:"novita"},{id:"hyperbolic",label:"Hyperbolic",category:"aggregator",baseUrl:"https://api.hyperbolic.xyz/v1",defaultModel:"meta-llama/Meta-Llama-3.1-70B-Instruct",suggestedModels:["meta-llama/Meta-Llama-3.1-70B-Instruct","Qwen/Qwen2.5-Coder-32B-Instruct"],docsUrl:"https://docs.hyperbolic.xyz",oaiCompat:!0,initials:"HY",logoSlug:"hyperbolic"},{id:"deepseek-official",label:"DeepSeek (Official)",category:"china",baseUrl:"https://api.deepseek.com",defaultModel:"deepseek-chat",suggestedModels:["deepseek-chat","deepseek-reasoner","deepseek-v3.1"],docsUrl:"https://api-docs.deepseek.com",oaiCompat:!0,initials:"DS",logoSlug:"deepseek"},{id:"siliconflow",label:"SiliconFlow / 硅基流动",category:"china",baseUrl:"https://api.siliconflow.cn/v1",defaultModel:"deepseek-ai/DeepSeek-V3",suggestedModels:["deepseek-ai/DeepSeek-V3","deepseek-ai/DeepSeek-R1","Qwen/Qwen2.5-72B-Instruct","meta-llama/Meta-Llama-3.1-70B-Instruct"],docsUrl:"https://docs.siliconflow.cn",oaiCompat:!0,initials:"SF",logoSlug:"siliconcloud"},{id:"moonshot",label:"Moonshot / Kimi",category:"china",baseUrl:"https://api.moonshot.cn/v1",defaultModel:"kimi-latest",suggestedModels:["kimi-k2","kimi-latest","moonshot-v1-128k","moonshot-v1-32k","moonshot-v1-8k"],docsUrl:"https://platform.moonshot.cn/docs",oaiCompat:!0,initials:"MK",logoSlug:"moonshot"},{id:"zhipu",label:"Zhipu GLM / 智谱",category:"china",baseUrl:"https://open.bigmodel.cn/api/paas/v4",defaultModel:"glm-4.5",suggestedModels:["glm-4.5","glm-4-plus","glm-4-air","glm-4-long","glm-4-flash"],docsUrl:"https://bigmodel.cn/dev/api",oaiCompat:!0,initials:"ZP",logoSlug:"zhipu"},{id:"doubao",label:"Doubao / 火山方舟",category:"china",baseUrl:"https://ark.cn-beijing.volces.com/api/v3",defaultModel:"doubao-1.5-pro-32k",suggestedModels:["doubao-1.5-pro-32k","doubao-1.5-pro-256k","doubao-pro-32k","doubao-lite-32k"],docsUrl:"https://www.volcengine.com/docs/82379",oaiCompat:!0,initials:"DB",logoSlug:"doubao",note:'模型名通常是火山方舟"接入点 ID",不是发布的模型名。'},{id:"qwen",label:"Tongyi Qwen / 通义千问",category:"china",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",defaultModel:"qwen-plus",suggestedModels:["qwen3-max","qwen3-plus","qwen-max","qwen-plus","qwen-turbo","qwen2.5-72b-instruct"],docsUrl:"https://help.aliyun.com/zh/model-studio/developer-reference/use-qwen-by-calling-api",oaiCompat:!0,initials:"QW",logoSlug:"qwen"},{id:"hunyuan",label:"Tencent Hunyuan / 腾讯混元",category:"china",baseUrl:"https://api.hunyuan.cloud.tencent.com/v1",defaultModel:"hunyuan-pro",suggestedModels:["hunyuan-turbo","hunyuan-pro","hunyuan-standard","hunyuan-lite"],docsUrl:"https://cloud.tencent.com/document/product/1729/97732",oaiCompat:!0,initials:"HY",logoSlug:"hunyuan"},{id:"yi",label:"01.AI Yi / 零一万物",category:"china",baseUrl:"https://api.lingyiwanwu.com/v1",defaultModel:"yi-large",suggestedModels:["yi-large","yi-large-turbo","yi-medium","yi-vision"],docsUrl:"https://platform.lingyiwanwu.com/docs",oaiCompat:!0,initials:"YI",logoSlug:"yi"},{id:"modelscope",label:"ModelScope / 魔搭",category:"china",baseUrl:"https://api-inference.modelscope.cn/v1",defaultModel:"Qwen/Qwen2.5-72B-Instruct",suggestedModels:["Qwen/Qwen2.5-72B-Instruct","deepseek-ai/DeepSeek-V3","meta-llama/Llama-3.3-70B-Instruct"],docsUrl:"https://modelscope.cn/docs/model-service/API-Inference",oaiCompat:!0,initials:"MS",logoSlug:"modelscope"},{id:"ppio",label:"PPIO / 派欧云",category:"china",baseUrl:"https://api.ppinfra.com/v3/openai",defaultModel:"deepseek/deepseek-v3",suggestedModels:["deepseek/deepseek-v3","deepseek/deepseek-r1","qwen/qwen2.5-72b-instruct","meta-llama/llama-3.3-70b-instruct"],docsUrl:"https://ppinfra.com/docs",oaiCompat:!0,initials:"PP",logoSlug:"ppio"},{id:"baidu",label:"Baidu Qianfan / 文心一言",category:"china",baseUrl:"https://qianfan.baidubce.com/v2",defaultModel:"ernie-4.0-8k",suggestedModels:["ernie-4.0-8k","ernie-4.0-turbo-8k","ernie-3.5-8k"],docsUrl:"https://cloud.baidu.com/doc/qianfan-api/index.html",oaiCompat:!0,initials:"BD",logoSlug:"wenxin"},{id:"minimax",label:"MiniMax",category:"china",baseUrl:"https://api.minimax.chat/v1",defaultModel:"abab6.5s-chat",suggestedModels:["abab6.5s-chat","abab6.5-chat","minimax-text-01"],docsUrl:"https://platform.minimaxi.com/document/algorithm-concept",oaiCompat:!0,initials:"MM",logoSlug:"minimax"},{id:"stepfun",label:"Stepfun / 阶跃星辰",category:"china",baseUrl:"https://api.stepfun.com/v1",defaultModel:"step-1-8k",suggestedModels:["step-1-8k","step-1-32k","step-2-16k"],docsUrl:"https://platform.stepfun.com/docs",oaiCompat:!0,initials:"ST",logoSlug:"stepfun"},{id:"ollama",label:"Ollama",category:"selfhost",baseUrl:"http://localhost:11434/v1",defaultModel:"llama3.3",suggestedModels:["llama3.3","qwen2.5","deepseek-r1","mistral"],docsUrl:"https://ollama.com/library",oaiCompat:!0,initials:"OL",logoSlug:"ollama",note:"本地 Ollama 通常无需 API Key,留空即可。"},{id:"vllm",label:"vLLM",category:"selfhost",baseUrl:"http://localhost:8000/v1",defaultModel:"meta-llama/Meta-Llama-3-8B-Instruct",suggestedModels:["meta-llama/Meta-Llama-3-8B-Instruct","Qwen/Qwen2.5-7B-Instruct"],docsUrl:"https://docs.vllm.ai/en/stable/serving/openai_compatible_server.html",oaiCompat:!0,initials:"VL",logoSlug:"vllm",note:"vLLM 默认以 OpenAI 兼容模式启动,API Key 任意字符串即可。"},{id:"lmstudio",label:"LM Studio",category:"selfhost",baseUrl:"http://localhost:1234/v1",defaultModel:"local-model",suggestedModels:["local-model"],docsUrl:"https://lmstudio.ai/docs/local-server",oaiCompat:!0,initials:"LM",logoSlug:"lmstudio",note:'在 LM Studio 中开启 "Local Inference Server",端口默认 1234。'},{id:"tgi",label:"Text Generation Inference (TGI)",category:"selfhost",baseUrl:"http://localhost:8080/v1",defaultModel:"tgi",suggestedModels:["tgi"],docsUrl:"https://huggingface.co/docs/text-generation-inference/messages_api",oaiCompat:!0,initials:"TG",logoSlug:"huggingface"},{id:"xinference",label:"Xinference",category:"selfhost",baseUrl:"http://localhost:9997/v1",defaultModel:"qwen2.5-instruct",suggestedModels:["qwen2.5-instruct","llama-3.3-instruct","deepseek-r1-distill-qwen"],docsUrl:"https://inference.readthedocs.io/en/latest/models/builtin/llm.html",oaiCompat:!0,initials:"XI",logoSlug:"xinference",note:"通过模型 UID 接入 Xinference 本地实例。"},{id:"localai",label:"LocalAI",category:"selfhost",baseUrl:"http://localhost:8080/v1",defaultModel:"gpt-3.5-turbo",suggestedModels:["gpt-3.5-turbo"],docsUrl:"https://localai.io",oaiCompat:!0,initials:"LA",logoSlug:"localai",note:"OpenAI 兼容的本地推理网关,模型名按本地配置填写。"},{id:"custom",label:"Custom (OpenAI Compatible)",category:"selfhost",baseUrl:"",defaultModel:"",suggestedModels:[],oaiCompat:!0,initials:"CU",note:"任何兼容 OpenAI /v1/chat/completions 协议的端点。"}],B=A.reduce((a,b)=>(a[b.id]=b,a),{}),C=[{id:"frontier",labelZh:"主流闭源 SaaS",labelEn:"Frontier SaaS"},{id:"aggregator",labelZh:"推理聚合 / 路由",labelEn:"Inference Aggregators"},{id:"china",labelZh:"国内厂商",labelEn:"China Providers"},{id:"selfhost",labelZh:"本地 / 自部署",labelEn:"Self-hosted"}],D={"deepseek-official":{baseUrl:"https://api.deepseek.com",model:"deepseek-chat"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1",model:"deepseek-ai/DeepSeek-V3"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-4o"},anthropic:{baseUrl:"https://api.anthropic.com/v1",model:"claude-3-5-sonnet-20240620"},custom:{baseUrl:"",model:""}},E={"deepseek-official":{label:"DeepSeek (Official)",monogram:"DS",category:"cn"},siliconflow:{label:"SiliconFlow",monogram:"SF",category:"cn"},openai:{label:"OpenAI",monogram:"OA",category:"saas"},anthropic:{label:"Anthropic",monogram:"AN",category:"saas"},custom:{label:"Custom (OpenAI Compatible)",monogram:"CX",category:"other"}},F=a=>!!a&&a.startsWith("default_"),G=a=>a.apiKey?"ok":"unconfigured";function H({}={}){let{user:a}=(0,x.useAuth)(),{t:c,locale:g}=(0,y.useLocale)(),[h,i]=(0,d.useState)([]),[j,k]=(0,d.useState)("default"),[l,n]=(0,d.useState)(null),[o,p]=(0,d.useState)({id:"new",name:"zh"===g?"新配置":"New Config",provider:"deepseek-official",model:"deepseek-chat"}),[q,r]=(0,d.useState)(!1),[s,t]=(0,d.useState)(null),[u,v]=(0,d.useState)(!1),[A,B]=(0,d.useState)(""),[C,D]=(0,d.useState)("all"),[O,P]=(0,d.useState)(null),[Q,U]=(0,d.useState)({}),[ad,ae]=(0,d.useState)(!1),[af,ag]=(0,d.useState)(!1),[ah,ai]=(0,d.useState)(null),aj=(0,d.useCallback)(async()=>{if(!a)return void v(!0);try{let b=await (0,w.apiFetch)(`/api/eval/settings?user=${encodeURIComponent(a)}`);if(b.ok){let a=await b.json();a.configs&&(i(a.configs),k(a.activeConfigId||a.configs[0]?.id||"default"))}}catch(a){console.error("Failed to fetch settings",a)}finally{v(!0)}},[a]);(0,d.useEffect)(()=>{aj()},[aj]),(0,d.useEffect)(()=>{U(a=>{let b={...a};for(let a of h)a.id in b||(b[a.id]=G(a));for(let a of Object.keys(b))h.find(b=>b.id===a)||delete b[a];return b})},[h]);let ak=(0,d.useCallback)(async()=>{if(ad||0===h.length)return;ae(!0),U(a=>{let b={...a};for(let a of h)b[a.id]=a.apiKey?"checking":"unconfigured";return b});let b=await Promise.all(h.map(async b=>{if(!b.apiKey)return[b.id,"unconfigured"];try{let c=await (0,w.apiFetch)("/api/eval/settings/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b.provider,apiKey:b.apiKey,baseUrl:b.baseUrl,model:b.model,user:a,configId:b.id})}),d=await c.json().catch(()=>({success:!1}));return[b.id,d.success?"ok":"failed"]}catch{return[b.id,"failed"]}}));U(a=>{let c={...a};for(let[a,d]of b)c[a]=d;return c}),ae(!1)},[h,ad]),al=(0,d.useCallback)(async(b,c)=>(0,w.apiFetch)("/api/eval/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{activeConfigId:c,configs:b},user:a})}),[a]),am=async()=>{r(!0),t({type:"info",msg:"zh"===g?"正在测试连接…":"Testing connection…"});try{let b=[...h],c={...o};"new"===c.id?(c.id=`config_${Date.now()}`,b.push(c)):b=b.map(a=>a.id===c.id?c:a);let d=await (0,w.apiFetch)("/api/eval/settings/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:c.provider,apiKey:c.apiKey,baseUrl:c.baseUrl,model:c.model,user:a,configId:c.id})}),e=await d.json();if(!e.success){t({type:"error",msg:("zh"===g?"连接测试失败:":"Connection test failed: ")+e.error}),r(!1);return}let f=j;(1===b.length||"default"===j)&&(f=c.id);let i=await al(b,f);if(i.ok)await aj(),n(null),ai(null),t({type:"success",msg:"zh"===g?"已保存":"Saved"}),setTimeout(()=>t(null),1500);else{let a=await i.json().catch(()=>({}));t({type:"error",msg:("zh"===g?"保存失败:":"Save failed: ")+(a.error||i.statusText)})}}catch(a){t({type:"error",msg:`Error: ${a.message}`})}finally{r(!1)}},ar=async a=>{(await al(h,a)).ok&&(k(a),t({type:"success",msg:"zh"===g?"默认模型已切换":"Active model updated"}),setTimeout(()=>t(null),1500))},as=async a=>{let b=h.filter(b=>b.id!==a),c=j;a===j&&(c=b[0]?.id||"default"),(await al(b,c)).ok&&(i(b),k(c),t({type:"success",msg:"zh"===g?"已删除":"Deleted"}),setTimeout(()=>t(null),1500))},at=()=>{ag(!0),ai(null),n(null),t(null)},au=(0,d.useMemo)(()=>{let a=A.trim().toLowerCase();return h.filter(b=>("all"===C||E[b.provider]?.category===C)&&(!a||b.name.toLowerCase().includes(a)||(b.model||"").toLowerCase().includes(a)||(b.baseUrl||"").toLowerCase().includes(a)||(E[b.provider]?.label||b.provider||"").toLowerCase().includes(a)))},[h,A,C]),av=(0,d.useMemo)(()=>{let a={saas:0,cn:0,local:0,other:0};for(let b of h){let c=E[b.provider]?.category;c&&(a[c]+=1)}return a},[h]),aw=h.find(a=>a.id===j),ax=new Set(h.map(a=>a.provider)).size;return u?(0,b.jsxs)("div",{style:V,children:[(0,b.jsxs)("div",{style:W,children:[s&&(0,b.jsx)(I,{status:s}),af?(0,b.jsx)(S,{onPick:a=>{var b;p({id:"new",name:a.label,provider:"openai"===(b=a.id)?"openai":"anthropic"===b?"anthropic":"deepseek-official"===b?"deepseek-official":"siliconflow"===b?"siliconflow":"custom",baseUrl:a.baseUrl,model:a.defaultModel,apiKey:""}),ai(a),ag(!1),n("new"),t(null)},onCancel:()=>ag(!1),locale:g}):l?(0,b.jsx)(T,{config:o,setConfig:p,onCancel:()=>{n(null),ai(null)},onReselect:"new"===l?()=>{n(null),ag(!0)}:void 0,onSave:am,isSaving:q,isDefault:F(l),pickedProvider:ah,locale:g}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:X,children:[(0,b.jsx)("p",{style:Y,children:"zh"===g?(0,b.jsxs)(b.Fragment,{children:["注册并管理评测 / 优化使用的 ",(0,b.jsx)("b",{style:Z,children:"LLM"}),",可切换默认、编辑参数、管理 API Key。兼容 ",(0,b.jsx)("b",{style:Z,children:"OpenAI / Anthropic / DeepSeek"})," 等主流厂商,亦支持",(0,b.jsx)("b",{style:Z,children:"国内厂商"}),"与",(0,b.jsx)("b",{style:Z,children:"本地推理"}),"部署。"]}):(0,b.jsxs)(b.Fragment,{children:["Register and manage LLMs used for evaluation/optimization. Set the default, edit parameters, and manage API keys. Compatible with ",(0,b.jsx)("b",{style:Z,children:"OpenAI / Anthropic / DeepSeek"})," as well as ",(0,b.jsx)("b",{style:Z,children:"regional providers"})," and ",(0,b.jsx)("b",{style:Z,children:"self-hosted"})," inference."]})}),(0,b.jsxs)("button",{style:aL,onClick:at,children:[(0,b.jsx)(e.Plus,{size:14,strokeWidth:2.4}),"zh"===g?"新增模型":"New Model"]})]}),(0,b.jsxs)("div",{style:$,children:[(0,b.jsxs)("div",{style:_,children:[(0,b.jsxs)("div",{style:an,children:[(0,b.jsxs)("div",{style:ao,children:[(0,b.jsx)(f.Search,{size:14,strokeWidth:2,style:{position:"absolute",left:11,top:"50%",transform:"translateY(-50%)",color:"var(--foreground-muted)"}}),(0,b.jsx)("input",{type:"text",placeholder:"zh"===g?"搜索名称 / 模型 / Base URL":"Search name / model / Base URL",value:A,onChange:a=>B(a.target.value),style:ap})]}),(0,b.jsxs)("div",{style:aq,children:[(0,b.jsx)(J,{active:"all"===C,onClick:()=>D("all"),count:h.length,children:"zh"===g?"全部":"All"}),(0,b.jsx)(J,{active:"saas"===C,onClick:()=>D("saas"),count:av.saas,children:"zh"===g?"主流闭源":"SaaS"}),(0,b.jsx)(J,{active:"cn"===C,onClick:()=>D("cn"),count:av.cn,children:"zh"===g?"国内厂商":"Regional"}),(0,b.jsx)(J,{active:"other"===C,onClick:()=>D("other"),count:av.other,children:"zh"===g?"自定义":"Custom"})]})]}),(0,b.jsxs)("div",{style:ab,children:[(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:600,color:"var(--foreground)"},children:"zh"===g?"已注册模型":"Registered Models"}),(0,b.jsx)("span",{style:ac,children:au.length}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{fontSize:11.5,color:"var(--foreground-muted)"},children:"zh"===g?`容量 ${h.length} / 32`:`Capacity ${h.length} / 32`})]}),0===au.length?(0,b.jsx)(R,{locale:g,hasConfigs:h.length>0,onAdd:at,onReset:()=>{B(""),D("all")}}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:au.map(a=>(0,b.jsx)(K,{config:a,isActive:a.id===j,isDefault:F(a.id),health:Q[a.id],onActivate:()=>ar(a.id),onEdit:()=>{p({...a}),ai(null),n(a.id),ag(!1),t(null)},onDelete:()=>P(a),locale:g},a.id))}),(0,b.jsxs)("div",{style:aS,children:[(0,b.jsx)("div",{style:aT,children:(0,b.jsx)(m.Info,{size:16})}),(0,b.jsxs)("div",{style:{flex:1,fontSize:12.5,color:"var(--foreground-secondary)",lineHeight:1.6},children:[(0,b.jsx)("b",{style:{color:"var(--foreground)",fontWeight:600},children:"zh"===g?"提示":"Tip"})," · ","zh"===g?"至少保留一个默认模型,用于评测与优化任务的兜底调用。删除默认模型前,请先指定其它模型为默认。":"Keep at least one default model for evaluation/optimization fallback. Switch the default before deleting it."]})]})]}),(0,b.jsxs)("aside",{style:aa,children:[(0,b.jsx)(L,{active:aw,providerKinds:ax,registeredCount:h.length,locale:g}),(0,b.jsx)(M,{configs:h,healthMap:Q,isRechecking:ad,onRecheck:ak,locale:g}),(0,b.jsx)(N,{locale:g})]})]})]})]}),(0,b.jsx)(z.ConfirmDialog,{open:!!O,onOpenChange:a=>!a&&P(null),tone:"danger",title:"zh"===g?"删除该模型?":"Delete this model?",description:O?"zh"===g?`将永久删除「${O.name}」配置,无法恢复。`:`"${O.name}" will be permanently removed.`:"",confirmText:"zh"===g?"删除":"Delete",cancelText:"zh"===g?"取消":"Cancel",onConfirm:async()=>{O&&await as(O.id)}})]}):(0,b.jsx)("div",{style:{padding:32,color:"var(--foreground-muted)",fontSize:12},children:c("common.loading")})}function I({status:a}){let c="success"===a.type?{bg:"var(--success-subtle)",fg:"var(--success)",border:"var(--success-subtle-border)"}:"error"===a.type?{bg:"var(--error-subtle)",fg:"var(--error)",border:"var(--error-subtle-border)"}:{bg:"var(--primary-subtle)",fg:"var(--primary)",border:"var(--primary-subtle-border)"};return(0,b.jsxs)("div",{style:{padding:"8px 12px",marginBottom:14,borderRadius:8,background:c.bg,color:c.fg,border:`1px solid ${c.border}`,fontSize:12,fontWeight:500,display:"flex",alignItems:"center",gap:6},children:["success"===a.type&&(0,b.jsx)(l.Check,{size:13,strokeWidth:2.5}),a.msg]})}function J({active:a,onClick:c,count:d,children:e}){return(0,b.jsxs)("button",{type:"button",onClick:c,"aria-pressed":a,className:"ai-filter-chip","data-active":a?"true":"false",style:ar,children:[e,"number"==typeof d&&d>0&&(0,b.jsx)("span",{className:"ai-filter-chip__count",children:d})]})}function K({config:a,isActive:c,isDefault:d,health:e,onActivate:f,onEdit:g,onDelete:h,locale:m}){let p=E[a.provider]??{label:a.provider||"Unknown",monogram:(a.provider?.slice(0,2)||"??").toUpperCase(),category:"other"},q=function(a,b){let c=B[a];if(c)return c;if(!b)return;let d=b.replace(/\/+$/,"").toLowerCase();return A.find(a=>{if(!a.baseUrl)return!1;let b=a.baseUrl.replace(/\/+$/,"").toLowerCase();return d===b||d.startsWith(b)})}(a.provider,a.baseUrl),r=e??G(a);return(0,b.jsxs)("article",{style:{...as,borderColor:c?"var(--primary-subtle-border)":"var(--card-border)",background:c?"linear-gradient(180deg, var(--primary-subtle) 0%, var(--card-bg) 56px)":"var(--card-bg)"},children:[c&&(0,b.jsx)("span",{style:at}),(0,b.jsx)(P,{slug:q?.logoSlug,initials:p.monogram,size:48,radius:12}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",marginBottom:6},children:[(0,b.jsx)("span",{style:av,children:a.name}),c&&(0,b.jsxs)("span",{style:ax,children:[(0,b.jsx)(o,{size:11,strokeWidth:2.5}),"zh"===m?"当前默认":"Default"]}),"ok"===r&&(0,b.jsxs)("span",{style:ay,children:[(0,b.jsx)("span",{style:aD}),"zh"===m?"正常":"Healthy"]}),"checking"===r&&(0,b.jsxs)("span",{style:aA,children:[(0,b.jsx)(u.Loader2,{size:11,strokeWidth:2.4,style:{animation:"spin 1s linear infinite"}}),"zh"===m?"连接中":"Checking"]}),"failed"===r&&(0,b.jsxs)("span",{style:aB,children:[(0,b.jsx)(v.XCircle,{size:11,strokeWidth:2.4}),"zh"===m?"Key 已失效":"Key invalid"]}),"unconfigured"===r&&(0,b.jsx)("span",{style:az,children:"zh"===m?"未设置 Key":"No key"}),d&&(0,b.jsx)("span",{style:aC,children:"zh"===m?"系统默认":"System"})]}),(0,b.jsxs)("div",{style:aE,children:[(0,b.jsxs)("span",{style:aF,children:[(0,b.jsx)("span",{style:aG,children:"Provider"}),(0,b.jsx)("span",{style:{...aH,fontFamily:"var(--font-mono)",fontSize:12},children:p.label})]}),(0,b.jsx)("span",{style:aI}),(0,b.jsxs)("span",{style:aF,children:[(0,b.jsx)("span",{style:aG,children:"Model"}),(0,b.jsx)("span",{style:{...aH,fontFamily:"var(--font-mono)",fontSize:12},children:a.model||"—"})]}),a.baseUrl&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:aI}),(0,b.jsxs)("span",{style:aF,children:[(0,b.jsx)("span",{style:aG,children:"Base URL"}),(0,b.jsx)("span",{style:{...aH,fontFamily:"var(--font-mono)",fontSize:12},title:a.baseUrl,children:a.baseUrl})]})]})]}),(0,b.jsxs)("div",{style:aJ,children:[(0,b.jsx)(i.Key,{size:12,strokeWidth:2.2,style:{color:"var(--primary)"}}),a.apiKey?(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:12},children:a.apiKey}):(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",fontSize:12},children:"zh"===m?"(未设置)":"(not set)"})]})]}),(0,b.jsxs)("div",{style:aK,children:[c?(0,b.jsxs)("button",{style:aO,disabled:!0,children:[(0,b.jsx)(n.CircleCheck,{size:13,strokeWidth:2.4}),"zh"===m?"当前使用":"In use"]}):(0,b.jsxs)("button",{style:aN,onClick:f,children:[(0,b.jsx)(l.Check,{size:13,strokeWidth:2.2}),"zh"===m?"设为默认":"Set default"]}),!d&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{style:aN,onClick:g,children:[(0,b.jsx)(j.Pencil,{size:13,strokeWidth:2.2}),"zh"===m?"编辑":"Edit"]}),(0,b.jsxs)("button",{style:aP,onClick:h,children:[(0,b.jsx)(k.Trash2,{size:13,strokeWidth:2.2}),"zh"===m?"删除":"Delete"]})]})]})]})}function L({active:a,providerKinds:c,registeredCount:d,locale:e}){return(0,b.jsxs)("section",{style:ad,children:[(0,b.jsxs)("header",{style:ae,children:[(0,b.jsx)(p,{size:13,strokeWidth:2.2,style:{color:"var(--primary)"}}),(0,b.jsx)("span",{children:"zh"===e?"当前默认":"Current Default"})]}),a?(0,b.jsxs)("ul",{style:af,children:[(0,b.jsx)(O,{label:"zh"===e?"名称":"Name",value:a.name,bold:!0}),(0,b.jsx)(O,{label:"Provider",value:a.provider,mono:!0}),(0,b.jsx)(O,{label:"Model",value:a.model||"—",mono:!0}),a.baseUrl&&(0,b.jsx)(O,{label:"Base URL",value:a.baseUrl,mono:!0,ellipsis:!0}),(0,b.jsx)(O,{label:"zh"===e?"已注册":"Registered",value:`${d} / 32`}),(0,b.jsx)(O,{label:"zh"===e?"供应商种类":"Providers",value:String(c)})]}):(0,b.jsx)("div",{style:{padding:"4px 0",fontSize:12,color:"var(--foreground-muted)"},children:"zh"===e?"尚未选定默认模型。":"No default selected."})]})}function M({configs:a,healthMap:c,isRechecking:d,onRecheck:e,locale:f}){return(0,b.jsxs)("section",{style:ad,children:[(0,b.jsxs)("header",{style:ae,children:[(0,b.jsx)(q,{size:13,strokeWidth:2.2,style:{color:"var(--success)"}}),(0,b.jsx)("span",{children:"zh"===f?"健康检查":"Health Check"})]}),0===a.length?(0,b.jsx)("div",{style:{padding:"4px 0",fontSize:12,color:"var(--foreground-muted)"},children:"zh"===f?"暂无模型可检查。":"No models to check."}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("ul",{style:{display:"flex",flexDirection:"column",gap:8,padding:0,margin:0,listStyle:"none"},children:a.map(a=>{let d=c[a.id]??G(a);return(0,b.jsxs)("li",{style:ag,children:[(0,b.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:a.model||a.name,children:a.model||a.name}),(0,b.jsx)(Q,{state:d,locale:f})]},a.id)})}),(0,b.jsxs)("button",{style:ah,onClick:e,disabled:d,children:[(0,b.jsx)(t.RefreshCw,{size:12,strokeWidth:2.2,style:d?{animation:"spin 1s linear infinite"}:void 0}),d?"zh"===f?"检查中…":"Checking…":"zh"===f?"重新检查":"Re-check"]})]})]})}function N({locale:a}){return(0,b.jsxs)("section",{style:ad,children:[(0,b.jsxs)("header",{style:ae,children:[(0,b.jsx)(r.BookOpen,{size:13,strokeWidth:2.2,style:{color:"var(--foreground-secondary)"}}),(0,b.jsx)("span",{children:"zh"===a?"相关文档":"Related Docs"})]}),(0,b.jsx)("ul",{style:{display:"flex",flexDirection:"column",gap:2,padding:0,margin:0,listStyle:"none"},children:("zh"===a?[{label:"如何获取 API Key",href:"#"},{label:"密钥加密与轮转策略",href:"#"},{label:"模型注册最佳实践",href:"#"}]:[{label:"How to obtain an API Key",href:"#"},{label:"Key encryption & rotation",href:"#"},{label:"Model registry best practices",href:"#"}]).map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("a",{href:a.href,style:ai,children:[(0,b.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.label}),(0,b.jsx)(s.ExternalLink,{size:12,strokeWidth:2,style:{color:"var(--foreground-muted)",flexShrink:0}})]})},a.label))})]})}function O({label:a,value:c,mono:d,bold:e,ellipsis:f}){return(0,b.jsxs)("li",{style:{display:"flex",alignItems:"center",gap:12,padding:"5px 0",borderBottom:"1px dashed var(--border)",minWidth:0},children:[(0,b.jsx)("span",{style:{fontSize:11.5,color:"var(--foreground-muted)",flexShrink:0},children:a}),(0,b.jsx)("span",{style:{flex:1,minWidth:0,textAlign:"right",fontSize:12,color:"var(--foreground)",fontWeight:e?600:500,fontFamily:d?"var(--font-mono)":"inherit",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:f?c:void 0,children:c})]})}function P({slug:a,initials:c,size:e=36,radius:f=10}){let[g,h]=(0,d.useState)("color");(0,d.useEffect)(()=>{h("color")},[a]);let i="failed"===g?void 0:function(a,b="color"){if(a)return`https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@latest/icons/${a}${"color"===b?"-color":""}.svg`}(a,g),j=!!i;return(0,b.jsx)("div",{style:{...au,width:e,height:e,borderRadius:f,fontSize:Math.round(.32*e),background:j?"#ffffff":"var(--background-secondary)",padding:j?Math.round(.16*e):0,color:"var(--foreground)"},children:j?(0,b.jsx)("img",{src:i,alt:c,onError:()=>h("color"===g?"plain":"failed"),style:{width:"100%",height:"100%",objectFit:"contain"},loading:"lazy"}):c})}function Q({state:a,locale:c}){return"ok"===a?(0,b.jsxs)("span",{style:ay,children:[(0,b.jsx)(n.CircleCheck,{size:11,strokeWidth:2.4}),"zh"===c?"正常":"OK"]}):"checking"===a?(0,b.jsxs)("span",{style:aA,children:[(0,b.jsx)(u.Loader2,{size:11,strokeWidth:2.4,style:{animation:"spin 1s linear infinite"}}),"zh"===c?"检测中":"Checking"]}):"failed"===a?(0,b.jsxs)("span",{style:aB,children:[(0,b.jsx)(v.XCircle,{size:11,strokeWidth:2.4}),"zh"===c?"失效":"Failed"]}):(0,b.jsx)("span",{style:az,children:"zh"===c?"未配置":"No key"})}function R({locale:a,hasConfigs:c,onAdd:d,onReset:f}){return(0,b.jsxs)("div",{style:aU,children:[(0,b.jsx)("div",{style:aV,children:(0,b.jsx)(h,{size:20})}),(0,b.jsx)("div",{style:{fontSize:13.5,color:"var(--foreground)",fontWeight:500,marginBottom:4},children:c?"zh"===a?"没有匹配的模型":"No matching models":"zh"===a?"尚未注册任何模型":"No models registered yet"}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginBottom:14,textAlign:"center",maxWidth:360},children:c?"zh"===a?"试试调整搜索关键字或筛选条件。":"Try a different keyword or filter.":"zh"===a?"注册首个 LLM 后即可在评测、优化、对比中使用。":"Register your first LLM to use it for evaluation, optimization and comparison."}),c?(0,b.jsx)("button",{style:aN,onClick:f,children:"zh"===a?"清除筛选":"Reset filters"}):(0,b.jsxs)("button",{style:aL,onClick:d,children:[(0,b.jsx)(e.Plus,{size:14,strokeWidth:2.4}),"zh"===a?"注册首个模型":"Register your first model"]})]})}function S({onPick:a,onCancel:c,locale:e}){let[g,h]=(0,d.useState)(""),[i,j]=(0,d.useState)("all"),k=(0,d.useMemo)(()=>{let a=g.trim().toLowerCase();return A.filter(b=>("all"===i||b.category===i)&&(!a||b.label.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)||b.defaultModel.toLowerCase().includes(a)||b.suggestedModels.some(b=>b.toLowerCase().includes(a))))},[g,i]),l=(0,d.useMemo)(()=>{let a={};for(let b of k)a[b.category]||(a[b.category]=[]),a[b.category].push(b);return a},[k]),m=(0,d.useMemo)(()=>{let a={all:A.length};for(let b of A)a[b.category]=(a[b.category]||0)+1;return a},[]);return(0,b.jsxs)("div",{style:aQ,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",marginBottom:16,gap:16},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.01em"},children:"zh"===e?"选择模型供应商":"Choose a Model Provider"}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginTop:3},children:"zh"===e?"挑选预置供应商即可自动填写 Base URL 与默认模型,下一步只需录入 API Key。":"Pick a built-in provider — Base URL and default model auto-fill. You only need to paste an API key next."})]}),(0,b.jsx)("button",{style:aN,onClick:c,children:"zh"===e?"返回列表":"Back to list"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:14,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{style:{...ao,width:280},children:[(0,b.jsx)(f.Search,{size:14,strokeWidth:2,style:{position:"absolute",left:11,top:"50%",transform:"translateY(-50%)",color:"var(--foreground-muted)"}}),(0,b.jsx)("input",{type:"text",placeholder:"zh"===e?"搜索供应商 / 模型":"Search provider / model",value:g,onChange:a=>h(a.target.value),style:ap})]}),(0,b.jsxs)("div",{style:aq,children:[(0,b.jsx)(J,{active:"all"===i,onClick:()=>j("all"),count:m.all,children:"zh"===e?"全部":"All"}),C.map(a=>(0,b.jsx)(J,{active:i===a.id,onClick:()=>j(a.id),count:m[a.id]||0,children:"zh"===e?a.labelZh:a.labelEn},a.id))]})]}),0===k.length?(0,b.jsx)("div",{style:{padding:"40px 0",textAlign:"center",fontSize:13,color:"var(--foreground-muted)"},children:"zh"===e?"没有匹配的供应商。":"No matching provider."}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:22},children:C.map(c=>{let d=l[c.id];return d&&0!==d.length?(0,b.jsxs)("section",{children:[(0,b.jsxs)("div",{style:aj,children:[(0,b.jsx)("span",{children:"zh"===e?c.labelZh:c.labelEn}),(0,b.jsx)("span",{style:ac,children:d.length})]}),(0,b.jsx)("div",{style:ak,children:d.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a(c),style:al,className:"provider-pick-card",children:[(0,b.jsx)(P,{slug:c.logoSlug,initials:c.initials,size:36,radius:9}),(0,b.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,b.jsx)("div",{style:{fontSize:13.5,fontWeight:600,color:"var(--foreground)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c.label}),(0,b.jsx)("div",{style:{marginTop:3,fontSize:11.5,color:"var(--foreground-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:c.suggestedModels.join(" · ")||c.defaultModel,children:c.suggestedModels.slice(0,3).join(" · ")||c.defaultModel||("zh"===e?"自填模型":"Custom model")})]})]},c.id))})]},c.id):null})})]})}function T({config:a,setConfig:c,onCancel:d,onReselect:e,onSave:f,isSaving:g,isDefault:h,pickedProvider:i,locale:j}){return(0,b.jsxs)("div",{style:aQ,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",marginBottom:18,gap:16},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,minWidth:0},children:[i&&(0,b.jsx)(P,{slug:i.logoSlug,initials:i.initials,size:40,radius:10}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsx)("div",{style:{fontSize:15,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.01em"},children:"new"===a.id?i?i.label:"zh"===j?"新增模型":"New Model":"zh"===j?"编辑模型":"Edit Model"}),(0,b.jsx)("div",{style:{fontSize:12,color:"var(--foreground-muted)",marginTop:3},children:i?.note?i.note:"zh"===j?"保存前会自动测试连接,连通后才会写入。":"Connection is tested before saving."})]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:8,flexShrink:0},children:[e&&(0,b.jsx)("button",{style:aN,onClick:e,children:"zh"===j?"← 选择其它供应商":"← Choose other provider"}),(0,b.jsx)("button",{style:aN,onClick:d,children:"zh"===j?"返回列表":"Back to list"})]})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"14px 18px"},children:[(0,b.jsx)(U,{label:"zh"===j?"配置名称":"Config Name",children:(0,b.jsx)("input",{style:aR,placeholder:"zh"===j?"例如:我的 DeepSeek":"e.g. My DeepSeek",value:a.name||"",disabled:h,onChange:b=>c({...a,name:b.target.value})})}),(0,b.jsx)(U,{label:"zh"===j?"供应商":"Provider",children:(0,b.jsxs)("select",{style:aR,value:a.provider,disabled:h,onChange:b=>{var d;let e;return e=D[d=b.target.value],void c({...a,provider:d,baseUrl:e.baseUrl||a.baseUrl,model:e.model||a.model})},children:[(0,b.jsx)("option",{value:"deepseek-official",children:"DeepSeek (Official)"}),(0,b.jsx)("option",{value:"siliconflow",children:"SiliconFlow"}),(0,b.jsx)("option",{value:"openai",children:"OpenAI"}),(0,b.jsx)("option",{value:"anthropic",children:"Anthropic"}),(0,b.jsx)("option",{value:"custom",children:"Custom (OpenAI Compatible)"})]})}),(0,b.jsx)(U,{label:"Base URL",children:(0,b.jsx)("input",{style:aR,placeholder:"https://api.deepseek.com",value:a.baseUrl||"",disabled:h,onChange:b=>c({...a,baseUrl:b.target.value.replace(/\/chat\/completions\/?$/,"")})})}),(0,b.jsxs)(U,{label:"zh"===j?"模型名":"Model Name",children:[(0,b.jsx)("input",{style:aR,placeholder:"deepseek-chat / gpt-4o / ...",value:a.model||"",disabled:h,onChange:b=>c({...a,model:b.target.value})}),i&&i.suggestedModels.length>0&&(0,b.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:5,marginTop:7},children:i.suggestedModels.slice(0,6).map(d=>(0,b.jsx)("button",{type:"button",onClick:()=>c({...a,model:d}),style:{...am,background:a.model===d?"var(--primary-subtle)":"var(--background-secondary)",color:a.model===d?"var(--primary)":"var(--foreground-secondary)",borderColor:a.model===d?"var(--primary-subtle-border)":"var(--border)"},children:d},d))})]}),(0,b.jsx)("div",{style:{gridColumn:"1 / -1"},children:(0,b.jsxs)(U,{label:"zh"===j?"API 密钥":"API Key",children:[(0,b.jsx)("input",{style:{...aR,fontFamily:"var(--font-mono, ui-monospace, monospace)"},type:"text",placeholder:"sk-...",value:a.apiKey||"",disabled:h,onChange:b=>c({...a,apiKey:b.target.value})}),(a.apiKey||"").includes("•")&&(0,b.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--foreground-muted)"},children:"zh"===j?"出于安全考虑仅显示掩码。保持不变则沿用原 Key;如需更换请清空后输入新 Key。":"Masked for security. Leave unchanged to keep the current key; clear and type a new key to replace it."}),i?.docsUrl&&(0,b.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--foreground-muted)"},children:(0,b.jsxs)("a",{href:i.docsUrl,target:"_blank",rel:"noreferrer",style:{color:"var(--primary)",textDecoration:"none",display:"inline-flex",alignItems:"center",gap:4},children:["zh"===j?"如何获取 API Key":"How to obtain an API Key",(0,b.jsx)(s.ExternalLink,{size:11,strokeWidth:2})]})})]})})]}),(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:20},children:[(0,b.jsx)("button",{style:aN,onClick:d,children:"zh"===j?"取消":"Cancel"}),!h&&(0,b.jsx)("button",{style:g?aM:aL,disabled:g,onClick:f,children:g?"zh"===j?"测试并保存中…":"Testing & Saving…":"zh"===j?"测试连接并保存":"Test & Save"})]})]})}function U({label:a,children:c}){return(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontSize:11.5,fontWeight:500,color:"var(--foreground-secondary)",marginBottom:6,letterSpacing:"0.01em"},children:a}),c]})}let V={flex:1,minHeight:0,overflowY:"auto",padding:"24px 28px 40px",width:"100%"},W={maxWidth:1320,margin:"0 auto"},X={display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:24,marginBottom:22},Y={margin:0,fontSize:13,lineHeight:1.65,color:"var(--foreground-secondary)",maxWidth:720},Z={color:"var(--foreground)",fontWeight:600},$={display:"grid",gridTemplateColumns:"minmax(0, 1fr) 300px",gap:22,alignItems:"flex-start"},_={minWidth:0,display:"flex",flexDirection:"column",gap:14},aa={display:"flex",flexDirection:"column",gap:14,position:"sticky",top:0},ab={display:"flex",alignItems:"center",gap:8,padding:"2px 2px 6px",borderBottom:"1px solid var(--border)"},ac={display:"inline-flex",alignItems:"center",padding:"1px 8px",fontSize:11,fontWeight:600,fontFamily:"var(--font-mono)",color:"var(--foreground-secondary)",background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:999,lineHeight:1.5},ad={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,padding:"14px 16px 12px",display:"flex",flexDirection:"column",gap:10},ae={display:"flex",alignItems:"center",gap:7,fontSize:13,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.005em",paddingBottom:8,borderBottom:"1px solid var(--border)"},af={display:"flex",flexDirection:"column",padding:0,margin:0,listStyle:"none"},ag={display:"flex",alignItems:"center",gap:10,padding:"5px 0",minWidth:0},ah={width:"100%",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,padding:"7px 10px",marginTop:4,background:"var(--card-bg)",color:"var(--foreground-secondary)",border:"1px solid var(--border)",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all .12s ease"},ai={display:"flex",alignItems:"center",gap:8,padding:"7px 8px",fontSize:12.5,color:"var(--foreground-secondary)",textDecoration:"none",borderRadius:6,transition:"background .1s"},aj={display:"flex",alignItems:"center",gap:8,marginBottom:10,fontSize:12,fontWeight:600,color:"var(--foreground-secondary)",textTransform:"uppercase",letterSpacing:"0.08em"},ak={display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:10},al={display:"flex",alignItems:"center",gap:12,padding:"11px 12px",background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:10,cursor:"pointer",textAlign:"left",fontFamily:"inherit",transition:"all .12s ease",minWidth:0},am={padding:"3px 10px",fontSize:11,fontFamily:"var(--font-mono)",border:"1px solid var(--border)",borderRadius:999,cursor:"pointer",transition:"all .12s",lineHeight:1.5},an={display:"flex",alignItems:"center",gap:14,marginBottom:14,flexWrap:"wrap"},ao={position:"relative",width:280},ap={width:"100%",height:34,padding:"0 12px 0 32px",border:"1px solid var(--input-border)",borderRadius:8,background:"var(--input-bg)",fontSize:12.5,color:"var(--foreground)",outline:"none"},aq={display:"inline-flex",flexWrap:"wrap",gap:6},ar={padding:"6px 12px",fontSize:12,fontWeight:500,borderRadius:6,cursor:"pointer",fontFamily:"inherit",display:"inline-flex",alignItems:"center",gap:6,whiteSpace:"nowrap",lineHeight:1.4},as={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,padding:"18px 22px",display:"grid",gridTemplateColumns:"auto 1fr auto",gap:22,alignItems:"center",transition:"all .15s ease",position:"relative",overflow:"hidden"},at={position:"absolute",left:0,top:0,bottom:0,width:3,background:"var(--primary)"},au={width:48,height:48,borderRadius:12,background:"var(--background-secondary)",border:"1px solid var(--card-border)",display:"grid",placeItems:"center",fontWeight:600,fontSize:14,color:"var(--foreground-secondary)",letterSpacing:"0.02em",flexShrink:0},av={fontSize:16,fontWeight:600,color:"var(--foreground)",letterSpacing:"-0.01em"},aw={display:"inline-flex",alignItems:"center",gap:4,padding:"2px 8px",fontSize:10.5,fontWeight:600,borderRadius:999,lineHeight:1.5,letterSpacing:"0.01em"},ax={...aw,background:"var(--primary)",color:"var(--primary-foreground)"},ay={...aw,background:"var(--success-subtle)",color:"var(--success)"},az={...aw,background:"var(--warning-subtle)",color:"var(--warning)"},aA={...aw,background:"var(--primary-subtle)",color:"var(--primary)"},aB={...aw,background:"var(--error-subtle)",color:"var(--error)"},aC={...aw,background:"var(--background-secondary)",color:"var(--foreground-secondary)",border:"1px solid var(--border)"},aD={width:5,height:5,background:"var(--success)",borderRadius:"50%"},aE={display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",marginBottom:10,fontSize:12.5,color:"var(--foreground-secondary)"},aF={display:"inline-flex",alignItems:"center",gap:6,minWidth:0},aG={fontSize:10.5,fontWeight:500,color:"var(--foreground-muted)",textTransform:"uppercase",letterSpacing:"0.06em"},aH={color:"var(--foreground)",fontWeight:500,maxWidth:280,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},aI={width:1,height:11,background:"var(--border)"},aJ={display:"inline-flex",alignItems:"center",gap:8,padding:"5px 10px",background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:7,color:"var(--foreground-secondary)",maxWidth:"fit-content"},aK={display:"flex",alignItems:"center",gap:6,paddingLeft:16,borderLeft:"1px dashed var(--border)"},aL={display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",background:"var(--primary)",color:"var(--primary-foreground)",border:"none",borderRadius:8,fontSize:12.5,fontWeight:500,cursor:"pointer",transition:"background .12s ease",lineHeight:1.4},aM={...aL,opacity:.6,cursor:"not-allowed"},aN={display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",background:"var(--card-bg)",color:"var(--foreground-secondary)",borderWidth:1,borderStyle:"solid",borderColor:"var(--border)",borderRadius:7,fontSize:12,fontWeight:500,cursor:"pointer",transition:"all .12s ease",lineHeight:1.4},aO={...aN,background:"var(--success-subtle)",color:"var(--success)",borderColor:"var(--success-subtle-border)",cursor:"default"},aP={...aN,color:"var(--foreground-secondary)"},aQ={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,padding:"22px 26px"},aR={width:"100%",padding:"8px 10px",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:7,color:"var(--foreground)",fontSize:12.5,outline:"none"},aS={marginTop:24,padding:"14px 18px",border:"1px dashed var(--border-dark)",borderRadius:10,background:"var(--background-secondary)",display:"flex",alignItems:"center",gap:12},aT={width:30,height:30,borderRadius:8,background:"var(--primary-subtle)",color:"var(--primary)",display:"grid",placeItems:"center",flexShrink:0},aU={padding:"40px 24px",background:"var(--card-bg)",border:"1px dashed var(--border-dark)",borderRadius:12,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},aV={width:44,height:44,borderRadius:10,background:"var(--background-secondary)",color:"var(--foreground-muted)",display:"grid",placeItems:"center",marginBottom:12};var aW=a.i(960798);function aX(){let{t:a}=(0,y.useLocale)();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.AppTopBar,{title:(0,b.jsx)(aW.Term,{id:"model-registry",label:a("nav.modelRegistry")})}),(0,b.jsx)(H,{})]})}a.s(["default",()=>aX],685260)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_%28main%29_modelconfig_registry_page_tsx_1ead2fd4._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[75803,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(164831);let f=(0,e.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);var g=a.i(875160),h=a.i(729936),i=a.i(960798),j=a.i(106927),k=a.i(943408),l=a.i(575110);let m=["1d","1w","1m"];function n({agents:a,value:c,onChange:d,skills:e}){let{t:f}=(0,j.useLocale)(),g={"1d":f("quality.config.day"),"1w":f("quality.config.week"),"1m":f("quality.config.month")};return(0,b.jsxs)("section",{style:{display:"flex",alignItems:"center",gap:24,flexWrap:"wrap",background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",padding:"12px 18px",marginBottom:14},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,b.jsx)("span",{style:{fontSize:11,fontWeight:700,color:"var(--foreground-muted)"},children:f("quality.config.agent")}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("select",{value:c.agent,onChange:a=>d({agent:a.target.value}),style:{appearance:"none",WebkitAppearance:"none",border:"1px solid var(--border)",background:"var(--background)",borderRadius:8,padding:"7px 28px 7px 11px",fontSize:12.5,fontWeight:700,color:"var(--foreground)",cursor:"pointer",outline:"none",minWidth:150},children:[!c.agent&&(0,b.jsx)("option",{value:"",children:f("quality.config.selectAgent")}),a.map(a=>(0,b.jsxs)("option",{value:a.name,children:[a.name,null!=a.traceCount?` (${a.traceCount})`:""]},a.name))]}),(0,b.jsx)("span",{style:{position:"absolute",right:9,top:"50%",transform:"translateY(-50%)",fontSize:9,color:"var(--foreground-muted)",pointerEvents:"none"},children:"▾"})]})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,b.jsx)("span",{style:{fontSize:11,fontWeight:700,color:"var(--foreground-muted)"},children:f("quality.config.timeRange")}),(0,b.jsx)("div",{style:{display:"inline-flex",background:"var(--background-secondary)",borderRadius:9,padding:3},children:m.map(a=>{let e=c.window===a;return(0,b.jsx)("button",{onClick:()=>d({window:a}),style:{border:"none",background:e?"var(--background)":"transparent",color:e?"var(--primary)":"var(--foreground-secondary)",fontWeight:e?700:600,fontSize:12,padding:"6px 13px",borderRadius:7,cursor:"pointer",boxShadow:e?"0 1px 2px rgba(20,22,30,.08)":"none"},children:g[a]},a)})})]}),(0,b.jsx)(o,{label:f("quality.config.skill"),value:c.skill,onChange:a=>d({skill:a}),options:[{value:"all",label:f("quality.config.all")},...e.map(a=>({value:a,label:a}))]}),(0,b.jsx)(o,{label:f("quality.config.status"),value:c.status,onChange:a=>d({status:a}),options:[{value:"all",label:f("quality.config.all")},{value:"达标",label:f("quality.status.达标")},{value:"关注",label:f("quality.status.关注")},{value:"异常",label:f("quality.status.异常")}]}),(0,b.jsx)("div",{style:{flex:1,minWidth:40}})]})}function o({label:a,value:c,onChange:d,options:e}){let f="all"!==c;return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:11,color:"var(--foreground-muted)"},children:a}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsx)("select",{value:c,onChange:a=>d(a.target.value),style:{appearance:"none",WebkitAppearance:"none",border:"1px solid var(--border)",borderRadius:7,padding:"5px 22px 5px 9px",fontSize:12,fontWeight:f?600:400,background:f?"var(--primary-subtle)":"var(--background)",color:f?"var(--primary)":"var(--foreground-secondary)",cursor:"pointer",outline:"none"},children:e.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,b.jsx)("span",{style:{position:"absolute",right:7,top:"50%",transform:"translateY(-50%)",fontSize:8,color:"var(--foreground-muted)",pointerEvents:"none"},children:"▾"})]})]})}var p=a.i(986708);let q=(0,e.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var r=a.i(924613),s=a.i(100842);function t(a){return a>=85?"var(--success)":a>=70?"var(--warning)":"var(--error)"}function u(a){return"high"===a?"var(--error)":"medium"===a?"var(--warning)":"var(--foreground-muted)"}let v={agent逻辑:{bg:"var(--primary-subtle)",fg:"var(--primary)"},模型能力:{bg:"color-mix(in srgb, var(--primary) 10%, transparent)",fg:"var(--primary)"},"工具&infra":{bg:"var(--warning-subtle)",fg:"var(--warning)"},外部输入:{bg:"var(--success-subtle)",fg:"var(--success)"}};function w(a,b=1){return null!=a&&Number.isFinite(a)?(Math.round(a*10**b)/10**b).toString():"—"}let x={planning:"Planning·规划",action:"Action·执行",memory:"Memory·记忆",reflection:"Reflection·反思",system:"System·环境",others:"其他"},y=["var(--primary)","var(--warning)","#2c6bd1","var(--success)","var(--foreground-muted)","var(--error)"];function z({report:a,onDrillTrace:c,onAnchor:d}){var e;let{t:f}=(0,j.useLocale)(),{composite:g,meta:h,dimensions:k,problems:l,coverage:m,trend:n}=a,o=n.buckets.filter(a=>a.n_traces>0),q=o.length>=2?Math.round((o[o.length-1].composite-o[0].composite)*10)/10:null,u=m.total?Math.round(m.judged/m.total*100):0,v=u<30,x=h.lowSample?"var(--foreground-muted)":t(g.score),y=[[f("quality.dim.result"),k.result],[f("quality.dim.process"),k.process],[f("quality.dim.cost"),k.cost]].filter(([,a])=>a.coverage>0).sort((a,b)=>a[1].score-b[1].score)[0],z=l.slice(0,3),D=a.problemCounts.errorEvents,E=a.problemCounts.error,F=a.problemCounts.eval,G=a.problemCounts.total;return(0,b.jsx)("section",{id:"verdict",style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",marginBottom:14,scrollMarginTop:56,padding:"18px 20px"},children:(0,b.jsxs)("div",{style:{display:"flex",gap:24,flexWrap:"wrap",alignItems:"stretch"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,minWidth:200,flex:"0 0 auto",justifyContent:"center"},children:[(0,b.jsxs)("div",{style:{fontSize:10.5,color:"var(--foreground-muted)",fontWeight:600,display:"flex",alignItems:"center",gap:4},children:[f("quality.summary.composite"),(0,b.jsx)(i.Term,{id:"quality-composite-score",render:"compact"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8},children:[(0,b.jsx)("span",{style:{fontSize:40,fontWeight:800,letterSpacing:"-0.02em",lineHeight:1,color:x},children:w(g.score)}),(0,b.jsx)("span",{style:{fontSize:13,color:"var(--foreground-muted)",fontWeight:600},children:"/100"}),null!=q&&(0,b.jsxs)("span",{title:f("quality.hero.windowTrend"),style:{fontSize:12,fontWeight:700,color:q>=0?"var(--success)":"var(--error)"},children:[q>=0?"▲":"▼"," ",w(Math.abs(q))]})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"},children:[(0,b.jsx)(s.StatusBadge,{status:"达标"===(e=g.status)?"success":"关注"===e?"warning":"error",label:f(`quality.status.${g.status}`)}),g.capped&&(0,b.jsx)(s.StatusBadge,{status:"error",variant:"outline",label:f("quality.summary.capped")})]}),(0,b.jsxs)("div",{style:{fontSize:10.5,lineHeight:1.5,display:"flex",alignItems:"center",gap:4},children:[h.lowSample?(0,b.jsxs)("span",{style:{color:"var(--warning)",fontWeight:700},children:["⚠ ",f("quality.hero.lowSampleTag")]}):(0,b.jsxs)("span",{style:{color:v?"var(--warning)":"var(--foreground-muted)"},children:[v?`${f("quality.hero.deterministicTag")} \xb7 `:"",f("quality.hero.judgeCoverage")," ",u,"%"]}),(0,b.jsx)(i.Term,{id:v?"quality-deterministic-baseline":"quality-eval-coverage",render:"compact"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:10,marginTop:2,alignItems:"flex-start"},children:[(0,b.jsx)(B,{tag:"P0",v:g.p0,tone:"var(--error)"}),(0,b.jsx)(B,{tag:"P1",v:g.p1,tone:"var(--warning)"}),(0,b.jsx)(B,{tag:"P2",v:g.p2,tone:"var(--foreground-muted)"}),(0,b.jsx)(i.Term,{id:"quality-priority-tiers",render:"compact"})]})]}),(0,b.jsxs)("div",{style:{flex:"1 1 320px",minWidth:280,display:"flex",flexDirection:"column",gap:10},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)(p.Sparkles,{size:13,style:{color:"var(--primary)"}}),(0,b.jsx)("span",{style:{fontSize:12,fontWeight:800},children:f("quality.hero.verdictLabel")})]}),(0,b.jsxs)("div",{style:{borderLeft:"3px solid var(--primary)",paddingLeft:12,fontSize:12.5,lineHeight:1.7,color:"var(--foreground)",display:"flex",flexDirection:"column",gap:3},children:[(0,b.jsxs)("span",{children:[(0,b.jsxs)("b",{style:{fontWeight:800},children:["整体处于「",f(`quality.status.${g.status}`),"」区间"]}),g.capped&&(0,b.jsx)("span",{style:{color:"var(--error)",fontWeight:700},children:"(安全护栏命中,综合分已硬降级)"})]}),(0,b.jsx)("span",{children:y?(0,b.jsxs)(b.Fragment,{children:["瓶颈集中在 ",(0,b.jsxs)("span",{style:{color:"var(--warning)",fontWeight:700},children:[y[0],"(",w(y[1].score),")"]})]}):(0,b.jsx)(b.Fragment,{children:"各维覆盖有限,建议先补足评测覆盖率"})}),z[0]&&(0,b.jsx)("span",{style:{color:"var(--foreground-secondary)"},children:"优先治理右侧 Top 问题,预计能最快抬升综合分"})]}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11.5,color:"var(--foreground-secondary)",borderTop:"1px solid var(--border)",paddingTop:10,marginTop:2},children:[(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,flexWrap:"wrap"},children:[f("quality.summary.evaluated")," ",(0,b.jsx)("b",{style:{color:"var(--foreground)"},children:h.n})," ",f("quality.summary.times")," · ",f("quality.summary.passRate")," ",(0,b.jsxs)("b",{style:{color:"var(--foreground)"},children:[w(h.passRate),"%"]}),(0,b.jsx)(i.Term,{id:"quality-pass-rate",render:"compact"})]}),(0,b.jsxs)("span",{children:[f("quality.summary.errors")," ",(0,b.jsx)("b",{style:{color:D?"var(--error)":"var(--foreground)"},children:D})," ",f("quality.summary.times")," · ",f("quality.summary.clusters")," ",(0,b.jsx)("b",{style:{color:"var(--foreground)"},children:E})," ",f("quality.summary.classes"),F>0&&(0,b.jsxs)(b.Fragment,{children:[" · ",f("quality.summary.evalIssues")," ",(0,b.jsx)("b",{style:{color:"var(--foreground)"},children:F})," ",f("quality.summary.itemsUnit")]})]})]})]}),(0,b.jsxs)("div",{style:{flex:"1 1 340px",minWidth:300,display:"flex",flexDirection:"column",gap:6},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7},children:[(0,b.jsx)(r.Wrench,{size:13,style:{color:"var(--error)"}}),(0,b.jsx)("span",{style:{fontSize:12,fontWeight:800},children:f("quality.hero.fixFirst")}),(0,b.jsx)("span",{style:{flex:1}}),G>0&&(0,b.jsxs)("button",{onClick:()=>d("problems"),style:C,children:[f("quality.hero.viewAll")," ",G," ",f("quality.hero.problemsUnit")," ↓"]})]}),0===z.length?(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--foreground-muted)",padding:"14px 0"},children:f("quality.hero.noProblems")}):z.map((a,d)=>(0,b.jsx)(A,{rank:d+1,p:a,meta:h,t:f,onDrillTrace:c},a.key))]})]})})}function A({rank:a,p:c,meta:d,t:e,onDrillTrace:f}){let g=v[c.attribution],h=function(a,b){if(!a.relatedTraces.length||!b.n)return null;let c=Math.min(a.relatedTraces.length/b.n*100,Math.max(0,100-b.passRate));return c<.05?null:`+${c<1?c.toFixed(1):Math.round(c)}pp`}(c,d);return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",border:"1px solid var(--border)",borderRadius:9,background:"var(--background)"},children:[(0,b.jsx)("span",{style:{fontSize:11,fontWeight:800,color:u(c.severity),width:14,flex:"0 0 14px"},children:a}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsx)("div",{style:{fontSize:11.5,fontWeight:700,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c.desc}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:3,flexWrap:"wrap"},children:[(0,b.jsx)("span",{style:{fontSize:9,fontWeight:700,padding:"1px 5px",borderRadius:4,background:"错误"===c.source?"var(--error-subtle)":"var(--primary-subtle)",color:"错误"===c.source?"var(--error)":"var(--primary)"},children:c.source}),(0,b.jsx)("span",{style:{fontSize:9,fontWeight:600,padding:"1px 5px",borderRadius:4,background:g.bg,color:g.fg},children:c.attribution}),(0,b.jsxs)("span",{style:{fontSize:10,color:"var(--foreground-muted)"},children:[c.frequency," 次"]}),h&&(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:2,fontSize:10,fontWeight:700,color:"var(--success)"},children:[e("quality.hero.expectedGain")," ",h,(0,b.jsx)("sup",{style:{fontSize:8},children:"估"}),(0,b.jsx)(i.Term,{id:"quality-expected-gain",render:"compact"})]})]})]}),(0,b.jsxs)("span",{style:{display:"inline-flex",gap:6,flex:"0 0 auto"},children:[c.skillRef&&(0,b.jsx)("a",{href:`/skill-opt/${encodeURIComponent(c.skillRef.name)}/${c.skillRef.version??0}`,title:`${c.skillRef.name}@v${c.skillRef.version??0} \xb7 ${e("quality.problems.optimize")}`,style:{...C,color:"var(--success)",display:"inline-flex",alignItems:"center"},children:(0,b.jsx)(r.Wrench,{size:12})}),c.relatedTraces.length>0&&(0,b.jsx)("button",{onClick:()=>f(c.relatedTraces[0]),title:e("quality.hero.drill"),style:{...C,display:"inline-flex",alignItems:"center",gap:2},children:(0,b.jsx)(q,{size:13})})]})]})}function B({tag:a,v:c,tone:d}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3,minWidth:52},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,fontSize:9.5,fontWeight:700},children:[(0,b.jsx)("span",{style:{padding:"1px 4px",borderRadius:3,background:"color-mix(in srgb, "+d+" 14%, transparent)",color:d},children:a}),(0,b.jsx)("span",{style:{color:"var(--foreground)"},children:null==c?"N/A":w(c)})]}),(0,b.jsx)("div",{style:{height:4,borderRadius:3,background:"var(--background-secondary)",overflow:"hidden"},children:(0,b.jsx)("span",{style:{display:"block",height:"100%",width:`${c??0}%`,background:d,borderRadius:3}})})]})}let C={border:"none",background:"none",cursor:"pointer",fontSize:10.5,fontWeight:700,color:"var(--primary)",padding:0};var D=a.i(613412),E=a.i(239315);let F=(0,e.default)("coins",[["path",{d:"M13.744 17.736a6 6 0 1 1-7.48-7.48",key:"bq4yh3"}],["path",{d:"M15 6h1v4",key:"11y1tn"}],["path",{d:"m6.134 14.768.866-.5 2 3.464",key:"17snzx"}],["circle",{cx:"16",cy:"8",r:"6",key:"14bfc9"}]]);var G=a.i(390702);let H=(0,e.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),I={result:D.CheckCircle2,process:E.GitBranch,cost:F,error:G.AlertTriangle};function J({report:a,onAnchor:d}){var e;let f,{t:g}=(0,j.useLocale)(),{dimensions:h}=a,k=[{key:"result",name:g("quality.dim.result"),q:g("quality.dim.resultQ"),anchor:"result",score:h.result.coverage?w(h.result.score):"N/A",status:h.result.status,signal:h.result.signal||"",go:g("quality.dim.viewResult")},{key:"process",name:g("quality.dim.process"),q:g("quality.dim.processQ"),anchor:"process",score:w(h.process.score),status:h.process.status,signal:h.process.signal||(e=h.process,(f=e.metrics?.filter(a=>null!=a.score).sort((a,b)=>a.score-b.score)[0])?`${f.label} ${w(f.score)} 偏弱`:"过程信号覆盖有限"),go:g("quality.dim.viewProcess")},{key:"cost",name:g("quality.dim.cost"),q:g("quality.dim.costQ"),anchor:"cost",score:w(h.cost.score),status:h.cost.status,signal:h.cost.signal||"",go:g("quality.dim.viewTrend")},{key:"error",name:g("quality.dim.error"),q:g("quality.dim.errorQ"),anchor:"problems",score:w(h.error.score),status:h.error.status,signal:h.error.signal||"",go:g("quality.dim.viewErrors")}];return(0,b.jsxs)("section",{id:"analysis",style:K,children:[(0,b.jsxs)("div",{style:L,children:[(0,b.jsx)("span",{style:{...M,background:"var(--primary-subtle)",color:"var(--primary)"},children:(0,b.jsx)(p.Sparkles,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:g("quality.analysis.title")}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:g("quality.analysis.hint")})]}),(0,b.jsxs)("div",{style:{padding:"16px 18px"},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--foreground-muted)",marginBottom:14,display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,b.jsx)("span",{children:g("quality.analysis.method")}),[g("quality.dim.result"),g("quality.dim.process"),g("quality.dim.cost"),g("quality.dim.error")].map((a,d)=>(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)("span",{style:{fontWeight:600,color:"var(--foreground-secondary)"},children:(0,b.jsx)("b",{style:{color:"var(--foreground)"},children:a})}),d<3&&(0,b.jsx)("span",{style:{color:"var(--border-dark)"},children:"×"})]},a)),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{fontSize:10.5},children:g("quality.analysis.baseline")})]}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:12},children:k.map(a=>{var c;let e=I[a.key],f=h[a.key],j="result"===a.key&&0===f.coverage,k=j?"var(--foreground-muted)":t(f.score),l=j?"var(--foreground-muted)":"达标"===(c=f.status)?"var(--success)":"关注"===c?"var(--warning)":"var(--error)";return(0,b.jsxs)("button",{onClick:()=>d(a.anchor),style:N,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{...M,width:24,height:24,background:"color-mix(in srgb, "+k+" 13%, transparent)",color:k},children:(0,b.jsx)(e,{size:14})}),(0,b.jsx)("span",{style:{fontSize:12.5,fontWeight:800},children:a.name}),(0,b.jsx)("span",{onClick:a=>a.stopPropagation(),children:(0,b.jsx)(i.Term,{id:`quality-dim-${a.key}`,render:"compact"})}),(0,b.jsx)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)",fontWeight:600,marginLeft:"auto"},children:a.q})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[(0,b.jsx)("span",{style:{fontSize:24,fontWeight:800,letterSpacing:"-0.02em",color:k},children:a.score}),(0,b.jsx)("span",{style:{fontSize:10.5,fontWeight:700,padding:"3px 7px",borderRadius:5,background:"color-mix(in srgb, "+l+" 13%, transparent)",color:l},children:j?g("quality.analysis.na"):g(`quality.status.${f.status}`)}),f.coverage<1&&(0,b.jsxs)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)",marginLeft:"auto"},children:[g("quality.analysis.naCoverage")," ",Math.round(100*f.coverage),"%"]})]}),(0,b.jsx)("div",{style:{fontSize:11,color:"var(--foreground-secondary)",lineHeight:1.5,minHeight:33},children:a.signal}),(0,b.jsxs)("div",{style:{fontSize:11,fontWeight:700,color:"var(--primary)",display:"flex",alignItems:"center",gap:5,marginTop:"auto"},children:[a.go," ",(0,b.jsx)(H,{size:13})]})]},a.key)})})]})]})}let K={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",marginBottom:14,scrollMarginTop:56},L={padding:"13px 18px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},M={width:22,height:22,borderRadius:6,display:"grid",placeItems:"center",flex:"0 0 22px"},N={border:"1px solid var(--border)",borderRadius:10,padding:14,display:"flex",flexDirection:"column",gap:9,background:"var(--card-bg)",cursor:"pointer",textAlign:"left",font:"inherit",color:"inherit"};function O({report:a,collapsed:c,onToggleCollapse:d}){let{t:e}=(0,j.useLocale)(),f=a.dimensions.process.metrics??[];return(0,b.jsxs)("section",{id:"process",style:R,children:[(0,b.jsxs)("div",{style:{...S,cursor:d?"pointer":void 0},onClick:d,children:[(0,b.jsx)("span",{style:{...T,background:"color-mix(in srgb, #2c6bd1 13%, transparent)",color:"#2c6bd1"},children:(0,b.jsx)(E.GitBranch,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:e("quality.process.title")}),(0,b.jsxs)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:["· ",e("quality.process.hint")]}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsxs)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:[e("quality.process.coverage")," ",Math.round(100*a.dimensions.process.coverage),"%"]}),d&&(0,b.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--primary)"},children:c?e("quality.fold.expand")+" ▾":e("quality.fold.collapse")+" ▴"})]}),!c&&(0,b.jsx)("div",{style:{padding:"16px 18px",display:"flex",flexDirection:"column",gap:15},children:f.map(a=>(0,b.jsx)(P,{m:a,t:e},a.key))})]})}function P({m:a,t:c}){let d=null==a.score,e=d?"var(--foreground-muted)":t(a.score);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:9,marginBottom:7},children:[(0,b.jsx)("span",{style:{fontSize:12.5,fontWeight:700},children:a.label}),(0,b.jsx)("span",{style:{fontSize:9,fontWeight:600,padding:"2px 5px",borderRadius:4,background:"color-mix(in srgb, "+Q(a.priority)+" 13%, transparent)",color:Q(a.priority)},children:a.priority}),a.note&&(0,b.jsx)("span",{style:{fontSize:9.5,fontWeight:600,color:"var(--foreground-muted)"},children:a.note}),(0,b.jsx)("span",{style:{marginLeft:"auto",fontSize:14,fontWeight:700,color:e},children:d?c("quality.process.na"):w(a.score)})]}),(0,b.jsx)("div",{style:{height:7,borderRadius:5,background:"var(--background-secondary)",overflow:"hidden"},children:(0,b.jsx)("span",{style:{display:"block",height:"100%",width:`${d?0:a.score}%`,background:e,borderRadius:5}})})]})}function Q(a){return"P0"===a?"var(--error)":"P1"===a?"var(--warning)":"var(--foreground-muted)"}let R={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",marginBottom:14,scrollMarginTop:56},S={padding:"13px 18px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},T={width:22,height:22,borderRadius:6,display:"grid",placeItems:"center",flex:"0 0 22px"};var U=a.i(238246),V=a.i(589027),W=a.i(141146),X=a.i(483138);let Y=(0,e.default)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);function Z(a){return[{title:"主张裁决表",headers:["主张ID","主张内容","裁决结果","裁决原因","证据与来源"],rows:aa(a.claims).map(_).map(a=>{var b;let c;return[String(a.claimId||""),String(a.claim||""),"supported"===(b=String(a.status||""))?"有证据支持":"contradicted"===b?"与证据矛盾":"not_covered"===b?"证据未覆盖":b||"",String(a.reason||""),(c=aa(a.citations).map(_)).length?c.map(a=>{let b=String(a.contextId||"").trim(),c=String(a.evidenceQuote||"").trim(),d=[String(a.toolName||"").trim(),String(a.toolCallId||"").trim(),null==a.interactionIndex?"":`interactionIndex=${String(a.interactionIndex)}`].filter(Boolean).join(";"),e=[b,c].filter(Boolean).join(":");return d?`${e}(${d})`:e}).filter(Boolean).join("\n"):"无"]})}]}function $(a){return[{title:"关键观点裁决表",headers:["观点ID","标准关键观点","判定结果","裁决原因","实际答案证据"],rows:aa(a.keyPointFindings).map(_).map(a=>{var b;return[String(a.keyPointId||""),String(a.content||""),"correct"===(b=String(a.status||""))?"正确":"partially_correct"===b?"部分正确":"wrong"===b?"错误":"not_mentioned"===b?"未提及":b||"",String(a.reason||""),String(a.actualEvidence||"")]})},{title:"额外错误表",headers:["错误类型","严重度","实际答案证据","错误原因"],rows:aa(a.additionalErrors).map(_).map(a=>{var b,c;return["incorrect_fact"===(b=String(a.kind||""))?"事实错误":"extra_content"===b?"额外编造":b||"","low"===(c=String(a.severity||""))?"低":"medium"===c?"中":"high"===c?"高":c||"",String(a.actual_evidence||""),String(a.reason||"")]})}]}function _(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function aa(a){return Array.isArray(a)?a:[]}function ab(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function ac(a,b=0){return"number"==typeof a&&Number.isFinite(a)?a:b}function ad(a){let b=ab(a);return null==b?"":Number.isInteger(b)?String(b):b.toFixed(1).replace(/\.0$/u,"")}function ae(a){return"boolean"==typeof a?a?"是":"否":""}function af(a){let b=aa(a).map(_);return b.length?b.map(a=>[String(a.quote||"").trim(),String(a.reason||"").trim()].filter(Boolean).join(":")).filter(Boolean).join("\n"):"无"}let ag={faithfulness:"quality-result-faithfulness",instructionAdherence:"quality-result-instruction-adherence",answerQuality:"quality-result-answer-quality",accuracy:"quality-result-accuracy"},ah={约束ID:"quality-result-detail-constraint-id",约束内容:"quality-result-detail-constraint-text",裁决结果:"quality-result-detail-verdict-status",裁决原因:"quality-result-detail-verdict-reason",主张ID:"quality-result-detail-claim-id",主张内容:"quality-result-detail-claim-text",证据与来源:"quality-result-detail-evidence-source",观点ID:"quality-result-detail-key-point-id",标准关键观点:"quality-result-detail-key-point-content",判定结果:"quality-result-detail-judgement-status",实际答案证据:"quality-result-detail-actual-evidence",错误类型:"quality-result-detail-error-kind",严重度:"quality-result-detail-severity",错误原因:"quality-result-detail-error-reason",陈述ID:"quality-result-detail-statement-id",陈述内容:"quality-result-detail-statement-text",原文引用:"quality-result-detail-source-quote",相关性判定:"quality-result-detail-relevance-status",判定原因:"quality-result-detail-judgement-reason",要点ID:"quality-result-detail-requirement-id",任务要点:"quality-result-detail-requirement-text",覆盖状态:"quality-result-detail-coverage-status",结果证据:"quality-result-detail-result-evidence",检查项:"quality-result-detail-check-item",结果:"quality-result-detail-check-result",说明:"quality-result-detail-check-note"};function ai({report:a}){let{t:c}=(0,j.useLocale)(),d=a.dimensions.result.metrics??[];return(0,b.jsxs)("section",{id:"result",style:ay,children:[(0,b.jsxs)("div",{style:az,children:[(0,b.jsx)("span",{style:aA,children:(0,b.jsx)(Y,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:c("quality.result.title")}),(0,b.jsxs)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:["· ",c("quality.result.hint")]}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsxs)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:[c("quality.result.coverage")," ",Math.round(100*a.dimensions.result.coverage),"%"]})]}),(0,b.jsx)("div",{style:{padding:"6px 18px 12px"},children:d.map(a=>(0,b.jsx)(aj,{metric:a,t:c},a.key))})]})}function aj({metric:a,t:d}){let[e,f]=(0,c.useState)(!1),[g,h]=(0,c.useState)(null),j=null==a.score,k=j?"var(--foreground-muted)":t(a.score),l=d(`quality.result.metric.${a.key}`),m=a.evidence??[],n=ag[a.key];return(0,b.jsxs)("div",{style:{borderBottom:"1px solid var(--border)"},children:[(0,b.jsxs)("button",{onClick:()=>f(a=>!a),style:aB,children:[e?(0,b.jsx)(V.ChevronDown,{size:14}):(0,b.jsx)(W.ChevronRight,{size:14}),(0,b.jsxs)("div",{style:{minWidth:190},children:[(0,b.jsxs)("div",{style:aC,children:[(0,b.jsx)("span",{children:a.label}),n&&(0,b.jsx)("span",{onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:(0,b.jsx)(i.Term,{id:n,render:"compact"})})]}),(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--foreground-secondary)",marginTop:3},children:l})]}),(0,b.jsxs)("span",{style:{fontSize:11,color:"var(--foreground-muted)"},children:[d("quality.result.coverage")," ",Math.round(100*a.coverage),"%",null!=a.confidence?` \xb7 ${d("quality.result.confidence")} ${Math.round(100*a.confidence)}%`:""]}),"accuracy"===a.key&&(0,b.jsx)("span",{style:aD,children:"GT"}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{fontSize:15,fontWeight:800,color:k},children:j?"N/A":`${w(a.score)}分`})]}),e&&(0,b.jsxs)("div",{style:aE,children:["instructionAdherence"!==a.key&&a.note&&(0,b.jsx)("div",{style:aF,children:a.note}),"instructionAdherence"!==a.key&&a.naReason&&(0,b.jsx)("div",{style:aF,children:a.naReason}),m.map(c=>{let d=`${a.key}:${c.executionId}`,e=g===d;return(0,b.jsx)("div",{style:aG,children:"answerQuality"===a.key?(0,b.jsx)(am,{item:c,open:e,onToggle:()=>h(e?null:d)}):"instructionAdherence"===a.key?(0,b.jsx)(al,{item:c,open:e,onToggle:()=>h(e?null:d)}):"faithfulness"===a.key?(0,b.jsx)(an,{item:c,open:e,onToggle:()=>h(e?null:d),buildTables:Z}):"accuracy"===a.key?(0,b.jsx)(an,{item:c,open:e,onToggle:()=>h(e?null:d),buildTables:$}):(0,b.jsx)(ak,{item:c})},`${c.executionId}:${c.reason}`)}),!a.note&&!a.naReason&&0===m.length&&(0,b.jsx)("div",{children:d("quality.result.noEvidence")})]})]})}function ak({item:a}){return(0,b.jsxs)("div",{style:aH,children:[(0,b.jsx)(av,{id:a.executionId}),(0,b.jsx)("span",{style:aK,children:a.reason})]})}function al({item:a,open:c,onToggle:d}){let e=aw(a.detail),f=function(a){var b;let c=_(a.detail),d=aa(c.constraints),e=aa(c.verdicts).map(_);if(null==a.score&&0===d.length&&0===e.length){let b=String(c.reason||a.reason||"本任务没有明确的输出约束");return{kind:"not-applicable",reason:`不适用:${b}`,showDetail:!1}}let f=_(c.summary),g=ac(f.met,e.filter(a=>"met"===a.status).length),h=g+ac(f.notMet,e.filter(a=>"not_met"===a.status).length);return{kind:"scored",scoreLabel:`得分 ${"number"==typeof(b=a.score)&&Number.isFinite(b)?`${ad(b)}分`:"N/A"}`,constraintLabel:h>0?`约束 ${g}/${h} 满足`:"约束 N/A",showDetail:!0}}({score:a.score,reason:a.reason,detail:e});return"not-applicable"===f.kind?(0,b.jsxs)("div",{style:aH,children:[(0,b.jsx)(av,{id:a.executionId}),(0,b.jsx)("span",{style:aK,children:f.reason})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:aH,children:[(0,b.jsx)(av,{id:a.executionId}),(0,b.jsx)("span",{style:aJ,children:f.scoreLabel}),(0,b.jsx)("span",{style:aJ,children:f.constraintLabel}),(0,b.jsx)(ao,{open:c,onClick:d})]}),c&&(0,b.jsx)(ap,{detail:e})]})}function am({item:a,open:c,onToggle:d}){var e;let f,g,h,i,j,k,l=aw(a.detail),m=aw(l.subScores),n=(i=_(l.relevance),j=_(l.completeness),k=_(l.coherence),[function(a){let b=aa(a.verdicts).map(_),c=b.length;if(!c)return"";let d=b.filter(a=>"relevant"===a.verdict).length,e=b.filter(a=>"supporting"===a.verdict).length,f=b.filter(a=>"irrelevant"===a.verdict).length;return f>0?`相关性有偏离,${c} 条陈述中 ${f} 条不相关${e>0?`、${e} 条为支撑性内容`:""}`:e>0?`相关性较好,${c} 条陈述中 ${d} 条直接相关、${e} 条为支撑性内容`:`相关性较好,${c} 条陈述均直接相关`}(i),function(a){let b=aa(a.verdicts).map(_),c=b.length;if(!c)return"";let d=b.filter(a=>"covered"===a.status).length,e=b.filter(a=>"partial"===a.status).length,f=b.filter(a=>"missing"===a.status).length;return f>0||e>0?`完整性仍有缺口,${c} 个要点中 ${d} 个已覆盖${e>0?`、${e} 个部分覆盖`:""}${f>0?`、${f} 个缺失`:""}`:`完整性充分,${c} 个任务要点全部覆盖`}(j),(f=ab((e=k).rating),h=[!1===(g=_(e.checks)).mainConclusionClear?"主结论不清晰":"",!1===g.logicalOrder?"结构顺序问题":"",!1===g.referenceConsistency?"指代不一致":"",aa(g.contradictions).length?"矛盾":"",aa(g.repetitions).length?"重复":"",aa(g.abruptTransitions).length?"跳跃":""].filter(Boolean),null==f?h.length?`连贯性存在${h.slice(0,2).join("、")}`:"":f>=4?"连贯性良好,结构清晰、表达一致":f>=3?h.length?`连贯性尚可,存在${h.slice(0,2).join("、")}`:"连贯性尚可,整体表达清楚":h.length?`连贯性偏弱,存在${h.slice(0,2).join("、")}`:"连贯性偏弱,需要改善结构和表达")].filter(Boolean).join(";")||a.reason);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:aH,children:[(0,b.jsx)(av,{id:a.executionId}),(0,b.jsxs)("span",{style:aJ,children:["总分 ",ax(a.score)]}),(0,b.jsxs)("span",{style:aJ,children:["相关性 ",ax(m.relevance)]}),(0,b.jsxs)("span",{style:aJ,children:["完整性 ",ax(m.completeness)]}),(0,b.jsxs)("span",{style:aJ,children:["连贯性 ",ax(m.coherence)]}),n&&(0,b.jsx)("span",{style:aK,children:n}),(0,b.jsx)(ao,{open:c,onClick:d})]}),c&&(0,b.jsx)(aq,{detail:l})]})}function an({item:a,open:c,onToggle:d,buildTables:e}){let f=aw(a.detail);return null==a.score?(0,b.jsxs)("div",{style:aH,children:[(0,b.jsx)(av,{id:a.executionId}),(0,b.jsxs)("span",{style:aK,children:["不适用:",a.reason]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:aH,children:[(0,b.jsx)(av,{id:a.executionId}),(0,b.jsxs)("span",{style:aJ,children:["得分 ",ax(a.score)]}),(0,b.jsx)("span",{style:aK,children:a.reason}),(0,b.jsx)(ao,{open:c,onClick:d})]}),c&&(0,b.jsx)(ar,{tables:e(f)})]})}function ao({open:a,onClick:c}){return(0,b.jsxs)("button",{type:"button",onClick:c,style:aL,title:"查看评测详情",children:[(0,b.jsx)(X.FileText,{size:10}),a?"收起详情":"评测详情"]})}function ap({detail:a}){let c;return(0,b.jsx)(ar,{tables:(c=new Map(aa(a.constraints).map(_).map(a=>[String(a.id||""),a])),[{title:"约束裁决表",headers:["约束ID","约束内容","裁决结果","裁决原因"],rows:aa(a.verdicts).map(_).map(a=>{var b;let d=String(a.constraintId||""),e=c.get(d)??{};return[d,String(e.text||""),"met"===(b=String(a.status||""))?"满足":"not_met"===b?"未满足":"not_applicable"===b?"不适用":b||"",String(a.reason||"")]})}])})}function aq({detail:a}){var c,d,e,f;let g,h,i,j,k,l,m,n,o;return(0,b.jsx)(ar,{tables:(g=_(a.relevance),h=_(a.completeness),i=_(a.coherence),[(j=new Map(aa((c=g).statements).map(_).map(a=>[String(a.id||""),a])),{title:"相关性评测表",headers:["陈述ID","陈述内容","原文引用","相关性判定","判定原因"],rows:aa(c.verdicts).map(_).map(a=>{var b;let c=String(a.statementId||""),d=j.get(c)??{};return[c,String(d.text||""),String(d.sourceQuote||""),"relevant"===(b=String(a.verdict||""))?"相关":"supporting"===b?"支撑性内容":"irrelevant"===b?"不相关":b||"",String(a.reason||"")]})}),(k=new Map(aa((d=h).requirements).map(_).map(a=>[String(a.id||""),a])),{title:"完整性评测表",headers:["要点ID","任务要点","覆盖状态","裁决原因","结果证据"],rows:aa(d.verdicts).map(_).map(a=>{var b;let c=String(a.requirementId||""),d=k.get(c)??{};return[c,String(d.text||""),"covered"===(b=String(a.status||""))?"已覆盖":"partial"===b?"部分覆盖":"missing"===b?"缺失":b||"",String(a.reason||""),String(a.evidenceQuote||"")]})}),(e=i,f=_(a.subScores),l=_(e.checks),m=ab(e.rating),n=ab(f.coherence)??(null==m?null:25*m),{title:"连贯性评测表",headers:["检查项","结果","说明"],rows:[["连贯性评级",null==m?"":String(m),"0 到 4 的整数 rubric 分"],["连贯性子分",ad(n),"rating * 25"],["主结论是否清晰",ae(l.mainConclusionClear),""],["结构顺序是否合理",ae(l.logicalOrder),""],["指代是否一致",ae(l.referenceConsistency),""],["矛盾问题",af(l.contradictions),""],["重复问题",af(l.repetitions),""],["跳跃问题",af(l.abruptTransitions),""],["总体原因",String(e.reason||""),""],["置信度",null==(o=ab(e.confidence))?"":`${Math.round(100*o)}%`,""]]})])})}function ar({tables:a}){return(0,b.jsx)("div",{style:aM,children:a.map(a=>(0,b.jsx)(as,{title:a.title,children:(0,b.jsx)(at,{headers:a.headers,rows:a.rows})},a.title))})}function as({title:a,children:c}){return(0,b.jsxs)("div",{style:aN,children:[(0,b.jsx)("div",{style:aO,children:a}),c]})}function at({headers:a,rows:c}){return(0,b.jsx)("div",{style:aP,children:(0,b.jsxs)("table",{style:aQ,children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:a.map((c,d)=>(0,b.jsx)("th",{style:aS,children:(0,b.jsx)(au,{label:c,align:d===a.length-1?"end":"start"})},c))})}),(0,b.jsx)("tbody",{children:c.length?c.map((c,d)=>(0,b.jsx)("tr",{children:a.map((a,d)=>(0,b.jsx)("td",{style:aT,children:c[d]||"—"},`${a}:${d}`))},d)):(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:a.length,style:aT,children:"暂无明细"})})})]})})}function au({label:a,align:c}){let d=ah[a];return(0,b.jsxs)("span",{style:aR,children:[(0,b.jsx)("span",{children:a}),d&&(0,b.jsx)(i.Term,{id:d,render:"compact",align:c})]})}function av({id:a}){return(0,b.jsx)(U.default,{href:`/trace?taskId=${encodeURIComponent(a)}`,style:aI,title:"查看链路追踪",children:a.slice(0,10)})}function aw(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function ax(a){return"number"==typeof a&&Number.isFinite(a)?`${w(a)}分`:"N/A"}let ay={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",marginBottom:14,scrollMarginTop:56},az={padding:"13px 18px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8},aA={width:22,height:22,borderRadius:6,display:"grid",placeItems:"center",background:"var(--success-subtle)",color:"var(--success)"},aB={width:"100%",border:0,background:"transparent",color:"inherit",cursor:"pointer",display:"flex",alignItems:"center",gap:10,padding:"11px 0",textAlign:"left",font:"inherit"},aC={display:"flex",alignItems:"center",gap:4,fontSize:13.5,fontWeight:800},aD={fontSize:9,fontWeight:750,padding:"2px 5px",borderRadius:4,background:"var(--primary-subtle)",color:"var(--primary)"},aE={padding:"0 28px 10px",fontSize:12.5,color:"var(--foreground)",lineHeight:1.62},aF={margin:"2px 0 6px",color:"var(--foreground-secondary)",fontSize:12.5},aG={marginTop:2},aH={display:"flex",alignItems:"center",gap:7,flexWrap:"wrap",padding:"3px 6px",border:"1px solid color-mix(in srgb, var(--border) 72%, transparent)",borderRadius:6,background:"color-mix(in srgb, var(--background-secondary) 35%, var(--card-bg))"},aI={fontFamily:"var(--font-mono, monospace)",color:"var(--primary)",background:"transparent",borderRadius:0,padding:0,fontSize:12,fontWeight:750,flex:"0 0 auto",textDecoration:"underline",textUnderlineOffset:3,textDecorationThickness:"1px",display:"inline-flex",alignItems:"center"},aJ={color:"var(--foreground)",background:"transparent",border:0,borderRadius:0,padding:0,fontSize:12,fontWeight:750,whiteSpace:"nowrap"},aK={color:"var(--foreground)",fontSize:12.5,fontWeight:600,flex:"0 1 auto",minWidth:0},aL={border:"1px solid var(--primary)",background:"var(--primary-subtle)",color:"var(--primary)",borderRadius:6,padding:"2px 6px",fontSize:10.5,fontWeight:750,cursor:"pointer",display:"inline-flex",alignItems:"center",gap:3,marginLeft:2,flex:"0 0 auto"},aM={display:"grid",gap:12,marginTop:10},aN={marginTop:2},aO={fontSize:12.5,fontWeight:800,color:"var(--foreground)",marginBottom:6},aP={overflowX:"auto",border:"1px solid var(--border)",borderRadius:8},aQ={width:"100%",minWidth:720,borderCollapse:"collapse",background:"var(--card-bg)"},aR={display:"inline-flex",alignItems:"center",gap:4},aS={textAlign:"left",padding:"8px 10px",fontSize:11.5,fontWeight:800,color:"var(--foreground-secondary)",background:"var(--background-secondary)",borderBottom:"1px solid var(--border)",whiteSpace:"nowrap"},aT={padding:"8px 10px",borderBottom:"1px solid var(--border)",verticalAlign:"top",color:"var(--foreground)",minWidth:90,fontSize:11.5,lineHeight:1.55};var aU=a.i(600554),aV=a.i(931760),aW=["axis"],aX=(0,c.forwardRef)((a,b)=>c.createElement(aV.CartesianChart,{chartName:"ComposedChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:aW,tooltipPayloadSearcher:aU.arrayTooltipSearcher,categoricalChartProps:a,ref:b})),aY=c,aZ=a.i(298621),a$=a.i(488949),a_=a=>null;a_.displayName="Cell";var a0=a.i(736319),a1=a.i(768932),a2=a.i(137082),a3=a.i(656295),a4=a.i(952517),a5=a.i(116030),a6=a.i(156998),a7=["option"],a8=a5.Rectangle;function a9(a){var b=a.option,d=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,a7);return c.createElement(a6.Shape,{option:b,DefaultShape:a8,shapeProps:d,activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"})}var ba=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(c,d)=>{if((0,a1.isNumber)(a))return a;var e=(0,a1.isNumber)(c)||(0,a1.isNullish)(c);return e?a(c,d):(e||function(a,b){if(!a)throw Error("Invariant failed")}(!1,"minPointSize callback function received a value with type of ".concat(typeof c,". Currently only numbers or null/undefined are supported.")),b)}},bb=a.i(977368),bc=a.i(944629),bd=(a,b,c)=>{var d=(0,bb.useAppDispatch)();return(e,f)=>g=>{null==a||a(e,f,g),d((0,bc.setActiveMouseOverItemIndex)({activeIndex:String(f),activeDataKey:b,activeCoordinate:e.tooltipPosition,activeGraphicalItemId:c}))}},be=a=>{var b=(0,bb.useAppDispatch)();return(c,d)=>e=>{null==a||a(c,d,e),b((0,bc.mouseLeaveItem)())}},bf=(a,b,c)=>{var d=(0,bb.useAppDispatch)();return(e,f)=>g=>{null==a||a(e,f,g),d((0,bc.setActiveClickItemIndex)({activeIndex:String(f),activeDataKey:b,activeCoordinate:e.tooltipPosition,activeGraphicalItemId:c}))}},bg=a.i(112791),bh=a.i(783663),bi=a.i(17913),bj=a.i(298382),bk=a.i(44381),bl=a.i(612168),bm=a.i(198563),bn=a.i(401351),bo=a.i(751434),bp=a.i(153053);function bq(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}var br=(a,b,c)=>{var d=null!=c?c:a;if(!(0,a1.isNullish)(d))return(0,a1.getPercentValue)(d,b,0)},bs=a.i(203041);function bt(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function bu(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?bt(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):bt(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}var bv=a.i(889702),bw=a.i(253791);function bx(a,b){var c,d;return null!=(c=null==(d=a.graphicalItems.cartesianItems.find(a=>a.id===b))?void 0:d.xAxisId)?c:bw.defaultAxisId}function by(a,b){var c,d;return null!=(c=null==(d=a.graphicalItems.cartesianItems.find(a=>a.id===b))?void 0:d.yAxisId)?c:bw.defaultAxisId}var bz=(0,bk.createSelector)([bl.selectUnfilteredCartesianItems,(a,b)=>b],(a,b)=>a.filter(a=>"bar"===a.type).find(a=>a.id===b)),bA=(0,bk.createSelector)([bz],a=>null==a?void 0:a.maxBarSize),bB=(0,bk.createSelector)([bj.selectChartLayout,bl.selectUnfilteredCartesianItems,bx,by,(a,b,c)=>c],(a,b,c,d,e)=>b.filter(b=>"horizontal"===a?b.xAxisId===c:b.yAxisId===d).filter(a=>a.isPanorama===e).filter(a=>!1===a.hide).filter(a=>"bar"===a.type)),bC=(0,bk.createSelector)([bB,bo.selectRootBarSize,(a,b)=>{var c=(0,bj.selectChartLayout)(a),d=bx(a,b),e=by(a,b);if(null!=d&&null!=e)return"horizontal"===c?(0,bl.selectCartesianAxisSize)(a,"xAxis",d):(0,bl.selectCartesianAxisSize)(a,"yAxis",e)}],(a,b,c)=>{var d=a.filter(bp.isStacked),e=a.filter(a=>null==a.stackId);return[...Object.entries(d.reduce((a,b)=>{var c=a[b.stackId];return null==c&&(c=[]),c.push(b),a[b.stackId]=c,a},{})).map(a=>{var d,e=function(a){if(Array.isArray(a))return a}(a)||function(a,b){var c=null==a?null:"u">typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=c){var d,e,f,g,h=[],i=!0,j=!1;try{f=(c=c.call(a)).next,!1;for(;!(i=(d=f.call(c)).done)&&(h.push(d.value),2!==h.length);i=!0);}catch(a){j=!0,e=a}finally{try{if(!i&&null!=c.return&&(g=c.return(),Object(g)!==g))return}finally{if(j)throw e}}return h}}(a,2)||function(a,b){if(a){if("string"==typeof a)return bq(a,2);var c=({}).toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?bq(a,2):void 0}}(a,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),f=e[0],g=e[1];return{stackId:f,dataKeys:g.map(a=>a.dataKey),barSize:br(b,c,null==(d=g[0])?void 0:d.barSize)}}),...e.map(a=>({stackId:void 0,dataKeys:[a.dataKey].filter(a=>null!=a),barSize:br(b,c,a.barSize)}))]}),bD=(a,b,c)=>{var d,e,f=(0,bj.selectChartLayout)(a),g=bx(a,b),h=by(a,b);if(null!=g&&null!=h)return"horizontal"===f?(d=(0,bl.selectAxisWithScale)(a,"xAxis",g,c),e=(0,bl.selectTicksOfGraphicalItem)(a,"xAxis",g,c)):(d=(0,bl.selectAxisWithScale)(a,"yAxis",h,c),e=(0,bl.selectTicksOfGraphicalItem)(a,"yAxis",h,c)),(0,a3.getBandSizeOfAxis)(d,e)},bE=(0,bk.createSelector)([bC,bo.selectRootMaxBarSize,bo.selectBarGap,bo.selectBarCategoryGap,(a,b,c)=>{var d,e,f,g,h=bz(a,b);if(null==h)return 0;var i=bx(a,b),j=by(a,b);if(null==i||null==j)return 0;var k=(0,bj.selectChartLayout)(a),l=(0,bo.selectRootMaxBarSize)(a),m=h.maxBarSize,n=(0,a1.isNullish)(m)?l:m;return"horizontal"===k?(f=(0,bl.selectAxisWithScale)(a,"xAxis",i,c),g=(0,bl.selectTicksOfGraphicalItem)(a,"xAxis",i,c)):(f=(0,bl.selectAxisWithScale)(a,"yAxis",j,c),g=(0,bl.selectTicksOfGraphicalItem)(a,"yAxis",j,c)),null!=(d=null!=(e=(0,a3.getBandSizeOfAxis)(f,g,!0))?e:n)?d:0},bD,bA],(a,b,c,d,e,f,g)=>{var h=function(a,b,c,d,e){var f,g,h=d.length;if(!(h<1)){var i=(0,a1.getPercentValue)(a,c,0,!0),j=[];if((0,bs.isWellBehavedNumber)(null==(f=d[0])?void 0:f.barSize)){var k=!1,l=c/h,m=d.reduce((a,b)=>a+(b.barSize||0),0);(m+=(h-1)*i)>=c&&(m-=(h-1)*i,i=0),m>=c&&l>0&&(k=!0,l*=.9,m=h*l);var n={offset:Math.round((c-m)/2)-i,size:0};g=d.reduce((a,b)=>{var c,d={stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:n.offset+n.size+i,size:k?l:null!=(c=b.barSize)?c:0}},e=[...a,d];return n=d.position,e},j)}else{var o=(0,a1.getPercentValue)(b,c,0,!0);c-2*o-(h-1)*i<=0&&(i=0);var p=(c-2*o-(h-1)*i)/h;p>1&&(p=Math.round(p));var q=(0,bs.isWellBehavedNumber)(e)?Math.min(p,e):p;g=d.reduce((a,b,c)=>[...a,{stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:o+(p+i)*c+(p-q)/2,size:q}}],j)}return g}}(c,d,e!==f?e:f,a,(0,a1.isNullish)(g)?b:g);return e!==f&&null!=h&&(h=h.map(a=>bu(bu({},a),{},{position:bu(bu({},a.position),{},{offset:a.position.offset-e/2})}))),h}),bF=(0,bk.createSelector)([bE,bz],(a,b)=>{if(null!=a&&null!=b){var c=a.find(a=>a.stackId===b.stackId&&null!=b.dataKey&&a.dataKeys.includes(b.dataKey));if(null!=c)return c.position}}),bG=(0,bk.createSelector)([(a,b,c)=>{var d=(0,bj.selectChartLayout)(a),e=bx(a,b),f=by(a,b);if(null!=e&&null!=f)return"horizontal"===d?(0,bl.selectStackGroups)(a,"yAxis",f,c):(0,bl.selectStackGroups)(a,"xAxis",e,c)},bz],(a,b)=>{var c=(0,bv.getStackSeriesIdentifier)(b);if(!a||null==c||null==b)return;var d=b.stackId;if(null!=d){var e=a[d];if(e){var f=e.stackedData;if(f)return f.find(a=>a.key===c)}}}),bH=(0,bk.createSelector)([bn.selectChartOffsetInternal,bn.selectAxisViewBox,(a,b,c)=>{var d=bx(a,b);if(null!=d)return(0,bl.selectAxisWithScale)(a,"xAxis",d,c)},(a,b,c)=>{var d=by(a,b);if(null!=d)return(0,bl.selectAxisWithScale)(a,"yAxis",d,c)},(a,b,c)=>{var d=bx(a,b);if(null!=d)return(0,bl.selectTicksOfGraphicalItem)(a,"xAxis",d,c)},(a,b,c)=>{var d=by(a,b);if(null!=d)return(0,bl.selectTicksOfGraphicalItem)(a,"yAxis",d,c)},bF,bj.selectChartLayout,bm.selectChartDataWithIndexesIfNotInPanoramaPosition3,bD,bG,bz,(a,b,c,d)=>d],(a,b,c,d,e,f,g,h,i,j,k,l,m)=>{var n,o=i.chartData,p=i.dataStartIndex,q=i.dataEndIndex;if(null!=l&&null!=g&&null!=b&&("horizontal"===h||"vertical"===h)&&null!=c&&null!=d&&null!=e&&null!=f&&null!=j){var r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N=l.data;if(null!=(n=null!=N&&N.length>0?N:null==o?void 0:o.slice(p,q+1))){return s=(r={layout:h,barSettings:l,pos:g,parentViewBox:b,bandSize:j,xAxis:c,yAxis:d,xAxisTicks:e,yAxisTicks:f,stackedData:k,displayedData:n,offset:a,cells:m,dataStartIndex:p}).layout,u=(t=r.barSettings).dataKey,v=t.minPointSize,w=t.hasCustomShape,x=r.pos,y=r.bandSize,z=r.xAxis,A=r.yAxis,B=r.xAxisTicks,C=r.yAxisTicks,D=r.stackedData,E=r.displayedData,F=r.offset,G=r.cells,H=r.parentViewBox,I=r.dataStartIndex,J="horizontal"===s?A:z,K=D?J.scale.domain():null,L=(0,a3.getBaseValueOfBar)({numericAxis:J}),M=J.scale.map(L),E.map((a,b)=>{if(D){var c=D[b+I];if(null==c)return null;e=(0,a3.truncateByDomain)(c,K)}else Array.isArray(e=(0,a3.getValueByDataKey)(a,u))||(e=[L,e]);var d=ba(v,0)(e[1],b);if("horizontal"===s){var e,f,g,h,i,j,k,l=A.scale.map(e[0]),m=A.scale.map(e[1]);if(null==l||null==m)return null;f=(0,a3.getCateCoordinateOfBar)({axis:z,ticks:B,bandSize:y,offset:x.offset,entry:a,index:b}),g=null!=(k=null!=m?m:l)?k:void 0,h=x.size;var n=l-m;if(i=(0,a1.isNan)(n)?0:n,j={x:f,y:F.top,width:h,height:F.height},Math.abs(d)>0&&Math.abs(i)<Math.abs(d)){var o=(0,a1.mathSign)(i||d)*(Math.abs(d)-Math.abs(i));g-=o,i+=o}}else{var p=z.scale.map(e[0]),q=z.scale.map(e[1]);if(null==p||null==q)return null;if(f=p,g=(0,a3.getCateCoordinateOfBar)({axis:A,ticks:C,bandSize:y,offset:x.offset,entry:a,index:b}),h=q-p,i=x.size,j={x:F.left,y:g,width:F.width,height:i},Math.abs(d)>0&&Math.abs(h)<Math.abs(d)){var r=(0,a1.mathSign)(h||d)*(Math.abs(d)-Math.abs(h));h+=r}}return null!=f&&null!=g&&null!=h&&null!=i&&(w||0!==h&&0!==i)?ca(ca({},a),{},{stackedBarStart:M,x:f,y:g,width:h,height:i,value:D?e:e[1],payload:a,background:j,tooltipPosition:{x:f+h/2,y:g+i/2},parentViewBox:H,originalDataIndex:b},G&&G[b]&&G[b].props):null}).filter(Boolean)}}}),bI=a.i(625392),bJ=a.i(386505),bK=a.i(592430),bL=a.i(787293),bM=a.i(346780),bN=a.i(377025),bO=a.i(972853),bP=a.i(45933),bQ=a.i(14822),bR=a.i(296268),bS=a.i(731080),bT=a.i(795272),bU=(a.i(1957),(a,b)=>b),bV=(a,b,c)=>c,bW=(0,bk.createSelector)([bU,bl.selectUnfilteredCartesianItems,bV],(a,b,c)=>b.filter(a=>"bar"===a.type).filter(b=>b.stackId===a).filter(a=>a.isPanorama===c).filter(a=>!a.hide)),bX=(0,bk.createSelector)([bW],a=>a.map(a=>a.id)),bY=(0,bk.createSelector)([a=>a,bU,bV],(a,b,c)=>{var d=bX(a,b,c),e=[];return d.forEach(b=>{var d=bH(a,b,c,void 0);null==d||d.forEach(a=>{var b=a.originalDataIndex;e[b]=((a,b)=>{if(!a)return b;if(!b)return a;var c=Math.min(a.x,a.x+a.width,b.x,b.x+b.width),d=Math.min(a.y,a.y+a.height,b.y,b.y+b.height);return{x:c,y:d,width:Math.max(a.x,a.x+a.width,b.x,b.x+b.width)-c,height:Math.max(a.y,a.y+a.height,b.y,b.y+b.height)-d}})(e[b],a)})}),e}),bZ=["index"];function b$(){return(b$=Object.assign.bind()).apply(null,arguments)}var b_=(0,c.createContext)(void 0),b0=(a,b)=>"recharts-bar-stack-clip-path-".concat(a,"-").concat(b),b1=a=>{var b=a.index,d=function(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}(a,bZ),e=(a=>{var b=(0,c.useContext)(b_);if(null!=b){var d=b.stackId;return"url(#".concat(b0(d,a),")")}})(b);return c.createElement(a$.Layer,b$({className:"recharts-bar-stack-layer",clipPath:e},d))};bT.propsAreEqual;var b2=["onMouseEnter","onMouseLeave","onClick"],b3=["value","background","tooltipPosition"],b4=["id"],b5=["onMouseEnter","onClick","onMouseLeave"];function b6(a,b){return function(a){if(Array.isArray(a))return a}(a)||function(a,b){var c=null==a?null:"u">typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=c){var d,e,f,g,h=[],i=!0,j=!1;try{if(f=(c=c.call(a)).next,0===b){if(Object(c)!==c)return;i=!1}else for(;!(i=(d=f.call(c)).done)&&(h.push(d.value),h.length!==b);i=!0);}catch(a){j=!0,e=a}finally{try{if(!i&&null!=c.return&&(g=c.return(),Object(g)!==g))return}finally{if(j)throw e}}return h}}(a,b)||function(a,b){if(a){if("string"==typeof a)return b7(a,b);var c=({}).toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?b7(a,b):void 0}}(a,b)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b7(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function b8(){return(b8=Object.assign.bind()).apply(null,arguments)}function b9(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function ca(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?b9(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):b9(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function cb(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],-1===b.indexOf(c)&&({}).propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}var cc=aY.memo(a=>{var b=a.dataKey,c=a.stroke,d=a.strokeWidth,e=a.fill,f=a.name,g=a.hide,h=a.unit,i=a.formatter,j=a.tooltipType,k=a.id,l={dataDefinedOnItem:void 0,getPosition:a1.noop,settings:{stroke:c,strokeWidth:d,fill:e,dataKey:b,nameKey:void 0,name:(0,a3.getTooltipNameProp)(f,b),hide:g,type:j,color:e,unit:h,formatter:i,graphicalItemId:k}};return aY.createElement(bg.SetTooltipEntrySettings,{tooltipEntrySettings:l})});function cd(a){var b,c=(0,bb.useAppSelector)(bJ.selectActiveTooltipIndex),d=a.data,e=a.dataKey,f=a.background,g=a.allOtherBarProps,h=g.onMouseEnter,i=g.onMouseLeave,j=g.onClick,k=cb(g,b2),l=bd(h,e,g.id),m=be(i),n=bf(j,e,g.id);if(!f||null==d)return null;var o=(0,bO.svgPropertiesNoEventsFromUnknown)(f);return aY.createElement(bR.ZIndexLayer,{zIndex:(b=bS.DefaultZIndexes.barBackground,f&&"object"==typeof f&&"zIndex"in f&&"number"==typeof f.zIndex&&(0,bs.isWellBehavedNumber)(f.zIndex)?f.zIndex:b)},d.map((a,b)=>{a.value;var d=a.background,g=(a.tooltipPosition,cb(a,b3));if(!d)return null;var h=l(a,a.originalDataIndex),i=m(a,a.originalDataIndex),j=n(a,a.originalDataIndex),p=ca(ca(ca(ca(ca({option:f,isActive:String(a.originalDataIndex)===c},g),{},{fill:"#eee"},d),o),(0,a4.adaptEventsOfChild)(k,a,b)),{},{onMouseEnter:h,onMouseLeave:i,onClick:j,dataKey:e,index:b,className:"recharts-bar-background-rectangle"});return aY.createElement(a9,b8({key:"background-bar-".concat(b)},p))}))}function ce(a){var b=a.showLabels,c=a.children,d=a.rects,e=null==d?void 0:d.map(a=>{var b={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return ca(ca({},b),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:b,fill:a.fill})});return aY.createElement(a0.CartesianLabelListContextProvider,{value:b?e:void 0},c)}function cf(a){var b,c=a.shape,d=a.activeBar,e=a.baseProps,f=a.entry,g=a.index,h=a.dataKey,i=(0,bb.useAppSelector)(bJ.selectActiveTooltipIndex),j=(0,bb.useAppSelector)(bJ.selectActiveTooltipDataKey),k=d&&String(f.originalDataIndex)===i&&(null==j||h===j),l=b6((0,aY.useState)(!1),2),m=l[0],n=l[1],o=b6((0,aY.useState)(!1),2),p=o[0],q=o[1];(0,aY.useEffect)(()=>{var a;return k?(n(!0),a=requestAnimationFrame(()=>{q(!0)})):q(!1),()=>{cancelAnimationFrame(a)}},[k]);var r=(0,aY.useCallback)(()=>{k||n(!1)},[k]),s=k&&p,t=k||m;b=k?!0===d?c:d:c;var u=aY.createElement(a9,b8({},e,{name:String(e.name)},f,{isActive:s,option:b,index:g,dataKey:h,animationElapsedTime:a.animationElapsedTime,isAnimating:a.isAnimating,isEntrance:a.isEntrance,onTransitionEnd:r}));return t?aY.createElement(bR.ZIndexLayer,{zIndex:bS.DefaultZIndexes.activeBar},aY.createElement(b1,{index:f.originalDataIndex},u)):u}function cg(a){var b=a.shape,c=a.baseProps,d=a.entry,e=a.index,f=a.dataKey;return aY.createElement(a9,b8({},c,{name:String(c.name)},d,{isActive:!1,option:b,index:e,dataKey:f,animationElapsedTime:a.animationElapsedTime,isAnimating:a.isAnimating,isEntrance:a.isEntrance}))}function ch(a){var b,c=a.data,d=a.props,e=a.animationElapsedTime,f=a.isAnimating,g=a.isEntrance,h=null!=(b=(0,bO.svgPropertiesNoEvents)(d))?b:{},i=h.id,j=cb(h,b4),k=d.shape,l=d.dataKey,m=d.activeBar,n=d.onMouseEnter,o=d.onClick,p=d.onMouseLeave,q=cb(d,b5),r=bd(n,l,i),s=be(p),t=bf(o,l,i);return c?aY.createElement(aY.Fragment,null,c.map((a,b)=>aY.createElement(b1,b8({index:a.originalDataIndex,key:"rectangle-".concat(null==a?void 0:a.x,"-").concat(null==a?void 0:a.y,"-").concat(null==a?void 0:a.value,"-").concat(b),className:"recharts-bar-rectangle"},(0,a4.adaptEventsOfChild)(q,a,b),{onMouseEnter:r(a,a.originalDataIndex),onMouseLeave:s(a,a.originalDataIndex),onClick:t(a,a.originalDataIndex)}),m?aY.createElement(cf,{shape:k,activeBar:m,baseProps:j,entry:a,index:b,dataKey:l,animationElapsedTime:e,isAnimating:f,isEntrance:g}):aY.createElement(cg,{shape:k,baseProps:j,entry:a,index:b,dataKey:l,animationElapsedTime:e,isAnimating:f,isEntrance:g})))):null}function ci(a){var b=a.props,c=a.previousRectanglesRef,d=b.data,e=b.isAnimationActive,f=b.animationBegin,g=b.animationDuration,h=b.animationEasing,i=b.animationInterpolateFn,j=b.layout,k=(0,bP.useAnimationCallbacks)(b.onAnimationStart,b.onAnimationEnd),l=k.isAnimating,m=k.handleAnimationStart,n=k.handleAnimationEnd;return aY.createElement(ce,{showLabels:!l,rects:d},aY.createElement(bP.AnimatedItems,{animationInput:d,animationIdPrefix:"recharts-bar-",items:d,previousItemsRef:c,isAnimationActive:e,animationBegin:f,animationDuration:g,animationEasing:h,onAnimationStart:m,onAnimationEnd:n,animationInterpolateFn:i,animationMatchBy:b.animationMatchBy,layout:j},(a,c,d)=>aY.createElement(a$.Layer,null,aY.createElement(ch,{props:b,data:a,animationElapsedTime:c,isAnimating:l||c<1,isEntrance:d}))),aY.createElement(a0.LabelListFromLabelProp,{label:b.label}),b.children)}function cj(a){var b=(0,aY.useRef)(null);return aY.createElement(ci,{previousRectanglesRef:b,props:a})}var ck=(a,b)=>{var c=Array.isArray(a.value)?a.value[1]:a.value;return{x:a.x,y:a.y,value:c,errorVal:(0,a3.getValueByDataKey)(a,b)}};class cl extends aY.PureComponent{render(){var a=this.props,b=a.hide,c=a.data,d=a.dataKey,e=a.className,f=a.xAxisId,g=a.yAxisId,h=a.needClip,i=a.background,j=a.id;if(b||null==c)return null;var k=(0,aZ.clsx)("recharts-bar",e);return aY.createElement(a$.Layer,{className:k,id:j},h&&aY.createElement("defs",null,aY.createElement(bi.GraphicalItemClipPath,{clipPathId:j,xAxisId:f,yAxisId:g})),aY.createElement(a$.Layer,{className:"recharts-bar-rectangles",clipPath:h?"url(#clipPath-".concat(j,")"):void 0},aY.createElement(cd,{data:c,dataKey:d,background:i,allOtherBarProps:this.props}),aY.createElement(cj,this.props)))}}var cm={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:(a,b,c)=>null==a?[]:1===b?a.flatMap(a=>"removed"===a.status?[]:[a.next]):a.flatMap(a=>{if("removed"===a.status)return"horizontal"===c?[ca(ca({},a.prev),{},{height:(0,a1.interpolate)(a.prev.height,0,b),y:(0,a1.interpolate)(a.prev.y,a.prev.y+a.prev.height,b)})]:[ca(ca({},a.prev),{},{width:(0,a1.interpolate)(a.prev.width,0,b)})];if("matched"===a.status)return[ca(ca({},a.next),{},{x:(0,a1.interpolate)(a.prev.x,a.next.x,b),y:(0,a1.interpolate)(a.prev.y,a.next.y,b),width:(0,a1.interpolate)(a.prev.width,a.next.width,b),height:(0,a1.interpolate)(a.prev.height,a.next.height,b)})];var d=a.next;return"horizontal"===c?[ca(ca({},d),{},{height:(0,a1.interpolate)(0,d.height,b),y:(0,a1.interpolate)(d.stackedBarStart,d.y,b)})]:[ca(ca({},d),{},{width:(0,a1.interpolate)(0,d.width,b),x:(0,a1.interpolate)(d.stackedBarStart,d.x,b)})]}),animationMatchBy:bQ.matchAppend,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:0,shape:a8,xAxisId:0,yAxisId:0,zIndex:bS.DefaultZIndexes.bar};function cn(a){var b,c=a.xAxisId,d=a.yAxisId,e=a.hide,f=a.legendType,g=a.minPointSize,h=a.activeBar,i=a.animationBegin,j=a.animationDuration,k=a.animationEasing,l=a.isAnimationActive,m=(0,bi.useNeedsClip)(c,d).needClip,n=(0,bj.useChartLayout)(),o=(0,bI.useIsPanorama)(),p=(0,a2.findAllByType)(a.children,a_),q=(0,bb.useAppSelector)(b=>bH(b,a.id,o,p));if("vertical"!==n&&"horizontal"!==n)return null;var r=null==q?void 0:q[0];return b=null==r||null==r.height||null==r.width?0:"vertical"===n?r.height/2:r.width/2,aY.createElement(bh.SetErrorBarContext,{xAxisId:c,yAxisId:d,data:q,dataPointFormatter:ck,errorBarOffset:b},aY.createElement(cl,b8({},a,{layout:n,needClip:m,data:q,xAxisId:c,yAxisId:d,hide:e,legendType:f,minPointSize:g,activeBar:h,animationBegin:i,animationDuration:j,animationEasing:k,isAnimationActive:l})))}var co=aY.memo(function(a){var b,d,e=(0,bL.resolveDefaultProps)(a,cm),f=(b=e.stackId,null!=(d=(0,c.useContext)(b_))?d.stackId:null!=b?(0,a3.getNormalizedStackId)(b):void 0),g=(0,bI.useIsPanorama)();return aY.createElement(bM.RegisterGraphicalItemId,{id:e.id,type:"bar"},a=>{var b,c,d,h;return aY.createElement(aY.Fragment,null,aY.createElement(bK.SetLegendPayload,{legendPayload:(b=e.dataKey,c=e.name,d=e.fill,h=e.legendType,[{inactive:e.hide,dataKey:b,type:h,color:d,value:(0,a3.getTooltipNameProp)(c,b),payload:e}])}),aY.createElement(cc,{dataKey:e.dataKey,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,unit:e.unit,formatter:e.formatter,tooltipType:e.tooltipType,id:a}),aY.createElement(bN.SetCartesianGraphicalItem,{type:"bar",id:a,data:void 0,xAxisId:e.xAxisId,yAxisId:e.yAxisId,zAxisId:0,dataKey:e.dataKey,stackId:f,hide:e.hide,barSize:e.barSize,minPointSize:e.minPointSize,maxBarSize:e.maxBarSize,isPanorama:g,hasCustomShape:null!=e.shape&&e.shape!==a8}),aY.createElement(bR.ZIndexLayer,{zIndex:e.zIndex},aY.createElement(cn,b8({},e,{id:a}))))})},bT.propsAreEqual);co.displayName="Bar";var cp=a.i(677924),cq=a.i(758042),cr=a.i(994222),cs=a.i(54419),ct=a.i(659854),cu=a.i(48662),cv=a.i(874668),cw=a.i(199738),cx=a.i(717792),cy=a.i(161970),cz=a.i(107038),cA=a.i(969256);function cB(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function cC(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?cB(Object(c),!0).forEach(function(b){var d,e,f;d=a,e=b,f=c[b],(e=function(a){var b=function(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}(a,"string");return"symbol"==typeof b?b:b+""}(e))in d?Object.defineProperty(d,e,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[e]=f}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):cB(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function cD(){return(cD=Object.assign.bind()).apply(null,arguments)}function cE(a){var b=(0,bb.useAppDispatch)();return(0,c.useEffect)(()=>(b((0,cx.addLine)(a)),()=>{b((0,cx.removeLine)(a))})),null}function cF(a){var b=a.xAxisId,d=a.yAxisId,e=a.shape,f=a.className,g=a.ifOverflow,h=(0,bI.useIsPanorama)(),i=(0,cy.useClipPathId)(),j=(0,bb.useAppSelector)(a=>(0,bl.selectXAxisSettings)(a,b)),k=(0,bb.useAppSelector)(a=>(0,bl.selectYAxisSettings)(a,d)),l=(0,bb.useAppSelector)(a=>(0,bl.selectAxisScale)(a,"xAxis",b,h)),m=(0,bb.useAppSelector)(a=>(0,bl.selectAxisScale)(a,"yAxis",d,h)),n=(0,bj.useViewBox)();if(!i||!n||null==j||null==k||null==l||null==m)return null;var o=((a,b,c,d,e,f,g)=>{var h,i,j=g.x,k=g.y,l=g.segment,m=g.ifOverflow,n=(0,a1.isNumOrStr)(j);if((0,a1.isNumOrStr)(k)){var o=c.x,p=c.width,q=b.map(k,{position:d});if(!(0,bs.isWellBehavedNumber)(q)||"discard"===m&&!b.isInRange(q))return null;var r=[{x:o+p,y:q},{x:o,y:q}];return"left"===f?r.reverse():r}if(n){var s=c.y,t=c.height,u=a.map(j,{position:d});if(!(0,bs.isWellBehavedNumber)(u)||"discard"===m&&!a.isInRange(u))return null;var v=[{x:u,y:s+t},{x:u,y:s}];return"top"===e?v.reverse():v}return null!=l&&2===l.length?(i=[(h=new cA.CartesianScaleHelperImpl({x:a,y:b})).mapWithFallback(l[0],{position:d,fallback:"rangeMin"}),h.mapWithFallback(l[1],{position:d,fallback:"rangeMax"})],"discard"===m&&i.some(a=>!h.isInRange(a))?null:i):null})(l,m,n,a.position,j.orientation,k.orientation,a);if(!o)return null;var p=o[0],q=o[1];if(null==p||null==q)return null;var r=p.x,s=p.y,t=q.x,u=q.y,v=cC(cC({clipPath:"hidden"===g?"url(#".concat(i,")"):void 0},(0,cz.svgPropertiesAndEvents)(a)),{},{x1:r,y1:s,x2:t,y2:u}),w=(0,cw.rectWithCoords)({x1:r,y1:s,x2:t,y2:u});return c.createElement(bR.ZIndexLayer,{zIndex:a.zIndex},c.createElement(a$.Layer,{className:(0,aZ.clsx)("recharts-reference-line",f)},((a,b)=>{var d;if(c.isValidElement(a))d=c.cloneElement(a,b);else if("function"==typeof a)d=a(b);else{if(!(0,bs.isWellBehavedNumber)(b.x1)||!(0,bs.isWellBehavedNumber)(b.y1)||!(0,bs.isWellBehavedNumber)(b.x2)||!(0,bs.isWellBehavedNumber)(b.y2))return null;d=c.createElement("line",cD({},b,{className:"recharts-reference-line-line"}))}return d})(e,v),c.createElement(cv.CartesianLabelContextProvider,cD({},w,{lowerWidth:w.width,upperWidth:w.width}),c.createElement(cv.CartesianLabelFromLabelProp,{label:a.label}),a.children)))}var cG={ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",label:!1,stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle",zIndex:bS.DefaultZIndexes.line};function cH(a){var b=(0,bL.resolveDefaultProps)(a,cG);return c.createElement(c.Fragment,null,c.createElement(cE,{yAxisId:b.yAxisId,xAxisId:b.xAxisId,ifOverflow:b.ifOverflow,x:b.x,y:b.y,segment:b.segment}),c.createElement(cF,b))}cH.displayName="ReferenceLine";let cI=(0,e.default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);var cJ=a.i(71255);function cK({report:a,onBucketClick:d,collapsed:e,onToggleCollapse:f}){let{t:g}=(0,j.useLocale)(),h=(0,cJ.useThemeColors)(),[i,k]=(0,c.useState)({comp:!0,res:!1,proc:!1,cost:!0}),l={comp:h.primary,res:h.success,proc:"#2c6bd1",cost:h.warning},m={comp:g("quality.trend.comp"),res:g("quality.trend.res"),proc:g("quality.trend.proc"),cost:g("quality.trend.cost")},n=a.trend.granularity,o=(0,c.useMemo)(()=>a.trend.buckets.map(a=>{var b;let c;return{label:(b=a.bucket_ts,c=new Date(b),"hour"===n?`${String(c.getHours()).padStart(2,"0")}:00`:`${c.getMonth()+1}/${c.getDate()}`),comp:a.composite,res:a.ratios.result,proc:a.ratios.toolCorrect??0,cost:a.ratios.cost??0,n:a.n_traces,latencyP95:a.percentiles?.latency?.p95??0,anomaly:+!!a.anomaly,_bucket:a}}),[a.trend.buckets,n]),p=Math.max(1,...o.map(a=>a.n)),q=g("hour"===n?"quality.trend.hourBuckets":"day"===n?"quality.trend.dayBuckets":"quality.trend.weekBuckets");return!o.length||o.every(a=>0===a.n)?(0,b.jsxs)("section",{id:"cost",style:cN,children:[(0,b.jsx)(cM,{t:g}),(0,b.jsx)("div",{style:{padding:40,textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:g("quality.trend.empty")})]}):(0,b.jsxs)("section",{id:"cost",style:cN,children:[(0,b.jsxs)("div",{style:{...cO,cursor:f?"pointer":void 0},onClick:f,children:[(0,b.jsx)("span",{style:{...cP,background:"var(--warning-subtle)",color:"var(--warning)"},children:(0,b.jsx)(cI,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:g("quality.trend.title")}),(0,b.jsxs)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:["· ",g("quality.trend.hint")]}),(0,b.jsx)("span",{style:{flex:1}}),!e&&(0,b.jsx)("div",{style:{display:"flex",gap:6},onClick:a=>a.stopPropagation(),children:["comp","res","proc","cost"].map(a=>(0,b.jsxs)("button",{onClick:()=>k(b=>({...b,[a]:!b[a]})),style:{fontSize:11,fontWeight:600,padding:"5px 10px",borderRadius:7,cursor:"pointer",border:`1px ${i[a]?"solid":"dashed"} var(--border)`,opacity:i[a]?1:.55,background:"var(--card-bg)",color:i[a]?"var(--foreground)":"var(--foreground-muted)",display:"inline-flex",alignItems:"center",gap:6},children:[(0,b.jsx)("span",{style:{width:9,height:3,borderRadius:2,background:l[a]}}),m[a]]},a))}),f&&(0,b.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--primary)"},children:e?g("quality.fold.expand")+" ▾":g("quality.fold.collapse")+" ▴"})]}),e?null:(0,b.jsxs)("div",{style:{padding:"14px 18px"},children:[(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--foreground-muted)",marginBottom:8},children:[g("quality.trend.window"),":",(0,b.jsxs)("b",{style:{color:"var(--foreground-secondary)"},children:[q," · ",o.length," ",g("quality.trend.bucketCount")]})," | ",g("quality.trend.percentileNote")," | ",(0,b.jsx)("span",{style:{color:"var(--primary)"},children:g("quality.trend.clickBucket")})]}),(0,b.jsx)("div",{style:{width:"100%",height:260},children:(0,b.jsx)(cu.ResponsiveContainer,{width:"100%",height:"100%",children:(0,b.jsxs)(aX,{data:o,margin:{top:8,right:8,bottom:4,left:-16},onClick:a=>{let b=a?.activePayload?.[0]?.payload;b?._bucket&&(b.n??0)>0&&d(b._bucket)},children:[(0,b.jsx)(cs.CartesianGrid,{strokeDasharray:"3 3",stroke:h.border,vertical:!1}),(0,b.jsx)(cq.XAxis,{dataKey:"label",stroke:h.fgMuted,tick:{fontSize:10},interval:"preserveStartEnd"}),(0,b.jsx)(cr.YAxis,{yAxisId:"score",domain:[0,100],stroke:h.fgMuted,tick:{fontSize:10}}),(0,b.jsx)(cr.YAxis,{yAxisId:"count",orientation:"right",domain:[0,3*p],stroke:h.fgMuted,tick:{fontSize:10},hide:!0}),(0,b.jsx)(ct.Tooltip,{content:(0,b.jsx)(cL,{names:m,colors:l,activeDims:i,t:g})}),(0,b.jsx)(cH,{yAxisId:"score",y:85,stroke:"#c9b6ef",strokeDasharray:"3 3"}),(0,b.jsx)(co,{yAxisId:"count",dataKey:"n",fill:h.border,radius:[2,2,0,0],barSize:14,name:g("quality.trend.sample"),children:o.map((a,c)=>(0,b.jsx)(a_,{fill:a.anomaly?"color-mix(in srgb, var(--error) 35%, transparent)":h.border},c))}),i.cost&&(0,b.jsx)(cp.Line,{yAxisId:"score",type:"monotone",dataKey:"cost",stroke:l.cost,strokeWidth:2,strokeDasharray:"5 4",dot:!1}),i.res&&(0,b.jsx)(cp.Line,{yAxisId:"score",type:"monotone",dataKey:"res",stroke:l.res,strokeWidth:2,dot:!1}),i.proc&&(0,b.jsx)(cp.Line,{yAxisId:"score",type:"monotone",dataKey:"proc",stroke:l.proc,strokeWidth:2,dot:!1}),i.comp&&(0,b.jsx)(cp.Line,{yAxisId:"score",type:"monotone",dataKey:"comp",stroke:l.comp,strokeWidth:2.6,dot:{r:2},activeDot:{r:5}})]})})})]})]})}function cL({activeDims:a,payload:c,label:d,names:e,colors:f,t:g}){if(!c?.length||!a)return null;let h=c[0]?.payload;return(0,b.jsxs)("div",{style:{background:"var(--card-bg)",border:"1px solid var(--border-dark)",borderRadius:9,padding:"9px 11px",fontSize:11,boxShadow:"0 6px 24px rgba(20,22,30,.12)",minWidth:130},children:[(0,b.jsxs)("div",{style:{fontWeight:700,marginBottom:6},children:[d,h?.anomaly?` \xb7 ⚠ ${g("quality.trend.anomaly")}`:""]}),["comp","res","proc","cost"].filter(b=>a[b]).map(a=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,margin:"3px 0",color:"var(--foreground-secondary)"},children:[(0,b.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:f[a]}}),e[a],(0,b.jsx)("b",{style:{marginLeft:"auto",color:"var(--foreground)"},children:Math.round(10*h[a])/10})]},a)),(0,b.jsxs)("div",{style:{marginTop:6,paddingTop:6,borderTop:"1px solid var(--border)",fontSize:10,color:"var(--foreground-muted)"},children:[g("quality.trend.sample")," ",h.n," · latency p95 ",Math.round(h.latencyP95)]})]})}function cM({t:a}){return(0,b.jsxs)("div",{style:cO,children:[(0,b.jsx)("span",{style:{...cP,background:"var(--warning-subtle)",color:"var(--warning)"},children:(0,b.jsx)(cI,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:a("quality.trend.title")})]})}let cN={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",marginBottom:14,scrollMarginTop:56},cO={padding:"13px 18px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},cP={width:22,height:22,borderRadius:6,display:"grid",placeItems:"center",flex:"0 0 22px"},cQ=(0,e.default)("stethoscope",[["path",{d:"M11 2v2",key:"1539x4"}],["path",{d:"M5 2v2",key:"1yf1q8"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1",key:"rb5t3r"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3",key:"x18d4x"}],["circle",{cx:"20",cy:"10",r:"2",key:"ts1r5v"}]]),cR=["var(--warning)","#2c6bd1","var(--primary)","var(--foreground-muted)","var(--success)"];function cS({report:a,onDrillTrace:d}){let{t:e}=(0,j.useLocale)(),f=a.problems,g=Math.max(1,...f.map(a=>a.impact)),h={high:e("quality.problems.high"),medium:e("quality.problems.medium"),low:e("quality.problems.low")},k=a.problemCounts.error,m=a.problemCounts.eval,[n,o]=(0,c.useState)(null),p=async()=>{let a=f.find(a=>"错误"===a.source&&a.relatedTraces.length>0&&!a.rootCauseModule)??f.find(a=>a.relatedTraces.length>0);if(a){o(e("quality.problems.diagSubmitting"));try{let b=await (0,l.apiFetch)(`/api/observe/executions/${encodeURIComponent(a.relatedTraces[0])}/agent-debug`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});o(b.ok||409===b.status?e("quality.problems.diagSubmitted"):e("quality.problems.diagFailed"))}catch{o(e("quality.problems.diagFailed"))}}};return(0,b.jsxs)("section",{id:"problems",style:cU,children:[(0,b.jsxs)("div",{style:cV,children:[(0,b.jsx)("span",{style:{...cW,background:"var(--error-subtle)",color:"var(--error)"},children:(0,b.jsx)(G.AlertTriangle,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:e("quality.problems.title")}),f.length>0&&(0,b.jsxs)("span",{style:{display:"inline-flex",gap:5},children:[(0,b.jsxs)("span",{style:{fontSize:10,fontWeight:700,padding:"2px 7px",borderRadius:5,background:"var(--error-subtle)",color:"var(--error)"},children:[e("quality.problems.sourceErr")," ",k]}),(0,b.jsxs)("span",{style:{fontSize:10,fontWeight:700,padding:"2px 7px",borderRadius:5,background:"var(--primary-subtle)",color:"var(--primary)"},children:[e("quality.problems.sourceEval")," ",m]})]}),(0,b.jsxs)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)",display:"inline-flex",alignItems:"center",gap:4},children:["· ",e("quality.problems.hint"),(0,b.jsx)(i.Term,{id:"quality-impact",render:"compact"})]})]}),0===f.length&&0===a.skillDrag.length?(0,b.jsx)("div",{style:{padding:32,textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:e("quality.problems.empty")}):(0,b.jsxs)("div",{style:{padding:"16px 18px",display:"grid",gridTemplateColumns:"1.55fr 1fr",gap:18},children:[(0,b.jsx)("div",{children:f.slice(0,8).map((a,c)=>(0,b.jsx)(cT,{rank:c+1,p:a,maxImpact:g,sevLabel:h,t:e,onDrill:d},a.key))}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,b.jsx)("div",{style:{fontSize:11.5,fontWeight:700,color:"var(--foreground-secondary)"},children:e("quality.problems.nodeDist")}),a.errorNodeDistribution.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{style:{display:"flex",height:34,borderRadius:8,overflow:"hidden",border:"1px solid var(--border)"},children:a.errorNodeDistribution.map((a,c)=>(0,b.jsx)("div",{style:{width:`${a.pct}%`,background:cR[c%cR.length],display:"grid",placeItems:"center",color:"#fff",fontSize:10,fontWeight:700},children:a.pct>=10?`${a.pct}%`:""},a.node))}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:a.errorNodeDistribution.map((a,c)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11.5,color:"var(--foreground-secondary)"},children:[(0,b.jsx)("span",{style:{width:9,height:9,borderRadius:3,background:cR[c%cR.length]}}),a.node,(0,b.jsxs)("b",{style:{marginLeft:"auto",color:"var(--foreground)"},children:[a.count," 次 · ",a.pct,"%"]})]},a.node))})]}):(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--foreground-muted)",padding:"8px 0"},children:"—"}),(0,b.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:12},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:8},children:[(0,b.jsx)(cQ,{size:12,style:{color:"var(--primary)"}}),(0,b.jsx)("span",{style:{fontSize:11.5,fontWeight:700,color:"var(--foreground-secondary)"},children:e("quality.problems.moduleDist")}),(0,b.jsxs)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)",marginLeft:"auto"},children:[e("quality.problems.diagCoverage")," ",a.diagnosisCoverage.diagnosed,"/",Math.max(a.diagnosisCoverage.errorish,a.diagnosisCoverage.diagnosed)]})]}),a.moduleFingerprint.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{style:{display:"flex",height:26,borderRadius:7,overflow:"hidden",border:"1px solid var(--border)",marginBottom:8},children:a.moduleFingerprint.map((a,c)=>(0,b.jsx)("div",{style:{width:`${a.pct}%`,background:y[c%y.length],display:"grid",placeItems:"center",color:"#fff",fontSize:9.5,fontWeight:700},children:a.pct>=14?`${a.pct}%`:""},a.module))}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:a.moduleFingerprint.map((a,c)=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11,color:"var(--foreground-secondary)"},children:[(0,b.jsx)("span",{style:{width:8,height:8,borderRadius:2,background:y[c%y.length]}}),x[a.module]??a.module,(0,b.jsxs)("b",{style:{marginLeft:"auto",color:"var(--foreground)"},children:[a.count," · ",a.pct,"%"]})]},a.module))})]}):(0,b.jsx)("div",{style:{fontSize:11,color:"var(--foreground-muted)",lineHeight:1.5},children:e("quality.problems.diagEmpty")}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:8},children:[(0,b.jsxs)("button",{onClick:p,style:{fontSize:10.5,fontWeight:700,padding:"4px 10px",borderRadius:6,cursor:"pointer",border:"1px solid var(--primary-subtle-border)",background:"var(--primary-subtle)",color:"var(--primary)",display:"inline-flex",alignItems:"center",gap:4},children:[(0,b.jsx)(cQ,{size:11})," ",e("quality.problems.runDiag")]}),n&&(0,b.jsx)("span",{style:{fontSize:10,color:"var(--foreground-muted)"},children:n})]})]}),(0,b.jsxs)("div",{style:{fontSize:11,color:"var(--foreground-muted)",background:"var(--background-secondary)",border:"1px dashed var(--border)",borderRadius:8,padding:"9px 12px",lineHeight:1.5,display:"flex",alignItems:"center",gap:4},children:[e("quality.problems.pareto"),(0,b.jsx)(i.Term,{id:"quality-pareto",render:"compact"})]}),(0,b.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:12},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:8},children:[(0,b.jsx)("span",{style:{fontSize:11.5,fontWeight:700,color:"var(--foreground-secondary)"},children:e("quality.problems.skillDrag")}),(0,b.jsx)(i.Term,{id:"quality-skill-drag",render:"compact"}),(0,b.jsx)("span",{style:{fontSize:9.5,color:"var(--foreground-muted)"},children:e("quality.problems.skillDragHint")})]}),0===a.skillDrag.length?(0,b.jsx)("div",{style:{fontSize:11,color:"var(--foreground-muted)",padding:"2px 0"},children:e("quality.problems.skillDragEmpty")}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:a.skillDrag.slice(0,5).map(a=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:11.5,flexWrap:"wrap"},children:[(0,b.jsxs)("span",{style:{fontWeight:700,color:"var(--foreground)"},children:[a.name,(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)",fontWeight:500},children:["@v",a.version??0]})]}),(0,b.jsx)("span",{style:{fontSize:9.5,fontWeight:700,color:u(a.topSeverity)},children:h[a.topSeverity]}),(0,b.jsxs)("span",{style:{color:"var(--foreground-secondary)"},children:[e("quality.problems.unresolvedN")," ",(0,b.jsx)("b",{style:{color:"var(--foreground)"},children:a.unresolved})," · ",e("quality.problems.affected")," ",(0,b.jsxs)("b",{style:{color:"var(--foreground)"},children:[a.affectedPct,"%"]})]}),(0,b.jsxs)("a",{href:`/skill-opt/${encodeURIComponent(a.name)}/${a.version??0}`,style:{marginLeft:"auto",fontSize:10.5,fontWeight:700,color:"var(--success)",textDecoration:"none",whiteSpace:"nowrap"},children:[e("quality.problems.optimize")," →"]})]},`${a.name}@${a.version}`))})]})]})]})]})}function cT({rank:a,p:c,maxImpact:d,sevLabel:e,t:f,onDrill:g}){let h=v[c.attribution],i=c.relatedTraces.length>0;return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:11,padding:"11px 0",borderBottom:"1px solid var(--border)"},children:[(0,b.jsx)("div",{style:{fontSize:12,fontWeight:700,color:"var(--foreground-muted)",width:16,fontVariantNumeric:"tabular-nums"},children:a}),(0,b.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,b.jsxs)("div",{style:{fontSize:12.5,fontWeight:700,display:"flex",alignItems:"center",gap:7,flexWrap:"wrap"},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:c.desc}),(0,b.jsx)("span",{style:{fontSize:9,fontWeight:700,padding:"2px 6px",borderRadius:4,background:"错误"===c.source?"var(--error-subtle)":"var(--primary-subtle)",color:"错误"===c.source?"var(--error)":"var(--primary)"},children:f("错误"===c.source?"quality.problems.sourceErr":"quality.problems.sourceEval")}),c.node&&(0,b.jsx)("span",{style:{fontSize:9,fontWeight:600,padding:"2px 6px",borderRadius:4,background:"var(--background-secondary)",color:"var(--foreground-secondary)"},children:c.node}),c.rootCauseModule&&(0,b.jsxs)("span",{title:`${f("quality.problems.diagnosed")} ${c.diagnosedTraces??1} trace`,style:{fontSize:9,fontWeight:700,padding:"2px 6px",borderRadius:4,background:"var(--primary-subtle)",color:"var(--primary)",display:"inline-flex",alignItems:"center",gap:3},children:["⚕ ",f("quality.problems.diagnosed")," · ",x[c.rootCauseModule]??c.rootCauseModule]})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6,flexWrap:"wrap"},children:[(0,b.jsx)("span",{style:{flex:1,maxWidth:160,height:6,borderRadius:5,background:"var(--background-secondary)",overflow:"hidden"},children:(0,b.jsx)("span",{style:{display:"block",height:"100%",width:`${c.impact/d*100}%`,background:u(c.severity),borderRadius:5}})}),(0,b.jsxs)("span",{style:{fontSize:11,fontWeight:700,color:"var(--foreground-secondary)"},children:[c.frequency," 次"]}),null!=c.cumulativePct&&(0,b.jsxs)("span",{style:{fontSize:10,color:"var(--foreground-muted)"},children:[f("quality.problems.cumulative")," ",c.cumulativePct,"%"]}),(0,b.jsx)("span",{style:{fontSize:9.5,fontWeight:600,padding:"3px 7px",borderRadius:5,background:h.bg,color:h.fg},children:c.attribution}),(0,b.jsx)("span",{style:{fontSize:9.5,fontWeight:700,color:u(c.severity)},children:e[c.severity]}),(0,b.jsxs)("span",{style:{fontSize:10,color:"var(--foreground-muted)"},children:["· ",c.affectedDimensions.join("/")]}),i&&(0,b.jsxs)("button",{onClick:()=>g(c.relatedTraces[0]),style:{marginLeft:"auto",border:"none",background:"none",cursor:"pointer",fontSize:10.5,fontWeight:700,color:"var(--primary)",display:"inline-flex",alignItems:"center",gap:3},children:[f("quality.problems.relatedTraces")," ",c.relatedTraces.length," ",(0,b.jsx)(q,{size:12})]})]}),(c.suggestedFix||c.skillRef)&&(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6,flexWrap:"wrap"},children:[c.skillRef&&(0,b.jsxs)("a",{href:`/skill-opt/${encodeURIComponent(c.skillRef.name)}/${c.skillRef.version??0}`,style:{fontSize:9.5,fontWeight:700,padding:"2px 7px",borderRadius:5,background:"var(--success-subtle)",color:"var(--success)",textDecoration:"none",whiteSpace:"nowrap"},children:[c.skillRef.name,"@v",c.skillRef.version??0," · ",f("quality.problems.optimize")," →"]}),c.suggestedFix&&(0,b.jsxs)("span",{title:c.suggestedFix,style:{fontSize:10.5,color:"var(--foreground-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:520},children:[f("quality.problems.fix"),":",c.suggestedFix]})]})]})]})}let cU={background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",marginBottom:14,scrollMarginTop:56},cV={padding:"13px 18px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},cW={width:22,height:22,borderRadius:6,display:"grid",placeItems:"center",flex:"0 0 22px"};var cX=a.i(707963);let cY=(0,e.default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);var cZ=a.i(474215);let c$=/(inject|越权|未授权|unauthorized|pii|敏感|泄露|leak)/i;function c_({agent:a,user:d,from:e,to:f,skill:g,statusFilter:h,bucketLabel:i,onClearBucket:k,onDrill:m,collapsed:n,onToggleCollapse:o}){let{t:p}=(0,j.useLocale)(),[q,r]=(0,c.useState)([]),[u,v]=(0,c.useState)(0),[w,x]=(0,c.useState)(1),[y,z]=(0,c.useState)(!0),A=(0,c.useCallback)(()=>{if(!a||!d)return;z(!0);let b=new URLSearchParams({agent:a,user:d,from:e,to:f,page:String(w),pageSize:String(20)});g&&"all"!==g&&b.set("skill",g),(0,l.apiFetch)(`/api/quality/executions?${b.toString()}`).then(a=>a.json()).then(a=>{r(Array.isArray(a.records)?a.records:[]),v(a.total??0)}).catch(()=>{r([]),v(0)}).finally(()=>z(!1))},[a,d,e,f,g,w]);(0,c.useEffect)(()=>{A()},[A]);let B=h&&"all"!==h?q.filter(a=>{let b;return null!=a.result_score&&((b=a.result_score)>=85?"达标":b>=70?"关注":"异常")===h}):q,C=Math.max(1,Math.ceil(u/20)),D=0===u?0:(w-1)*20+1,E=Math.min(u,20*w);return(0,b.jsxs)("section",{id:"exec",style:{background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:12,boxShadow:"0 1px 2px rgba(20,22,30,.04)",overflow:"hidden",marginBottom:14,scrollMarginTop:56},children:[(0,b.jsxs)("div",{style:{padding:"14px 18px",borderBottom:n?"none":"1px solid var(--border)",display:"flex",alignItems:"center",gap:10,cursor:o?"pointer":void 0},onClick:o,children:[(0,b.jsx)("span",{style:{...c3,background:"var(--success-subtle)",color:"var(--success)"},children:(0,b.jsx)(cY,{size:13})}),(0,b.jsx)("span",{style:{fontSize:13.5,fontWeight:800},children:p("quality.table.title")}),(0,b.jsxs)("span",{style:{background:"var(--primary-subtle)",color:"var(--primary)",fontSize:11,fontWeight:700,padding:"4px 8px",borderRadius:6},children:[u," ",p("quality.table.count")]}),i&&(0,b.jsxs)("button",{onClick:a=>{a.stopPropagation(),k?.()},style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,padding:"4px 8px",borderRadius:6,border:"1px solid var(--primary-subtle-border)",background:"var(--primary-subtle)",color:"var(--primary)",cursor:"pointer"},children:[i," ",(0,b.jsx)(cZ.X,{size:12})]}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsx)("span",{style:{fontSize:10.5,color:"var(--foreground-muted)"},children:p("quality.table.note")}),o&&(0,b.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--primary)"},children:n?p("quality.fold.expand")+" ▾":p("quality.fold.collapse")+" ▴"})]}),n?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{style:{overflowX:"auto"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse"},children:[(0,b.jsx)("thead",{children:(0,b.jsx)("tr",{children:[p("quality.table.traceId"),p("quality.table.agent"),p("quality.table.task"),p("quality.table.score"),p("quality.table.signals"),p("quality.table.status"),p("quality.table.time")].map((a,c)=>(0,b.jsx)("th",{style:{fontSize:10.5,fontWeight:700,color:"var(--foreground-muted)",textTransform:"uppercase",letterSpacing:"0.05em",textAlign:"left",padding:"10px 14px",background:"var(--background-secondary)",borderBottom:"1px solid var(--border)",whiteSpace:"nowrap"},children:a},c))})}),(0,b.jsx)("tbody",{children:y?(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:7,style:{padding:28,textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:p("quality.table.loading")})}):0===B.length?(0,b.jsx)("tr",{children:(0,b.jsx)("td",{colSpan:7,style:{padding:28,textAlign:"center",color:"var(--foreground-muted)",fontSize:12},children:p("quality.table.empty")})}):B.map(a=>{let c,d,e=a.result_score,f=null==e?"pending":e>=85?"success":e>=70?"warning":"error",g="running"===a.result_eval_status?p("quality.table.evaluating"):"failed"===a.result_eval_status?p("quality.table.evalFailed"):"missing"===a.result_eval_status?p("quality.table.notEvaluated"):null,h=Object.entries(a.result_metrics??{}).map(([a,b])=>`${a}: ${b.score??"N/A"}`).join("\n");return(0,b.jsxs)("tr",{onClick:()=>m(a.id),style:{cursor:"pointer"},onMouseEnter:a=>a.currentTarget.style.background="var(--background-secondary)",onMouseLeave:a=>a.currentTarget.style.background="transparent",children:[(0,b.jsx)("td",{style:c2,children:(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono, monospace)",fontSize:11.5,color:"var(--primary)",fontWeight:600},children:(a.id||"").slice(0,14)||"—"})}),(0,b.jsx)("td",{style:c2,children:(0,b.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--foreground-secondary)"},children:a.agent||"—"})}),(0,b.jsx)("td",{style:{...c2,maxWidth:300},children:(0,b.jsx)("div",{style:{fontSize:11.5,color:"var(--foreground-secondary)",lineHeight:1.4,overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical"},children:a.query||"—"})}),(0,b.jsx)("td",{style:c2,children:(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5,minWidth:96},children:[(0,b.jsxs)("span",{style:{fontSize:15,fontWeight:700,color:null==e?"var(--foreground-muted)":t(e)},children:[null==e?"N/A":e,(0,b.jsx)("span",{style:{fontSize:10,color:"var(--foreground-muted)"},children:null==e?"":"/100"})]}),(0,b.jsx)("span",{style:{height:5,borderRadius:5,background:"var(--background-secondary)",overflow:"hidden"},children:(0,b.jsx)("span",{style:{display:"block",height:"100%",width:`${e??0}%`,background:null==e?"var(--foreground-muted)":t(e),borderRadius:5}})})]})}),(0,b.jsx)("td",{style:c2,children:(0,b.jsxs)("div",{style:{display:"flex",gap:5,flexWrap:"wrap"},children:[(0,b.jsx)("span",{title:h,children:(0,b.jsx)(c0,{sig:null==(c=a.result_score)?"warn":c>=85?"ok":c>=70?"warn":"bad",label:p("quality.table.sigResult")})}),(0,b.jsx)(c0,{sig:0===(d=a.tool_call_error_count??0)?"ok":d<=1?"warn":"bad",label:p("quality.table.sigTool")}),(0,b.jsx)(c0,{sig:null==a.latency||a.latency<6e4?"ok":a.latency<12e4?"warn":"bad",label:p("quality.table.sigCost")}),(0,b.jsx)(c0,{sig:(a.failures??[]).some(a=>c$.test(`${a.failure_type??""} ${a.description??""}`))?"bad":"ok",label:p("quality.table.sigSafe")})]})}),(0,b.jsx)("td",{style:c2,children:g?(0,b.jsx)("span",{style:{fontSize:10.5,color:"failed"===a.result_eval_status?"var(--error)":"var(--foreground-muted)"},children:g}):(0,b.jsx)(s.StatusBadge,{status:f,label:p(`quality.status.${(e??0)>=85?"达标":(e??0)>=70?"关注":"异常"}`)})}),(0,b.jsx)("td",{style:c2,children:(0,b.jsx)("span",{style:{fontFamily:"var(--font-mono, monospace)",fontSize:11,color:"var(--foreground-muted)",whiteSpace:"nowrap"},children:function(a){if(!a)return"—";let b=new Date(a);return Number.isNaN(b.getTime())?"—":`${b.getFullYear()}/${String(b.getMonth()+1).padStart(2,"0")}/${String(b.getDate()).padStart(2,"0")} ${String(b.getHours()).padStart(2,"0")}:${String(b.getMinutes()).padStart(2,"0")}`}(a.timestamp)})})]},a.id||a.task_id||a.upload_id)})})]})}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"12px 18px",fontSize:11.5,color:"var(--foreground-muted)"},children:[(0,b.jsxs)("span",{children:[p("quality.table.showing")," ",D," ",p("quality.table.to")," ",E," ",p("quality.table.of")," ",u," ",p("quality.table.total")]}),(0,b.jsx)("span",{style:{flex:1}}),(0,b.jsxs)("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[(0,b.jsx)(c1,{disabled:w<=1,onClick:()=>x(a=>Math.max(1,a-1)),children:(0,b.jsx)(cX.ChevronLeft,{size:13})}),(0,b.jsxs)("span",{style:{fontSize:11.5,fontWeight:600,color:"var(--foreground-secondary)",padding:"0 6px"},children:[w," / ",C]}),(0,b.jsx)(c1,{disabled:w>=C,onClick:()=>x(a=>Math.min(C,a+1)),children:(0,b.jsx)(W.ChevronRight,{size:13})})]})]})]})]})}function c0({sig:a,label:c}){let[d,e]={ok:["var(--success-subtle)","var(--success)"],warn:["var(--warning-subtle)","var(--warning)"],bad:["var(--error-subtle)","var(--error)"]}[a];return(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:10,fontWeight:600,padding:"3px 7px",borderRadius:6,background:d,color:e},children:[(0,b.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:e}}),c]})}function c1({children:a,disabled:c,onClick:d}){return(0,b.jsx)("button",{disabled:c,onClick:d,style:{width:26,height:26,borderRadius:7,border:"1px solid var(--border)",display:"grid",placeItems:"center",background:"var(--card-bg)",color:"var(--foreground-secondary)",cursor:c?"not-allowed":"pointer",opacity:c?.4:1},children:a})}let c2={padding:"12px 14px",borderBottom:"1px solid var(--border)",verticalAlign:"middle"},c3={width:22,height:22,borderRadius:6,display:"grid",placeItems:"center",flex:"0 0 22px"},c4={result:"result",cost:"trend",process:"process",exec:"exec"};function c5(){let{t:a}=(0,j.useLocale)(),{user:e}=(0,k.useAuth)(),f=(0,d.useRouter)(),[g,m]=(0,c.useState)([]),[o,p]=(0,c.useState)([]),[q,r]=(0,c.useState)({agent:"",window:"1w",skill:"all",status:"all"}),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(!1),[w,x]=(0,c.useState)(null),[y,A]=(0,c.useState)({result:!0,trend:!1,process:!1,exec:!1});(0,c.useEffect)(()=>{e&&(0,l.apiFetch)(`/api/quality/agents?user=${encodeURIComponent(e)}`).then(a=>a.json()).then(a=>{let b=Array.isArray(a.agents)?a.agents:[];m(b),p(Array.isArray(a.skills)?a.skills:[]),b.length&&r(a=>a.agent?a:{...a,agent:b[0].name})}).catch(()=>m([]))},[e]);let B=(0,c.useCallback)((a,b,c)=>{if(!a||!e)return void t(null);v(!0),x(null);let d=new URLSearchParams({agent:a,window:b,user:e});c&&"all"!==c&&d.set("skill",c),(0,l.apiFetch)(`/api/quality/report?${d.toString()}`).then(a=>a.json()).then(a=>t(a?.error?null:a)).catch(()=>t(null)).finally(()=>v(!1))},[e]);(0,c.useEffect)(()=>{B(q.agent,q.window,q.skill)},[q.agent,q.window,q.skill,B]);let C=(0,c.useMemo)(()=>{var a;let b;return a=q.window,{from:new Date((b=new Date).getTime()-864e5*("1d"===a?1:"1w"===a?7:30)).toISOString(),to:b.toISOString()}},[q.window]),D=w??C,E=(0,c.useCallback)(a=>{let b=c4[a];b&&A(a=>a[b]?a:{...a,[b]:!0}),requestAnimationFrame(()=>setTimeout(()=>{document.getElementById(a)?.scrollIntoView({behavior:"smooth",block:"start"})},40))},[]),F=(0,c.useCallback)(a=>{a&&f.push(`/fault?executionId=${encodeURIComponent(a)}`)},[f]),G=(0,c.useCallback)(a=>{if(s){var b;let c,d,e;x((b=s.trend.granularity,d=new Date((c=new Date(a.bucket_ts)).getTime()+("hour"===b?36e5:"day"===b?864e5:6048e5)),e="hour"===b?`${String(c.getHours()).padStart(2,"0")}:00`:`${c.getMonth()+1}/${c.getDate()}`,{from:c.toISOString(),to:d.toISOString(),label:e})),E("exec")}},[s,E]),H=s&&!s.meta.empty,I=[{id:"verdict",label:a("quality.nav.verdict")},{id:"analysis",label:a("quality.nav.dims")},{id:"problems",label:a("quality.nav.problems")},{id:"result",label:a("quality.nav.result")},{id:"cost",label:a("quality.nav.trend")},{id:"process",label:a("quality.nav.process")},{id:"exec",label:a("quality.nav.exec")}];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.AppTopBar,{title:(0,b.jsx)(i.Term,{id:"quality-monitoring",label:a("quality.title")}),showDefaultActions:!1}),(0,b.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"18px 20px 48px",background:"var(--background)"},children:(0,b.jsxs)("div",{style:{width:"100%"},children:[(0,b.jsx)(n,{agents:g,skills:o,value:q,onChange:a=>r(b=>({...b,...a}))}),H&&(0,b.jsx)("nav",{style:{position:"sticky",top:-18,zIndex:20,display:"flex",gap:6,padding:"8px 2px",background:"color-mix(in srgb, var(--background) 90%, transparent)",backdropFilter:"blur(8px)",marginBottom:6},children:I.map(a=>(0,b.jsx)("button",{onClick:()=>E(a.id),style:{fontSize:11,fontWeight:600,padding:"4px 10px",borderRadius:14,cursor:"pointer",border:"1px solid var(--border)",background:"var(--card-bg)",color:"var(--foreground-secondary)"},children:a.label},a.id))}),q.agent?u&&!s?(0,b.jsx)(c7,{label:a("quality.loading")}):s&&s.meta.empty?(0,b.jsx)(c6,{title:a("quality.empty.noTraces"),desc:a("quality.empty.noTracesDesc")}):s?(0,b.jsxs)("div",{style:{opacity:u?.6:1,transition:"opacity .15s"},children:[(0,b.jsx)(z,{report:s,onDrillTrace:F,onAnchor:E}),(0,b.jsx)(J,{report:s,onAnchor:E}),(0,b.jsx)(cS,{report:s,onDrillTrace:F}),(0,b.jsx)(ai,{report:s}),(0,b.jsx)(cK,{report:s,onBucketClick:G,collapsed:!y.trend,onToggleCollapse:()=>A(a=>({...a,trend:!a.trend}))}),(0,b.jsx)(O,{report:s,collapsed:!y.process,onToggleCollapse:()=>A(a=>({...a,process:!a.process}))}),(0,b.jsx)(c_,{agent:q.agent,user:e,from:D.from,to:D.to,skill:q.skill,statusFilter:q.status,bucketLabel:w?.label??null,onClearBucket:()=>x(null),onDrill:F,collapsed:!y.exec,onToggleCollapse:()=>A(a=>({...a,exec:!a.exec}))},`${q.agent}|${D.from}|${D.to}|${q.skill}`)]}):(0,b.jsx)(c7,{label:a("quality.loading")}):(0,b.jsx)(c6,{title:a("quality.empty.noAgent"),desc:a("quality.empty.noAgentDesc")})]})})]})}function c6({title:a,desc:c}){return(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,padding:"80px 20px",textAlign:"center"},children:[(0,b.jsx)("div",{style:{width:48,height:48,borderRadius:12,background:"var(--primary-subtle)",color:"var(--primary)",display:"grid",placeItems:"center"},children:(0,b.jsx)(f,{size:24})}),(0,b.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"var(--foreground)"},children:a}),(0,b.jsx)("div",{style:{fontSize:12.5,color:"var(--foreground-muted)",maxWidth:420,lineHeight:1.6},children:c})]})}function c7({label:a}){return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"80px 20px",color:"var(--foreground-muted)",fontSize:13},children:[(0,b.jsx)(g.Loader2,{size:18,className:"animate-spin"})," ",a]})}a.s(["default",()=>c5],75803)}];
2
+
3
+ //# sourceMappingURL=src_app_%28main%29_quality_page_tsx_26bb8e80._.js.map