@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.
- package/.env.example +6 -0
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +4 -0
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +24 -0
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/config/create/route.js +4 -3
- package/.next/standalone/.next/server/app/api/config/create/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js +5 -4
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js +6 -5
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/evaluation/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +6 -5
- package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js +4 -3
- package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +4 -3
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/rejudge/route.js +6 -5
- package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/session/route.js +4 -4
- package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js +6 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js +6 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/setup/opencode-tui/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +3 -2
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js +5 -2
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/automation/import/route.js +5 -2
- package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -5
- package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/route.js +3 -2
- package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js +8 -0
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/skills/upload/route.js +5 -2
- package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/task-stats/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/task-stats/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/task-stats/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/task-stats/route.js +12 -0
- package/.next/standalone/.next/server/app/api/task-stats/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/task-stats/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/task-stats/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/upload/route.js +5 -4
- package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/details/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/details/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/details/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/details.html +1 -1
- package/.next/standalone/.next/server/app/details.rsc +5 -5
- package/.next/standalone/.next/server/app/details.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/details.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/details.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/details.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/details.segments/details/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/details.segments/details.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +5 -5
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +5 -5
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/skills.html +1 -1
- package/.next/standalone/.next/server/app/skills.rsc +5 -5
- package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02ddba88._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__15dbd1f2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c95bcde._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__23efcd78._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a6d443b._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5444db55._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__591248f3._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d8178f6._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6261d672._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fc12878._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8402dfd1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__89404730._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__98b3de5e._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d551ea2._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a4d3d791._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3d72e3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa5c8858._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b11acc79._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba01f286._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd91659b._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c200214a._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c20da96a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c602c518._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7fab946._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8c1808b._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9b9fecc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddf63a21._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e280561d._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e550423c._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f9e66e02._.js +3 -0
- package/.next/standalone/.next/server/chunks/_33c0c729._.js +1 -1
- package/.next/standalone/.next/server/chunks/_3e8b4d8c._.js +1 -1
- package/.next/standalone/.next/server/chunks/_46f10554._.js +3 -0
- package/.next/standalone/.next/server/chunks/_4c806e26._.js +3 -0
- package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
- package/.next/standalone/.next/server/chunks/_ddffef3e._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_setup_opencode-tui_route_actions_fc8ae29f.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_skills_sync-enterprise_route_actions_0ca45899.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_task-stats_route_actions_983505cd.js +3 -0
- package/.next/standalone/.next/server/chunks/ce889_server_app_api_setup_opencode-commands_si-optimizer_route_actions_fcde30ef.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +47 -4
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -1
- package/.next/standalone/.next/server/chunks/src_98433cb8._.js +237 -0
- package/.next/standalone/.next/server/chunks/src_c8971a2d._.js +57 -8
- package/.next/standalone/.next/server/chunks/src_lib_119f6c7b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9ab7cc4a._.js → [root-of-the-server]__082c32a2._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__51073007._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_049876f0._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_09546b95._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_8f5379ab._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +9 -9
- package/.next/standalone/.next/server/chunks/ssr/{_b121f1ae._.js → _e2faf4f5._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +2 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_3582f3d0.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_a1341fea._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_e1de6ed8._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_login_page_tsx_72f58654._.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/{737b8cff3c6a4e30.js → 015467355d3866a3.js} +1 -1
- package/.next/standalone/.next/static/chunks/09f192c9b0609ad8.js +1 -0
- package/.next/standalone/.next/static/chunks/1945a5514fbc393c.css +1 -0
- package/.next/{static/chunks/07c9f28a269c701a.js → standalone/.next/static/chunks/361e4cf1e9a71ccb.js} +1 -1
- package/.next/{static/chunks/5432ce4a494bc74d.js → standalone/.next/static/chunks/60bc50374fd32f20.js} +3 -3
- package/.next/standalone/.next/static/chunks/{251551dcdf74a60d.js → 65bac0880a87bff3.js} +1 -1
- package/.next/standalone/.next/static/chunks/961f7fa606dd26a8.js +1 -0
- package/.next/standalone/.next/static/chunks/bab2ffd4f527acfb.js +1 -0
- package/.next/standalone/.next/static/chunks/c513373e5cfedd5b.js +2 -0
- package/.next/standalone/.next/static/chunks/ca3017e51e817855.js +1 -0
- package/.next/{static/chunks/7e35f4cf2e266022.js → standalone/.next/static/chunks/cb104c3cb4c52833.js} +1 -1
- package/.next/{static/chunks/ff6357067630b168.js → standalone/.next/static/chunks/e13d208072a48316.js} +1 -1
- package/.next/standalone/.next/static/chunks/{e09d9ee16fe90255.js → f786bb68e17b12b4.js} +1 -1
- package/.next/standalone/.next/static/chunks/fc61b990c5ec4ef4.js +109 -0
- package/.next/standalone/node_modules/.prisma/client/edge.js +7 -3
- package/.next/standalone/node_modules/.prisma/client/index-browser.js +4 -0
- package/.next/standalone/node_modules/.prisma/client/index.js +7 -3
- package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
- package/.next/standalone/node_modules/.prisma/client/schema.prisma +26 -22
- package/.next/standalone/node_modules/.prisma/client/wasm.js +4 -0
- package/.next/standalone/node_modules/adm-zip/util/constants.js +142 -0
- package/.next/standalone/node_modules/adm-zip/util/decoder.js +5 -0
- package/.next/standalone/node_modules/adm-zip/util/errors.js +63 -0
- package/.next/standalone/node_modules/adm-zip/util/fattr.js +76 -0
- package/.next/standalone/node_modules/adm-zip/util/index.js +5 -0
- package/.next/standalone/node_modules/adm-zip/util/utils.js +339 -0
- package/.next/standalone/package.json +6 -2
- package/.next/standalone/prisma/schema.prisma +7 -3
- package/.next/standalone/scripts/opencode_plugin.ts +158 -50
- package/.next/standalone/scripts/opencode_tui_plugin.tsx +308 -0
- package/.next/standalone/scripts/si-optimizer.md +5 -0
- package/.next/static/chunks/{737b8cff3c6a4e30.js → 015467355d3866a3.js} +1 -1
- package/.next/static/chunks/09f192c9b0609ad8.js +1 -0
- package/.next/static/chunks/1945a5514fbc393c.css +1 -0
- package/.next/{standalone/.next/static/chunks/07c9f28a269c701a.js → static/chunks/361e4cf1e9a71ccb.js} +1 -1
- package/.next/{standalone/.next/static/chunks/5432ce4a494bc74d.js → static/chunks/60bc50374fd32f20.js} +3 -3
- package/.next/static/chunks/{251551dcdf74a60d.js → 65bac0880a87bff3.js} +1 -1
- package/.next/static/chunks/961f7fa606dd26a8.js +1 -0
- package/.next/static/chunks/bab2ffd4f527acfb.js +1 -0
- package/.next/static/chunks/c513373e5cfedd5b.js +2 -0
- package/.next/static/chunks/ca3017e51e817855.js +1 -0
- package/.next/{standalone/.next/static/chunks/7e35f4cf2e266022.js → static/chunks/cb104c3cb4c52833.js} +1 -1
- package/.next/{standalone/.next/static/chunks/ff6357067630b168.js → static/chunks/e13d208072a48316.js} +1 -1
- package/.next/static/chunks/{e09d9ee16fe90255.js → f786bb68e17b12b4.js} +1 -1
- package/.next/static/chunks/fc61b990c5ec4ef4.js +109 -0
- package/package.json +6 -2
- package/prisma/schema.prisma +7 -3
- package/scripts/activate_telemetry.sh +44 -1
- package/scripts/opencode_plugin.ts +158 -50
- package/scripts/opencode_tui_plugin.tsx +308 -0
- package/scripts/si-optimizer.md +5 -0
- package/scripts/utils.js +0 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1013b265._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b835ea7f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +0 -3
- package/.next/standalone/.next/server/chunks/_41a98bd8._.js +0 -3
- package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +0 -175
- package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +0 -3
- package/.next/standalone/.next/static/chunks/01eddf501c574a44.js +0 -1
- package/.next/standalone/.next/static/chunks/1e782a49beaf489c.js +0 -1
- package/.next/standalone/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
- package/.next/standalone/.next/static/chunks/67bd1a5de2195779.js +0 -1
- package/.next/standalone/.next/static/chunks/a87b5e84254095a5.js +0 -1
- package/.next/standalone/.next/static/chunks/c6bd2818656b1f20.css +0 -1
- package/.next/standalone/.next/static/chunks/dc59a07a8f327b40.js +0 -1
- package/.next/standalone/LICENSE +0 -21
- package/.next/standalone/bin/cli.js +0 -106
- package/.next/standalone/custom-models.example.json +0 -21
- package/.next/standalone/eslint.config.mjs +0 -18
- package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +0 -126
- package/.next/standalone/features/feature-skill-used-jump-link/feature.json +0 -32
- package/.next/standalone/features/feature-skill-used-jump-link/issue.md +0 -32
- package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +0 -528
- package/.next/standalone/next.config.ts +0 -41
- package/.next/standalone/scripts/activate_telemetry.sh +0 -159
- package/.next/standalone/scripts/create_migration_package.sh +0 -124
- package/.next/standalone/scripts/fix_models.js +0 -66
- package/.next/standalone/scripts/init_opengauss.py +0 -284
- package/.next/standalone/scripts/install.js +0 -273
- package/.next/standalone/scripts/logs.js +0 -38
- package/.next/standalone/scripts/otel_data/logs.jsonl +0 -12
- package/.next/standalone/scripts/otel_data/metrics.jsonl +0 -21
- package/.next/standalone/scripts/otel_data/raw_requests.jsonl +0 -8
- package/.next/standalone/scripts/otel_data/raw_requests.jsonl.bak +0 -6
- package/.next/standalone/scripts/otel_receiver.py +0 -580
- package/.next/standalone/scripts/postinstall.js +0 -192
- package/.next/standalone/scripts/publish-npm.js +0 -401
- package/.next/standalone/scripts/restart.js +0 -26
- package/.next/standalone/scripts/restart.sh +0 -138
- package/.next/standalone/scripts/restart_dev.sh +0 -132
- package/.next/standalone/scripts/start.js +0 -291
- package/.next/standalone/scripts/status.js +0 -41
- package/.next/standalone/scripts/stop.js +0 -90
- package/.next/standalone/scripts/sync_skills.js +0 -216
- package/.next/standalone/scripts/utils.js +0 -235
- package/.next/standalone/tests/setup_skill_optimizer.sh +0 -118
- package/.next/standalone/tsconfig.json +0 -34
- package/.next/static/chunks/01eddf501c574a44.js +0 -1
- package/.next/static/chunks/1e782a49beaf489c.js +0 -1
- package/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
- package/.next/static/chunks/67bd1a5de2195779.js +0 -1
- package/.next/static/chunks/a87b5e84254095a5.js +0 -1
- package/.next/static/chunks/c6bd2818656b1f20.css +0 -1
- package/.next/static/chunks/dc59a07a8f327b40.js +0 -1
- /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_ssgManifest.js +0 -0
- /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_buildManifest.js +0 -0
- /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},32245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(41997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},7773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},97458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(87924),e=a.r(35112),f=a.r(56704),g=a.r(7773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},69853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(87924),e=a.r(72131),f=a.r(32245),g=a.r(97458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},19721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(33354)._(a.r(69853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},87986,a=>{"use strict";var b=a.i(87924),c=a.i(19721),d=a.i(50944),e=a.i(72131),f=a.i(19032);function g({executionId:a,skillId:c,user:d,onStepClick:g}){let[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)("compare"),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(!0),[s,t]=(0,e.useState)(!1),u=c&&c.trim()?c:null;(0,e.useEffect)(()=>{(0,f.apiFetch)(`/api/executions/${a}/analyze-match`).then(a=>a.json()).then(a=>{a.analyzed&&n(a)}).catch(()=>{})},[a]);let v=async()=>{j(!0),p(""),l("dynamic");try{let b=await (0,f.apiFetch)(`/api/executions/${a}/analyze-match`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:d,mode:"dynamic"})}),c=await b.json();c.success?n({analyzed:!0,mode:"dynamic",dynamicMermaid:c.dynamicMermaid,interactionCount:c.interactionCount,matchedAt:new Date().toISOString()}):p(c.error||"分析失败")}catch(a){p(a instanceof Error?a.message:"网络错误")}finally{j(!1)}},w=async()=>{if(!u)return void p('该执行记录未关联 Skill,无法进行 Skill 对比。请使用"流程解析"功能。');j(!0),p(""),l("compare");try{let b=await (0,f.apiFetch)(`/api/executions/${a}/analyze-match`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:d,mode:"compare"})}),c=await b.json();if(c.success){let a=c.match?.problemSteps||[];n({analyzed:!0,mode:"compare",matchJson:JSON.stringify(c.match),staticMermaid:c.staticMermaid,dynamicMermaid:c.dynamicMermaid,analysisText:JSON.stringify(a),interactionCount:c.interactionCount,currentInteractionCount:c.currentInteractionCount,hasUpdate:c.hasUpdate,matchedAt:new Date().toISOString(),usedSkillName:c.usedSkillName,usedSkillVersion:c.usedSkillVersion})}else p(c.error||"分析失败")}catch(a){p(a instanceof Error?a.message:"网络错误")}finally{j(!1)}};return(0,b.jsxs)("div",{style:{background:"#1e293b",borderRadius:"8px",border:"1px solid #334155",marginBottom:"2rem",overflow:"hidden"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"1rem 1.5rem",borderBottom:s?"1px solid #334155":"none",cursor:"pointer"},onClick:()=>t(!s),children:[(0,b.jsx)("h4",{style:{color:"#38bdf8",margin:0,fontSize:"0.95rem"},children:"📊 执行流程分析"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("span",{style:{color:"#94a3b8",fontSize:"0.8rem",marginRight:"0.5rem"},children:s?"收起":"展开"}),(0,b.jsx)("button",{style:{background:"#334155",border:"none",borderRadius:"4px",color:"#94a3b8",padding:"4px 8px",cursor:"pointer",fontSize:"0.8rem"},children:s?"▲":"▼"})]})]}),s&&(0,b.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,b.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",marginBottom:"1rem"},children:(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,b.jsx)("button",{onClick:a=>{a.stopPropagation(),v()},disabled:i,style:{padding:"6px 16px",background:i&&"dynamic"===k?"#334155":"#22c55e",color:i&&"dynamic"===k?"#94a3b8":"#0f172a",border:"none",borderRadius:"4px",cursor:i?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.85rem"},children:i&&"dynamic"===k?"分析中...":"流程解析"}),(0,b.jsx)("button",{onClick:a=>{a.stopPropagation(),w()},disabled:i,style:{padding:"6px 16px",background:i&&"compare"===k?"#334155":"#38bdf8",color:i&&"compare"===k?"#94a3b8":"#0f172a",border:"none",borderRadius:"4px",cursor:i?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.85rem"},children:i&&"compare"===k?"对比中...":"Skill对比"})]})}),o&&(0,b.jsx)("div",{style:{padding:"0.75rem",background:"rgba(248, 113, 113, 0.1)",borderRadius:"4px",color:"#f87171",marginBottom:"1rem",fontSize:"0.9rem"},children:o}),m&&m.analyzed?(0,b.jsxs)("div",{children:["compare"===m.mode&&m.dynamicMermaid?(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("h5",{style:{color:"#94a3b8",margin:"0 0 0.5rem 0",fontSize:"0.85rem"},children:["执行流程对比 ",m.usedSkillName&&`(${m.usedSkillName} v${m.usedSkillVersion})`]}),(0,b.jsx)("div",{style:{background:"#0f172a",padding:"1rem",borderRadius:"6px",border:"1px solid #334155",minHeight:"250px",overflowX:"auto",overflowY:"auto"},children:(0,b.jsx)(h,{code:m.dynamicMermaid||""})})]}):(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsx)("h5",{style:{color:"#94a3b8",margin:"0 0 0.5rem 0",fontSize:"0.85rem"},children:"执行轨迹"}),(0,b.jsx)("div",{style:{background:"#0f172a",padding:"1rem",borderRadius:"6px",border:"1px solid #334155",minHeight:"180px",overflowX:"auto",overflowY:"auto"},children:(0,b.jsx)(h,{code:m.dynamicMermaid||""})})]}),"compare"===m.mode&&m.matchJson&&(()=>{let a=null;try{a=JSON.parse(m.matchJson)?.summary}catch{}return a?(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem",padding:"0.75rem",background:"#0f172a",borderRadius:"6px",marginBottom:"1rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",gap:"1.5rem",fontSize:"0.85rem"},children:[(0,b.jsxs)("span",{style:{color:"#4ade80"},children:["✅ 符合预期:",a.matchedSteps||0]}),(0,b.jsxs)("span",{style:{color:"#fbbf24"},children:["⚠️ 部分偏离:",a.partialSteps||0]}),(0,b.jsxs)("span",{style:{color:"#f87171"},children:["❌ 非预期调用:",a.unexpectedSteps||0]}),(0,b.jsxs)("span",{style:{color:"#94a3b8"},children:["⭕ 跳过:",a.skippedSteps||0]})]}),(0,b.jsxs)("div",{style:{marginLeft:"auto",fontSize:"0.8rem",color:"#64748b"},children:["对话轮数: ",m.interactionCount,m.hasUpdate&&(0,b.jsx)("span",{style:{color:"#fbbf24",marginLeft:"0.5rem"},children:"(有更新)"})]})]}):null})(),"compare"===m.mode&&m.analysisText&&(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",marginBottom:"0.5rem"},onClick:()=>r(!q),children:[(0,b.jsx)("h5",{style:{color:"#94a3b8",margin:0,fontSize:"0.85rem"},children:"问题步骤分析"}),(0,b.jsx)("button",{style:{background:"#334155",border:"none",borderRadius:"4px",color:"#94a3b8",padding:"4px 8px",cursor:"pointer",fontSize:"0.8rem"},children:q?"收起 ▲":"展开 ▼"})]}),q&&(()=>{let a=[];try{a=JSON.parse(m.analysisText)}catch{return(0,b.jsx)("div",{style:{background:"#0f172a",padding:"1rem",borderRadius:"6px",border:"1px solid #334155",color:"#64748b",fontSize:"0.9rem"},children:"暂无问题步骤"})}if(!Array.isArray(a)||0===a.length)return(0,b.jsx)("div",{style:{background:"#0f172a",padding:"1rem",borderRadius:"6px",border:"1px solid #334155",color:"#4ade80",fontSize:"0.9rem"},children:"✅ 执行流程完全符合预期,无问题步骤"});let c={partial:{text:"部分偏离",color:"#fbbf24"},unexpected:{text:"非预期调用",color:"#f87171"},skipped:{text:"跳过",color:"#94a3b8"}};return(0,b.jsx)("div",{style:{background:"#0f172a",borderRadius:"6px",border:"1px solid #334155",overflow:"hidden"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"0.9rem"},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"#1e293b"},children:[(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:"#94a3b8",borderBottom:"1px solid #334155",width:"80px"},children:"对话轮数"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:"#94a3b8",borderBottom:"1px solid #334155",width:"120px"},children:"步骤名称"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:"#94a3b8",borderBottom:"1px solid #334155",width:"110px"},children:"状态"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:"#94a3b8",borderBottom:"1px solid #334155"},children:"问题描述"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:"#94a3b8",borderBottom:"1px solid #334155"},children:"改进建议"})]})}),(0,b.jsx)("tbody",{children:a.map((a,d)=>(0,b.jsxs)("tr",{style:{background:d%2==0?"#0f172a":"#111827"},children:[(0,b.jsxs)("td",{style:{padding:"0.75rem",color:g?"#38bdf8":"#e2e8f0",borderBottom:"1px solid #334155",cursor:g?"pointer":"default",textDecoration:g?"underline":"none"},onClick:()=>g?.(a.stepIndex),children:["#",a.stepIndex]}),(0,b.jsx)("td",{style:{padding:"0.75rem",color:"#e2e8f0",borderBottom:"1px solid #334155"},children:a.stepName}),(0,b.jsx)("td",{style:{padding:"0.75rem",borderBottom:"1px solid #334155"},children:(0,b.jsx)("span",{style:{padding:"2px 8px",borderRadius:"4px",background:`${c[a.status]?.color||"#94a3b8"}20`,color:c[a.status]?.color||"#94a3b8",fontSize:"0.8rem"},children:c[a.status]?.text||a.status})}),(0,b.jsx)("td",{style:{padding:"0.75rem",color:"#e2e8f0",borderBottom:"1px solid #334155"},children:a.problem}),(0,b.jsx)("td",{style:{padding:"0.75rem",color:"#38bdf8",borderBottom:"1px solid #334155"},children:a.suggestion})]},d))})]})})})()]})]}):(0,b.jsxs)("div",{style:{color:"#64748b",fontSize:"0.9rem",textAlign:"center",padding:"2rem"},children:[(0,b.jsxs)("div",{style:{marginBottom:"0.5rem"},children:[(0,b.jsx)("strong",{children:"执行流程"}),":根据执行数据生成轨迹图,无需关联 Skill"]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("strong",{children:"Skill对比"}),":与已解析的 Skill 流程进行对比分析"]})]})]})]})}function h({code:c}){let[d,f]=(0,e.useState)(""),[g,h]=(0,e.useState)("");return((0,e.useEffect)(()=>{let b=async()=>{try{let b=(await a.A(34673)).default;b.initialize({startOnLoad:!1,theme:"dark",flowchart:{useMaxWidth:!1,curve:"basis"},themeVariables:{fontSize:"16px"}});let{svg:d}=await b.render("mermaid-exec-"+Date.now(),c);f(d),h("")}catch(a){console.error("Mermaid render error:",a),h("渲染失败")}};c&&b()},[c]),g)?(0,b.jsx)("div",{style:{color:"#f87171"},children:g}):d?(0,b.jsx)("div",{style:{width:"100%",display:"flex",justifyContent:"flex-start",alignItems:"flex-start",minWidth:"max-content"},dangerouslySetInnerHTML:{__html:d}}):(0,b.jsx)("div",{style:{color:"#64748b"},children:"加载中..."})}var i=a.i(94086),j=a.i(60721),k=a.i(14020);let l=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),m=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),n=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),o=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),p=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),q=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1});(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1});let r=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),s=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),t=(0,c.default)(async()=>{},{loadableGenerated:{modules:[17847]},ssr:!1}),u=({content:a})=>{let[c,d]=(0,e.useState)(!1);return(0,b.jsxs)("span",{style:{position:"relative",marginLeft:"4px",cursor:"help",fontSize:"0.8rem",display:"inline-block"},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:["ⓘ",c&&(0,b.jsxs)("div",{style:{position:"absolute",bottom:"100%",left:"50%",transform:"translateX(-50%)",background:"var(--dropdown-bg)",border:"1px solid var(--border)",color:"var(--foreground)",padding:"6px 10px",borderRadius:"4px",whiteSpace:"pre-line",minWidth:"280px",maxWidth:"400px",zIndex:1e3,marginBottom:"6px",fontSize:"0.75rem",boxShadow:"0 4px 6px -1px var(--shadow-color)",pointerEvents:"none",fontWeight:"normal",lineHeight:"1.4"},children:[a,(0,b.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 var(--border)"}})]})]})},v=({interactions:a,focusedStep:c,onStepClick:d})=>{if(!a||!Array.isArray(a)||0===a.length)return null;let[f,g]=(0,e.useState)("default"),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(0),l=(0,e.useMemo)(()=>(a=>{if(!a||0===a.length)return[];let b=a[0];if(b.type&&("user"===b.type||"assistant"===b.type)&&b.message){let b=new Map;return a.forEach((a,c)=>{let d=a.message;if(!d||!Array.isArray(d.content))return;let e=d.content.some(a=>"toolCall"===a.type)?"toolCall":"tool_use";d.content.filter(a=>a.type===e).forEach(c=>{b.set(c.id,{name:c.name,arguments:c.arguments||c.input,messageId:a.id,timestamp:d.timestamp||Date.parse(a.timestamp)})})}),a.map((c,d)=>{let e=c.message;if(!e)return null;let f=Date.parse(c.timestamp),g=e.timestamp||(isNaN(f)?0:f),h={role:e.role,timestamp:g,timeInfo:{created:g}};if(c.latency)h.latency=c.latency;else if("assistant"===e.role){let b=a[d-1];if(b&&b.message?.role==="user"){let a=Date.parse(b.timestamp),d=Date.parse(c.timestamp);isNaN(a)||isNaN(d)||!(d>a)||(h.latency=d-a)}}if(e.content){if("string"==typeof e.content)h.content=e.content;else if(Array.isArray(e.content)){let d=e.content.filter(a=>"text"===a.type);d.length>0&&(h.content=d.map(a=>a.text).join("\n"));let f=e.content.some(a=>"toolCall"===a.type)?"toolCall":"tool_use",g=e.content.filter(a=>a.type===f);g.length>0&&(h.tool_calls=g.map(d=>{let e=b.get(d.id),f=((a,b,c)=>{let d=c,e=new Set,f=100;for(;d&&f>0&&!e.has(d);){e.add(d);let c=b.filter(a=>a.parentId===d);for(let b of c){let c=b.message;if(c&&Array.isArray(c.content)){for(let d of c.content.filter(a=>"toolResult"===a.type||"tool_result"===a.type))if((d.toolCallId||d.tool_use_id)===a)return{content:d.content,isError:d.isError||d.is_error,timestamp:c.timestamp||Date.parse(b.timestamp)}}}if(c.length>0)d=c[0].id,f--;else break}return null})(d.id,a,c.id),g=0;if(e&&f){let a=e.timestamp,b=f.timestamp;a&&b&&b>a&&(g=b-a)}return{function:{name:d.name},arguments:d.arguments||d.input,output:f?f.content:null,timing:{duration_ms:g}}}))}}if(e.usage){let a=e.usage.totalTokens||e.usage.total_tokens||(e.usage.input_tokens||0)+(e.usage.output_tokens||0);h.usage={total:a,total_tokens:a,input:e.usage.input||e.usage.input_tokens||0,output:e.usage.output||e.usage.output_tokens||0}}return h}).filter(a=>a&&("user"===a.role||"assistant"===a.role))}return a})(a),[a]),m=(0,e.useMemo)(()=>{let a=[],b=a=>{if(null==a)return null;if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a){let b=a.trim();if(!b)return null;if(/^\d+$/.test(b)){let a=Number(b);return Number.isFinite(a)?a:null}let c=Date.parse(b);return Number.isFinite(c)?c:null}return null};return l.forEach((c,d)=>{let e=c.latency||0;!e&&c.timeInfo&&c.timeInfo.completed&&c.timeInfo.created&&(e=c.timeInfo.completed-c.timeInfo.created);let f=c.usage||c.responseMessage?.usage,g=f?.total_tokens||0;!g&&f?.total&&(g=f.total),!g&&(f?.input||f?.output)&&(g=(f.input||0)+(f.output||0)),a.push({kind:"llm",id:`llm-${d}`,order:a.length,original:c,parentIndex:d,toolIndex:null,latency:e,tokens:g});let h=c.tool_calls||c.toolCalls||[];Array.isArray(h)&&h.length>0&&h.forEach((c,e)=>{let f=0,g=c.timing||c.timeInfo||{};if("number"==typeof g.duration_ms)f=g.duration_ms;else if(g.started_at&&g.completed_at){let a=b(g.started_at),c=b(g.completed_at);null!=a&&null!=c&&c>=a&&c-a<36e5&&(f=c-a)}a.push({kind:"tool",id:`tool-${d}-${e}`,order:a.length,original:c,parentIndex:d,toolIndex:e,latency:f,tokens:0})})}),a},[a]),n=(0,e.useMemo)(()=>new Set([...m.filter(a=>"llm"===a.kind)].sort((a,b)=>b.latency-a.latency).slice(0,5).filter(a=>a.latency>0).map(a=>a.id)),[m]),o=(0,e.useMemo)(()=>new Set([...m.filter(a=>"llm"===a.kind)].sort((a,b)=>b.tokens-a.tokens).slice(0,5).filter(a=>a.tokens>0).map(a=>a.id)),[m]),p=m.filter(a=>"llm"===a.kind),q=(0,e.useMemo)(()=>{let a=[...p];return"latency_desc"===f?a.sort((a,b)=>b.latency-a.latency):"tokens_desc"===f?a.sort((a,b)=>b.tokens-a.tokens):a.sort((a,b)=>a.order-b.order),a},[p,f]),r=Math.ceil(q.length/5),s=(0,e.useMemo)(()=>{let a=5*j;return q.slice(a,a+5)},[q,j,5]),t=(0,e.useMemo)(()=>{let a=[];return s.forEach(b=>{a.push(b);let c=m.filter(a=>"tool"===a.kind&&a.parentIndex===b.parentIndex);a.push(...c)}),a},[s,m]);return(0,e.useEffect)(()=>{k(0)},[f]),(0,b.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem",borderBottom:"1px solid #334155",paddingBottom:"4px",minHeight:"34px"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("button",{onClick:()=>i(!h),style:{background:"transparent",border:"none",color:"#38bdf8",cursor:"pointer",padding:0},children:h?"▼":"▶"}),(0,b.jsx)("h4",{style:{color:"#38bdf8",fontSize:"0.95rem",margin:0},children:"执行步骤(Trace)"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-muted)"},children:"Sort by:"}),(0,b.jsxs)("select",{value:f,onChange:a=>g(a.target.value),style:{background:"var(--input-bg)",color:"var(--foreground)",border:"1px solid var(--border)",borderRadius:"4px",padding:"2px 8px",fontSize:"0.8rem",outline:"none"},children:[(0,b.jsx)("option",{value:"default",children:"执行顺序"}),(0,b.jsx)("option",{value:"latency_desc",children:"时延"}),(0,b.jsx)("option",{value:"tokens_desc",children:"Tokens"})]})]})]}),h&&(0,b.jsxs)("div",{style:{maxHeight:"600px",overflowY:"auto",paddingRight:"8px"},children:[(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:t.map(a=>{let{original:e,kind:f,parentIndex:g,toolIndex:h,latency:i,tokens:j}=a,k=n.has(a.id),l=o.has(a.id),m=c===g,p="tool"===f,q=i<1e3?`${i.toFixed(0)}ms`:`${(i/1e3).toFixed(2)}s`,r="unknown",s="";if("tool"===f){r=`tool:${e.function?.name||e.name||"unknown"}`;let a=e.output??(e.state&&e.state.output);s="string"==typeof a?a:null!=a?JSON.stringify(a):""}else{if(e.responseMessage){r=e.responseMessage.role||"assistant";let a=e.responseMessage.content;"string"==typeof a?s=a:a&&(s=JSON.stringify(a))}if(!s&&e.content){let a=e.content;s="string"==typeof a?a:JSON.stringify(a)}e.role&&"unknown"===r&&(r=e.role)}let t=p?"#fbbf24":"user"===r?"#a78bfa":"assistant"===r?"#38bdf8":"opencode"===r?"#ef4444":"subagent"===r?"#22c55e":"#e2e8f0",u=k?"#fb923c":"#fbbf24",v="0 0 0 2px rgba(96, 165, 250, 0.3)",w=`inset 3px 0 0 ${u}`,x=p?m?`${v}, ${w}`:w:m?v:"none";return s.length>150&&(s=s.slice(0,150)+"..."),(0,b.jsxs)("div",{onClick:()=>d(g),style:{background:m?p?"rgba(124, 58, 237, 0.2)":"rgba(37, 99, 235, 0.2)":p?"var(--background-secondary)":"var(--card-bg)",border:m?"1px solid var(--primary)":"1px solid var(--border)",borderRadius:"6px",padding:"0.75rem",paddingLeft:p?"1.25rem":"0.75rem",marginLeft:p?"16px":0,fontSize:"0.9rem",cursor:"pointer",transition:"all 0.2s",boxShadow:x},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("span",{style:{background:"var(--background-secondary)",color:"var(--foreground-secondary)",padding:"2px 6px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold"},children:"tool"===f?`#${g}.${h}`:`#${g}`}),(0,b.jsx)("span",{style:{fontWeight:"bold",color:t,textTransform:"capitalize"},children:r}),p&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"#ffffff",background:"var(--warning)",borderRadius:"999px",padding:"1px 8px",fontWeight:"bold"},children:"TOOL"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"1rem",fontSize:"0.85rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"Latency:"}),(0,b.jsx)("span",{style:{color:k?"var(--warning)":"var(--foreground)",fontWeight:k?"bold":"normal",borderBottom:k?"1px dashed var(--warning)":"none"},children:q}),k&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--warning)",border:"1px solid var(--warning)",borderRadius:"4px",padding:"0 4px"},children:"TOP 5"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"Tokens:"}),(0,b.jsx)("span",{style:{color:l?"var(--accent)":"var(--foreground)",fontWeight:l?"bold":"normal",borderBottom:l?"1px dashed var(--accent)":"none"},children:j}),l&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--accent)",border:"1px solid var(--accent)",borderRadius:"4px",padding:"0 4px"},children:"TOP 5"})]})]})]}),(0,b.jsx)("div",{style:{color:"var(--foreground)",fontFamily:"monospace",opacity:.9,wordBreak:"break-all"},children:s||(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontStyle:"italic"},children:"(No Content)"})})]},a.id)})}),r>1&&(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"1rem",marginTop:"1rem"},children:[(0,b.jsx)("button",{onClick:()=>k(a=>Math.max(0,a-1)),disabled:0===j,style:{padding:"4px 12px",background:0===j?"var(--border)":"var(--primary)",color:0===j?"var(--foreground-muted)":"#ffffff",border:"none",borderRadius:"4px",cursor:0===j?"not-allowed":"pointer"},children:"Prev"}),(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)",fontSize:"0.9rem"},children:["Page ",j+1," of ",r]}),(0,b.jsx)("button",{onClick:()=>k(a=>Math.min(r-1,a+1)),disabled:j===r-1,style:{padding:"4px 12px",background:j===r-1?"var(--border)":"var(--primary)",color:j===r-1?"var(--foreground-muted)":"#ffffff",border:"none",borderRadius:"4px",cursor:j===r-1?"not-allowed":"pointer"},children:"Next"})]})]})]})};function w(){return(0,b.jsx)(e.Suspense,{fallback:(0,b.jsx)("div",{className:"p-8 text-white",children:"Loading..."}),children:(0,b.jsx)(x,{})})}function x(){let a,c=(0,d.useRouter)(),h=(0,d.useSearchParams)(),{user:w}=(0,j.useAuth)(),{theme:x,toggleTheme:C,isDark:D}=(0,k.useTheme)(),E=h.get("query")||"",F=h.get("framework")||"",G=h.get("expandTaskId"),[H,I]=(0,e.useState)([]),[J,K]=(0,e.useState)(!0),[L,M]=(0,e.useState)({}),[N,O]=(0,e.useState)("all"),[P,Q]=(0,e.useState)(null),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)(null),[V,W]=(0,e.useState)(null),[X,Y]=(0,e.useState)(""),[Z,$]=(0,e.useState)(null),[_,aa]=(0,e.useState)(null),[ab,ac]=(0,e.useState)(!1),[ad,ae]=(0,e.useState)("all"),[af,ag]=(0,e.useState)("type"),[ah,ai]=(0,e.useState)(null),[aj,ak]=(0,e.useState)(!0),[al,am]=(0,e.useState)(!0),[an,ao]=(0,e.useState)(!0);(0,e.useEffect)(()=>{let a=ah?ah.task_id||ah.upload_id||`temp-${ah.timestamp}`:null;if(!a||L[a])return;let b=[a];/^ses_/.test(a)&&/-\d+$/.test(a)&&b.push(a.replace(/-\d+$/,""));let c=a=>(0,f.apiFetch)(`/api/session?taskId=${encodeURIComponent(a)}`).then(a=>a.ok?a.json():{error:"Error"}).then(a=>{if(a&&!a.error)return a;throw Error(a?.error||"Error")});(async()=>{for(let d of b)try{let b=await c(d);M(c=>({...c,[a]:b}));return}catch{}M(b=>({...b,[a]:{error:"Fetch failed"}}))})()},[ah]),(0,e.useEffect)(()=>{let a=new URLSearchParams;w&&a.append("user",w),E&&a.append("query",E),F&&a.append("framework",F),G&&a.append("taskId",G),(0,f.apiFetch)("/api/data?"+a.toString(),{cache:"no-store"}).then(a=>a.json()).then(a=>{let b=E,c=F;if(!b&&G){let d=a.find(a=>a.task_id===G||a.upload_id===G);d&&(b=d.query,c||(c=d.framework),ai(d))}else if(G){let b=a.find(a=>a.task_id===G||a.upload_id===G);b&&ai(b)}let d=a.filter(a=>a.query===b&&(!c||a.framework===c)).map(a=>({...a,tokens:Number(a.tokens||a.Token||0),latency:Number(a.latency||0),answer_score:void 0!==a.answer_score?Number(a.answer_score):+!!a.is_answer_correct}));d.sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()),I(d),K(!1)})},[E,F,G,w]);let[ap,aq]=(0,e.useState)(new Set),[ar,as]=(0,e.useState)(new Set),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(!1),[ax,ay]=(0,e.useState)("label"),az="__no_label__",aA=(0,e.useMemo)(()=>{let a=new Set,b=!1;H.forEach(c=>{c.label?a.add(c.label):b=!0});let c=Array.from(a).sort();return b&&c.unshift(az),c},[H]),aB=(0,e.useMemo)(()=>{let a=new Set,b=!1;H.forEach(c=>{c.model?a.add(c.model):b=!0});let c=Array.from(a).sort();return b&&c.unshift(az),c},[H]),aC=(0,e.useMemo)(()=>{let a=H;if("all"!==N){let b=Date.now()-(({"1h":36e5,"12h":432e5,"24h":864e5})[N]||0);a=a.filter(a=>new Date(a.timestamp).getTime()>b)}ap.size>0&&(a=a.filter(a=>a.label?ap.has(a.label):ap.has(az))),ar.size>0&&(a=a.filter(a=>a.model?ar.has(a.model):ar.has(az)));let b=new Map;for(let c of a){let a=c.task_id||c.upload_id||"";if(!a)continue;let d=b.get(a);if(!d){b.set(a,c);continue}let e=new Date(d.timestamp).getTime(),f=new Date(c.timestamp).getTime();if(f>e){b.set(a,c);continue}if(f===e){let e=String(d.final_result||"").length;String(c.final_result||"").length>e&&b.set(a,c)}}return Array.from(b.values())},[H,N,ap,ar]),aD=(0,e.useMemo)(()=>{let a="label"===ax?"label":"model",b=[...new Set(aC.map(b=>b[a]).filter(a=>a))];return b.sort((a,b)=>{let c=a=>{let b=String(a).match(/(\d+)$/);return b?parseInt(b[0],10):null},d=c(String(a)),e=c(String(b));return null!==d&&null!==e?d-e:String(a).localeCompare(String(b))}),{latency:b.map(b=>{let c=aC.filter(c=>c[a]===b);return{name:b,latency:c.reduce((a,b)=>a+(b.latency||0),0)/c.length}}),tokens:b.map(b=>{let c=aC.filter(c=>c[a]===b);return{name:b,tokens:c.reduce((a,b)=>a+(b.tokens||0),0)/c.length}}),accuracy:b.map(b=>{let c=aC.filter(c=>c[a]===b);return{name:b,answer_score:c.reduce((a,b)=>a+(b.answer_score||0),0)/c.length}}),skillRecallRate:b.map(b=>{let c=aC.filter(c=>c[a]===b).filter(a=>null!==a.skill_recall_rate&&void 0!==a.skill_recall_rate),d=c.length,e=c.reduce((a,b)=>a+(b.skill_recall_rate||0),0);return{name:b,skill_recall_rate:d>0?e/d:0}}),contextWindow:b.map(b=>{let c=aC.filter(c=>c[a]===b&&null!=c.context_window_pct);return{name:b,context_window_pct:c.length>0?c.reduce((a,b)=>a+(b.context_window_pct||0),0)/c.length:void 0}}).filter(a=>null!=a.context_window_pct)}},[aC,ax]),aE=(0,e.useMemo)(()=>{if(0===aC.length)return[];let a=[...aC].sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()).filter(a=>null!=a.cost);if(0===a.length)return[];let b=[],c=0,d=0;return a.forEach((a,e)=>{c+=a.cost||0,a.is_answer_correct&&d++;let f=e+1,g=c/f,h=d/f,i=h>0?g/h:null;null!==i&&b.push({timestamp:a.timestamp,cpsr:i,avgCost:g,successRate:h,totalRuns:f})}),b},[aC]),aF=async(a,b)=>{let d=R.trim();if(d){U({id:a,status:"saving"});try{let e=await (0,f.apiFetch)("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:a,upload_id:b||void 0,query:d})}),g=await e.json();if(!e.ok)return void U({id:a,status:"error",msg:g.error||"保存失败"});let h=(g.record?.judgment_reason||"").includes("未找到匹配的评测配置")?"已保存,但未找到匹配的评测配置,Score 已归零。请在「数据集管理」中为该 query 添加完全一致的条目。":g.message||"已保存";if(U({id:a,status:"ok",msg:h}),Q(null),S(""),d!==E){let b=new URLSearchParams;b.set("query",d),F&&b.set("framework",F),b.set("expandTaskId",a),c.push(`/details?${b.toString()}`)}else{let a=w?`/api/data?user=${encodeURIComponent(w)}`:"/api/data",b=await (0,f.apiFetch)(a),c=(await b.json()).filter(a=>a.query===E&&(!F||a.framework===F)).map(a=>({...a,tokens:Number(a.tokens||a.Token||0),latency:Number(a.latency||0),answer_score:void 0!==a.answer_score?Number(a.answer_score):+!!a.is_answer_correct}));c.sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()),I(c)}}catch(b){U({id:a,status:"error",msg:"网络错误"})}}},aG=async(a,b)=>{let c=X.trim();if(c){$({id:a,status:"saving"});try{let d=await (0,f.apiFetch)("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:a,upload_id:b||void 0,final_result:c})}),e=await d.json();if(!d.ok)return void $({id:a,status:"error",msg:e.error||"保存失败"});let g=e.message||"已保存,正在后台重新评估";$({id:a,status:"ok",msg:g}),W(null),Y("");try{I(b=>b.map(b=>(b.task_id||b.upload_id)===a?{...b,final_result:c,judgment_reason:"结果评估中..."}:b))}catch(a){console.error("Error updating local data:",a)}}catch(b){$({id:a,status:"error",msg:"网络错误"})}}},aH=async a=>{let b=a.target.files?.[0];if(!b)return;let c=new FormData;c.append("document",b);try{let a=await (0,f.apiFetch)("/api/parse-document",{method:"POST",body:c}),b=await a.json();a.ok?Y(b.content||""):alert("解析文档失败: "+(b.error||"Unknown error"))}catch(a){alert("解析文档异常: "+a.message)}},aI=a=>new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),aJ=a=>{if(!a)return"-";let b=new Date(a);return b.getFullYear()+"/"+String(b.getMonth()+1).padStart(2,"0")+"/"+String(b.getDate()).padStart(2,"0")+" "+String(b.getHours()).padStart(2,"0")+":"+String(b.getMinutes()).padStart(2,"0")+":"+String(b.getSeconds()).padStart(2,"0")},aK=a=>{if(!a&&0!==a)return"-";let b=new Date(a);return b.getFullYear()+"/"+String(b.getMonth()+1).padStart(2,"0")+"/"+String(b.getDate()).padStart(2,"0")+" "+String(b.getHours()).padStart(2,"0")+":"+String(b.getMinutes()).padStart(2,"0")+":"+String(b.getSeconds()).padStart(2,"0")+"."+String(b.getMilliseconds()).padStart(3,"0")};if(J)return(0,b.jsx)("div",{style:{padding:"2rem",color:"#1e293b"},children:"Loading..."});if(!G)return(0,b.jsx)("div",{style:{minHeight:"100vh",background:"#ffffff",color:"#1e293b",padding:"2rem"},children:(0,b.jsxs)("div",{style:{maxWidth:"600px",margin:"4rem auto",textAlign:"center",background:"#f8fafc",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"3rem"},children:[(0,b.jsx)("div",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"⚠️"}),(0,b.jsx)("h2",{style:{color:"#d97706",marginBottom:"1rem"},children:"缺少必要参数"}),(0,b.jsxs)("p",{style:{color:"#64748b",marginBottom:"1.5rem"},children:["请通过 ",(0,b.jsx)("code",{style:{background:"#f1f5f9",padding:"2px 8px",borderRadius:"4px"},children:"expandTaskId"})," 参数访问此页面"]}),(0,b.jsx)("button",{onClick:()=>c.push("/"),style:{padding:"10px 24px",background:"#2563eb",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:"bold",cursor:"pointer"},children:"返回首页"})]})});if(!ah)return(0,b.jsx)("div",{style:{minHeight:"100vh",background:"#ffffff",color:"#1e293b",padding:"2rem"},children:(0,b.jsxs)("div",{style:{maxWidth:"600px",margin:"4rem auto",textAlign:"center",background:"#f8fafc",border:"1px solid #e2e8f0",borderRadius:"8px",padding:"3rem"},children:[(0,b.jsx)("div",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"🔍"}),(0,b.jsx)("h2",{style:{color:"#dc2626",marginBottom:"1rem"},children:"未找到记录"}),(0,b.jsxs)("p",{style:{color:"#64748b",marginBottom:"1.5rem"},children:["未找到 ID 为 ",(0,b.jsx)("code",{style:{background:"#f1f5f9",padding:"2px 8px",borderRadius:"4px"},children:G})," 的记录"]}),(0,b.jsx)("button",{onClick:()=>c.push("/"),style:{padding:"10px 24px",background:"#2563eb",color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:"bold",cursor:"pointer"},children:"返回首页"})]})});let aL=ah.task_id||ah.upload_id||`temp-${ah.timestamp}`,aM=L[aL];return(0,b.jsxs)("div",{style:{minHeight:"100vh",background:"var(--background)",color:"var(--foreground)",padding:"2rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem",borderBottom:"1px solid var(--border)",paddingBottom:"0.5rem"},children:[(0,b.jsxs)("h1",{style:{fontSize:"1.5rem",margin:0,display:"flex",alignItems:"center",gap:"8px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:E,children:[(0,b.jsx)("span",{id:"home-link",style:{flexShrink:0,cursor:"pointer",color:"var(--primary)",transition:"color 0.2s"},onClick:()=>c.push("/"),onMouseOver:a=>a.currentTarget.style.color="var(--primary-hover)",onMouseOut:a=>a.currentTarget.style.color="var(--primary)",children:"skill-insight"}),(0,b.jsx)("span",{style:{flexShrink:0,color:"var(--border-dark)"},children:"|"}),(0,b.jsx)("span",{style:{color:"var(--foreground-secondary)",overflow:"hidden",textOverflow:"ellipsis"},children:E})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("button",{className:"theme-toggle-btn",onClick:C,title:D?"切换到浅色主题":"切换到深色主题",children:D?"☀️":"🌙"}),(0,b.jsxs)("button",{className:"export-btn",onClick:()=>{let a=document.documentElement.cloneNode(!0);a.querySelectorAll("script").forEach(a=>a.remove()),a.querySelectorAll(".export-btn").forEach(a=>a.remove());let b=`
|
|
1
|
+
module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},32245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(41997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},7773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},97458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(87924),e=a.r(35112),f=a.r(56704),g=a.r(7773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},69853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(87924),e=a.r(72131),f=a.r(32245),g=a.r(97458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},19721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(33354)._(a.r(69853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},87986,a=>{"use strict";var b=a.i(87924),c=a.i(19721),d=a.i(50944),e=a.i(72131),f=a.i(19032),g=a.i(14020);function h({executionId:a,skillId:c,user:d,onStepClick:h}){let[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)("compare"),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(!1),{isDark:x}=(0,g.useTheme)(),y=(0,g.useThemeColors)(),z=c&&c.trim()?c:null;(0,e.useEffect)(()=>{let b=null,c=()=>{(0,f.apiFetch)(`/api/executions/${a}/analyze-match`).then(a=>a.json()).then(a=>{a.analyzed?a.dynamicMermaid||a.staticMermaid||a.matchJson?(w(!1),o(a)):(w(!0),b=setTimeout(c,3e3)):w(!1)}).catch(()=>{w(!1)})};return c(),()=>{b&&clearTimeout(b)}},[a]);let A=async()=>{k(!0),q(""),m("dynamic");try{let b=await (0,f.apiFetch)(`/api/executions/${a}/analyze-match`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:d,mode:"dynamic"})}),c=await b.json();c.success?o({analyzed:!0,mode:"dynamic",dynamicMermaid:c.dynamicMermaid,interactionCount:c.interactionCount,matchedAt:new Date().toISOString()}):q(c.error||"分析失败")}catch(a){q(a instanceof Error?a.message:"网络错误")}finally{k(!1)}},B=async()=>{if(!z)return void q('该执行记录未关联 Skill,无法进行 Skill 对比。请使用"流程解析"功能。');k(!0),q(""),m("compare");try{let b=await (0,f.apiFetch)(`/api/executions/${a}/analyze-match`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({user:d,mode:"compare"})}),c=await b.json();if(c.success){let a=c.match?.problemSteps||[];o({analyzed:!0,mode:"compare",matchJson:JSON.stringify(c.match),staticMermaid:c.staticMermaid,dynamicMermaid:c.dynamicMermaid,analysisText:JSON.stringify(a),interactionCount:c.interactionCount,currentInteractionCount:c.currentInteractionCount,hasUpdate:c.hasUpdate,matchedAt:new Date().toISOString(),usedSkillName:c.usedSkillName,usedSkillVersion:c.usedSkillVersion})}else q(c.error||"分析失败")}catch(a){q(a instanceof Error?a.message:"网络错误")}finally{k(!1)}};return(0,b.jsxs)("div",{style:{background:y.bgSecondary,borderRadius:"8px",border:`1px solid ${y.border}`,marginBottom:"2rem",overflow:"hidden"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"1rem 1.5rem",borderBottom:t?"1px solid #334155":"none",cursor:"pointer"},onClick:()=>u(!t),children:[(0,b.jsx)("h4",{style:{color:y.primary,margin:0,fontSize:"0.95rem"},children:"📊 执行流程分析"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("span",{style:{color:y.fgMuted,fontSize:"0.8rem",marginRight:"0.5rem"},children:t?"收起":"展开"}),(0,b.jsx)("button",{style:{background:y.border,border:"none",borderRadius:"4px",color:y.fgMuted,padding:"4px 8px",cursor:"pointer",fontSize:"0.8rem"},children:t?"▲":"▼"})]})]}),t&&(0,b.jsxs)("div",{style:{padding:"1.5rem"},children:[v&&(0,b.jsxs)("div",{style:{padding:"0.75rem",background:"rgba(56, 189, 248, 0.1)",borderRadius:"4px",color:"#38bdf8",marginBottom:"1rem",fontSize:"0.9rem",display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,b.jsx)("span",{style:{animation:"spin 1s linear infinite",display:"inline-block"},children:"🔄"}),"正在自动解析执行轨迹,请稍候...模型调用需要2-3分钟,如长时间未完成,可点击按钮手动重新解析"]}),(0,b.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",marginBottom:"1rem"},children:(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,b.jsx)("button",{onClick:a=>{a.stopPropagation(),w(!1),A()},disabled:j,style:{padding:"6px 16px",background:j&&"dynamic"===l?"#334155":"#22c55e",color:j&&"dynamic"===l?"#a1a1aa":"#18181b",border:"none",borderRadius:"4px",cursor:j?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.85rem"},children:j&&"dynamic"===l?"分析中...":"流程解析"}),(0,b.jsx)("button",{onClick:a=>{a.stopPropagation(),w(!1),B()},disabled:j,style:{padding:"6px 16px",background:j&&"compare"===l?"#334155":"#38bdf8",color:j&&"compare"===l?"#a1a1aa":"#18181b",border:"none",borderRadius:"4px",cursor:j?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.85rem"},children:j&&"compare"===l?"对比中...":"Skill对比"})]})}),p&&(0,b.jsx)("div",{style:{padding:"0.75rem",background:y.errorSubtle,borderRadius:"4px",color:y.error,marginBottom:"1rem",fontSize:"0.9rem"},children:p}),n&&n.analyzed?(0,b.jsxs)("div",{children:["compare"===n.mode&&n.dynamicMermaid?(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("h5",{style:{color:y.fgMuted,margin:"0 0 0.5rem 0",fontSize:"0.85rem"},children:["执行流程对比 ",n.usedSkillName&&`(${n.usedSkillName} v${n.usedSkillVersion})`]}),(0,b.jsx)("div",{style:{background:y.bg,padding:"1rem",borderRadius:"6px",border:`1px solid ${y.border}`,minHeight:"250px",overflowX:"auto",overflowY:"auto"},children:(0,b.jsx)(i,{code:n.dynamicMermaid||""})})]}):(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsx)("h5",{style:{color:y.fgMuted,margin:"0 0 0.5rem 0",fontSize:"0.85rem"},children:"执行轨迹"}),(0,b.jsx)("div",{style:{background:y.bg,padding:"1rem",borderRadius:"6px",border:`1px solid ${y.border}`,minHeight:"180px",overflowX:"auto",overflowY:"auto"},children:(0,b.jsx)(i,{code:n.dynamicMermaid||""})})]}),"compare"===n.mode&&n.matchJson&&(()=>{let a=null;try{a=JSON.parse(n.matchJson)?.summary}catch{}return a?(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem",padding:"0.75rem",background:y.bg,borderRadius:"6px",marginBottom:"1rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",gap:"1.5rem",fontSize:"0.85rem"},children:[(0,b.jsxs)("span",{style:{color:y.success},children:["✅ 符合预期:",a.matchedSteps||0]}),(0,b.jsxs)("span",{style:{color:y.warning},children:["⚠️ 部分偏离:",a.partialSteps||0]}),(0,b.jsxs)("span",{style:{color:y.error},children:["❌ 非预期调用:",a.unexpectedSteps||0]}),(0,b.jsxs)("span",{style:{color:y.fgMuted},children:["⭕ 跳过:",a.skippedSteps||0]})]}),(0,b.jsxs)("div",{style:{marginLeft:"auto",fontSize:"0.8rem",color:y.fgSecondary},children:["对话轮数: ",n.interactionCount,n.hasUpdate&&(0,b.jsx)("span",{style:{color:y.warning,marginLeft:"0.5rem"},children:"(有更新)"})]})]}):null})(),"compare"===n.mode&&n.analysisText&&(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",marginBottom:"0.5rem"},onClick:()=>s(!r),children:[(0,b.jsx)("h5",{style:{color:y.fgMuted,margin:0,fontSize:"0.85rem"},children:"问题步骤分析"}),(0,b.jsx)("button",{style:{background:y.border,border:"none",borderRadius:"4px",color:y.fgMuted,padding:"4px 8px",cursor:"pointer",fontSize:"0.8rem"},children:r?"收起 ▲":"展开 ▼"})]}),r&&(()=>{let a=[];try{a=JSON.parse(n.analysisText)}catch{return(0,b.jsx)("div",{style:{background:y.bg,padding:"1rem",borderRadius:"6px",border:`1px solid ${y.border}`,color:y.fgSecondary,fontSize:"0.9rem"},children:"暂无问题步骤"})}if(!Array.isArray(a)||0===a.length)return(0,b.jsx)("div",{style:{background:y.bg,padding:"1rem",borderRadius:"6px",border:`1px solid ${y.border}`,color:y.success,fontSize:"0.9rem"},children:"✅ 执行流程完全符合预期,无问题步骤"});let c={partial:{text:"部分偏离",color:y.warning},unexpected:{text:"非预期调用",color:y.error},skipped:{text:"跳过",color:y.fgMuted}},d={required:{text:"必选",color:"#38bdf8"},conditional:{text:"条件分支",color:"#fbbf24"},loop:{text:"循环",color:"#a78bfa"},optional:{text:"可选",color:"#94a3b8"},handoff:{text:"衔接",color:"#4ade80"}};return(0,b.jsx)("div",{style:{background:y.bg,borderRadius:"6px",border:`1px solid ${y.border}`,overflow:"hidden",maxHeight:"600px",overflowY:"auto"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"0.9rem"},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:y.bgSecondary},children:[(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:y.fgMuted,borderBottom:`1px solid ${y.border}`,width:"80px"},children:"对话轮数"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:y.fgMuted,borderBottom:`1px solid ${y.border}`,width:"120px"},children:"步骤名称"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:y.fgMuted,borderBottom:`1px solid ${y.border}`,width:"110px"},children:"状态"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:y.fgMuted,borderBottom:`1px solid ${y.border}`,width:"90px"},children:"控制流"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:y.fgMuted,borderBottom:`1px solid ${y.border}`},children:"问题描述"}),(0,b.jsx)("th",{style:{padding:"0.75rem",textAlign:"left",color:y.fgMuted,borderBottom:`1px solid ${y.border}`},children:"改进建议"})]})}),(0,b.jsx)("tbody",{children:a.map((a,e)=>{let f;return(0,b.jsxs)("tr",{style:{background:e%2==0?"#18181b":"#111827"},children:[(0,b.jsxs)("td",{style:{padding:"0.75rem",color:h?"#38bdf8":"#e4e4e7",borderBottom:`1px solid ${y.border}`,cursor:h?"pointer":"default",textDecoration:h?"underline":"none"},onClick:()=>h?.(a.stepIndex),children:["#",a.stepIndex]}),(0,b.jsx)("td",{style:{padding:"0.75rem",color:y.fg,borderBottom:`1px solid ${y.border}`},children:a.stepName}),(0,b.jsx)("td",{style:{padding:"0.75rem",borderBottom:`1px solid ${y.border}`},children:(0,b.jsx)("span",{style:{padding:"2px 8px",borderRadius:"4px",background:`${c[a.status]?.color||"#a1a1aa"}20`,color:c[a.status]?.color||"#a1a1aa",fontSize:"0.8rem"},children:c[a.status]?.text||a.status})}),(0,b.jsx)("td",{style:{padding:"0.75rem",borderBottom:`1px solid ${y.border}`},children:(f=d[a.controlFlowType||(a=>{if(!n.matchJson)return null;try{let b=JSON.parse(n.matchJson),c=b.matches?.find(b=>b.expectedStepName===a);c?.expectedStepId}catch{}return null})(a.stepName)||"required"])?(0,b.jsx)("span",{style:{padding:"2px 8px",borderRadius:"4px",background:`${f.color}20`,color:f.color,fontSize:"0.8rem"},children:f.text}):(0,b.jsx)("span",{style:{color:y.fgMuted,fontSize:"0.8rem"},children:"-"})}),(0,b.jsx)("td",{style:{padding:"0.75rem",color:y.fg,borderBottom:`1px solid ${y.border}`},children:a.problem}),(0,b.jsx)("td",{style:{padding:"0.75rem",color:y.primary,borderBottom:`1px solid ${y.border}`},children:a.suggestion})]},e)})})]})})})()]})]}):(0,b.jsxs)("div",{style:{color:y.fgSecondary,fontSize:"0.9rem",textAlign:"center",padding:"2rem"},children:[(0,b.jsxs)("div",{style:{marginBottom:"0.5rem"},children:[(0,b.jsx)("strong",{children:"执行流程"}),":根据执行数据生成轨迹图,无需关联 Skill"]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("strong",{children:"Skill对比"}),":与已解析的 Skill 流程进行对比分析"]})]})]})]})}function i({code:c}){let{isDark:d}=(0,g.useTheme)(),f=(0,g.useThemeColors)(),[h,i]=(0,e.useState)(""),[j,k]=(0,e.useState)("");return((0,e.useEffect)(()=>{let b=async()=>{try{let b=(await a.A(34673)).default;b.initialize({startOnLoad:!1,theme:"dark",flowchart:{useMaxWidth:!1,curve:"basis"},themeVariables:{fontSize:"16px"}});let{svg:d}=await b.render("mermaid-exec-"+Date.now(),c);i(d),k("")}catch(a){console.error("Mermaid render error:",a),k("渲染失败")}};c&&b()},[c]),j)?(0,b.jsx)("div",{style:{color:f.error},children:j}):h?(0,b.jsx)("div",{style:{width:"100%",display:"flex",justifyContent:"flex-start",alignItems:"flex-start",minWidth:"max-content"},dangerouslySetInnerHTML:{__html:h}}):(0,b.jsx)("div",{style:{color:f.fgSecondary},children:"加载中..."})}var j=a.i(94086),k=a.i(60721);let l=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),m=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),n=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),o=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),p=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),q=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1});(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1});let r=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),s=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),t=(0,c.default)(async()=>{},{loadableGenerated:{modules:[17847]},ssr:!1}),u=({content:a})=>{let[c,d]=(0,e.useState)(!1);return(0,b.jsxs)("span",{style:{position:"relative",marginLeft:"4px",cursor:"help",fontSize:"0.8rem",display:"inline-block"},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:["ⓘ",c&&(0,b.jsxs)("div",{style:{position:"absolute",bottom:"100%",left:"50%",transform:"translateX(-50%)",background:"var(--dropdown-bg)",border:"1px solid var(--border)",color:"var(--foreground)",padding:"6px 10px",borderRadius:"4px",whiteSpace:"pre-line",minWidth:"280px",maxWidth:"400px",zIndex:1e3,marginBottom:"6px",fontSize:"0.75rem",boxShadow:"0 4px 6px -1px var(--shadow-color)",pointerEvents:"none",fontWeight:"normal",lineHeight:"1.4"},children:[a,(0,b.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 var(--border)"}})]})]})},v=({interactions:a,focusedStep:c,onStepClick:d})=>{let{isDark:f}=(0,g.useTheme)(),h=(0,g.useThemeColors)();if(!a||!Array.isArray(a)||0===a.length)return null;let[i,j]=(0,e.useState)("default"),[k,l]=(0,e.useState)(!0),[m,n]=(0,e.useState)(0),o=(0,e.useMemo)(()=>(a=>{if(!a||0===a.length)return[];let b=a[0];if(b.type&&("user"===b.type||"assistant"===b.type)&&b.message){let b=new Map;return a.forEach((a,c)=>{let d=a.message;if(!d||!Array.isArray(d.content))return;let e=d.content.some(a=>"toolCall"===a.type)?"toolCall":"tool_use";d.content.filter(a=>a.type===e).forEach(c=>{b.set(c.id,{name:c.name,arguments:c.arguments||c.input,messageId:a.id,timestamp:d.timestamp||Date.parse(a.timestamp)})})}),a.map((c,d)=>{let e=c.message;if(!e)return null;let f=Date.parse(c.timestamp),g=e.timestamp||(isNaN(f)?0:f),h={role:e.role,timestamp:g,timeInfo:{created:g}};if(c.latency)h.latency=c.latency;else if("assistant"===e.role){let b=a[d-1];if(b&&b.message?.role==="user"){let a=Date.parse(b.timestamp),d=Date.parse(c.timestamp);isNaN(a)||isNaN(d)||!(d>a)||(h.latency=d-a)}}if(e.content){if("string"==typeof e.content)h.content=e.content;else if(Array.isArray(e.content)){let d=e.content.filter(a=>"text"===a.type);d.length>0&&(h.content=d.map(a=>a.text).join("\n"));let f=e.content.some(a=>"toolCall"===a.type)?"toolCall":"tool_use",g=e.content.filter(a=>a.type===f);g.length>0&&(h.tool_calls=g.map(d=>{let e=b.get(d.id),f=((a,b,c)=>{let d=c,e=new Set,f=100;for(;d&&f>0&&!e.has(d);){e.add(d);let c=b.filter(a=>a.parentId===d);for(let b of c){let c=b.message;if(c&&Array.isArray(c.content)){for(let d of c.content.filter(a=>"toolResult"===a.type||"tool_result"===a.type))if((d.toolCallId||d.tool_use_id)===a)return{content:d.content,isError:d.isError||d.is_error,timestamp:c.timestamp||Date.parse(b.timestamp)}}}if(c.length>0)d=c[0].id,f--;else break}return null})(d.id,a,c.id),g=0;if(e&&f){let a=e.timestamp,b=f.timestamp;a&&b&&b>a&&(g=b-a)}return{function:{name:d.name},arguments:d.arguments||d.input,output:f?f.content:null,timing:{duration_ms:g}}}))}}if(e.usage){let a=e.usage.totalTokens||e.usage.total_tokens||(e.usage.input_tokens||0)+(e.usage.output_tokens||0);h.usage={total:a,total_tokens:a,input:e.usage.input||e.usage.input_tokens||0,output:e.usage.output||e.usage.output_tokens||0,reasoning:e.usage.reasoning_tokens||0}}return h}).filter(a=>a&&("user"===a.role||"assistant"===a.role))}return a})(a),[a]),p=(0,e.useMemo)(()=>{let a=[],b=a=>{if(null==a)return null;if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a){let b=a.trim();if(!b)return null;if(/^\d+$/.test(b)){let a=Number(b);return Number.isFinite(a)?a:null}let c=Date.parse(b);return Number.isFinite(c)?c:null}return null};return o.forEach((c,d)=>{let e=c.latency||0;!e&&c.timeInfo&&c.timeInfo.completed&&c.timeInfo.created&&(e=c.timeInfo.completed-c.timeInfo.created);let f=c.usage||c.responseMessage?.usage,g=f?.total_tokens||0;!g&&f?.total&&(g=f.total),!g&&(f?.input||f?.output)&&(g=(f.input||0)+(f.output||0));let h=f?.reasoning||0,i=f?.output||f?.output_tokens||0;a.push({kind:"llm",id:`llm-${d}`,order:a.length,original:c,parentIndex:d,toolIndex:null,latency:e,tokens:g,reasoningTokens:h,outputTokens:i});let j=c.tool_calls||c.toolCalls||[];Array.isArray(j)&&j.length>0&&j.forEach((c,e)=>{let f=0,g=c.timing||c.timeInfo||{};if("number"==typeof g.duration_ms)f=g.duration_ms;else if(g.started_at&&g.completed_at){let a=b(g.started_at),c=b(g.completed_at);null!=a&&null!=c&&c>=a&&c-a<36e5&&(f=c-a)}a.push({kind:"tool",id:`tool-${d}-${e}`,order:a.length,original:c,parentIndex:d,toolIndex:e,latency:f,tokens:0})})}),a},[a]),q=(0,e.useMemo)(()=>new Set([...p.filter(a=>"llm"===a.kind)].sort((a,b)=>b.latency-a.latency).slice(0,5).filter(a=>a.latency>0).map(a=>a.id)),[p]),r=(0,e.useMemo)(()=>new Set([...p.filter(a=>"llm"===a.kind)].sort((a,b)=>b.tokens-a.tokens).slice(0,5).filter(a=>a.tokens>0).map(a=>a.id)),[p]),s=p.filter(a=>"llm"===a.kind),t=(0,e.useMemo)(()=>{let a=[...s];return"latency_desc"===i?a.sort((a,b)=>b.latency-a.latency):"tokens_desc"===i?a.sort((a,b)=>b.tokens-a.tokens):a.sort((a,b)=>a.order-b.order),a},[s,i]),u=Math.ceil(t.length/5),v=(0,e.useMemo)(()=>{let a=5*m;return t.slice(a,a+5)},[t,m,5]),w=(0,e.useMemo)(()=>{let a=[];return v.forEach(b=>{a.push(b);let c=p.filter(a=>"tool"===a.kind&&a.parentIndex===b.parentIndex);a.push(...c)}),a},[v,p]);(0,e.useEffect)(()=>{n(0)},[i]);let x={color:h.primary,fontSize:"0.95rem",margin:0};return(0,b.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem",borderBottom:`1px solid ${h.border}`,paddingBottom:"4px",minHeight:"34px"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("button",{onClick:()=>l(!k),style:{background:"transparent",border:"none",color:h.primary,cursor:"pointer",padding:0},children:k?"▼":"▶"}),(0,b.jsx)("h4",{style:x,children:"执行步骤(Trace)"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("span",{style:{fontSize:"0.8rem",color:"var(--foreground-muted)"},children:"Sort by:"}),(0,b.jsxs)("select",{value:i,onChange:a=>j(a.target.value),style:{background:"var(--input-bg)",color:"var(--foreground)",border:"1px solid var(--border)",borderRadius:"4px",padding:"2px 8px",fontSize:"0.8rem",outline:"none"},children:[(0,b.jsx)("option",{value:"default",children:"执行顺序"}),(0,b.jsx)("option",{value:"latency_desc",children:"时延"}),(0,b.jsx)("option",{value:"tokens_desc",children:"Tokens"})]})]})]}),k&&(0,b.jsxs)("div",{style:{maxHeight:"600px",overflowY:"auto",paddingRight:"8px"},children:[(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:w.map(a=>{let{original:e,kind:f,parentIndex:g,toolIndex:h,latency:i,tokens:j,reasoningTokens:k,outputTokens:l}=a,m=q.has(a.id),n=r.has(a.id),o=c===g,p="tool"===f,s=i<1e3?`${i.toFixed(0)}ms`:`${(i/1e3).toFixed(2)}s`,t="unknown",u="unknown",v="";if("tool"===f){u=t=`tool:${e.function?.name||e.name||"unknown"}`;let a=e.output??(e.state&&e.state.output);v="string"==typeof a?a:null!=a?JSON.stringify(a):""}else{if(e.responseMessage){u=t=e.responseMessage.role||"assistant";let a=e.responseMessage.content;"string"==typeof a?v=a:a&&(v=JSON.stringify(a))}if(!v&&e.content){let a=e.content;v="string"==typeof a?a:JSON.stringify(a)}if(e.role&&"unknown"===t&&(u=t=e.role),"subagent"===t){let a=e.subagent_name||e.agent;a&&(u=`subagent(${a})`)}}let w=p?"#fbbf24":"user"===t?"#a78bfa":"assistant"===t?"#38bdf8":"opencode"===t?"#ef4444":"subagent"===t?"#22c55e":"#e4e4e7",x=m?"#fb923c":"#fbbf24",y="0 0 0 2px rgba(96, 165, 250, 0.3)",z=`inset 3px 0 0 ${x}`,A=p?o?`${y}, ${z}`:z:o?y:"none";return v.length>150&&(v=v.slice(0,150)+"..."),(0,b.jsxs)("div",{onClick:()=>d(g),style:{background:o?p?"rgba(124, 58, 237, 0.2)":"rgba(37, 99, 235, 0.2)":p?"var(--background-secondary)":"var(--card-bg)",border:o?"1px solid var(--primary)":"1px solid var(--border)",borderRadius:"6px",padding:"0.75rem",paddingLeft:p?"1.25rem":"0.75rem",marginLeft:p?"16px":0,fontSize:"0.9rem",cursor:"pointer",transition:"all 0.2s",boxShadow:A},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("span",{style:{background:"var(--background-secondary)",color:"var(--foreground-secondary)",padding:"2px 6px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold"},children:"tool"===f?`#${g}.${h}`:`#${g}`}),(0,b.jsx)("span",{style:{fontWeight:"bold",color:w,textTransform:"capitalize"},children:u}),p&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"#ffffff",background:"var(--warning)",borderRadius:"999px",padding:"1px 8px",fontWeight:"bold"},children:"TOOL"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"1rem",fontSize:"0.85rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"Latency:"}),(0,b.jsx)("span",{style:{color:m?"var(--warning)":"var(--foreground)",fontWeight:m?"bold":"normal",borderBottom:m?"1px dashed var(--warning)":"none"},children:s}),m&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--warning)",border:"1px solid var(--warning)",borderRadius:"4px",padding:"0 4px"},children:"TOP 5"})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[(0,b.jsx)("span",{style:{color:"var(--foreground-muted)"},children:"Tokens:"}),(0,b.jsxs)("span",{title:k?`Reasoning: ${k}, Response: ${l-k}`:void 0,style:{color:n?"var(--accent)":"var(--foreground)",fontWeight:n?"bold":"normal",borderBottom:n?"1px dashed var(--accent)":"none"},children:[j,k?` (reasoning: ${k})`:""]}),n&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--accent)",border:"1px solid var(--accent)",borderRadius:"4px",padding:"0 4px"},children:"TOP 5"})]})]})]}),(0,b.jsx)("div",{style:{color:"var(--foreground)",fontFamily:"monospace",opacity:.9,wordBreak:"break-all"},children:v||(0,b.jsx)("span",{style:{color:"var(--foreground-muted)",fontStyle:"italic"},children:"(No Content)"})})]},a.id)})}),u>1&&(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"1rem",marginTop:"1rem"},children:[(0,b.jsx)("button",{onClick:()=>n(a=>Math.max(0,a-1)),disabled:0===m,style:{padding:"4px 12px",background:0===m?"var(--border)":"var(--primary)",color:0===m?"var(--foreground-muted)":"#ffffff",border:"none",borderRadius:"4px",cursor:0===m?"not-allowed":"pointer"},children:"Prev"}),(0,b.jsxs)("span",{style:{color:"var(--foreground-muted)",fontSize:"0.9rem"},children:["Page ",m+1," of ",u]}),(0,b.jsx)("button",{onClick:()=>n(a=>Math.min(u-1,a+1)),disabled:m===u-1,style:{padding:"4px 12px",background:m===u-1?"var(--border)":"var(--primary)",color:m===u-1?"var(--foreground-muted)":"#ffffff",border:"none",borderRadius:"4px",cursor:m===u-1?"not-allowed":"pointer"},children:"Next"})]})]})]})};function w(){return(0,b.jsx)(e.Suspense,{fallback:(0,b.jsx)("div",{className:"p-8 text-white",children:"Loading..."}),children:(0,b.jsx)(x,{})})}function x(){let a,c=(0,d.useRouter)(),i=(0,d.useSearchParams)(),{user:w}=(0,k.useAuth)(),{theme:x,toggleTheme:C,isDark:D}=(0,g.useTheme)(),E=(0,g.useThemeColors)(),F=i.get("query")||"",G=i.get("framework")||"",H=i.get("expandTaskId"),[I,J]=(0,e.useState)([]),[K,L]=(0,e.useState)(!0),[M,N]=(0,e.useState)({}),[O,P]=(0,e.useState)("all"),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)(""),[U,V]=(0,e.useState)(null),[W,X]=(0,e.useState)(null),[Y,Z]=(0,e.useState)(""),[$,_]=(0,e.useState)(null),[aa,ab]=(0,e.useState)(null),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)("all"),[ag,ah]=(0,e.useState)("type"),[ai,aj]=(0,e.useState)(null),[ak,al]=(0,e.useState)(!0),[am,an]=(0,e.useState)(!0),[ao,ap]=(0,e.useState)(!0);(0,e.useEffect)(()=>{let a=ai?ai.task_id||ai.upload_id||`temp-${ai.timestamp}`:null;if(!a||M[a])return;let b=[a];/^ses_/.test(a)&&/-\d+$/.test(a)&&b.push(a.replace(/-\d+$/,""));let c=a=>(0,f.apiFetch)(`/api/session?taskId=${encodeURIComponent(a)}`).then(a=>a.ok?a.json():{error:"Error"}).then(a=>{if(a&&!a.error)return a;throw Error(a?.error||"Error")});(async()=>{for(let d of b)try{let b=await c(d);N(c=>({...c,[a]:b}));return}catch{}N(b=>({...b,[a]:{error:"Fetch failed"}}))})()},[ai]),(0,e.useEffect)(()=>{let a=new URLSearchParams;w&&a.append("user",w),F&&a.append("query",F),G&&a.append("framework",G),H&&a.append("taskId",H),(0,f.apiFetch)("/api/data?"+a.toString(),{cache:"no-store"}).then(a=>a.json()).then(a=>{let b=F,c=G;if(!b&&H){let d=a.find(a=>a.task_id===H||a.upload_id===H);d&&(b=d.query,c||(c=d.framework),aj(d))}else if(H){let b=a.find(a=>a.task_id===H||a.upload_id===H);b&&aj(b)}let d=a.filter(a=>a.query===b&&(!c||a.framework===c)).map(a=>({...a,tokens:Number(a.tokens||a.Token||0),latency:Number(a.latency||0),answer_score:void 0!==a.answer_score?Number(a.answer_score):+!!a.is_answer_correct}));d.sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()),J(d),L(!1)})},[F,G,H,w]);let[aq,ar]=(0,e.useState)(new Set),[as,at]=(0,e.useState)(new Set),[au,av]=(0,e.useState)(!1),[aw,ax]=(0,e.useState)(!1),[ay,az]=(0,e.useState)("label"),aA="__no_label__",aB=(0,e.useMemo)(()=>{let a=new Set,b=!1;I.forEach(c=>{c.label?a.add(c.label):b=!0});let c=Array.from(a).sort();return b&&c.unshift(aA),c},[I]),aC=(0,e.useMemo)(()=>{let a=new Set,b=!1;I.forEach(c=>{c.model?a.add(c.model):b=!0});let c=Array.from(a).sort();return b&&c.unshift(aA),c},[I]),aD=(0,e.useMemo)(()=>{let a=I;if("all"!==O){let b=Date.now()-(({"1h":36e5,"12h":432e5,"24h":864e5})[O]||0);a=a.filter(a=>new Date(a.timestamp).getTime()>b)}aq.size>0&&(a=a.filter(a=>a.label?aq.has(a.label):aq.has(aA))),as.size>0&&(a=a.filter(a=>a.model?as.has(a.model):as.has(aA)));let b=new Map;for(let c of a){let a=c.task_id||c.upload_id||"";if(!a)continue;let d=b.get(a);if(!d){b.set(a,c);continue}let e=new Date(d.timestamp).getTime(),f=new Date(c.timestamp).getTime();if(f>e){b.set(a,c);continue}if(f===e){let e=String(d.final_result||"").length;String(c.final_result||"").length>e&&b.set(a,c)}}return Array.from(b.values())},[I,O,aq,as]),aE=(0,e.useMemo)(()=>{let a="label"===ay?"label":"model",b=[...new Set(aD.map(b=>b[a]).filter(a=>a))];return b.sort((a,b)=>{let c=a=>{let b=String(a).match(/(\d+)$/);return b?parseInt(b[0],10):null},d=c(String(a)),e=c(String(b));return null!==d&&null!==e?d-e:String(a).localeCompare(String(b))}),{latency:b.map(b=>{let c=aD.filter(c=>c[a]===b);return{name:b,latency:c.reduce((a,b)=>a+(b.latency||0),0)/c.length}}),tokens:b.map(b=>{let c=aD.filter(c=>c[a]===b);return{name:b,tokens:c.reduce((a,b)=>a+(b.tokens||0),0)/c.length}}),accuracy:b.map(b=>{let c=aD.filter(c=>c[a]===b);return{name:b,answer_score:c.reduce((a,b)=>a+(b.answer_score||0),0)/c.length}}),skillRecallRate:b.map(b=>{let c=aD.filter(c=>c[a]===b).filter(a=>null!==a.skill_recall_rate&&void 0!==a.skill_recall_rate),d=c.length,e=c.reduce((a,b)=>a+(b.skill_recall_rate||0),0);return{name:b,skill_recall_rate:d>0?e/d:0}}),contextWindow:b.map(b=>{let c=aD.filter(c=>c[a]===b&&null!=c.context_window_pct);return{name:b,context_window_pct:c.length>0?c.reduce((a,b)=>a+(b.context_window_pct||0),0)/c.length:void 0}}).filter(a=>null!=a.context_window_pct)}},[aD,ay]),aF=(0,e.useMemo)(()=>{if(0===aD.length)return[];let a=[...aD].sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()).filter(a=>null!=a.cost);if(0===a.length)return[];let b=[],c=0,d=0;return a.forEach((a,e)=>{c+=a.cost||0,a.is_answer_correct&&d++;let f=e+1,g=c/f,h=d/f,i=h>0?g/h:null;null!==i&&b.push({timestamp:a.timestamp,cpsr:i,avgCost:g,successRate:h,totalRuns:f})}),b},[aD]),aG=async(a,b)=>{let d=S.trim();if(d){V({id:a,status:"saving"});try{let e=await (0,f.apiFetch)("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:a,upload_id:b||void 0,query:d})}),g=await e.json();if(!e.ok)return void V({id:a,status:"error",msg:g.error||"保存失败"});let h=(g.record?.judgment_reason||"").includes("未找到匹配的评测配置")?"已保存,但未找到匹配的评测配置,Score 已归零。请在「数据集管理」中为该 query 添加完全一致的条目。":g.message||"已保存";if(V({id:a,status:"ok",msg:h}),R(null),T(""),d!==F){let b=new URLSearchParams;b.set("query",d),G&&b.set("framework",G),b.set("expandTaskId",a),c.push(`/details?${b.toString()}`)}else{let a=w?`/api/data?user=${encodeURIComponent(w)}`:"/api/data",b=await (0,f.apiFetch)(a),c=(await b.json()).filter(a=>a.query===F&&(!G||a.framework===G)).map(a=>({...a,tokens:Number(a.tokens||a.Token||0),latency:Number(a.latency||0),answer_score:void 0!==a.answer_score?Number(a.answer_score):+!!a.is_answer_correct}));c.sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()),J(c)}}catch(b){V({id:a,status:"error",msg:"网络错误"})}}},aH=async(a,b)=>{let c=Y.trim();if(c){_({id:a,status:"saving"});try{let d=await (0,f.apiFetch)("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:a,upload_id:b||void 0,final_result:c})}),e=await d.json();if(!d.ok)return void _({id:a,status:"error",msg:e.error||"保存失败"});let g=e.message||"已保存,正在后台重新评估";_({id:a,status:"ok",msg:g}),X(null),Z("");try{J(b=>b.map(b=>(b.task_id||b.upload_id)===a?{...b,final_result:c,judgment_reason:"结果评估中..."}:b))}catch(a){console.error("Error updating local data:",a)}}catch(b){_({id:a,status:"error",msg:"网络错误"})}}},aI=async a=>{let b=a.target.files?.[0];if(!b)return;let c=new FormData;c.append("document",b);try{let a=await (0,f.apiFetch)("/api/parse-document",{method:"POST",body:c}),b=await a.json();a.ok?Z(b.content||""):alert("解析文档失败: "+(b.error||"Unknown error"))}catch(a){alert("解析文档异常: "+a.message)}},aJ=a=>new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),aK=a=>{if(!a)return"-";let b=new Date(a);return b.getFullYear()+"/"+String(b.getMonth()+1).padStart(2,"0")+"/"+String(b.getDate()).padStart(2,"0")+" "+String(b.getHours()).padStart(2,"0")+":"+String(b.getMinutes()).padStart(2,"0")+":"+String(b.getSeconds()).padStart(2,"0")},aL=a=>{if(!a&&0!==a)return"-";let b=new Date(a);return b.getFullYear()+"/"+String(b.getMonth()+1).padStart(2,"0")+"/"+String(b.getDate()).padStart(2,"0")+" "+String(b.getHours()).padStart(2,"0")+":"+String(b.getMinutes()).padStart(2,"0")+":"+String(b.getSeconds()).padStart(2,"0")+"."+String(b.getMilliseconds()).padStart(3,"0")};if(K)return(0,b.jsx)("div",{style:{padding:"2rem",color:E.fg},children:"Loading..."});if(!H)return(0,b.jsx)("div",{style:{minHeight:"100vh",background:E.bg,color:E.fg,padding:"2rem"},children:(0,b.jsxs)("div",{style:{maxWidth:"600px",margin:"4rem auto",textAlign:"center",background:E.bgSecondary,border:`1px solid ${E.border}`,borderRadius:"8px",padding:"3rem"},children:[(0,b.jsx)("div",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"⚠️"}),(0,b.jsx)("h2",{style:{color:E.warning,marginBottom:"1rem"},children:"缺少必要参数"}),(0,b.jsxs)("p",{style:{color:E.fgSecondary,marginBottom:"1.5rem"},children:["请通过 ",(0,b.jsx)("code",{style:{background:E.bgTertiary,padding:"2px 8px",borderRadius:"4px"},children:"expandTaskId"})," 参数访问此页面"]}),(0,b.jsx)("button",{onClick:()=>c.push("/"),style:{padding:"10px 24px",background:E.primary,color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:"bold",cursor:"pointer"},children:"返回首页"})]})});if(!ai)return(0,b.jsx)("div",{style:{minHeight:"100vh",background:E.bg,color:E.fg,padding:"2rem"},children:(0,b.jsxs)("div",{style:{maxWidth:"600px",margin:"4rem auto",textAlign:"center",background:E.bgSecondary,border:`1px solid ${E.border}`,borderRadius:"8px",padding:"3rem"},children:[(0,b.jsx)("div",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"🔍"}),(0,b.jsx)("h2",{style:{color:E.error,marginBottom:"1rem"},children:"未找到记录"}),(0,b.jsxs)("p",{style:{color:E.fgSecondary,marginBottom:"1.5rem"},children:["未找到 ID 为 ",(0,b.jsx)("code",{style:{background:E.bgTertiary,padding:"2px 8px",borderRadius:"4px"},children:H})," 的记录"]}),(0,b.jsx)("button",{onClick:()=>c.push("/"),style:{padding:"10px 24px",background:E.primary,color:"#ffffff",border:"none",borderRadius:"6px",fontWeight:"bold",cursor:"pointer"},children:"返回首页"})]})});let aM=ai.task_id||ai.upload_id||`temp-${ai.timestamp}`,aN=M[aM];return(0,b.jsxs)("div",{style:{minHeight:"100vh",background:"var(--background)",color:"var(--foreground)",padding:"2rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem",borderBottom:"1px solid var(--border)",paddingBottom:"0.5rem"},children:[(0,b.jsxs)("h1",{style:{fontSize:"1.5rem",margin:0,display:"flex",alignItems:"center",gap:"8px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:F,children:[(0,b.jsx)("span",{id:"home-link",style:{flexShrink:0,cursor:"pointer",color:"var(--primary)",transition:"color 0.2s"},onClick:()=>c.push("/"),onMouseOver:a=>a.currentTarget.style.color="var(--primary-hover)",onMouseOut:a=>a.currentTarget.style.color="var(--primary)",children:"Skill-insight"}),(0,b.jsx)("span",{style:{flexShrink:0,color:"var(--border-dark)"},children:"|"}),(0,b.jsx)("span",{style:{color:"var(--foreground-secondary)",overflow:"hidden",textOverflow:"ellipsis"},children:F})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("button",{className:"theme-toggle-btn",onClick:C,title:D?"切换到浅色主题":"切换到深色主题",children:D?"☀️":"🌙"}),(0,b.jsxs)("button",{className:"export-btn",onClick:()=>{let a=document.documentElement.cloneNode(!0);a.querySelectorAll("script").forEach(a=>a.remove()),a.querySelectorAll(".export-btn").forEach(a=>a.remove());let b=`
|
|
2
2
|
<script>
|
|
3
3
|
(function() {
|
|
4
4
|
const TS_MAP = {
|
|
@@ -47,11 +47,11 @@ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
|
|
|
47
47
|
document.querySelectorAll('.filter-time-btn').forEach(btn => {
|
|
48
48
|
btn.onclick = () => {
|
|
49
49
|
document.querySelectorAll('.filter-time-btn').forEach(b => {
|
|
50
|
-
b.style.background = '#
|
|
51
|
-
b.style.color = '#
|
|
50
|
+
b.style.background = isDark ? '#18181b' : '#f4f4f5';
|
|
51
|
+
b.style.color = isDark ? '#71717a' : '#a1a1aa';
|
|
52
52
|
});
|
|
53
|
-
btn.style.background = '#
|
|
54
|
-
btn.style.color = '#
|
|
53
|
+
btn.style.background = isDark ? '#3b82f6' : '#2563eb';
|
|
54
|
+
btn.style.color = isDark ? '#fafafa' : '#ffffff';
|
|
55
55
|
|
|
56
56
|
state.timeFilter = btn.getAttribute('data-tf');
|
|
57
57
|
updateVisibility();
|
|
@@ -76,7 +76,7 @@ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
|
|
|
76
76
|
else state.selectedLabels.delete(val);
|
|
77
77
|
|
|
78
78
|
if (labelTextObj) {
|
|
79
|
-
labelTextObj.innerText = state.selectedLabels.size === 0 ? '
|
|
79
|
+
labelTextObj.innerText = state.selectedLabels.size === 0 ? '全部筛选' : \`已选 \${state.selectedLabels.size} 个\`;
|
|
80
80
|
}
|
|
81
81
|
updateVisibility();
|
|
82
82
|
};
|
|
@@ -98,14 +98,14 @@ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
|
|
|
98
98
|
homeLink.onclick = () => {
|
|
99
99
|
window.location.href = '/';
|
|
100
100
|
};
|
|
101
|
-
homeLink.onmouseover = () => { homeLink.style.color = '#
|
|
102
|
-
homeLink.onmouseout = () => { homeLink.style.color = '#
|
|
101
|
+
homeLink.onmouseover = () => { homeLink.style.color = isDark ? '#93c5fd' : '#2563eb'; };
|
|
102
|
+
homeLink.onmouseout = () => { homeLink.style.color = isDark ? '#60a5fa' : '#2563eb'; };
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
console.log('Offline Mode: Charts are static snapshots.');
|
|
106
106
|
})();
|
|
107
107
|
</script>
|
|
108
108
|
`,c=new Blob([`<!DOCTYPE html>
|
|
109
|
-
${a.outerHTML}${b}`],{type:"text/html"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`detail_export_${E||"all"}_${new Date().toISOString().slice(0,10)}.html`,document.body.appendChild(e),e.click(),document.body.removeChild(e),URL.revokeObjectURL(d)},style:{padding:"8px 16px",background:"var(--primary)",color:"#ffffff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("span",{children:"📤"})," 导出"]})]})]}),(0,b.jsxs)("div",{style:{marginBottom:"2rem",color:"var(--foreground-secondary)"},children:["框架: ",(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:F||"All"})," | 任务 ID: ",(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:aL})]}),(0,b.jsxs)("div",{style:{background:"linear-gradient(135deg, var(--background-secondary) 0%, var(--background) 100%)",border:"2px solid var(--primary)",borderRadius:"12px",padding:"2rem",marginBottom:"2rem",boxShadow:"0 0 20px var(--shadow-color)"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:aj?"1.5rem":"0"},children:[(0,b.jsxs)("h2",{style:{fontSize:"1.5rem",margin:0,color:"var(--primary)",display:"flex",alignItems:"center",gap:"8px"},children:["📋 本次执行记录详情",(0,b.jsx)("span",{style:{fontSize:"0.85rem",background:"var(--primary)",color:"#ffffff",padding:"2px 12px",borderRadius:"999px",fontWeight:"bold"},children:aJ(ah.timestamp)})]}),(0,b.jsx)("button",{onClick:()=>ak(!aj),style:{background:"transparent",border:"1px solid var(--primary)",color:"var(--primary)",padding:"4px 12px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem"},children:aj?"▼ 折叠":"▶ 展开"})]}),aj&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:{background:"var(--background)",border:"1px solid var(--border)",borderRadius:"8px",padding:"1.5rem",marginBottom:"1.5rem"},children:[(0,b.jsx)("h3",{style:{fontSize:"1.2rem",marginBottom:"1rem",color:"var(--warning)",borderBottom:"1px solid var(--border)",paddingBottom:"0.5rem"},children:"📊 原始采集数据"}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem",marginBottom:"1.5rem",minHeight:"400px"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"1.5rem"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:A,children:"用户输入"}),P===aL?(0,b.jsxs)("div",{children:[(0,b.jsx)("textarea",{value:R,onChange:a=>S(a.target.value),rows:3,style:{width:"100%",padding:"0.75rem",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"monospace",fontSize:"0.9rem",resize:"vertical"},placeholder:"输入 query"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("button",{onClick:()=>aF(aL,ah.upload_id),disabled:T?.id===aL&&T?.status==="saving",style:{padding:"6px 14px",background:"var(--primary)",color:"#ffffff",border:"none",borderRadius:"4px",cursor:T?.id===aL&&T?.status==="saving"?"not-allowed":"pointer",fontWeight:"bold"},children:T?.id===aL&&T?.status==="saving"?"保存中...":"保存"}),(0,b.jsx)("button",{onClick:()=>{Q(null),S(""),U(null)},style:{padding:"6px 14px",background:"var(--border)",color:"var(--foreground-secondary)",border:"none",borderRadius:"4px",cursor:"pointer"},children:"取消"}),T?.id===aL&&T?.status==="ok"&&(0,b.jsx)("span",{style:{color:"var(--success)",fontSize:"0.9rem"},children:T.msg}),T?.id===aL&&T?.status==="error"&&(0,b.jsx)("span",{style:{color:"var(--error)",fontSize:"0.9rem"},children:T.msg})]})]}):(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.5rem"},children:[(0,b.jsx)("div",{style:B,children:ah.query||"(空)"}),(0,b.jsx)("button",{onClick:a=>{var b;a.stopPropagation(),b=ah.query||"",Q(aL),S(b||""),U(null)},style:{padding:"4px 10px",background:"transparent",color:"var(--primary)",border:"1px solid var(--primary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",fontSize:"0.8rem",whiteSpace:"nowrap"},children:"✏️ 编辑"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:A,children:"使用 Skills"}),(0,b.jsx)("div",{style:{...B,padding:"0.5rem"},children:(0,b.jsx)(i.SkillLinks,{skills:ah.skills,skill:ah.skill,skillVersion:ah.skill_version,user:ah.user})})]}),(null!=ah.llm_call_count||null!=ah.tool_call_count||null!=ah.input_tokens||null!=ah.output_tokens||null!=ah.tool_call_error_count)&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:A,children:"运行时指标"}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(120px, 1fr))",gap:"0.75rem",marginTop:"0.5rem"},children:[{label:"大模型调用次数",value:ah.llm_call_count,color:"var(--primary)"},{label:"工具调用次数",value:ah.tool_call_count,color:"var(--primary)"},{label:"工具报错次数",value:ah.tool_call_error_count??0,color:ah.tool_call_error_count?"var(--error)":"var(--success)"},{label:"输入 Tokens",value:ah.input_tokens,color:"var(--primary)"},{label:"输出 Tokens",value:ah.output_tokens,color:"var(--primary)"},{label:"上下文窗口 %",value:ah.context_window_pct,color:null!=ah.context_window_pct?ah.context_window_pct>90?"var(--error)":"var(--success)":"var(--primary)",format:a=>`${a.toFixed(1)}%`,fallback:null==ah.context_window_pct&&null!=ah.max_single_call_tokens?"N/A":void 0,tooltip:null!=ah.context_window_pct?`max_single_call_tokens (${ah.max_single_call_tokens?.toLocaleString()}) / context_window_limit (${ah.context_window_limit?.toLocaleString()}) \xd7 100`+(ah.model?` (${ah.model})`:"")+`. Source: ${ah.context_window_source||"default"}.`:ah.model?`此模型未配置: ${ah.model}.`:"Model unknown. Context window % cannot be calculated."},{label:"预估成本",value:ah.cost,color:"var(--primary)",format:a=>`$${0===a?"0.00":a<.01?a.toFixed(4):a<1?a.toFixed(3):a.toFixed(2)}`,fallback:null==ah.cost&&null!=ah.input_tokens?"N/A":void 0,tooltip:ah.cost_pricing?(ah.cache_read_input_tokens||ah.cache_creation_input_tokens?`Cost = base_input \xd7 $${ah.cost_pricing.inputTokenPrice}/M + cache_read \xd7 $${ah.cost_pricing.cacheReadInputTokenPrice}/M + cache_create \xd7 $${ah.cost_pricing.cacheCreationInputTokenPrice}/M + output \xd7 $${ah.cost_pricing.outputTokenPrice}/M`:`Cost = input_tokens \xd7 $${ah.cost_pricing.inputTokenPrice}/M + output_tokens \xd7 $${ah.cost_pricing.outputTokenPrice}/M`)+(ah.model?` (${ah.model})`:"")+`. Estimated from ${"custom"===ah.cost_pricing.source?"custom":"default"} pricing.`:ah.model?`Pricing not available for model: ${ah.model}.`:"Model unknown. Cost cannot be estimated."}].map((a,c)=>(0,b.jsxs)("div",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:"6px",padding:"0.75rem",textAlign:"center"},children:[(0,b.jsx)("div",{style:{fontSize:"1.3rem",fontWeight:"bold",color:a.color},children:null!=a.value?"format"in a&&a.format?a.format(a.value):a.value.toLocaleString():"fallback"in a&&a.fallback?a.fallback:"-"}),(0,b.jsxs)("div",{style:{fontSize:"0.75rem",color:"var(--foreground-muted)",marginTop:"4px"},children:[a.label,"tooltip"in a&&a.tooltip&&(0,b.jsx)(u,{content:a.tooltip})]})]},c))})]})]}),(0,b.jsx)("div",{style:{position:"relative"},children:(0,b.jsxs)("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column"},children:[(0,b.jsx)("h4",{style:{...A,marginBottom:"0.5rem"},children:"最终结果"}),V===aL?(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0},children:[(0,b.jsx)("textarea",{value:X,onChange:a=>Y(a.target.value),style:{flex:1,width:"100%",padding:"0.75rem",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"monospace",fontSize:"0.9rem",resize:"none",marginBottom:"0.5rem"},placeholder:"输入或上传 最终结果"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center",flexShrink:0},children:[(0,b.jsx)("button",{onClick:()=>aG(aL,ah.upload_id),disabled:Z?.id===aL&&Z?.status==="saving",style:{padding:"6px 14px",background:"var(--primary)",color:"#ffffff",border:"none",borderRadius:"4px",cursor:Z?.id===aL&&Z?.status==="saving"?"not-allowed":"pointer",fontWeight:"bold"},children:Z?.id===aL&&Z?.status==="saving"?"保存中...":"保存并重评"}),(0,b.jsx)("button",{onClick:()=>{W(null),Y(""),$(null)},style:{padding:"6px 14px",background:"var(--border)",color:"var(--foreground-secondary)",border:"none",borderRadius:"4px",cursor:"pointer"},children:"取消"}),(0,b.jsxs)("label",{style:{padding:"6px 14px",background:"var(--background-secondary)",color:"var(--warning)",border:"1px solid var(--warning)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",fontSize:"0.85rem"},children:["📄 上传报告",(0,b.jsx)("input",{type:"file",accept:".md,.txt,.pdf,.markdown",style:{display:"none"},onChange:aH})]}),Z?.id===aL&&Z?.status==="ok"&&(0,b.jsx)("span",{style:{color:"var(--success)",fontSize:"0.9rem"},children:Z.msg}),Z?.id===aL&&Z?.status==="error"&&(0,b.jsx)("span",{style:{color:"var(--error)",fontSize:"0.9rem"},children:Z.msg})]})]}):(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0},children:[(0,b.jsx)("div",{style:{...B,flex:1,overflowY:"auto",padding:"1rem"},children:ah.final_result||"(No Result)"}),(0,b.jsx)("div",{style:{marginTop:"0.5rem",flexShrink:0},children:(0,b.jsx)("button",{onClick:a=>{var b;a.stopPropagation(),b=ah.final_result||"",W(aL),Y(b||""),$(null)},style:{padding:"4px 10px",background:"transparent",color:"var(--primary)",border:"1px solid var(--primary)",borderRadius:"4px",cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"0.8rem"},children:"✏️ 编辑 / 替换结果"})})]})]})})]}),aM?aM.error?(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontStyle:"italic"},children:aM.error}):(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"2rem"},children:[(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"flex-start",alignItems:"center",gap:"8px",marginBottom:"0.5rem",borderBottom:"1px solid var(--border)",paddingBottom:"4px",minHeight:"34px"},children:[(0,b.jsx)("button",{onClick:()=>am(!al),style:{background:"transparent",border:"none",color:"var(--primary)",cursor:"pointer",padding:0},children:al?"▼":"▶"}),(0,b.jsx)("h4",{style:A,children:"会话数据(原始JSON)"})]}),al&&(0,b.jsx)("div",{style:{background:"var(--code-block-bg)",padding:"1rem",borderRadius:"8px",overflowY:"auto",maxHeight:"600px",border:"1px solid var(--border)"},children:(0,b.jsx)(t,{src:(a=>{if(!a)return a;let b=JSON.parse(JSON.stringify(a));return b.startTime&&(b.startTime=aK(b.startTime)),Array.isArray(b.interactions)&&(b.interactions=b.interactions.map(a=>{let b={...a};return b.timestamp&&(b.timestamp=aK(b.timestamp)),b.message?.timestamp&&(b.message.timestamp=aK(b.message.timestamp)),b.timeInfo?.created&&(b.timeInfo.created=aK(b.timeInfo.created)),b})),b})(aM),theme:D?"monokai":"rjv-default",shouldCollapse:a=>{let b=[...a.namespace||[],a.name].filter(a=>null!=a&&""!==String(a).trim()).map(String);if(null===_)return"interactions"===b[0]&&!!(b.length>=2);if("interactions"===b[0]){let a=b[1];if(void 0!==a){let b=Number(a);if(!isNaN(b)&&b!==_)return!0}}return!1},displayDataTypes:!1,name:null,style:{backgroundColor:"transparent",fontSize:"0.85rem"},enableClipboard:!0},`json-${null!==_?_:"default"}`)})]}),(0,b.jsx)("div",{style:{minWidth:0},children:(0,b.jsx)(v,{interactions:aM.interactions,focusedStep:_,onStepClick:aa})})]}):(0,b.jsx)("div",{style:{color:"var(--primary)"},children:"Loading session log..."})]}),(0,b.jsxs)("div",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:"8px",padding:"1.5rem",marginTop:"1.5rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:an?"1rem":"0",borderBottom:an?"1px solid var(--border)":"none",paddingBottom:an?"0.5rem":"0"},children:[(0,b.jsx)("h3",{style:{fontSize:"1.2rem",margin:0,color:"var(--secondary)"},children:"🔍 分析结果"}),(0,b.jsx)("button",{onClick:()=>ao(!an),style:{background:"transparent",border:"1px solid var(--secondary)",color:"var(--secondary)",padding:"4px 12px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem"},children:an?"▼ 折叠":"▶ 展开"})]}),an&&(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2rem",marginBottom:"2rem"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:{...A,marginBottom:"1rem"},children:"评分详情与分析"}),0===(a=function(a){let b=[];if(!a)return b;let c=a.split("\n"),d={rc:0,ka:0};for(let a of c){let c=a.match(/\*\*Root Cause\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(c){b.push({id:`RC-${d.rc++}`,type:"root_cause",content:c[1].replace(/\.{3}$/,""),match_score:parseInt(c[2])/100,explanation:c[3].trim(),weight:parseFloat(c[4])});continue}let e=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);e&&b.push({id:`KA-${d.ka++}`,type:"key_action",content:e[1].replace(/\.{3}$/,""),match_score:parseInt(e[2])/100,explanation:e[3].trim(),weight:parseFloat(e[4])})}return b}(ah.judgment_reason||"")).length?(0,b.jsx)("div",{style:{...B,background:"var(--code-block-bg)",padding:"1rem",borderRadius:"6px",border:"1px solid var(--border)"},children:ah.judgment_reason||"-"}):(0,b.jsx)("div",{style:{background:"var(--card-bg)",borderRadius:"6px",border:"1px solid var(--border)",overflowX:"visible"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"0.85rem",minWidth:"950px"},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"var(--background-secondary)"},children:[(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"60px",whiteSpace:"nowrap"},children:"ID"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"180px"},children:"评分标准"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"60px",whiteSpace:"nowrap"},children:"得分"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"50px",whiteSpace:"nowrap"},children:"权重"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"60px",whiteSpace:"nowrap"},children:"扣分"}),(0,b.jsxs)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"50px",whiteSpace:"nowrap"},children:["关联",(0,b.jsx)(u,{content:"表示扣分来源。若与skill相关,则体现在“分析依据”和“改进建议”"})]}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"150px"},children:"扣分原因"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"150px"},children:"分析依据"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"150px"},children:"改进建议"})]})}),(0,b.jsx)("tbody",{children:a.map((a,c)=>{let d=ah.skill_issues?.find(b=>{if(b.id===a.id)return!0;let c=(b.content||"").trim().toLowerCase(),d=(a.content||"").trim().toLowerCase();return c&&d&&(c===d||d.includes(c))}),e=(1-a.match_score)*a.weight;return(0,b.jsxs)("tr",{id:`eval-item-${aL}-${a.id}`,style:{background:c%2==0?"var(--card-bg)":"var(--background-secondary)",transition:"background 0.2s"},onMouseEnter:a=>{a.currentTarget.style.background="rgba(56, 189, 248, 0.05)"},onMouseLeave:a=>{a.currentTarget.style.background=c%2==0?"var(--card-bg)":"var(--background-secondary)"},children:[(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:(0,b.jsx)("span",{style:{background:"root_cause"===a.type?"#f472b6":"#38bdf8",color:"#0f172a",padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold",whiteSpace:"nowrap"},children:a.id})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--foreground)"},children:(0,b.jsx)("div",{style:{fontWeight:500,marginBottom:"4px",wordBreak:"break-word"},children:d?.content||a.content})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:(0,b.jsxs)("span",{style:{color:a.match_score>=1?"#4ade80":a.match_score>=.5?"#fbbf24":"#f87171",fontWeight:"bold",whiteSpace:"nowrap"},children:[(100*a.match_score).toFixed(0),"%"]})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center",color:"var(--foreground-secondary)"},children:a.weight.toFixed(1)}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:(0,b.jsxs)("span",{style:{color:e>0?"#f87171":"#4ade80",fontWeight:"bold",whiteSpace:"nowrap"},children:["-",e.toFixed(2)]})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:d&&(0,b.jsx)("span",{style:{background:"#ef4444",color:"#fff",padding:"2px 6px",borderRadius:"4px",fontSize:"0.7rem",whiteSpace:"nowrap"},children:"Skill"})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--foreground)",fontSize:"0.85rem"},children:d?.explanation||a.explanation||"-"}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--warning)",fontSize:"0.85rem",fontStyle:"italic"},children:d?.reasoning||"-"}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--success)",fontSize:"0.85rem"},children:d?.improvement_suggestion?(0,b.jsx)("div",{style:{background:"rgba(74, 222, 128, 0.1)",padding:"4px 8px",borderRadius:"4px"},children:d.improvement_suggestion}):"-"})]},c)})})]})})]}),ah.failures&&ah.failures.length>0?(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.75rem"},children:[(0,b.jsx)("h4",{style:{...A,color:"#f87171",borderLeft:"3px solid #f87171",paddingLeft:"8px",borderBottom:"none",margin:0},children:" 执行异常 "}),(0,b.jsx)("div",{style:{display:"flex",gap:"8px"},children:(0,b.jsxs)("select",{value:ad,onChange:a=>ae(a.target.value),style:{background:"var(--input-bg)",border:"1px solid var(--input-border)",color:"var(--foreground)",borderRadius:"4px",padding:"4px 8px",fontSize:"0.8rem"},children:[(0,b.jsx)("option",{value:"all",children:"全部"}),(0,b.jsx)("option",{value:"failure",children:"失败"}),(0,b.jsx)("option",{value:"anomaly",children:"异常"})]})})]}),(0,b.jsx)("div",{style:{background:"var(--card-bg)",borderRadius:"6px",border:"1px solid var(--border)",overflow:"hidden"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"0.85rem"},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"var(--background-secondary)"},children:[(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"100px"},children:"类型"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"auto"},children:"描述"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"500px"},children:"恢复措施"})]})}),(0,b.jsx)("tbody",{children:ah.failures.filter(a=>{if("all"===ad)return!0;let b=a.failure_type.toLowerCase();return"failure"===ad?b.includes("fail")||b.includes("error"):"anomaly"!==ad||b.includes("anomaly")||b.includes("warn")}).map((a,c)=>(0,b.jsxs)("tr",{style:{background:c%2==0?"var(--card-bg)":"var(--background-secondary)"},children:[(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:(0,b.jsx)("span",{style:{background:a.failure_type.toLowerCase().includes("error")||a.failure_type.toLowerCase().includes("fail")?"#f87171":"#fbbf24",color:"#0f172a",padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold"},children:a.failure_type})}),(0,b.jsxs)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,b.jsx)("div",{style:{color:"#fca5a5",fontWeight:500,marginBottom:"4px"},children:a.description}),a.context&&(0,b.jsx)("div",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)",fontFamily:"monospace",background:"var(--code-block-bg)",padding:"6px 8px",borderRadius:"4px",marginTop:"4px",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:a.context})]}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid #334155",color:"#86efac",fontSize:"0.8rem"},children:a.recovery||"-"})]},c))})]})})]}):(0,b.jsx)("div",{style:{padding:"1rem",border:"1px dashed #334155",borderRadius:"6px",color:"#64748b",textAlign:"center",fontSize:"0.9rem",marginBottom:"1.5rem"},children:"No intermediate failures detected."}),(0,b.jsx)(g,{executionId:aL,skillId:ah.skill&&ah.skill.trim()||(Array.isArray(ah.skills)&&ah.skills.length>0?ah.skills[0]:void 0),user:ah.user,onStepClick:aa})]})]})]})]}),(0,b.jsxs)("div",{style:{marginBottom:"2rem",display:"flex",gap:"1rem",alignItems:"center",flexWrap:"wrap"},children:[["all","24h","12h","1h"].map(a=>(0,b.jsx)("button",{className:"filter-time-btn","data-tf":a,onClick:()=>O(a),style:{padding:"6px 16px",background:N===a?"#38bdf8":"#1e293b",color:N===a?"#0f172a":"#94a3b8",border:"1px solid #334155",borderRadius:"4px",cursor:"pointer"},children:a.toUpperCase()},a)),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.8rem",marginLeft:"1rem",borderLeft:"1px solid #334155",paddingLeft:"1rem"},children:[(0,b.jsx)("span",{style:{color:"#94a3b8",fontSize:"0.9rem"},children:"比较维度:"}),(0,b.jsxs)("div",{style:{display:"flex",background:"#1e293b",padding:"2px",borderRadius:"6px",border:"1px solid #334155"},children:[(0,b.jsx)("button",{onClick:()=>ay("label"),style:{padding:"4px 12px",borderRadius:"4px",fontSize:"0.85rem",background:"label"===ax?"#38bdf8":"transparent",color:"label"===ax?"#0f172a":"#94a3b8",border:"none",cursor:"pointer",transition:"all 0.2s",fontWeight:"label"===ax?"bold":"normal"},children:"标签 (Label)"}),(0,b.jsx)("button",{onClick:()=>ay("model"),style:{padding:"4px 12px",borderRadius:"4px",fontSize:"0.85rem",background:"model"===ax?"#38bdf8":"transparent",color:"model"===ax?"#0f172a":"#94a3b8",border:"none",cursor:"pointer",transition:"all 0.2s",fontWeight:"model"===ax?"bold":"normal"},children:"模型 (Model)"})]})]}),aA.length>0&&(0,b.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",gap:"0.5rem",marginLeft:"1rem",borderLeft:"1px solid #334155",paddingLeft:"1rem"},children:[(0,b.jsx)("span",{style:{color:"#94a3b8",fontSize:"0.9rem"},children:"Label:"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{id:"label-menu-trigger",onClick:()=>au(!at),style:{background:"#1e293b",color:"#f8fafc",border:"1px solid #334155",borderRadius:"4px",padding:"4px 12px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem",minWidth:"120px",justifyContent:"space-between"},children:[(0,b.jsx)("span",{id:"label-trigger-text",children:0===ap.size?"All Filter":`${ap.size} Selected`}),(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:"▼"})]}),(0,b.jsxs)("div",{id:"label-menu-dropdown",style:{display:at?"block":"none",position:"absolute",top:"100%",left:0,marginTop:"4px",background:"#1e293b",border:"1px solid #334155",borderRadius:"4px",padding:"0.5rem",zIndex:50,minWidth:"200px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.5)",flexDirection:"column",gap:"0.5rem",maxHeight:"300px",overflowY:"auto"},children:[(0,b.jsx)("div",{id:"filter-label-clear",onClick:()=>{aq(new Set),au(!1)},style:{cursor:"pointer",padding:"4px 8px",fontSize:"0.9rem",color:0===ap.size?"#38bdf8":"#94a3b8",borderBottom:"1px solid #334155",marginBottom:"4px"},children:"Show All (Clear Filter)"}),aA.map(a=>{let c=ap.has(a),d=a===az?"(None)":String(a),e=a===az?"__no_label__":String(a);return(0,b.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer",fontSize:"0.9rem",padding:"2px 8px"},children:[(0,b.jsx)("input",{type:"checkbox",className:"filter-label-checkbox",value:e,checked:c,onChange:()=>{let b=new Set(ap);b.has(a)?b.delete(a):b.add(a),aq(b)}}),(0,b.jsx)("span",{style:{color:c?"#fff":"#cbd5e1"},children:d})]},String(a))})]}),at&&(0,b.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:40},onClick:()=>au(!1)})]})]}),aB.length>0&&(0,b.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",gap:"0.5rem",marginLeft:"1rem",borderLeft:"1px solid #334155",paddingLeft:"1rem"},children:[(0,b.jsx)("span",{style:{color:"#94a3b8",fontSize:"0.9rem"},children:"Model:"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{onClick:()=>aw(!av),style:{background:"#1e293b",color:"#f8fafc",border:"1px solid #334155",borderRadius:"4px",padding:"4px 12px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem",minWidth:"120px",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:0===ar.size?"All Models":`${ar.size} Selected`}),(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:"▼"})]}),(0,b.jsxs)("div",{style:{display:av?"block":"none",position:"absolute",top:"100%",left:0,marginTop:"4px",background:"#1e293b",border:"1px solid #334155",borderRadius:"4px",padding:"0.5rem",zIndex:50,minWidth:"200px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.5)",flexDirection:"column",gap:"0.5rem",maxHeight:"300px",overflowY:"auto"},children:[(0,b.jsx)("div",{onClick:()=>{as(new Set),aw(!1)},style:{cursor:"pointer",padding:"4px 8px",fontSize:"0.9rem",color:0===ar.size?"#38bdf8":"#94a3b8",borderBottom:"1px solid #334155",marginBottom:"4px"},children:"Show All (Clear Filter)"}),aB.map(a=>{let c=ar.has(a),d=a===az?"(None)":String(a);return(0,b.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer",fontSize:"0.9rem",padding:"2px 8px"},children:[(0,b.jsx)("input",{type:"checkbox",checked:c,onChange:()=>{let b=new Set(ar);b.has(a)?b.delete(a):b.add(a),as(b)}}),(0,b.jsx)("span",{style:{color:c?"#fff":"#cbd5e1"},children:d})]},String(a))})]}),av&&(0,b.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:40},onClick:()=>aw(!1)})]})]})]}),aC.some(a=>null!=a.context_window_pct)&&(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("button",{onClick:()=>ac(!ab),style:{background:"transparent",border:"1px solid var(--border)",color:"var(--foreground-secondary)",padding:"6px 14px",borderRadius:"4px",cursor:"pointer",fontSize:"0.9rem",display:"flex",alignItems:"center",gap:"6px",marginBottom:"0.5rem"},children:[(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:ab?"▲":"▼"}),"上下文窗口利用率趋势 (%)"]}),ab&&(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["上下文窗口利用率趋势 (%)",(0,b.jsx)(u,{content:"单次 LLM 调用中最大 token 数 / 模型上下文窗口限制 × 100。超过 90% 时推理质量可能下降。"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aC.filter(a=>null!=a.context_window_pct),children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aI,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,domain:[0,100]}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),(0,b.jsx)(r,{y:90,stroke:"var(--error)",strokeDasharray:"4 4",label:{value:"90%",fill:"var(--error)",fontSize:11}}),ah&&null!=ah.context_window_pct&&(0,b.jsx)(r,{x:ah.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"context_window_pct",stroke:"#a78bfa",dot:!0,strokeWidth:2})]})})]})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:"1rem",marginBottom:"2rem"},children:[(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["时延趋势 (秒)",(0,b.jsx)(u,{content:"从请求发出到收到最终完整回复的总耗时"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aC,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aI,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ah&&(0,b.jsx)(r,{x:ah.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"latency",stroke:"#38bdf8",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["Token 消耗趋势",(0,b.jsx)(u,{content:"输入 Prompt 与输出 Completion 的 Token 总和"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aC,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aI,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ah&&(0,b.jsx)(r,{x:ah.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"tokens",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["准确率趋势 (0-1)",(0,b.jsx)(u,{content:"基于 AI 裁判 (LLM) 对执行结果的自动评分 (1.0=通过, 0.0=失败)"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aC,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aI,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ah&&(0,b.jsx)(r,{x:ah.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"answer_score",stroke:"#4ade80",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["技能召回率趋势",(0,b.jsx)(u,{content:"基于执行结果是否使用了预期技能计算出的值 (0-1),表示正确调用技能的比例"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aC,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aI,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ah&&(0,b.jsx)(r,{x:ah.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"skill_recall_rate",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),aE.length>0&&(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["CPSR 趋势",(0,b.jsx)(u,{content:"Cost Per Successful Resolution: Average cost per successful task resolution.\nFormula: (total cost) / (number of runs with successful resolutions)"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aE,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aI,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,tickFormatter:a=>`$${a.toFixed(3)}`}),(0,b.jsx)(q,{formatter:(a,b)=>"CPSR"===b?[`$${a?.toFixed(4)||"N/A"}`,"CPSR"]:[a,String(b)],contentStyle:{backgroundColor:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ah&&null!=ah.cost&&(0,b.jsx)(r,{x:ah.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"cpsr",name:"CPSR",stroke:"#a78bfa",strokeWidth:2,dot:!0})]})})]})]}),aD.latency.length>0&&(0,b.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,b.jsxs)("h2",{style:{fontSize:"1.25rem",marginBottom:"1rem"},children:["按 ","label"===ax?"标签 (Label)":"模型 (Model)"," 对比 (平均值)"]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["平均时延 - ","label"===ax?"标签":"模型",(0,b.jsx)(u,{content:"平均延迟时间"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD.latency,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"latency",stroke:"#38bdf8",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["平均 Token - ","label"===ax?"标签":"模型",(0,b.jsx)(u,{content:"平均 Token 使用量"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD.tokens,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"tokens",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["平均准确率 - ","label"===ax?"标签":"模型",(0,b.jsx)(u,{content:"平均准确率 (0-1)"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD.accuracy,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"answer_score",stroke:"#4ade80",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["技能召回率 - ","label"===ax?"标签":"模型",(0,b.jsx)(u,{content:"基于执行结果是否使用了预期技能计算出的值 (0-1),表示正确调用技能的比例"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD.skillRecallRate,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"skill_recall_rate",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]})]})]}),(0,b.jsxs)("div",{className:"list-container",children:[(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsx)("h2",{style:{fontSize:"1.25rem",marginBottom:"0.5rem"},children:"同问题执行记录"}),(0,b.jsx)("p",{style:{fontSize:"0.9rem",color:"#94a3b8"},children:"点击记录可查看详细信息"})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr 1fr 1fr",padding:"1rem",borderBottom:"1px solid #334155",color:"#94a3b8",fontSize:"0.9rem"},children:[(0,b.jsx)("div",{children:"时间 / ID"}),(0,b.jsx)("div",{children:"标签"}),(0,b.jsx)("div",{children:"时延"}),(0,b.jsx)("div",{children:"消耗"}),(0,b.jsx)("div",{children:"技能召回率"}),(0,b.jsx)("div",{children:"窗口%"}),(0,b.jsx)("div",{children:"评分"})]}),aC.slice().reverse().map(a=>{let c=a.task_id||a.upload_id||`temp-${a.timestamp}`,d=c===aL;return(0,b.jsx)("div",{className:"record-row","data-timestamp":new Date(a.timestamp).getTime(),"data-label":a.label||"__no_label__",style:{borderBottom:"1px solid #1e293b",background:d?"rgba(56, 189, 248, 0.15)":"#1e293b",marginBottom:"1px",cursor:"pointer",transition:"background 0.2s"},onClick:()=>{if(!d){let b=new URLSearchParams;b.set("query",a.query),a.framework&&b.set("framework",a.framework),b.set("expandTaskId",c),window.open(`/details?${b.toString()}`,"_blank")}},onMouseOver:a=>{d||(a.currentTarget.style.background="#334155")},onMouseOut:a=>{d||(a.currentTarget.style.background="#1e293b")},children:(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr 1fr 1fr",padding:"1rem",alignItems:"center"},children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{fontWeight:"bold",fontSize:"0.95rem",display:"flex",alignItems:"center",gap:"8px"},children:[aJ(a.timestamp),d&&(0,b.jsx)("span",{style:{background:"#38bdf8",color:"#0f172a",padding:"2px 8px",borderRadius:"4px",fontSize:"0.7rem",fontWeight:"bold"},children:"当前"})]}),(0,b.jsx)("div",{style:{fontSize:"0.8rem",color:"#64748b"},children:c})]}),(0,b.jsx)("div",{style:{fontSize:"0.9rem",color:"#cbd5e1"},children:a.label||"-"}),(0,b.jsx)("div",{children:a.latency?a.latency<1?(1e3*a.latency).toFixed(0)+"ms":a.latency.toFixed(2)+"s":"-"}),(0,b.jsx)("div",{children:a.tokens}),(0,b.jsx)("div",{style:{color:null!==a.skill_recall_rate&&void 0!==a.skill_recall_rate?1===a.skill_recall_rate?"#4ade80":a.skill_recall_rate>0?"#fbbf24":"#f87171":"#94a3b8",fontWeight:"bold"},children:null!==a.skill_recall_rate&&void 0!==a.skill_recall_rate?(100*a.skill_recall_rate).toFixed(0)+"%":"--"}),(0,b.jsx)("div",{style:{color:null!=a.context_window_pct?a.context_window_pct>90?"#f87171":"#4ade80":"#94a3b8"},children:null!=a.context_window_pct?`${a.context_window_pct.toFixed(1)}%`:"-"}),(0,b.jsx)("div",{style:{color:null===a.answer_score?"#94a3b8":(a.answer_score||0)>.8?"#4ade80":"#f87171"},children:null===a.answer_score?"--":a.answer_score?.toFixed(2)})]})},a.upload_id||c)})]})]})}let y={background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:"8px",padding:"1rem",display:"flex",flexDirection:"column"},z={margin:"0 0 1rem 0",fontSize:"0.9rem",color:"var(--foreground-secondary)",fontWeight:"normal"},A={color:"var(--primary)",margin:0,fontSize:"0.95rem"},B={fontFamily:"monospace",fontSize:"0.9rem",lineHeight:"1.5",whiteSpace:"pre-wrap",color:"var(--foreground)",background:"var(--code-block-bg)",padding:"0.75rem",borderRadius:"6px",border:"1px solid var(--border)"};a.s(["default",()=>w],87986)}];
|
|
109
|
+
${a.outerHTML}${b}`],{type:"text/html"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`detail_export_${F||"all"}_${new Date().toISOString().slice(0,10)}.html`,document.body.appendChild(e),e.click(),document.body.removeChild(e),URL.revokeObjectURL(d)},style:{padding:"8px 16px",background:"var(--primary)",color:"#ffffff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",display:"flex",alignItems:"center",gap:"8px"},children:[(0,b.jsx)("span",{children:"📤"})," 导出"]})]})]}),(0,b.jsxs)("div",{style:{marginBottom:"2rem",color:"var(--foreground-secondary)"},children:["框架: ",(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:G||"All"})," | 任务 ID: ",(0,b.jsx)("strong",{style:{color:"var(--foreground)"},children:aM})]}),(0,b.jsxs)("div",{style:{background:"linear-gradient(135deg, var(--background-secondary) 0%, var(--background) 100%)",border:"2px solid var(--primary)",borderRadius:"12px",padding:"2rem",marginBottom:"2rem",boxShadow:"0 0 20px var(--shadow-color)"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:ak?"1.5rem":"0"},children:[(0,b.jsxs)("h2",{style:{fontSize:"1.5rem",margin:0,color:"var(--primary)",display:"flex",alignItems:"center",gap:"8px"},children:["📋 本次执行记录详情",(0,b.jsx)("span",{style:{fontSize:"0.85rem",background:"var(--primary)",color:"#ffffff",padding:"2px 12px",borderRadius:"999px",fontWeight:"bold"},children:aK(ai.timestamp)})]}),(0,b.jsx)("button",{onClick:()=>al(!ak),style:{background:"transparent",border:"1px solid var(--primary)",color:"var(--primary)",padding:"4px 12px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem"},children:ak?"▼ 折叠":"▶ 展开"})]}),ak&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{style:{background:"var(--background)",border:"1px solid var(--border)",borderRadius:"8px",padding:"1.5rem",marginBottom:"1.5rem"},children:[(0,b.jsx)("h3",{style:{fontSize:"1.2rem",marginBottom:"1rem",color:"var(--warning)",borderBottom:"1px solid var(--border)",paddingBottom:"0.5rem"},children:"📊 原始采集数据"}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem",marginBottom:"1.5rem",minHeight:"400px"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"1.5rem"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:A,children:"用户输入"}),Q===aM?(0,b.jsxs)("div",{children:[(0,b.jsx)("textarea",{value:S,onChange:a=>T(a.target.value),rows:3,style:{width:"100%",padding:"0.75rem",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"monospace",fontSize:"0.9rem",resize:"vertical"},placeholder:"输入 query"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("button",{onClick:()=>aG(aM,ai.upload_id),disabled:U?.id===aM&&U?.status==="saving",style:{padding:"6px 14px",background:"var(--primary)",color:"#ffffff",border:"none",borderRadius:"4px",cursor:U?.id===aM&&U?.status==="saving"?"not-allowed":"pointer",fontWeight:"bold"},children:U?.id===aM&&U?.status==="saving"?"保存中...":"保存"}),(0,b.jsx)("button",{onClick:()=>{R(null),T(""),V(null)},style:{padding:"6px 14px",background:"var(--border)",color:"var(--foreground-secondary)",border:"none",borderRadius:"4px",cursor:"pointer"},children:"取消"}),U?.id===aM&&U?.status==="ok"&&(0,b.jsx)("span",{style:{color:"var(--success)",fontSize:"0.9rem"},children:U.msg}),U?.id===aM&&U?.status==="error"&&(0,b.jsx)("span",{style:{color:"var(--error)",fontSize:"0.9rem"},children:U.msg})]})]}):(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:[(0,b.jsx)("div",{style:B,children:ai.query||"(空)"}),(0,b.jsx)("button",{onClick:a=>{var b;a.stopPropagation(),b=ai.query||"",R(aM),T(b||""),V(null)},style:{padding:"4px 10px",background:"transparent",color:"var(--primary)",border:"1px solid var(--primary)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",fontSize:"0.8rem",whiteSpace:"nowrap",alignSelf:"flex-start"},children:"✏️ 编辑"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:A,children:"使用 Skills"}),(0,b.jsx)("div",{style:{...B,padding:"0.5rem"},children:(0,b.jsx)(j.SkillLinks,{skills:ai.skills,skill:ai.skill,skillVersion:ai.skill_version,user:ai.user})})]}),(null!=ai.llm_call_count||null!=ai.tool_call_count||null!=ai.input_tokens||null!=ai.output_tokens||null!=ai.tool_call_error_count)&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:A,children:"运行时指标"}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(120px, 1fr))",gap:"0.75rem",marginTop:"0.5rem"},children:[{label:"大模型调用次数",value:ai.llm_call_count,color:"var(--primary)"},{label:"工具调用次数",value:ai.tool_call_count,color:"var(--primary)"},{label:"工具报错次数",value:ai.tool_call_error_count??0,color:ai.tool_call_error_count?"var(--error)":"var(--success)"},{label:"输入 Tokens",value:ai.input_tokens,color:"var(--primary)"},{label:"输出 Tokens",value:ai.output_tokens,color:"var(--primary)",tooltip:ai.reasoning_tokens?`Reasoning: ${ai.reasoning_tokens.toLocaleString()}, Response: ${((ai.output_tokens||0)-ai.reasoning_tokens).toLocaleString()}`:void 0},{label:"上下文窗口 %",value:ai.context_window_pct,color:null!=ai.context_window_pct?ai.context_window_pct>90?"var(--error)":"var(--success)":"var(--primary)",format:a=>`${a.toFixed(1)}%`,fallback:null==ai.context_window_pct&&null!=ai.max_single_call_tokens?"N/A":void 0,tooltip:null!=ai.context_window_pct?`max_single_call_tokens (${ai.max_single_call_tokens?.toLocaleString()}) / context_window_limit (${ai.context_window_limit?.toLocaleString()}) \xd7 100`+(ai.model?` (${ai.model})`:"")+`. Source: ${ai.context_window_source||"default"}.`:ai.model?`此模型未配置: ${ai.model}.`:"Model unknown. Context window % cannot be calculated."},{label:"预估成本",value:ai.cost,color:"var(--primary)",format:a=>`$${0===a?"0.00":a<.01?a.toFixed(4):a<1?a.toFixed(3):a.toFixed(2)}`,fallback:null==ai.cost&&null!=ai.input_tokens?"N/A":void 0,tooltip:ai.cost_pricing?(ai.cache_read_input_tokens||ai.cache_creation_input_tokens?`Cost = base_input \xd7 $${ai.cost_pricing.inputTokenPrice}/M + cache_read \xd7 $${ai.cost_pricing.cacheReadInputTokenPrice}/M + cache_create \xd7 $${ai.cost_pricing.cacheCreationInputTokenPrice}/M + output \xd7 $${ai.cost_pricing.outputTokenPrice}/M`:`Cost = input_tokens \xd7 $${ai.cost_pricing.inputTokenPrice}/M + output_tokens \xd7 $${ai.cost_pricing.outputTokenPrice}/M`)+(ai.model?` (${ai.model})`:"")+`. Estimated from ${"custom"===ai.cost_pricing.source?"custom":"default"} pricing.`:ai.model?`Pricing not available for model: ${ai.model}.`:"Model unknown. Cost cannot be estimated."}].map((a,c)=>(0,b.jsxs)("div",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:"6px",padding:"0.75rem",textAlign:"center"},children:[(0,b.jsx)("div",{style:{fontSize:"1.3rem",fontWeight:"bold",color:a.color},children:null!=a.value?"format"in a&&a.format?a.format(a.value):a.value.toLocaleString():"fallback"in a&&a.fallback?a.fallback:"-"}),(0,b.jsxs)("div",{style:{fontSize:"0.75rem",color:"var(--foreground-muted)",marginTop:"4px"},children:[a.label,"tooltip"in a&&a.tooltip&&(0,b.jsx)(u,{content:a.tooltip})]})]},c))})]})]}),(0,b.jsx)("div",{style:{position:"relative"},children:(0,b.jsxs)("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column"},children:[(0,b.jsx)("h4",{style:{...A,marginBottom:"0.5rem"},children:"最终结果"}),W===aM?(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0},children:[(0,b.jsx)("textarea",{value:Y,onChange:a=>Z(a.target.value),style:{flex:1,width:"100%",padding:"0.75rem",background:"var(--input-bg)",border:"1px solid var(--input-border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"monospace",fontSize:"0.9rem",resize:"none",marginBottom:"0.5rem"},placeholder:"输入或上传 最终结果"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center",flexShrink:0},children:[(0,b.jsx)("button",{onClick:()=>aH(aM,ai.upload_id),disabled:$?.id===aM&&$?.status==="saving",style:{padding:"6px 14px",background:"var(--primary)",color:"#ffffff",border:"none",borderRadius:"4px",cursor:$?.id===aM&&$?.status==="saving"?"not-allowed":"pointer",fontWeight:"bold"},children:$?.id===aM&&$?.status==="saving"?"保存中...":"保存并重评"}),(0,b.jsx)("button",{onClick:()=>{X(null),Z(""),_(null)},style:{padding:"6px 14px",background:"var(--border)",color:"var(--foreground-secondary)",border:"none",borderRadius:"4px",cursor:"pointer"},children:"取消"}),(0,b.jsxs)("label",{style:{padding:"6px 14px",background:"var(--background-secondary)",color:"var(--warning)",border:"1px solid var(--warning)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",fontSize:"0.85rem"},children:["📄 上传报告",(0,b.jsx)("input",{type:"file",accept:".md,.txt,.pdf,.markdown",style:{display:"none"},onChange:aI})]}),$?.id===aM&&$?.status==="ok"&&(0,b.jsx)("span",{style:{color:"var(--success)",fontSize:"0.9rem"},children:$.msg}),$?.id===aM&&$?.status==="error"&&(0,b.jsx)("span",{style:{color:"var(--error)",fontSize:"0.9rem"},children:$.msg})]})]}):(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:1,minHeight:0},children:[(0,b.jsx)("div",{style:{...B,flex:1,overflowY:"auto",padding:"1rem"},children:ai.final_result||"(No Result)"}),(0,b.jsx)("div",{style:{marginTop:"0.5rem",flexShrink:0},children:(0,b.jsx)("button",{onClick:a=>{var b;a.stopPropagation(),b=ai.final_result||"",X(aM),Z(b||""),_(null)},style:{padding:"4px 10px",background:"transparent",color:"var(--primary)",border:"1px solid var(--primary)",borderRadius:"4px",cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"0.8rem"},children:"✏️ 编辑 / 替换结果"})})]})]})})]}),aN?aN.error?(0,b.jsx)("div",{style:{color:"var(--foreground-muted)",fontStyle:"italic"},children:aN.error}):(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"2rem"},children:[(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"flex-start",alignItems:"center",gap:"8px",marginBottom:"0.5rem",borderBottom:"1px solid var(--border)",paddingBottom:"4px",minHeight:"34px"},children:[(0,b.jsx)("button",{onClick:()=>an(!am),style:{background:"transparent",border:"none",color:"var(--primary)",cursor:"pointer",padding:0},children:am?"▼":"▶"}),(0,b.jsx)("h4",{style:A,children:"会话数据(原始JSON)"})]}),am&&(0,b.jsx)("div",{style:{background:"var(--code-block-bg)",padding:"1rem",borderRadius:"8px",overflowY:"auto",maxHeight:"600px",border:"1px solid var(--border)"},children:(0,b.jsx)(t,{src:(a=>{if(!a)return a;let b=JSON.parse(JSON.stringify(a));return b.startTime&&(b.startTime=aL(b.startTime)),Array.isArray(b.interactions)&&(b.interactions=b.interactions.map(a=>{let b={...a};return b.timestamp&&(b.timestamp=aL(b.timestamp)),b.message?.timestamp&&(b.message.timestamp=aL(b.message.timestamp)),b.timeInfo?.created&&(b.timeInfo.created=aL(b.timeInfo.created)),b})),b})(aN),theme:D?"monokai":"rjv-default",groupArraysAfterLength:0,shouldCollapse:a=>{let b=[...a.namespace||[],a.name].filter(a=>null!=a&&""!==String(a).trim()).map(String);if(null===aa)return"interactions"===b[0]&&!!(b.length>=2);if("interactions"===b[0]){let a=b[1];if(void 0!==a){let b=Number(a);if(!isNaN(b)&&b!==aa)return!0}}return!1},displayDataTypes:!1,name:null,style:{backgroundColor:"transparent",fontSize:"0.85rem"},enableClipboard:!0},`json-${null!==aa?aa:"default"}`)})]}),(0,b.jsx)("div",{style:{minWidth:0},children:(0,b.jsx)(v,{interactions:aN.interactions,focusedStep:aa,onStepClick:ab})})]}):(0,b.jsx)("div",{style:{color:"var(--primary)"},children:"Loading session log..."})]}),(0,b.jsxs)("div",{style:{background:"var(--background-secondary)",border:"1px solid var(--border)",borderRadius:"8px",padding:"1.5rem",marginTop:"1.5rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:ao?"1rem":"0",borderBottom:ao?"1px solid var(--border)":"none",paddingBottom:ao?"0.5rem":"0"},children:[(0,b.jsx)("h3",{style:{fontSize:"1.2rem",margin:0,color:"var(--secondary)"},children:"🔍 分析结果"}),(0,b.jsx)("button",{onClick:()=>ap(!ao),style:{background:"transparent",border:"1px solid var(--secondary)",color:"var(--secondary)",padding:"4px 12px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem"},children:ao?"▼ 折叠":"▶ 展开"})]}),ao&&(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"2rem",marginBottom:"2rem"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{style:{...A,marginBottom:"1rem"},children:"评分详情与分析"}),0===(a=function(a){let b=[];if(!a)return b;let c=a.split("\n"),d={rc:0,ka:0};for(let a of c){let c=a.match(/\*\*Root Cause\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(c){b.push({id:`RC-${d.rc++}`,type:"root_cause",content:c[1].replace(/\.{3}$/,""),match_score:parseInt(c[2])/100,explanation:c[3].trim(),weight:parseFloat(c[4])});continue}let e=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(Weight:\s*([\d.]+)\)/);if(e){b.push({id:`KA-${d.ka++}`,type:"key_action",content:e[1].replace(/\.{3}$/,""),match_score:parseInt(e[2])/100,explanation:e[3].trim(),weight:parseFloat(e[4])});continue}let f=a.match(/\*\*Key Action\*\*\s*\[(.*?)\]\s*.*?:\s*(\d+)%\s*match\.\s*(.+?)\s*\(该分支未触发,不计入总分\)/);f&&b.push({id:`KA-${d.ka++}`,type:"key_action",content:f[1].replace(/\.{3}$/,""),match_score:parseInt(f[2])/100,explanation:f[3].trim(),weight:0})}return b}(ai.judgment_reason||"")).length?(0,b.jsx)("div",{style:{...B,background:"var(--code-block-bg)",padding:"1rem",borderRadius:"6px",border:"1px solid var(--border)"},children:ai.judgment_reason||"-"}):(0,b.jsx)("div",{style:{background:"var(--card-bg)",borderRadius:"6px",border:"1px solid var(--border)",overflowX:"auto",maxHeight:"600px",overflowY:"auto"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"0.85rem",minWidth:"950px"},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"var(--background-secondary)"},children:[(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"60px",whiteSpace:"nowrap"},children:"ID"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"180px"},children:"评分标准"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"60px",whiteSpace:"nowrap"},children:"得分"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"50px",whiteSpace:"nowrap"},children:"权重"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"60px",whiteSpace:"nowrap"},children:"扣分"}),(0,b.jsxs)("th",{style:{padding:"10px 12px",textAlign:"center",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"50px",whiteSpace:"nowrap"},children:["关联",(0,b.jsx)(u,{content:"表示扣分来源。若与skill相关,则体现在“分析依据”和“改进建议”"})]}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"150px"},children:"扣分原因"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"150px"},children:"分析依据"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",minWidth:"150px"},children:"改进建议"})]})}),(0,b.jsx)("tbody",{children:a.map((a,c)=>{let d=ai.skill_issues?.find(b=>{if(b.id===a.id)return!0;let c=(b.content||"").trim().toLowerCase(),d=(a.content||"").trim().toLowerCase();return c&&d&&(c===d||d.includes(c))}),e=0===a.weight,f=e?0:(1-a.match_score)*a.weight;return(0,b.jsxs)("tr",{id:`eval-item-${aM}-${a.id}`,style:{background:e?"rgba(148, 163, 184, 0.1)":c%2==0?"var(--card-bg)":"var(--background-secondary)",transition:"background 0.2s",opacity:e?.7:1},onMouseEnter:a=>{a.currentTarget.style.background=e?"rgba(148, 163, 184, 0.15)":"rgba(56, 189, 248, 0.05)"},onMouseLeave:a=>{a.currentTarget.style.background=e?"rgba(148, 163, 184, 0.1)":c%2==0?"var(--card-bg)":"var(--background-secondary)"},children:[(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:(0,b.jsx)("span",{style:{background:"root_cause"===a.type?"#f472b6":"#38bdf8",color:E.bg,padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold",whiteSpace:"nowrap",opacity:e?.6:1},children:a.id})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--foreground)"},children:(0,b.jsx)("div",{style:{fontWeight:500,marginBottom:"4px",wordBreak:"break-word"},children:d?.content||a.content})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:(0,b.jsxs)("span",{style:{color:e?"#94a3b8":a.match_score>=1?"#4ade80":a.match_score>=.5?"#fbbf24":"#f87171",fontWeight:"bold",whiteSpace:"nowrap"},children:[(100*a.match_score).toFixed(0),"%"]})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center",color:"var(--foreground-secondary)"},children:e?(0,b.jsx)("span",{style:{fontSize:"0.75rem",color:"#64748b",fontStyle:"italic"},children:"不计入"}):a.weight.toFixed(1)}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:e?(0,b.jsx)("span",{style:{color:"#64748b",fontSize:"0.8rem"},children:"-"}):(0,b.jsxs)("span",{style:{color:f>0?"#f87171":"#4ade80",fontWeight:"bold",whiteSpace:"nowrap"},children:["-",f.toFixed(2)]})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",textAlign:"center"},children:d&&(0,b.jsx)("span",{style:{background:E.error,color:"#fff",padding:"2px 6px",borderRadius:"4px",fontSize:"0.7rem",whiteSpace:"nowrap"},children:"Skill"})}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--foreground)",fontSize:"0.85rem"},children:d?.explanation||a.explanation||"-"}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--warning)",fontSize:"0.85rem",fontStyle:"italic"},children:d?.reasoning||"-"}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)",color:"var(--success)",fontSize:"0.85rem"},children:d?.improvement_suggestion?(0,b.jsx)("div",{style:{background:E.successSubtle,padding:"4px 8px",borderRadius:"4px"},children:d.improvement_suggestion}):"-"})]},c)})})]})})]}),ai.failures&&ai.failures.length>0?(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.75rem"},children:[(0,b.jsx)("h4",{style:{...A,color:E.error,borderLeft:"3px solid #f87171",paddingLeft:"8px",borderBottom:"none",margin:0},children:" 执行异常 "}),(0,b.jsx)("div",{style:{display:"flex",gap:"8px"},children:(0,b.jsxs)("select",{value:ae,onChange:a=>af(a.target.value),style:{background:"var(--input-bg)",border:"1px solid var(--input-border)",color:"var(--foreground)",borderRadius:"4px",padding:"4px 8px",fontSize:"0.8rem"},children:[(0,b.jsx)("option",{value:"all",children:"全部"}),(0,b.jsx)("option",{value:"failure",children:"失败"}),(0,b.jsx)("option",{value:"anomaly",children:"异常"})]})})]}),(0,b.jsx)("div",{style:{background:"var(--card-bg)",borderRadius:"6px",border:"1px solid var(--border)",overflow:"hidden"},children:(0,b.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:"0.85rem"},children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{style:{background:"var(--background-secondary)"},children:[(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"100px"},children:"类型"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"auto"},children:"描述"}),(0,b.jsx)("th",{style:{padding:"10px 12px",textAlign:"left",color:"var(--foreground-secondary)",borderBottom:"1px solid var(--border)",width:"500px"},children:"恢复措施"})]})}),(0,b.jsx)("tbody",{children:ai.failures.filter(a=>{if("all"===ae)return!0;let b=a.failure_type.toLowerCase();return"failure"===ae?b.includes("fail")||b.includes("error"):"anomaly"!==ae||b.includes("anomaly")||b.includes("warn")}).map((a,c)=>(0,b.jsxs)("tr",{style:{background:c%2==0?"var(--card-bg)":"var(--background-secondary)"},children:[(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:(0,b.jsx)("span",{style:{background:a.failure_type.toLowerCase().includes("error")||a.failure_type.toLowerCase().includes("fail")?"#f87171":"#fbbf24",color:E.bg,padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:"bold"},children:a.failure_type})}),(0,b.jsxs)("td",{style:{padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,b.jsx)("div",{style:{color:E.error,fontWeight:500,marginBottom:"4px"},children:a.description}),a.context&&(0,b.jsx)("div",{style:{fontSize:"0.8rem",color:"var(--foreground-secondary)",fontFamily:"monospace",background:"var(--code-block-bg)",padding:"6px 8px",borderRadius:"4px",marginTop:"4px",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:a.context})]}),(0,b.jsx)("td",{style:{padding:"10px 12px",borderBottom:`1px solid ${E.border}`,color:E.success,fontSize:"0.8rem"},children:a.recovery||"-"})]},c))})]})})]}):(0,b.jsx)("div",{style:{padding:"1rem",border:"1px dashed #334155",borderRadius:"6px",color:E.fgSecondary,textAlign:"center",fontSize:"0.9rem",marginBottom:"1.5rem"},children:"No intermediate failures detected."}),(0,b.jsx)(h,{executionId:aM,skillId:ai.skill&&ai.skill.trim()||(Array.isArray(ai.skills)&&ai.skills.length>0?ai.skills[0]:void 0),user:ai.user,onStepClick:ab})]})]})]})]}),(0,b.jsxs)("div",{style:{marginBottom:"2rem",display:"flex",gap:"1rem",alignItems:"center",flexWrap:"wrap"},children:[["all","24h","12h","1h"].map(a=>(0,b.jsx)("button",{className:"filter-time-btn","data-tf":a,onClick:()=>P(a),style:{padding:"6px 16px",background:O===a?"#38bdf8":"#1e293b",color:O===a?"#18181b":"#a1a1aa",border:`1px solid ${E.border}`,borderRadius:"4px",cursor:"pointer"},children:a.toUpperCase()},a)),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.8rem",marginLeft:"1rem",borderLeft:"1px solid #334155",paddingLeft:"1rem"},children:[(0,b.jsx)("span",{style:{color:E.fgMuted,fontSize:"0.9rem"},children:"比较维度:"}),(0,b.jsxs)("div",{style:{display:"flex",background:E.bgSecondary,padding:"2px",borderRadius:"6px",border:`1px solid ${E.border}`},children:[(0,b.jsx)("button",{onClick:()=>az("label"),style:{padding:"4px 12px",borderRadius:"4px",fontSize:"0.85rem",background:"label"===ay?"#38bdf8":"transparent",color:"label"===ay?"#18181b":"#a1a1aa",border:"none",cursor:"pointer",transition:"all 0.2s",fontWeight:"label"===ay?"bold":"normal"},children:"标签"}),(0,b.jsx)("button",{onClick:()=>az("model"),style:{padding:"4px 12px",borderRadius:"4px",fontSize:"0.85rem",background:"model"===ay?"#38bdf8":"transparent",color:"model"===ay?"#18181b":"#a1a1aa",border:"none",cursor:"pointer",transition:"all 0.2s",fontWeight:"model"===ay?"bold":"normal"},children:"模型"})]})]}),aB.length>0&&(0,b.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",gap:"0.5rem",marginLeft:"1rem",borderLeft:"1px solid #334155",paddingLeft:"1rem"},children:[(0,b.jsx)("span",{style:{color:E.fgMuted,fontSize:"0.9rem"},children:"Label:"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{id:"label-menu-trigger",onClick:()=>av(!au),style:{background:E.bgSecondary,color:E.fg,border:`1px solid ${E.border}`,borderRadius:"4px",padding:"4px 12px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem",minWidth:"120px",justifyContent:"space-between"},children:[(0,b.jsx)("span",{id:"label-trigger-text",children:0===aq.size?"全部筛选":`已选 ${aq.size} 个`}),(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:"▼"})]}),(0,b.jsxs)("div",{id:"label-menu-dropdown",style:{display:au?"block":"none",position:"absolute",top:"100%",left:0,marginTop:"4px",background:E.bgSecondary,border:`1px solid ${E.border}`,borderRadius:"4px",padding:"0.5rem",zIndex:50,minWidth:"200px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.5)",flexDirection:"column",gap:"0.5rem",maxHeight:"300px",overflowY:"auto"},children:[(0,b.jsx)("div",{id:"filter-label-clear",onClick:()=>{ar(new Set),av(!1)},style:{cursor:"pointer",padding:"4px 8px",fontSize:"0.9rem",color:0===aq.size?"#38bdf8":"#a1a1aa",borderBottom:`1px solid ${E.border}`,marginBottom:"4px"},children:"Show All (Clear Filter)"}),aB.map(a=>{let c=aq.has(a),d=a===aA?"(None)":String(a),e=a===aA?"__no_label__":String(a);return(0,b.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer",fontSize:"0.9rem",padding:"2px 8px"},children:[(0,b.jsx)("input",{type:"checkbox",className:"filter-label-checkbox",value:e,checked:c,onChange:()=>{let b=new Set(aq);b.has(a)?b.delete(a):b.add(a),ar(b)}}),(0,b.jsx)("span",{style:{color:c?"#fff":"#d4d4d8"},children:d})]},String(a))})]}),au&&(0,b.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:40},onClick:()=>av(!1)})]})]}),aC.length>0&&(0,b.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",gap:"0.5rem",marginLeft:"1rem",borderLeft:"1px solid #334155",paddingLeft:"1rem"},children:[(0,b.jsx)("span",{style:{color:E.fgMuted,fontSize:"0.9rem"},children:"Model:"}),(0,b.jsxs)("div",{style:{position:"relative"},children:[(0,b.jsxs)("button",{onClick:()=>ax(!aw),style:{background:E.bgSecondary,color:E.fg,border:`1px solid ${E.border}`,borderRadius:"4px",padding:"4px 12px",cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontSize:"0.9rem",minWidth:"120px",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:0===as.size?"所有模型":`已选 ${as.size} 个`}),(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:"▼"})]}),(0,b.jsxs)("div",{style:{display:aw?"block":"none",position:"absolute",top:"100%",left:0,marginTop:"4px",background:E.bgSecondary,border:`1px solid ${E.border}`,borderRadius:"4px",padding:"0.5rem",zIndex:50,minWidth:"200px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.5)",flexDirection:"column",gap:"0.5rem",maxHeight:"300px",overflowY:"auto"},children:[(0,b.jsx)("div",{onClick:()=>{at(new Set),ax(!1)},style:{cursor:"pointer",padding:"4px 8px",fontSize:"0.9rem",color:0===as.size?"#38bdf8":"#a1a1aa",borderBottom:`1px solid ${E.border}`,marginBottom:"4px"},children:"Show All (Clear Filter)"}),aC.map(a=>{let c=as.has(a),d=a===aA?"(None)":String(a);return(0,b.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"8px",cursor:"pointer",fontSize:"0.9rem",padding:"2px 8px"},children:[(0,b.jsx)("input",{type:"checkbox",checked:c,onChange:()=>{let b=new Set(as);b.has(a)?b.delete(a):b.add(a),at(b)}}),(0,b.jsx)("span",{style:{color:c?"#fff":"#d4d4d8"},children:d})]},String(a))})]}),aw&&(0,b.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:40},onClick:()=>ax(!1)})]})]})]}),aD.some(a=>null!=a.context_window_pct)&&(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("button",{onClick:()=>ad(!ac),style:{background:"transparent",border:"1px solid var(--border)",color:"var(--foreground-secondary)",padding:"6px 14px",borderRadius:"4px",cursor:"pointer",fontSize:"0.9rem",display:"flex",alignItems:"center",gap:"6px",marginBottom:"0.5rem"},children:[(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:ac?"▲":"▼"}),"上下文窗口利用率趋势 (%)"]}),ac&&(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["上下文窗口利用率趋势 (%)",(0,b.jsx)(u,{content:"单次 LLM 调用中最大 token 数 / 模型上下文窗口限制 × 100。超过 90% 时推理质量可能下降。"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD.filter(a=>null!=a.context_window_pct),children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aJ,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,domain:[0,100]}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),(0,b.jsx)(r,{y:90,stroke:"var(--error)",strokeDasharray:"4 4",label:{value:"90%",fill:"var(--error)",fontSize:11}}),ai&&null!=ai.context_window_pct&&(0,b.jsx)(r,{x:ai.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"context_window_pct",stroke:"#a78bfa",dot:!0,strokeWidth:2})]})})]})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:"1rem",marginBottom:"2rem"},children:[(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["时延趋势 (秒)",(0,b.jsx)(u,{content:"从请求发出到收到最终完整回复的总耗时"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aJ,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ai&&(0,b.jsx)(r,{x:ai.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"latency",stroke:"#38bdf8",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["令牌消耗趋势",(0,b.jsx)(u,{content:"输入 Prompt 与输出 Completion 的 Token 总和"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aJ,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ai&&(0,b.jsx)(r,{x:ai.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"tokens",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["准确率趋势 (0-1)",(0,b.jsx)(u,{content:"基于 AI 裁判对执行结果的自动评分 (1.0=通过, 0.0=失败)"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aJ,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ai&&(0,b.jsx)(r,{x:ai.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"answer_score",stroke:"#4ade80",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["技能召回率趋势",(0,b.jsx)(u,{content:"基于执行结果是否使用了预期技能计算出的值 (0-1),表示正确调用技能的比例"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aD,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aJ,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ai&&(0,b.jsx)(r,{x:ai.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"skill_recall_rate",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),aF.length>0&&(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["CPSR 趋势",(0,b.jsx)(u,{content:"Cost Per Successful Resolution: Average cost per successful task resolution.\nFormula: (total cost) / (number of runs with successful resolutions)"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aF,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"var(--border)"}),(0,b.jsx)(n,{dataKey:"timestamp",tickFormatter:aJ,stroke:"var(--foreground-secondary)",fontSize:11}),(0,b.jsx)(o,{stroke:"var(--foreground-secondary)",fontSize:11,tickFormatter:a=>`$${a.toFixed(3)}`}),(0,b.jsx)(q,{formatter:(a,b)=>"CPSR"===b?[`$${a?.toFixed(4)||"N/A"}`,"CPSR"]:[a,String(b)],contentStyle:{backgroundColor:"var(--dropdown-bg)",borderColor:"var(--border)",color:"var(--foreground)"}}),ai&&null!=ai.cost&&(0,b.jsx)(r,{x:ai.timestamp,stroke:"var(--warning)",strokeDasharray:"5 5",strokeWidth:2,label:{value:"本次",fill:"var(--warning)",fontSize:11,position:"insideTopLeft"}}),(0,b.jsx)(l,{type:"monotone",dataKey:"cpsr",name:"CPSR",stroke:"#a78bfa",strokeWidth:2,dot:!0})]})})]})]}),aE.latency.length>0&&(0,b.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,b.jsxs)("h2",{style:{fontSize:"1.25rem",marginBottom:"1rem"},children:["按 ","label"===ay?"标签":"模型"," 对比(平均值)"]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["平均时延 - ","label"===ay?"标签":"模型",(0,b.jsx)(u,{content:"平均延迟时间"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aE.latency,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:E.border}}),(0,b.jsx)(l,{type:"monotone",dataKey:"latency",stroke:"#38bdf8",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["平均 Token - ","label"===ay?"标签":"模型",(0,b.jsx)(u,{content:"平均 Token 使用量"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aE.tokens,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:E.border}}),(0,b.jsx)(l,{type:"monotone",dataKey:"tokens",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["平均准确率 - ","label"===ay?"标签":"模型",(0,b.jsx)(u,{content:"平均准确率 (0-1)"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aE.accuracy,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:E.border}}),(0,b.jsx)(l,{type:"monotone",dataKey:"answer_score",stroke:"#4ade80",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:y,children:[(0,b.jsxs)("h3",{style:z,children:["技能召回率 - ","label"===ay?"标签":"模型",(0,b.jsx)(u,{content:"基于执行结果是否使用了预期技能计算出的值 (0-1),表示正确调用技能的比例"})]}),(0,b.jsx)(s,{width:"100%",height:200,children:(0,b.jsxs)(m,{data:aE.skillRecallRate,children:[(0,b.jsx)(p,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(n,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(o,{stroke:"#64748b",fontSize:11,domain:[0,1]}),(0,b.jsx)(q,{contentStyle:{background:"#1e292b",borderColor:E.border}}),(0,b.jsx)(l,{type:"monotone",dataKey:"skill_recall_rate",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]})]})]}),(0,b.jsxs)("div",{style:{marginTop:"2rem",background:E.cardBg,border:`1px solid ${E.cardBorder}`,borderRadius:"8px",overflow:"hidden"},children:[(0,b.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem 1rem 0"},children:[(0,b.jsx)("h2",{style:{fontSize:"1.25rem",marginBottom:"0.5rem",color:E.fg},children:"同问题执行记录"}),(0,b.jsx)("p",{style:{fontSize:"0.9rem",color:E.fgMuted},children:"点击记录可查看详细信息"})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr 1fr 1fr",padding:"1rem",borderBottom:`1px solid ${E.border}`,color:E.fgMuted,fontSize:"0.9rem",background:E.bgSecondary,fontWeight:500},children:[(0,b.jsx)("div",{children:"时间 / ID"}),(0,b.jsx)("div",{children:"标签"}),(0,b.jsx)("div",{children:"时延"}),(0,b.jsx)("div",{children:"消耗"}),(0,b.jsx)("div",{children:"技能召回率"}),(0,b.jsx)("div",{children:"窗口%"}),(0,b.jsx)("div",{children:"评分"})]}),aD.slice().reverse().map(a=>{let c=a.task_id||a.upload_id||`temp-${a.timestamp}`,d=c===aM;return(0,b.jsx)("div",{className:"record-row","data-timestamp":new Date(a.timestamp).getTime(),"data-label":a.label||"__no_label__",style:{borderBottom:`1px solid ${E.border}`,background:d?E.primarySubtle:E.bgSecondary,marginBottom:"1px",cursor:"pointer",transition:"background 0.2s"},onClick:()=>{if(!d){let b=new URLSearchParams;b.set("query",a.query),a.framework&&b.set("framework",a.framework),b.set("expandTaskId",c),window.open(`/details?${b.toString()}`,"_blank")}},onMouseOver:a=>{d||(a.currentTarget.style.background=D?"#3f3f46":"#e4e4e7")},onMouseOut:a=>{d||(a.currentTarget.style.background=D?"#18181b":"#f4f4f5")},children:(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr 1fr 1fr",padding:"1rem",alignItems:"center"},children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{fontWeight:"bold",fontSize:"0.95rem",display:"flex",alignItems:"center",gap:"8px"},children:[aK(a.timestamp),d&&(0,b.jsx)("span",{style:{background:E.primary,color:E.bg,padding:"2px 8px",borderRadius:"4px",fontSize:"0.7rem",fontWeight:"bold"},children:"当前"})]}),(0,b.jsx)("div",{style:{fontSize:"0.8rem",color:E.fgSecondary},children:c})]}),(0,b.jsx)("div",{style:{fontSize:"0.9rem",color:E.fgSecondary},children:a.label||"-"}),(0,b.jsx)("div",{children:a.latency?a.latency<1?(1e3*a.latency).toFixed(0)+"ms":a.latency.toFixed(2)+"s":"-"}),(0,b.jsx)("div",{children:a.tokens}),(0,b.jsx)("div",{style:{color:null!==a.skill_recall_rate&&void 0!==a.skill_recall_rate?1===a.skill_recall_rate?E.success:a.skill_recall_rate>0?E.warning:E.error:E.fgMuted,fontWeight:"bold"},children:null!==a.skill_recall_rate&&void 0!==a.skill_recall_rate?(100*a.skill_recall_rate).toFixed(0)+"%":"--"}),(0,b.jsx)("div",{style:{color:null!=a.context_window_pct?a.context_window_pct>90?E.error:E.success:E.fgMuted},children:null!=a.context_window_pct?`${a.context_window_pct.toFixed(1)}%`:"-"}),(0,b.jsx)("div",{style:{color:null===a.answer_score?E.fgMuted:(a.answer_score||0)>.8?E.success:E.error},children:null===a.answer_score?"--":a.answer_score?.toFixed(2)})]})},a.upload_id||c)})]})]})}let y={background:"var(--card-bg)",border:"1px solid var(--border)",borderRadius:"8px",padding:"1rem",display:"flex",flexDirection:"column"},z={margin:"0 0 1rem 0",fontSize:"0.9rem",color:"var(--foreground-secondary)",fontWeight:"normal"},A={color:"var(--primary)",margin:0,fontSize:"0.95rem"},B={fontFamily:"monospace",fontSize:"0.9rem",lineHeight:"1.5",whiteSpace:"pre-wrap",color:"var(--foreground)",background:"var(--code-block-bg)",padding:"0.75rem",borderRadius:"6px",border:"1px solid var(--border)"};a.s(["default",()=>w],87986)}];
|
|
110
110
|
|
|
111
111
|
//# sourceMappingURL=_c8c8c083._.js.map
|