@witty-ai/skill-insight 0.5.0-beta → 0.7.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/.env.example +6 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +4 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/routes-manifest.json +24 -0
  7. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  8. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  19. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/api/config/create/route.js +4 -3
  25. package/.next/standalone/.next/server/app/api/config/create/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/config/route.js +5 -4
  27. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/data/route.js +6 -5
  29. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/evaluation/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +6 -5
  32. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js +4 -3
  34. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js +1 -1
  36. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +4 -3
  37. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/rejudge/route.js +6 -5
  39. package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/session/route.js +4 -4
  41. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/app-paths-manifest.json +3 -0
  43. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/build-manifest.json +11 -0
  44. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/server-reference-manifest.json +4 -0
  45. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js +6 -0
  46. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.map +5 -0
  47. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.nft.json +1 -0
  48. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route_client-reference-manifest.js +2 -0
  49. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/app-paths-manifest.json +3 -0
  50. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/build-manifest.json +11 -0
  51. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/server-reference-manifest.json +4 -0
  52. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js +6 -0
  53. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.map +5 -0
  54. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.nft.json +1 -0
  55. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route_client-reference-manifest.js +2 -0
  56. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +3 -2
  58. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js +5 -2
  60. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js +5 -2
  62. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -5
  64. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/skills/route.js +3 -2
  66. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/app-paths-manifest.json +3 -0
  68. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/build-manifest.json +11 -0
  69. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/server-reference-manifest.json +4 -0
  70. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js +8 -0
  71. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.map +5 -0
  72. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -0
  73. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route_client-reference-manifest.js +2 -0
  74. package/.next/standalone/.next/server/app/api/skills/upload/route.js +5 -2
  75. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/task-stats/route/app-paths-manifest.json +3 -0
  77. package/.next/standalone/.next/server/app/api/task-stats/route/build-manifest.json +11 -0
  78. package/.next/standalone/.next/server/app/api/task-stats/route/server-reference-manifest.json +4 -0
  79. package/.next/standalone/.next/server/app/api/task-stats/route.js +12 -0
  80. package/.next/standalone/.next/server/app/api/task-stats/route.js.map +5 -0
  81. package/.next/standalone/.next/server/app/api/task-stats/route.js.nft.json +1 -0
  82. package/.next/standalone/.next/server/app/api/task-stats/route_client-reference-manifest.js +2 -0
  83. package/.next/standalone/.next/server/app/api/upload/route.js +5 -4
  84. package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/details/page/react-loadable-manifest.json +2 -2
  86. package/.next/standalone/.next/server/app/details/page.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/details/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/details.html +1 -1
  89. package/.next/standalone/.next/server/app/details.rsc +5 -5
  90. package/.next/standalone/.next/server/app/details.segments/_full.segment.rsc +5 -5
  91. package/.next/standalone/.next/server/app/details.segments/_head.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/details.segments/_index.segment.rsc +3 -3
  93. package/.next/standalone/.next/server/app/details.segments/_tree.segment.rsc +2 -2
  94. package/.next/standalone/.next/server/app/details.segments/details/__PAGE__.segment.rsc +2 -2
  95. package/.next/standalone/.next/server/app/details.segments/details.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/index.html +1 -1
  97. package/.next/standalone/.next/server/app/index.rsc +5 -5
  98. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  99. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  100. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  102. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/login.html +1 -1
  106. package/.next/standalone/.next/server/app/login.rsc +5 -5
  107. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +5 -5
  108. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  110. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  111. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  112. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/skills.html +1 -1
  118. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  119. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  120. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  122. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
  124. package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  125. package/.next/standalone/.next/server/app-paths-manifest.json +4 -0
  126. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02ddba88._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/[root-of-the-server]__15dbd1f2._.js +3 -0
  128. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c95bcde._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/[root-of-the-server]__23efcd78._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a6d443b._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +1 -1
  132. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5444db55._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/[root-of-the-server]__591248f3._.js +1 -1
  134. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d8178f6._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6261d672._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fc12878._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8402dfd1._.js +3 -0
  139. package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +1 -1
  140. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89404730._.js +3 -0
  141. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98b3de5e._.js +1 -1
  142. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d551ea2._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a4d3d791._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3d72e3._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa5c8858._.js +2 -2
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b11acc79._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba01f286._.js +1 -1
  148. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd91659b._.js +1 -1
  149. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c200214a._.js +1 -1
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c20da96a._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c602c518._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7fab946._.js +1 -1
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8c1808b._.js +1 -1
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9b9fecc._.js +1 -1
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddf63a21._.js +3 -0
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e280561d._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e550423c._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f9e66e02._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/_33c0c729._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/_3e8b4d8c._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/_46f10554._.js +3 -0
  162. package/.next/standalone/.next/server/chunks/_4c806e26._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/_ddffef3e._.js +1 -1
  165. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_setup_opencode-tui_route_actions_fc8ae29f.js +3 -0
  166. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_skills_sync-enterprise_route_actions_0ca45899.js +3 -0
  167. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_task-stats_route_actions_983505cd.js +3 -0
  168. package/.next/standalone/.next/server/chunks/ce889_server_app_api_setup_opencode-commands_si-optimizer_route_actions_fcde30ef.js +3 -0
  169. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +47 -4
  170. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -1
  171. package/.next/standalone/.next/server/chunks/src_98433cb8._.js +237 -0
  172. package/.next/standalone/.next/server/chunks/src_c8971a2d._.js +57 -8
  173. package/.next/standalone/.next/server/chunks/src_lib_119f6c7b._.js +3 -0
  174. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9ab7cc4a._.js → [root-of-the-server]__082c32a2._.js} +2 -2
  175. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__51073007._.js +1 -1
  176. package/.next/standalone/.next/server/chunks/ssr/_049876f0._.js +1 -1
  177. package/.next/standalone/.next/server/chunks/ssr/_09546b95._.js +1 -1
  178. package/.next/standalone/.next/server/chunks/ssr/_8f5379ab._.js +1 -1
  179. package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +9 -9
  180. package/.next/standalone/.next/server/chunks/ssr/{_b121f1ae._.js → _e2faf4f5._.js} +2 -2
  181. package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +2 -1
  182. package/.next/standalone/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_3582f3d0.js +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_a1341fea._.js +1 -1
  184. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_e1de6ed8._.js +1 -1
  185. package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +1 -1
  186. package/.next/standalone/.next/server/chunks/ssr/src_app_login_page_tsx_72f58654._.js +1 -1
  187. package/.next/standalone/.next/server/pages/404.html +1 -1
  188. package/.next/standalone/.next/server/pages/500.html +2 -2
  189. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  191. package/.next/standalone/.next/static/chunks/{737b8cff3c6a4e30.js → 015467355d3866a3.js} +1 -1
  192. package/.next/standalone/.next/static/chunks/09f192c9b0609ad8.js +1 -0
  193. package/.next/standalone/.next/static/chunks/1945a5514fbc393c.css +1 -0
  194. package/.next/{static/chunks/07c9f28a269c701a.js → standalone/.next/static/chunks/361e4cf1e9a71ccb.js} +1 -1
  195. package/.next/{static/chunks/5432ce4a494bc74d.js → standalone/.next/static/chunks/60bc50374fd32f20.js} +3 -3
  196. package/.next/standalone/.next/static/chunks/{251551dcdf74a60d.js → 65bac0880a87bff3.js} +1 -1
  197. package/.next/standalone/.next/static/chunks/961f7fa606dd26a8.js +1 -0
  198. package/.next/standalone/.next/static/chunks/bab2ffd4f527acfb.js +1 -0
  199. package/.next/standalone/.next/static/chunks/c513373e5cfedd5b.js +2 -0
  200. package/.next/standalone/.next/static/chunks/ca3017e51e817855.js +1 -0
  201. package/.next/{static/chunks/7e35f4cf2e266022.js → standalone/.next/static/chunks/cb104c3cb4c52833.js} +1 -1
  202. package/.next/{static/chunks/ff6357067630b168.js → standalone/.next/static/chunks/e13d208072a48316.js} +1 -1
  203. package/.next/standalone/.next/static/chunks/{e09d9ee16fe90255.js → f786bb68e17b12b4.js} +1 -1
  204. package/.next/standalone/.next/static/chunks/fc61b990c5ec4ef4.js +109 -0
  205. package/.next/standalone/node_modules/.prisma/client/edge.js +7 -3
  206. package/.next/standalone/node_modules/.prisma/client/index-browser.js +4 -0
  207. package/.next/standalone/node_modules/.prisma/client/index.js +7 -3
  208. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  209. package/.next/standalone/node_modules/.prisma/client/schema.prisma +26 -22
  210. package/.next/standalone/node_modules/.prisma/client/wasm.js +4 -0
  211. package/.next/standalone/node_modules/adm-zip/util/constants.js +142 -0
  212. package/.next/standalone/node_modules/adm-zip/util/decoder.js +5 -0
  213. package/.next/standalone/node_modules/adm-zip/util/errors.js +63 -0
  214. package/.next/standalone/node_modules/adm-zip/util/fattr.js +76 -0
  215. package/.next/standalone/node_modules/adm-zip/util/index.js +5 -0
  216. package/.next/standalone/node_modules/adm-zip/util/utils.js +339 -0
  217. package/.next/standalone/package.json +6 -2
  218. package/.next/standalone/prisma/schema.prisma +7 -3
  219. package/.next/standalone/scripts/opencode_plugin.ts +158 -50
  220. package/.next/standalone/scripts/opencode_tui_plugin.tsx +308 -0
  221. package/.next/standalone/scripts/si-optimizer.md +5 -0
  222. package/.next/static/chunks/{737b8cff3c6a4e30.js → 015467355d3866a3.js} +1 -1
  223. package/.next/static/chunks/09f192c9b0609ad8.js +1 -0
  224. package/.next/static/chunks/1945a5514fbc393c.css +1 -0
  225. package/.next/{standalone/.next/static/chunks/07c9f28a269c701a.js → static/chunks/361e4cf1e9a71ccb.js} +1 -1
  226. package/.next/{standalone/.next/static/chunks/5432ce4a494bc74d.js → static/chunks/60bc50374fd32f20.js} +3 -3
  227. package/.next/static/chunks/{251551dcdf74a60d.js → 65bac0880a87bff3.js} +1 -1
  228. package/.next/static/chunks/961f7fa606dd26a8.js +1 -0
  229. package/.next/static/chunks/bab2ffd4f527acfb.js +1 -0
  230. package/.next/static/chunks/c513373e5cfedd5b.js +2 -0
  231. package/.next/static/chunks/ca3017e51e817855.js +1 -0
  232. package/.next/{standalone/.next/static/chunks/7e35f4cf2e266022.js → static/chunks/cb104c3cb4c52833.js} +1 -1
  233. package/.next/{standalone/.next/static/chunks/ff6357067630b168.js → static/chunks/e13d208072a48316.js} +1 -1
  234. package/.next/static/chunks/{e09d9ee16fe90255.js → f786bb68e17b12b4.js} +1 -1
  235. package/.next/static/chunks/fc61b990c5ec4ef4.js +109 -0
  236. package/package.json +6 -2
  237. package/prisma/schema.prisma +7 -3
  238. package/scripts/activate_telemetry.sh +44 -1
  239. package/scripts/opencode_plugin.ts +158 -50
  240. package/scripts/opencode_tui_plugin.tsx +308 -0
  241. package/scripts/si-optimizer.md +5 -0
  242. package/scripts/utils.js +0 -1
  243. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1013b265._.js +0 -3
  244. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +0 -3
  245. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +0 -3
  246. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b835ea7f._.js +0 -3
  247. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +0 -3
  248. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +0 -3
  249. package/.next/standalone/.next/server/chunks/_41a98bd8._.js +0 -3
  250. package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +0 -175
  251. package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +0 -3
  252. package/.next/standalone/.next/static/chunks/01eddf501c574a44.js +0 -1
  253. package/.next/standalone/.next/static/chunks/1e782a49beaf489c.js +0 -1
  254. package/.next/standalone/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
  255. package/.next/standalone/.next/static/chunks/67bd1a5de2195779.js +0 -1
  256. package/.next/standalone/.next/static/chunks/a87b5e84254095a5.js +0 -1
  257. package/.next/standalone/.next/static/chunks/c6bd2818656b1f20.css +0 -1
  258. package/.next/standalone/.next/static/chunks/dc59a07a8f327b40.js +0 -1
  259. package/.next/standalone/LICENSE +0 -21
  260. package/.next/standalone/bin/cli.js +0 -106
  261. package/.next/standalone/custom-models.example.json +0 -21
  262. package/.next/standalone/eslint.config.mjs +0 -18
  263. package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +0 -126
  264. package/.next/standalone/features/feature-skill-used-jump-link/feature.json +0 -32
  265. package/.next/standalone/features/feature-skill-used-jump-link/issue.md +0 -32
  266. package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +0 -528
  267. package/.next/standalone/next.config.ts +0 -41
  268. package/.next/standalone/scripts/activate_telemetry.sh +0 -159
  269. package/.next/standalone/scripts/create_migration_package.sh +0 -124
  270. package/.next/standalone/scripts/fix_models.js +0 -66
  271. package/.next/standalone/scripts/init_opengauss.py +0 -284
  272. package/.next/standalone/scripts/install.js +0 -273
  273. package/.next/standalone/scripts/logs.js +0 -38
  274. package/.next/standalone/scripts/otel_data/logs.jsonl +0 -12
  275. package/.next/standalone/scripts/otel_data/metrics.jsonl +0 -21
  276. package/.next/standalone/scripts/otel_data/raw_requests.jsonl +0 -8
  277. package/.next/standalone/scripts/otel_data/raw_requests.jsonl.bak +0 -6
  278. package/.next/standalone/scripts/otel_receiver.py +0 -580
  279. package/.next/standalone/scripts/postinstall.js +0 -192
  280. package/.next/standalone/scripts/publish-npm.js +0 -401
  281. package/.next/standalone/scripts/restart.js +0 -26
  282. package/.next/standalone/scripts/restart.sh +0 -138
  283. package/.next/standalone/scripts/restart_dev.sh +0 -132
  284. package/.next/standalone/scripts/start.js +0 -291
  285. package/.next/standalone/scripts/status.js +0 -41
  286. package/.next/standalone/scripts/stop.js +0 -90
  287. package/.next/standalone/scripts/sync_skills.js +0 -216
  288. package/.next/standalone/scripts/utils.js +0 -235
  289. package/.next/standalone/tests/setup_skill_optimizer.sh +0 -118
  290. package/.next/standalone/tsconfig.json +0 -34
  291. package/.next/static/chunks/01eddf501c574a44.js +0 -1
  292. package/.next/static/chunks/1e782a49beaf489c.js +0 -1
  293. package/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
  294. package/.next/static/chunks/67bd1a5de2195779.js +0 -1
  295. package/.next/static/chunks/a87b5e84254095a5.js +0 -1
  296. package/.next/static/chunks/c6bd2818656b1f20.css +0 -1
  297. package/.next/static/chunks/dc59a07a8f327b40.js +0 -1
  298. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_buildManifest.js +0 -0
  299. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_clientMiddlewareManifest.json +0 -0
  300. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_ssgManifest.js +0 -0
  301. /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_buildManifest.js +0 -0
  302. /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_clientMiddlewareManifest.json +0 -0
  303. /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16015,(e,s,t)=>{},98547,(e,s,t)=>{var d=e.i(18392);e.r(16015);var r=e.r(71645),a=r&&"object"==typeof r&&"default"in r?r:{default:r},l=void 0!==d.default&&d.default.env&&!0,n=function(e){return"[object String]"===Object.prototype.toString.call(e)},i=function(){function e(e){var s=void 0===e?{}:e,t=s.name,d=void 0===t?"stylesheet":t,r=s.optimizeForSpeed,a=void 0===r?l:r;c(n(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",c("boolean"==typeof a,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=a,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var i="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=i?i.getAttribute("content"):null}var s,t=e.prototype;return t.setOptimizeForSpeed=function(e){c("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),c(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},t.isOptimizeForSpeed=function(){return this._optimizeForSpeed},t.inject=function(){var e=this;if(c(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(l||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(s,t){return"number"==typeof t?e._serverSheet.cssRules[t]={cssText:s}:e._serverSheet.cssRules.push({cssText:s}),t},deleteRule:function(s){e._serverSheet.cssRules[s]=null}}},t.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var s=0;s<document.styleSheets.length;s++)if(document.styleSheets[s].ownerNode===e)return document.styleSheets[s]},t.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},t.insertRule=function(e,s){if(c(n(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof s&&(s=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,s),this._rulesCount++;if(this._optimizeForSpeed){var t=this.getSheet();"number"!=typeof s&&(s=t.cssRules.length);try{t.insertRule(e,s)}catch(s){return l||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var d=this._tags[s];this._tags.push(this.makeStyleTag(this._name,e,d))}return this._rulesCount++},t.replaceRule=function(e,s){if(this._optimizeForSpeed||"u"<typeof window){var t="u">typeof window?this.getSheet():this._serverSheet;if(s.trim()||(s=this._deletedRulePlaceholder),!t.cssRules[e])return e;t.deleteRule(e);try{t.insertRule(s,e)}catch(d){l||console.warn("StyleSheet: illegal rule: \n\n"+s+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),t.insertRule(this._deletedRulePlaceholder,e)}}else{var d=this._tags[e];c(d,"old rule at index `"+e+"` not found"),d.textContent=s}return e},t.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var s=this._tags[e];c(s,"rule at index `"+e+"` not found"),s.parentNode.removeChild(s),this._tags[e]=null}},t.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},t.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(s,t){return t?s=s.concat(Array.prototype.map.call(e.getSheetForTag(t).cssRules,function(s){return s.cssText===e._deletedRulePlaceholder?null:s})):s.push(null),s},[])},t.makeStyleTag=function(e,s,t){s&&c(n(s),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+e,""),s&&d.appendChild(document.createTextNode(s));var r=document.head||document.getElementsByTagName("head")[0];return t?r.insertBefore(d,t):r.appendChild(d),d},s=[{key:"length",get:function(){return this._rulesCount}}],function(e,s){for(var t=0;t<s.length;t++){var d=s[t];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(e,d.key,d)}}(e.prototype,s),e}();function c(e,s){if(!e)throw Error("StyleSheet: "+s+".")}var o=function(e){for(var s=5381,t=e.length;t;)s=33*s^e.charCodeAt(--t);return s>>>0},x={};function p(e,s){if(!s)return"jsx-"+e;var t=String(s),d=e+t;return x[d]||(x[d]="jsx-"+o(e+"-"+t)),x[d]}function f(e,s){"u"<typeof window&&(s=s.replace(/\/style/gi,"\\/style"));var t=e+s;return x[t]||(x[t]=s.replace(/__jsx-style-dynamic-selector/g,e)),x[t]}var m=function(){function e(e){var s=void 0===e?{}:e,t=s.styleSheet,d=void 0===t?null:t,r=s.optimizeForSpeed,a=void 0!==r&&r;this._sheet=d||new i({name:"styled-jsx",optimizeForSpeed:a}),this._sheet.inject(),d&&"boolean"==typeof a&&(this._sheet.setOptimizeForSpeed(a),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var s=e.prototype;return s.add=function(e){var s=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,s){return e[s]=0,e},{}));var t=this.getIdAndRules(e),d=t.styleId,r=t.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var a=r.map(function(e){return s._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[d]=a,this._instancesCounts[d]=1},s.remove=function(e){var s=this,t=this.getIdAndRules(e).styleId;if(function(e,s){if(!e)throw Error("StyleSheetRegistry: "+s+".")}(t in this._instancesCounts,"styleId: `"+t+"` not found"),this._instancesCounts[t]-=1,this._instancesCounts[t]<1){var d=this._fromServer&&this._fromServer[t];d?(d.parentNode.removeChild(d),delete this._fromServer[t]):(this._indices[t].forEach(function(e){return s._sheet.deleteRule(e)}),delete this._indices[t]),delete this._instancesCounts[t]}},s.update=function(e,s){this.add(s),this.remove(e)},s.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},s.cssRules=function(){var e=this,s=this._fromServer?Object.keys(this._fromServer).map(function(s){return[s,e._fromServer[s]]}):[],t=this._sheet.cssRules();return s.concat(Object.keys(this._indices).map(function(s){return[s,e._indices[s].map(function(e){return t[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},s.styles=function(e){var s,t;return s=this.cssRules(),void 0===(t=e)&&(t={}),s.map(function(e){var s=e[0],d=e[1];return a.default.createElement("style",{id:"__"+s,key:"__"+s,nonce:t.nonce?t.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},s.getIdAndRules=function(e){var s=e.children,t=e.dynamic,d=e.id;if(t){var r=p(d,t);return{styleId:r,rules:Array.isArray(s)?s.map(function(e){return f(r,e)}):[f(r,s)]}}return{styleId:p(d),rules:Array.isArray(s)?s:[s]}},s.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,s){return e[s.id.slice(2)]=s,e},{})},e}(),b=r.createContext(null);function u(){return new m}function h(){return r.useContext(b)}b.displayName="StyleSheetContext";var g=a.default.useInsertionEffect||a.default.useLayoutEffect,j="u">typeof window?u():void 0;function y(e){var s=j||h();return s&&("u"<typeof window?s.add(e):g(function(){return s.add(e),function(){s.remove(e)}},[e.id,String(e.dynamic)])),null}y.dynamic=function(e){return e.map(function(e){return p(e[0],e[1])}).join(" ")},t.StyleRegistry=function(e){var s=e.registry,t=e.children,d=r.useContext(b),l=r.useState(function(){return d||s||u()})[0];return a.default.createElement(b.Provider,{value:l},t)},t.createStyleRegistry=u,t.style=y,t.useStyleRegistry=h},37902,(e,s,t)=>{s.exports=e.r(98547).style},58116,e=>{"use strict";e.i(18392);var s=e.i(43476),t=e.i(37902),d=e.i(71645),r=e.i(74080),a=e.i(75225),l=e.i(9694),n=e.i(72526),i=e.i(59559),c=e.i(31195),o=e.i(34239),x=e.i(85183),p=e.i(93230),f=e.i(9665),m=e.i(97703),b=e.i(9165),u=e.i(94690);function h({onSuccess:e}){let{user:t}=(0,u.useAuth)(),[r,a]=(0,d.useState)(!1),[l,n]=(0,d.useState)([]),i=(0,d.useRef)(null),c=async s=>{let d=s.target.files;if(!d||0===d.length)return;a(!0),n(["Preparing upload..."]);let r=new FormData;t&&r.append("user",t);for(let e=0;e<d.length;e++)r.append("files",d[e]),r.append("paths",d[e].webkitRelativePath);try{n(e=>[...e,`Uploading ${d.length} files...`]);let s=await (0,b.apiFetch)("/api/skills/upload",{method:"POST",body:r}),t=await s.json();s.ok?(n(e=>[...e,"Upload successful!",`Skill: ${t.skill.name} (v${t.version.version})`]),alert("技能上传成功!"),e()):(n(e=>[...e,`Error: ${t.error}`]),alert(`上传失败: ${t.error}`))}catch(e){n(s=>[...s,`Network Error: ${e.message}`]),alert("上传出错")}finally{a(!1),i.current&&(i.current.value="")}};return(0,s.jsxs)("div",{className:"upload-card",children:[(0,s.jsx)("div",{style:{fontSize:"3rem",marginBottom:"1rem",color:"#94a3b8"},children:"📂"}),(0,s.jsx)("h3",{style:{fontSize:"1.25rem",fontWeight:600,marginBottom:"0.5rem",color:"#1e293b"},children:"上传 Skill"}),(0,s.jsxs)("p",{style:{color:"#64748b",marginBottom:"1.5rem",maxWidth:"400px",fontSize:"0.9rem",lineHeight:1.5},children:["选择包含 ",(0,s.jsx)("code",{children:"SKILL.md"}),"的文件夹。",(0,s.jsx)("br",{}),(0,s.jsx)("span",{style:{color:"#d97706"},children:"注意: 请上传整个文件夹"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{style:{color:"#dc2626",fontWeight:"bold"},children:"重要: 文件夹名称不得包含中文字符。"})]}),(0,s.jsxs)("div",{style:{position:"relative",display:"inline-block"},children:[(0,s.jsx)("button",{className:"btn-primary",style:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.75rem 1.5rem",fontSize:"1rem"},onClick:()=>i.current?.click(),children:(0,s.jsx)("span",{children:"选择文件夹"})}),(0,s.jsx)("input",{ref:i,type:"file",webkitdirectory:"",directory:"",multiple:!0,style:{display:"none"},onChange:c})]}),l.length>0&&(0,s.jsx)("div",{style:{marginTop:"2rem",width:"100%",maxWidth:"600px",textAlign:"left",background:"#f8fafc",padding:"1rem",borderRadius:"0.5rem",maxHeight:"150px",overflowY:"auto"},children:l.map((e,t)=>(0,s.jsx)("div",{style:{color:"#475569",fontSize:"0.8rem",fontFamily:"monospace",marginBottom:"4px",borderBottom:"1px solid #e2e8f0",paddingBottom:"2px"},children:e},t))})]})}function g({skillId:e,version:t,onClose:r}){let{user:a}=(0,u.useAuth)(),[l,n]=(0,d.useState)(null),[i,c]=(0,d.useState)(!0),[o,x]=(0,d.useState)(!1),[p,f]=(0,d.useState)(null);(0,d.useEffect)(()=>{c(!0),(0,b.apiFetch)(`/api/skills/${e}/versions/${t}?user=${encodeURIComponent(a||"")}`).then(e=>e.json()).then(e=>{n(e),c(!1)}).catch(e=>{alert("Failed to load details"),c(!1)}),(0,b.apiFetch)(`/api/skills/${e}/versions/${t}/parse-flow?user=${encodeURIComponent(a||"")}`).then(e=>e.json()).then(e=>{e.parsed&&f(e)}).catch(()=>{})},[e,t]);let m=async()=>{x(!0);try{let s=await (0,b.apiFetch)(`/api/skills/${e}/versions/${t}/parse-flow`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:a})}),d=await s.json();d.success?f({parsed:!0,flowJson:JSON.stringify(d.flow),mermaidCode:d.mermaidCode,parsedAt:new Date().toISOString()}):alert(`解析失败: ${d.error}`)}catch(s){let e=s instanceof Error?s.message:"未知错误";alert(`解析出错: ${e}`)}finally{x(!1)}};return(0,s.jsx)("div",{className:"modal-overlay",onClick:r,style:{zIndex:1100},children:(0,s.jsxs)("div",{className:"modal-content card",onClick:e=>e.stopPropagation(),style:{width:"1200px",maxWidth:"95vw",maxHeight:"90vh",display:"flex",flexDirection:"column",padding:0,overflow:"hidden"},children:[(0,s.jsxs)("div",{className:"modal-header-new",style:{padding:"1rem 1.5rem",background:"#f8fafc",borderBottom:"1px solid #e2e8f0",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,s.jsxs)("h3",{style:{margin:0,fontSize:"1.25rem",fontWeight:"bold",color:"#1e293b"},children:["Version Details (v",t,")"]}),(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem"},children:[(0,s.jsx)("button",{onClick:m,disabled:o,style:{padding:"6px 16px",background:o?"#cbd5e1":"#2563eb",color:o?"#64748b":"#ffffff",border:"none",borderRadius:"4px",cursor:o?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.9rem"},children:o?"解析中...":p?"重新解析":"解析流程"}),(0,s.jsx)("button",{onClick:r,style:{background:"none",border:"none",color:"#64748b",fontSize:"1.5rem",cursor:"pointer",padding:"0 0.5rem",lineHeight:1},children:"×"})]})]}),(0,s.jsx)("div",{style:{flex:1,display:"flex",gap:"1.5rem",padding:"1.5rem",minHeight:0,overflowY:"auto"},children:i?(0,s.jsx)("div",{style:{textAlign:"center",padding:"2rem",color:"#64748b",flex:1},children:"Loading details..."}):l?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{style:{flex:"1 1 50%",display:"flex",flexDirection:"column",gap:"1.5rem",minWidth:0},children:[(0,s.jsx)("div",{style:{background:"#f8fafc",padding:"1rem",borderRadius:"8px",border:"1px solid #e2e8f0"},children:(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{style:{color:"#64748b",fontSize:"0.85rem",display:"block",marginBottom:"4px"},children:"Created At"}),(0,s.jsx)("div",{style:{color:"#1e293b",fontWeight:500},children:new Date(l.createdAt).toLocaleString()})]})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{style:{color:"#64748b",marginBottom:"0.5rem",fontSize:"0.85rem",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"变更历史"}),(0,s.jsx)("div",{style:{background:"#f8fafc",padding:"1rem",borderRadius:"6px",color:"#334155",whiteSpace:"pre-wrap",border:"1px solid #e2e8f0",fontSize:"0.9rem",lineHeight:1.6},children:l.changeLog||(0,s.jsx)("span",{style:{color:"#94a3b8",fontStyle:"italic"},children:"无变更历史"})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{style:{color:"#64748b",marginBottom:"0.5rem",fontSize:"0.85rem",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"Skill Content (SKILL.md)"}),(0,s.jsx)("pre",{style:{background:"#f8fafc",padding:"1rem",borderRadius:"6px",color:"#334155",overflowX:"auto",fontFamily:"monospace",fontSize:"0.85rem",border:"1px solid #e2e8f0",maxHeight:"300px",whiteSpace:"pre-wrap"},children:l.content||(0,s.jsx)("span",{style:{color:"#94a3b8",fontStyle:"italic"},children:"(Empty content)"})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{style:{color:"#64748b",marginBottom:"0.5rem",fontSize:"0.85rem",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"Included Files"}),(0,s.jsx)("div",{style:{background:"#f8fafc",padding:"1rem",borderRadius:"6px",border:"1px solid #e2e8f0"},children:(()=>{try{let e=l.files?JSON.parse(l.files):[];if(0===e.length)return(0,s.jsx)("span",{style:{color:"#94a3b8",fontSize:"0.9rem",fontStyle:"italic"},children:"No additional files."});return(0,s.jsx)("ul",{style:{margin:0,paddingLeft:"1.2rem",color:"#475569",fontSize:"0.9rem"},children:e.map((e,t)=>(0,s.jsx)("li",{style:{marginBottom:"4px"},children:e},t))})}catch(e){return(0,s.jsx)("span",{style:{color:"#dc2626",fontSize:"0.9rem"},children:"Error parsing file list."})}})()})]})]}),(0,s.jsxs)("div",{style:{flex:"1 1 50%",minWidth:0,display:"flex",flexDirection:"column"},children:[(0,s.jsx)("h4",{style:{color:"#64748b",marginBottom:"0.5rem",fontSize:"0.85rem",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"预期执行流程"}),p?(0,s.jsxs)("div",{style:{background:"#f8fafc",padding:"1rem",borderRadius:"6px",border:"1px solid #e2e8f0",flex:1,display:"flex",flexDirection:"column"},children:[(0,s.jsxs)("div",{style:{marginBottom:"0.5rem",fontSize:"0.8rem",color:"#94a3b8",flexShrink:0},children:["解析时间: ",new Date(p.parsedAt).toLocaleString()]}),(0,s.jsx)("div",{style:{flex:1,overflow:"auto"},children:(0,s.jsx)(j,{code:p.mermaidCode})})]}):(0,s.jsx)("div",{style:{background:"#f8fafc",padding:"2rem",borderRadius:"6px",border:"1px solid #e2e8f0",flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"#94a3b8"},children:"点击「解析流程」按钮生成预期执行流程图"})]})]}):(0,s.jsx)("div",{style:{color:"#dc2626",textAlign:"center",padding:"2rem",flex:1},children:"Failed to load details."})})]})})}function j({code:t}){let[r,a]=(0,d.useState)(""),[l,n]=(0,d.useState)("");return((0,d.useEffect)(()=>{let s=async()=>{try{let s=(await e.A(95802)).default;s.initialize({startOnLoad:!1,theme:"default",flowchart:{useMaxWidth:!1}});let{svg:d}=await s.render("mermaid-"+Date.now(),t);a(d),n("")}catch(e){console.error("Mermaid render error:",e),n("流程图渲染失败")}};t&&s()},[t]),l)?(0,s.jsx)("div",{style:{color:"#dc2626"},children:l}):(0,s.jsx)("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"flex-start"},dangerouslySetInnerHTML:{__html:r}})}function y({skill:e,onClose:t,onUpdate:r}){let{user:a}=(0,u.useAuth)(),[l,n]=(0,d.useState)([]),[i,c]=(0,d.useState)(e.activeVersion),[o,x]=(0,d.useState)(!1),[p,f]=(0,d.useState)(null);(0,d.useEffect)(()=>{(0,b.apiFetch)(`/api/skills/${e.id}/versions?user=${encodeURIComponent(a||"")}`).then(e=>e.json()).then(e=>{n(e)})},[e.id]),(0,d.useEffect)(()=>{c(e.activeVersion)},[e.activeVersion]);let m=()=>{o&&r(),t()},h=async s=>{try{let t=await (0,b.apiFetch)(`/api/skills/${e.id}/activate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({version:s,user:a})});if(t.ok)c(s),x(!0);else{let e=await t.json();alert(`Failed to activate: ${e.error}`)}}catch(e){alert(`Error: ${e.message}`)}},j=async s=>{if(confirm(`Are you sure you want to delete version ${s}? This action cannot be undone.`))try{let t=await (0,b.apiFetch)(`/api/skills/${e.id}/versions/${s}?user=${encodeURIComponent(a||"")}`,{method:"DELETE"});if(t.ok){alert(`Version ${s} deleted successfully!`);let t=await (0,b.apiFetch)(`/api/skills/${e.id}/versions?user=${encodeURIComponent(a||"")}`),d=await t.json();n(d),x(!0),i===s&&d.length>0&&c(d[0].version)}else{let e=await t.json();alert(`Failed to delete version: ${e.error}`)}}catch(e){alert(`Error: ${e.message}`)}},y=(0,d.useRef)(null),v=async s=>{let t=s.target.files;if(!t||0===t.length)return;let d=new FormData;d.append("targetSkillId",e.id),a&&d.append("user",a);for(let e=0;e<t.length;e++)d.append("files",t[e]),d.append("paths",t[e].webkitRelativePath);try{let s=await (0,b.apiFetch)("/api/skills/upload",{method:"POST",body:d}),t=await s.json();if(s.ok){alert(`Version v${t.version.version} uploaded successfully!`);let s=await (0,b.apiFetch)(`/api/skills/${e.id}/versions?user=${encodeURIComponent(a||"")}`);n(await s.json()),x(!0)}else alert(`Upload failed: ${t.error}`)}catch(e){alert(`Upload error: ${e.message}`)}finally{y.current&&(y.current.value="")}};return(0,s.jsx)("div",{className:"modal-overlay",onClick:m,children:(0,s.jsxs)("div",{className:"modal-window-lg",onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("div",{className:"modal-header-new",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{style:{margin:0,fontSize:"1.25rem",fontWeight:"bold",color:"#1e293b"},children:e.name}),(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginTop:"0.25rem",fontSize:"0.875rem",color:"#64748b"},children:[(0,s.jsx)("span",{children:"当前使用 (Active):"}),(0,s.jsxs)("span",{style:{color:"#16a34a",fontFamily:"monospace",fontWeight:"bold",background:"rgba(22, 163, 74, 0.1)",padding:"0 6px",borderRadius:"4px"},children:["v",i]})]})]}),(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem"},children:[(0,s.jsx)("button",{className:"btn-primary",style:{fontSize:"0.85rem",display:"flex",alignItems:"center",gap:"0.5rem"},onClick:()=>y.current?.click(),children:(0,s.jsx)("span",{children:"📤 上传新版本"})}),(0,s.jsx)("button",{onClick:m,style:{background:"none",border:"none",color:"#64748b",fontSize:"1.5rem",cursor:"pointer",padding:"0 0.5rem"},children:"×"})]}),(0,s.jsx)("input",{ref:y,type:"file",webkitdirectory:"",directory:"",multiple:!0,style:{display:"none"},onChange:v})]}),(0,s.jsxs)("div",{className:"modal-content-scroll",children:[(0,s.jsxs)("table",{className:"version-table w-full text-left order-collapse",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{style:{width:"120px"},children:"版本"}),(0,s.jsx)("th",{children:"变更历史"}),(0,s.jsx)("th",{style:{textAlign:"right",width:"220px"},children:"Action"})]})}),(0,s.jsx)("tbody",{children:l.map(e=>{let t=e.version===i;return(0,s.jsxs)("tr",{className:`version-row ${t?"version-active-row":""}`,children:[(0,s.jsxs)("td",{children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,s.jsxs)("span",{style:{fontSize:"1rem",fontFamily:"monospace",fontWeight:"bold",color:t?"#16a34a":"#2563eb"},children:["v",e.version]}),t&&(0,s.jsx)("span",{style:{fontSize:"0.7rem",backgroundColor:"rgba(22, 163, 74, 0.15)",color:"#16a34a",padding:"2px 6px",borderRadius:"4px",fontWeight:"bold",border:"1px solid rgba(22, 163, 74, 0.3)"},children:"ACTIVE"})]}),(0,s.jsx)("span",{style:{fontSize:"0.75rem",color:"#94a3b8"},children:new Date(e.createdAt).toLocaleDateString()})]}),(0,s.jsx)("td",{children:(0,s.jsx)("p",{style:{margin:0,color:"#334155",whiteSpace:"pre-wrap",lineHeight:1.6,fontSize:"0.9rem"},children:e.changeLog||(0,s.jsx)("span",{style:{color:"#94a3b8",fontStyle:"italic"},children:"无变更历史"})})}),(0,s.jsx)("td",{style:{textAlign:"right",minWidth:"280px"},children:(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.5rem",flexWrap:"nowrap",alignItems:"center"},children:[(0,s.jsx)("button",{onClick:()=>f(e.version),className:"btn-sm",style:{background:"#f1f5f9",border:"1px solid #cbd5e1",padding:"6px 12px",color:"#475569",whiteSpace:"nowrap",fontSize:"0.85rem",minWidth:"60px"},children:"查看"}),t?(0,s.jsxs)("span",{style:{padding:"6px 12px",fontSize:"0.85rem",fontFamily:"monospace",color:"#16a34a",display:"flex",alignItems:"center",gap:"6px",whiteSpace:"nowrap"},children:[(0,s.jsx)("span",{style:{width:"6px",height:"6px",borderRadius:"50%",background:"#16a34a"}}),"当前"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:()=>h(e.version),className:"btn-sm",style:{background:"#dbeafe",border:"1px solid #3b82f6",padding:"6px 12px",color:"#1d4ed8",whiteSpace:"nowrap",fontSize:"0.85rem",minWidth:"85px"},children:"激活 (set active)"}),(0,s.jsx)("button",{onClick:()=>j(e.version),className:"btn-sm",style:{background:"#fee2e2",border:"1px solid #f87171",padding:"6px 12px",color:"#dc2626",whiteSpace:"nowrap",fontSize:"0.85rem",minWidth:"65px"},children:"Delete"})]})]})})]},e.id)})})]}),0===l.length&&(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"200px",color:"#94a3b8"},children:[(0,s.jsx)("div",{style:{fontSize:"2rem",marginBottom:"1rem",opacity:.5},children:"📂"}),(0,s.jsx)("p",{children:"没有历史版本"})]})]}),null!==p&&(0,s.jsx)(g,{skillId:e.id,version:p,onClose:()=>f(null)})]})})}function v({refresh:e}){let{user:t}=(0,u.useAuth)(),[r,a]=(0,d.useState)([]),[l,n]=(0,d.useState)(!0),[i,c]=(0,d.useState)(null),o=()=>{t&&(n(!0),(0,b.apiFetch)(`/api/skills?user=${encodeURIComponent(t)}`).then(e=>e.json()).then(e=>{a(Array.isArray(e)?e:[]),n(!1)}))};(0,d.useEffect)(()=>{o()},[e]),(0,d.useEffect)(()=>{if(i){let e=r.find(e=>e.id===i.id);e&&c(e)}},[r]);let x=async e=>{if(confirm("Are you sure you want to delete this skill? This action cannot be undone."))try{let s=await (0,b.apiFetch)(`/api/skills?id=${e}&user=${encodeURIComponent(t||"")}`,{method:"DELETE"}),d=await s.json();s.ok?o():alert(`Failed to delete skill: ${d.error}`)}catch(e){alert(`Delete error: ${e.message}`)}},p=async(e,s,d)=>{d.stopPropagation();try{(await (0,b.apiFetch)(`/api/skills/${e}/toggle`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({isUploaded:!s,user:t})})).ok?o():alert("Failed to toggle upload status")}catch(e){alert(`Error: ${e.message}`)}},f=r.length,m=r.filter(e=>e.isUploaded).length;return l?(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",padding:"5rem"},children:[(0,s.jsx)("div",{className:"loading-spinner",style:{width:"2rem",height:"2rem",border:"2px solid #e2e8f0",borderTopColor:"#2563eb",borderRadius:"50%",animation:"spin 1s linear infinite"}}),(0,s.jsx)("style",{children:"@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }"})]}):(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"stats-header",style:{display:"flex",gap:"2rem",marginBottom:"2rem",background:"#f8fafc",padding:"1.5rem",borderRadius:"0.75rem",border:"1px solid #e2e8f0"},children:[(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,s.jsx)("span",{style:{fontSize:"0.875rem",color:"#64748b",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"Skill 总数"}),(0,s.jsx)("span",{style:{fontSize:"2.5rem",fontWeight:700,color:"#1e293b",lineHeight:1},children:f})]}),(0,s.jsx)("div",{style:{width:"1px",background:"#e2e8f0"}}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,s.jsx)("span",{style:{fontSize:"0.875rem",color:"#64748b",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:"已上传 Skill"}),(0,s.jsx)("span",{style:{fontSize:"2.5rem",fontWeight:700,color:"#16a34a",lineHeight:1},children:m})]})]}),(0,s.jsxs)("div",{className:"skill-grid",children:[r.map(e=>(0,s.jsxs)("div",{className:"skill-card",children:[(0,s.jsxs)("div",{className:"skill-card-header",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{className:"skill-title",title:e.name,children:e.name}),(0,s.jsxs)("div",{className:"skill-meta",children:[(0,s.jsxs)("span",{className:"skill-version-badge",children:["v",e.version]}),(0,s.jsx)("span",{className:"skill-date",children:new Date(e.updatedAt).toLocaleDateString()})]})]}),(0,s.jsx)("div",{className:"skill-icon",children:"🧩"})]}),(0,s.jsxs)("div",{className:"skill-body",children:[(0,s.jsx)("div",{className:"skill-description",children:e.description||(0,s.jsx)("span",{style:{fontStyle:"italic",color:"#94a3b8"},children:"No description provided for this skill."})}),(0,s.jsxs)("div",{className:"skill-tags",children:[e.tags?.slice(0,3).map((e,t)=>(0,s.jsxs)("span",{className:"skill-tag",children:["#",e]},t)),(e.tags?.length||0)>3&&(0,s.jsxs)("span",{className:"skill-tag",style:{background:"transparent",border:"none",color:"#94a3b8"},children:["+",e.tags.length-3]})]})]}),(0,s.jsxs)("div",{className:"skill-actions",children:[(0,s.jsx)("button",{onClick:s=>p(e.id,e.isUploaded,s),className:`btn-icon ${e.isUploaded?"uploaded":""}`,title:e.isUploaded?"Withdraw Skill (Stop Sync)":"Upload Skill (Enable Sync)",style:{background:e.isUploaded?"rgba(22, 163, 74, 0.1)":"transparent",border:`1px solid ${e.isUploaded?"#16a34a":"#cbd5e1"}`,color:e.isUploaded?"#16a34a":"#64748b",padding:"0.4rem",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s"},children:e.isUploaded?"☁️ 激活":"☁️ 未激活"}),(0,s.jsxs)("button",{onClick:()=>c(e),className:"btn-manage",children:[(0,s.jsx)("span",{children:"⚙️"}),(0,s.jsx)("span",{children:"版本管理"})]}),(0,s.jsx)("button",{onClick:()=>x(e.id),className:"btn-delete",title:"Delete Skill",children:(0,s.jsx)("span",{children:"🗑️"})})]})]},e.id)),0===r.length&&(0,s.jsxs)("div",{className:"upload-card",style:{gridColumn:"1 / -1",background:"transparent",borderStyle:"dashed"},children:[(0,s.jsx)("div",{style:{fontSize:"3rem",marginBottom:"1rem",opacity:.3},children:"📦"}),(0,s.jsx)("p",{style:{color:"#64748b",fontSize:"1.2rem"},children:"无 skill"}),(0,s.jsx)("p",{style:{color:"#94a3b8",fontSize:"0.9rem",marginTop:"0.5rem"},children:"上传 skill"})]})]}),i&&(0,s.jsx)(y,{skill:i,onClose:()=>c(null),onUpdate:o})]})}function k(){let[e,t]=(0,d.useState)("catalog"),[r,a]=(0,d.useState)(0);return(0,s.jsxs)("div",{style:{marginTop:"1rem"},children:[(0,s.jsxs)("div",{className:"nav-tabs",children:[(0,s.jsx)("button",{onClick:()=>t("catalog"),className:`nav-tab-item ${"catalog"===e?"active":""}`,children:"Skill 管理"}),(0,s.jsx)("button",{onClick:()=>t("upload"),className:`nav-tab-item ${"upload"===e?"active":""}`,children:"上传 Skill"})]}),(0,s.jsxs)("div",{style:{minHeight:"400px"},children:["catalog"===e&&(0,s.jsx)(v,{refresh:r}),"upload"===e&&(0,s.jsx)(h,{onSuccess:()=>{a(e=>e+1),t("catalog")}})]})]})}function N({step:e,currentStep:a,totalSteps:l,onNext:n,onPrev:i,onSkip:c,onDismiss:o,onDontShowAgain:x,isVisible:p}){let[f,m]=(0,d.useState)({top:0,left:0}),[b,u]=(0,d.useState)({top:0,left:0}),h=(0,d.useRef)(null),g=e=>{if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(e).then(()=>{alert("复制成功!")}).catch(()=>{alert("复制失败,请手动复制")});else{let s=document.createElement("textarea");s.value=e,s.style.position="fixed",s.style.left="-9999px",s.style.top="0",document.body.appendChild(s),s.focus(),s.select();try{document.execCommand("copy"),alert("复制成功!")}catch(e){console.error("Fallback: Fallback: Oops, unable to copy",e),alert("复制失败,请手动复制")}document.body.removeChild(s)}},j=(0,d.useCallback)(()=>{if("center"===e.position){if(!h.current)return;let e=h.current.getBoundingClientRect();m({top:(window.innerHeight-e.height)/2,left:(window.innerWidth-e.width)/2}),u({top:0,left:0});return}let s=document.querySelector(e.target);if(!s||!h.current)return;let t=s.getBoundingClientRect(),d=h.current.getBoundingClientRect(),r=0,a=0,l=0,n=0,i=t.left+t.width/2,c=t.top+t.height/2;switch(e.position){case"top":r=t.top-d.height-12,a=i-d.width/2;break;case"bottom":r=t.bottom+12,a=i-d.width/2;break;case"left":r=c-d.height/2,a=t.left-d.width-12;break;case"right":r=c-d.height/2,a=t.right+12}switch(a<10&&(a=10),a+d.width>window.innerWidth-10&&(a=window.innerWidth-d.width-10),r<10&&(r=10),r+d.height>window.innerHeight-10&&(r=window.innerHeight-d.height-10),e.position){case"top":case"bottom":n=i-a-8,l="top"===e.position?d.height-8:-8;break;case"left":case"right":l=c-r-8,n="left"===e.position?d.width-8:-8}m({top:r,left:a}),u({top:l,left:n})},[e]);if((0,d.useEffect)(()=>{if(p){let e=requestAnimationFrame(()=>{j()});return window.addEventListener("resize",j),window.addEventListener("scroll",j,!0),()=>{cancelAnimationFrame(e),window.removeEventListener("resize",j),window.removeEventListener("scroll",j,!0)}}},[p,j]),!p)return null;let y="center"===e.position;return(0,r.createPortal)((0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0, 0, 0, 0.5)",zIndex:9998,pointerEvents:"auto"},onClick:o,className:"jsx-f29a97b83a083e27"}),(0,s.jsxs)("div",{ref:h,style:{position:"fixed",top:f.top,left:f.left,background:y?"linear-gradient(135deg, #1e293b 0%, #0f172a 100%)":"#1e293b",border:"1px solid #38bdf8",borderRadius:y?"16px":"12px",padding:y?"32px 40px":"20px",maxWidth:y?"480px":"360px",minWidth:y?"320px":"280px",zIndex:9999,boxShadow:y?"0 25px 50px rgba(0, 0, 0, 0.5), 0 0 40px rgba(56, 189, 248, 0.3)":"0 20px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(56, 189, 248, 0.2)",animation:"fadeInScale 0.3s ease-out",textAlign:y?"center":"left"},className:"jsx-f29a97b83a083e27",children:[!y&&(0,s.jsx)("div",{style:(()=>{if("center"===e.position)return null;let s={position:"absolute",width:0,height:0,borderStyle:"solid"};switch(e.position){case"top":return{...s,top:b.top,left:b.left,borderWidth:"8px 8px 0 8px",borderColor:"#1e293b transparent transparent transparent"};case"bottom":return{...s,top:b.top,left:b.left,borderWidth:"0 8px 8px 8px",borderColor:"transparent transparent #1e293b transparent"};case"left":return{...s,top:b.top,left:b.left,borderWidth:"8px 0 8px 8px",borderColor:"transparent transparent transparent #1e293b"};case"right":return{...s,top:b.top,left:b.left,borderWidth:"8px 8px 8px 0",borderColor:"transparent #1e293b transparent transparent"};default:return null}})()||{},className:"jsx-f29a97b83a083e27"}),y&&(0,s.jsx)("div",{style:{fontSize:"3rem",marginBottom:"16px"},className:"jsx-f29a97b83a083e27",children:"👋"}),(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"12px"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("h3",{style:{margin:0,color:"#38bdf8",fontSize:y?"1.4rem":"1.1rem",fontWeight:600,width:"100%"},className:"jsx-f29a97b83a083e27",children:e.title}),(0,s.jsx)("button",{onClick:o,style:{background:"transparent",border:"none",color:"#94a3b8",cursor:"pointer",fontSize:"1.2rem",padding:"0",lineHeight:1},className:"jsx-f29a97b83a083e27",children:"✕"})]}),(0,s.jsx)("p",{style:{margin:"0 0 16px 0",color:"#e2e8f0",fontSize:"0.9rem",lineHeight:1.6},className:"jsx-f29a97b83a083e27",children:e.content}),e.linkUrl&&e.linkText&&(0,s.jsx)("div",{style:{marginBottom:"16px"},className:"jsx-f29a97b83a083e27",children:(0,s.jsxs)("a",{href:e.linkUrl,target:"_blank",rel:"noopener noreferrer",style:{color:"#38bdf8",textDecoration:"none",fontSize:"0.9rem",fontWeight:500,display:"inline-flex",alignItems:"center",gap:"6px",padding:"8px 16px",background:"rgba(56, 189, 248, 0.1)",borderRadius:"6px",border:"1px solid rgba(56, 189, 248, 0.3)",transition:"all 0.2s"},onClick:e=>e.stopPropagation(),className:"jsx-f29a97b83a083e27",children:[e.linkText,(0,s.jsx)("span",{style:{fontSize:"0.8rem"},className:"jsx-f29a97b83a083e27",children:"↗"})]})}),e.setupCommands&&(0,s.jsxs)("div",{style:{marginBottom:"16px",textAlign:"left"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("div",{style:{color:"#94a3b8",fontSize:"0.85rem",marginBottom:"12px",lineHeight:1.5},className:"jsx-f29a97b83a083e27",children:"为了让客户端能够连接到平台并上报数据,需要配置客户端环境。请根据您的操作系统选择以下命令执行:"}),(0,s.jsxs)("div",{style:{marginBottom:"10px"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsxs)("div",{style:{color:"#38bdf8",fontSize:"0.85rem",fontWeight:600,marginBottom:"6px",display:"flex",alignItems:"center",gap:"6px"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("span",{className:"jsx-f29a97b83a083e27",children:"🐧"}),(0,s.jsx)("span",{className:"jsx-f29a97b83a083e27",children:"Linux / macOS"})]}),(0,s.jsxs)("div",{style:{background:"#0f172a",border:"1px solid #334155",borderRadius:"6px",padding:"10px",position:"relative"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("code",{style:{color:"#e2e8f0",fontSize:"0.8rem",fontFamily:"monospace",wordBreak:"break-all",display:"block",paddingRight:"40px"},className:"jsx-f29a97b83a083e27",children:e.setupCommands.linux}),(0,s.jsx)("button",{onClick:()=>{g(e.setupCommands.linux)},style:{position:"absolute",top:"8px",right:"8px",background:"rgba(56, 189, 248, 0.2)",border:"1px solid rgba(56, 189, 248, 0.4)",color:"#38bdf8",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:500,transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(56, 189, 248, 0.3)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(56, 189, 248, 0.2)"},className:"jsx-f29a97b83a083e27",children:"复制"})]})]}),(0,s.jsxs)("div",{className:"jsx-f29a97b83a083e27",children:[(0,s.jsxs)("div",{style:{color:"#38bdf8",fontSize:"0.85rem",fontWeight:600,marginBottom:"6px",display:"flex",alignItems:"center",gap:"6px"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("span",{className:"jsx-f29a97b83a083e27",children:"🪟"}),(0,s.jsx)("span",{className:"jsx-f29a97b83a083e27",children:"Windows"})]}),(0,s.jsxs)("div",{style:{background:"#0f172a",border:"1px solid #334155",borderRadius:"6px",padding:"10px",position:"relative"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("code",{style:{color:"#e2e8f0",fontSize:"0.8rem",fontFamily:"monospace",wordBreak:"break-all",display:"block",paddingRight:"40px"},className:"jsx-f29a97b83a083e27",children:e.setupCommands.windows}),(0,s.jsx)("button",{onClick:()=>{g(e.setupCommands.windows)},style:{position:"absolute",top:"8px",right:"8px",background:"rgba(56, 189, 248, 0.2)",border:"1px solid rgba(56, 189, 248, 0.4)",color:"#38bdf8",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:500,transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(56, 189, 248, 0.3)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(56, 189, 248, 0.2)"},className:"jsx-f29a97b83a083e27",children:"复制"})]})]}),e.apiKey&&(0,s.jsxs)("div",{style:{background:"rgba(56, 189, 248, 0.1)",border:"1px solid rgba(56, 189, 248, 0.3)",borderRadius:"6px",padding:"10px",marginTop:"12px"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("div",{style:{color:"#38bdf8",fontSize:"0.85rem",fontWeight:600,marginBottom:"6px"},className:"jsx-f29a97b83a083e27",children:"🔑 您的 API Key"}),(0,s.jsxs)("div",{style:{position:"relative"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("div",{style:{color:"#e2e8f0",fontSize:"0.8rem",fontFamily:"monospace",wordBreak:"break-all",marginBottom:"6px",paddingRight:"50px"},className:"jsx-f29a97b83a083e27",children:e.apiKey}),(0,s.jsx)("button",{onClick:()=>{g(e.apiKey)},style:{position:"absolute",top:"0",right:"0",background:"rgba(56, 189, 248, 0.2)",border:"1px solid rgba(56, 189, 248, 0.4)",color:"#38bdf8",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",fontSize:"0.75rem",fontWeight:500,transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(56, 189, 248, 0.3)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(56, 189, 248, 0.2)"},className:"jsx-f29a97b83a083e27",children:"复制"})]}),(0,s.jsx)("div",{style:{color:"#94a3b8",fontSize:"0.75rem",lineHeight:1.4},className:"jsx-f29a97b83a083e27",children:"执行上述命令时,系统会提示您输入 API Key,请复制上面的 Key 粘贴到终端中。"})]})]}),(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"16px",gap:"8px"},className:"jsx-f29a97b83a083e27",children:[Array.from({length:l}).map((e,t)=>(0,s.jsx)("div",{style:{width:"8px",height:"8px",borderRadius:"50%",background:t===a?"#38bdf8":"#475569",transition:"background 0.2s"},className:"jsx-f29a97b83a083e27"},t)),(0,s.jsxs)("span",{style:{marginLeft:"auto",color:"#94a3b8",fontSize:"0.8rem"},className:"jsx-f29a97b83a083e27",children:[a+1," / ",l]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap"},className:"jsx-f29a97b83a083e27",children:[a>0&&(0,s.jsx)("button",{onClick:i,style:{background:"transparent",border:"1px solid #475569",color:"#94a3b8",padding:"8px 16px",borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem"},className:"jsx-f29a97b83a083e27",children:"上一步"}),e.action&&e.actionLabel&&(0,s.jsx)("button",{onClick:()=>{e.action?.(),n()},style:{background:"linear-gradient(135deg, #38bdf8, #818cf8)",border:"none",color:"white",padding:"8px 16px",borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem",fontWeight:600},className:"jsx-f29a97b83a083e27",children:e.actionLabel}),a<l-1?(0,s.jsx)("button",{onClick:n,style:{background:"#38bdf8",border:"none",color:"#0f172a",padding:"8px 16px",borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem",fontWeight:600},className:"jsx-f29a97b83a083e27",children:"下一步"}):(0,s.jsx)("button",{onClick:o,style:{background:"#4ade80",border:"none",color:"#0f172a",padding:"8px 16px",borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem",fontWeight:600},className:"jsx-f29a97b83a083e27",children:"完成"}),(0,s.jsx)("button",{onClick:c,style:{background:"transparent",border:"none",color:"#94a3b8",padding:"8px 12px",borderRadius:"6px",cursor:"pointer",fontSize:"0.8rem"},className:"jsx-f29a97b83a083e27",children:"跳过"})]}),(0,s.jsx)("div",{style:{marginTop:"12px",paddingTop:"12px",borderTop:"1px solid #334155"},className:"jsx-f29a97b83a083e27",children:(0,s.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",color:"#94a3b8",fontSize:"0.8rem",cursor:"pointer"},className:"jsx-f29a97b83a083e27",children:[(0,s.jsx)("input",{type:"checkbox",onChange:e=>{e.target.checked&&x()},style:{accentColor:"#38bdf8"},className:"jsx-f29a97b83a083e27"}),"不再显示指引"]})})]}),(0,s.jsx)(t.default,{id:"f29a97b83a083e27",children:"@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}"})]}),document.body)}function S({steps:e,onComplete:t,onSkip:r,onDontShowAgain:a,startStep:l=0}){let[n,i]=(0,d.useState)(l),[c,o]=(0,d.useState)(!0);return 0===e.length||n>=e.length?null:(0,s.jsx)(N,{step:e[n],currentStep:n,totalSteps:e.length,onNext:()=>{n<e.length-1?i(n+1):(o(!1),t())},onPrev:()=>{n>0&&i(n-1)},onSkip:()=>{r(e[n].id),o(!1),t()},onDismiss:()=>{o(!1),t()},onDontShowAgain:a,isVisible:c})}let w=[{id:"welcome",target:"",title:"欢迎使用 Skill-Insight",content:"这是智能体技能评估、分析与优化平台。接下来将引导您完成关键配置,帮助您快速上手使用。",position:"center"},{id:"eval-config",target:".controls",title:"配置评测模型",content:"配置评测模型是使用平台核心分析能力的前提,用于:数据集数据项抽取、Skill执行分析、有效性分析。您可以选择 DeepSeek、OpenAI 等模型作为评测引擎。点击⚙️按钮可以配置评测模型的 API Key 和参数。",position:"bottom",actionLabel:"配置模型"},{id:"dataset-config",target:".tabs .tab-btn:nth-child(2)",title:"配置数据集",content:'数据集用于定义测试问题和标准答案。配置数据集后,系统将使用刚才配置的评测模型自动评估 Agent 的回答质量。点击"数据集管理"标签页可以添加和管理您的测试数据集。',position:"bottom",actionLabel:"前往配置"},{id:"skill-upload",target:".tabs .tab-btn:nth-child(3)",title:"上传技能包",content:'Skill(技能包)是 Agent 执行特定任务的指导文档。上传技能包后,您可以评估其在 Agent 中的实际效果。点击"技能管理"标签页可以上传和管理技能包。',position:"bottom",actionLabel:"前往上传"},{id:"user-manual",target:".title",title:"查看用户手册",content:"需要更详细的帮助?您可以查看用户使用手册获取完整的使用说明和最佳实践指南。",position:"bottom",linkUrl:"https://atomgit.com/openeuler/witty-skill-insight/wiki/%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C",linkText:"📖 查看用户使用手册"}],_=["#2563eb","#db2777","#16a34a","#d97706","#7c3aed","#dc2626"],C=e=>{if(e<1e3)return`${e.toFixed(0)}ms`;let s=e/1e3;if(s>=60){let e=Math.floor(s/60),t=Math.round(s%60);return 0===t?`${e}m`:`${e}m${t}s`}return`${s.toFixed(1)}s`},z=e=>e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toString(),T=e=>null==e?null:0===e?"$0.00":e<.01?`$${e.toFixed(4)}`:e<1?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`,R=e=>{let s=e.filter(e=>null!=e.cost);if(0===s.length)return null;let t=s.length,d=s.filter(e=>e.is_answer_correct).length;return 0===d?null:s.reduce((e,s)=>e+(s.cost||0),0)/t/(d/t)},F=e=>{let s=e.filter(e=>null!==e.answer_score&&void 0!==e.answer_score);return 0===s.length?{successRate:null,evaluatedCount:0}:{successRate:s.filter(e=>!0===e.is_answer_correct).length/s.length,evaluatedCount:s.length}},I=e=>{if(!e)return"-";let s=new Date(e);return s.getFullYear()+"/"+String(s.getMonth()+1).padStart(2,"0")+"/"+String(s.getDate()).padStart(2,"0")+" "+String(s.getHours()).padStart(2,"0")+":"+String(s.getMinutes()).padStart(2,"0")+":"+String(s.getSeconds()).padStart(2,"0")},A=({content:e})=>{let[t,a]=(0,d.useState)(!1),l=(0,d.useRef)(null),[n,i]=(0,d.useState)({top:0,left:0});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{ref:l,style:{marginLeft:"4px",cursor:"help",fontSize:"0.8rem",display:"inline-block"},onMouseEnter:()=>{if(l.current){let e=l.current.getBoundingClientRect();i({top:e.top,left:e.left+e.width/2}),a(!0)}},onMouseLeave:()=>a(!1),children:"ⓘ"}),t&&"u">typeof document&&(0,r.createPortal)((0,s.jsxs)("div",{style:{position:"fixed",top:n.top-8,left:n.left,transform:"translate(-50%, -100%)",background:"#ffffff",border:"1px solid #e2e8f0",color:"#334155",padding:"6px 10px",borderRadius:"4px",whiteSpace:"pre-wrap",minWidth:"200px",textAlign:"left",zIndex:9999,boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1)",pointerEvents:"none"},children:[e,(0,s.jsx)("div",{style:{position:"absolute",top:"100%",left:"50%",marginLeft:"-4px",width:0,height:0,borderLeft:"4px solid transparent",borderRight:"4px solid transparent",borderTop:"4px solid #e2e8f0"}})]}),document.body)]})};function $(){let{user:e,apiKey:r}=(0,u.useAuth)(),[h,g]=(0,d.useState)(!1),{theme:j,toggleTheme:y,isDark:v}=(0,m.useTheme)(),[N,$]=(0,d.useState)(null),{guideState:W,loading:B,shouldShowGuide:D,setShouldShowGuide:E,markStepSkipped:O,disableGuide:L,dismissForToday:P}=function(e){let[s,t]=(0,d.useState)(null),[r,a]=(0,d.useState)(!0),[l,n]=(0,d.useState)(!1),i=(0,d.useCallback)(async()=>{if(!e)return void a(!1);try{let s=await (0,b.apiFetch)("/api/guide",{headers:{"x-user-id":e}});if(s.ok){let e=await s.json(),d={...e,completedSteps:JSON.parse(e.completedSteps||"[]"),skippedSteps:JSON.parse(e.skippedSteps||"[]")};t(d);let r=e.guideDisabled,a=e.dismissedAt&&new Date(e.dismissedAt).toDateString()===new Date().toDateString();n(!r&&!a)}}catch(e){console.error("Failed to fetch guide state:",e)}finally{a(!1)}},[e]);(0,d.useEffect)(()=>{i()},[i]);let c=(0,d.useCallback)(async s=>{if(e)try{let d=await (0,b.apiFetch)("/api/guide",{method:"POST",headers:{"Content-Type":"application/json","x-user-id":e},body:JSON.stringify(s)});if(d.ok){let e=await d.json(),s={...e,completedSteps:JSON.parse(e.completedSteps||"[]"),skippedSteps:JSON.parse(e.skippedSteps||"[]")};return t(s),s}}catch(e){console.error("Failed to update guide state:",e)}},[e]),o=(0,d.useCallback)(async e=>{if(!s)return;let t=[...new Set([...s.completedSteps,e])];await c({completedSteps:t})},[s,c]),x=(0,d.useCallback)(async e=>{if(!s)return;let t=[...new Set([...s.skippedSteps,e])];await c({skippedSteps:t})},[s,c]),p=(0,d.useCallback)(async()=>{await c({guideDisabled:!0}),n(!1)},[c]),f=(0,d.useCallback)(async()=>{await c({guideDisabled:!1,dismissedAt:null}),n(!0)},[c]),m=(0,d.useCallback)(async()=>{await c({dismissedAt:new Date().toISOString()}),n(!1)},[c]),u=(0,d.useCallback)(async()=>{await c({currentStep:0,completedSteps:[],skippedSteps:[],guideDisabled:!1,dismissedAt:null}),n(!0)},[c]);return{guideState:s,loading:r,shouldShowGuide:l,setShouldShowGuide:n,markStepCompleted:o,markStepSkipped:x,disableGuide:p,enableGuide:f,dismissForToday:m,resetGuide:u,setCurrentStep:(0,d.useCallback)(async e=>{await c({currentStep:e})},[c]),refresh:i}}(e),[U,M]=(0,d.useState)([]);(0,d.useEffect)(()=>{if(W){var e,s;M((e=W.completedSteps,s=W.skippedSteps,w.filter(t=>!e.includes(t.id)&&!s.includes(t.id))).map(e=>{if("welcome"===e.id&&r&&1){let s=window.location.host,t=window.location.protocol,d=`${t}//${s}`,a=(0,b.getApiUrl)("/api/setup"),l=`curl -sSf "${d}${a}" | bash`,n=`irm "${d}${a}" | iex`;return{...e,setupCommands:{linux:l,windows:n},apiKey:r}}return e}))}},[W,r]),(0,d.useEffect)(()=>{if(r)$(r);else if(1){let e=localStorage.getItem("api_key");e&&$(e)}},[r]);let[q,H]=(0,d.useState)("dashboard"),[K,J]=(0,d.useState)(!1);(0,d.useEffect)(()=>{K&&e&&(0,b.apiFetch)("/api/auth/apikey",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e})}).then(e=>e.json()).then(e=>{e.apiKey&&($(e.apiKey),localStorage.setItem("api_key",e.apiKey))}).catch(e=>console.error("Failed to fetch fresh API key",e))},[K,e]);let[V,Y]=(0,d.useState)([]),[Q,X]=(0,d.useState)(!0),[G,Z]=(0,d.useState)([]),[ee,es]=(0,d.useState)([]),[et,ed]=(0,d.useState)(new Set),[er,ea]=(0,d.useState)(null),[el,en]=(0,d.useState)(null),[ei,ec]=(0,d.useState)(""),[eo,ex]=(0,d.useState)("all"),[ep,ef]=(0,d.useState)("latest_10"),[em,eb]=(0,d.useState)(""),[eu,eh]=(0,d.useState)(""),[eg,ej]=(0,d.useState)(""),[ey,ev]=(0,d.useState)(""),[ek,eN]=(0,d.useState)(!1),[eS,ew]=(0,d.useState)([]),[e_,eC]=(0,d.useState)("framework"),[ez,eT]=(0,d.useState)(!1),[eR,eF]=(0,d.useState)(!1),[eI,eA]=(0,d.useState)([]),[e$,eW]=(0,d.useState)([]),[eB,eD]=(0,d.useState)(""),[eE,eO]=(0,d.useState)(!1),[eL,eP]=(0,d.useState)(!1),[eU,eM]=(0,d.useState)(!1),[eq,eH]=(0,d.useState)(null),[eK,eJ]=(0,d.useState)([]),[eV,eY]=(0,d.useState)("default"),[eQ,eX]=(0,d.useState)(null),[eG,eZ]=(0,d.useState)({id:"new",name:"New Config",provider:"deepseek",model:"deepseek-chat"}),e0=async()=>{eM(!0),eH(null);try{let s=[...eK],t={...eG};"new"===t.id?(t.id=`config_${Date.now()}`,s.push(t)):s=s.map(e=>e.id===t.id?t:e);let d={provider:t.provider,apiKey:t.apiKey,baseUrl:t.baseUrl,model:t.model};eH({type:"success",msg:"Testing connection..."});let r=await (0,b.apiFetch)("/api/settings/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)}),a=await r.json();if(!a.success){eH({type:"error",msg:`Connection Test Failed: ${a.error}`}),eM(!1);return}let l=eV;(1===s.length||"default"===eV)&&(l=t.id);let n={activeConfigId:l,configs:s},i=await (0,b.apiFetch)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:n,user:e})});if(i.ok)eJ(s),eY(l),eX(null),eH({type:"success",msg:"Saved!"}),setTimeout(()=>eH(null),1500);else{let e=await i.json();eH({type:"error",msg:`Failed to save settings: ${e.error||i.statusText}`})}}catch(e){eH({type:"error",msg:`Error: ${e.message}`})}finally{eM(!1)}},e1=async s=>{await (0,b.apiFetch)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:{activeConfigId:s,configs:eK},user:e})}),eY(s)},e2=async s=>{if(!confirm("Are you sure?"))return;let t=eK.filter(e=>e.id!==s),d=eV;s===eV&&(d=t[0]?.id||"");let r={activeConfigId:d,configs:t};await (0,b.apiFetch)("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:r,user:e})}),eJ(t),eY(d)};(0,d.useEffect)(()=>{sr()},[]),(0,d.useEffect)(()=>{(0,b.apiFetch)("/api/config/status?check_org=true").then(e=>e.json()).then(e=>g(e.org_mode||!1)).catch(()=>{})},[]),(0,d.useEffect)(()=>{eL&&(sr(),eH(null),eX(null))},[eL]),(0,d.useEffect)(()=>{er&&er.user_feedback?eD(er.user_feedback.comment||""):eD("")},[er]);let[e9,e3]=(0,d.useState)(""),[e6,e7]=(0,d.useState)(""),[e8,e4]=(0,d.useState)(""),[e5,se]=(0,d.useState)(""),[ss,st]=(0,d.useState)(1);(0,d.useEffect)(()=>{st(1)},[e9,e6,e8,e5,eo]);let sd=async()=>{X(!0);try{let s=e?`/api/data?user=${encodeURIComponent(e)}`:"/api/data",t=await (0,b.apiFetch)(s,{cache:"no-store"}),d=(await t.json()).filter(e=>e.query&&""!==e.query.trim()).map(e=>{let s=Number(e.latency||0);return("opencode"===e.framework||"openhands"===e.framework||"claude"===e.framework)&&(s*=1e3),{...e,tokens:Number(e.tokens||e.Token||0),latency:s,framework:("claude"===e.framework?"claudecode":e.framework)||"Unknown",model:e.model||"Unknown",skill_score:void 0!==e.skill_score?Number(e.skill_score):void 0,answer_score:null===e.answer_score?null:void 0!==e.answer_score?Number(e.answer_score):+!!e.is_answer_correct}});Y(d)}catch(e){console.error("Failed to fetch data",e)}finally{X(!1)}},sr=(0,d.useCallback)(async()=>{if(e)try{let s=await (0,b.apiFetch)(`/api/settings?user=${encodeURIComponent(e)}`);if(s.ok){let e=await s.json();e.configs&&(eJ(e.configs),eY(e.activeConfigId||e.configs[0]?.id||"default"))}}catch(e){console.error("Failed to fetch settings",e)}},[e]);(0,d.useEffect)(()=>{e&&(sd(),e&&(0,b.apiFetch)(`/api/config?user=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>{Array.isArray(e)?Z(e):console.error("Invalid config data received:",e)}).catch(e=>console.error("Failed to fetch configs",e)),e&&(0,b.apiFetch)(`/api/skills?user=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>{Array.isArray(e)?es(e):console.error("Invalid skills data received:",e)}).catch(e=>console.error("Failed to fetch skills",e)),sr())},[e,sr]);let sa=async s=>{if(confirm("确定要删除这条记录吗?"))try{(await (0,b.apiFetch)(`/api/data?user=${encodeURIComponent(e||"")}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).ok?sd():alert("删除失败")}catch(e){alert("删除出错")}},sl=async(e,s)=>{if(er)try{let t={type:e,comment:void 0!==s?s:eB},d={...er,user_feedback:t};ea(d),Y(e=>e.map(e=>e.task_id===er.task_id||e.upload_id===er.upload_id?d:e)),(await (0,b.apiFetch)("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:er.task_id,upload_id:er.upload_id,user_feedback:t})})).ok?alert("保存成功"):console.error("Feedback save failed")}catch(e){console.error("Feedback error",e)}},sn=async s=>{let t=s.upload_id||s.task_id||"";if(t&&confirm("确定要重新评估这条记录吗?")){console.log("Rejudging ID:",t),ed(e=>{let s=new Set(e);return s.add(t),s});try{let t=await (0,b.apiFetch)("/api/rejudge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,currentUser:e})});if(t.ok){let e=await t.json();(e.record?.judgment_reason||"").includes("未找到匹配的评测配置")?alert(`重评完成: 未找到匹配的评测配置,Score 已归零。请在「数据集管理」中为该 query 添加完全一致的条目后再重评。`):alert(`重评完成: Score ${e.record.answer_score?.toFixed(2)}`);let d={...e.record,tokens:Number(e.record.tokens||e.record.Token||0),latency:Number(e.record.latency||0),framework:e.record.framework||"Unknown",skill_score:void 0!==e.record.skill_score?Number(e.record.skill_score):void 0,answer_score:null!==e.record.answer_score?Number(e.record.answer_score):+!!e.record.is_answer_correct};Y(e=>e.map(e=>e.upload_id===s.upload_id||e.task_id===s.task_id?d:e)),er&&(er.task_id===s.task_id||er.upload_id===s.upload_id)&&ea(d),sd()}else{let e="重评失败";try{let s=await t.json();s&&s.error&&(e+=`: ${s.error}`)}catch(e){}alert(e)}}catch(e){alert("重评请求出错")}finally{ed(e=>{let s=new Set(e);return s.delete(t),s})}}},si=async(e,s)=>{try{let t={task_id:e.task_id,upload_id:e.upload_id,label:s};(await (0,b.apiFetch)("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).ok?(en(null),sd()):alert("更新标签失败")}catch(e){alert("更新标签出错")}},[sc,so]=(0,d.useState)({}),[sx,sp]=(0,d.useState)(!1),[sf,sm]=(0,d.useState)(!1),[sb,su]=(0,d.useState)("manual"),[sh,sg]=(0,d.useState)(null),sj=(0,d.useRef)(new Map);(0,d.useEffect)(()=>()=>{sj.current.forEach(e=>clearTimeout(e))},[]);let sy=(0,d.useCallback)(e=>{let s=async()=>{try{let t=await (0,b.apiFetch)(`/api/config/status?id=${e}`);if(!t.ok)return;let d=await t.json();if("completed"===d.parse_status||"failed"===d.parse_status){Z(s=>s.map(s=>s.id===e?{...s,standard_answer:d.standard_answer||s.standard_answer,root_causes:d.root_causes,key_actions:d.key_actions,parse_status:d.parse_status}:s));let s=sj.current.get(e);s&&clearTimeout(s),sj.current.delete(e)}else{let t=setTimeout(s,2e3);sj.current.set(e,t)}}catch(d){console.error("Config status poll error:",d);let t=setTimeout(s,5e3);sj.current.set(e,t)}},t=setTimeout(s,2e3);sj.current.set(e,t)},[]);(0,d.useEffect)(()=>{G.forEach(e=>{"parsing"!==e.parse_status||sj.current.has(e.id)||sy(e.id)})},[G,sy]);let sv=async()=>{if(!sc.query?.trim())return alert("问题 (Query) 不能为空");if(!sc.id){let e=sc.query.trim();if(G.some(s=>s.query.trim()===e))return alert("该问题已存在于数据集中,请修改后再保存");sc.query=e}sm(!0);try{if(sc.id){let s=[...G];s=s.map(e=>e.id===sc.id?{...e,...sc}:e),(await (0,b.apiFetch)("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({configs:s,user:e})})).ok?(Z(s),sp(!1),so({})):alert("保存失败")}else{let s;if("manual"===sb&&!sc.standard_answer?.trim())return sm(!1),alert("请填写标准答案");if("document"===sb&&!sh)return sm(!1),alert("请上传案例文档");if("document"===sb&&sh){let t=new FormData;t.append("query",sc.query),t.append("document",sh),e&&t.append("user",e),sc.expectedSkills&&t.append("expectedSkills",JSON.stringify(sc.expectedSkills)),s=await (0,b.apiFetch)("/api/config/create",{method:"POST",body:t})}else s=await (0,b.apiFetch)("/api/config/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:sc.query,standardAnswer:sc.standard_answer,skill:sc.skill,skillVersion:sc.skillVersion,expectedSkills:sc.expectedSkills,user:e})});if(s.ok){let e=await s.json();e&&e.id&&(Z(s=>[e,...s]),"parsing"===e.parse_status&&sy(e.id)),sp(!1),so({}),sg(null),su("manual")}else{let e=await s.json();alert(`保存失败: ${e.error||"Unknown error"}`)}}}catch(e){console.error(e),alert("保存出错: "+e.message)}finally{sm(!1)}},sk=async s=>{if(!confirm("确定删除此配置?"))return;let t=G.filter(e=>e.id!==s);(await (0,b.apiFetch)("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({configs:t,user:e})})).ok&&Z(t)},sN=(0,d.useMemo)(()=>Array.from(new Set(V.map(e=>e.framework))).sort(),[V]),sS=(0,d.useMemo)(()=>Array.from(new Set(V.map(e=>e.query))).sort(),[V]),sw=(0,d.useMemo)(()=>{if("all"===eo)return V;let e=Date.now()-(({"1h":36e5,"3h":108e5,"24h":864e5})[eo]||0);return V.filter(s=>new Date(s.timestamp).getTime()>e)},[V,eo]),s_=(0,d.useMemo)(()=>{let e=new Set;return sw.forEach(s=>{s.label&&e.add(s.label)}),Array.from(e).sort()},[sw]),sC=(0,d.useMemo)(()=>{let e=new Set;return sw.forEach(s=>{s.model&&e.add(s.model)}),Array.from(e).sort()},[sw]),sz="framework"===e_?sN:sC,sT=(0,d.useMemo)(()=>{let e=sw;return"single"===ep&&(e=e.filter(e=>e.query===em)),Array.from(new Set(e.map(e=>e.label||"Other"))).sort()},[sw,ep,em]),sR=(0,d.useMemo)(()=>{let e=sw;return eg&&(e=e.filter(e=>e.query===eg)),eu&&(e=e.filter(e=>e.framework===eu)),Array.from(new Set(e.map(e=>e.label||"Other"))).sort()},[sw,eg,eu]),sF=(0,d.useMemo)(()=>{let e=sw;return eg&&(e=e.filter(e=>e.query===eg)),eu&&(e=e.filter(e=>e.framework===eu)),Array.from(new Set(e.map(e=>e.model||"Unknown"))).sort()},[sw,eg,eu]),sI=(0,d.useMemo)(()=>{let e=sw;return eu&&(e=e.filter(e=>e.framework===eu)),Array.from(new Set(e.map(e=>e.query))).sort()},[sw,eu]);(0,d.useEffect)(()=>{eu&&sN.includes(eu)||!(sN.length>0)||eh(sN[0]),!em&&sS.length>0&&eb(sS[0])},[sN,sS]),(0,d.useEffect)(()=>{eg&&sI.includes(eg)||!(sI.length>0)||ej(sI[0])},[sI]);let sA=(0,d.useMemo)(()=>{let e=sw;if("single"===ep)e=e.filter(e=>e.query===em);else if("latest_10"===ep){let s=Array.from(new Set(e.map(e=>e.query))).map(s=>({query:s,latestTimestamp:Math.max(...e.filter(e=>e.query===s).map(e=>new Date(e.timestamp).getTime()))})).sort((e,s)=>s.latestTimestamp-e.latestTimestamp).slice(0,10).map(e=>e.query);e=e.filter(e=>s.includes(e.query))}if(ek){let s=[];return Array.from(new Set(e.map(e=>e.label||"Other"))).sort().forEach(t=>{if(eS.length>0&&!eS.includes(t))return;let d=e.filter(e=>(e.label||"Other")===t);if(0===d.length)return;let r={label:t,data:[]};Array.from(new Set(d.map(e=>e.query))).forEach(e=>{let s={shortQuery:e.length>15?e.substring(0,15)+"...":e};sz.forEach(t=>{let r=d.filter(s=>s.query===e&&("framework"===e_?s.framework:s.model||"Unknown")===t);if(r.length>0){let e=r.reduce((e,s)=>e+s.latency,0)/r.length,d=r.reduce((e,s)=>e+s.tokens,0)/r.length,a=r.filter(e=>null!==e.answer_score),l=a.length>0,n=l?a.reduce((e,s)=>e+(s.answer_score||0),0)/a.length:0,i=r.reduce((e,s)=>e+(s.skill_recall_rate??0),0)/r.length*100;s[`${t}_lat`]=parseFloat(e.toFixed(2)),s[`${t}_tok`]=Math.round(d),s[`${t}_score`]=l?parseFloat(n.toFixed(2)):null,s[`${t}_recall`]=parseFloat(i.toFixed(1))}}),Object.keys(s).length>1&&r.data.push(s)}),r.data.length>0&&s.push(r)}),s}{let s={};e.forEach(e=>{s[e.query]||(s[e.query]=[]),s[e.query].push(e)});let t=[];return(Object.keys(s).forEach(e=>{let d=s[e],r=Math.max(...d.map(e=>new Date(e.timestamp).getTime())),a={query:e,shortQuery:e.length>15?e.substring(0,15)+"...":e,latestTimestamp:r},l=!1;sz.forEach(e=>{let s=d.filter(s=>("framework"===e_?s.framework:s.model||"Unknown")===e);if(s.length>0){let t=s.reduce((e,s)=>e+s.latency,0)/s.length,d=s.reduce((e,s)=>e+s.tokens,0)/s.length,r=s.reduce((e,s)=>e+(s.skill_recall_rate??0),0)/s.length*100,n=s.filter(e=>null!==e.answer_score),i=n.length>0,c=i?n.reduce((e,s)=>e+(s.answer_score||0),0)/n.length:0;a[`${e}_lat`]=parseFloat(t.toFixed(2)),a[`${e}_tok`]=Math.round(d),a[`${e}_recall`]=parseFloat(r.toFixed(1)),a[`${e}_score`]=i?parseFloat(c.toFixed(2)):null,l=!0}}),l&&t.push(a)}),t.sort((e,s)=>s.latestTimestamp-e.latestTimestamp),"latest_10"===ep)?t.slice(0,10):t}},[sw,ep,em,ek,eS,sz,e_]),s$=(0,d.useMemo)(()=>{if(!eg)return null;let e=sw.filter(e=>e.query===eg);if(eu&&(e=e.filter(e=>e.framework===eu)),0===e.length)return null;let s=e.reduce((e,s)=>e+s.latency,0),t=[...e].sort((e,s)=>e.latency-s.latency),d=new Set(G.filter(e=>e.skill&&""!==e.skill.trim()||e.expectedSkills&&e.expectedSkills.some(e=>e.skill&&""!==e.skill.trim())).map(e=>e.query.trim())),r=sw.filter(e=>e.query&&d.has(e.query.trim())).filter(e=>null!==e.skill_recall_rate&&void 0!==e.skill_recall_rate),a=r.length>0?r.reduce((e,s)=>e+(s.skill_recall_rate??0),0)/r.length*100:0,l=e.filter(e=>null!==e.skill_recall_rate&&void 0!==e.skill_recall_rate),n=l.length>0?l.reduce((e,s)=>e+(s.skill_recall_rate??0),0)/l.length*100:0,i=e.filter(e=>null!=e.cost),c=i.length?i.reduce((e,s)=>e+(s.cost||0),0)/i.length:null,o=R(e);return{count:e.length,avgLatency:s/e.length,avgTokens:Math.round(e.reduce((e,s)=>e+s.tokens,0)/e.length),avgCost:c,globalSkillRecallRate:a,querySkillRecallRate:n,cpsr:o,avgAnsScore:e.filter(e=>null!==e.answer_score).length?e.filter(e=>null!==e.answer_score).reduce((e,s)=>e+(s.answer_score||0),0)/e.filter(e=>null!==e.answer_score).length:0,best:t[0],worst:t[t.length-1],avgSkillScore:e.reduce((e,s)=>e+(s.skill_score||0),0)/e.filter(e=>void 0!==e.skill_score).length||0}},[sw,eu,eg,G]),sW=(0,d.useMemo)(()=>sw.filter(e=>(!e9||e.framework===e9)&&(!e6||e.label===e6)&&(!e5||e.model===e5)&&(!e8||!!e.query.toLowerCase().includes(e8.toLowerCase()))),[sw,e9,e6,e5,e8]),sB=Math.ceil(sW.length/10),sD=sW.slice((ss-1)*10,10*ss),sE=({title:e,dataKey:t,unit:d="",data:r,frameworks:f,yFormatter:m})=>(0,s.jsxs)("div",{className:"card",style:{height:"350px",display:"flex",flexDirection:"column"},children:[(0,s.jsx)("div",{className:"card-title",style:{marginBottom:"10px"},children:e}),(0,s.jsx)("div",{style:{flex:1,minHeight:0},children:(0,s.jsx)(c.ResponsiveContainer,{width:"100%",height:"100%",children:(0,s.jsxs)(l.BarChart,{data:r,margin:{top:10,right:10,left:0,bottom:20},children:[(0,s.jsx)(n.CartesianGrid,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,s.jsx)(x.XAxis,{dataKey:"shortQuery",stroke:"var(--foreground-secondary)",fontSize:11,angle:-20,textAnchor:"end",height:60}),(0,s.jsx)(p.YAxis,{stroke:"var(--foreground-secondary)",tickFormatter:m}),(0,s.jsx)(o.Tooltip,{formatter:(e,s)=>[void 0!==e?m?m(e):e+d:"-",s||""],contentStyle:{backgroundColor:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),(0,s.jsx)(i.Legend,{}),f.map((e,d)=>(0,s.jsx)(a.Bar,{dataKey:`${e}_${t}`,name:e,fill:_[d%_.length],radius:[4,4,0,0]},e))]})})})]});return(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 dashboard-container",children:[(0,s.jsxs)("header",{style:{flexDirection:"column",alignItems:"flex-start",gap:"1rem"},className:"jsx-29dfb32d17c16cd9 header",children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",width:"100%",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h1",{style:{marginBottom:0},className:"jsx-29dfb32d17c16cd9 title",children:"Skill-Insight"}),(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)",letterSpacing:"1px"},className:"jsx-29dfb32d17c16cd9",children:"智能体技能评估、分析与优化"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 tabs",children:[(0,s.jsx)("button",{onClick:()=>H("dashboard"),className:`jsx-29dfb32d17c16cd9 tab-btn ${"dashboard"===q?"active":""}`,children:"数据概览"}),(0,s.jsx)("button",{onClick:()=>H("config"),className:`jsx-29dfb32d17c16cd9 tab-btn ${"config"===q?"active":""}`,children:"数据集管理"}),(0,s.jsx)("button",{onClick:()=>H("skill"),className:`jsx-29dfb32d17c16cd9 tab-btn ${"skill"===q?"active":""}`,children:"技能管理"})]})]}),"dashboard"===q&&(0,s.jsxs)("div",{style:{display:"flex",gap:"8px"},className:"jsx-29dfb32d17c16cd9 controls",children:[(0,s.jsx)("button",{onClick:y,title:v?"切换到浅色主题":"切换到深色主题",className:"jsx-29dfb32d17c16cd9 theme-toggle-btn",children:v?"☀️":"🌙"}),(0,s.jsxs)("select",{value:eo,onChange:e=>ex(e.target.value),className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"all",className:"jsx-29dfb32d17c16cd9",children:"全部时间"}),(0,s.jsx)("option",{value:"24h",className:"jsx-29dfb32d17c16cd9",children:"24H"}),(0,s.jsx)("option",{value:"3h",className:"jsx-29dfb32d17c16cd9",children:"3H"}),(0,s.jsx)("option",{value:"1h",className:"jsx-29dfb32d17c16cd9",children:"1H"})]}),eK.length>0?(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px",border:"1px solid var(--border)",borderRadius:"4px",padding:"4px 8px",background:"var(--background-secondary)"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)"},className:"jsx-29dfb32d17c16cd9",children:"模型:"}),(0,s.jsxs)("select",{value:eV||"none",onChange:e=>e1(e.target.value),style:{background:"transparent",color:"var(--foreground-secondary)",border:"none",maxWidth:"140px",outline:"none",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"none",className:"jsx-29dfb32d17c16cd9",children:"未配置模型"}),eK.map(e=>(0,s.jsx)("option",{value:e.id,className:"jsx-29dfb32d17c16cd9",children:e.name},e.id))]}),(0,s.jsx)("div",{style:{width:"1px",height:"14px",background:"var(--border)",margin:"0 4px"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{onClick:()=>eP(!0),style:{background:"transparent",border:"none",cursor:"pointer",padding:"0",fontSize:"1rem"},title:"Manage Configurations",className:"jsx-29dfb32d17c16cd9",children:"⚙️"})]}):(0,s.jsx)("button",{style:{padding:"4px 8px",background:"transparent",border:"1px solid var(--border)",color:"var(--foreground-secondary)"},onClick:()=>eP(!0),className:"jsx-29dfb32d17c16cd9 btn-secondary",children:"⚙️ Eval Config"})]})]}),eL&&(0,s.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:2e3},onClick:e=>{e.target===e.currentTarget&&eP(!1)},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsxs)("div",{style:{width:"600px",maxHeight:"90vh",overflowY:"auto"},className:"jsx-29dfb32d17c16cd9 card",children:[!eQ&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"1rem",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h3",{style:{margin:0,color:"#1e293b"},className:"jsx-29dfb32d17c16cd9",children:"管理模型配置"}),(0,s.jsx)("button",{onClick:()=>eP(!1),style:{background:"transparent",border:"none",color:"#64748b",fontSize:"1.2rem",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✕"})]}),(0,s.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"8px",marginBottom:"1.5rem"},className:"jsx-29dfb32d17c16cd9",children:eK.map(e=>{let t=e.id.startsWith("default_");return(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"10px",background:eV===e.id?"rgba(37, 99, 235, 0.1)":"#f8fafc",border:eV===e.id?"1px solid #2563eb":"1px solid #e2e8f0",borderRadius:"6px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{fontWeight:"bold",color:eV===e.id?"#2563eb":"#1e293b"},className:"jsx-29dfb32d17c16cd9",children:[e.name," ",eV===e.id&&"(Active)",t&&(0,s.jsx)("span",{style:{marginLeft:"8px",fontSize:"0.8rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9",children:"📋 Default (Read-only)"})]}),(0,s.jsxs)("div",{style:{fontSize:"0.8rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9",children:[e.provider," • ",e.model]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"8px"},className:"jsx-29dfb32d17c16cd9",children:[eV!==e.id&&(0,s.jsx)("button",{style:{padding:"4px 8px",fontSize:"0.8rem"},onClick:()=>e1(e.id),className:"jsx-29dfb32d17c16cd9 btn-secondary",children:"Activate"}),!t&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{style:{padding:"4px 8px",fontSize:"0.8rem"},onClick:()=>{eZ({...e}),eX(e.id),eH(null)},className:"jsx-29dfb32d17c16cd9 btn-secondary",children:"Edit"}),(0,s.jsx)("button",{style:{padding:"4px 8px",fontSize:"0.8rem",color:"#dc2626",borderColor:"#f87171"},onClick:()=>e2(e.id),className:"jsx-29dfb32d17c16cd9 btn-secondary",children:"Del"})]})]})]},e.id)})}),(0,s.jsx)("button",{style:{width:"100%",display:"flex",justifyContent:"center",gap:"8px"},onClick:()=>{eZ({id:"new",name:"新配置",provider:"deepseek",model:"deepseek-chat",apiKey:"",baseUrl:"https://api.deepseek.com"}),eX("new"),eH(null)},className:"jsx-29dfb32d17c16cd9 btn-primary",children:"+ 添加新配置"})]}),eQ&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"1rem",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h3",{style:{margin:0,color:"#1e293b"},className:"jsx-29dfb32d17c16cd9",children:"new"===eQ?"新配置":"编辑"}),(0,s.jsx)("button",{onClick:()=>eX(null),style:{background:"transparent",border:"none",color:"#64748b",fontSize:"0.9rem",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"Back to List"})]}),eq&&(0,s.jsx)("div",{style:{padding:"10px",marginBottom:"1rem",borderRadius:"4px",background:"success"===eq.type?"rgba(22, 163, 74, 0.1)":"rgba(220, 38, 38, 0.1)",border:`1px solid ${"success"===eq.type?"#16a34a":"#dc2626"}`,color:"success"===eq.type?"#16a34a":"#dc2626",fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9",children:eq.msg}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{className:"jsx-29dfb32d17c16cd9",children:"Config Name"}),(0,s.jsx)("input",{placeholder:"e.g. My DeepSeek, Company OpenAI Proxy",value:eG.name||"",onChange:e=>eZ({...eG,name:e.target.value}),disabled:eQ.startsWith("default_"),style:{width:"100%",padding:"10px",background:"#ffffff",border:"1px solid #cbd5e1",color:"#1e293b",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{className:"jsx-29dfb32d17c16cd9",children:"Provider"}),(0,s.jsxs)("select",{value:eG.provider,onChange:e=>{let s=e.target.value,t={provider:s};"deepseek"===s?(t.baseUrl="https://api.deepseek.com",t.model="deepseek-chat"):"siliconflow"===s?(t.baseUrl="https://api.siliconflow.cn/v1",t.model="deepseek-ai/DeepSeek-V3"):"openai"===s?(t.baseUrl="https://api.openai.com/v1",t.model="gpt-4o"):"anthropic"===s&&(t.baseUrl="https://api.anthropic.com/v1",t.model="claude-3-5-sonnet-20240620"),eZ({...eG,...t})},disabled:eQ.startsWith("default_"),style:{width:"100%",padding:"10px",background:"#ffffff",border:"1px solid #cbd5e1",color:"#1e293b",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"deepseek",className:"jsx-29dfb32d17c16cd9",children:"DeepSeek (Official)"}),(0,s.jsx)("option",{value:"siliconflow",className:"jsx-29dfb32d17c16cd9",children:"SiliconFlow (DeepSeek V3 High Speed)"}),(0,s.jsx)("option",{value:"openai",className:"jsx-29dfb32d17c16cd9",children:"OpenAI"}),(0,s.jsx)("option",{value:"anthropic",className:"jsx-29dfb32d17c16cd9",children:"Anthropic"}),(0,s.jsx)("option",{value:"custom",className:"jsx-29dfb32d17c16cd9",children:"Custom (OpenAI Compatible)"})]})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{className:"jsx-29dfb32d17c16cd9",children:"Base URL (Optional)"}),(0,s.jsx)("input",{placeholder:"e.g. https://api.deepseek.com or https://api.openai.com/v1",value:eG.baseUrl||"",onChange:e=>{let s=e.target.value;s=s.replace(/\/chat\/completions\/?$/,""),eZ({...eG,baseUrl:s})},disabled:eQ.startsWith("default_"),style:{width:"100%",padding:"10px",background:"#ffffff",border:"1px solid #cbd5e1",color:"#1e293b",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{className:"jsx-29dfb32d17c16cd9",children:"API Key"}),(0,s.jsx)("input",{type:"password",placeholder:"sk-...",value:eG.apiKey||"",onChange:e=>eZ({...eG,apiKey:e.target.value}),disabled:eQ.startsWith("default_"),style:{width:"100%",padding:"10px",background:"#ffffff",border:"1px solid #cbd5e1",color:"#1e293b",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{className:"jsx-29dfb32d17c16cd9",children:"Model Name"}),(0,s.jsx)("input",{placeholder:"e.g. deepseek-chat, gpt-4o",value:eG.model||"",onChange:e=>eZ({...eG,model:e.target.value}),disabled:eQ.startsWith("default_"),style:{width:"100%",padding:"10px",background:"#ffffff",border:"1px solid #cbd5e1",color:"#1e293b",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9"})]}),(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"8px",marginTop:"2rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>eX(null),className:"jsx-29dfb32d17c16cd9 btn-secondary",children:"Cancel"}),!eQ.startsWith("default_")&&(0,s.jsxs)("button",{onClick:e0,disabled:eU,style:{opacity:eU?.7:1,display:"flex",alignItems:"center",gap:"6px"},className:"jsx-29dfb32d17c16cd9 btn-primary",children:[eU&&(0,s.jsx)("span",{style:{width:"12px",height:"12px",border:"2px solid white",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 1s linear infinite"},className:"jsx-29dfb32d17c16cd9"}),eU?"Testing & Saving...":"Test Connection & Save"]})]})]})]})}),"dashboard"===q&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("h2",{className:"jsx-29dfb32d17c16cd9 section-title",children:"全景概览"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 grid",children:sN.map((e,t)=>{let d=sw.filter(s=>s.framework===e),r=new Set(G.filter(e=>e.skill&&""!==e.skill.trim()||e.expectedSkills&&e.expectedSkills.some(e=>e.skill&&""!==e.skill.trim())).map(e=>e.query.trim())),a=d.filter(e=>e.query&&r.has(e.query.trim())),l=d.length?d.reduce((e,s)=>e+s.latency,0)/d.length:0,n=d.length?d.reduce((e,s)=>e+s.tokens,0)/d.length:0,i=d.filter(e=>null!==e.answer_score),c=i.length>0,o=c?i.reduce((e,s)=>e+(s.answer_score||0),0)/i.length:0,x=a.length?a.reduce((e,s)=>e+(s.skill_recall_rate??0),0)/a.length*100:0;return(0,s.jsxs)("div",{style:{borderLeft:`4px solid ${_[t%_.length]}`},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsx)("div",{style:{color:_[t%_.length]},className:"jsx-29dfb32d17c16cd9 card-title",children:e}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 stat-value",children:[d.length," ",(0,s.jsx)("small",{style:{fontSize:"1rem",color:"var(--foreground-muted)"},className:"jsx-29dfb32d17c16cd9",children:"执行数"})]}),(0,s.jsxs)("div",{style:{marginTop:"1rem",display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.2rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)",textTransform:"uppercase"},className:"jsx-29dfb32d17c16cd9",children:"时延"}),(0,s.jsx)("span",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9",children:C(l)})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)",textTransform:"uppercase"},className:"jsx-29dfb32d17c16cd9",children:"TOKEN"}),(0,s.jsx)("span",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9",children:z(Math.round(n))})]})]}),(0,s.jsxs)("div",{style:{marginTop:"0.8rem",paddingTop:"0.8rem",borderTop:"1px solid var(--border)",display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.2rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)"},className:"jsx-29dfb32d17c16cd9",children:"准确率"}),(0,s.jsx)("span",{style:{fontSize:"1.5rem",fontWeight:700,color:c?o>.8?"var(--success)":"var(--warning)":"var(--foreground-muted)"},className:"jsx-29dfb32d17c16cd9",children:c?`${(100*o).toFixed(1)}%`:"--"})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)"},className:"jsx-29dfb32d17c16cd9",children:"技能召回率"}),(0,s.jsxs)("span",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--warning)"},className:"jsx-29dfb32d17c16cd9",children:[x.toFixed(1),"%"]})]})]})]},e)})}),(0,s.jsx)("h2",{className:"jsx-29dfb32d17c16cd9 section-title",children:"对比分析"}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 analysis-controls",children:[(0,s.jsx)("div",{style:{display:"flex",gap:"1rem",flexWrap:"wrap"},className:"jsx-29dfb32d17c16cd9",children:["latest_10","all","single"].map(e=>(0,s.jsxs)("label",{style:{cursor:"pointer",color:"var(--foreground)",display:"flex",alignItems:"center",gap:"5px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"radio",checked:ep===e,onChange:()=>ef(e),className:"jsx-29dfb32d17c16cd9"}),"latest_10"===e?"最新10问":"all"===e?"所有":"单问题"]},e))}),"single"===ep&&(0,s.jsx)("select",{value:em,onChange:e=>eb(e.target.value),style:{maxWidth:"300px"},className:"jsx-29dfb32d17c16cd9",children:sS.map(e=>(0,s.jsx)("option",{value:e,className:"jsx-29dfb32d17c16cd9",children:e.substring(0,40)},e))}),(0,s.jsxs)("div",{style:{marginLeft:"10px",display:"flex",gap:"8px",borderLeft:"1px solid var(--border)",paddingLeft:"10px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{color:"var(--foreground-secondary)",fontSize:"0.9rem",display:"flex",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:"分类:"}),(0,s.jsx)("button",{onClick:()=>eC("framework"),style:{padding:"2px 8px",fontSize:"0.8rem",background:"framework"===e_?"var(--primary)":"transparent",color:"framework"===e_?"#ffffff":"var(--foreground-secondary)",border:"1px solid var(--primary)"},className:`jsx-29dfb32d17c16cd9 tab-btn-sm ${"framework"===e_?"active":""}`,children:"框架"}),(0,s.jsx)("button",{onClick:()=>eC("model"),style:{padding:"2px 8px",fontSize:"0.8rem",background:"model"===e_?"var(--primary)":"transparent",color:"model"===e_?"#ffffff":"var(--foreground-secondary)",border:"1px solid var(--primary)"},className:`jsx-29dfb32d17c16cd9 tab-btn-sm ${"model"===e_?"active":""}`,children:"模型"})]}),(0,s.jsxs)("div",{style:{marginLeft:"10px",display:"flex",alignItems:"center",gap:"10px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("label",{style:{cursor:"pointer",color:"var(--foreground)",display:"flex",alignItems:"center",gap:"5px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:ek,onChange:e=>{eN(e.target.checked),e.target.checked&&eS.length},className:"jsx-29dfb32d17c16cd9"}),"按标签分类"]}),ek&&(0,s.jsxs)("div",{style:{position:"relative",display:"inline-block"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{background:"var(--dropdown-bg)",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",border:"1px solid var(--dropdown-border)",minWidth:"150px",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9 dropdown-trigger",children:[0===eS.length?"所有标签":`已选 ${eS.length} 个`,(0,s.jsx)("span",{style:{float:"right",fontSize:"0.8rem"},className:"jsx-29dfb32d17c16cd9",children:"▼"})]}),(0,s.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,zIndex:10,background:"var(--dropdown-bg)",border:"1px solid var(--dropdown-border)",borderRadius:"4px",padding:"0.5rem",minWidth:"200px",maxHeight:"300px",overflowY:"auto",boxShadow:"0 4px 6px -1px var(--shadow-color)"},className:"jsx-29dfb32d17c16cd9 dropdown-content",children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"4px",cursor:"pointer",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:0===eS.length,onChange:()=>ew([]),className:"jsx-29dfb32d17c16cd9"})," ",(0,s.jsx)("span",{style:{marginLeft:"4px"},className:"jsx-29dfb32d17c16cd9",children:"所有标签"})]}),(0,s.jsx)("hr",{style:{borderColor:"var(--border)",margin:"4px 0"},className:"jsx-29dfb32d17c16cd9"}),sT.map(e=>(0,s.jsxs)("label",{style:{display:"block",marginBottom:"4px",cursor:"pointer",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:eS.includes(e),onChange:s=>{s.target.checked?ew([...eS,e]):ew(eS.filter(s=>s!==e))},className:"jsx-29dfb32d17c16cd9"})," ",(0,s.jsx)("span",{style:{marginLeft:"4px"},className:"jsx-29dfb32d17c16cd9",children:e})]},e))]})]})]})]}),ek?(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[sA.map(e=>(0,s.jsxs)("div",{style:{marginBottom:"2rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("h3",{style:{color:"var(--foreground)",borderBottom:"1px solid var(--border)",paddingBottom:"0.5rem",marginBottom:"1rem"},className:"jsx-29dfb32d17c16cd9",children:["Tag: ",(0,s.jsx)("span",{style:{color:"#2563eb"},className:"jsx-29dfb32d17c16cd9",children:e.label})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 analysis-grid",children:[(0,s.jsx)(sE,{title:"平均时延",unit:"m",dataKey:"lat",data:e.data,frameworks:sz,yFormatter:e=>(e/6e4).toFixed(2)+"m"}),(0,s.jsx)(sE,{title:"平均消耗 (Tokens)",dataKey:"tok",data:e.data,frameworks:sz,yFormatter:z}),(0,s.jsx)(sE,{title:"平均准确率",dataKey:"score",unit:"",data:e.data,frameworks:sz}),(0,s.jsx)(sE,{title:"平均技能召回率",dataKey:"recall",unit:"%",data:e.data,frameworks:sz,yFormatter:e=>Number(e).toFixed(1)+"%"})]})]},e.label)),0===sA.length&&(0,s.jsx)("div",{style:{textAlign:"center",padding:"2rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9 card",children:"无数据"})]}):sA.length>0?(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 analysis-grid",children:[(0,s.jsx)(sE,{title:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["平均时延 ",(0,s.jsx)(A,{content:"基于选中查询的所有执行结果计算出的平均总响应耗时(分钟)"})]}),dataKey:"lat",unit:"m",data:sA,frameworks:sz,yFormatter:e=>(e/6e4).toFixed(2)+"m",className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)(sE,{title:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["平均消耗 (Tokens) ",(0,s.jsx)(A,{content:"基于选中查询的所有执行结果计算出的平均 Token 消耗总额"})]}),dataKey:"tok",unit:"",data:sA,frameworks:sz,yFormatter:z,className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)(sE,{title:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["平均准确率 ",(0,s.jsx)(A,{content:(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:["基于LLM评估所有执行结果与期望答案的差异,计算出的0-1分值的平均值,1表示完全正确。",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),'"--"表示评估失败,可能是由于模型未配置(请在首页左上角的设置中配置 LLM)或者数据项未配置。']})})]}),dataKey:"score",unit:"",data:sA,frameworks:sz,className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)(sE,{title:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["平均技能召回率 ",(0,s.jsx)(A,{content:(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:["基于执行结果是否使用了预期技能计算出的百分比,表示正确调用技能的比例。",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),"这是全局指标,反映技能路由的准确性。"]})})]}),dataKey:"recall",unit:"%",data:sA,frameworks:sz,yFormatter:e=>Number(e).toFixed(1)+"%",className:"jsx-29dfb32d17c16cd9"})]}):(0,s.jsx)("div",{style:{textAlign:"center",padding:"2rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9 card",children:"无数据"}),(0,s.jsx)("h2",{className:"jsx-29dfb32d17c16cd9 section-title",children:"单问题详情 (Drill-down)"}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 analysis-controls",children:[(0,s.jsxs)("select",{value:eu,onChange:e=>eh(e.target.value),className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"",className:"jsx-29dfb32d17c16cd9",children:"选择框架"}),sN.map(e=>(0,s.jsx)("option",{value:e,className:"jsx-29dfb32d17c16cd9",children:e},e))]}),(0,s.jsxs)("select",{value:eg,onChange:e=>ej(e.target.value),style:{flex:1},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"",className:"jsx-29dfb32d17c16cd9",children:"选择问题"}),sI.map(e=>(0,s.jsx)("option",{value:e,className:"jsx-29dfb32d17c16cd9",children:e.substring(0,80)},e))]}),(0,s.jsxs)("div",{style:{marginLeft:"10px",display:"flex",alignItems:"center",gap:"20px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("label",{style:{cursor:"pointer",color:"var(--foreground)",display:"flex",alignItems:"center",gap:"5px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:ez,onChange:e=>{eT(e.target.checked),e.target.checked&&eF(!1)},className:"jsx-29dfb32d17c16cd9"}),"按标签分类"]}),(0,s.jsxs)("label",{style:{cursor:"pointer",color:"var(--foreground)",display:"flex",alignItems:"center",gap:"5px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:eR,onChange:e=>{eF(e.target.checked),e.target.checked&&eT(!1)},className:"jsx-29dfb32d17c16cd9"}),"按模型分类"]}),ez&&(0,s.jsxs)("div",{style:{position:"relative",display:"inline-block"},className:"jsx-29dfb32d17c16cd9 dropdown-container",children:[(0,s.jsxs)("div",{style:{background:"var(--dropdown-bg)",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",border:"1px solid var(--dropdown-border)",minWidth:"150px",display:"flex",alignItems:"center",justifyContent:"space-between",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9 dropdown-trigger",children:[0===eI.length?"所有标签 (All Labels)":`已选 ${eI.length} 个`,(0,s.jsx)("span",{style:{fontSize:"0.8rem",marginLeft:"8px"},className:"jsx-29dfb32d17c16cd9",children:"▼"})]}),(0,s.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,zIndex:10,background:"var(--dropdown-bg)",border:"1px solid var(--dropdown-border)",borderRadius:"4px",padding:"0.5rem",minWidth:"200px",maxHeight:"300px",overflowY:"auto",boxShadow:"0 4px 6px -1px var(--shadow-color)",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9 dropdown-content",children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"4px",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:0===eI.length,onChange:()=>eA([]),className:"jsx-29dfb32d17c16cd9"})," ",(0,s.jsx)("span",{style:{marginLeft:"4px"},className:"jsx-29dfb32d17c16cd9",children:"所有标签 (All)"})]}),(0,s.jsx)("hr",{style:{borderColor:"var(--border)",margin:"4px 0"},className:"jsx-29dfb32d17c16cd9"}),sR.map(e=>(0,s.jsxs)("label",{style:{display:"block",marginBottom:"4px",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:eI.includes(e),onChange:s=>{s.target.checked?eA([...eI,e]):eA(eI.filter(s=>s!==e))},className:"jsx-29dfb32d17c16cd9"})," ",(0,s.jsx)("span",{style:{marginLeft:"4px"},className:"jsx-29dfb32d17c16cd9",children:e})]},e))]})]}),eR&&(0,s.jsxs)("div",{style:{position:"relative",display:"inline-block"},className:"jsx-29dfb32d17c16cd9 dropdown-container",children:[(0,s.jsxs)("div",{style:{background:"var(--dropdown-bg)",padding:"4px 8px",borderRadius:"4px",cursor:"pointer",border:"1px solid var(--dropdown-border)",minWidth:"150px",display:"flex",alignItems:"center",justifyContent:"space-between",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9 dropdown-trigger",children:[0===e$.length?"所有模型 (All Models)":`已选 ${e$.length} 个`,(0,s.jsx)("span",{style:{fontSize:"0.8rem",marginLeft:"8px"},className:"jsx-29dfb32d17c16cd9",children:"▼"})]}),(0,s.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,zIndex:10,background:"var(--dropdown-bg)",border:"1px solid var(--dropdown-border)",borderRadius:"4px",padding:"0.5rem",minWidth:"200px",maxHeight:"300px",overflowY:"auto",boxShadow:"0 4px 6px -1px var(--shadow-color)",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9 dropdown-content",children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"4px",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:0===e$.length,onChange:()=>eW([]),className:"jsx-29dfb32d17c16cd9"})," ",(0,s.jsx)("span",{style:{marginLeft:"4px"},className:"jsx-29dfb32d17c16cd9",children:"所有模型 (All)"})]}),(0,s.jsx)("hr",{style:{borderColor:"var(--border)",margin:"4px 0"},className:"jsx-29dfb32d17c16cd9"}),sF.map(e=>(0,s.jsxs)("label",{style:{display:"block",marginBottom:"4px",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"checkbox",checked:e$.includes(e),onChange:s=>{s.target.checked?eW([...e$,e]):eW(e$.filter(s=>s!==e))},className:"jsx-29dfb32d17c16cd9"})," ",(0,s.jsx)("span",{style:{marginLeft:"4px"},className:"jsx-29dfb32d17c16cd9",children:e})]},e))]})]})]})]}),ez||eR?(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9",children:(ez?sR:sF).filter(e=>ez?0===eI.length||eI.includes(e):0===e$.length||e$.includes(e)).map(e=>{let t=sw;if(t=ez?t.filter(s=>(s.label||"Other")===e):t.filter(s=>(s.model||"Unknown")===e),eg&&(t=t.filter(e=>e.query===eg)),eu&&(t=t.filter(e=>e.framework===eu)),0===t.length)return null;let d=t.length,r=t.reduce((e,s)=>e+s.latency,0)/d,a=Math.round(t.reduce((e,s)=>e+s.tokens,0)/d);t.reduce((e,s)=>e+(s.skill_recall_rate??0),0);let l=t.filter(e=>null!==e.answer_score),n=l.length?l.reduce((e,s)=>e+(s.answer_score||0),0)/l.length:0,i=[...t].sort((e,s)=>e.latency-s.latency)[0],c=[...t].sort((e,s)=>s.latency-e.latency)[0],o=t.filter(e=>null!=e.cost),x=o.length?o.reduce((e,s)=>e+(s.cost||0),0)/o.length:null,p=R(t),f=null;if(ez&&eg&&"without-skill"!==e&&"Other"!==e){let s=sw.filter(e=>e.query===eg);eu&&(s=s.filter(e=>e.framework===eu)),f=((e,s)=>{let t=e.filter(e=>(e.label||"Other")===s),d=e.filter(e=>"without-skill"===e.label),{successRate:r,evaluatedCount:a}=F(t),{successRate:l,evaluatedCount:n}=F(d);return 0===n?{valuePct:null,passSkill:r,passNoSkill:l,evaluatedSkillCount:a,evaluatedBaselineCount:n,reason:"缺少 without-skill 基线或基线数据尚未完成评测,暂无法计算。"}:0===a?{valuePct:null,passSkill:r,passNoSkill:l,evaluatedSkillCount:a,evaluatedBaselineCount:n,reason:"当前标签下暂无可用于计算的已评测数据。"}:null===r||null===l?{valuePct:null,passSkill:r,passNoSkill:l,evaluatedSkillCount:a,evaluatedBaselineCount:n,reason:"当前数据不足以完成 Skill Lift 计算。"}:l>=1?{valuePct:null,passSkill:r,passNoSkill:l,evaluatedSkillCount:a,evaluatedBaselineCount:n,reason:"without-skill 基线成功率为 100%,公式分母为 0,暂无法计算。"}:{valuePct:(r-l)/(1-l)*100,passSkill:r,passNoSkill:l,evaluatedSkillCount:a,evaluatedBaselineCount:n,reason:null}})(s,e)}return(0,s.jsxs)("div",{style:{marginBottom:"2rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{marginBottom:"0.5rem"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsxs)("h3",{style:{margin:0,color:"#38bdf8",fontSize:"1.1rem"},className:"jsx-29dfb32d17c16cd9",children:[ez?"标签 (Label): ":"模型 (Model): "," ",e]})}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"1rem"},className:"jsx-29dfb32d17c16cd9 grid",children:[(0,s.jsxs)("div",{style:{gridColumn:"span 2"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 card-title",children:["平均表现",(0,s.jsxs)("span",{style:{fontSize:"0.85rem",color:"#94a3b8",fontWeight:"normal",marginLeft:"8px"},className:"jsx-29dfb32d17c16cd9",children:["(基于 ",d," 条记录)"]})]}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"1rem",textAlign:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均时延"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:C(r)})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均 Token"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:z(a)})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均准确率"}),(0,s.jsx)("div",{style:{color:n>.8?"#4ade80":"#fbbf24"},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:n.toFixed(2)})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:["平均成本 ",(0,s.jsx)(A,{content:"根据默认定价或自定义(custom-models.json)定价估算得出。"})]}),(0,s.jsx)("div",{style:null==x?{color:"#64748b"}:{},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:null!=x?T(x):"N/A"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:["CPSR ",(0,s.jsx)(A,{content:"单次成功解决成本:每次任务成功解决的平均开销。\n计算公式:(总成本)÷(成功解决的运行次数)"})]}),(0,s.jsx)("div",{style:{color:null!=p?"#38bdf8":"#64748b"},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:null!=p?T(p):"N/A"})]})]})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"space-between"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9 card-title text-green-400",children:"最好表现 (Min Lat)"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:C(i.latency)}),(0,s.jsxs)("div",{style:{fontSize:"0.75rem"},className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400 mt-2",children:["Token: ",z(i.tokens)," | Score: ",i.answer_score?.toFixed(2)||"-"," ",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),"Cost: ",T(i.cost)||"-"]})]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"#38bdf8",cursor:"pointer",marginTop:"0.5rem",textAlign:"right"},onClick:()=>{let e=`/details?framework=${encodeURIComponent(i.framework)}&expandTaskId=${i.task_id||i.upload_id}`;window.open(e,"_blank")},className:"jsx-29dfb32d17c16cd9",children:"查看 >"})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"space-between"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9 card-title text-red-400",children:"最差表现 (Max Lat)"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:C(c.latency)}),(0,s.jsxs)("div",{style:{fontSize:"0.75rem"},className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400 mt-2",children:["Token: ",z(c.tokens)," | Score: ",c.answer_score?.toFixed(2)||"-"," ",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),"Cost: ",T(c.cost)||"-"]})]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"#38bdf8",cursor:"pointer",marginTop:"0.5rem",textAlign:"right"},onClick:()=>window.open(`/details?framework=${encodeURIComponent(c.framework)}&query=${encodeURIComponent(c.query)}&expandTaskId=${c.task_id||c.upload_id}`,"_blank"),className:"jsx-29dfb32d17c16cd9",children:"查看 >"})]}),ez&&null!==f&&(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"space-between"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9 card-title text-purple-400",children:["技能提升 (Skill Lift)",(0,s.jsx)(A,{content:"表示启用当前 Skill 标签后,相对 without-skill 基线带来的成功率提升。\n计算公式:(skill_success_rate - no_skill_success_rate) / (1 - no_skill_success_rate)\n其中:skill_success_rate 为当前标签下已评测记录的成功率;no_skill_success_rate 为 without-skill 基线下已评测记录的成功率。\n仅在同时存在已评测的当前标签数据和 without-skill 基线数据时才计算。"})]}),(0,s.jsx)("div",{style:{marginTop:"0.5rem",fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsx)("div",{style:{marginBottom:"0.5rem"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsx)("div",{style:{fontSize:"1.2rem",fontWeight:"bold",color:null==f.valuePct?"#94a3b8":f.valuePct>0?"#4ade80":f.valuePct<0?"#f87171":"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:null==f.valuePct?"N/A":`${f.valuePct>0?"+":""}${f.valuePct.toFixed(2)}%`})})})]}),(0,s.jsxs)("div",{style:{fontSize:"0.75rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9",children:["当前标签成功率:",null==f.passSkill?"N/A":`${(100*f.passSkill).toFixed(1)}%`,(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),"基线成功率:",null==f.passNoSkill?"N/A":`${(100*f.passNoSkill).toFixed(1)}%`]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"#64748b",marginTop:"0.5rem",textAlign:"left",whiteSpace:"pre-wrap"},className:"jsx-29dfb32d17c16cd9",children:f.reason||"基于 without-skill 基线计算。"})]})]})]},e)})}):s$?(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 grid",children:[(0,s.jsxs)("div",{style:{gridColumn:"span 2"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 card-title",children:["平均表现",(0,s.jsxs)("span",{style:{fontSize:"0.9rem",color:"#94a3b8",fontWeight:"normal",marginLeft:"8px"},className:"jsx-29dfb32d17c16cd9",children:["(基于 ",s$.count," 条记录)"]})]}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(5, 1fr)",gap:"1rem",textAlign:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均时延"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:C(s$.avgLatency)})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均 Token"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:z(s$.avgTokens)})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均技能召回率"}),(0,s.jsxs)("div",{style:{color:"#f1f5f9"},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:[s$.querySkillRecallRate?.toFixed(2),"%"]})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:"平均准确率"}),(0,s.jsx)("div",{style:{color:s$.avgAnsScore>.8?"#4ade80":"#fbbf24"},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:s$.avgAnsScore.toFixed(2)})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:["平均成本 ",(0,s.jsx)(A,{content:"根据默认定价或自定义(custom-models.json)定价估算得出。"})]}),(0,s.jsx)("div",{style:null==s$.avgCost?{color:"#64748b"}:{},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:null!=s$.avgCost?T(s$.avgCost):"N/A"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400",children:["CPSR",(0,s.jsx)(A,{content:"单次成功解决成本:每次任务成功解决的平均开销。\n计算公式:(总成本)÷(成功解决的运行次数)"})]}),(0,s.jsx)("div",{style:{color:null!=s$.cpsr?"#38bdf8":"#64748b"},className:"jsx-29dfb32d17c16cd9 text-xl font-bold",children:null!=s$.cpsr?T(s$.cpsr):"N/A"})]})]})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"space-between"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 card-title text-green-400",children:"最好表现 (Min Latency)"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-2xl font-bold",children:C(s$.best.latency)}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400 mt-2",children:["Token: ",z(s$.best.tokens)," | Cost: ",T(s$.best.cost)||"-"," ",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),"Time: ",I(s$.best.timestamp)]})]}),(0,s.jsx)("div",{style:{fontSize:"0.8rem",color:"#38bdf8",cursor:"pointer",marginTop:"0.5rem",textAlign:"right"},onClick:()=>window.open(`/details?framework=${encodeURIComponent(s$.best.framework)}&query=${encodeURIComponent(s$.best.query)}&expandTaskId=${s$.best.task_id||s$.best.upload_id}`,"_blank"),className:"jsx-29dfb32d17c16cd9",children:"查看 >"})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"space-between"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 card-title text-red-400",children:"最差表现 (Max Latency)"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 text-2xl font-bold",children:C(s$.worst.latency)}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 text-sm text-slate-400 mt-2",children:["Token: ",z(s$.worst.tokens)," | Cost: ",T(s$.worst.cost)||"-"," ",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),"Time: ",I(s$.worst.timestamp)]})]}),(0,s.jsx)("div",{style:{fontSize:"0.8rem",color:"#38bdf8",cursor:"pointer",marginTop:"0.5rem",textAlign:"right"},onClick:()=>{let e=`/details?framework=${encodeURIComponent(s$.worst.framework)}&expandTaskId=${s$.worst.task_id||s$.worst.upload_id}`;window.open(e,"_blank")},className:"jsx-29dfb32d17c16cd9",children:"查看 >"})]})]}):(0,s.jsx)("div",{style:{textAlign:"center",padding:"2rem",color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9 card",children:eg?"该组合下暂无数据":"请选择一个问题进行分析"}),(0,s.jsx)("h2",{className:"jsx-29dfb32d17c16cd9 section-title",children:"执行记录"}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},className:"jsx-29dfb32d17c16cd9 analysis-controls",children:[(0,s.jsxs)("select",{value:e9,onChange:e=>e3(e.target.value),style:{fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"",className:"jsx-29dfb32d17c16cd9",children:"所有框架 (All Frameworks)"}),sN.map(e=>(0,s.jsx)("option",{value:e,className:"jsx-29dfb32d17c16cd9",children:e},e))]}),(0,s.jsxs)("select",{value:e6,onChange:e=>e7(e.target.value),style:{fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"",className:"jsx-29dfb32d17c16cd9",children:"所有标签 (All Labels)"}),s_.map(e=>(0,s.jsx)("option",{value:e,className:"jsx-29dfb32d17c16cd9",children:e},e))]}),(0,s.jsxs)("select",{value:e5,onChange:e=>se(e.target.value),style:{fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("option",{value:"",className:"jsx-29dfb32d17c16cd9",children:"所有模型 (All Models)"}),sC.map(e=>(0,s.jsx)("option",{value:e,className:"jsx-29dfb32d17c16cd9",children:e},e))]}),(0,s.jsx)("input",{type:"text",placeholder:"搜索问题...",value:e8,onChange:e=>e4(e.target.value),style:{padding:"0.5rem",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:"4px",color:"var(--foreground)",minWidth:"250px"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsxs)("span",{style:{marginLeft:"auto",color:"var(--foreground-secondary)",fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9",children:["共有 ",sW.length," 条数据"]})]}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 card table-container",children:(0,s.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("thead",{style:{textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsxs)("tr",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:"时间"}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:"框架"}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:"用户输入"}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["时延 ",(0,s.jsx)(A,{content:"从请求发出到收到最终完整回复的总耗时"})]})}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["Token ",(0,s.jsx)(A,{content:"输入 Prompt 与输出 Completion 的 Token 总和"})]})}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["准确率 ",(0,s.jsx)(A,{content:(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:["基于LLM评估Agent真实运行结果与期望答案的差异,给出0-1分值,1表示完全正确。",(0,s.jsx)("br",{className:"jsx-29dfb32d17c16cd9"}),'"--"表示评估失败,可能是由于模型未配置(请在首页左上角的设置中配置 LLM)或者数据项未配置。']})})]})}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:(0,s.jsxs)("span",{className:"jsx-29dfb32d17c16cd9",children:["预估花费 ",(0,s.jsx)(A,{content:"根据默认定价或自定义(custom-models.json)定价估算得出"})]})}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:"模型"}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:"标签"}),(0,s.jsx)("th",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:"操作"})]})}),(0,s.jsx)("tbody",{className:"jsx-29dfb32d17c16cd9",children:sD.map((e,t)=>{let d=e.upload_id||e.task_id||"";return(0,s.jsxs)("tr",{style:{borderBottom:"1px solid var(--table-row-border)"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("td",{style:{fontSize:"0.85rem",whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:I(e.timestamp)}),(0,s.jsx)("td",{style:{whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:e.framework}),(0,s.jsx)("td",{title:e.query,className:"jsx-29dfb32d17c16cd9 p-2",children:e.query.length>30?e.query.substring(0,30)+"...":e.query}),(0,s.jsx)("td",{className:"jsx-29dfb32d17c16cd9 p-2",children:C(e.latency)}),(0,s.jsx)("td",{className:"jsx-29dfb32d17c16cd9 p-2",children:z(e.tokens)}),(0,s.jsx)("td",{className:"jsx-29dfb32d17c16cd9 p-2",children:(0,s.jsx)("span",{style:{color:null===e.answer_score?"var(--foreground-muted)":(e.answer_score||0)>.8?"var(--success)":"var(--error)",fontWeight:"bold"},className:"jsx-29dfb32d17c16cd9",children:null===e.answer_score?"--":(e.answer_score||0).toFixed(2)})}),(0,s.jsx)("td",{style:{fontSize:"0.85rem",whiteSpace:"nowrap"},title:null!=e.cost&&e.cost_pricing?(e.cache_read_input_tokens||e.cache_creation_input_tokens?`Cost = base_input \xd7 $${e.cost_pricing.inputTokenPrice}/M + cache_read \xd7 $${e.cost_pricing.cacheReadInputTokenPrice}/M + cache_create \xd7 $${e.cost_pricing.cacheCreationInputTokenPrice}/M + output \xd7 $${e.cost_pricing.outputTokenPrice}/M`:`Cost = input_tokens \xd7 $${e.cost_pricing.inputTokenPrice}/M + output_tokens \xd7 $${e.cost_pricing.outputTokenPrice}/M`)+(e.model?` (${e.model})`:"")+`. Estimated from ${"custom"===e.cost_pricing.source?"custom":"default"} pricing.`:void 0,className:"jsx-29dfb32d17c16cd9 p-2",children:null!=e.cost?T(e.cost):e.tokens?(0,s.jsx)("span",{style:{color:"var(--foreground-muted)"},className:"jsx-29dfb32d17c16cd9",children:"N/A"}):"-"}),(0,s.jsx)("td",{style:{fontSize:"0.85rem",whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 p-2",children:e.model||"-"}),(0,s.jsx)("td",{className:"jsx-29dfb32d17c16cd9 p-2",children:el===d?(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{value:ei,onChange:e=>ec(e.target.value),style:{width:"80px",padding:"2px 4px",fontSize:"0.8rem",background:"var(--input-bg)",border:"1px solid var(--input-border)",color:"var(--foreground)"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{onClick:()=>si(e,ei),style:{color:"var(--success)",background:"none",border:"none",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✓"}),(0,s.jsx)("button",{onClick:()=>en(null),style:{color:"var(--error)",background:"none",border:"none",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✕"})]}):(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},onClick:()=>{d&&(en(d),ec(e.label||""))},className:"jsx-29dfb32d17c16cd9",children:[e.label?(0,s.jsx)("span",{style:{padding:"2px 6px",background:"var(--background-secondary)",borderRadius:"4px",fontSize:"0.8rem",border:"1px solid var(--border)"},className:"jsx-29dfb32d17c16cd9",children:e.label}):(0,s.jsx)("span",{style:{color:"var(--foreground-muted)"},className:"jsx-29dfb32d17c16cd9",children:"-"}),(0,s.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--foreground-muted)",opacity:.5},className:"jsx-29dfb32d17c16cd9",children:"✎"})]})}),(0,s.jsx)("td",{className:"jsx-29dfb32d17c16cd9 p-2",children:(0,s.jsxs)("div",{style:{display:"flex",gap:"8px",whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>{let s=`/details?framework=${encodeURIComponent(e.framework)}&expandTaskId=${d}`;window.open(s,"_blank")},style:{background:"var(--primary)"},className:"jsx-29dfb32d17c16cd9 btn-sm",children:"详情"}),(0,s.jsx)("button",{onClick:()=>sn(e),disabled:et.has(d),style:{background:et.has(d)?"var(--foreground-muted)":"var(--warning)",color:"#ffffff",cursor:et.has(d)?"not-allowed":"pointer",display:"inline-flex",alignItems:"center",gap:"4px",opacity:et.has(d)?.7:1},className:"jsx-29dfb32d17c16cd9 btn-sm",children:et.has(d)?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{style:{width:"12px",height:"12px",border:"2px solid #0f172a",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 1s linear infinite",display:"inline-block"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("span",{className:"jsx-29dfb32d17c16cd9",children:"评估中..."})]}):"重评"}),(0,s.jsx)("button",{onClick:()=>sa(e),style:{background:"#ef4444"},className:"jsx-29dfb32d17c16cd9 btn-sm",children:"删"})]})})]},t)})})]})}),sB>1&&(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",marginTop:"1rem",gap:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{disabled:1===ss,onClick:()=>st(e=>Math.max(1,e-1)),style:{background:1===ss?"#334155":"#38bdf8",color:1===ss?"#94a3b8":"#0f172a",cursor:1===ss?"not-allowed":"pointer"},className:"jsx-29dfb32d17c16cd9 btn-sm",children:"< Prev"}),(0,s.jsxs)("span",{style:{color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:["Page ",ss," of ",sB]}),(0,s.jsx)("button",{disabled:ss===sB,onClick:()=>st(e=>Math.min(sB,e+1)),style:{background:ss===sB?"#334155":"#38bdf8",color:ss===sB?"#94a3b8":"#0f172a",cursor:ss===sB?"not-allowed":"pointer"},className:"jsx-29dfb32d17c16cd9 btn-sm",children:"Next >"})]}),(0,s.jsx)("div",{style:{marginTop:"2rem",marginBottom:"0.5rem",height:"1px",background:"linear-gradient(to right, transparent, rgba(56, 189, 248, 0.5), transparent)"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("div",{style:{marginTop:"0.5rem",padding:"0.5rem",textAlign:"center"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsx)("p",{style:{margin:0,fontSize:"0.9rem",color:"#94a3b8",lineHeight:1.6},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsx)("a",{href:"https://atomgit.com/openeuler/witty-skill-insight",target:"_blank",rel:"noopener noreferrer",style:{color:"#94a3b8",textDecoration:"underline",textUnderlineOffset:"3px"},className:"jsx-29dfb32d17c16cd9",children:"你的 ⭐ Star 是前进动力,📢 Issue 使产品更稳,🚀 PR 让功能更强。"})})})]}),"config"===q&&(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 config-container",children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"1rem",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h2",{style:{marginBottom:0},className:"jsx-29dfb32d17c16cd9 section-title",children:"数据集管理"}),(0,s.jsx)("button",{onClick:()=>{so({}),su("manual"),sg(null),sp(!0)},style:{padding:"8px 20px",fontSize:"0.9rem",borderRadius:"6px"},className:"jsx-29dfb32d17c16cd9 btn-primary",children:"+ 新增数据项"})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},className:"jsx-29dfb32d17c16cd9",children:[Array.isArray(G)&&0===G.length&&(0,s.jsx)("div",{style:{textAlign:"center",padding:"3rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9 card",children:'暂无数据项,点击上方"+ 新增数据项"开始添加'}),Array.isArray(G)&&G.map(e=>(0,s.jsxs)("div",{style:{padding:"14px 18px",display:"flex",flexDirection:"row",alignItems:"center",gap:"16px",transition:"border-color 0.2s",borderColor:"#1e293b"},className:"jsx-29dfb32d17c16cd9 card",children:[(0,s.jsx)("div",{style:{flexShrink:0,width:"8px",height:"8px",borderRadius:"50%",background:"parsing"===e.parse_status?"#fbbf24":"failed"===e.parse_status?"#ef4444":"#4ade80",boxShadow:`0 0 6px ${"parsing"===e.parse_status?"#fbbf2444":"failed"===e.parse_status?"#ef444444":"#4ade8044"}`,..."parsing"===e.parse_status?{animation:"pulse-dot 1.5s ease-in-out infinite"}:{}},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsxs)("div",{style:{flex:1,minWidth:0},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{fontWeight:500,color:"#e2e8f0",fontSize:"0.9rem",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginBottom:"4px"},className:"jsx-29dfb32d17c16cd9",children:e.query}),(0,s.jsx)("div",{style:{color:"#64748b",fontSize:"0.8rem",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},className:"jsx-29dfb32d17c16cd9",children:(e.standard_answer||"").length>100?(e.standard_answer||"").substring(0,100)+"...":e.standard_answer||"暂无标准答案"}),e.expectedSkills&&e.expectedSkills.length>0?(0,s.jsxs)("div",{style:{color:"#94a3b8",fontSize:"0.75rem",marginTop:"2px"},className:"jsx-29dfb32d17c16cd9",children:["预期技能: ",e.expectedSkills.map(e=>`${e.skill}${null!==e.version&&void 0!==e.version?` (v${e.version})`:""}`).join(", ")]}):e.skill&&(0,s.jsxs)("div",{style:{color:"#94a3b8",fontSize:"0.75rem",marginTop:"2px"},className:"jsx-29dfb32d17c16cd9",children:["预期技能: ",e.skill,null!==e.skillVersion&&void 0!==e.skillVersion?` (v${e.skillVersion})`:""]})]}),(0,s.jsx)("div",{style:{flexShrink:0},className:"jsx-29dfb32d17c16cd9",children:"parsing"===e.parse_status?(0,s.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"5px",padding:"3px 10px",borderRadius:"12px",fontSize:"0.75rem",fontWeight:500,background:"rgba(251, 191, 36, 0.12)",color:"#fbbf24",border:"1px solid rgba(251, 191, 36, 0.25)"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{width:"10px",height:"10px",border:"1.5px solid #fbbf24",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 1s linear infinite",display:"inline-block"},className:"jsx-29dfb32d17c16cd9"}),"解析中"]}):"failed"===e.parse_status?(0,s.jsx)("span",{style:{padding:"3px 10px",borderRadius:"12px",fontSize:"0.75rem",fontWeight:500,background:"rgba(239, 68, 68, 0.12)",color:"#ef4444",border:"1px solid rgba(239, 68, 68, 0.25)"},className:"jsx-29dfb32d17c16cd9",children:"✕ 失败"}):(0,s.jsx)("span",{style:{padding:"3px 10px",borderRadius:"12px",fontSize:"0.75rem",fontWeight:500,background:"rgba(74, 222, 128, 0.12)",color:"#4ade80",border:"1px solid rgba(74, 222, 128, 0.25)"},className:"jsx-29dfb32d17c16cd9",children:"✓ 完成"})}),(0,s.jsxs)("div",{style:{display:"flex",gap:"6px",flexShrink:0},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>{let s={...e};!s.expectedSkills&&s.skill&&(s.expectedSkills=[{skill:s.skill,version:s.skillVersion??null}]),so(s),sp(!0)},style:{padding:"5px 12px",background:"#1e3a5f",color:"#38bdf8",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"0.8rem",fontWeight:500,transition:"background 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"详情"}),(0,s.jsx)("button",{onClick:()=>{so({query:e.query,skill:"",expectedSkills:e.expectedSkills?[...e.expectedSkills]:e.skill?[{skill:e.skill,version:e.skillVersion??null}]:void 0,standard_answer:e.standard_answer}),su("manual"),sg(null),sp(!0)},style:{padding:"5px 12px",background:"#2d1b4e",color:"#a855f7",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"0.8rem",fontWeight:500,transition:"background 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"复制"}),(0,s.jsx)("button",{onClick:()=>sk(e.id),style:{padding:"5px 12px",background:"#3b1c1c",color:"#ef4444",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"0.8rem",fontWeight:500,transition:"background 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"删除"})]})]},e.id))]})]}),"skill"===q&&(0,s.jsx)(k,{}),sx&&(0,s.jsx)("div",{onClick:()=>sp(!1),className:"jsx-29dfb32d17c16cd9 modal-overlay",children:(0,s.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{maxHeight:"90vh",overflowY:"auto",maxWidth:"900px",width:"66vw",minWidth:"500px",flexDirection:"column"},className:"jsx-29dfb32d17c16cd9 modal-content card",children:[(0,s.jsx)("h3",{className:"jsx-29dfb32d17c16cd9",children:sc.id?"数据项详情":"新增数据项"}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsxs)("label",{style:{fontWeight:600,fontSize:"0.95rem",color:"#e2e8f0"},className:"jsx-29dfb32d17c16cd9",children:["问题 (Query) ",(0,s.jsx)("span",{style:{color:"#ef4444"},className:"jsx-29dfb32d17c16cd9",children:"*"})]}),(0,s.jsx)("textarea",{value:sc.query||"",onChange:e=>so({...sc,query:e.target.value}),disabled:!!sc.id,placeholder:"请输入需要评估的问题...",style:{width:"100%",padding:"10px",minHeight:"60px",opacity:sc.id?.7:1,cursor:sc.id?"not-allowed":"text",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.95rem"},className:"jsx-29dfb32d17c16cd9"})]}),sc.id?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{style:{fontWeight:600,fontSize:"0.95rem",color:"#e2e8f0"},className:"jsx-29dfb32d17c16cd9",children:"标准答案"}),(0,s.jsx)("textarea",{value:sc.standard_answer||"",onChange:e=>so({...sc,standard_answer:e.target.value}),style:{width:"100%",padding:"10px",minHeight:"120px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9"})]}),(0,s.jsxs)("div",{style:{marginTop:"1rem"},className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsxs)("label",{style:{fontWeight:600,fontSize:"0.95rem",color:"#e2e8f0"},className:"jsx-29dfb32d17c16cd9",children:["预期技能 (Expected Skills) ",(0,s.jsx)("span",{style:{color:"#64748b",fontWeight:400},className:"jsx-29dfb32d17c16cd9",children:"(可选)"})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},className:"jsx-29dfb32d17c16cd9",children:[(sc.expectedSkills||[]).map((e,t)=>(0,s.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"text",value:e.skill,onChange:e=>{let s=[...sc.expectedSkills||[]];s[t]={...s[t],skill:e.target.value},so({...sc,expectedSkills:s})},placeholder:"技能名称",style:{flex:2,padding:"10px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.95rem"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("input",{type:"number",value:e.version??0,onChange:e=>{let s=e.target.value,d=[...sc.expectedSkills||[]];d[t]={...d[t],version:""===s?0:Math.max(0,parseInt(s,10)||0)},so({...sc,expectedSkills:d})},placeholder:"版本 (默认: 0)",style:{flex:1,padding:"10px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.95rem"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{type:"button",onClick:()=>{let e=(sc.expectedSkills||[]).filter((e,s)=>s!==t);so({...sc,expectedSkills:e})},style:{padding:"10px",background:"#3b1c1c",color:"#ef4444",border:"none",borderRadius:"6px",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✕"})]},t)),(0,s.jsx)("button",{type:"button",onClick:()=>{let e=[...sc.expectedSkills||[],{skill:"",version:0}];so({...sc,expectedSkills:e})},style:{padding:"8px",background:"#1e3a5f",color:"#38bdf8",border:"1px dashed #38bdf8",borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9",children:"+ 添加预期技能"})]})]}),(0,s.jsxs)("details",{style:{marginBottom:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("summary",{style:{cursor:"pointer",color:"#94a3b8",fontSize:"0.9rem",padding:"10px 12px",userSelect:"none",display:"flex",alignItems:"center",gap:"8px",background:"rgba(30, 41, 59, 0.5)",borderRadius:"6px",border:"1px solid #334155",listStyle:"none",transition:"background 0.2s"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.7rem",color:"#64748b",transition:"transform 0.2s",display:"inline-block"},className:"jsx-29dfb32d17c16cd9 details-arrow",children:"▶"}),(0,s.jsx)("span",{style:{fontWeight:500},className:"jsx-29dfb32d17c16cd9",children:"关键观点 (Expected Key Points)"}),(0,s.jsxs)("span",{style:{fontSize:"0.8rem",color:"#64748b",marginLeft:"auto"},className:"jsx-29dfb32d17c16cd9",children:[(sc.root_causes||[]).length," 项 · 点击展开"]})]}),(0,s.jsxs)("div",{style:{background:"#0f172a",padding:"10px",borderRadius:"4px",border:"1px solid #334155",marginTop:"8px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{color:"#64748b",fontSize:"0.8rem",marginBottom:"10px",padding:"6px 8px",background:"rgba(100, 116, 139, 0.1)",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9",children:"来源:从标准答案中自动提取 · 作用:评估 Agent 回答是否包含了所有关键信息"}),(sc.root_causes||[]).map((e,t)=>(0,s.jsxs)("div",{style:{display:"flex",gap:"10px",marginBottom:"8px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{placeholder:"内容",value:e.content,onChange:e=>{let s=[...sc.root_causes||[]];s[t].content=e.target.value,so({...sc,root_causes:s})},style:{flex:1,padding:"6px"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("input",{type:"number",placeholder:"权重",value:e.weight,onChange:e=>{let s=[...sc.root_causes||[]];s[t].weight=Number(e.target.value),so({...sc,root_causes:s})},style:{width:"80px",padding:"6px"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{onClick:()=>{let e=(sc.root_causes||[]).filter((e,s)=>s!==t);so({...sc,root_causes:e})},style:{color:"#ef4444",padding:"0 8px",background:"none",border:"none",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✕"})]},t)),(0,s.jsx)("button",{style:{background:"#334155",marginTop:"5px"},onClick:()=>so({...sc,root_causes:[...sc.root_causes||[],{content:"",weight:1}]}),className:"jsx-29dfb32d17c16cd9 btn-sm",children:"+ 添加关键观点"})]})]}),(0,s.jsxs)("details",{style:{marginBottom:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("summary",{style:{cursor:"pointer",color:"#94a3b8",fontSize:"0.9rem",padding:"10px 12px",userSelect:"none",display:"flex",alignItems:"center",gap:"8px",background:"rgba(30, 41, 59, 0.5)",borderRadius:"6px",border:"1px solid #334155",listStyle:"none",transition:"background 0.2s"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{fontSize:"0.7rem",color:"#64748b",transition:"transform 0.2s",display:"inline-block"},className:"jsx-29dfb32d17c16cd9 details-arrow",children:"▶"}),(0,s.jsx)("span",{style:{fontWeight:500},className:"jsx-29dfb32d17c16cd9",children:"关键动作 (Expected Key Actions)"}),(0,s.jsxs)("span",{style:{fontSize:"0.8rem",color:"#64748b",marginLeft:"auto"},className:"jsx-29dfb32d17c16cd9",children:[(sc.key_actions||[]).length," 项 · 点击展开"]})]}),(0,s.jsxs)("div",{style:{background:"#0f172a",padding:"10px",borderRadius:"4px",border:"1px solid #334155",marginTop:"8px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{color:"#64748b",fontSize:"0.8rem",marginBottom:"10px",padding:"6px 8px",background:"rgba(100, 116, 139, 0.1)",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9",children:"来源:从标准答案中自动提取 · 作用:评估 Agent 是否执行了所有必要的操作步骤"}),(sc.key_actions||[]).map((e,t)=>(0,s.jsxs)("div",{style:{display:"flex",gap:"10px",marginBottom:"8px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{placeholder:"内容",value:e.content,onChange:e=>{let s=[...sc.key_actions||[]];s[t].content=e.target.value,so({...sc,key_actions:s})},style:{flex:1,padding:"6px"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("input",{type:"number",placeholder:"权重",value:e.weight,onChange:e=>{let s=[...sc.key_actions||[]];s[t].weight=Number(e.target.value),so({...sc,key_actions:s})},style:{width:"80px",padding:"6px"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{onClick:()=>{let e=(sc.key_actions||[]).filter((e,s)=>s!==t);so({...sc,key_actions:e})},style:{color:"#ef4444",padding:"0 8px",background:"none",border:"none",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✕"})]},t)),(0,s.jsx)("button",{style:{background:"#334155",marginTop:"5px"},onClick:()=>so({...sc,key_actions:[...sc.key_actions||[],{content:"",weight:1}]}),className:"jsx-29dfb32d17c16cd9 btn-sm",children:"+ 添加关键动作"})]})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsxs)("label",{style:{fontWeight:600,fontSize:"0.95rem",color:"#e2e8f0"},className:"jsx-29dfb32d17c16cd9",children:["标准答案 ",(0,s.jsx)("span",{style:{color:"#ef4444"},className:"jsx-29dfb32d17c16cd9",children:"*"})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"12px",marginBottom:"10px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>{su("manual"),sg(null)},style:{padding:"6px 16px",background:"manual"===sb?"#38bdf8":"#1e293b",color:"manual"===sb?"#0f172a":"#94a3b8",border:`1px solid ${"manual"===sb?"#38bdf8":"#334155"}`,borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem",fontWeight:"manual"===sb?600:400,transition:"all 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"✏️ 手动填写"}),(0,s.jsx)("button",{onClick:()=>su("document"),style:{padding:"6px 16px",background:"document"===sb?"#38bdf8":"#1e293b",color:"document"===sb?"#0f172a":"#94a3b8",border:`1px solid ${"document"===sb?"#38bdf8":"#334155"}`,borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem",fontWeight:"document"===sb?600:400,transition:"all 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"📄 上传案例文档"})]}),"manual"===sb?(0,s.jsx)("textarea",{value:sc.standard_answer||"",onChange:e=>so({...sc,standard_answer:e.target.value}),placeholder:"请填写该问题的标准答案...",style:{width:"100%",padding:"10px",minHeight:"150px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9"}):(0,s.jsx)("div",{style:{border:"2px dashed #334155",borderRadius:"8px",padding:"2rem",textAlign:"center",background:"#0f172a",cursor:"pointer",transition:"border-color 0.2s"},onDragOver:e=>{e.preventDefault(),e.currentTarget.style.borderColor="#38bdf8"},onDragLeave:e=>{e.currentTarget.style.borderColor="#334155"},onDrop:e=>{e.preventDefault(),e.currentTarget.style.borderColor="#334155";let s=e.dataTransfer.files[0];s&&sg(s)},onClick:()=>{let e=document.createElement("input");e.type="file",e.accept=".txt,.md,.markdown,.pdf",e.onchange=e=>{let s=e.target.files[0];s&&sg(s)},e.click()},className:"jsx-29dfb32d17c16cd9",children:sh?(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{fontSize:"2rem",marginBottom:"0.5rem"},className:"jsx-29dfb32d17c16cd9",children:"📄"}),(0,s.jsx)("div",{style:{color:"#4ade80",fontWeight:500},className:"jsx-29dfb32d17c16cd9",children:sh.name}),(0,s.jsxs)("div",{style:{color:"#94a3b8",fontSize:"0.8rem",marginTop:"4px"},className:"jsx-29dfb32d17c16cd9",children:[(sh.size/1024).toFixed(1)," KB · 点击更换文件"]})]}):(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{fontSize:"2rem",marginBottom:"0.5rem"},className:"jsx-29dfb32d17c16cd9",children:"📁"}),(0,s.jsx)("div",{style:{color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"点击或拖拽上传案例文档"}),(0,s.jsx)("div",{style:{color:"#64748b",fontSize:"0.8rem",marginTop:"4px"},className:"jsx-29dfb32d17c16cd9",children:"支持 .txt, .md, .pdf 格式"})]})})]}),(0,s.jsxs)("div",{style:{marginTop:"1rem"},className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsxs)("label",{style:{fontWeight:600,fontSize:"0.95rem",color:"#e2e8f0"},className:"jsx-29dfb32d17c16cd9",children:["预期技能 (Expected Skills) ",(0,s.jsx)("span",{style:{color:"#64748b",fontWeight:400},className:"jsx-29dfb32d17c16cd9",children:"(可选)"})]}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},className:"jsx-29dfb32d17c16cd9",children:[(sc.expectedSkills||[]).map((e,t)=>(0,s.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("input",{type:"text",value:e.skill,onChange:e=>{let s=[...sc.expectedSkills||[]];s[t]={...s[t],skill:e.target.value},so({...sc,expectedSkills:s})},placeholder:"技能名称",style:{flex:2,padding:"10px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.95rem"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("input",{type:"number",value:e.version??0,onChange:e=>{let s=e.target.value,d=[...sc.expectedSkills||[]];d[t]={...d[t],version:""===s?0:Math.max(0,parseInt(s,10)||0)},so({...sc,expectedSkills:d})},placeholder:"版本 (默认: 0)",style:{flex:1,padding:"10px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"6px",fontSize:"0.95rem"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{type:"button",onClick:()=>{let e=(sc.expectedSkills||[]).filter((e,s)=>s!==t);so({...sc,expectedSkills:e})},style:{padding:"10px",background:"#3b1c1c",color:"#ef4444",border:"none",borderRadius:"6px",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"✕"})]},t)),(0,s.jsx)("button",{type:"button",onClick:()=>{let e=[...sc.expectedSkills||[],{skill:"",version:0}];so({...sc,expectedSkills:e})},style:{padding:"8px",background:"#1e3a5f",color:"#38bdf8",border:"1px dashed #38bdf8",borderRadius:"6px",cursor:"pointer",fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9",children:"+ 添加预期技能"})]})]}),(0,s.jsx)("div",{style:{marginTop:"1rem",padding:"12px 16px",background:"rgba(56, 189, 248, 0.08)",border:"1px solid rgba(56, 189, 248, 0.2)",borderRadius:"8px",color:"#94a3b8",fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsxs)("p",{style:{margin:0},className:"jsx-29dfb32d17c16cd9",children:["💡 保存后,系统将基于标准答案自动提取",(0,s.jsx)("strong",{style:{color:"#bae6fd"},className:"jsx-29dfb32d17c16cd9",children:"关键观点"}),"(回答中必须包含的核心信息)和",(0,s.jsx)("strong",{style:{color:"#bae6fd"},className:"jsx-29dfb32d17c16cd9",children:"关键动作"}),"(Agent 必须执行的操作步骤),用于后续的细致评估打分。此过程在后台执行,无需等待。"]})})]}),(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"12px",marginTop:"1.5rem",paddingTop:"1rem",borderTop:"1px solid #334155"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>{sp(!1),sm(!1)},style:{padding:"8px 24px",background:"#1e293b",color:"#94a3b8",border:"1px solid #334155",borderRadius:"6px",cursor:"pointer",fontSize:"0.9rem",fontWeight:500,transition:"all 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"取消"}),(0,s.jsx)("button",{onClick:sv,disabled:sf,style:{padding:"8px 28px",background:sf?"#1e3a5f":"#38bdf8",color:sf?"#64748b":"#0f172a",border:"none",borderRadius:"6px",cursor:sf?"not-allowed":"pointer",fontSize:"0.9rem",fontWeight:600,transition:"all 0.2s",boxShadow:sf?"none":"0 2px 8px rgba(56, 189, 248, 0.25)"},className:"jsx-29dfb32d17c16cd9",children:sf?"保存中...":"保存"})]})]})}),er&&(0,s.jsx)("div",{onClick:()=>ea(null),className:"jsx-29dfb32d17c16cd9 modal-overlay",children:(0,s.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{width:"800px",maxWidth:"95%",maxHeight:"90vh",overflowY:"auto"},className:"jsx-29dfb32d17c16cd9 modal-content card",children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h3",{className:"jsx-29dfb32d17c16cd9",children:"记录详情"}),(0,s.jsx)("button",{onClick:()=>ea(null),style:{background:"transparent",border:"none",color:"white",fontSize:"1.5rem",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"×"})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-section",children:[(0,s.jsx)("h4",{className:"jsx-29dfb32d17c16cd9",children:"基本信息"}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-grid",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("strong",{className:"jsx-29dfb32d17c16cd9",children:"Time:"})," ",I(er.timestamp)]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("strong",{className:"jsx-29dfb32d17c16cd9",children:"Framework:"})," ",er.framework]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("strong",{className:"jsx-29dfb32d17c16cd9",children:"Latency:"})," ",C(er.latency)]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("strong",{className:"jsx-29dfb32d17c16cd9",children:"Token:"})," ",er.tokens]})]})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-section",children:[(0,s.jsx)("h4",{className:"jsx-29dfb32d17c16cd9",children:"Input / Output"}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-row",children:[(0,s.jsx)("strong",{style:{display:"block",marginBottom:"0.2rem",color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"Query:"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 code-block",children:er.query})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-row",children:[(0,s.jsx)("strong",{style:{display:"block",marginBottom:"0.2rem",color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"Skills Used:"}),(0,s.jsx)("div",{className:"jsx-29dfb32d17c16cd9 code-block",children:(0,s.jsx)(f.SkillLinks,{skills:er.skills,skill:er.skill,skillVersion:er.skill_version?parseInt(er.skill_version):null,user:er.user})})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-row",children:[(0,s.jsx)("strong",{style:{display:"block",marginBottom:"0.2rem",color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"Final Result:"}),(0,s.jsx)("div",{style:{maxHeight:"200px",overflowY:"auto"},className:"jsx-29dfb32d17c16cd9 code-block",children:er.final_result||"(None)"})]})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-section",children:[(0,s.jsx)("h4",{className:"jsx-29dfb32d17c16cd9",children:"评估结果"}),(0,s.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr",gap:"1rem",marginBottom:"1.5rem"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsxs)("div",{style:null===er.answer_score?{borderLeft:"4px solid #94a3b8",background:"rgba(148, 163, 184, 0.1)",color:"#94a3b8"}:{},className:`jsx-29dfb32d17c16cd9 status-box ${null===er.answer_score?"warning":(er.answer_score||0)>.8?"good":"bad"}`,children:[(0,s.jsx)("strong",{className:"jsx-29dfb32d17c16cd9",children:"回答评分:"})," ",null===er.answer_score?"--":(er.answer_score||0).toFixed(2)]})}),er.failures&&er.failures.length>0&&(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-section",children:[(0,s.jsx)("h4",{style:{color:"#f87171"},className:"jsx-29dfb32d17c16cd9",children:"中间故障 / 异常分析"}),(0,s.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},className:"jsx-29dfb32d17c16cd9",children:er.failures.map((e,t)=>(0,s.jsxs)("div",{style:{background:"rgba(248, 113, 113, 0.1)",border:"1px solid #7f1d1d",borderRadius:"6px",padding:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.5rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("span",{style:{background:"#f87171",color:"#0f172a",padding:"2px 8px",borderRadius:"4px",fontSize:"0.8rem",fontWeight:"bold"},className:"jsx-29dfb32d17c16cd9",children:e.failure_type}),(0,s.jsx)("span",{style:{color:"#fca5a5",fontWeight:"bold"},className:"jsx-29dfb32d17c16cd9",children:e.description})]}),e.context&&(0,s.jsx)("div",{style:{marginBottom:"0.5rem",fontSize:"0.9rem",color:"#cbd5e1",fontFamily:"monospace",background:"rgba(0,0,0,0.3)",padding:"0.5rem",borderRadius:"4px"},className:"jsx-29dfb32d17c16cd9",children:e.context}),e.recovery&&(0,s.jsxs)("div",{style:{fontSize:"0.9rem",color:"#86efac"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("strong",{style:{color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"修复建议:"})," ",e.recovery]}),(e.attribution||e.attribution_reason)&&(0,s.jsxs)("div",{style:{marginTop:"0.8rem",paddingTop:"0.8rem",borderTop:"1px dashed #7f1d1d"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.3rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("strong",{style:{color:"#fbbf24"},className:"jsx-29dfb32d17c16cd9",children:"归因分析:"}),e.attribution&&(0,s.jsx)("span",{style:{background:"#fbbf24",color:"#451a03",padding:"1px 6px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold",border:"1px solid #d97706"},className:"jsx-29dfb32d17c16cd9",children:e.attribution})]}),e.attribution_reason&&(0,s.jsx)("div",{style:{fontSize:"0.9rem",color:"#fcd34d",fontStyle:"italic"},className:"jsx-29dfb32d17c16cd9",children:e.attribution_reason})]})]},t))})]}),(0,s.jsxs)("div",{style:{marginTop:"1rem"},className:"jsx-29dfb32d17c16cd9 detail-row",children:[(0,s.jsx)("strong",{style:{color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"Reason:"}),(0,s.jsx)("div",{style:{marginTop:"0.2rem",fontSize:"0.9rem",color:"#e2e8f0",whiteSpace:"pre-wrap"},className:"jsx-29dfb32d17c16cd9",children:er.judgment_reason||"-"})]})]}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9 detail-section",children:[(0,s.jsx)("h4",{className:"jsx-29dfb32d17c16cd9",children:"用户反馈 (User Feedback)"}),(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",gap:"1rem",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>sl("like"),style:{display:"flex",alignItems:"center",gap:"0.5rem",background:er.user_feedback?.type==="like"?"#38bdf8":"#334155",color:er.user_feedback?.type==="like"?"#0f172a":"#94a3b8",border:"none",padding:"6px 12px",borderRadius:"4px",cursor:"pointer",fontWeight:er.user_feedback?.type==="like"?"bold":"normal",transition:"all 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"👍 Like"}),(0,s.jsx)("button",{onClick:()=>sl("dislike"),style:{display:"flex",alignItems:"center",gap:"0.5rem",background:er.user_feedback?.type==="dislike"?"#f87171":"#334155",color:er.user_feedback?.type==="dislike"?"#0f172a":"#94a3b8",border:"none",padding:"6px 12px",borderRadius:"4px",cursor:"pointer",fontWeight:er.user_feedback?.type==="dislike"?"bold":"normal",transition:"all 0.2s"},className:"jsx-29dfb32d17c16cd9",children:"👎 Dislike"})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"flex-start"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("textarea",{value:eB,onChange:e=>eD(e.target.value),placeholder:"添加评论 (可选)...",style:{flex:1,minHeight:"60px",padding:"8px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"4px",fontSize:"0.9rem"},className:"jsx-29dfb32d17c16cd9"}),(0,s.jsx)("button",{onClick:()=>sl(er.user_feedback?.type||null),style:{padding:"8px 16px",fontSize:"0.9rem",height:"fit-content",whiteSpace:"nowrap"},className:"jsx-29dfb32d17c16cd9 btn-primary",children:"保存评论"})]})]})]})]})}),(0,s.jsx)("button",{onClick:()=>J(!0),style:{position:"fixed",top:"1.5rem",right:"2rem",width:"3rem",height:"3rem",borderRadius:"50%",background:"#38bdf8",color:"#0f172a",border:"none",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.5rem",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",cursor:"pointer",zIndex:900,transition:"transform 0.2s"},onMouseOver:e=>e.currentTarget.style.transform="scale(1.1)",onMouseOut:e=>e.currentTarget.style.transform="scale(1)",title:"User Settings",className:"jsx-29dfb32d17c16cd9",children:"👤"}),K&&(0,s.jsx)("div",{onClick:()=>J(!1),style:{alignItems:"flex-start",paddingTop:"10vh"},className:"jsx-29dfb32d17c16cd9 modal-overlay",children:(0,s.jsxs)("div",{style:{width:"500px",maxWidth:"90vw",background:"#0f172a",border:"1px solid #334155",borderRadius:"12px",padding:"0",overflow:"hidden"},onClick:e=>e.stopPropagation(),className:"jsx-29dfb32d17c16cd9 modal-content",children:[(0,s.jsxs)("div",{style:{padding:"1.5rem",background:"linear-gradient(to right, #1e293b, #0f172a)",borderBottom:"1px solid #334155",display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{width:"40px",height:"40px",borderRadius:"50%",background:"#38bdf8",color:"#0f172a",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.2rem",fontWeight:"bold"},className:"jsx-29dfb32d17c16cd9",children:e?e.substring(0,1).toUpperCase():"?"}),(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h3",{style:{margin:0,color:"#f8fafc",fontSize:"1.1rem"},className:"jsx-29dfb32d17c16cd9",children:e}),(0,s.jsx)("span",{style:{fontSize:"0.8rem",color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:"User Profile"})]})]}),(0,s.jsx)("button",{onClick:()=>J(!1),style:{background:"transparent",border:"none",color:"#64748b",fontSize:"1.5rem",cursor:"pointer",lineHeight:1},className:"jsx-29dfb32d17c16cd9",children:"×"})]}),(0,s.jsx)("div",{style:{padding:"1.5rem"},className:"jsx-29dfb32d17c16cd9",children:N?(0,s.jsxs)("div",{style:{background:"#1e293b",padding:"1.25rem",borderRadius:"8px",border:"1px solid #334155"},className:"jsx-29dfb32d17c16cd9 form-group",children:[(0,s.jsx)("label",{style:{color:"#94a3b8",fontSize:"0.8rem",textTransform:"uppercase",letterSpacing:"0.5px",marginBottom:"0.75rem",display:"block"},className:"jsx-29dfb32d17c16cd9",children:"API Key"}),(0,s.jsxs)("div",{style:{display:"flex",gap:"10px"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("div",{style:{flex:1,padding:"0.75rem 1rem",background:"#0f172a",borderRadius:"6px",border:"1px solid #334155",color:"#e2e8f0",fontFamily:"monospace",fontSize:"0.9rem",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},className:"jsx-29dfb32d17c16cd9",children:N}),(0,s.jsx)("button",{onClick:()=>{let e=()=>{eO(!0),setTimeout(()=>eO(!1),2e3)};if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(N).then(e);else{let s=document.createElement("textarea");s.value=N,s.style.position="fixed",s.style.left="-9999px",s.style.top="0",document.body.appendChild(s),s.focus(),s.select();try{document.execCommand("copy"),e()}catch(e){console.error("Fallback: Oops, unable to copy",e),alert("复制失败,请手动复制")}document.body.removeChild(s)}},style:{padding:"0 1.25rem",display:"flex",alignItems:"center",gap:"6px",background:eE?"#4ade80":void 0},className:"jsx-29dfb32d17c16cd9 btn-primary",children:eE?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"jsx-29dfb32d17c16cd9",children:"✅"})," Copied"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"jsx-29dfb32d17c16cd9",children:"📋"})," Copy"]})})]})]}):(0,s.jsx)("div",{style:{textAlign:"center",padding:"2rem",color:"#64748b"},className:"jsx-29dfb32d17c16cd9",children:"No API Key found."})}),(0,s.jsx)("div",{style:{padding:"0 1.5rem 1.5rem"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsx)("div",{style:{background:"#1e293b",padding:"1.25rem",borderRadius:"8px",border:"1px solid #334155"},className:"jsx-29dfb32d17c16cd9",children:(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsxs)("div",{className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("h4",{style:{margin:"0 0 0.25rem 0",color:"#f8fafc",fontSize:"0.95rem"},className:"jsx-29dfb32d17c16cd9",children:"新手引导"}),(0,s.jsx)("p",{style:{margin:0,fontSize:"0.8rem",color:"#94a3b8"},className:"jsx-29dfb32d17c16cd9",children:W?.guideDisabled?"引导已关闭":"引导已开启"})]}),(0,s.jsx)("button",{onClick:async()=>{W?.guideDisabled?(await (0,b.apiFetch)("/api/guide",{method:"POST",headers:{"Content-Type":"application/json","x-user-id":e},body:JSON.stringify({guideDisabled:!1,dismissedAt:null})})).ok&&window.location.reload():(await (0,b.apiFetch)("/api/guide",{method:"POST",headers:{"Content-Type":"application/json","x-user-id":e},body:JSON.stringify({currentStep:0,completedSteps:[],skippedSteps:[],dismissedAt:null})})).ok&&(J(!1),E(!0))},style:{background:W?.guideDisabled?"#4ade80":"#38bdf8",border:"none",color:"#0f172a",padding:"0.5rem 1rem",borderRadius:"6px",fontWeight:"600",cursor:"pointer",fontSize:"0.85rem"},className:"jsx-29dfb32d17c16cd9",children:W?.guideDisabled?"启用引导":"重新开始引导"})]})})}),(0,s.jsxs)("div",{style:{padding:"1.25rem 1.5rem",background:"#0f172a",borderTop:"1px solid #334155",display:"flex",justifyContent:"flex-end",gap:"1rem"},className:"jsx-29dfb32d17c16cd9",children:[(0,s.jsx)("button",{onClick:()=>J(!1),style:{background:"transparent",border:"1px solid #334155",color:"#94a3b8",padding:"0.6rem 1.25rem",borderRadius:"6px",fontWeight:"500",cursor:"pointer"},className:"jsx-29dfb32d17c16cd9",children:"Close"}),!h&&(0,s.jsx)("button",{onClick:()=>{localStorage.removeItem("user_id"),localStorage.removeItem("api_key"),window.location.reload()},style:{background:"#ef4444",border:"none",color:"white",padding:"0.6rem 1.25rem",borderRadius:"6px",fontWeight:"600",cursor:"pointer",boxShadow:"0 2px 4px rgba(239, 68, 68, 0.2)"},className:"jsx-29dfb32d17c16cd9",children:"Sign Out"})]})]})}),(0,s.jsx)(t.default,{id:"29dfb32d17c16cd9",children:'.tab-btn.jsx-29dfb32d17c16cd9{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-size:1rem}.tab-btn.active.jsx-29dfb32d17c16cd9{color:#38bdf8;border-bottom-color:#38bdf8}.p-2.jsx-29dfb32d17c16cd9{padding:.75rem}.btn-primary.jsx-29dfb32d17c16cd9{color:#0f172a;cursor:pointer;background:#38bdf8;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:700}.btn-sm.jsx-29dfb32d17c16cd9{color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 8px;font-size:.8rem}.modal-overlay.jsx-29dfb32d17c16cd9{alignItems:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000c;justify-content:center;display:flex;position:fixed;inset:0}.modal-content.jsx-29dfb32d17c16cd9{background:#1e293b;border:1px solid #334155;width:66vw;max-width:1200px;padding:2rem}.form-group.jsx-29dfb32d17c16cd9{margin-bottom:1rem}.form-group.jsx-29dfb32d17c16cd9 label.jsx-29dfb32d17c16cd9{marginBottom:.5rem;color:#cbd5e1;display:block}input.jsx-29dfb32d17c16cd9,textarea.jsx-29dfb32d17c16cd9{color:#fff;borderRadius:4px;background:#0f172a;border:1px solid #334155}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}details[open].jsx-29dfb32d17c16cd9>summary.jsx-29dfb32d17c16cd9 .details-arrow.jsx-29dfb32d17c16cd9{transform:rotate(90deg)}details.jsx-29dfb32d17c16cd9>summary.jsx-29dfb32d17c16cd9:hover{background:#1e293bcc!important}details.jsx-29dfb32d17c16cd9>summary.jsx-29dfb32d17c16cd9::-webkit-details-marker{display:none}details.jsx-29dfb32d17c16cd9>summary.jsx-29dfb32d17c16cd9::marker{content:"";display:none}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.detail-section.jsx-29dfb32d17c16cd9{border-bottom:1px solid #334155;margin-bottom:1.5rem;padding-bottom:1.5rem}.detail-section.jsx-29dfb32d17c16cd9:last-child{border-bottom:none}.detail-grid.jsx-29dfb32d17c16cd9{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.detail-row.jsx-29dfb32d17c16cd9{margin-bottom:1rem}.code-block.jsx-29dfb32d17c16cd9{white-space:pre-wrap;color:#e2e8f0;background:#0f172a;border-radius:6px;padding:.8rem;font-family:monospace;font-size:.9rem}.status-box.jsx-29dfb32d17c16cd9{text-align:center;border-radius:6px;padding:1rem}.status-box.good.jsx-29dfb32d17c16cd9{color:#4ade80;background:#4ade801a;border:1px solid #4ade80}.status-box.bad.jsx-29dfb32d17c16cd9{color:#f87171;background:#f871711a;border:1px solid #f87171}h4.jsx-29dfb32d17c16cd9{color:#38bdf8;margin-top:0;margin-bottom:1rem}.text-sm.jsx-29dfb32d17c16cd9{font-size:.875rem}.text-xl.jsx-29dfb32d17c16cd9{font-size:1.25rem}.text-2xl.jsx-29dfb32d17c16cd9{font-size:1.5rem}.font-bold.jsx-29dfb32d17c16cd9{font-weight:700}.text-slate-400.jsx-29dfb32d17c16cd9{color:#94a3b8}.text-green-400.jsx-29dfb32d17c16cd9{color:#4ade80}.text-red-400.jsx-29dfb32d17c16cd9{color:#f87171}.dropdown-content.jsx-29dfb32d17c16cd9{display:none}.dropdown-trigger.jsx-29dfb32d17c16cd9:hover+.dropdown-content.jsx-29dfb32d17c16cd9,.dropdown-content.jsx-29dfb32d17c16cd9:hover{display:block}'}),D&&U.length>0&&!B&&(0,s.jsx)(S,{steps:U,onComplete:async()=>{E(!1),await P()},onSkip:async e=>{await O(e)},onDontShowAgain:async()=>{await L()}})]})}e.s(["default",()=>$],58116)}]);
@@ -1 +0,0 @@
1
- :root{--background:#f8fafc;--foreground:#1e293b;--card-bg:#fff;--card-border:#94a3b840;--primary:#2563eb;--primary-hover:#1d4ed8;--secondary:#7c3aed;--accent:#db2777;--success:#16a34a;--warning:#d97706;--error:#dc2626;--border:#e2e8f0;--border-dark:#cbd5e1;--input-bg:#fff;--input-border:#cbd5e1;--code-block-bg:#f1f5f9;--table-border:#e2e8f0;--table-row-border:#f1f5f9;--dropdown-bg:#fff;--dropdown-border:#e2e8f0;--shadow-color:#0000001a;--foreground-secondary:#64748b;--foreground-muted:#94a3b8;--background-secondary:#f1f5f9}[data-theme=dark]{--background:#0f172a;--foreground:#f8fafc;--card-bg:#1e293bb3;--card-border:#94a3b81a;--primary:#38bdf8;--primary-hover:#7dd3fc;--secondary:#818cf8;--accent:#f472b6;--success:#4ade80;--warning:#fbbf24;--error:#f87171;--border:#334155;--border-dark:#475569;--input-bg:#0f172a;--input-border:#334155;--code-block-bg:#1e293b;--table-border:#334155;--table-row-border:#1e293b;--dropdown-bg:#1e293b;--dropdown-border:#334155;--shadow-color:#00000080;--foreground-secondary:#94a3b8;--foreground-muted:#64748b;--background-secondary:#1e293b}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;transition:background-color .3s,color .3s}*{box-sizing:border-box}.dashboard-container{max-width:1600px;margin:0 auto;padding:2rem}.header{border-bottom:1px solid var(--card-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.title-group h1{background:linear-gradient(to right,var(--primary),var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.5rem;font-weight:800}.subtitle{color:var(--foreground-secondary);margin-top:.5rem;font-size:1.1rem}.controls{align-items:center;gap:1rem;display:flex}select{background:var(--input-bg);color:var(--foreground);border:1px solid var(--input-border);cursor:pointer;border-radius:.5rem;outline:none;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}select:focus{border-color:var(--primary)}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.analysis-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.card{background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:1rem;flex-direction:column;padding:1.5rem;transition:transform .2s,box-shadow .2s,background-color .3s;display:flex}.card:hover{box-shadow:0 10px 30px -10px var(--shadow-color);transform:translateY(-2px)}.card-title{color:var(--foreground-secondary);justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:1.1rem;font-weight:600;display:flex}.stat-value{color:var(--foreground);font-size:2rem;font-weight:700}.stat-sub{color:var(--foreground-muted);margin-top:.25rem;font-size:.875rem}.chart-container{flex:1;width:100%;height:350px}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%;margin-top:1rem}th,td{text-align:left;border-bottom:1px solid var(--table-border);padding:1rem}th{color:var(--foreground-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}tr:last-child td{border-bottom:none}tr{border-bottom:1px solid var(--table-row-border)}.tag{text-transform:uppercase;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.section-title{color:var(--foreground);align-items:center;gap:1rem;margin:3rem 0 1.5rem;font-size:1.5rem;font-weight:700;display:flex}.loading{height:50vh;color:var(--primary);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.analysis-controls{background:var(--card-bg);border:1px solid var(--card-border);border-radius:1rem;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem;transition:background-color .3s;display:flex}.control-group{flex-direction:column;gap:.5rem;display:flex}.control-label{color:var(--foreground-secondary);text-transform:uppercase;font-size:.75rem;font-weight:600}.highlight-bad{color:var(--accent)}.highlight-good{color:var(--success)}.tab-btn{color:var(--foreground-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 1rem;font-size:1rem;transition:color .2s}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:700;transition:background .2s}.btn-primary:hover{background:var(--primary-hover)}.btn-sm{color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 8px;font-size:.8rem;transition:background .2s}.btn-sm:hover{opacity:.8}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--background);border:1px solid var(--border);box-shadow:0 20px 25px -5px var(--shadow-color),0 10px 10px -5px var(--shadow-color);border-radius:12px;padding:2rem;transition:background-color .3s}input,textarea,select{background:var(--input-bg);border:1px solid var(--input-border);color:var(--foreground);border-radius:4px;padding:8px;transition:all .2s}input:focus,textarea:focus,select:focus{border-color:var(--primary);outline:none}.skill-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.skill-card{background:var(--card-bg);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid var(--card-border);border-radius:.75rem;flex-direction:column;height:100%;transition:all .2s;display:flex;overflow:hidden}.skill-card:hover{border-color:var(--border);box-shadow:0 10px 20px -5px var(--shadow-color);transform:translateY(-2px)}.skill-card-header{background:linear-gradient(to right,var(--background-secondary),transparent);border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:flex-start;padding:1.25rem;display:flex}.skill-title{color:var(--foreground);white-space:nowrap;text-overflow:ellipsis;max-width:200px;margin:0 0 .5rem;font-size:1.125rem;font-weight:700;overflow:hidden}.skill-meta{align-items:center;gap:.75rem;display:flex}.skill-version-badge{color:var(--primary);background:#2563eb1a;border:1px solid #2563eb33;border-radius:4px;padding:.125rem .5rem;font-family:monospace;font-size:.75rem}[data-theme=dark] .skill-version-badge{background:#38bdf81a;border-color:#38bdf833}.skill-date{color:var(--foreground-muted);font-size:.75rem}.skill-icon{background:var(--background-secondary);border-radius:.5rem;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.5rem;display:flex}.skill-body{flex-direction:column;flex:1;gap:1rem;padding:1.25rem;display:flex}.skill-description{color:var(--foreground-secondary);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;height:4.5em;font-size:.875rem;line-height:1.5;display:-webkit-box;overflow:hidden}.skill-tags{flex-wrap:wrap;gap:.5rem;display:flex}.skill-tag{background:var(--background-secondary);color:var(--foreground-secondary);border:1px solid var(--border);border-radius:9999px;padding:.2rem .5rem;font-size:.7rem}.skill-actions{background:var(--background-secondary);border-top:1px solid var(--card-border);gap:.75rem;padding:1rem;display:flex}.btn-manage{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:.5rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 6px -1px #2563eb4d}.btn-manage:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 6px 12px -2px #2563eb66}.btn-manage:active{transform:translateY(0)}.btn-delete{border:1px solid var(--border);width:2.8rem;color:var(--foreground-secondary);cursor:pointer;background:0 0;border-radius:.5rem;justify-content:center;align-items:center;font-size:1.1rem;transition:all .2s;display:flex}.btn-delete:hover{color:var(--error);background:#ef44441a;border-color:#ef444466}.modal-window-lg{background:var(--background);border:1px solid var(--border);width:900px;max-width:95vw;height:85vh;box-shadow:0 25px 50px -12px var(--shadow-color);border-radius:.75rem;flex-direction:column;transition:background-color .3s;display:flex;overflow:hidden}.modal-header-new{background:var(--background-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-sync-banner{background:var(--background-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.nav-tabs{border-bottom:1px solid var(--border);margin-bottom:1.5rem;display:flex}.nav-tab-item{color:var(--foreground-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1.5rem;font-size:.9rem;font-weight:500;transition:all .2s}.nav-tab-item:hover{color:var(--foreground)}.nav-tab-item.active{color:var(--primary);border-bottom-color:var(--primary)}.upload-card{border:2px dashed var(--border);text-align:center;background:var(--background-secondary);border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;transition:all .2s;display:flex}.upload-card:hover{border-color:var(--foreground-muted);background:var(--background-secondary)}.login-container{background:radial-gradient(circle at top center,var(--background-secondary)0%,var(--background)100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-box{width:100%;max-width:28rem;animation:.5s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-form{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 25px 50px -12px var(--shadow-color);border:1px solid var(--card-border);border-radius:1rem;padding:2.5rem;transition:background-color .3s}.login-label{color:var(--foreground);letter-spacing:.02em;margin-bottom:.5rem;font-size:.9rem;font-weight:600;display:block}.login-input{box-shadow:inset 0 2px 4px 0 var(--shadow-color);appearance:none;border:1px solid var(--input-border);width:100%;color:var(--foreground);background:var(--input-bg);border-radius:.5rem;padding:.75rem 1rem;font-size:1rem;line-height:1.5;transition:all .2s}.login-input:focus{border-color:var(--primary);background:var(--input-bg);box-shadow:0 0 0 2px #2563eb26,inset 0 2px 4px 0 var(--shadow-color);outline:none}.login-btn{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;cursor:pointer;text-shadow:0 1px 2px #0000001a;width:100%;box-shadow:0 4px 6px -1px var(--shadow-color);border:none;border-radius:.5rem;margin-top:1rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:700;transition:all .2s}.login-btn:hover{opacity:.9;box-shadow:0 10px 15px -3px var(--shadow-color);transform:translateY(-1px)}.login-btn:active{transform:translateY(0)}.theme-toggle-btn{border:1px solid var(--border);background:var(--card-bg);width:36px;height:36px;color:var(--foreground);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:1.2rem;transition:all .2s;display:flex}.theme-toggle-btn:hover{background:var(--background-secondary);border-color:var(--primary)}.theme-toggle-btn:active{transform:scale(.95)}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return u},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return s},urlObjectKeys:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",l=e.hash||"",u=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(s+=":"+e.port)),u&&"object"==typeof u&&(u=String(i.urlQueryToSearchParams(u)));let c=e.search||u&&`?${u}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==s?(s="//"+(s||""),o&&"/"!==o[0]&&(o="/"+o)):s||(s=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${o}${c}${l}`}let u=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return l(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return v},NormalizeError:function(){return b},PageNotFoundError:function(){return j},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return f},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return P}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>l.test(e);function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class j extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(18967),o=e.r(52817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return j}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(90809),a=e.r(43476),l=i._(e.r(71645)),u=e.r(95057),s=e.r(8372),c=e.r(18581),f=e.r(18967),d=e.r(5550);e.r(33525);let p=e.r(91949),h=e.r(73668),m=e.r(9396);function g(e){return"string"==typeof e?e:(0,u.formatUrl)(e)}function y(t){var r;let n,o,i,[u,y]=(0,l.useOptimistic)(p.IDLE_LINK_STATUS),j=(0,l.useRef)(null),{href:v,as:x,children:P,prefetch:S=null,passHref:O,replace:_,shallow:E,scroll:k,onClick:C,onMouseEnter:T,onTouchStart:w,legacyBehavior:R=!1,onNavigate:L,ref:N,unstable_dynamicOnHover:B,...$}=t;n=P,R&&("string"==typeof n||"number"==typeof n)&&(n=(0,a.jsx)("a",{children:n}));let M=l.default.useContext(s.AppRouterContext),U=!1!==S,A=!1!==S?null===(r=S)||"auto"===r?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,{href:I,as:F}=l.default.useMemo(()=>{let e=g(v);return{href:e,as:x?g(x):e}},[v,x]);if(R){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=l.default.Children.only(n)}let D=R?o&&"object"==typeof o&&o.ref:N,z=l.default.useCallback(e=>(null!==M&&(j.current=(0,p.mountLinkInstance)(e,I,M,A,U,y)),()=>{j.current&&((0,p.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,p.unmountPrefetchableInstance)(e)}),[U,I,M,A,y]),K={ref:(0,c.useMergedRef)(z,D),onClick(t){R||"function"!=typeof C||C(t),R&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!M||t.defaultPrevented||function(t,r,n,o,i,a,u){if("u">typeof window){let s,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((s=t.currentTarget.getAttribute("target"))&&"_self"!==s||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),u){let e=!1;if(u({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);l.default.startTransition(()=>{f(n||r,i?"replace":"push",a??!0,o.current)})}}(t,I,F,j,_,k,L)},onMouseEnter(e){R||"function"!=typeof T||T(e),R&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),M&&U&&(0,p.onNavigationIntent)(e.currentTarget,!0===B)},onTouchStart:function(e){R||"function"!=typeof w||w(e),R&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),M&&U&&(0,p.onNavigationIntent)(e.currentTarget,!0===B)}};return(0,f.isAbsoluteUrl)(F)?K.href=F:R&&!O&&("a"!==o.type||"href"in o.props)||(K.href=(0,d.addBasePath)(F)),i=R?l.default.cloneElement(o,K):(0,a.jsx)("a",{...$,...K,children:n}),(0,a.jsx)(b.Provider,{value:u,children:i})}e.r(84508);let b=(0,l.createContext)(p.IDLE_LINK_STATUS),j=()=>(0,l.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},30815,e=>{"use strict";var t=e.i(43476),r=e.i(18566),n=e.i(71645),o=e.i(22016),i=e.i(9165);function a(){let e=(0,r.useSearchParams)(),a=e.get("id"),l=e.get("name"),u=e.get("user")||void 0,s=e.get("version"),[c,f]=(0,n.useState)(null),[d,p]=(0,n.useState)(null),[h,m]=(0,n.useState)(!0),[g,y]=(0,n.useState)(null);return((0,n.useEffect)(()=>{!async function(){m(!0),y(null);try{let e=null;if(a){let t=await (0,i.apiFetch)(`/api/skills/${a}`);t.ok&&(e=await t.json())}else if(l){let t=new URLSearchParams({name:l});u&&t.set("user",u);let r=await (0,i.apiFetch)(`/api/skills/by-name?${t}`);r.ok&&(e=await r.json())}if(!e){y("Skill not found"),m(!1);return}f(e);let t=s?parseInt(s,10):e.activeVersion,r=await (0,i.apiFetch)(`/api/skills/${e.id}/versions/${t}`);r.ok&&p(await r.json())}catch(e){y("Failed to load skill")}m(!1)}()},[a,l,u,s]),h)?(0,t.jsx)("div",{style:{padding:"2rem",color:"#e2e8f0"},children:(0,t.jsx)("p",{children:"Loading skill..."})}):g||!c?(0,t.jsxs)("div",{style:{padding:"2rem",color:"#e2e8f0"},children:[(0,t.jsx)(o.default,{href:"/",style:{color:"#60a5fa",marginBottom:"1rem",display:"inline-block"},children:"← Back to Dashboard"}),(0,t.jsx)("h1",{style:{color:"#f87171"},children:"Skill Not Found"}),(0,t.jsx)("p",{style:{color:"#94a3b8"},children:g||"The requested skill could not be found. It may have been deleted."})]}):(0,t.jsxs)("div",{style:{padding:"2rem",color:"#e2e8f0",maxWidth:"1200px",margin:"0 auto"},children:[(0,t.jsx)(o.default,{href:"/",style:{color:"#60a5fa",marginBottom:"1rem",display:"inline-block"},children:"← Back to Dashboard"}),(0,t.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,t.jsx)("h1",{style:{fontSize:"2rem",fontWeight:"bold",marginBottom:"0.5rem"},children:c.name}),(0,t.jsxs)("p",{style:{color:"#94a3b8",fontSize:"0.9rem"},children:["Category: ",c.category||"Other"," | Version: ",s||c.activeVersion]})]}),c.description&&(0,t.jsxs)("div",{style:{marginBottom:"2rem",padding:"1rem",background:"#1e293b",borderRadius:"8px"},children:[(0,t.jsx)("h3",{style:{color:"#94a3b8",marginBottom:"0.5rem"},children:"Description"}),(0,t.jsx)("p",{children:c.description})]}),d?.changeLog&&(0,t.jsxs)("div",{style:{marginBottom:"2rem",padding:"1rem",background:"#1e293b",borderRadius:"8px"},children:[(0,t.jsx)("h3",{style:{color:"#94a3b8",marginBottom:"0.5rem"},children:"Change Log"}),(0,t.jsx)("p",{children:d.changeLog})]}),d?.content&&(0,t.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,t.jsx)("h3",{style:{color:"#94a3b8",marginBottom:"0.5rem"},children:"Skill Content"}),(0,t.jsx)("pre",{style:{padding:"1rem",background:"#0f172a",borderRadius:"8px",overflow:"auto",fontSize:"0.85rem",whiteSpace:"pre-wrap"},children:d.content})]})]})}function l(){return(0,t.jsx)("div",{style:{padding:"2rem",color:"#e2e8f0"},children:(0,t.jsx)("p",{children:"Loading skill..."})})}function u(){return(0,t.jsx)(n.Suspense,{fallback:(0,t.jsx)(l,{}),children:(0,t.jsx)(a,{})})}e.s(["default",()=>u])}]);
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Skill-Insight Contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.