@witty-ai/skill-insight 0.3.0-beta → 0.5.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 +51 -6
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +2 -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 +12 -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/auth/apikey/route.js +2 -2
- package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/organization/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/auth/organization/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/auth/organization/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/auth/organization/route.js +7 -0
- package/.next/standalone/.next/server/app/api/auth/organization/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/auth/organization/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/config/create/route.js +5 -5
- 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/config/status/route.js +2 -2
- package/.next/standalone/.next/server/app/api/config/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js +5 -4
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/executions/[executionId]/analyze-match/route.js +4 -4
- package/.next/standalone/.next/server/app/api/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/guide/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/guide/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/guide/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/guide/route.js +7 -0
- package/.next/standalone/.next/server/app/api/guide/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/guide/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +5 -4
- 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 +5 -4
- 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 +3 -3
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +5 -4
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/start/route.js +2 -2
- package/.next/standalone/.next/server/app/api/proxy/[taskId]/start/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/rejudge/route.js +5 -4
- package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/session/route.js +5 -5
- package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js +2 -2
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/test/route.js +2 -2
- package/.next/standalone/.next/server/app/api/settings/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js +2 -2
- package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js +2 -2
- package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js +3 -3
- 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]/parse-flow/route.js +4 -4
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +2 -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 +2 -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 +2 -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/automation/push/route.js +2 -2
- package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/by-name/route.js +2 -2
- package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/logs/route.js +5 -4
- 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 +2 -2
- package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/skills/upload/route.js +2 -2
- package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/manifest/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sync/manifest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sync/opencode/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sync/opencode/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/upload/route.js +5 -3
- 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 +3 -3
- 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 +2 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02ddba88._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05e510f4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a140a5a._.js +122 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1013b265._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c95bcde._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a6d443b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5444db55._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__591248f3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d8178f6._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fc12878._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__73ce6d21._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__98b3de5e._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d551ea2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a4d3d791._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__c6c98b22._.js → [root-of-the-server]__aa5c8858._.js} +3 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b11acc79._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b835ea7f._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba01f286._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd91659b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c200214a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7fab946._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8c1808b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9b9fecc._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e280561d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e550423c._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +3 -0
- package/.next/standalone/.next/server/chunks/_33c0c729._.js +1 -1
- package/.next/standalone/.next/server/chunks/_41a98bd8._.js +3 -0
- package/.next/standalone/.next/server/chunks/_c48f7c66._.js +1 -1
- package/.next/standalone/.next/server/chunks/_c82df3e0._.js +3 -3
- package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
- package/.next/standalone/.next/server/chunks/_fa49adfa._.js +3 -3
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_organization_route_actions_f58710b7.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_guide_route_actions_6c188449.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +71 -110
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -400
- package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +22 -22
- package/.next/standalone/.next/server/chunks/src_c8971a2d._.js +1 -1
- package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__5d576168._.js → [root-of-the-server]__40353d98._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__89851212._.js → [root-of-the-server]__480fcd92._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__72a7f3ed._.js → [root-of-the-server]__48f8fbcb._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__438a2c90._.js → [root-of-the-server]__49921b2a._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__51073007._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c9e3c893._.js → [root-of-the-server]__593be3d6._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ca101543._.js → [root-of-the-server]__5e9ff641._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__90641614._.js → [root-of-the-server]__66cc6ff2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__37bfda90._.js → [root-of-the-server]__9889bdc8._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__42ba97b6._.js → [root-of-the-server]__9905ca7a._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ab7cc4a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__7bb97139._.js → [root-of-the-server]__9d6b7d48._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__6b8b9bb9._.js → [root-of-the-server]__b8edc8c6._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1dfe61f8._.js → [root-of-the-server]__d691ecb0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d0917d6e._.js → [root-of-the-server]__e5ddfd15._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__e5e3a145._.js → [root-of-the-server]__f72f330e._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__99ab66d7._.js → [root-of-the-server]__f843e085._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__8a82ef12._.js → [root-of-the-server]__fd69d276._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_7688d7cd._.js → _049876f0._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{_981cd263._.js → _09546b95._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_8f5379ab._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_cf1f3d2c._.js → _b121f1ae._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +18 -42
- package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_a4a1f3c3._.js → node_modules_039c6a11._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_a7a82280._.js → node_modules_0d3530cd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_0c2939c3._.js → node_modules_0e883565._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_8d9e56b7._.js → node_modules_11dbf165._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_76d6c533._.js → node_modules_2041c122._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_b007145b._.js → node_modules_235267bb._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_11d81adf._.js → node_modules_25dfb0ba._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_205ce1c9._.js → node_modules_2b12c669._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_cc19e85c._.js → node_modules_32996880._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_62621b34._.js → node_modules_35885fe9._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_ee43cfd6._.js → node_modules_38a95353._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_f596a14c._.js → node_modules_3a317c51._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_776b68cf._.js → node_modules_44966ab2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_514c148b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_e272ac31._.js → node_modules_53af751a._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_23d38260._.js → node_modules_5f539891._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_86b6ffa4._.js → node_modules_60402210._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_3769cd60._.js → node_modules_60eccfb6._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_fdf808cf._.js → node_modules_632c098c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_60cf7de2._.js → node_modules_6c42f75c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_2f215d2b._.js → node_modules_6fbe276d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_4cd41088._.js → node_modules_740e9d59._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_d0af4cb2._.js → node_modules_7a3d551c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_4f41f172._.js → node_modules_861cb9cf._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_db8af6e3._.js → node_modules_8a892761._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_28fef057._.js → node_modules_a5a4946e._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_3d9afa91._.js → node_modules_a712c937._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_330b9e3c._.js → node_modules_a8c276dd._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_abf4f826._.js → node_modules_acc9d529._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_39a3e684._.js → node_modules_ad07ab39._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_1d88c7cc._.js → node_modules_b38efa22._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_8633bac6._.js → node_modules_b4ef036d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_abc9e5a6._.js → node_modules_b6bad701._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_c90fa812._.js → node_modules_b9810024._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_f56b62b0._.js → node_modules_b9ad808d._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_7287189a._.js → node_modules_bc287d9f._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_5ab83f0a._.js → node_modules_c411d7df._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_c98dd942._.js → node_modules_c6469d93._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_6391b0cd._.js → node_modules_c704e802._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_df113a74._.js → node_modules_cda46cfc._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_aa6da06c._.js → node_modules_cf171d0c._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_be61cdef._.js → node_modules_e8927fc2._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_d037b3b1._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-7R4GIKGN_mjs_e5dda8cc._.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/{d60f0b3e2f4689ac.js → 01eddf501c574a44.js} +1 -1
- package/.next/{static/chunks/ec0de430276c8209.js → standalone/.next/static/chunks/078d76156083f265.js} +1 -1
- package/.next/standalone/.next/static/chunks/{6a17b619eed04f07.js → 07c9f28a269c701a.js} +2 -2
- package/.next/standalone/.next/static/chunks/1e782a49beaf489c.js +1 -0
- package/.next/{static/chunks/55723b38de737547.js → standalone/.next/static/chunks/21105f8885631d60.js} +1 -1
- package/.next/standalone/.next/static/chunks/4071dbec4cf7e72e.js +109 -0
- package/.next/{static/chunks/052f178ab7519d8d.js → standalone/.next/static/chunks/5432ce4a494bc74d.js} +2 -2
- package/.next/standalone/.next/static/chunks/59cd76b8d89e776a.js +1 -0
- package/.next/standalone/.next/static/chunks/67bd1a5de2195779.js +1 -0
- package/.next/standalone/.next/static/chunks/6baf949fafec6be3.js +1 -0
- package/.next/standalone/.next/static/chunks/737b8cff3c6a4e30.js +1 -0
- package/.next/standalone/.next/static/chunks/7e35f4cf2e266022.js +1 -0
- package/.next/standalone/.next/static/chunks/a87b5e84254095a5.js +1 -0
- package/.next/standalone/.next/static/chunks/b43afe7d924243d9.js +2 -0
- package/.next/standalone/.next/static/chunks/c6bd2818656b1f20.css +1 -0
- package/.next/{static/chunks/559e55a53f22f5d1.js → standalone/.next/static/chunks/c875bd2ff662b46f.js} +1 -1
- package/.next/{static/chunks/6d12c79948c7e0ac.js → standalone/.next/static/chunks/dc59a07a8f327b40.js} +1 -1
- package/.next/standalone/.next/static/chunks/e09d9ee16fe90255.js +1 -0
- package/.next/standalone/.next/static/chunks/{20337e5244416041.js → e20b02ee30c11a26.js} +1 -1
- package/.next/standalone/.next/static/chunks/ff6357067630b168.js +1 -0
- package/.next/standalone/LICENSE +1 -1
- package/.next/standalone/bin/cli.js +1 -1
- package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +126 -0
- package/.next/standalone/features/feature-skill-used-jump-link/feature.json +32 -0
- package/.next/standalone/features/feature-skill-used-jump-link/issue.md +32 -0
- package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +528 -0
- package/.next/standalone/next.config.ts +14 -2
- package/.next/standalone/node_modules/.prisma/client/edge.js +23 -5
- package/.next/standalone/node_modules/.prisma/client/index-browser.js +20 -2
- package/.next/standalone/node_modules/.prisma/client/index.js +23 -5
- package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
- package/.next/standalone/node_modules/.prisma/client/schema.prisma +19 -2
- package/.next/standalone/node_modules/.prisma/client/wasm.js +20 -2
- package/.next/standalone/node_modules/@img/colour/color.cjs +11 -9
- package/.next/standalone/node_modules/@img/colour/package.json +21 -8
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/prisma/schema.prisma +19 -2
- package/.next/standalone/scripts/activate_telemetry.sh +24 -24
- package/.next/standalone/scripts/claude_watcher_client.ts +9 -7
- package/.next/standalone/scripts/init_opengauss.py +15 -0
- package/.next/standalone/scripts/install.js +68 -35
- package/.next/standalone/scripts/logs.js +1 -1
- package/.next/standalone/scripts/openclaw_watcher_client.ts +9 -7
- package/.next/standalone/scripts/opencode_plugin.ts +278 -46
- package/.next/standalone/scripts/postinstall.js +80 -38
- package/.next/standalone/scripts/restart.js +1 -1
- package/.next/standalone/scripts/start.js +84 -60
- package/.next/standalone/scripts/status.js +1 -1
- package/.next/standalone/scripts/stop.js +38 -14
- package/.next/standalone/scripts/sync_skills.js +5 -5
- package/.next/standalone/scripts/utils.js +91 -23
- package/.next/standalone/tests/setup_skill_optimizer.sh +118 -0
- package/.next/static/chunks/{d60f0b3e2f4689ac.js → 01eddf501c574a44.js} +1 -1
- package/.next/{standalone/.next/static/chunks/ec0de430276c8209.js → static/chunks/078d76156083f265.js} +1 -1
- package/.next/static/chunks/{6a17b619eed04f07.js → 07c9f28a269c701a.js} +2 -2
- package/.next/static/chunks/1e782a49beaf489c.js +1 -0
- package/.next/{standalone/.next/static/chunks/55723b38de737547.js → static/chunks/21105f8885631d60.js} +1 -1
- package/.next/static/chunks/4071dbec4cf7e72e.js +109 -0
- package/.next/{standalone/.next/static/chunks/052f178ab7519d8d.js → static/chunks/5432ce4a494bc74d.js} +2 -2
- package/.next/static/chunks/59cd76b8d89e776a.js +1 -0
- package/.next/static/chunks/67bd1a5de2195779.js +1 -0
- package/.next/static/chunks/6baf949fafec6be3.js +1 -0
- package/.next/static/chunks/737b8cff3c6a4e30.js +1 -0
- package/.next/static/chunks/7e35f4cf2e266022.js +1 -0
- package/.next/static/chunks/a87b5e84254095a5.js +1 -0
- package/.next/static/chunks/b43afe7d924243d9.js +2 -0
- package/.next/static/chunks/c6bd2818656b1f20.css +1 -0
- package/.next/{standalone/.next/static/chunks/559e55a53f22f5d1.js → static/chunks/c875bd2ff662b46f.js} +1 -1
- package/.next/{standalone/.next/static/chunks/6d12c79948c7e0ac.js → static/chunks/dc59a07a8f327b40.js} +1 -1
- package/.next/static/chunks/e09d9ee16fe90255.js +1 -0
- package/.next/static/chunks/{20337e5244416041.js → e20b02ee30c11a26.js} +1 -1
- package/.next/static/chunks/ff6357067630b168.js +1 -0
- package/LICENSE +1 -1
- package/README.md +7 -6
- package/bin/cli.js +1 -1
- package/package.json +1 -1
- package/prisma/schema.prisma +19 -2
- package/scripts/activate_telemetry.sh +24 -24
- package/scripts/claude_watcher_client.ts +9 -7
- package/scripts/init_opengauss.py +15 -0
- package/scripts/install.js +68 -35
- package/scripts/logs.js +1 -1
- package/scripts/openclaw_watcher_client.ts +9 -7
- package/scripts/opencode_plugin.ts +278 -46
- package/scripts/postinstall.js +80 -38
- package/scripts/restart.js +1 -1
- package/scripts/start.js +84 -60
- package/scripts/status.js +1 -1
- package/scripts/stop.js +38 -14
- package/scripts/sync_skills.js +5 -5
- package/scripts/utils.js +91 -23
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1306e4eb._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1809fb2b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19594bdd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19db3d34._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b2e7f49._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3c02de9b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3f3ad12b._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4c1ad182._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4dce0fe6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__582cdc68._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__625e84f3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__68b5a8b3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__704b8533._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__78ea20f2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7f754db9._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__824c33e1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__92449e6d._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9465727f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9c3018b5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a12846e0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a637116a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a8f83ee4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a8ffc1b1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9cb205c._.js +0 -122
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab7048b0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac25e4ae._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ae5ac9cd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__bebf4267._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c5ae3ebd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__ebdafae4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__eefd5f5b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__082c32a2._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_b7889f85._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0b762d3e._.js +0 -3
- package/.next/standalone/.next/static/chunks/024c9acb4aa490c8.js +0 -1
- package/.next/standalone/.next/static/chunks/104f2c1fb93033c0.js +0 -1
- package/.next/standalone/.next/static/chunks/222a937a6c859036.js +0 -1
- package/.next/standalone/.next/static/chunks/2e1b2125198a02c4.js +0 -1
- package/.next/standalone/.next/static/chunks/32b26ff1bbd034fd.js +0 -1
- package/.next/standalone/.next/static/chunks/428e6cf64b115e9d.css +0 -1
- package/.next/standalone/.next/static/chunks/62e251619a96dc26.js +0 -1
- package/.next/standalone/.next/static/chunks/65c652f23d2d68bd.js +0 -133
- package/.next/standalone/.next/static/chunks/876e2d70185fd438.js +0 -1
- package/.next/standalone/.next/static/chunks/c647b2e4532050e0.js +0 -1
- package/.next/standalone/.next/static/chunks/d2e574310159a10b.js +0 -1
- package/.next/standalone/.next/static/chunks/dab1749712763979.js +0 -2
- package/.next/static/chunks/024c9acb4aa490c8.js +0 -1
- package/.next/static/chunks/104f2c1fb93033c0.js +0 -1
- package/.next/static/chunks/222a937a6c859036.js +0 -1
- package/.next/static/chunks/2e1b2125198a02c4.js +0 -1
- package/.next/static/chunks/32b26ff1bbd034fd.js +0 -1
- package/.next/static/chunks/428e6cf64b115e9d.css +0 -1
- package/.next/static/chunks/62e251619a96dc26.js +0 -1
- package/.next/static/chunks/65c652f23d2d68bd.js +0 -133
- package/.next/static/chunks/876e2d70185fd438.js +0 -1
- package/.next/static/chunks/c647b2e4532050e0.js +0 -1
- package/.next/static/chunks/d2e574310159a10b.js +0 -1
- package/.next/static/chunks/dab1749712763979.js +0 -2
- /package/.next/standalone/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_ssgManifest.js +0 -0
- /package/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_buildManifest.js +0 -0
- /package/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_ssgManifest.js +0 -0
|
@@ -1,28 +1,24 @@
|
|
|
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);function f({executionId:a,skillId:c,user:d,onStepClick:f}){let[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)("compare"),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(!0),[r,s]=(0,e.useState)(!0),t=c&&c.trim()?c:null;(0,e.useEffect)(()=>{fetch(`/api/executions/${a}/analyze-match`).then(a=>a.json()).then(a=>{a.analyzed&&m(a)}).catch(()=>{})},[a]);let u=async()=>{i(!0),o(""),k("dynamic");try{let b=await fetch(`/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?m({analyzed:!0,mode:"dynamic",dynamicMermaid:c.dynamicMermaid,interactionCount:c.interactionCount,matchedAt:new Date().toISOString()}):o(c.error||"分析失败")}catch(a){o(a instanceof Error?a.message:"网络错误")}finally{i(!1)}},v=async()=>{if(!t)return void o('该执行记录未关联 Skill,无法进行 Skill 对比。请使用"执行流程"功能。');i(!0),o(""),k("compare");try{let b=await fetch(`/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||[];m({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 o(c.error||"分析失败")}catch(a){o(a instanceof Error?a.message:"网络错误")}finally{i(!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:r?"1px solid #334155":"none",cursor:"pointer"},onClick:()=>s(!r),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:r?"收起":"展开"}),(0,b.jsx)("button",{style:{background:"#334155",border:"none",borderRadius:"4px",color:"#94a3b8",padding:"4px 8px",cursor:"pointer",fontSize:"0.8rem"},children:r?"▲":"▼"})]})]}),r&&(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(),u()},disabled:h,style:{padding:"6px 16px",background:h&&"dynamic"===j?"#334155":"#22c55e",color:h&&"dynamic"===j?"#94a3b8":"#0f172a",border:"none",borderRadius:"4px",cursor:h?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.85rem"},children:h&&"dynamic"===j?"分析中...":"流程解析"}),(0,b.jsx)("button",{onClick:a=>{a.stopPropagation(),v()},disabled:h,style:{padding:"6px 16px",background:h&&"compare"===j?"#334155":"#38bdf8",color:h&&"compare"===j?"#94a3b8":"#0f172a",border:"none",borderRadius:"4px",cursor:h?"not-allowed":"pointer",fontWeight:"bold",fontSize:"0.85rem"},children:h&&"compare"===j?"对比中...":"Skill对比"})]})}),n&&(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:n}),l&&l.analyzed?(0,b.jsxs)("div",{children:["compare"===l.mode&&l.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:["执行流程对比 ",l.usedSkillName&&`(${l.usedSkillName} v${l.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)(g,{code:l.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)(g,{code:l.dynamicMermaid||""})})]}),"compare"===l.mode&&l.matchJson&&(()=>{let a=null;try{a=JSON.parse(l.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:["对话轮数: ",l.interactionCount,l.hasUpdate&&(0,b.jsx)("span",{style:{color:"#fbbf24",marginLeft:"0.5rem"},children:"(有更新)"})]})]}):null})(),"compare"===l.mode&&l.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:()=>q(!p),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:p?"收起 ▲":"展开 ▼"})]}),p&&(()=>{let a=[];try{a=JSON.parse(l.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:f?"#38bdf8":"#e2e8f0",borderBottom:"1px solid #334155",cursor:f?"pointer":"default",textDecoration:f?"underline":"none"},onClick:()=>f?.(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 g({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 h=a.i(94086);let i=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),j=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),k=(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1}),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});(0,c.default)(async()=>{},{loadableGenerated:{modules:[13143]},ssr:!1});let 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:[17847]},ssr:!1}),r=({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:"#0f172a",border:"1px solid #334155",color:"#f1f5f9",padding:"6px 10px",borderRadius:"4px",whiteSpace:"normal",minWidth:"280px",maxWidth:"400px",zIndex:1e3,marginBottom:"6px",fontSize:"0.75rem",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.5)",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 #334155"}})]})]})},s=({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=(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]),k=(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 j.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?.total_tokens||0;!f&&c.usage?.total&&(f=c.usage.total),a.push({kind:"llm",id:`llm-${d}`,order:a.length,original:c,parentIndex:d,toolIndex:null,latency:e,tokens:f});let g=c.tool_calls||c.toolCalls||[];Array.isArray(g)&&g.length>0&&g.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]),l=(0,e.useMemo)(()=>new Set([...k.filter(a=>"llm"===a.kind)].sort((a,b)=>b.latency-a.latency).slice(0,5).filter(a=>a.latency>0).map(a=>a.id)),[k]),m=(0,e.useMemo)(()=>new Set([...k.filter(a=>"llm"===a.kind)].sort((a,b)=>b.tokens-a.tokens).slice(0,5).filter(a=>a.tokens>0).map(a=>a.id)),[k]),n=k.filter(a=>"llm"===a.kind),o=(0,e.useMemo)(()=>{let a=[...n];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},[n,f]),p=Math.ceil(o.length/5),q=(0,e.useMemo)(()=>{let a=5*h;return o.slice(a,a+5)},[o,h,5]),r=(0,e.useMemo)(()=>{let a=[];return q.forEach(b=>{a.push(b);let c=k.filter(a=>"tool"===a.kind&&a.parentIndex===b.parentIndex);a.push(...c)}),a},[q,k]);return(0,e.useEffect)(()=>{i(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.jsx)("h4",{style:{color:"#38bdf8",fontSize:"0.95rem",margin:0},children:"Execution Steps (Trace)"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("span",{style:{fontSize:"0.8rem",color:"#94a3b8"},children:"Sort by:"}),(0,b.jsxs)("select",{value:f,onChange:a=>g(a.target.value),style:{background:"#1e293b",color:"#e2e8f0",border:"1px solid #334155",borderRadius:"4px",padding:"2px 8px",fontSize:"0.8rem",outline:"none"},children:[(0,b.jsx)("option",{value:"default",children:"Default (Chronological)"}),(0,b.jsx)("option",{value:"latency_desc",children:"Latency (High to Low)"}),(0,b.jsx)("option",{value:"tokens_desc",children:"Tokens (High to Low)"})]})]})]}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:r.map(a=>{let{original:e,kind:f,parentIndex:g,toolIndex:h,latency:i,tokens:j}=a,k=l.has(a.id),n=m.has(a.id),o=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?o?`${v}, ${w}`:w:o?v:"none";return s.length>150&&(s=s.slice(0,150)+"..."),(0,b.jsxs)("div",{onClick:()=>d(g),style:{background:o?p?"#3730a3":"#1e3a8a":p?"#111827":"#1e293b",border:o?"1px solid #60a5fa":p?"1px solid #374151":"1px solid #334155",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:"#334155",color:"#94a3b8",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:"#0f172a",background:"#fbbf24",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:"#94a3b8"},children:"Latency:"}),(0,b.jsx)("span",{style:{color:k?"#fb923c":"#cbd5e1",fontWeight:k?"bold":"normal",borderBottom:k?"1px dashed #fb923c":"none"},children:q}),k&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"#fb923c",border:"1px solid #fb923c",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:"#94a3b8"},children:"Tokens:"}),(0,b.jsx)("span",{style:{color:n?"#f472b6":"#cbd5e1",fontWeight:n?"bold":"normal",borderBottom:n?"1px dashed #f472b6":"none"},children:j}),n&&(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"#f472b6",border:"1px solid #f472b6",borderRadius:"4px",padding:"0 4px"},children:"TOP 5"})]})]})]}),(0,b.jsx)("div",{style:{color:"#cbd5e1",fontFamily:"monospace",opacity:.9,wordBreak:"break-all"},children:s||(0,b.jsx)("span",{style:{color:"#64748b",fontStyle:"italic"},children:"(No Content)"})})]},a.id)})}),p>1&&(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"1rem",marginTop:"1rem"},children:[(0,b.jsx)("button",{onClick:()=>i(a=>Math.max(0,a-1)),disabled:0===h,style:{padding:"4px 12px",background:0===h?"#334155":"#38bdf8",color:0===h?"#94a3b8":"#0f172a",border:"none",borderRadius:"4px",cursor:0===h?"not-allowed":"pointer"},children:"Prev"}),(0,b.jsxs)("span",{style:{color:"#94a3b8",fontSize:"0.9rem"},children:["Page ",h+1," of ",p]}),(0,b.jsx)("button",{onClick:()=>i(a=>Math.min(p-1,a+1)),disabled:h===p-1,style:{padding:"4px 12px",background:h===p-1?"#334155":"#38bdf8",color:h===p-1?"#94a3b8":"#0f172a",border:"none",borderRadius:"4px",cursor:h===p-1?"not-allowed":"pointer"},children:"Next"})]})]})};function t(){return(0,b.jsx)(e.Suspense,{fallback:(0,b.jsx)("div",{className:"p-8 text-white",children:"Loading..."}),children:(0,b.jsx)(u,{})})}function u(){let a=(0,d.useRouter)(),c=(0,d.useSearchParams)(),g=c.get("query")||"",t=c.get("framework")||"",u=c.get("expandTaskId"),[z,A]=(0,e.useState)([]),[B,C]=(0,e.useState)(!0),[D,E]=(0,e.useState)({}),[F,G]=(0,e.useState)(new Set(u?[u]:[])),[H,I]=(0,e.useState)("all"),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useState)(""),[N,O]=(0,e.useState)(null),[P,Q]=(0,e.useState)(null),[R,S]=(0,e.useState)(""),[T,U]=(0,e.useState)(null),[V,W]=(0,e.useState)({}),[X,Y]=(0,e.useState)(null),[Z,$]=(0,e.useState)(!1),_=async(a,b,c)=>{let d=V[a.task_id||a.upload_id||""]||a.user_feedback?.comment||"",e={type:b,comment:void 0!==c?c:d};A(z.map(b=>b.task_id===a.task_id||b.upload_id===a.upload_id?{...b,user_feedback:e}:b));try{await fetch("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:a.task_id,upload_id:a.upload_id,user_feedback:e})}),alert("保存成功")}catch(a){console.error(a)}};(0,e.useEffect)(()=>{u&&!D[u]&&fetch(`/api/session?taskId=${u}`).then(a=>a.ok?a.json():{error:"Error"}).then(a=>E(b=>({...b,[u]:a}))).catch(()=>E(a=>({...a,[u]:{error:"Fetch failed"}})))},[u]),(0,e.useEffect)(()=>{fetch("/api/data",{cache:"no-store"}).then(a=>a.json()).then(a=>{let b=g,c=t;if(!b&&u){let d=a.find(a=>a.task_id===u||a.upload_id===u);d&&(b=d.query,c||(c=d.framework))}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()),A(d),C(!1)})},[g,t,u]);let[aa,ab]=(0,e.useState)(new Set),[ac,ad]=(0,e.useState)(new Set),[ae,af]=(0,e.useState)(!1),[ag,ah]=(0,e.useState)(!1),[ai,aj]=(0,e.useState)("label"),ak="__no_label__",al=(0,e.useMemo)(()=>{let a=new Set,b=!1;z.forEach(c=>{c.label?a.add(c.label):b=!0});let c=Array.from(a).sort();return b&&c.unshift(ak),c},[z]),am=(0,e.useMemo)(()=>{let a=new Set,b=!1;z.forEach(c=>{c.model?a.add(c.model):b=!0});let c=Array.from(a).sort();return b&&c.unshift(ak),c},[z]),an=(0,e.useMemo)(()=>{let a=z;if("all"!==H){let b=Date.now()-(({"1h":36e5,"12h":432e5,"24h":864e5})[H]||0);a=a.filter(a=>new Date(a.timestamp).getTime()>b)}return aa.size>0&&(a=a.filter(a=>a.label?aa.has(a.label):aa.has(ak))),ac.size>0&&(a=a.filter(a=>a.model?ac.has(a.model):ac.has(ak))),a},[z,H,aa,ac]),ao=(0,e.useMemo)(()=>{let a="label"===ai?"label":"model",b=[...new Set(an.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=an.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=an.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=an.filter(c=>c[a]===b);return{name:b,answer_score:c.reduce((a,b)=>a+(b.answer_score||0),0)/c.length}}),contextWindow:b.map(b=>{let c=an.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)}},[an,ai]),ap=()=>{K(null),M(""),O(null)},aq=async(b,c)=>{let d=L.trim();if(d){O({id:b,status:"saving"});try{let e=await fetch("/api/data",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_id:b,upload_id:c||void 0,query:d})}),f=await e.json();if(!e.ok)return void O({id:b,status:"error",msg:f.error||"保存失败"});let h=(f.record?.judgment_reason||"").includes("未找到匹配的评测配置")?"已保存,但未找到匹配的评测配置,Score 已归零。请在「数据集管理」中为该 query 添加完全一致的条目。":f.message||"已保存";if(O({id:b,status:"ok",msg:h}),K(null),M(""),d!==g){let c=new URLSearchParams;c.set("query",d),t&&c.set("framework",t),c.set("expandTaskId",b),a.push(`/details?${c.toString()}`)}else{let a=await fetch("/api/data"),b=(await a.json()).filter(a=>a.query===g&&(!t||a.framework===t)).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}));b.sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()),A(b)}}catch(a){O({id:b,status:"error",msg:"网络错误"})}}},ar=()=>{Q(null),S(""),U(null)},as=async(a,b)=>{let c=R.trim();if(c){U({id:a,status:"saving"});try{let d=await fetch("/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 U({id:a,status:"error",msg:e.error||"保存失败"});let f=e.message||"已保存并重评";U({id:a,status:"ok",msg:f}),Q(null),S("");let h=await fetch("/api/data"),i=(await h.json()).filter(a=>a.query===g&&(!t||a.framework===t)).map(a=>({...a,tokens:Number(a.tokens||a.Token||0),latency:Number(a.latency||0),answer_score:null!==a.answer_score?Number(a.answer_score):+!!a.is_answer_correct}));i.sort((a,b)=>new Date(a.timestamp).getTime()-new Date(b.timestamp).getTime()),A(i)}catch(b){U({id:a,status:"error",msg:"网络错误"})}}},at=async a=>{let b=a.target.files?.[0];if(!b)return;let c=new FormData;c.append("document",b);try{let a=await fetch("/api/parse-document",{method:"POST",body:c}),b=await a.json();a.ok?S(b.content||""):alert("解析文档失败: "+(b.error||"Unknown error"))}catch(a){alert("解析文档异常: "+a.message)}},au=async a=>{let b=new Set(F);if(b.has(a))b.delete(a);else if(b.add(a),!D[a])try{let b=await fetch(`/api/session?taskId=${a}`);if(b.ok){let c=await b.json();E(b=>({...b,[a]:c}))}else E(b=>({...b,[a]:{error:"No session log found"}}))}catch(b){E(b=>({...b,[a]:{error:"Fetch error"}}))}G(b)},av=a=>new Date(a).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return B?(0,b.jsx)("div",{style:{padding:"2rem",color:"white"},children:"Loading..."}):0===z.length?(0,b.jsx)("div",{style:{padding:"2rem",color:"white"},children:"No records found for this combination."}):(0,b.jsxs)("div",{style:{minHeight:"100vh",background:"#0f172a",color:"#f8fafc",padding:"2rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem",borderBottom:"1px solid #334155",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:g,children:[(0,b.jsx)("span",{style:{flexShrink:0},children:"Details:"}),(0,b.jsx)("span",{style:{color:"#38bdf8",overflow:"hidden",textOverflow:"ellipsis"},children:g})]}),(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);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=`
|
|
2
2
|
<script>
|
|
3
3
|
(function() {
|
|
4
|
-
// Constants
|
|
5
4
|
const TS_MAP = {
|
|
6
5
|
'1h': 60 * 60 * 1000,
|
|
7
6
|
'12h': 12 * 60 * 60 * 1000,
|
|
8
7
|
'24h': 24 * 60 * 60 * 1000,
|
|
9
8
|
'all': 0
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
// State
|
|
10
|
+
|
|
13
11
|
let state = {
|
|
14
|
-
timeFilter: 'all',
|
|
12
|
+
timeFilter: 'all',
|
|
15
13
|
selectedLabels: new Set()
|
|
16
14
|
};
|
|
17
15
|
|
|
18
|
-
// Elements
|
|
19
16
|
const rows = document.querySelectorAll('.record-row');
|
|
20
17
|
const totalCountEl = document.getElementById('total-records-count');
|
|
21
18
|
const labelMenu = document.getElementById('label-menu-dropdown');
|
|
22
19
|
const labelTrigger = document.getElementById('label-menu-trigger');
|
|
23
20
|
const labelTextObj = document.getElementById('label-trigger-text');
|
|
24
|
-
|
|
25
|
-
// --- Logic ---
|
|
21
|
+
|
|
26
22
|
function updateVisibility() {
|
|
27
23
|
const now = Date.now();
|
|
28
24
|
const threshold = TS_MAP[state.timeFilter] ? now - TS_MAP[state.timeFilter] : 0;
|
|
@@ -31,17 +27,12 @@ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
|
|
|
31
27
|
rows.forEach(row => {
|
|
32
28
|
const ts = parseInt(row.getAttribute('data-timestamp') || '0');
|
|
33
29
|
const lbl = row.getAttribute('data-label') || '';
|
|
34
|
-
|
|
30
|
+
|
|
35
31
|
let visible = true;
|
|
36
|
-
|
|
37
|
-
// Time Check
|
|
32
|
+
|
|
38
33
|
if (threshold > 0 && ts < threshold) visible = false;
|
|
39
|
-
|
|
40
|
-
// Label Check
|
|
34
|
+
|
|
41
35
|
if (visible && state.selectedLabels.size > 0) {
|
|
42
|
-
// If filter explicitly has this label, show it.
|
|
43
|
-
// Note: We need to handle 'No Label' case specially if needed, but for now simple match.
|
|
44
|
-
// The row data-label might be empty string.
|
|
45
36
|
const checkLbl = lbl || '__no_label__';
|
|
46
37
|
if (!state.selectedLabels.has(checkLbl)) visible = false;
|
|
47
38
|
}
|
|
@@ -53,53 +44,44 @@ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
|
|
|
53
44
|
if (totalCountEl) totalCountEl.innerText = count;
|
|
54
45
|
}
|
|
55
46
|
|
|
56
|
-
// --- Bindings ---
|
|
57
|
-
|
|
58
|
-
// Time Filters
|
|
59
47
|
document.querySelectorAll('.filter-time-btn').forEach(btn => {
|
|
60
48
|
btn.onclick = () => {
|
|
61
|
-
// Update UI
|
|
62
49
|
document.querySelectorAll('.filter-time-btn').forEach(b => {
|
|
63
50
|
b.style.background = '#1e293b';
|
|
64
51
|
b.style.color = '#94a3b8';
|
|
65
52
|
});
|
|
66
53
|
btn.style.background = '#38bdf8';
|
|
67
54
|
btn.style.color = '#0f172a';
|
|
68
|
-
|
|
55
|
+
|
|
69
56
|
state.timeFilter = btn.getAttribute('data-tf');
|
|
70
57
|
updateVisibility();
|
|
71
58
|
};
|
|
72
59
|
});
|
|
73
60
|
|
|
74
|
-
// Label Menu Toggle
|
|
75
61
|
if (labelTrigger && labelMenu) {
|
|
76
62
|
labelTrigger.onclick = (e) => {
|
|
77
63
|
e.stopPropagation();
|
|
78
64
|
labelMenu.style.display = labelMenu.style.display === 'none' ? 'block' : 'none';
|
|
79
65
|
};
|
|
80
|
-
// Close on outside click
|
|
81
66
|
document.body.onclick = () => {
|
|
82
67
|
labelMenu.style.display = 'none';
|
|
83
68
|
};
|
|
84
69
|
labelMenu.onclick = (e) => e.stopPropagation();
|
|
85
70
|
}
|
|
86
71
|
|
|
87
|
-
// Label Checkboxes
|
|
88
72
|
document.querySelectorAll('.filter-label-checkbox').forEach(chk => {
|
|
89
73
|
chk.onchange = () => {
|
|
90
74
|
const val = chk.value;
|
|
91
75
|
if (chk.checked) state.selectedLabels.add(val);
|
|
92
76
|
else state.selectedLabels.delete(val);
|
|
93
|
-
|
|
94
|
-
// Update Trigger Text
|
|
77
|
+
|
|
95
78
|
if (labelTextObj) {
|
|
96
79
|
labelTextObj.innerText = state.selectedLabels.size === 0 ? 'All Filter' : \`\${state.selectedLabels.size} Selected\`;
|
|
97
80
|
}
|
|
98
81
|
updateVisibility();
|
|
99
82
|
};
|
|
100
83
|
});
|
|
101
|
-
|
|
102
|
-
// Clear Labels
|
|
84
|
+
|
|
103
85
|
const clearBtn = document.getElementById('filter-label-clear');
|
|
104
86
|
if (clearBtn) {
|
|
105
87
|
clearBtn.onclick = () => {
|
|
@@ -111,25 +93,19 @@ module.exports=[33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esMod
|
|
|
111
93
|
}
|
|
112
94
|
}
|
|
113
95
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (detail && detail.classList.contains('record-detail')) {
|
|
119
|
-
const isHidden = detail.style.display === 'none';
|
|
120
|
-
detail.style.display = isHidden ? 'block' : 'none';
|
|
121
|
-
// Update icon
|
|
122
|
-
const icon = summary.querySelector('.expand-icon');
|
|
123
|
-
if (icon) icon.innerText = isHidden ? '▲' : '▼';
|
|
124
|
-
}
|
|
96
|
+
const homeLink = document.getElementById('home-link');
|
|
97
|
+
if (homeLink) {
|
|
98
|
+
homeLink.onclick = () => {
|
|
99
|
+
window.location.href = '/';
|
|
125
100
|
};
|
|
126
|
-
|
|
101
|
+
homeLink.onmouseover = () => { homeLink.style.color = '#7dd3fc'; };
|
|
102
|
+
homeLink.onmouseout = () => { homeLink.style.color = '#38bdf8'; };
|
|
103
|
+
}
|
|
127
104
|
|
|
128
|
-
// Charts Notice
|
|
129
105
|
console.log('Offline Mode: Charts are static snapshots.');
|
|
130
106
|
})();
|
|
131
107
|
</script>
|
|
132
108
|
`,c=new Blob([`<!DOCTYPE html>
|
|
133
|
-
${a.outerHTML}${b}`],{type:"text/html"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`detail_export_${g||"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:"#38bdf8",color:"#0f172a",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:"#94a3b8"},children:["Framework: ",(0,b.jsx)("strong",{style:{color:"white"},children:t||"All"})," | Total Records: ",(0,b.jsx)("span",{id:"total-records-count",children:an.length})]}),(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:()=>I(a),style:{padding:"6px 16px",background:H===a?"#38bdf8":"#1e293b",color:H===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:()=>aj("label"),style:{padding:"4px 12px",borderRadius:"4px",fontSize:"0.85rem",background:"label"===ai?"#38bdf8":"transparent",color:"label"===ai?"#0f172a":"#94a3b8",border:"none",cursor:"pointer",transition:"all 0.2s",fontWeight:"label"===ai?"bold":"normal"},children:"标签 (Label)"}),(0,b.jsx)("button",{onClick:()=>aj("model"),style:{padding:"4px 12px",borderRadius:"4px",fontSize:"0.85rem",background:"model"===ai?"#38bdf8":"transparent",color:"model"===ai?"#0f172a":"#94a3b8",border:"none",cursor:"pointer",transition:"all 0.2s",fontWeight:"model"===ai?"bold":"normal"},children:"模型 (Model)"})]})]}),al.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:()=>af(!ae),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===aa.size?"All Filter":`${aa.size} Selected`}),(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:"▼"})]}),(0,b.jsxs)("div",{id:"label-menu-dropdown",style:{display:ae?"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:()=>{ab(new Set),af(!1)},style:{cursor:"pointer",padding:"4px 8px",fontSize:"0.9rem",color:0===aa.size?"#38bdf8":"#94a3b8",borderBottom:"1px solid #334155",marginBottom:"4px"},children:"Show All (Clear Filter)"}),al.map(a=>{let c=aa.has(a),d=a===ak?"(None)":String(a),e=a===ak?"__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(aa);b.has(a)?b.delete(a):b.add(a),ab(b)}}),(0,b.jsx)("span",{style:{color:c?"#fff":"#cbd5e1"},children:d})]},String(a))})]}),ae&&(0,b.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:40},onClick:()=>af(!1)})]})]}),am.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:()=>ah(!ag),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===ac.size?"All Models":`${ac.size} Selected`}),(0,b.jsx)("span",{style:{fontSize:"0.7rem"},children:"▼"})]}),(0,b.jsxs)("div",{style:{display:ag?"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:()=>{ad(new Set),ah(!1)},style:{cursor:"pointer",padding:"4px 8px",fontSize:"0.9rem",color:0===ac.size?"#38bdf8":"#94a3b8",borderBottom:"1px solid #334155",marginBottom:"4px"},children:"Show All (Clear Filter)"}),am.map(a=>{let c=ac.has(a),d=a===ak?"(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(ac);b.has(a)?b.delete(a):b.add(a),ad(b)}}),(0,b.jsx)("span",{style:{color:c?"#fff":"#cbd5e1"},children:d})]},String(a))})]}),ag&&(0,b.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:40},onClick:()=>ah(!1)})]})]})]}),an.some(a=>null!=a.context_window_pct)&&(0,b.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,b.jsxs)("button",{onClick:()=>$(!Z),style:{background:"transparent",border:"1px solid #334155",color:"#94a3b8",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:Z?"▲":"▼"}),"上下文窗口利用率趋势 (%)"]}),Z&&(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["上下文窗口利用率趋势 (%)",(0,b.jsx)(r,{content:"单次 LLM 调用中最大 token 数 / 模型上下文窗口限制 × 100。超过 90% 时推理质量可能下降。"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:an.filter(a=>null!=a.context_window_pct),children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"timestamp",tickFormatter:av,stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11,domain:[0,100]}),(0,b.jsx)(n,{contentStyle:{background:"#1e293b",borderColor:"#334155"}}),(0,b.jsx)(o,{y:90,stroke:"#f87171",strokeDasharray:"4 4",label:{value:"90%",fill:"#f87171",fontSize:11}}),(0,b.jsx)(i,{type:"monotone",dataKey:"context_window_pct",stroke:"#a78bfa",dot:!0,strokeWidth:2})]})})]})]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"1rem",marginBottom:"2rem"},children:[(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["时延趋势 (秒)",(0,b.jsx)(r,{content:"从请求发出到收到最终完整回复的总耗时"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:an,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"timestamp",tickFormatter:av,stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(n,{contentStyle:{background:"#1e293b",borderColor:"#334155"}}),(0,b.jsx)(i,{type:"monotone",dataKey:"latency",stroke:"#38bdf8",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["Token 消耗趋势",(0,b.jsx)(r,{content:"输入 Prompt 与输出 Completion 的 Token 总和"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:an,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"timestamp",tickFormatter:av,stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(n,{contentStyle:{background:"#1e293b",borderColor:"#334155"}}),(0,b.jsx)(i,{type:"monotone",dataKey:"tokens",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["准确率趋势 (0-1)",(0,b.jsx)(r,{content:"基于 AI 裁判 (LLM) 对执行结果的自动评分 (1.0=通过, 0.0=失败)"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:an,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"timestamp",tickFormatter:av,stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11,domain:[0,1]}),(0,b.jsx)(n,{contentStyle:{background:"#1e293b",borderColor:"#334155"}}),(0,b.jsx)(i,{type:"monotone",dataKey:"answer_score",stroke:"#4ade80",dot:!0,strokeWidth:2})]})})]})]}),ao.latency.length>0&&(0,b.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,b.jsxs)("h2",{style:{fontSize:"1.25rem",marginBottom:"1rem"},children:["按 ","label"===ai?"标签 (Label)":"模型 (Model)"," 对比 (平均值)"]}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"1rem"},children:[(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["平均时延 - ","label"===ai?"标签":"模型",(0,b.jsx)(r,{content:"平均延迟时间"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:ao.latency,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(n,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(i,{type:"monotone",dataKey:"latency",stroke:"#38bdf8",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["平均 Token - ","label"===ai?"标签":"模型",(0,b.jsx)(r,{content:"平均 Token 使用量"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:ao.tokens,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11}),(0,b.jsx)(n,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(i,{type:"monotone",dataKey:"tokens",stroke:"#f472b6",dot:!0,strokeWidth:2})]})})]}),(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["平均准确率 - ","label"===ai?"标签":"模型",(0,b.jsx)(r,{content:"平均准确率 (0-1)"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:ao.accuracy,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11,domain:[0,1]}),(0,b.jsx)(n,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(i,{type:"monotone",dataKey:"answer_score",stroke:"#4ade80",dot:!0,strokeWidth:2})]})})]}),ao.contextWindow.length>0&&(0,b.jsxs)("div",{className:"card",style:v,children:[(0,b.jsxs)("h3",{style:w,children:["平均窗口% - ","label"===ai?"标签":"模型",(0,b.jsx)(r,{content:"平均上下文窗口利用率 (%)"})]}),(0,b.jsx)(p,{width:"100%",height:200,children:(0,b.jsxs)(j,{data:ao.contextWindow,children:[(0,b.jsx)(m,{strokeDasharray:"3 3",stroke:"#334155"}),(0,b.jsx)(k,{dataKey:"name",tickFormatter:a=>String(a),stroke:"#64748b",fontSize:11}),(0,b.jsx)(l,{stroke:"#64748b",fontSize:11,domain:[0,100]}),(0,b.jsx)(n,{contentStyle:{background:"#1e292b",borderColor:"#334155"}}),(0,b.jsx)(o,{y:90,stroke:"#f87171",strokeDasharray:"4 4"}),(0,b.jsx)(i,{type:"monotone",dataKey:"context_window_pct",stroke:"#a78bfa",dot:!0,strokeWidth:2})]})})]})]})]}),(0,b.jsxs)("div",{className:"list-container",children:[(0,b.jsx)("h2",{style:{fontSize:"1.25rem",marginBottom:"1rem"},children:"执行记录详情"}),(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr 1fr 1fr 50px",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:"评分"}),(0,b.jsx)("div",{})]}),an.slice().reverse().map(a=>{let c=a.task_id||a.upload_id||`temp-${a.timestamp}`,d=F.has(c),e=D[c];return(0,b.jsxs)("div",{className:"record-row","data-timestamp":new Date(a.timestamp).getTime(),"data-label":a.label||"__no_label__",style:{borderBottom:"1px solid #1e293b",background:"#1e293b",marginBottom:"1px"},children:[(0,b.jsxs)("div",{className:"record-summary",style:{display:"grid",gridTemplateColumns:"2fr 1fr 1fr 1fr 1fr 1fr 1fr 50px",padding:"1rem",alignItems:"center",cursor:"pointer",transition:"background 0.2s"},onClick:()=>au(c),onMouseOver:a=>a.currentTarget.style.background="#334155",onMouseOut:a=>a.currentTarget.style.background="transparent",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{fontWeight:"bold",fontSize:"0.95rem"},children:(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")})(a.timestamp)}),(0,b.jsx)("div",{style:{fontSize:"0.8rem",color:"#64748b"},children:c})]}),(0,b.jsx)("div",{children:(0,b.jsx)("span",{style:{padding:"4px 8px",borderRadius:"4px",fontSize:"0.8rem",fontWeight:"bold",background:null===a.answer_score?"rgba(148, 163, 184, 0.1)":(a.answer_score||0)>.8?"rgba(74, 222, 128, 0.1)":"rgba(248, 113, 113, 0.1)",color:null===a.answer_score?"#94a3b8":(a.answer_score||0)>.8?"#4ade80":"#f87171"},children:null===a.answer_score?"--":(a.answer_score||0)>.8?"PASS":"FAIL"})}),(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.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)}),(0,b.jsx)("div",{style:{textAlign:"center",color:"#94a3b8"},className:"expand-icon",children:d?"▲":"▼"})]}),(0,b.jsxs)("div",{className:"record-detail",style:{display:d?"block":"none",padding:"1.5rem",background:"#0f172a",borderTop:"1px solid #334155"},children:[(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"2fr 1fr",gap:"2rem",marginBottom:"2rem"},children:[(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,b.jsx)("h4",{style:x,children:"Query"}),J===c?(0,b.jsxs)("div",{children:[(0,b.jsx)("textarea",{value:L,onChange:a=>M(a.target.value),rows:3,style:{width:"100%",padding:"0.75rem",background:"#1e293b",border:"1px solid #334155",borderRadius:"6px",color:"#e2e8f0",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:()=>aq(c,a.upload_id),disabled:N?.id===c&&N?.status==="saving",style:{padding:"6px 14px",background:"#38bdf8",color:"#0f172a",border:"none",borderRadius:"4px",cursor:N?.id===c&&N?.status==="saving"?"not-allowed":"pointer",fontWeight:"bold"},children:N?.id===c&&N?.status==="saving"?"保存中...":"保存"}),(0,b.jsx)("button",{onClick:ap,style:{padding:"6px 14px",background:"#334155",color:"#94a3b8",border:"none",borderRadius:"4px",cursor:"pointer"},children:"取消"}),N?.id===c&&N?.status==="ok"&&(0,b.jsx)("span",{style:{color:"#4ade80",fontSize:"0.9rem"},children:N.msg}),N?.id===c&&N?.status==="error"&&(0,b.jsx)("span",{style:{color:"#f87171",fontSize:"0.9rem"},children:N.msg})]})]}):(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.5rem"},children:[(0,b.jsx)("div",{style:y,children:a.query||"(空)"}),(0,b.jsx)("button",{onClick:b=>{var d;b.stopPropagation(),d=a.query||"",K(c),M(d||""),O(null)},style:{padding:"4px 10px",background:"transparent",color:"#38bdf8",border:"1px solid #38bdf8",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:"4px",fontSize:"0.8rem",whiteSpace:"nowrap"},children:"✏️ 编辑"})]})]}),(0,b.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,b.jsx)("h4",{style:x,children:"Final Result"}),P===c?(0,b.jsxs)("div",{style:{marginTop:"0.5rem"},children:[(0,b.jsx)("textarea",{value:R,onChange:a=>S(a.target.value),rows:6,style:{width:"100%",padding:"0.75rem",background:"#1e293b",border:"1px solid #334155",borderRadius:"6px",color:"#e2e8f0",fontFamily:"monospace",fontSize:"0.9rem",resize:"vertical"},placeholder:"输入或上传 Final Result"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.5rem",alignItems:"center"},children:[(0,b.jsx)("button",{onClick:()=>as(c,a.upload_id),disabled:T?.id===c&&T?.status==="saving",style:{padding:"6px 14px",background:"#38bdf8",color:"#0f172a",border:"none",borderRadius:"4px",cursor:T?.id===c&&T?.status==="saving"?"not-allowed":"pointer",fontWeight:"bold"},children:T?.id===c&&T?.status==="saving"?"保存中...":"保存并重评"}),(0,b.jsx)("button",{onClick:ar,style:{padding:"6px 14px",background:"#334155",color:"#94a3b8",border:"none",borderRadius:"4px",cursor:"pointer"},children:"取消"}),(0,b.jsxs)("label",{style:{padding:"6px 14px",background:"#2d3748",color:"#fbbf24",border:"1px solid #fbbf24",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:at})]}),T?.id===c&&T?.status==="ok"&&(0,b.jsx)("span",{style:{color:"#4ade80",fontSize:"0.9rem"},children:T.msg}),T?.id===c&&T?.status==="error"&&(0,b.jsx)("span",{style:{color:"#f87171",fontSize:"0.9rem"},children:T.msg})]})]}):(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{style:{...y,maxHeight:"300px",overflowY:"auto",padding:"1rem",background:"#1e293b",border:"1px solid #334155",borderRadius:"6px"},children:a.final_result||"(No Result)"}),(0,b.jsx)("div",{style:{marginTop:"0.5rem"},children:(0,b.jsx)("button",{onClick:b=>{var d;b.stopPropagation(),d=a.final_result||"",Q(c),S(d||""),U(null)},style:{padding:"4px 10px",background:"transparent",color:"#38bdf8",border:"1px solid #38bdf8",borderRadius:"4px",cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"4px",fontSize:"0.8rem"},children:"✏️ 编辑 / 替换结果"})})]})]}),(0,b.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,b.jsx)("h4",{style:x,children:"Judgment Reason"}),(0,b.jsx)("div",{style:{...y,background:"#1e293b",padding:"1rem",borderRadius:"6px",border:"1px solid #334155"},children:a.judgment_reason||"-"})]}),a.failures&&a.failures.length>0?(0,b.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,b.jsx)("h4",{style:{...x,color:"#f87171",borderLeft:"3px solid #f87171",paddingLeft:"8px",borderBottom:"none"},children:" Intermediate Failures / Anomalies "}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:a.failures.map((a,c)=>(0,b.jsxs)("div",{style:{background:"rgba(248, 113, 113, 0.1)",border:"1px solid #7f1d1d",borderRadius:"6px",padding:"1rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,b.jsx)("span",{style:{background:"#f87171",color:"#0f172a",padding:"2px 8px",borderRadius:"4px",fontSize:"0.8rem",fontWeight:"bold"},children:a.failure_type}),(0,b.jsx)("span",{style:{color:"#fca5a5",fontWeight:"bold"},children:a.description})]}),a.context&&(0,b.jsx)("div",{style:{marginBottom:"0.5rem",fontSize:"0.9rem",color:"#cbd5e1",fontFamily:"monospace",background:"rgba(0,0,0,0.3)",padding:"0.5rem",borderRadius:"4px"},children:a.context}),a.recovery&&(0,b.jsxs)("div",{style:{fontSize:"0.9rem",color:"#86efac"},children:[(0,b.jsx)("strong",{style:{color:"#94a3b8"},children:"Recovery:"})," ",a.recovery]})]},c))})]}):(0,b.jsx)("div",{style:{padding:"1rem",border:"1px dashed #334155",borderRadius:"6px",color:"#64748b",textAlign:"center",fontSize:"0.9rem"},children:"No intermediate failures detected."})]}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,b.jsx)("h4",{style:x,children:"Skills Used"}),(0,b.jsx)("div",{style:{...y,padding:"0.5rem",background:"#1e293b",borderRadius:"4px",border:"1px solid #334155"},children:(0,b.jsx)(h.SkillLinks,{skills:a.skills,skill:a.skill,skillVersion:a.skill_version,user:a.user})})]}),(0,b.jsxs)("div",{style:{background:"#1e293b",borderRadius:"6px",border:"1px solid #334155",padding:"1rem"},children:[(0,b.jsxs)("h4",{style:{...x,display:"flex",alignItems:"center",gap:"6px"},children:[(0,b.jsx)("span",{children:"🛡️"})," Skill Analysis"]}),a.skill_issues&&a.skill_issues.length>0?(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{style:{marginBottom:"1rem",display:"flex",alignItems:"center",gap:"10px"},children:[(0,b.jsxs)("div",{style:{textAlign:"center",background:"#0f172a",padding:"8px",borderRadius:"4px",border:"1px solid #ef4444"},children:[(0,b.jsx)("div",{style:{fontSize:"1.2rem",fontWeight:"bold",color:"#ef4444"},children:a.skill_issues.length}),(0,b.jsx)("div",{style:{fontSize:"0.7rem",color:"#64748b"},children:"SKILL ISSUES"})]}),(0,b.jsx)("div",{style:{fontSize:"0.85rem",color:"#cbd5e1",flex:1},children:"以下评分项扣分可通过优化 Skill 定义改善:"})]}),(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"8px",maxHeight:"400px",overflowY:"auto"},children:a.skill_issues.map((a,c)=>(0,b.jsxs)("div",{style:{padding:"10px",background:"rgba(239, 68, 68, 0.1)",borderLeft:"3px solid #ef4444",borderRadius:"0 4px 4px 0"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"6px"},children:[(0,b.jsx)("span",{style:{background:"root_cause"===a.type?"#f472b6":"#38bdf8",color:"#0f172a",padding:"2px 6px",borderRadius:"4px",fontSize:"0.7rem",fontWeight:"bold"},children:a.id}),(0,b.jsxs)("span",{style:{color:"#fca5a5",fontWeight:"bold",fontSize:"0.85rem"},children:["得分: ",(100*(a.match_score||0)).toFixed(0),"%"]})]}),(0,b.jsxs)("div",{style:{fontSize:"0.85rem",color:"#e2e8f0",marginBottom:"6px"},children:[(0,b.jsx)("strong",{children:"评分标准:"}),a.content]}),(0,b.jsxs)("div",{style:{fontSize:"0.8rem",color:"#cbd5e1",marginBottom:"6px"},children:[(0,b.jsx)("strong",{children:"扣分原因:"}),a.explanation]}),(0,b.jsxs)("div",{style:{fontSize:"0.8rem",color:"#fcd34d",marginBottom:"6px",fontStyle:"italic"},children:[(0,b.jsx)("strong",{children:"分析依据:"}),a.reasoning]}),a.improvement_suggestion&&(0,b.jsxs)("div",{style:{fontSize:"0.8rem",color:"#86efac",background:"rgba(74, 222, 128, 0.1)",padding:"6px",borderRadius:"4px"},children:[(0,b.jsx)("strong",{children:"💡 改进建议:"}),a.improvement_suggestion]})]},c))})]}):(0,b.jsxs)("div",{style:{color:"#4ade80",fontSize:"0.9rem",display:"flex",alignItems:"center",gap:"6px"},children:[(0,b.jsx)("span",{style:{fontSize:"1.2rem"},children:"✅"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("strong",{children:"No Skill Issues Detected"}),(0,b.jsx)("div",{style:{fontSize:"0.8rem",color:"#94a3b8",marginTop:"4px"},children:"所有扣分项均不是 Skill 定义的问题,无需优化 Skill。"})]})]})]})]})]}),(0,b.jsx)(f,{executionId:c,skillId:a.skill&&a.skill.trim()||(Array.isArray(a.skills)&&a.skills.length>0?a.skills[0]:void 0),user:a.user,onStepClick:Y}),(0,b.jsxs)("div",{style:{marginBottom:"2rem",padding:"1.5rem",background:"#1e293b",borderRadius:"8px",border:"1px solid #334155"},children:[(0,b.jsx)("h4",{style:{...x,marginBottom:"1rem"},children:"用户反馈 (User Feedback)"}),(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",gap:"1rem",alignItems:"center"},children:[(0,b.jsx)("button",{onClick:b=>{b.stopPropagation(),_(a,"like")},style:{display:"flex",alignItems:"center",gap:"0.5rem",background:a.user_feedback?.type==="like"?"#38bdf8":"#0f172a",color:a.user_feedback?.type==="like"?"#0f172a":"#94a3b8",border:"1px solid #334155",padding:"6px 12px",borderRadius:"4px",cursor:"pointer",fontWeight:a.user_feedback?.type==="like"?"bold":"normal",transition:"all 0.2s"},children:"👍 Like"}),(0,b.jsx)("button",{onClick:b=>{b.stopPropagation(),_(a,"dislike")},style:{display:"flex",alignItems:"center",gap:"0.5rem",background:a.user_feedback?.type==="dislike"?"#f87171":"#0f172a",color:a.user_feedback?.type==="dislike"?"#0f172a":"#94a3b8",border:"1px solid #334155",padding:"6px 12px",borderRadius:"4px",cursor:"pointer",fontWeight:a.user_feedback?.type==="dislike"?"bold":"normal",transition:"all 0.2s"},children:"👎 Dislike"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"flex-start"},children:[(0,b.jsx)("textarea",{value:void 0!==V[c]?V[c]:a.user_feedback?.comment||"",onChange:a=>{let b=a.target.value;W(a=>({...a,[c]:b}))},onClick:a=>a.stopPropagation(),placeholder:"添加评论 (可选)...",style:{flex:1,minHeight:"60px",padding:"8px",background:"#0f172a",border:"1px solid #334155",color:"#e2e8f0",borderRadius:"4px",fontSize:"0.9rem"}}),(0,b.jsx)("button",{className:"btn-primary",onClick:b=>{b.stopPropagation(),_(a,a.user_feedback?.type||null,V[c])},style:{padding:"8px 16px",fontSize:"0.9rem",height:"fit-content",whiteSpace:"nowrap",background:"#38bdf8",color:"#0f172a",border:"none",borderRadius:"4px",cursor:"pointer"},children:"保存评论"})]})]})]}),(null!=a.llm_call_count||null!=a.tool_call_count||null!=a.input_tokens||null!=a.output_tokens||null!=a.tool_call_error_count)&&(0,b.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,b.jsx)("h4",{style:x,children:"Runtime Metrics"}),(0,b.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(120px, 1fr))",gap:"0.75rem",marginTop:"0.5rem"},children:[{label:"LLM Calls",value:a.llm_call_count,color:"#38bdf8"},{label:"Tool Calls",value:a.tool_call_count,color:"#38bdf8"},{label:"Tool Errors",value:a.tool_call_error_count??0,color:a.tool_call_error_count?"#f87171":"#4ade80"},{label:"Input Tokens",value:a.input_tokens,color:"#38bdf8"},{label:"Output Tokens",value:a.output_tokens,color:"#38bdf8"},{label:"Context Window %",value:a.context_window_pct,color:null!=a.context_window_pct?a.context_window_pct>90?"#f87171":"#4ade80":"#38bdf8",format:a=>`${a.toFixed(1)}%`,fallback:null==a.context_window_pct&&null!=a.max_single_call_tokens?"N/A":void 0,tooltip:null!=a.context_window_pct?`max_single_call_tokens (${a.max_single_call_tokens?.toLocaleString()}) / context_window_limit (${a.context_window_limit?.toLocaleString()}) \xd7 100`+(a.model?` (${a.model})`:"")+`. Source: ${a.context_window_source||"default"}.`:a.model?`Context window not configured for model: ${a.model}.`:"Model unknown. Context window % cannot be calculated."},{label:"Est. Cost",value:a.cost,color:"#38bdf8",format:a=>`$${0===a?"0.00":a<.01?a.toFixed(4):a<1?a.toFixed(3):a.toFixed(2)}`,fallback:null==a.cost&&null!=a.input_tokens?"N/A":void 0,tooltip:a.cost_pricing?(a.cache_read_input_tokens||a.cache_creation_input_tokens?`Cost = base_input \xd7 $${a.cost_pricing.inputTokenPrice}/M + cache_read \xd7 $${a.cost_pricing.cacheReadInputTokenPrice}/M + cache_create \xd7 $${a.cost_pricing.cacheCreationInputTokenPrice}/M + output \xd7 $${a.cost_pricing.outputTokenPrice}/M`:`Cost = input_tokens \xd7 $${a.cost_pricing.inputTokenPrice}/M + output_tokens \xd7 $${a.cost_pricing.outputTokenPrice}/M`)+(a.model?` (${a.model})`:"")+`. Estimated from ${"custom"===a.cost_pricing.source?"custom":"default"} pricing.`:a.model?`Pricing not available for model: ${a.model}.`:"Model unknown. Cost cannot be estimated."}].map((a,c)=>(0,b.jsxs)("div",{style:{background:"#1e293b",border:"1px solid #334155",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:"#64748b",marginTop:"4px"},children:[a.label,"tooltip"in a&&a.tooltip&&(0,b.jsx)(r,{content:a.tooltip})]})]},c))})]}),e?e.error?(0,b.jsx)("div",{style:{color:"#94a3b8",fontStyle:"italic"},children:e.error}):(0,b.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"2rem"},children:[(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.5rem",borderBottom:"1px solid #334155",paddingBottom:"4px",minHeight:"34px"},children:(0,b.jsx)("h4",{style:x,children:"Session Data (Raw JSON)"})}),(0,b.jsx)("div",{style:{background:"#1e293b",padding:"1rem",borderRadius:"8px",overflow:"hidden"},children:(0,b.jsx)(q,{src:e,theme:"monokai",shouldCollapse:a=>{let b=[...a.namespace||[],a.name].filter(a=>null!=a&&""!==String(a).trim()).map(String);if(null===X)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!==X)return!0}}return!1},displayDataTypes:!1,name:null,style:{backgroundColor:"transparent",fontSize:"0.85rem"},enableClipboard:!0},`json-${null!==X?X:"default"}`)})]}),(0,b.jsx)("div",{style:{minWidth:0},children:(0,b.jsx)(s,{interactions:e.interactions,focusedStep:X,onStepClick:Y})})]}):(0,b.jsx)("div",{style:{color:"#38bdf8"},children:"Loading session log..."})]})]},c)})]})]})}let v={background:"#1e293b",border:"1px solid #334155",borderRadius:"8px",padding:"1rem",display:"flex",flexDirection:"column"},w={margin:"0 0 1rem 0",fontSize:"0.9rem",color:"#94a3b8",fontWeight:"normal"},x={color:"#38bdf8",margin:0,fontSize:"0.95rem"},y={fontFamily:"monospace",fontSize:"0.9rem",lineHeight:"1.5",whiteSpace:"pre-wrap",color:"#e2e8f0"};a.s(["default",()=>t],87986)}];
|
|
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)}];
|
|
134
110
|
|
|
135
111
|
//# sourceMappingURL=_c8c8c083._.js.map
|