agent-insight 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (832) hide show
  1. package/.env.example +6 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +9 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +51 -3
  6. package/.next/standalone/.next/routes-manifest.json +60 -0
  7. package/.next/standalone/.next/server/app/(main)/accessconfig/channels/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/accessconfig/health/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(main)/accessconfig/install/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/accessconfig/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/accessconfig/webhooks/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(main)/agents/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(main)/dashboard/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/(main)/dataset/[id]/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(main)/dataset/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/(main)/eval/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(main)/eval/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(main)/eval/run/[runId]/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/(main)/eval/trajectory/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/(main)/evaluation/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(main)/fault/page.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/(main)/fault/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/(main)/infra/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/(main)/infra/sources/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/(main)/memory/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(main)/metrics/evaluators/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/(main)/metrics/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/(main)/modelconfig/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/(main)/modelconfig/registry/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/(main)/modelconfig/web-search/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/(main)/optapi/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/(main)/quality/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/(main)/security/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/(main)/skill-eval/grayscale/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/(main)/skill-eval/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(main)/skill-eval/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/(main)/skill-eval/trigger/[skillName]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/(main)/skill-generator/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/(main)/skill-history/page.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/(main)/skill-opt/[name]/[version]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/(main)/skill-opt/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/(main)/skill-release/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/(main)/skills/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/(main)/trace/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/(main)/version-analysis/page/app-paths-manifest.json +3 -0
  60. package/.next/standalone/.next/server/app/(main)/version-analysis/page/build-manifest.json +17 -0
  61. package/.next/standalone/.next/server/app/(main)/version-analysis/page/next-font-manifest.json +6 -0
  62. package/.next/standalone/.next/server/app/(main)/version-analysis/page/react-loadable-manifest.json +1 -0
  63. package/.next/standalone/.next/server/app/(main)/version-analysis/page/server-reference-manifest.json +4 -0
  64. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js +17 -0
  65. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.map +5 -0
  66. package/.next/standalone/.next/server/app/(main)/version-analysis/page.js.nft.json +1 -0
  67. package/.next/standalone/.next/server/app/(main)/version-analysis/page_client-reference-manifest.js +2 -0
  68. package/.next/standalone/.next/server/app/(main)/version-management/page/app-paths-manifest.json +3 -0
  69. package/.next/standalone/.next/server/app/(main)/version-management/page/build-manifest.json +17 -0
  70. package/.next/standalone/.next/server/app/(main)/version-management/page/next-font-manifest.json +6 -0
  71. package/.next/standalone/.next/server/app/(main)/version-management/page/react-loadable-manifest.json +1 -0
  72. package/.next/standalone/.next/server/app/(main)/version-management/page/server-reference-manifest.json +4 -0
  73. package/.next/standalone/.next/server/app/(main)/version-management/page.js +17 -0
  74. package/.next/standalone/.next/server/app/(main)/version-management/page.js.map +5 -0
  75. package/.next/standalone/.next/server/app/(main)/version-management/page.js.nft.json +1 -0
  76. package/.next/standalone/.next/server/app/(main)/version-management/page_client-reference-manifest.js +2 -0
  77. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  78. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  79. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  86. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  87. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  88. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  89. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  90. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  91. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  93. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  94. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +5 -5
  95. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +2 -2
  96. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  97. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +2 -2
  99. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +5 -5
  100. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +3 -3
  102. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  104. package/.next/standalone/.next/server/app/accessconfig/health.rsc +5 -5
  105. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +2 -2
  106. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  107. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  108. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +2 -2
  109. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +5 -5
  110. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  111. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +3 -3
  112. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +2 -2
  113. package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
  114. package/.next/standalone/.next/server/app/accessconfig/install.rsc +5 -5
  115. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +2 -2
  119. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +5 -5
  120. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +3 -3
  122. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  124. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +5 -5
  125. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +2 -2
  126. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  128. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +2 -2
  129. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +5 -5
  130. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +3 -3
  132. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  134. package/.next/standalone/.next/server/app/accessconfig.rsc +4 -4
  135. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  136. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  137. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +2 -2
  138. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +4 -4
  139. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  140. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +3 -3
  141. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +2 -2
  142. package/.next/standalone/.next/server/app/agents.html +1 -1
  143. package/.next/standalone/.next/server/app/agents.rsc +5 -5
  144. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  145. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  146. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  147. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +5 -5
  148. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  149. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  150. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  151. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js +10 -10
  165. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js +6 -6
  170. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/eval/config/route.js +6 -6
  174. package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js +6 -6
  178. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js +5 -5
  184. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js +13 -13
  186. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/fleet/agent/route/app-paths-manifest.json +3 -0
  193. package/.next/standalone/.next/server/app/api/fleet/agent/route/build-manifest.json +11 -0
  194. package/.next/standalone/.next/server/app/api/fleet/agent/route/server-reference-manifest.json +4 -0
  195. package/.next/standalone/.next/server/app/api/fleet/agent/route.js +8 -0
  196. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.map +5 -0
  197. package/.next/standalone/.next/server/app/api/fleet/agent/route.js.nft.json +1 -0
  198. package/.next/standalone/.next/server/app/api/fleet/agent/route_client-reference-manifest.js +2 -0
  199. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/fleet/trends/route.js +2 -2
  202. package/.next/standalone/.next/server/app/api/fleet/trends/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js +3 -3
  205. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
  207. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
  208. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js +5 -5
  209. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
  210. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js +9 -9
  212. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
  214. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
  216. package/.next/standalone/.next/server/app/api/ingest/upload/route.js +8 -8
  217. package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/app-paths-manifest.json +3 -0
  219. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/build-manifest.json +11 -0
  220. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route/server-reference-manifest.json +4 -0
  221. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js +8 -0
  222. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.map +5 -0
  223. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route.js.nft.json +1 -0
  224. package/.next/standalone/.next/server/app/api/modelconfig/pricing/route_client-reference-manifest.js +2 -0
  225. package/.next/standalone/.next/server/app/api/observe/data/route.js +3 -3
  226. package/.next/standalone/.next/server/app/api/observe/data/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  228. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js +13 -13
  229. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  231. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -1
  232. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/app-paths-manifest.json +3 -0
  233. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/build-manifest.json +11 -0
  234. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route/server-reference-manifest.json +4 -0
  235. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js +8 -0
  236. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.map +5 -0
  237. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route.js.nft.json +1 -0
  238. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/tags/route_client-reference-manifest.js +2 -0
  239. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -1
  240. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -1
  241. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -1
  243. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -1
  244. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -1
  246. package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
  247. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js +3 -3
  248. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
  249. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/app-paths-manifest.json +3 -0
  250. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/build-manifest.json +11 -0
  251. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route/server-reference-manifest.json +4 -0
  252. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js +8 -0
  253. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.map +5 -0
  254. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route.js.nft.json +1 -0
  255. package/.next/standalone/.next/server/app/api/observe/version-analysis/compare/route_client-reference-manifest.js +2 -0
  256. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/app-paths-manifest.json +3 -0
  257. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/build-manifest.json +11 -0
  258. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route/server-reference-manifest.json +4 -0
  259. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js +8 -0
  260. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.map +5 -0
  261. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route.js.nft.json +1 -0
  262. package/.next/standalone/.next/server/app/api/observe/version-analysis/tags/[tagId]/traces/route_client-reference-manifest.js +2 -0
  263. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js +5 -5
  264. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -1
  265. package/.next/standalone/.next/server/app/api/quality/agents/route.js +7 -7
  266. package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
  267. package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
  268. package/.next/standalone/.next/server/app/api/quality/executions/route.js +7 -7
  269. package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
  270. package/.next/standalone/.next/server/app/api/quality/report/route.js.nft.json +1 -1
  271. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js.nft.json +1 -1
  273. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
  276. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js.nft.json +1 -1
  277. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  279. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js.nft.json +1 -1
  280. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  282. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  283. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js.nft.json +1 -1
  285. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js.nft.json +1 -1
  286. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js.nft.json +1 -1
  288. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js.nft.json +1 -1
  289. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
  291. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
  292. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  294. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js +7 -7
  295. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
  296. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js +2 -2
  297. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
  298. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  300. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js.nft.json +1 -1
  301. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  303. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  304. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  306. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  307. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
  309. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
  310. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  312. package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -6
  313. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
  315. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  316. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  318. package/.next/standalone/.next/server/app/api/tags/[id]/route/app-paths-manifest.json +3 -0
  319. package/.next/standalone/.next/server/app/api/tags/[id]/route/build-manifest.json +11 -0
  320. package/.next/standalone/.next/server/app/api/tags/[id]/route/server-reference-manifest.json +4 -0
  321. package/.next/standalone/.next/server/app/api/tags/[id]/route.js +8 -0
  322. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.map +5 -0
  323. package/.next/standalone/.next/server/app/api/tags/[id]/route.js.nft.json +1 -0
  324. package/.next/standalone/.next/server/app/api/tags/[id]/route_client-reference-manifest.js +2 -0
  325. package/.next/standalone/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  326. package/.next/standalone/.next/server/app/api/tags/route/build-manifest.json +11 -0
  327. package/.next/standalone/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  328. package/.next/standalone/.next/server/app/api/tags/route.js +8 -0
  329. package/.next/standalone/.next/server/app/api/tags/route.js.map +5 -0
  330. package/.next/standalone/.next/server/app/api/tags/route.js.nft.json +1 -0
  331. package/.next/standalone/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  332. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  333. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  334. package/.next/standalone/.next/server/app/dashboard.rsc +5 -5
  335. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  336. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +2 -2
  338. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  339. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  340. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  341. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  342. package/.next/standalone/.next/server/app/dataset.html +1 -1
  343. package/.next/standalone/.next/server/app/dataset.rsc +5 -5
  344. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +2 -2
  345. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +5 -5
  348. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +3 -3
  350. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +2 -2
  351. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  352. package/.next/standalone/.next/server/app/eval/trajectory.rsc +5 -5
  353. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +2 -2
  354. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  355. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  356. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +2 -2
  357. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +5 -5
  358. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +3 -3
  360. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +2 -2
  361. package/.next/standalone/.next/server/app/eval.html +1 -1
  362. package/.next/standalone/.next/server/app/eval.rsc +5 -5
  363. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +2 -2
  364. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  365. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +2 -2
  366. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +5 -5
  367. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  368. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +3 -3
  369. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +2 -2
  370. package/.next/standalone/.next/server/app/fault.html +1 -1
  371. package/.next/standalone/.next/server/app/fault.rsc +5 -5
  372. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +2 -2
  373. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  374. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +2 -2
  375. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +5 -5
  376. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  377. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +3 -3
  378. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +2 -2
  379. package/.next/standalone/.next/server/app/index.html +1 -1
  380. package/.next/standalone/.next/server/app/index.rsc +3 -3
  381. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  382. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  383. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  384. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  385. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  386. package/.next/standalone/.next/server/app/infra/sources.html +1 -1
  387. package/.next/standalone/.next/server/app/infra/sources.rsc +5 -5
  388. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +2 -2
  389. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
  390. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
  391. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +2 -2
  392. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +5 -5
  393. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
  394. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +3 -3
  395. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +2 -2
  396. package/.next/standalone/.next/server/app/infra.html +1 -1
  397. package/.next/standalone/.next/server/app/infra.rsc +5 -5
  398. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +2 -2
  399. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +2 -2
  401. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +5 -5
  402. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +3 -3
  404. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +2 -2
  405. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  406. package/.next/standalone/.next/server/app/login.html +1 -1
  407. package/.next/standalone/.next/server/app/login.rsc +4 -4
  408. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  409. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  410. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  411. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  412. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  413. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  414. package/.next/standalone/.next/server/app/memory.html +1 -1
  415. package/.next/standalone/.next/server/app/memory.rsc +5 -5
  416. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +2 -2
  417. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  418. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +2 -2
  419. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +5 -5
  420. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  421. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +3 -3
  422. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  423. package/.next/standalone/.next/server/app/metrics.html +1 -1
  424. package/.next/standalone/.next/server/app/metrics.rsc +5 -5
  425. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +2 -2
  426. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  427. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +2 -2
  428. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +5 -5
  429. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  430. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +3 -3
  431. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +2 -2
  432. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  433. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +5 -5
  434. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +2 -2
  435. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  436. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  437. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +2 -2
  438. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +5 -5
  439. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  440. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +3 -3
  441. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +2 -2
  442. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  443. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +5 -5
  444. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +2 -2
  445. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  446. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  447. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +2 -2
  448. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +5 -5
  449. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  450. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +3 -3
  451. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +2 -2
  452. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  453. package/.next/standalone/.next/server/app/modelconfig.rsc +4 -4
  454. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  455. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  456. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +2 -2
  457. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +4 -4
  458. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  459. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +3 -3
  460. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +2 -2
  461. package/.next/standalone/.next/server/app/optapi.html +1 -1
  462. package/.next/standalone/.next/server/app/optapi.rsc +5 -5
  463. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +2 -2
  464. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  465. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +2 -2
  466. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +5 -5
  467. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  468. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +3 -3
  469. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +2 -2
  470. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  471. package/.next/standalone/.next/server/app/quality.html +1 -1
  472. package/.next/standalone/.next/server/app/quality.rsc +5 -5
  473. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  474. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  475. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +2 -2
  476. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +5 -5
  477. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  478. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +3 -3
  479. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +2 -2
  480. package/.next/standalone/.next/server/app/security.html +1 -1
  481. package/.next/standalone/.next/server/app/security.rsc +5 -5
  482. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +2 -2
  483. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  484. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +2 -2
  485. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +5 -5
  486. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  487. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +3 -3
  488. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +2 -2
  489. package/.next/standalone/.next/server/app/skill-detail/page_client-reference-manifest.js +1 -1
  490. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  491. package/.next/standalone/.next/server/app/skill-detail.rsc +4 -4
  492. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +4 -4
  493. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  494. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +3 -3
  495. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +2 -2
  496. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +2 -2
  497. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  498. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  499. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +6 -6
  500. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +2 -2
  501. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  502. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  503. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +2 -2
  504. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +6 -6
  505. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  506. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +3 -3
  507. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +2 -2
  508. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  509. package/.next/standalone/.next/server/app/skill-eval.rsc +6 -6
  510. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +2 -2
  511. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  512. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +2 -2
  513. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +6 -6
  514. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  515. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +3 -3
  516. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +2 -2
  517. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  518. package/.next/standalone/.next/server/app/skill-generator.rsc +5 -5
  519. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +2 -2
  520. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  521. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +2 -2
  522. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +5 -5
  523. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  524. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +3 -3
  525. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +2 -2
  526. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  527. package/.next/standalone/.next/server/app/skill-history.rsc +6 -6
  528. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  529. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  530. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +2 -2
  531. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +6 -6
  532. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  533. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +3 -3
  534. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +2 -2
  535. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  536. package/.next/standalone/.next/server/app/skill-opt.rsc +5 -5
  537. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +2 -2
  538. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  539. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +2 -2
  540. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +5 -5
  541. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  542. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +3 -3
  543. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +2 -2
  544. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  545. package/.next/standalone/.next/server/app/skill-release.rsc +5 -5
  546. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +2 -2
  547. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  548. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +2 -2
  549. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +5 -5
  550. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  551. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +3 -3
  552. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +2 -2
  553. package/.next/standalone/.next/server/app/skills.html +1 -1
  554. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  555. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  556. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  557. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +2 -2
  558. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  559. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  560. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  561. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  562. package/.next/standalone/.next/server/app/trace.html +1 -1
  563. package/.next/standalone/.next/server/app/trace.rsc +7 -7
  564. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  565. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  566. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +2 -2
  567. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +7 -7
  568. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  569. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +3 -3
  570. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +2 -2
  571. package/.next/standalone/.next/server/app/version-analysis.html +1 -0
  572. package/.next/standalone/.next/server/app/version-analysis.meta +16 -0
  573. package/.next/standalone/.next/server/app/version-analysis.rsc +23 -0
  574. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis/__PAGE__.segment.rsc +9 -0
  575. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p/version-analysis.segment.rsc +4 -0
  576. package/.next/standalone/.next/server/app/version-analysis.segments/!KG1haW4p.segment.rsc +7 -0
  577. package/.next/standalone/.next/server/app/version-analysis.segments/_full.segment.rsc +23 -0
  578. package/.next/standalone/.next/server/app/version-analysis.segments/_head.segment.rsc +6 -0
  579. package/.next/standalone/.next/server/app/version-analysis.segments/_index.segment.rsc +6 -0
  580. package/.next/standalone/.next/server/app/version-analysis.segments/_tree.segment.rsc +2 -0
  581. package/.next/standalone/.next/server/app/version-management.html +1 -0
  582. package/.next/standalone/.next/server/app/version-management.meta +16 -0
  583. package/.next/standalone/.next/server/app/version-management.rsc +22 -0
  584. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management/__PAGE__.segment.rsc +9 -0
  585. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p/version-management.segment.rsc +4 -0
  586. package/.next/standalone/.next/server/app/version-management.segments/!KG1haW4p.segment.rsc +7 -0
  587. package/.next/standalone/.next/server/app/version-management.segments/_full.segment.rsc +22 -0
  588. package/.next/standalone/.next/server/app/version-management.segments/_head.segment.rsc +6 -0
  589. package/.next/standalone/.next/server/app/version-management.segments/_index.segment.rsc +6 -0
  590. package/.next/standalone/.next/server/app/version-management.segments/_tree.segment.rsc +2 -0
  591. package/.next/standalone/.next/server/app-paths-manifest.json +9 -0
  592. package/.next/standalone/.next/server/chunks/[root-of-the-server]__096d00c3._.js +3 -0
  593. package/.next/standalone/.next/server/chunks/[root-of-the-server]__28078c4e._.js +1 -1
  594. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4509f30c._.js +1 -1
  595. package/.next/standalone/.next/server/chunks/[root-of-the-server]__51f686fd._.js +22 -0
  596. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5386e9b4._.js +22 -0
  597. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5cb21a03._.js +3 -0
  598. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fe0c73e._.js +1 -1
  599. package/.next/standalone/.next/server/chunks/[root-of-the-server]__88e070f0._.js +1 -1
  600. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8b872712._.js +22 -0
  601. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98ce63c7._.js +1 -1
  602. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9f6a4627._.js +1 -1
  603. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c875b500._.js +3 -0
  604. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c8b9af98._.js +1 -1
  605. package/.next/standalone/.next/server/chunks/[root-of-the-server]__cfcf074d._.js +3 -0
  606. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d754b2c2._.js +3 -0
  607. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e60b9568._.js +22 -0
  608. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e8b9c639._.js +22 -0
  609. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f30eea21._.js +3 -0
  610. package/.next/standalone/.next/server/chunks/_05c80664._.js +1 -1
  611. package/.next/standalone/.next/server/chunks/_1c2f3589._.js +1 -1
  612. package/.next/standalone/.next/server/chunks/{_1a32fa23._.js → _5090183e._.js} +2 -2
  613. package/.next/standalone/.next/server/chunks/{_e84c3e5f._.js → _6a203624._.js} +1 -1
  614. package/.next/standalone/.next/server/chunks/{_a0074544._.js → _70b9b972._.js} +1 -1
  615. package/.next/standalone/.next/server/chunks/_78c6471e._.js +1 -1
  616. package/.next/standalone/.next/server/chunks/{_547fcde4._.js → _d02fac80._.js} +2 -2
  617. package/.next/standalone/.next/server/chunks/_d043f698._.js +1 -1
  618. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_fleet_agent_route_actions_b98e2c99.js +3 -0
  619. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_modelconfig_pricing_route_actions_bca6856d.js +3 -0
  620. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_[id]_route_actions_a6f8b324.js +3 -0
  621. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_tags_route_actions_caf13f5f.js +3 -0
  622. package/.next/standalone/.next/server/chunks/bec2d_app_api_observe_version-analysis_tags_[tagId]_traces_route_actions_ff37f2d3.js +3 -0
  623. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_executions_[executionId]_tags_route_actions_08aa41a4.js +3 -0
  624. package/.next/standalone/.next/server/chunks/ce889_server_app_api_observe_version-analysis_compare_route_actions_b48ab573.js +3 -0
  625. package/.next/standalone/.next/server/chunks/src_lib_266d6cf4._.js +51 -0
  626. package/.next/standalone/.next/server/chunks/src_lib_5d95b500._.js +3 -0
  627. package/.next/standalone/.next/server/chunks/src_lib_67530201._.js +51 -0
  628. package/.next/standalone/.next/server/chunks/src_lib_9513f84d._.js +48 -0
  629. package/.next/standalone/.next/server/chunks/src_lib_9d09752c._.js +1 -1
  630. package/.next/standalone/.next/server/chunks/src_lib_a03a423b._.js +48 -0
  631. package/.next/standalone/.next/server/chunks/src_lib_a2a34aa6._.js +1 -1
  632. package/.next/standalone/.next/server/chunks/{src_lib_4751db31._.js → src_lib_dc72b90b._.js} +1 -1
  633. package/.next/standalone/.next/server/chunks/src_lib_ea85a447._.js +1 -1
  634. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eb5d21d._.js +3 -0
  635. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__143c2f65._.js +3 -0
  636. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__85e7edfe._.js +3 -0
  637. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c9cf8076._.js → [root-of-the-server]__90686664._.js} +2 -2
  638. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__96628a39._.js +3 -0
  639. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c69baa4a._.js +3 -0
  640. package/.next/standalone/.next/server/chunks/ssr/_051b1443._.js +3 -0
  641. package/.next/standalone/.next/server/chunks/ssr/_0ae78458._.js +3 -0
  642. package/.next/standalone/.next/server/chunks/ssr/{_400d0da3._.js → _1278164d._.js} +2 -2
  643. package/.next/standalone/.next/server/chunks/ssr/_15e714f2._.js +3 -0
  644. package/.next/standalone/.next/server/chunks/ssr/_2f20fbfc._.js +3 -0
  645. package/.next/standalone/.next/server/chunks/ssr/_4e720925._.js +3 -0
  646. package/.next/standalone/.next/server/chunks/ssr/_5aa55aa6._.js +3 -0
  647. package/.next/standalone/.next/server/chunks/ssr/_8b68f69f._.js +3 -0
  648. package/.next/standalone/.next/server/chunks/ssr/_8d4b753e._.js +3 -0
  649. package/.next/standalone/.next/server/chunks/ssr/_976dfbab._.js +4 -0
  650. package/.next/standalone/.next/server/chunks/ssr/_aab048d0._.js +1 -1
  651. package/.next/standalone/.next/server/chunks/ssr/_be1ffbbf._.js +12 -0
  652. package/.next/standalone/.next/server/chunks/ssr/_c815e0e7._.js +4 -0
  653. package/.next/standalone/.next/server/chunks/ssr/_e4c81263._.js +3 -0
  654. package/.next/standalone/.next/server/chunks/ssr/{_a3d5f9bc._.js → _e5ee8977._.js} +2 -2
  655. package/.next/standalone/.next/server/chunks/ssr/_f634ea15._.js +12 -0
  656. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-analysis_page_actions_479d49a7.js +3 -0
  657. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_(main)_version-management_page_actions_aea5ae93.js +3 -0
  658. package/.next/standalone/.next/server/chunks/ssr/{node_modules_a443e166._.js → node_modules_3b1fd8eb._.js} +2 -2
  659. package/.next/standalone/.next/server/chunks/ssr/node_modules_7680a21d._.js +3 -0
  660. package/.next/standalone/.next/server/chunks/ssr/node_modules_bda25b86._.js +3 -0
  661. package/.next/standalone/.next/server/chunks/ssr/node_modules_bfffaa78._.js +3 -0
  662. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_2e7afafc._.js +3 -0
  663. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_cd0b182b._.js +3 -0
  664. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_accessconfig_install_page_tsx_6f4ef3fc._.js +3 -3
  665. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_dashboard_page_tsx_7eac7774._.js +1 -1
  666. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_modelconfig_registry_page_tsx_1ead2fd4._.js +1 -1
  667. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_quality_page_tsx_26bb8e80._.js +1 -1
  668. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_trace_page_tsx_41e7865d._.js +1 -1
  669. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-analysis_page_tsx_63ae8791._.js +3 -0
  670. package/.next/standalone/.next/server/chunks/ssr/src_app_(main)_version-management_page_tsx_87fe0372._.js +3 -0
  671. package/.next/standalone/.next/server/chunks/ssr/src_components_ui_select_tsx_4c0f64d8._.js +1 -1
  672. package/.next/standalone/.next/server/chunks/ssr/src_lib_client_locale-context_tsx_7184d9aa._.js +1 -1
  673. package/.next/standalone/.next/server/pages/404.html +1 -1
  674. package/.next/standalone/.next/server/pages/500.html +2 -2
  675. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  676. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  677. package/.next/standalone/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  678. package/.next/standalone/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  679. package/.next/standalone/.next/static/chunks/0fe047909a490ef0.js +1 -0
  680. package/.next/standalone/.next/static/chunks/151b95e65092aa16.js +1 -0
  681. package/.next/standalone/.next/static/chunks/1624a1adcb73d784.js +1 -0
  682. package/.next/standalone/.next/static/chunks/1cb2cee6b2f89fb7.js +1 -0
  683. package/.next/standalone/.next/static/chunks/1f173de64ad85757.js +10 -0
  684. package/.next/standalone/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  685. package/.next/standalone/.next/static/chunks/25a9b2907e03a172.css +1 -0
  686. package/.next/standalone/.next/static/chunks/2fb55cc737806639.js +1 -0
  687. package/.next/standalone/.next/static/chunks/30a686796d86273c.js +1 -0
  688. package/.next/standalone/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  689. package/.next/standalone/.next/static/chunks/379315313d164a57.js +1 -0
  690. package/.next/standalone/.next/static/chunks/39157b51ed6489eb.js +1 -0
  691. package/.next/standalone/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  692. package/.next/standalone/.next/static/chunks/4b72abe72a9b6cd9.js +6 -0
  693. package/.next/standalone/.next/static/chunks/54538e1a80e53392.js +1 -0
  694. package/.next/standalone/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  695. package/.next/standalone/.next/static/chunks/63220d0acc5073cc.js +1 -0
  696. package/.next/standalone/.next/static/chunks/6da1d3424f804755.js +1 -0
  697. package/.next/standalone/.next/static/chunks/6e6f2418240877c6.js +1 -0
  698. package/.next/standalone/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  699. package/.next/standalone/.next/static/chunks/946d260668afc16b.js +1 -0
  700. package/.next/standalone/.next/static/chunks/97822ca2c186f93d.js +1 -0
  701. package/.next/{static/chunks/96c7e2e47438553a.js → standalone/.next/static/chunks/98588c35b1e00bea.js} +1 -1
  702. package/.next/standalone/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  703. package/.next/standalone/.next/static/chunks/b223106f6c610a67.js +1 -0
  704. package/.next/standalone/.next/static/chunks/b5e671771efd9e7d.js +1 -0
  705. package/.next/standalone/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  706. package/.next/standalone/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  707. package/.next/standalone/.next/static/chunks/d15d7f6146b85000.js +1 -0
  708. package/.next/standalone/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  709. package/.next/standalone/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  710. package/.next/standalone/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  711. package/.next/standalone/node_modules/.prisma/client/edge.js +26 -3
  712. package/.next/standalone/node_modules/.prisma/client/index-browser.js +23 -0
  713. package/.next/standalone/node_modules/.prisma/client/index.js +26 -3
  714. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  715. package/.next/standalone/node_modules/.prisma/client/schema.prisma +39 -0
  716. package/.next/standalone/node_modules/.prisma/client/wasm.js +23 -0
  717. package/.next/standalone/package.json +1 -1
  718. package/.next/standalone/prisma/schema.prisma +38 -0
  719. package/.next/static/chunks/0257c68e82e9f2b0.js +1 -0
  720. package/.next/static/chunks/{8754e0cf40813330.js → 06ac4297aa02f40a.js} +1 -1
  721. package/.next/static/chunks/0fe047909a490ef0.js +1 -0
  722. package/.next/static/chunks/151b95e65092aa16.js +1 -0
  723. package/.next/static/chunks/1624a1adcb73d784.js +1 -0
  724. package/.next/static/chunks/1cb2cee6b2f89fb7.js +1 -0
  725. package/.next/static/chunks/1f173de64ad85757.js +10 -0
  726. package/.next/static/chunks/{4dcd21eef469e66b.js → 2064add303799ffc.js} +1 -1
  727. package/.next/static/chunks/25a9b2907e03a172.css +1 -0
  728. package/.next/static/chunks/2fb55cc737806639.js +1 -0
  729. package/.next/static/chunks/30a686796d86273c.js +1 -0
  730. package/.next/static/chunks/3184105f3d2b47a1.js +10 -0
  731. package/.next/static/chunks/379315313d164a57.js +1 -0
  732. package/.next/static/chunks/39157b51ed6489eb.js +1 -0
  733. package/.next/static/chunks/{dc22f906bd43e9a3.js → 46308ae9f83ac112.js} +3 -3
  734. package/.next/static/chunks/4b72abe72a9b6cd9.js +6 -0
  735. package/.next/static/chunks/54538e1a80e53392.js +1 -0
  736. package/.next/static/chunks/599fdc4cf6eb9e95.js +1 -0
  737. package/.next/static/chunks/63220d0acc5073cc.js +1 -0
  738. package/.next/static/chunks/6da1d3424f804755.js +1 -0
  739. package/.next/static/chunks/6e6f2418240877c6.js +1 -0
  740. package/.next/static/chunks/8668d6f4c34d1e67.js +3 -0
  741. package/.next/static/chunks/946d260668afc16b.js +1 -0
  742. package/.next/static/chunks/97822ca2c186f93d.js +1 -0
  743. package/.next/{standalone/.next/static/chunks/96c7e2e47438553a.js → static/chunks/98588c35b1e00bea.js} +1 -1
  744. package/.next/static/chunks/a99fb4f44f9a41f3.js +1 -0
  745. package/.next/static/chunks/b223106f6c610a67.js +1 -0
  746. package/.next/static/chunks/b5e671771efd9e7d.js +1 -0
  747. package/.next/static/chunks/cc9a7b6a8edabe81.js +1 -0
  748. package/.next/static/chunks/cfb3924a60d22c64.js +1 -0
  749. package/.next/static/chunks/d15d7f6146b85000.js +1 -0
  750. package/.next/static/chunks/dee90c3e29cd39bb.js +1 -0
  751. package/.next/static/chunks/{bf909bd0ff1898e4.js → f6954ae67d81050e.js} +1 -1
  752. package/.next/static/chunks/fc7f5db841a7032a.js +1 -0
  753. package/package.json +1 -1
  754. package/prisma/schema.prisma +38 -0
  755. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2574e6ed._.js +0 -3
  756. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2710fb53._.js +0 -3
  757. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8cc92af1._.js +0 -3
  758. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d2e5f60._.js +0 -3
  759. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd3dc3ab._.js +0 -3
  760. package/.next/standalone/.next/server/chunks/src_lib_6cb48964._.js +0 -32
  761. package/.next/standalone/.next/server/chunks/src_lib_a3155704._.js +0 -3
  762. package/.next/standalone/.next/server/chunks/src_lib_baaf83ef._.js +0 -29
  763. package/.next/standalone/.next/server/chunks/src_lib_bf0ee699._.js +0 -32
  764. package/.next/standalone/.next/server/chunks/src_lib_dbf3c792._.js +0 -29
  765. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2ec2bb09._.js +0 -3
  766. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3cb83dc3._.js +0 -3
  767. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fc94ba06._.js +0 -3
  768. package/.next/standalone/.next/server/chunks/ssr/_0141e5c7._.js +0 -3
  769. package/.next/standalone/.next/server/chunks/ssr/_0acdaaae._.js +0 -3
  770. package/.next/standalone/.next/server/chunks/ssr/_231821bd._.js +0 -3
  771. package/.next/standalone/.next/server/chunks/ssr/_5d1f8671._.js +0 -12
  772. package/.next/standalone/.next/server/chunks/ssr/_8bba8b8d._.js +0 -3
  773. package/.next/standalone/.next/server/chunks/ssr/_96725836._.js +0 -12
  774. package/.next/standalone/.next/server/chunks/ssr/_b08dc931._.js +0 -3
  775. package/.next/standalone/.next/server/chunks/ssr/_c4db9cec._.js +0 -3
  776. package/.next/standalone/.next/server/chunks/ssr/node_modules_8bfa35b3._.js +0 -3
  777. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_30858f09._.js +0 -3
  778. package/.next/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_f1e06ad8._.js +0 -3
  779. package/.next/standalone/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  780. package/.next/standalone/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  781. package/.next/standalone/.next/static/chunks/16047b19dda5c90d.js +0 -10
  782. package/.next/standalone/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  783. package/.next/standalone/.next/static/chunks/3d19f62114122bd3.js +0 -1
  784. package/.next/standalone/.next/static/chunks/3d6127f72467176d.js +0 -1
  785. package/.next/standalone/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  786. package/.next/standalone/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  787. package/.next/standalone/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  788. package/.next/standalone/.next/static/chunks/66b23011cd8544ad.js +0 -1
  789. package/.next/standalone/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  790. package/.next/standalone/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  791. package/.next/standalone/.next/static/chunks/7d4fa817c5229801.js +0 -1
  792. package/.next/standalone/.next/static/chunks/8f18a711543d804a.js +0 -1
  793. package/.next/standalone/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  794. package/.next/standalone/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  795. package/.next/standalone/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  796. package/.next/standalone/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  797. package/.next/standalone/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  798. package/.next/standalone/.next/static/chunks/d170174df1128338.js +0 -1
  799. package/.next/standalone/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  800. package/.next/standalone/.next/static/chunks/e159d293fc72e91b.css +0 -1
  801. package/.next/standalone/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  802. package/.next/standalone/.next/static/chunks/ffd21617593aaafd.js +0 -1
  803. package/.next/static/chunks/0b6bd84bf10579a4.js +0 -10
  804. package/.next/static/chunks/0bca64d67dceae3f.js +0 -1
  805. package/.next/static/chunks/16047b19dda5c90d.js +0 -10
  806. package/.next/static/chunks/3a0f454536f3ebc8.js +0 -1
  807. package/.next/static/chunks/3d19f62114122bd3.js +0 -1
  808. package/.next/static/chunks/3d6127f72467176d.js +0 -1
  809. package/.next/static/chunks/44545e70bb7a33b8.js +0 -1
  810. package/.next/static/chunks/4e52a5c5e332595a.js +0 -1
  811. package/.next/static/chunks/6238734a2f04b1f9.js +0 -1
  812. package/.next/static/chunks/66b23011cd8544ad.js +0 -1
  813. package/.next/static/chunks/7a758615e3d35d6d.js +0 -1
  814. package/.next/static/chunks/7a7dc24eed0484dc.js +0 -1
  815. package/.next/static/chunks/7d4fa817c5229801.js +0 -1
  816. package/.next/static/chunks/8f18a711543d804a.js +0 -1
  817. package/.next/static/chunks/9155a6c07dc0502d.js +0 -6
  818. package/.next/static/chunks/94fdb955b1dc512a.js +0 -1
  819. package/.next/static/chunks/97b8d7ea5d04e2a2.js +0 -1
  820. package/.next/static/chunks/a31bf4e176b5e90c.js +0 -3
  821. package/.next/static/chunks/b9597989b5b0abd3.js +0 -1
  822. package/.next/static/chunks/d170174df1128338.js +0 -1
  823. package/.next/static/chunks/d91c2c0bbe0b59ab.js +0 -1
  824. package/.next/static/chunks/e159d293fc72e91b.css +0 -1
  825. package/.next/static/chunks/e45a4e085c7ce03c.js +0 -1
  826. package/.next/static/chunks/ffd21617593aaafd.js +0 -1
  827. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_buildManifest.js +0 -0
  828. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_clientMiddlewareManifest.json +0 -0
  829. /package/.next/standalone/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_ssgManifest.js +0 -0
  830. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_buildManifest.js +0 -0
  831. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_clientMiddlewareManifest.json +0 -0
  832. /package/.next/static/{iE8084jR9Kgb7Bhs3Xokh → VeFGnFbPjqrwSXp9h5AgX}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  module.exports=[571902,e=>{"use strict";var t=e.i(902157),n=e.i(750227);e.i(666680);var r=e.i(899871),i=e.i(660526);function o(){let e=n.default.join(i.default.homedir(),".agent-insight"),r=n.default.join(i.default.homedir(),".skill-insight");return t.default.existsSync(e)?e:t.default.existsSync(r)?r:e}function a(){return process.env.AGENT_INSIGHT_CLAUDE_OTEL_SPOOL_DIR||n.default.join(o(),"otel_data","claude")}function s(){return process.env.AGENT_INSIGHT_OTEL_TRACE_SPOOL_DIR||n.default.join(o(),"otel_data","traces")}function u(e,r){let i=[];try{for(let o of t.default.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()))!function e(r,i,o){let a=[];try{a=t.default.readdirSync(r,{withFileTypes:!0})}catch{return}for(let t of a){let a=n.default.join(r,t.name);t.isDirectory()?e(a,i,o):t.isFile()&&t.name.endsWith(".jsonl")&&(!i||t.name===i)&&o.push(a)}}(n.default.join(e,o.name),r,i)}catch{}return i.sort()}function l(e=a()){return u(e,"logs.jsonl")}function c(e=s()){return u(e,"traces.jsonl")}function d(e,n){let i,o=[];try{i=t.default.openSync(e,"r")}catch{return o}let a=Buffer.allocUnsafe(1048576),s=new r.StringDecoder("utf8"),u="";try{for(;;){let e=t.default.readSync(i,a,0,a.length,null);if(e<=0)break;let r=(u+=s.write(a.subarray(0,e))).split("\n");for(let e of(u=r.pop()??"",r))if(e.trim())try{let t=JSON.parse(e);t?.sessionId===n&&o.push(t)}catch{}}if((u+=s.end()).trim())try{let e=JSON.parse(u);e?.sessionId===n&&o.push(e)}catch{}}finally{t.default.closeSync(i)}return o}function f(e,t=a()){let n=[];for(let r of l(t))n.push(...d(r,e));return n}function m(e,t=s()){let n=[];for(let r of c(t))n.push(...d(r,e));return n}function p(e,n={bytes:0}){let i,o;try{i=t.default.statSync(e)}catch{return{events:[],nextCursor:{bytes:n.bytes||0},lineCount:0,parseErrors:0}}try{o=t.default.openSync(e,"r")}catch{return{events:[],nextCursor:{bytes:n.bytes||0},lineCount:0,parseErrors:0}}let a=(n.bytes||0)>i.size?0:Math.max(0,n.bytes||0),s=Buffer.allocUnsafe(1048576),u=new r.StringDecoder("utf8"),l=[],c=0,d=0,f=a,m="",g=a;try{for(;g<i.size;){let e=t.default.readSync(o,s,0,Math.min(s.length,i.size-g),g);if(e<=0)break;g+=e;let n=(m+=u.write(s.subarray(0,e))).split("\n");for(let e of(m=n.pop()??"",n))if(f+=Buffer.byteLength(e,"utf8")+1,e.trim()){c+=1;try{l.push(JSON.parse(e))}catch{d+=1}}}}finally{t.default.closeSync(o)}return{events:l,nextCursor:{bytes:f},lineCount:c,parseErrors:d}}e.s(["getClaudeOtelSpoolDir",()=>a,"getOtelTraceSpoolDir",()=>s,"listClaudeOtelSpoolFiles",()=>l,"listOtelTraceSpoolFiles",()=>c,"readClaudeOtelEventsForSession",()=>f,"readNewLinesSince",()=>p,"readOtelTraceEventsForSession",()=>m],571902)},460535,e=>{"use strict";var t=e.i(902157),n=e.i(750227);function r(e){return n.default.join(e,"consumer-checkpoint.json")}function i(e,t){return n.default.relative(e,t).split(n.default.sep).join("/")}function o(e){let n=r(e);try{let e=JSON.parse(t.default.readFileSync(n,"utf8"));if(e?.version===1&&e.files&&"object"==typeof e.files)return{version:1,files:e.files}}catch{}return{version:1,files:{}}}function a(e,n){t.default.mkdirSync(e,{recursive:!0});let i=r(e),o=`${i}.${process.pid}.tmp`;t.default.writeFileSync(o,`${JSON.stringify(n,null,2)}
2
- `,"utf8"),t.default.renameSync(o,i)}function s(e,t){let n=o(e);return{bytes:n.files[t]?.bytes||0}}function u(e,t,n){let r=o(e);r.files[t]={bytes:Math.max(0,n.bytes||0),updatedAt:new Date().toISOString()},a(e,r)}function l(e,t){let n=o(e);n.files[t]&&(delete n.files[t],a(e,n))}function c(e,o=function(e){let r=[],i=e=>{let o=[];try{o=t.default.readdirSync(e,{withFileTypes:!0})}catch{return}for(let t of o){let o=n.default.join(e,t.name);t.isDirectory()?i(o):t.isFile()&&t.name.endsWith(".jsonl")&&r.push(o)}};try{for(let r of t.default.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()))i(n.default.join(e,r.name))}catch{}return r.sort()}(e)){if(t.default.existsSync(r(e)))return;let s={version:1,files:{}},u=new Date().toISOString();for(let n of o)try{let r=i(e,n);s.files[r]={bytes:t.default.statSync(n).size,updatedAt:u}}catch{}a(e,s)}e.s(["getFileCursor",()=>s,"invalidateCursor",()=>l,"loadCheckpoint",()=>o,"saveFileCursor",()=>u,"seedToEof",()=>c,"toCheckpointRelPath",()=>i])},337216,e=>{"use strict";var t=e.i(902157),n=e.i(460535);function r(e,i,o,a=new Date){if(!Number.isFinite(o)||o<1)return{archived:0,skipped:i.length};let s=(0,n.loadCheckpoint)(e),u=a.getTime()-24*o*36e5,l=0,c=0;for(let r of i){let i=(0,n.toCheckpointRelPath)(e,r),o=function(e){let t=e.split("/")[0];return/^\d{4}-\d{2}-\d{2}$/.test(t)?t:null}(i),a=o?Date.parse(`${o}T00:00:00.000Z`):NaN;if(!Number.isFinite(a)||a>=u){c+=1;continue}let d=s.files[i],f=0;try{f=t.default.statSync(r).size}catch{c+=1;continue}if(!d||d.bytes<f){c+=1;continue}t.default.renameSync(r,function(e){let n=`${e}.processed`;return t.default.existsSync(n)?`${n}.${Date.now()}`:n}(r)),(0,n.invalidateCursor)(e,i),l+=1}return{archived:l,skipped:c}}e.s(["compactProcessedSpoolFiles",()=>r])},667034,e=>{"use strict";var t=e.i(902157),n=e.i(308033),r=e.i(571902);let i="Claude Code";function o(e,t=0){if(null==e||""===e)return t;let n=Number(e);return Number.isFinite(n)?n:t}function a(e,t=0){return Math.max(0,o(e,t))}function s(e){return e.eventTimestamp||e.receivedAt||new Date().toISOString()}function u(e){let t=Date.parse(s(e));return 1e3*(Number.isFinite(t)?t:0)+(e.sequence||0)}function l(e){return[e.sessionId,e.promptId||"",e.sequence??"",e.eventName,e.eventTimestamp||"",e.spanId||""].join("|")}function c(e){return e.promptId||"__session__"}function d(e){if(null!=e&&Number.isFinite(e))return new Date(e).toISOString()}function f(e){if(null!=e){if("number"==typeof e&&Number.isFinite(e))return e>0&&e<1e10?1e3*e:e;if("string"==typeof e){let t=e.trim();if(!t)return;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);return Number.isFinite(e)?e>0&&e<1e10?1e3*e:e:void 0}let n=Date.parse(t);return Number.isFinite(n)?n:void 0}}}function m(e){if(!e)return null;if("object"==typeof e)return e;if("string"!=typeof e)return null;try{return JSON.parse(e)}catch{return null}}function p(e){let n=m(e.body);if(n)return n;let r="string"==typeof e.body_ref?e.body_ref:"";if(!r)return null;try{if(!t.default.existsSync(r))return null;let e=t.default.readFileSync(r,"utf8");return m(e)}catch{return null}}function g(e){if("string"==typeof e)return e;if(!Array.isArray(e))return"";let t=[];for(let n of e)n&&("string"==typeof n?t.push(n):"text"===n.type&&"string"==typeof n.text&&t.push(n.text));return t.join("")}function _(e){let t=e?.content;return Array.isArray(t)?t:[]}function h(e,t){let n=e?.attributes||{},r=f(e?s(e):s(t)),i=o(n.duration_ms),a=null!=r&&i>0?r+i:f(s(t));return{created:d(r)||s(t),completed:d(a)}}function y(e){let t="string"==typeof e?e:"tool";return"agent"===t.toLowerCase()?"task":t}function v(e){return("string"==typeof e&&e.trim()?e.trim():"agent").toLowerCase()}function S(e){let t={...e?.input||{}};return e?.name!=="Agent"||t.subagent_type||t.subagentType||(t.subagent_type=v(void 0)),{id:e?.id,type:"function",function:{name:y(e?.name),arguments:JSON.stringify(t||{})},name:y(e?.name),raw_name:e?.name,arguments:JSON.stringify(t||{}),trace_split_parallel_task:e?.name==="Agent",state:"pending"}}function I(e){if(null==e)return;if("string"!=typeof e)return e;let t=e.trim();if(t&&"claude_code.tool_result"!==t&&"tool_result"!==t){if(t.startsWith("{")||t.startsWith("["))try{return JSON.parse(t)}catch{}return e}}function w(e,t){let n={...e,...t};return(e.function||t.function)&&(n.function={...e.function||{},...t.function||{}}),"task"===e.name&&"Agent"===t.raw_name&&(n.name="task",n.function={...n.function||{},name:"task"}),n}function k(e,t){let n=Array.isArray(e.tool_calls)?e.tool_calls:[],r=n.findIndex(e=>e.id===t.id);e.tool_calls=r>=0?n.map((e,n)=>n===r?w(e,t):e):[...n,t]}function x(e){return e.filter(e=>e?.type==="tool_use"&&e.id)}function b(e){let t=e?.input||{};return e?.name==="Agent"?v(t.subagent_type||t.subagentType):t.subagent_type||t.subagentType||e?.name||"Subagent"}function M(e){let t=(0,r.readClaudeOtelEventsForSession)(e);return{sessionId:e,eventCount:t.length,record:function(e,t){let r=(function(e){let t=new Set,n=[];for(let r of e){let e=[r.sessionId,r.promptId||"",r.sequence??"",r.eventName,r.eventTimestamp||"",r.spanId||"",r.attributes?.request_id||"",r.attributes?.tool_use_id||""].join("|");t.has(e)||(t.add(e),n.push(r))}return n})(t).filter(t=>t.sessionId===e).sort((e,t)=>u(e)-u(t));if(0===r.length)return null;let M=[],N=new Map,O=new Map,T=new Map,C=new Map,A=new Map,z=new Map,q=new Map,E="",$="",j="",R=0,D=0,L=0,J=0,F=0,P=0,H=0,U=0,K=0,B=0,G=s(r[0]),Q=r.find(e=>e.user)?.user,V=new Set,W=new Set([i]),X=new Map,Y=new Set,Z=new Map;for(let e of r){if("api_request_body"===e.eventName){let t=p(e.attributes||{});if(t){var ee,et;for(let e of Array.isArray(t?.messages)?t.messages:[])for(let t of Array.isArray(e?.content)?e.content:[]){if(t?.type!=="tool_result")continue;let e=t?.tool_use_id||t?.toolUseId||t?.toolUseID||t?.id;if(!e)continue;let n=function(e){if(e&&"object"==typeof e){for(let t of["content","output","result","stdout","stderr"])if(void 0!==e[t])return function e(t){if(null!=t){if("string"==typeof t)return t;if(Array.isArray(t))return t.map(e=>"string"==typeof e?e:"string"==typeof e?.text?e.text:"string"==typeof e?.content?e.content:"").filter(Boolean).join("")||t;if("object"==typeof t){if("string"==typeof t.text)return t.text;if("string"==typeof t.content)return t.content;if(void 0!==t.output)return e(t.output);if(void 0!==t.result)return e(t.result)}return t}}(e[t])}}(t);void 0!==n&&q.set(e,n)}let n=(et=t.system)?"string"==typeof et?et.trim():Array.isArray(et)?et.map(e=>"string"==typeof e?e:"string"==typeof e?.text?e.text:"").filter(Boolean).join("\n").trim():"object"==typeof et&&"string"==typeof et.text?et.text.trim():"":"";n&&X.set(c(e),n)}continue}if("api_request"===e.eventName){let t=c(e),n=Z.get(t)||[];n.push(e),Z.set(t,n);continue}if("api_response_body"!==e.eventName)continue;let t=p(e.attributes||{});if(!t)continue;let n=c(e),r=Z.get(n)?.shift(),i=_(t);for(let n of(N.set(l(e),{request:r,body:t,content:i}),x(i)))if(O.set(n.id,n),"Agent"===n.name){let t=b(n);T.set(n.id,`${e.sessionId}:${e.promptId||"prompt"}:${t}:${n.id}`)}}let en=new Set;for(let e=0;e<r.length;e++){let t=r[e];if("tool_result"!==t.eventName)continue;let n=t.attributes?.tool_use_id;for(let i=e-1;i>=0;i--){let e=r[i];if(e.promptId!==t.promptId||e.sessionId!==t.sessionId)continue;if("user_prompt"===e.eventName)break;if("api_response_body"!==e.eventName)continue;let o=N.get(l(e));if(!o||x(o.content).length>0)continue;let a=l(e);if(!en.has(a)){en.add(a),"string"==typeof n&&n&&(C.set(a,n),A.set(n,g(o.content)));break}}}for(let e of r){let t=e.attributes||{};if((!G||Date.parse(s(e))<Date.parse(G))&&(G=s(e)),!Q&&e.user&&(Q=e.user),"user_prompt"===e.eventName){let n=("string"==typeof(ee=t.prompt)?ee:"")||"[Redacted Claude Code prompt]";E||"[Redacted Claude Code prompt]"===n||(E=n),M.push({role:"user",content:n,timestamp:s(e),timeInfo:{created:s(e),completed:s(e)},agent:i,prompt_id:e.promptId,command_name:t.command_name,command_source:t.command_source});continue}if("api_request"===e.eventName){let e=o(t.input_tokens),n=o(t.output_tokens),r=o(t.cache_read_tokens),i=o(t.cache_creation_tokens),a=e+n+r+i;L+=e,J+=n,F+=r,P+=i,H=Math.max(H,a),R+=o(t.cost_usd),D+=o(t.duration_ms),U+=1,t.model&&(j=String(t.model));continue}if("api_response_body"===e.eventName){let t={finalResult:$,model:j,responseMetaByKey:N,responseToToolId:C,toolUseById:O,subagentSessionByToolId:T,systemByPromptKey:X,emittedSystemScopes:Y};!function(e,t,n){let r=e.attributes||{},o=n.responseMetaByKey.get(l(e)),u=o?.body||p(r);if(!u)return;let d=o?.content||_(u),f=g(d);f.trim()&&(n.finalResult=f),(r.model||u.model)&&(n.model=String(r.model||u.model));let m=o?.request,y=function(e,t={}){let n=a(void 0!==t.input_tokens&&""!==t.input_tokens?t.input_tokens:e?.input_tokens??e?.input),r=a(void 0!==t.output_tokens&&""!==t.output_tokens?t.output_tokens:e?.output_tokens??e?.output),i=a(void 0!==t.cache_read_tokens&&""!==t.cache_read_tokens?t.cache_read_tokens:e?.cache_read_input_tokens??e?.cache_read_tokens),o=a(void 0!==t.cache_creation_tokens&&""!==t.cache_creation_tokens?t.cache_creation_tokens:e?.cache_creation_input_tokens??e?.cache_creation_tokens),s=Math.max(a(e?.total_tokens??e?.total),n+r+i+o);return{total:s,total_tokens:s,input:n,output:r,input_tokens:n,output_tokens:r,cache:{read:i,write:o}}}(u.usage,m?.attributes||{}),v=x(d).map(S),I=n.responseToToolId.get(l(e)),w=I?n.toolUseById.get(I):void 0,k=!!I&&w?.name==="Agent",M=k?b(w):void 0,N=I?n.subagentSessionByToolId.get(I):void 0,O=n.systemByPromptKey.get(c(e));if(O){let o=k?N||`${e.sessionId}:${I}`:void 0,a=`${o||"__root__"}::${O}`;n.emittedSystemScopes.has(a)||(n.emittedSystemScopes.add(a),t.push({role:"system",content:O,system_prompt_length:O.length,timestamp:s(e),timeInfo:h(m,e),agent:k?M:i,subagent_session_id:o,prompt_id:e.promptId,model:r.model||u.model}))}let T=function(e){if(!Array.isArray(e))return;let t=[];for(let n of e)n?.type==="thinking"&&"string"==typeof n.thinking&&n.thinking.trim()&&t.push({type:"reasoning",text:n.thinking});return t.length>0?t:void 0}(d);t.push({role:k?"subagent":"assistant",content:f,content_blocks:d,...T?{parts:T}:{},timestamp:s(e),timeInfo:h(m,e),agent:k?M:i,subagent_name:k?M:void 0,subagent_session_id:k?N||`${e.sessionId}:${I}`:void 0,prompt_id:e.promptId,model:r.model||u.model,request_id:r.request_id||u.id,stop_reason:u.stop_reason,usage:y,tool_calls:v.length>0?v:void 0})}(e,M,t),$=t.finalResult,j=t.model||j;let n=M[M.length-1];if(n&&Array.isArray(n.tool_calls))for(let e of n.tool_calls)e?.id&&z.has(e.id)&&(k(n,z.get(e.id)),z.delete(e.id));n?.agent&&W.add(n.agent);continue}if("tool_result"===e.eventName){K+=1,"false"===String(t.success)&&(B+=1);let n=t.tool_use_id,r=function(e,t,n){let r,i,a=e.attributes||{},u=m(a.tool_parameters),l=m(a.tool_input),c={...t?.input||l||u||{}},p=y(t?.name||a.tool_name||"tool");return"Agent"!==(t?.name||a.tool_name)||c.subagent_type||c.subagentType||(c.subagent_type=v(void 0)),{id:a.tool_use_id,type:"function",function:{name:p,arguments:JSON.stringify(c||{})},name:p,raw_name:t?.name||a.tool_name,arguments:JSON.stringify(c||{}),trace_split_parallel_task:"Agent"===(t?.name||a.tool_name),state:"false"===String(a.success)?"error":"success",timing:(r=o(e.attributes?.duration_ms),{started_at:d(null!=(i=f(s(e)))&&r>0?i-r:void 0),completed_at:d(i)}),duration_ms:o(a.duration_ms),decision_type:a.decision_type,decision_source:a.decision_source,output_size_bytes:o(a.tool_result_size_bytes),error_type:a.error_type,error:a.error,output:n}}(e,"string"==typeof n?O.get(n):void 0,function(e,t){let n=e.attributes||{};for(let e of["tool_result","tool_result_content","tool_result_text","tool_output","tool_output_text","output","result"]){if(!Object.prototype.hasOwnProperty.call(n,e))continue;let t=I(n[e]);if(void 0!==t)return t}let r=I(e.body);return void 0!==r?r:t}(e,"string"==typeof n?q.has(n)?q.get(n):A.get(n):void 0)),i=M.find(e=>Array.isArray(e.tool_calls)&&e.tool_calls.some(e=>e.id===r.id));if(i||r.id||(i=[...M].reverse().find(e=>"assistant"===e.role)),i)k(i,r);else if(r.id){let e=z.get(r.id);z.set(r.id,e?w(e,r):r)}let a=m(t.tool_parameters)?.skill_name||m(t.tool_input)?.skill;"string"==typeof a&&a.trim()&&V.add(a.trim());continue}}if(E||(E=`Claude Code Session ${e}`),!$){let e=[...M].reverse().find(e=>"assistant"===e.role&&g(e.content).trim());$=e?g(e.content):""}return{task_id:e,query:E,framework:"claudecode",model:j,tokens:L+J+F+P,cost:R,latency:D/1e3,timestamp:G,final_result:$||"[No final text output]",interactions:(0,n.normalizeClaudeCodeInteractionsForStorage)(M),skills:Array.from(V),agent:i,agentName:i,agents:Array.from(W),user:Q,tool_call_count:K,llm_call_count:U,input_tokens:L,output_tokens:J,tool_call_error_count:B,cache_read_input_tokens:F,cache_creation_input_tokens:P,max_single_call_tokens:H}}(e,t)}}function N(...e){for(let t of e){let e=function(e){if(null!=e){if("string"==typeof e)return e.trim()?e:void 0;try{return JSON.stringify(e)}catch{return String(e)}}}(t);if(e)return e}}function O(e){return e.usage.total_tokens||e.usage.input_tokens+e.usage.output_tokens+(e.usage.reasoning_tokens||0)}function T(e){let t=e.attributes||{};return N(e.model,t["gen_ai.request.model"],t["llm.request.model"],t["llm.model_name"],t["gen_ai.response.model"])}function C(e){let t=e.attributes||{};return"AGENT"===String(t["openinference.span.kind"]||t["traceloop.span.kind"]||t["span.kind"]||"").toUpperCase()||"agent"===String(e.name||"").toLowerCase()}function A(e){return new Date(e||Date.now()).toISOString()}let z={id:"generic",matches:()=>!0,aggregate:function(e,t){let n=t.filter(t=>t.sessionId===e);if(!n.length)return null;let r=[],i=new Map,o=[];for(let e of n)if("llm"===e.kind){let t=function(e){let t=e.attributes||{},n=N(t["gen_ai.prompt"],t["input.value"],t["db.statement"]),r=N(t["gen_ai.completion"],t["output.value"],t["db.result"]),i=e.startTimeMs||Date.parse(e.receivedAt)||Date.now(),o=i+Math.max(0,e.latencyMs||0),a={role:"assistant",content:r||"",spanId:e.spanId,parentSpanId:e.parentSpanId,traceId:e.traceId,name:e.name,model:T(e),usage:{input_tokens:e.usage.input_tokens,output_tokens:e.usage.output_tokens,reasoning_tokens:e.usage.reasoning_tokens||void 0,total:e.usage.total_tokens},timestamp:A(i),timeInfo:{created:A(i),completed:A(o)},agent:e.serviceName};return n&&(a.requestMessages=[{role:"user",content:n}]),a}(e);r.push(t),e.spanId&&i.set(e.spanId,t)}else o.push(e);for(let e of o){let t=function(e){let t=e.attributes||{},n=e.startTimeMs||Date.parse(e.receivedAt)||Date.now(),r=n+Math.max(0,e.latencyMs||0),i=N(t["output.value"],t["tool.output"],t["tool.result"]),o=String(t["tool.status"]||t["tool.outcome"]||"").toLowerCase();return{id:e.spanId,type:"function",state:"error"===o||"failed"===o?"error":"success",function:{name:t["tool.name"]||e.name||"tool",arguments:N(t["tool.arguments"],t["input.value"])||JSON.stringify(t)},output:i,result:i,timing:{started_at:A(n),completed_at:A(r)}}}(e),n=(e.parentSpanId?i.get(e.parentSpanId):void 0)||r[r.length-1];n?n.tool_calls=Array.isArray(n.tool_calls)?[...n.tool_calls,t]:[t]:r.push({role:"assistant",content:"",agent:e.serviceName,timestamp:A(e.startTimeMs||Date.parse(e.receivedAt)||Date.now()),tool_calls:[t]})}let a=n.filter(e=>O(e)>0),s=a.filter(e=>!C(e)),u=n.some(C)&&s.length?s:a,l=n.map(e=>e.latencyMs||0).filter(e=>e>0),c=n.some(C)?Math.max(0,...l):l.reduce((e,t)=>e+t,0),d=r.find(e=>e?.requestMessages?.[0]?.content),f=[...r].reverse().find(e=>e?.content),m=n[0],p=n.find(e=>T(e));return{task_id:e,query:d?.requestMessages?.[0]?.content||"OTel Session",framework:m.serviceName||"unknown-service",model:p&&T(p)||"unknown",tokens:u.reduce((e,t)=>e+O(t),0),latency:c,final_result:f?.content||"",timestamp:new Date(m.startTimeMs||Date.parse(m.receivedAt)||Date.now()),label:m.serviceName||"unknown-service",user:m.user||"anonymous",interactions:r,agent:m.serviceName,agentName:m.serviceName,llm_call_count:n.filter(e=>"llm"===e.kind&&!C(e)).length,tool_call_count:o.length,tool_call_error_count:o.filter(e=>{let t=String(e.attributes?.["tool.status"]||e.attributes?.["tool.outcome"]||"").toLowerCase();return"error"===t||"failed"===t}).length,input_tokens:u.reduce((e,t)=>e+t.usage.input_tokens,0),output_tokens:u.reduce((e,t)=>e+t.usage.output_tokens,0),reasoning_tokens:u.reduce((e,t)=>e+(t.usage.reasoning_tokens||0),0)||void 0}}};function q(e){return Number.isFinite(e.startTimeMs)?e.startTimeMs:0}function E(e){return new Date(e||Date.now()).toISOString()}function $(e){return(e.startTimeMs||0)+Math.max(0,e.latencyMs||0)}function j(e){return e.reduce((e,t)=>e?$(t)>=$(e)?t:e:t,void 0)}function R(...e){for(let t of e){let e=function(e){if(null!=e){if("string"==typeof e)return e.trim()?e:void 0;if("object"==typeof e)try{return JSON.stringify(e)}catch{return}return String(e)}}(t);if(e)return e}}function D(e){let t=e.attributes||{};return R(e.model,t["gen_ai.request.model"],t["llm.request.model"],t["llm.model_name"],t["gen_ai.response.model"])}function L(e){let t=e.attributes||{};return String(t["openinference.span.kind"]||t["traceloop.span.kind"]||t["span.kind"]||"").toUpperCase()}function J(e){let t=e.usage||{};return t.total_tokens||(t.input_tokens||0)+(t.output_tokens||0)+(t.reasoning_tokens||0)}function F(e){let t=e.attributes||{};return"AGENT"===L(e)||"session"===String(t["hermes.session.kind"]||"").toLowerCase()||"agent"===String(e.name||"").toLowerCase()}function P(e){return String(e.name||"").startsWith("api.")}function H(e){let t=e.attributes||{},n=t["llm.response.finish_reason"]??t["gen_ai.response.finish_reasons"];if(Array.isArray(n))return String(n[0]||"").toLowerCase();let r=String(n||"").trim();if(r.startsWith("["))try{let e=JSON.parse(r);if(Array.isArray(e))return String(e[0]||"").toLowerCase()}catch{}return r.toLowerCase()}function U(e){if("llm"!==e.kind||F(e)||P(e))return!1;let t=e.attributes||{};return!!String(e.name||"").startsWith("llm.")||void 0!==t["input.value"]||void 0!==t["output.value"]}function K(e){return"tool"===e.kind||"TOOL"===L(e)||void 0!==(e.attributes||{})["tool.name"]}function B(e,t){let n=String(e||"").trim();if(n)return"default"===n.toLowerCase()?t:n}function G(e,t,n){let r=e.attributes||{},i=R(r["hermes.session_id"])||t,o=R(r["hermes.parent_session_id"]),a=R(r["hermes.agent.role"]),s=i!==t||!!o||void 0!==a&&"root"!==a,u=B(R(r["hermes.profile.name"]),n),l=B(R(r["hermes.agent.name"]),n),c=(s||l?.toLowerCase()!=="root"?l:u)||u||(s?B(a,n):void 0)||n;return{sessionId:i,isSubagent:s,name:c}}function Q(e,t){return e.isSubagent?{role:"subagent",agent:e.name,subagent_name:e.name,subagent_session_id:e.sessionId}:{role:"assistant",agent:e.name||t}}function V(e){return String((e.attributes||{})["tool.name"]||e.name||"tool").replace(/^tool\./,"")||"tool"}function W(e){if(!e)return e;let t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.parse(t)}catch{return e}}function X(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(e=>"string"==typeof e?e:e?.text?String(e.text):e?.content?X(e.content):"").filter(Boolean).join("\n");if("object"==typeof e){if(e.text)return String(e.text);if(e.content)return X(e.content)}return String(e)}function Y(e){if(!e)return;let t=R(e.attributes?.["input.value"]);return function(e){let t="string"==typeof e?W(e):void 0,n=Array.isArray(t)?t:Array.isArray(t?.messages)?t.messages:void 0;if(n)for(let e=n.length-1;e>=0;e--){let t=n[e];if("user"!==String(t?.role||"").toLowerCase())continue;let r=X(t.content);if(r.trim())return r}}(t)||t}function Z(e){if(!e)return;let t=R(e.attributes?.["output.value"]);if(!t)return;let n=W(t);return n&&"object"==typeof n?function(e){let t="string"==typeof e?W(e):void 0;if(!t||"object"!=typeof t)return;let n=Array.isArray(t.choices)?t.choices:void 0;if(n){let e=n.map(e=>X(e?.message?.content??e?.delta?.content??e?.text)).filter(e=>e.trim()).join("\n");if(e.trim())return e}let r=R(t.output_text,t.message?.content,t.content,t.text);if(r)return r;if(Array.isArray(t.output)){let e=t.output.flatMap(e=>Array.isArray(e?.content)?e.content:[e?.content??e]).map(e=>X(e?.text??e?.content??e)).filter(e=>e.trim()).join("\n");if(e.trim())return e}if(Array.isArray(t.candidates)){let e=t.candidates.flatMap(e=>e?.content?.parts??e?.content??e?.output??e).map(e=>X(e?.text??e?.content??e)).filter(e=>e.trim()).join("\n");if(e.trim())return e}}(t):t}function ee(e){if(!e)return;let t=e.attributes||{};return R(t["error.message"],t["exception.message"],t["hermes.api_error.reason"])}function et(e){return{input_tokens:e.reduce((e,t)=>e+(t.usage?.input_tokens||0),0),output_tokens:e.reduce((e,t)=>e+(t.usage?.output_tokens||0),0),reasoning_tokens:e.reduce((e,t)=>e+(t.usage?.reasoning_tokens||0),0),total:e.reduce((e,t)=>e+J(t),0)}}function en(e){let t=e.sourceEvent||e.llm,n=Math.max(t.startTimeMs||0,...e.usageEvents.map(e=>e.startTimeMs||0))||Date.parse(t.receivedAt)||Date.now(),r=$(t)||n,i=et(e.usageEvents),o=ee(t);return{...Q(e.owner,e.framework),content:e.content,timestamp:E(n),timeInfo:{created:E(n),completed:E(r)},traceId:t.traceId,spanId:`${t.spanId||e.llm.spanId||"llm"}:output`,parentSpanId:t.parentSpanId||e.llm.spanId,name:t.name,model:e.model,usage:{input_tokens:i.input_tokens,output_tokens:i.output_tokens,reasoning_tokens:i.reasoning_tokens||void 0,total:i.total},...o?{status:"error",error:{message:o}}:{}}}let er="langfuse-langgraph",ei="report-generator",eo=new Set(["agent","tools","prompt","runnablesequence","call_model","should_continue","chatopenai","langgraph"]);function ea(e){if("string"!=typeof e)return e;let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function es(e){let t=ea(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}function eu(...e){for(let t of e){let e=function(e){if(null!=e){if("string"==typeof e)return e.trim()?e:void 0;try{let t=JSON.stringify(e);return t&&"null"!==t?t:void 0}catch{return String(e)}}}(t);if(e)return e}}function el(e,t){return e?.attributes?.[t]}function ec(e){return e?.startTimeMs||Date.parse(e?.receivedAt||"")||Date.now()}function ed(e){return ec(e)+Math.max(0,e?.latencyMs||0)}function ef(e){return new Date(e||Date.now()).toISOString()}function em(e){return e.usage.total_tokens||e.usage.input_tokens+e.usage.output_tokens+(e.usage.reasoning_tokens||0)}function ep(e,t){return eu(el(e,`langfuse.observation.metadata.${t}`),el(e,`langfuse.trace.metadata.${t}`))}function eg(e){return es(el(e,"langfuse.observation.output"))}function e_(e){return eu(e.subagent_type,e.subagent_name,e.subagentName,e.agent,e.agent_name,e.agentName,e.name)}function eh(e){let t=e=>[...e].sort((e,t)=>ed(t)-ed(e))[0],n=t(e.filter(e=>!0===el(e,"langfuse.internal.is_app_root")||"true"===el(e,"langfuse.internal.is_app_root")));return n||t(e.filter(e=>"span"===e.kind))||t(e)}function ey(e){let t,n=eu(e);return!(!n||(t=eu(n))&&/^agent-run(?:[-_]\d{8}t\d{6}z?)?$/i.test(t))&&!eo.has(n.toLowerCase())}function ev(e){return ey(e?.name)?eu(e?.name):void 0}function eS(e,t){let n=e.filter(t).filter(e=>"llm"!==e.kind&&"tool"!==e.kind).filter(e=>ev(e)).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));return ev(n[0])}function eI(e,t){for(let n of e.filter(t).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0))){let e=function(e){let t=ea(el(e,"langfuse.observation.output"));return(Array.isArray(t?.messages)?t.messages:[t]).map(e=>eu(e?.name)).filter(e=>ey(e))}(n)[0];if(e)return e}}let ew=[{id:er,matches:e=>e.some(e=>e.serviceName===er),aggregate:function(e,t){let n,r=t.filter(t=>t.sessionId===e).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));if(!r.length)return null;let i=eh(r),o=i?.traceId,a=(o?r.filter(e=>e.traceId===o):r).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));if(!a.length)return null;let s=new Map(a.filter(e=>e.spanId).map(e=>[e.spanId,e])),u=eh(a)||i,l=es(el(u,"langfuse.observation.input")),c=es(el(u,"langfuse.observation.output")),d=eu(l.skill,ep(u,"skill"),a.map(e=>ep(e,"skill")).find(Boolean)),f=a.find(e=>"tool"===e.kind&&"call_report_subagent"===e.name),m=f?`${e}:subagent:${f?.spanId||ei}`:void 0,p=e=>(function(e,t,n){let r=e.parentSpanId?t.get(e.parentSpanId):void 0,i=new Set;for(;r?.spanId&&!i.has(r.spanId);){if(n(r))return!0;i.add(r.spanId),r=r.parentSpanId?t.get(r.parentSpanId):void 0}return!1})(e,s,e=>"tool"===e.kind&&"call_report_subagent"===e.name),g=e_(es(el(f,"langfuse.observation.input")))||eS(a,p)||eI(a,p)||ei,_=(n=e=>!p(e),eu(l.agent,l.agent_name,l.agentName,ep(u,"agent"),ep(u,"agent_name"),ep(u,"agentName"),ep(u,"name"),eS(a,n),eI(a,n),ey(u?.name)?eu(u?.name):void 0)||"Langfuse Agent"),h=a.filter(e=>"llm"===e.kind&&"ChatOpenAI"===e.name),y=[],v=eu(l.input,ep(u,"input"),el(h[0],"langfuse.trace.metadata.input"))||"Langfuse LangGraph Session";for(let e of(y.push({role:"user",content:v,agent:_,timestamp:ef(ec(u)),timeInfo:{created:ef(ec(u))}}),h))y.push(function(e){let{event:t,skillName:n,mainAgentName:r,isSubagent:i,subagentSessionId:o,subagentName:a}=e,s=eg(t),u=ec(t),l=ed(t),c=Array.isArray(s.tool_calls)?s.tool_calls.map(e=>{let t,r;return t=eu(e.name,e.function?.name)||"tool",r=e?.args&&"object"==typeof e.args&&!Array.isArray(e.args)?e.args:{},"follow_skill"===t&&n?{id:e.id,type:"function",state:"pending",function:{name:"skill",arguments:JSON.stringify({name:n,source_tool:t,...r})}}:"call_report_subagent"===t?{id:e.id,type:"function",state:"pending",function:{name:"task",arguments:JSON.stringify({subagent_type:e_(r)||a,description:eu(r.diagnosis_summary,r.description)||"generate diagnostic report",source_tool:t,subagent_session_id:o})}}:{id:e.id,type:"function",state:"pending",function:{name:t,arguments:JSON.stringify(r)}}}):[],d={role:i?"subagent":"assistant",content:eu(s.content,el(t,"langfuse.observation.output"))||"",agent:i?a:r,model:t.model,usage:{input:t.usage.input_tokens,output:t.usage.output_tokens,reasoning:t.usage.reasoning_tokens||void 0,total:t.usage.total_tokens},spanId:t.spanId,parentSpanId:t.parentSpanId,traceId:t.traceId,name:t.name,timestamp:ef(u),timeInfo:{created:ef(u),completed:ef(l)}};return i&&(d.subagent_name=a,d.subagent_session_id=o),c.length&&(d.tool_calls=c),d}({event:e,skillName:d,mainAgentName:_,isSubagent:p(e),subagentSessionId:m,subagentName:g}));!function(e,t){let n=new Set;for(let r of t.sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0)))for(let t of e){let e=(Array.isArray(t.tool_calls)?t.tool_calls:[]).find(e=>{let t=`${r.spanId||r.name}:${e.id||e.function?.name}`;return!n.has(t)&&function(e,t){let n,r=e?.function?.name||e?.name,i=(n=ea(e?.function?.arguments??e?.arguments))&&"object"==typeof n&&!Array.isArray(n)?n:{};return"follow_skill"===t?"skill"===r&&"follow_skill"===i.source_tool:"call_report_subagent"===t?"task"===r&&"call_report_subagent"===i.source_tool:r===t}(e,r.name)});if(!e)continue;let i=`${r.spanId||r.name}:${e.id||e.function?.name}`;n.add(i);let o=ea(el(r,"langfuse.observation.output"));e.state="success",e.output=o,e.result=o,e.timing={started_at:ef(ec(r)),completed_at:ef(ed(r))};break}}(y,a.filter(e=>"tool"===e.kind));let S=[...h].reverse().find(e=>!p(e)),I=eu(c.final_output,S?eg(S).content:void 0)||"",w=h.filter(e=>em(e)>0),k=h.find(e=>e.model),x=Math.min(...a.map(ec)),b=Math.max(...a.map(ed)),M=a.filter(e=>"tool"===e.kind);return{task_id:e,query:v,framework:er,model:eu(l.model,ep(u,"model"),k?.model)||"unknown",tokens:w.reduce((e,t)=>e+em(t),0),latency:Math.max(0,b-x),final_result:I,timestamp:new Date(x||Date.now()),trace_completed_at:ef(b),force_query_update:!0,session_merge_strategy:"snapshot-replace",label:er,user:a.find(e=>e.user)?.user||"anonymous",interactions:y,skill:d,invokedSkills:d?[{name:d,version:null}]:[],skills:d?[d]:[],agent:_,agentName:_,llm_call_count:h.length,tool_call_count:M.length,tool_call_error_count:M.filter(e=>"error"===String(el(e,"langfuse.observation.level")||"").toLowerCase()).length,input_tokens:w.reduce((e,t)=>e+t.usage.input_tokens,0),output_tokens:w.reduce((e,t)=>e+t.usage.output_tokens,0),reasoning_tokens:w.reduce((e,t)=>e+(t.usage.reasoning_tokens||0),0)||void 0,subagentCount:+!!f}}},{id:"hermes",matches:e=>e.some(e=>"hermes"===e.serviceName||e.attributes?.["hermes.session_id"]!==void 0||e.attributes?.["agent.insight.framework"]==="hermes"),aggregate:function(e,t){let n=t.filter(t=>t.sessionId===e).sort((e,t)=>q(e)-q(t));if(0===n.length)return null;let r=n.find(e=>e.serviceName)?.serviceName||"hermes",i=function(e){let t=new Map;for(let n of e){if(!n.parentSpanId)continue;let e=t.get(n.parentSpanId)||[];e.push(n),t.set(n.parentSpanId,e)}for(let e of t.values())e.sort((e,t)=>q(e)-q(t));return t}(n),o=j(n.filter(t=>F(t)&&!G(t,e,r).isSubagent)),a=n.filter(U),s=a.length>0?a:o?[o]:[],u=[],l=n.map(D).filter(Boolean)[0]||"unknown",c=new Set;for(let t of s){let o=G(t,e,r),a=n.find(t=>F(t)&&G(t,e,r).sessionId===o.sessionId),s=function(e,t){if(!e.spanId)return[];let n=[],r=[...t.get(e.spanId)||[]];for(;r.length>0;){let e=r.shift();n.push(e),!e.spanId||F(e)||U(e)||r.push(...t.get(e.spanId)||[])}return n.sort((e,t)=>q(e)-q(t))}(t,i),d=s.length>0?s:n.filter(n=>n.traceId===t.traceId&&n!==t&&G(n,e,r).sessionId===o.sessionId&&!F(n)&&!U(n)),f=d.filter(P),m=[...f].reverse().find(e=>"stop"===H(e)&&Z(e)),p=Y(t)||Y(a),g=Z(m)||Z(t)||Z(a),_=function(e){for(let t of e){if(!t)continue;let e=function(e){let t="string"==typeof e?W(e):void 0,n=Array.isArray(t)?t:Array.isArray(t?.messages)?t.messages:void 0;if(!n)return;let r=[];for(let e of n){if("system"!==String(e?.role||"").toLowerCase())continue;let t=X(e.content);t.trim()&&r.push(t)}return r.length>0?r.join("\n\n"):void 0}(R(t.attributes?.["llm.input_messages"],t.attributes?.["input.value"]));if(e)return e}}([m,...f,t,a]);if(_){let e=`${o.sessionId}::${_}`;c.has(e)||(c.add(e),u.push(function(e){let t=e.event.startTimeMs||Date.parse(e.event.receivedAt)||Date.now();return{role:"system",agent:e.owner.name||e.framework,...e.owner.isSubagent?{subagent_session_id:e.owner.sessionId}:{},content:e.content,system_prompt_length:e.content.length,timestamp:E(t),timeInfo:{created:E(t),completed:E(t)},traceId:e.event.traceId,spanId:`${e.event.spanId||"llm"}:system`}}({content:_,event:t,framework:r,owner:o})))}if(p){let e=[...u].reverse().find(e=>"user"===e.role);e&&e.content===p||u.push(function(e){let t=e.event.startTimeMs||Date.parse(e.event.receivedAt)||Date.now();return{...Q(e.owner,e.framework),role:e.owner.isSubagent?"subagent":"user",content:e.content,timestamp:E(t),timeInfo:{created:E(t),completed:E(t)},traceId:e.event.traceId,spanId:`${e.event.spanId||"llm"}:input`}}({content:p,event:t,framework:r,owner:o}))}for(let e of d.filter(e=>P(e)||K(e))){if(P(e)){if(e===m)continue;let n=ee(e),i=Z(e)||(n?`API request failed: ${n}`:void 0);i&&u.push(en({content:i,llm:t,sourceEvent:e,framework:r,model:D(e)||l,usageEvents:[e],owner:o}));continue}u.push(function(e){var t;let n,r,i,o,a,s=e.tool.startTimeMs||Date.parse(e.tool.receivedAt)||Date.now(),u=$(e.tool)||s;return{...Q(e.owner,e.framework),content:"",timestamp:E(s),timeInfo:{created:E(s),completed:E(u)},traceId:e.llm.traceId,spanId:`${e.llm.spanId||"llm"}:${e.tool.spanId||V(e.tool)}`,parentSpanId:e.llm.spanId,name:`tool.${V(e.tool)}`,model:e.model,usage:{input_tokens:0,output_tokens:0,total:0},tool_calls:[(n=(t=e.tool).attributes||{},r=t.startTimeMs||Date.parse(t.receivedAt)||Date.now(),i=$(t)||r,o=R(n["output.value"],n["tool.output"],n["tool.result"]),a=String(n["hermes.tool.outcome"]||n["tool.outcome"]||"").toLowerCase(),{id:t.spanId,type:"function",state:"error"===a||"failed"===a?"error":"success",function:{name:V(t),arguments:R(n["tool.arguments"],n["input.value"])||JSON.stringify(n)},output:o,result:o,timing:{started_at:E(r),completed_at:E(i)}})]}}({llm:t,tool:e,framework:r,model:l,owner:o}))}g&&u.push(en({content:g,llm:t,sourceEvent:m,framework:r,model:l,usageEvents:m?[m]:f,owner:o}))}if(0===u.length)return null;u.sort((e,t)=>(Date.parse(e.timestamp||"")||0)-(Date.parse(t.timestamp||"")||0));let d=et(function(e,t){if(t&&J(t)>0)return[t];let n=e.filter(e=>P(e)&&J(e)>0);return n.length>0?n:e.filter(e=>J(e)>0&&!U(e))}(n,o)),f=n[0],m=[...u].reverse().find(e=>"assistant"===e.role&&String(e.content||"").trim()),p=u.find(e=>"user"===e.role&&String(e.content||"").trim()),g=m?.content||"",_=j(n.filter(t=>{let n=G(t,e,r);return P(t)&&!n.isSubagent&&n.sessionId===e&&"stop"===H(t)&&!!Z(t)})),h=g?function(e){if(!e)return;let t=$(e);return t>0?E(t):void 0}(o||_):void 0,y=o?.latencyMs||Math.max(...n.map(e=>e.latencyMs||0),0),v=n.filter(P).length||s.length,S=o?G(o,e,r):n.map(t=>G(t,e,r)).find(e=>!e.isSubagent),I=S?.name||r;return{task_id:e,query:p?.content||"Hermes Session",framework:r,model:l,tokens:d.total,latency:y,final_result:g,trace_completed_at:h,timestamp:new Date(f.startTimeMs||Date.parse(f.receivedAt)||Date.now()),label:r,user:f.user||"anonymous",interactions:u,agent:I,agentName:I,llm_call_count:v,tool_call_count:n.filter(K).length,input_tokens:d.input_tokens,output_tokens:d.output_tokens,reasoning_tokens:d.reasoning_tokens||void 0}}},z];function ek(){return"false"!==process.env.AGENT_INSIGHT_CLAUDE_OTEL_SKIP_EVALUATION}function ex(){return[{id:"claude-otel-logs",spoolDir:r.getClaudeOtelSpoolDir,listFiles:()=>(0,r.listClaudeOtelSpoolFiles)((0,r.getClaudeOtelSpoolDir)()),aggregate:M,defaultSkipEvaluation:ek},{id:"otel-traces",spoolDir:r.getOtelTraceSpoolDir,listFiles:()=>(0,r.listOtelTraceSpoolFiles)((0,r.getOtelTraceSpoolDir)()),aggregate:e=>{var t;let n;return t=(0,r.getOtelTraceSpoolDir)(),{sessionId:e,eventCount:(n=(0,r.readOtelTraceEventsForSession)(e,t)).length,record:function(e,t){let n=new Set,r=t.filter(t=>t.sessionId===e).filter(e=>{let t=e.spanId||[e.sessionId,e.traceId||"",e.name||"",e.kind,e.startTimeMs||""].join("|");return!n.has(t)&&(n.add(t),!0)}).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));return r.length?(ew.find(e=>e.matches(r))||z).aggregate(e,r):null}(e,n)}},defaultSkipEvaluation:()=>!0}]}e.s(["listSources",()=>ex],667034)},588876,e=>e.a(async(t,n)=>{try{e.i(210954);var r=e.i(184599),i=e.i(742529),o=e.i(256451),a=e.i(401682),s=t([a]);[a]=s.then?(await s)():s;let k=i.z.object({has_task_output:i.z.boolean().default(!1),confidence:i.z.number().min(0).max(1).default(0),selected_source_id:i.z.string().nullable().default(null),needs_followup_context:i.z.boolean().default(!1),followup_anchor_llm_call_id:i.z.string().nullable().default(null),reason:i.z.string().default("")}),x=i.z.object({has_task_output:i.z.boolean().default(!1),confidence:i.z.number().min(0).max(1).default(0),selected_source_id:i.z.string().nullable().default(null),artifact_paths:i.z.array(i.z.string()).default([]),reason:i.z.string().default("")});async function u(e){var t;let n,i=await (0,a.getActiveConfig)(e);if(!i)return{client:null,model:null};let{customFetch:s}=(0,o.getProxyConfig)();return{client:new r.OpenAI({apiKey:i.apiKey||"no-api-key-required",baseURL:(t=i.baseUrl||"https://api.deepseek.com",String(t||"").replace(/\/chat\/completions\/?$/,"")),fetch:s,timeout:(n=Number(process.env.RESULT_ARTIFACT_TIMEOUT_MS||process.env.JUDGMENT_TIMEOUT_MS||3e5),Number.isFinite(n)&&n>0?n:3e5)}),model:i.model||"deepseek-chat"}}function l(e){let t=e.trim();if(!t)return null;let n=t.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(n)t=n[1];else{let e=t.indexOf("{"),n=t.lastIndexOf("}");-1!==e&&-1!==n&&n>=e&&(t=t.substring(e,n+1))}try{return JSON.parse(t)}catch{return null}}function c(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:null}function d(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}}function f(e,t){let n=String(e||"").trim();if(n.length<=t)return n;let r=Math.floor(.65*t),i=Math.max(0,t-r-80);return`${n.slice(0,r)}
2
+ `,"utf8"),t.default.renameSync(o,i)}function s(e,t){let n=o(e);return{bytes:n.files[t]?.bytes||0}}function u(e,t,n){let r=o(e);r.files[t]={bytes:Math.max(0,n.bytes||0),updatedAt:new Date().toISOString()},a(e,r)}function l(e,t){let n=o(e);n.files[t]&&(delete n.files[t],a(e,n))}function c(e,o=function(e){let r=[],i=e=>{let o=[];try{o=t.default.readdirSync(e,{withFileTypes:!0})}catch{return}for(let t of o){let o=n.default.join(e,t.name);t.isDirectory()?i(o):t.isFile()&&t.name.endsWith(".jsonl")&&r.push(o)}};try{for(let r of t.default.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()))i(n.default.join(e,r.name))}catch{}return r.sort()}(e)){if(t.default.existsSync(r(e)))return;let s={version:1,files:{}},u=new Date().toISOString();for(let n of o)try{let r=i(e,n);s.files[r]={bytes:t.default.statSync(n).size,updatedAt:u}}catch{}a(e,s)}e.s(["getFileCursor",()=>s,"invalidateCursor",()=>l,"loadCheckpoint",()=>o,"saveFileCursor",()=>u,"seedToEof",()=>c,"toCheckpointRelPath",()=>i])},337216,e=>{"use strict";var t=e.i(902157),n=e.i(460535);function r(e,i,o,a=new Date){if(!Number.isFinite(o)||o<1)return{archived:0,skipped:i.length};let s=(0,n.loadCheckpoint)(e),u=a.getTime()-24*o*36e5,l=0,c=0;for(let r of i){let i=(0,n.toCheckpointRelPath)(e,r),o=function(e){let t=e.split("/")[0];return/^\d{4}-\d{2}-\d{2}$/.test(t)?t:null}(i),a=o?Date.parse(`${o}T00:00:00.000Z`):NaN;if(!Number.isFinite(a)||a>=u){c+=1;continue}let d=s.files[i],f=0;try{f=t.default.statSync(r).size}catch{c+=1;continue}if(!d||d.bytes<f){c+=1;continue}t.default.renameSync(r,function(e){let n=`${e}.processed`;return t.default.existsSync(n)?`${n}.${Date.now()}`:n}(r)),(0,n.invalidateCursor)(e,i),l+=1}return{archived:l,skipped:c}}e.s(["compactProcessedSpoolFiles",()=>r])},667034,e=>{"use strict";var t=e.i(902157),n=e.i(308033),r=e.i(93387),i=e.i(571902);let o="Claude Code";function a(e,t=0){if(null==e||""===e)return t;let n=Number(e);return Number.isFinite(n)?n:t}function s(e,t=0){return Math.max(0,a(e,t))}function u(e){return e.eventTimestamp||e.receivedAt||new Date().toISOString()}function l(e){let t=Date.parse(u(e));return 1e3*(Number.isFinite(t)?t:0)+(e.sequence||0)}function c(e){return[e.sessionId,e.promptId||"",e.sequence??"",e.eventName,e.eventTimestamp||"",e.spanId||""].join("|")}function d(e){return e.promptId||"__session__"}function f(e){if(null!=e&&Number.isFinite(e))return new Date(e).toISOString()}function m(e){if(null!=e){if("number"==typeof e&&Number.isFinite(e))return e>0&&e<1e10?1e3*e:e;if("string"==typeof e){let t=e.trim();if(!t)return;if(/^\d+(\.\d+)?$/.test(t)){let e=Number(t);return Number.isFinite(e)?e>0&&e<1e10?1e3*e:e:void 0}let n=Date.parse(t);return Number.isFinite(n)?n:void 0}}}function p(e){if(!e)return null;if("object"==typeof e)return e;if("string"!=typeof e)return null;try{return JSON.parse(e)}catch{return null}}function g(e){let n=p(e.body);if(n)return n;let i="string"==typeof e.body_ref?e.body_ref:"";if(!i)return null;let o=function(e){if(t.default.existsSync(e))return e;let n=e.indexOf("claude_raw_bodies/");return -1===n?e:(0,r.resolveAgentInsightHomePath)(e.slice(n))}(i);try{if(!t.default.existsSync(o))return null;let e=t.default.readFileSync(o,"utf8");return p(e)}catch{return null}}function _(e){if("string"==typeof e)return e;if(!Array.isArray(e))return"";let t=[];for(let n of e)n&&("string"==typeof n?t.push(n):"text"===n.type&&"string"==typeof n.text&&t.push(n.text));return t.join("")}function h(e){let t=e?.content;return Array.isArray(t)?t:[]}function y(e,t){let n=e?.attributes||{},r=m(e?u(e):u(t)),i=a(n.duration_ms),o=null!=r&&i>0?r+i:m(u(t));return{created:f(r)||u(t),completed:f(o)}}function v(e){let t="string"==typeof e?e:"tool";return"agent"===t.toLowerCase()?"task":t}function S(e){return("string"==typeof e&&e.trim()?e.trim():"agent").toLowerCase()}function I(e){let t={...e?.input||{}};return e?.name!=="Agent"||t.subagent_type||t.subagentType||(t.subagent_type=S(void 0)),{id:e?.id,type:"function",function:{name:v(e?.name),arguments:JSON.stringify(t||{})},name:v(e?.name),raw_name:e?.name,arguments:JSON.stringify(t||{}),trace_split_parallel_task:e?.name==="Agent",state:"pending"}}function w(e){if(null==e)return;if("string"!=typeof e)return e;let t=e.trim();if(t&&"claude_code.tool_result"!==t&&"tool_result"!==t){if(t.startsWith("{")||t.startsWith("["))try{return JSON.parse(t)}catch{}return e}}function k(e,t){let n={...e,...t};return(e.function||t.function)&&(n.function={...e.function||{},...t.function||{}}),"task"===e.name&&"Agent"===t.raw_name&&(n.name="task",n.function={...n.function||{},name:"task"}),n}function x(e,t){let n=Array.isArray(e.tool_calls)?e.tool_calls:[],r=n.findIndex(e=>e.id===t.id);e.tool_calls=r>=0?n.map((e,n)=>n===r?k(e,t):e):[...n,t]}function b(e){return e.filter(e=>e?.type==="tool_use"&&e.id)}function M(e){let t=e?.input||{};return e?.name==="Agent"?S(t.subagent_type||t.subagentType):t.subagent_type||t.subagentType||e?.name||"Subagent"}function N(e){let t=(0,i.readClaudeOtelEventsForSession)(e);return{sessionId:e,eventCount:t.length,record:function(e,t){let r=(function(e){let t=new Set,n=[];for(let r of e){let e=[r.sessionId,r.promptId||"",r.sequence??"",r.eventName,r.eventTimestamp||"",r.spanId||"",r.attributes?.request_id||"",r.attributes?.tool_use_id||""].join("|");t.has(e)||(t.add(e),n.push(r))}return n})(t).filter(t=>t.sessionId===e).sort((e,t)=>l(e)-l(t));if(0===r.length)return null;let i=[],N=new Map,O=new Map,T=new Map,C=new Map,A=new Map,z=new Map,q=new Map,E="",$="",j="",R=0,D=0,L=0,J=0,F=0,P=0,H=0,U=0,K=0,B=0,G=u(r[0]),Q=r.find(e=>e.user)?.user,V=new Set,W=new Set([o]),X=new Map,Y=new Set,Z=new Map;for(let e of r){if("api_request_body"===e.eventName){let t=g(e.attributes||{});if(t){var ee,et;for(let e of Array.isArray(t?.messages)?t.messages:[])for(let t of Array.isArray(e?.content)?e.content:[]){if(t?.type!=="tool_result")continue;let e=t?.tool_use_id||t?.toolUseId||t?.toolUseID||t?.id;if(!e)continue;let n=function(e){if(e&&"object"==typeof e){for(let t of["content","output","result","stdout","stderr"])if(void 0!==e[t])return function e(t){if(null!=t){if("string"==typeof t)return t;if(Array.isArray(t))return t.map(e=>"string"==typeof e?e:"string"==typeof e?.text?e.text:"string"==typeof e?.content?e.content:"").filter(Boolean).join("")||t;if("object"==typeof t){if("string"==typeof t.text)return t.text;if("string"==typeof t.content)return t.content;if(void 0!==t.output)return e(t.output);if(void 0!==t.result)return e(t.result)}return t}}(e[t])}}(t);void 0!==n&&q.set(e,n)}let n=(et=t.system)?"string"==typeof et?et.trim():Array.isArray(et)?et.map(e=>"string"==typeof e?e:"string"==typeof e?.text?e.text:"").filter(Boolean).join("\n").trim():"object"==typeof et&&"string"==typeof et.text?et.text.trim():"":"";n&&X.set(d(e),n)}continue}if("api_request"===e.eventName){let t=d(e),n=Z.get(t)||[];n.push(e),Z.set(t,n);continue}if("api_response_body"!==e.eventName)continue;let t=g(e.attributes||{});if(!t)continue;let n=d(e),r=Z.get(n)?.shift(),i=h(t);for(let n of(N.set(c(e),{request:r,body:t,content:i}),b(i)))if(O.set(n.id,n),"Agent"===n.name){let t=M(n);T.set(n.id,`${e.sessionId}:${e.promptId||"prompt"}:${t}:${n.id}`)}}let en=new Set;for(let e=0;e<r.length;e++){let t=r[e];if("tool_result"!==t.eventName)continue;let n=t.attributes?.tool_use_id;for(let i=e-1;i>=0;i--){let e=r[i];if(e.promptId!==t.promptId||e.sessionId!==t.sessionId)continue;if("user_prompt"===e.eventName)break;if("api_response_body"!==e.eventName)continue;let o=N.get(c(e));if(!o||b(o.content).length>0)continue;let a=c(e);if(!en.has(a)){en.add(a),"string"==typeof n&&n&&(C.set(a,n),A.set(n,_(o.content)));break}}}for(let e of r){let t=e.attributes||{};if((!G||Date.parse(u(e))<Date.parse(G))&&(G=u(e)),!Q&&e.user&&(Q=e.user),"user_prompt"===e.eventName){let n=("string"==typeof(ee=t.prompt)?ee:"")||"[Redacted Claude Code prompt]";E||"[Redacted Claude Code prompt]"===n||(E=n),i.push({role:"user",content:n,timestamp:u(e),timeInfo:{created:u(e),completed:u(e)},agent:o,prompt_id:e.promptId,command_name:t.command_name,command_source:t.command_source});continue}if("api_request"===e.eventName){let e=a(t.input_tokens),n=a(t.output_tokens),r=a(t.cache_read_tokens),i=a(t.cache_creation_tokens),o=e+n+r+i;L+=e,J+=n,F+=r,P+=i,H=Math.max(H,o),R+=a(t.cost_usd),D+=a(t.duration_ms),U+=1,t.model&&(j=String(t.model));continue}if("api_response_body"===e.eventName){let t={finalResult:$,model:j,responseMetaByKey:N,responseToToolId:C,toolUseById:O,subagentSessionByToolId:T,systemByPromptKey:X,emittedSystemScopes:Y};!function(e,t,n){let r=e.attributes||{},i=n.responseMetaByKey.get(c(e)),a=i?.body||g(r);if(!a)return;let l=i?.content||h(a),f=_(l);f.trim()&&(n.finalResult=f),(r.model||a.model)&&(n.model=String(r.model||a.model));let m=i?.request,p=function(e,t={}){let n=s(void 0!==t.input_tokens&&""!==t.input_tokens?t.input_tokens:e?.input_tokens??e?.input),r=s(void 0!==t.output_tokens&&""!==t.output_tokens?t.output_tokens:e?.output_tokens??e?.output),i=s(void 0!==t.cache_read_tokens&&""!==t.cache_read_tokens?t.cache_read_tokens:e?.cache_read_input_tokens??e?.cache_read_tokens),o=s(void 0!==t.cache_creation_tokens&&""!==t.cache_creation_tokens?t.cache_creation_tokens:e?.cache_creation_input_tokens??e?.cache_creation_tokens),a=Math.max(s(e?.total_tokens??e?.total),n+r+i+o);return{total:a,total_tokens:a,input:n,output:r,input_tokens:n,output_tokens:r,cache:{read:i,write:o}}}(a.usage,m?.attributes||{}),v=b(l).map(I),S=n.responseToToolId.get(c(e)),w=S?n.toolUseById.get(S):void 0,k=!!S&&w?.name==="Agent",x=k?M(w):void 0,N=S?n.subagentSessionByToolId.get(S):void 0,O=n.systemByPromptKey.get(d(e));if(O){let i=k?N||`${e.sessionId}:${S}`:void 0,s=`${i||"__root__"}::${O}`;n.emittedSystemScopes.has(s)||(n.emittedSystemScopes.add(s),t.push({role:"system",content:O,system_prompt_length:O.length,timestamp:u(e),timeInfo:y(m,e),agent:k?x:o,subagent_session_id:i,prompt_id:e.promptId,model:r.model||a.model}))}let T=function(e){if(!Array.isArray(e))return;let t=[];for(let n of e)n?.type==="thinking"&&"string"==typeof n.thinking&&n.thinking.trim()&&t.push({type:"reasoning",text:n.thinking});return t.length>0?t:void 0}(l);t.push({role:k?"subagent":"assistant",content:f,content_blocks:l,...T?{parts:T}:{},timestamp:u(e),timeInfo:y(m,e),agent:k?x:o,subagent_name:k?x:void 0,subagent_session_id:k?N||`${e.sessionId}:${S}`:void 0,prompt_id:e.promptId,model:r.model||a.model,request_id:r.request_id||a.id,stop_reason:a.stop_reason,usage:p,tool_calls:v.length>0?v:void 0})}(e,i,t),$=t.finalResult,j=t.model||j;let n=i[i.length-1];if(n&&Array.isArray(n.tool_calls))for(let e of n.tool_calls)e?.id&&z.has(e.id)&&(x(n,z.get(e.id)),z.delete(e.id));n?.agent&&W.add(n.agent);continue}if("tool_result"===e.eventName){K+=1,"false"===String(t.success)&&(B+=1);let n=t.tool_use_id,r=function(e,t,n){let r,i,o=e.attributes||{},s=p(o.tool_parameters),l=p(o.tool_input),c={...t?.input||l||s||{}},d=v(t?.name||o.tool_name||"tool");return"Agent"!==(t?.name||o.tool_name)||c.subagent_type||c.subagentType||(c.subagent_type=S(void 0)),{id:o.tool_use_id,type:"function",function:{name:d,arguments:JSON.stringify(c||{})},name:d,raw_name:t?.name||o.tool_name,arguments:JSON.stringify(c||{}),trace_split_parallel_task:"Agent"===(t?.name||o.tool_name),state:"false"===String(o.success)?"error":"success",timing:(r=a(e.attributes?.duration_ms),{started_at:f(null!=(i=m(u(e)))&&r>0?i-r:void 0),completed_at:f(i)}),duration_ms:a(o.duration_ms),decision_type:o.decision_type,decision_source:o.decision_source,output_size_bytes:a(o.tool_result_size_bytes),error_type:o.error_type,error:o.error,output:n}}(e,"string"==typeof n?O.get(n):void 0,function(e,t){let n=e.attributes||{};for(let e of["tool_result","tool_result_content","tool_result_text","tool_output","tool_output_text","output","result"]){if(!Object.prototype.hasOwnProperty.call(n,e))continue;let t=w(n[e]);if(void 0!==t)return t}let r=w(e.body);return void 0!==r?r:t}(e,"string"==typeof n?q.has(n)?q.get(n):A.get(n):void 0)),o=i.find(e=>Array.isArray(e.tool_calls)&&e.tool_calls.some(e=>e.id===r.id));if(o||r.id||(o=[...i].reverse().find(e=>"assistant"===e.role)),o)x(o,r);else if(r.id){let e=z.get(r.id);z.set(r.id,e?k(e,r):r)}let s=p(t.tool_parameters)?.skill_name||p(t.tool_input)?.skill;"string"==typeof s&&s.trim()&&V.add(s.trim());continue}}if(E||(E=`Claude Code Session ${e}`),!$){let e=[...i].reverse().find(e=>"assistant"===e.role&&_(e.content).trim());$=e?_(e.content):""}return{task_id:e,query:E,framework:"claudecode",model:j,tokens:L+J+F+P,cost:R,latency:D/1e3,timestamp:G,final_result:$||"[No final text output]",interactions:(0,n.normalizeClaudeCodeInteractionsForStorage)(i),skills:Array.from(V),agent:o,agentName:o,agents:Array.from(W),user:Q,tool_call_count:K,llm_call_count:U,input_tokens:L,output_tokens:J,tool_call_error_count:B,cache_read_input_tokens:F,cache_creation_input_tokens:P,max_single_call_tokens:H}}(e,t)}}function O(...e){for(let t of e){let e=function(e){if(null!=e){if("string"==typeof e)return e.trim()?e:void 0;try{return JSON.stringify(e)}catch{return String(e)}}}(t);if(e)return e}}function T(e){return e.usage.total_tokens||e.usage.input_tokens+e.usage.output_tokens+(e.usage.reasoning_tokens||0)}function C(e){let t=e.attributes||{};return O(e.model,t["gen_ai.request.model"],t["llm.request.model"],t["llm.model_name"],t["gen_ai.response.model"])}function A(e){let t=e.attributes||{};return"AGENT"===String(t["openinference.span.kind"]||t["traceloop.span.kind"]||t["span.kind"]||"").toUpperCase()||"agent"===String(e.name||"").toLowerCase()}function z(e){return new Date(e||Date.now()).toISOString()}let q={id:"generic",matches:()=>!0,aggregate:function(e,t){let n=t.filter(t=>t.sessionId===e);if(!n.length)return null;let r=[],i=new Map,o=[];for(let e of n)if("llm"===e.kind){let t=function(e){let t=e.attributes||{},n=O(t["gen_ai.prompt"],t["input.value"],t["db.statement"]),r=O(t["gen_ai.completion"],t["output.value"],t["db.result"]),i=e.startTimeMs||Date.parse(e.receivedAt)||Date.now(),o=i+Math.max(0,e.latencyMs||0),a={role:"assistant",content:r||"",spanId:e.spanId,parentSpanId:e.parentSpanId,traceId:e.traceId,name:e.name,model:C(e),usage:{input_tokens:e.usage.input_tokens,output_tokens:e.usage.output_tokens,reasoning_tokens:e.usage.reasoning_tokens||void 0,total:e.usage.total_tokens},timestamp:z(i),timeInfo:{created:z(i),completed:z(o)},agent:e.serviceName};return n&&(a.requestMessages=[{role:"user",content:n}]),a}(e);r.push(t),e.spanId&&i.set(e.spanId,t)}else o.push(e);for(let e of o){let t=function(e){let t=e.attributes||{},n=e.startTimeMs||Date.parse(e.receivedAt)||Date.now(),r=n+Math.max(0,e.latencyMs||0),i=O(t["output.value"],t["tool.output"],t["tool.result"]),o=String(t["tool.status"]||t["tool.outcome"]||"").toLowerCase();return{id:e.spanId,type:"function",state:"error"===o||"failed"===o?"error":"success",function:{name:t["tool.name"]||e.name||"tool",arguments:O(t["tool.arguments"],t["input.value"])||JSON.stringify(t)},output:i,result:i,timing:{started_at:z(n),completed_at:z(r)}}}(e),n=(e.parentSpanId?i.get(e.parentSpanId):void 0)||r[r.length-1];n?n.tool_calls=Array.isArray(n.tool_calls)?[...n.tool_calls,t]:[t]:r.push({role:"assistant",content:"",agent:e.serviceName,timestamp:z(e.startTimeMs||Date.parse(e.receivedAt)||Date.now()),tool_calls:[t]})}let a=n.filter(e=>T(e)>0),s=a.filter(e=>!A(e)),u=n.some(A)&&s.length?s:a,l=n.map(e=>e.latencyMs||0).filter(e=>e>0),c=n.some(A)?Math.max(0,...l):l.reduce((e,t)=>e+t,0),d=r.find(e=>e?.requestMessages?.[0]?.content),f=[...r].reverse().find(e=>e?.content),m=n[0],p=n.find(e=>C(e));return{task_id:e,query:d?.requestMessages?.[0]?.content||"OTel Session",framework:m.serviceName||"unknown-service",model:p&&C(p)||"unknown",tokens:u.reduce((e,t)=>e+T(t),0),latency:c,final_result:f?.content||"",timestamp:new Date(m.startTimeMs||Date.parse(m.receivedAt)||Date.now()),label:m.serviceName||"unknown-service",user:m.user||"anonymous",interactions:r,agent:m.serviceName,agentName:m.serviceName,llm_call_count:n.filter(e=>"llm"===e.kind&&!A(e)).length,tool_call_count:o.length,tool_call_error_count:o.filter(e=>{let t=String(e.attributes?.["tool.status"]||e.attributes?.["tool.outcome"]||"").toLowerCase();return"error"===t||"failed"===t}).length,input_tokens:u.reduce((e,t)=>e+t.usage.input_tokens,0),output_tokens:u.reduce((e,t)=>e+t.usage.output_tokens,0),reasoning_tokens:u.reduce((e,t)=>e+(t.usage.reasoning_tokens||0),0)||void 0}}};function E(e){return Number.isFinite(e.startTimeMs)?e.startTimeMs:0}function $(e){return new Date(e||Date.now()).toISOString()}function j(e){return(e.startTimeMs||0)+Math.max(0,e.latencyMs||0)}function R(e){return e.reduce((e,t)=>e?j(t)>=j(e)?t:e:t,void 0)}function D(...e){for(let t of e){let e=function(e){if(null!=e){if("string"==typeof e)return e.trim()?e:void 0;if("object"==typeof e)try{return JSON.stringify(e)}catch{return}return String(e)}}(t);if(e)return e}}function L(e){let t=e.attributes||{};return D(e.model,t["gen_ai.request.model"],t["llm.request.model"],t["llm.model_name"],t["gen_ai.response.model"])}function J(e){let t=e.attributes||{};return String(t["openinference.span.kind"]||t["traceloop.span.kind"]||t["span.kind"]||"").toUpperCase()}function F(e){let t=e.usage||{};return t.total_tokens||(t.input_tokens||0)+(t.output_tokens||0)+(t.reasoning_tokens||0)}function P(e){let t=e.attributes||{};return"AGENT"===J(e)||"session"===String(t["hermes.session.kind"]||"").toLowerCase()||"agent"===String(e.name||"").toLowerCase()}function H(e){return String(e.name||"").startsWith("api.")}function U(e){let t=e.attributes||{},n=t["llm.response.finish_reason"]??t["gen_ai.response.finish_reasons"];if(Array.isArray(n))return String(n[0]||"").toLowerCase();let r=String(n||"").trim();if(r.startsWith("["))try{let e=JSON.parse(r);if(Array.isArray(e))return String(e[0]||"").toLowerCase()}catch{}return r.toLowerCase()}function K(e){if("llm"!==e.kind||P(e)||H(e))return!1;let t=e.attributes||{};return!!String(e.name||"").startsWith("llm.")||void 0!==t["input.value"]||void 0!==t["output.value"]}function B(e){return"tool"===e.kind||"TOOL"===J(e)||void 0!==(e.attributes||{})["tool.name"]}function G(e,t){let n=String(e||"").trim();if(n)return"default"===n.toLowerCase()?t:n}function Q(e,t,n){let r=e.attributes||{},i=D(r["hermes.session_id"])||t,o=D(r["hermes.parent_session_id"]),a=D(r["hermes.agent.role"]),s=i!==t||!!o||void 0!==a&&"root"!==a,u=G(D(r["hermes.profile.name"]),n),l=G(D(r["hermes.agent.name"]),n),c=(s||l?.toLowerCase()!=="root"?l:u)||u||(s?G(a,n):void 0)||n;return{sessionId:i,isSubagent:s,name:c}}function V(e,t){return e.isSubagent?{role:"subagent",agent:e.name,subagent_name:e.name,subagent_session_id:e.sessionId}:{role:"assistant",agent:e.name||t}}function W(e){return String((e.attributes||{})["tool.name"]||e.name||"tool").replace(/^tool\./,"")||"tool"}function X(e){if(!e)return e;let t=e.trim();if(!t||!t.startsWith("{")&&!t.startsWith("["))return e;try{return JSON.parse(t)}catch{return e}}function Y(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(e=>"string"==typeof e?e:e?.text?String(e.text):e?.content?Y(e.content):"").filter(Boolean).join("\n");if("object"==typeof e){if(e.text)return String(e.text);if(e.content)return Y(e.content)}return String(e)}function Z(e){if(!e)return;let t=D(e.attributes?.["input.value"]);return function(e){let t="string"==typeof e?X(e):void 0,n=Array.isArray(t)?t:Array.isArray(t?.messages)?t.messages:void 0;if(n)for(let e=n.length-1;e>=0;e--){let t=n[e];if("user"!==String(t?.role||"").toLowerCase())continue;let r=Y(t.content);if(r.trim())return r}}(t)||t}function ee(e){if(!e)return;let t=D(e.attributes?.["output.value"]);if(!t)return;let n=X(t);return n&&"object"==typeof n?function(e){let t="string"==typeof e?X(e):void 0;if(!t||"object"!=typeof t)return;let n=Array.isArray(t.choices)?t.choices:void 0;if(n){let e=n.map(e=>Y(e?.message?.content??e?.delta?.content??e?.text)).filter(e=>e.trim()).join("\n");if(e.trim())return e}let r=D(t.output_text,t.message?.content,t.content,t.text);if(r)return r;if(Array.isArray(t.output)){let e=t.output.flatMap(e=>Array.isArray(e?.content)?e.content:[e?.content??e]).map(e=>Y(e?.text??e?.content??e)).filter(e=>e.trim()).join("\n");if(e.trim())return e}if(Array.isArray(t.candidates)){let e=t.candidates.flatMap(e=>e?.content?.parts??e?.content??e?.output??e).map(e=>Y(e?.text??e?.content??e)).filter(e=>e.trim()).join("\n");if(e.trim())return e}}(t):t}function et(e){if(!e)return;let t=e.attributes||{};return D(t["error.message"],t["exception.message"],t["hermes.api_error.reason"])}function en(e){return{input_tokens:e.reduce((e,t)=>e+(t.usage?.input_tokens||0),0),output_tokens:e.reduce((e,t)=>e+(t.usage?.output_tokens||0),0),reasoning_tokens:e.reduce((e,t)=>e+(t.usage?.reasoning_tokens||0),0),total:e.reduce((e,t)=>e+F(t),0)}}function er(e){let t=e.sourceEvent||e.llm,n=Math.max(t.startTimeMs||0,...e.usageEvents.map(e=>e.startTimeMs||0))||Date.parse(t.receivedAt)||Date.now(),r=j(t)||n,i=en(e.usageEvents),o=et(t);return{...V(e.owner,e.framework),content:e.content,timestamp:$(n),timeInfo:{created:$(n),completed:$(r)},traceId:t.traceId,spanId:`${t.spanId||e.llm.spanId||"llm"}:output`,parentSpanId:t.parentSpanId||e.llm.spanId,name:t.name,model:e.model,usage:{input_tokens:i.input_tokens,output_tokens:i.output_tokens,reasoning_tokens:i.reasoning_tokens||void 0,total:i.total},...o?{status:"error",error:{message:o}}:{}}}let ei="langfuse-langgraph",eo="report-generator",ea=new Set(["agent","tools","prompt","runnablesequence","call_model","should_continue","chatopenai","langgraph"]);function es(e){if("string"!=typeof e)return e;let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function eu(e){let t=es(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}function el(...e){for(let t of e){let e=function(e){if(null!=e){if("string"==typeof e)return e.trim()?e:void 0;try{let t=JSON.stringify(e);return t&&"null"!==t?t:void 0}catch{return String(e)}}}(t);if(e)return e}}function ec(e,t){return e?.attributes?.[t]}function ed(e){return e?.startTimeMs||Date.parse(e?.receivedAt||"")||Date.now()}function ef(e){return ed(e)+Math.max(0,e?.latencyMs||0)}function em(e){return new Date(e||Date.now()).toISOString()}function ep(e){return e.usage.total_tokens||e.usage.input_tokens+e.usage.output_tokens+(e.usage.reasoning_tokens||0)}function eg(e,t){return el(ec(e,`langfuse.observation.metadata.${t}`),ec(e,`langfuse.trace.metadata.${t}`))}function e_(e){return eu(ec(e,"langfuse.observation.output"))}function eh(e){return el(e.subagent_type,e.subagent_name,e.subagentName,e.agent,e.agent_name,e.agentName,e.name)}function ey(e){let t=e=>[...e].sort((e,t)=>ef(t)-ef(e))[0],n=t(e.filter(e=>!0===ec(e,"langfuse.internal.is_app_root")||"true"===ec(e,"langfuse.internal.is_app_root")));return n||t(e.filter(e=>"span"===e.kind))||t(e)}function ev(e){let t,n=el(e);return!(!n||(t=el(n))&&/^agent-run(?:[-_]\d{8}t\d{6}z?)?$/i.test(t))&&!ea.has(n.toLowerCase())}function eS(e){return ev(e?.name)?el(e?.name):void 0}function eI(e,t){let n=e.filter(t).filter(e=>"llm"!==e.kind&&"tool"!==e.kind).filter(e=>eS(e)).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));return eS(n[0])}function ew(e,t){for(let n of e.filter(t).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0))){let e=function(e){let t=es(ec(e,"langfuse.observation.output"));return(Array.isArray(t?.messages)?t.messages:[t]).map(e=>el(e?.name)).filter(e=>ev(e))}(n)[0];if(e)return e}}let ek=[{id:ei,matches:e=>e.some(e=>e.serviceName===ei),aggregate:function(e,t){let n,r=t.filter(t=>t.sessionId===e).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));if(!r.length)return null;let i=ey(r),o=i?.traceId,a=(o?r.filter(e=>e.traceId===o):r).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));if(!a.length)return null;let s=new Map(a.filter(e=>e.spanId).map(e=>[e.spanId,e])),u=ey(a)||i,l=eu(ec(u,"langfuse.observation.input")),c=eu(ec(u,"langfuse.observation.output")),d=el(l.skill,eg(u,"skill"),a.map(e=>eg(e,"skill")).find(Boolean)),f=a.find(e=>"tool"===e.kind&&"call_report_subagent"===e.name),m=f?`${e}:subagent:${f?.spanId||eo}`:void 0,p=e=>(function(e,t,n){let r=e.parentSpanId?t.get(e.parentSpanId):void 0,i=new Set;for(;r?.spanId&&!i.has(r.spanId);){if(n(r))return!0;i.add(r.spanId),r=r.parentSpanId?t.get(r.parentSpanId):void 0}return!1})(e,s,e=>"tool"===e.kind&&"call_report_subagent"===e.name),g=eh(eu(ec(f,"langfuse.observation.input")))||eI(a,p)||ew(a,p)||eo,_=(n=e=>!p(e),el(l.agent,l.agent_name,l.agentName,eg(u,"agent"),eg(u,"agent_name"),eg(u,"agentName"),eg(u,"name"),eI(a,n),ew(a,n),ev(u?.name)?el(u?.name):void 0)||"Langfuse Agent"),h=a.filter(e=>"llm"===e.kind&&"ChatOpenAI"===e.name),y=[],v=el(l.input,eg(u,"input"),ec(h[0],"langfuse.trace.metadata.input"))||"Langfuse LangGraph Session";for(let e of(y.push({role:"user",content:v,agent:_,timestamp:em(ed(u)),timeInfo:{created:em(ed(u))}}),h))y.push(function(e){let{event:t,skillName:n,mainAgentName:r,isSubagent:i,subagentSessionId:o,subagentName:a}=e,s=e_(t),u=ed(t),l=ef(t),c=Array.isArray(s.tool_calls)?s.tool_calls.map(e=>{let t,r;return t=el(e.name,e.function?.name)||"tool",r=e?.args&&"object"==typeof e.args&&!Array.isArray(e.args)?e.args:{},"follow_skill"===t&&n?{id:e.id,type:"function",state:"pending",function:{name:"skill",arguments:JSON.stringify({name:n,source_tool:t,...r})}}:"call_report_subagent"===t?{id:e.id,type:"function",state:"pending",function:{name:"task",arguments:JSON.stringify({subagent_type:eh(r)||a,description:el(r.diagnosis_summary,r.description)||"generate diagnostic report",source_tool:t,subagent_session_id:o})}}:{id:e.id,type:"function",state:"pending",function:{name:t,arguments:JSON.stringify(r)}}}):[],d={role:i?"subagent":"assistant",content:el(s.content,ec(t,"langfuse.observation.output"))||"",agent:i?a:r,model:t.model,usage:{input:t.usage.input_tokens,output:t.usage.output_tokens,reasoning:t.usage.reasoning_tokens||void 0,total:t.usage.total_tokens},spanId:t.spanId,parentSpanId:t.parentSpanId,traceId:t.traceId,name:t.name,timestamp:em(u),timeInfo:{created:em(u),completed:em(l)}};return i&&(d.subagent_name=a,d.subagent_session_id=o),c.length&&(d.tool_calls=c),d}({event:e,skillName:d,mainAgentName:_,isSubagent:p(e),subagentSessionId:m,subagentName:g}));!function(e,t){let n=new Set;for(let r of t.sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0)))for(let t of e){let e=(Array.isArray(t.tool_calls)?t.tool_calls:[]).find(e=>{let t=`${r.spanId||r.name}:${e.id||e.function?.name}`;return!n.has(t)&&function(e,t){let n,r=e?.function?.name||e?.name,i=(n=es(e?.function?.arguments??e?.arguments))&&"object"==typeof n&&!Array.isArray(n)?n:{};return"follow_skill"===t?"skill"===r&&"follow_skill"===i.source_tool:"call_report_subagent"===t?"task"===r&&"call_report_subagent"===i.source_tool:r===t}(e,r.name)});if(!e)continue;let i=`${r.spanId||r.name}:${e.id||e.function?.name}`;n.add(i);let o=es(ec(r,"langfuse.observation.output"));e.state="success",e.output=o,e.result=o,e.timing={started_at:em(ed(r)),completed_at:em(ef(r))};break}}(y,a.filter(e=>"tool"===e.kind));let S=[...h].reverse().find(e=>!p(e)),I=el(c.final_output,S?e_(S).content:void 0)||"",w=h.filter(e=>ep(e)>0),k=h.find(e=>e.model),x=Math.min(...a.map(ed)),b=Math.max(...a.map(ef)),M=a.filter(e=>"tool"===e.kind);return{task_id:e,query:v,framework:ei,model:el(l.model,eg(u,"model"),k?.model)||"unknown",tokens:w.reduce((e,t)=>e+ep(t),0),latency:Math.max(0,b-x),final_result:I,timestamp:new Date(x||Date.now()),trace_completed_at:em(b),force_query_update:!0,session_merge_strategy:"snapshot-replace",label:ei,user:a.find(e=>e.user)?.user||"anonymous",interactions:y,skill:d,invokedSkills:d?[{name:d,version:null}]:[],skills:d?[d]:[],agent:_,agentName:_,llm_call_count:h.length,tool_call_count:M.length,tool_call_error_count:M.filter(e=>"error"===String(ec(e,"langfuse.observation.level")||"").toLowerCase()).length,input_tokens:w.reduce((e,t)=>e+t.usage.input_tokens,0),output_tokens:w.reduce((e,t)=>e+t.usage.output_tokens,0),reasoning_tokens:w.reduce((e,t)=>e+(t.usage.reasoning_tokens||0),0)||void 0,subagentCount:+!!f}}},{id:"hermes",matches:e=>e.some(e=>"hermes"===e.serviceName||e.attributes?.["hermes.session_id"]!==void 0||e.attributes?.["agent.insight.framework"]==="hermes"),aggregate:function(e,t){let n=t.filter(t=>t.sessionId===e).sort((e,t)=>E(e)-E(t));if(0===n.length)return null;let r=n.find(e=>e.serviceName)?.serviceName||"hermes",i=function(e){let t=new Map;for(let n of e){if(!n.parentSpanId)continue;let e=t.get(n.parentSpanId)||[];e.push(n),t.set(n.parentSpanId,e)}for(let e of t.values())e.sort((e,t)=>E(e)-E(t));return t}(n),o=R(n.filter(t=>P(t)&&!Q(t,e,r).isSubagent)),a=n.filter(K),s=a.length>0?a:o?[o]:[],u=[],l=n.map(L).filter(Boolean)[0]||"unknown",c=new Set;for(let t of s){let o=Q(t,e,r),a=n.find(t=>P(t)&&Q(t,e,r).sessionId===o.sessionId),s=function(e,t){if(!e.spanId)return[];let n=[],r=[...t.get(e.spanId)||[]];for(;r.length>0;){let e=r.shift();n.push(e),!e.spanId||P(e)||K(e)||r.push(...t.get(e.spanId)||[])}return n.sort((e,t)=>E(e)-E(t))}(t,i),d=s.length>0?s:n.filter(n=>n.traceId===t.traceId&&n!==t&&Q(n,e,r).sessionId===o.sessionId&&!P(n)&&!K(n)),f=d.filter(H),m=[...f].reverse().find(e=>"stop"===U(e)&&ee(e)),p=Z(t)||Z(a),g=ee(m)||ee(t)||ee(a),_=function(e){for(let t of e){if(!t)continue;let e=function(e){let t="string"==typeof e?X(e):void 0,n=Array.isArray(t)?t:Array.isArray(t?.messages)?t.messages:void 0;if(!n)return;let r=[];for(let e of n){if("system"!==String(e?.role||"").toLowerCase())continue;let t=Y(e.content);t.trim()&&r.push(t)}return r.length>0?r.join("\n\n"):void 0}(D(t.attributes?.["llm.input_messages"],t.attributes?.["input.value"]));if(e)return e}}([m,...f,t,a]);if(_){let e=`${o.sessionId}::${_}`;c.has(e)||(c.add(e),u.push(function(e){let t=e.event.startTimeMs||Date.parse(e.event.receivedAt)||Date.now();return{role:"system",agent:e.owner.name||e.framework,...e.owner.isSubagent?{subagent_session_id:e.owner.sessionId}:{},content:e.content,system_prompt_length:e.content.length,timestamp:$(t),timeInfo:{created:$(t),completed:$(t)},traceId:e.event.traceId,spanId:`${e.event.spanId||"llm"}:system`}}({content:_,event:t,framework:r,owner:o})))}if(p){let e=[...u].reverse().find(e=>"user"===e.role);e&&e.content===p||u.push(function(e){let t=e.event.startTimeMs||Date.parse(e.event.receivedAt)||Date.now();return{...V(e.owner,e.framework),role:e.owner.isSubagent?"subagent":"user",content:e.content,timestamp:$(t),timeInfo:{created:$(t),completed:$(t)},traceId:e.event.traceId,spanId:`${e.event.spanId||"llm"}:input`}}({content:p,event:t,framework:r,owner:o}))}for(let e of d.filter(e=>H(e)||B(e))){if(H(e)){if(e===m)continue;let n=et(e),i=ee(e)||(n?`API request failed: ${n}`:void 0);i&&u.push(er({content:i,llm:t,sourceEvent:e,framework:r,model:L(e)||l,usageEvents:[e],owner:o}));continue}u.push(function(e){var t;let n,r,i,o,a,s=e.tool.startTimeMs||Date.parse(e.tool.receivedAt)||Date.now(),u=j(e.tool)||s;return{...V(e.owner,e.framework),content:"",timestamp:$(s),timeInfo:{created:$(s),completed:$(u)},traceId:e.llm.traceId,spanId:`${e.llm.spanId||"llm"}:${e.tool.spanId||W(e.tool)}`,parentSpanId:e.llm.spanId,name:`tool.${W(e.tool)}`,model:e.model,usage:{input_tokens:0,output_tokens:0,total:0},tool_calls:[(n=(t=e.tool).attributes||{},r=t.startTimeMs||Date.parse(t.receivedAt)||Date.now(),i=j(t)||r,o=D(n["output.value"],n["tool.output"],n["tool.result"]),a=String(n["hermes.tool.outcome"]||n["tool.outcome"]||"").toLowerCase(),{id:t.spanId,type:"function",state:"error"===a||"failed"===a?"error":"success",function:{name:W(t),arguments:D(n["tool.arguments"],n["input.value"])||JSON.stringify(n)},output:o,result:o,timing:{started_at:$(r),completed_at:$(i)}})]}}({llm:t,tool:e,framework:r,model:l,owner:o}))}g&&u.push(er({content:g,llm:t,sourceEvent:m,framework:r,model:l,usageEvents:m?[m]:f,owner:o}))}if(0===u.length)return null;u.sort((e,t)=>(Date.parse(e.timestamp||"")||0)-(Date.parse(t.timestamp||"")||0));let d=en(function(e,t){if(t&&F(t)>0)return[t];let n=e.filter(e=>H(e)&&F(e)>0);return n.length>0?n:e.filter(e=>F(e)>0&&!K(e))}(n,o)),f=n[0],m=[...u].reverse().find(e=>"assistant"===e.role&&String(e.content||"").trim()),p=u.find(e=>"user"===e.role&&String(e.content||"").trim()),g=m?.content||"",_=R(n.filter(t=>{let n=Q(t,e,r);return H(t)&&!n.isSubagent&&n.sessionId===e&&"stop"===U(t)&&!!ee(t)})),h=g?function(e){if(!e)return;let t=j(e);return t>0?$(t):void 0}(o||_):void 0,y=o?.latencyMs||Math.max(...n.map(e=>e.latencyMs||0),0),v=n.filter(H).length||s.length,S=o?Q(o,e,r):n.map(t=>Q(t,e,r)).find(e=>!e.isSubagent),I=S?.name||r;return{task_id:e,query:p?.content||"Hermes Session",framework:r,model:l,tokens:d.total,latency:y,final_result:g,trace_completed_at:h,timestamp:new Date(f.startTimeMs||Date.parse(f.receivedAt)||Date.now()),label:r,user:f.user||"anonymous",interactions:u,agent:I,agentName:I,llm_call_count:v,tool_call_count:n.filter(B).length,input_tokens:d.input_tokens,output_tokens:d.output_tokens,reasoning_tokens:d.reasoning_tokens||void 0}}},q];function ex(){return"false"!==process.env.AGENT_INSIGHT_CLAUDE_OTEL_SKIP_EVALUATION}function eb(){return[{id:"claude-otel-logs",spoolDir:i.getClaudeOtelSpoolDir,listFiles:()=>(0,i.listClaudeOtelSpoolFiles)((0,i.getClaudeOtelSpoolDir)()),aggregate:N,defaultSkipEvaluation:ex},{id:"otel-traces",spoolDir:i.getOtelTraceSpoolDir,listFiles:()=>(0,i.listOtelTraceSpoolFiles)((0,i.getOtelTraceSpoolDir)()),aggregate:e=>{var t;let n;return t=(0,i.getOtelTraceSpoolDir)(),{sessionId:e,eventCount:(n=(0,i.readOtelTraceEventsForSession)(e,t)).length,record:function(e,t){let n=new Set,r=t.filter(t=>t.sessionId===e).filter(e=>{let t=e.spanId||[e.sessionId,e.traceId||"",e.name||"",e.kind,e.startTimeMs||""].join("|");return!n.has(t)&&(n.add(t),!0)}).sort((e,t)=>(e.startTimeMs||0)-(t.startTimeMs||0));return r.length?(ek.find(e=>e.matches(r))||q).aggregate(e,r):null}(e,n)}},defaultSkipEvaluation:()=>!0}]}e.s(["listSources",()=>eb],667034)},588876,e=>e.a(async(t,n)=>{try{e.i(210954);var r=e.i(184599),i=e.i(742529),o=e.i(256451),a=e.i(401682),s=t([a]);[a]=s.then?(await s)():s;let k=i.z.object({has_task_output:i.z.boolean().default(!1),confidence:i.z.number().min(0).max(1).default(0),selected_source_id:i.z.string().nullable().default(null),needs_followup_context:i.z.boolean().default(!1),followup_anchor_llm_call_id:i.z.string().nullable().default(null),reason:i.z.string().default("")}),x=i.z.object({has_task_output:i.z.boolean().default(!1),confidence:i.z.number().min(0).max(1).default(0),selected_source_id:i.z.string().nullable().default(null),artifact_paths:i.z.array(i.z.string()).default([]),reason:i.z.string().default("")});async function u(e){var t;let n,i=await (0,a.getActiveConfig)(e);if(!i)return{client:null,model:null};let{customFetch:s}=(0,o.getProxyConfig)();return{client:new r.OpenAI({apiKey:i.apiKey||"no-api-key-required",baseURL:(t=i.baseUrl||"https://api.deepseek.com",String(t||"").replace(/\/chat\/completions\/?$/,"")),fetch:s,timeout:(n=Number(process.env.RESULT_ARTIFACT_TIMEOUT_MS||process.env.JUDGMENT_TIMEOUT_MS||3e5),Number.isFinite(n)&&n>0?n:3e5)}),model:i.model||"deepseek-chat"}}function l(e){let t=e.trim();if(!t)return null;let n=t.match(/```(?:json)?\s*([\s\S]*?)\s*```/i);if(n)t=n[1];else{let e=t.indexOf("{"),n=t.lastIndexOf("}");-1!==e&&-1!==n&&n>=e&&(t=t.substring(e,n+1))}try{return JSON.parse(t)}catch{return null}}function c(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:null}function d(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}}function f(e,t){let n=String(e||"").trim();if(n.length<=t)return n;let r=Math.floor(.65*t),i=Math.max(0,t-r-80);return`${n.slice(0,r)}
3
3
  ...[中间内容已截断 ${n.length-r-i} 字]...
4
4
  ${n.slice(-i)}`}function m(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>{let t=c(e);return t?d(t.text??t.content??t.input??t):d(e)}).filter(Boolean).join("\n"):d(e)}function p(e){let t=e?.tool_calls??e?.toolCalls;return Array.isArray(t)?t.map(c).filter(e=>!!e):[]}function g(e){let t=c(e.function);return String(t?.name||e.name||e.type||"tool").trim()}function _(e){let t=c(e.function);return d(t?.arguments??e.arguments??e.input??"")}function h(e){return d(e.output??e.result??e.content??"")}function y(e,t){return t&&e.find(e=>e.id===t)?.text?.trim()||""}function v(e,t){return!!t&&e.some(e=>e.id===t)}function S(e,t,n,r,i){return{status:"found",outputForEvaluation:e,confidence:t,reason:n,sourceRefs:r?[r]:[],rawAnalysis:i}}async function I(e,t,n){let r=await e.chat.completions.create({model:t,temperature:0,top_p:1,seed:42,messages:[{role:"user",content:n}]});return r.choices?.[0]?.message?.content?.trim()||""}async function w(e){let t=e.threshold??.75,n=e.maxLlmCalls??10,r=String(e.fallbackOutput||"").trim(),i=(e,t={})=>r?function(e,t,n={}){return S(e,0,`未能从 trace 中定位真实任务输出,已回退使用 execution.finalResult。原始原因:${t}`,"execution.finalResult",{...n,fallback:{used:!0,source:"execution.finalResult",reason:t}})}(r,e,t):function(e,t={}){return{status:"missing",outputForEvaluation:null,confidence:0,reason:e,sourceRefs:[],rawAnalysis:t}}(e,t),{client:o,model:a}=await u(e.user);if(!o||!a)return i("未配置可用评测模型,无法提取真实输出。");let s=function(e){let t=[],n=0,r=0,i=0;for(let o=0;o<e.length;o+=1){let a=c(e[o]);if(!a)continue;let s=Array.isArray(a.requestMessages)?a.requestMessages:[];for(let e of s){let r=c(e);r&&"tool"===String(r.role||"").toLowerCase()&&(i+=1,t.push({id:`tool-${i}`,type:"tool",order:n++,interactionIndex:o,name:String(r.name||r.tool_call_id||"tool"),input:"",output:m(r.content)}))}let u=c(a.responseMessage);if(u){let e=m(u.content);(e||p(u).length>0)&&(r+=1,t.push({id:`llm-${r}`,type:"llm",order:n++,interactionIndex:o,agent:String(a.agent||a.subagent_name||""),input:function(e,t){if(!Array.isArray(e))return"";let n=e.map((e,t)=>{let n=c(e);if(!n)return"";let r=String(n.role||"message"),i=n.name?`/${String(n.name)}`:"";return`[${t+1}] ${r}${i}: ${m(n.content)}`}).filter(Boolean).join("\n");return f(n,1800)}(s,0),inputParts:Array.isArray(s)?s.map(e=>{let t=c(e);if(!t)return null;let n=m(t.content).trim();return n?{role:String(t.role||"message"),text:n,...t.name?{name:String(t.name)}:{}}:null}).filter(e=>!!e):[],output:e}));for(let e of p(u))i+=1,t.push({id:`tool-${i}`,type:"tool",order:n++,interactionIndex:o,name:g(e),input:_(e),output:h(e)});continue}let l=String(a.role||"").toLowerCase();for(let e of("tool"===l?(i+=1,t.push({id:`tool-${i}`,type:"tool",order:n++,interactionIndex:o,name:String(a.name||a.tool_call_id||"tool"),input:"",output:m(a.content)})):("assistant"===l||"subagent"===l||"agent"===l||"opencode"===l)&&(r+=1,t.push({id:`llm-${r}`,type:"llm",order:n++,interactionIndex:o,agent:String(a.agent||a.subagent_name||""),input:"",output:m(a.content)})),p(a)))i+=1,t.push({id:`tool-${i}`,type:"tool",order:n++,interactionIndex:o,name:g(e),input:_(e),output:h(e)})}return t}(e.interactions||[]),d=s.filter(e=>"llm"===e.type&&e.output?.trim()).slice(-Math.max(1,n));if(0===d.length)return i("链路中没有可用于输出提取的 LLM 调用。",{event_count:s.length});try{var w,b;let n,r,u=d.filter(e=>"llm"===e.type&&e.output?.trim()).map(e=>({id:`${e.id}.output`,eventId:e.id,kind:"llm_output",text:e.output.trim(),agent:e.agent,name:e.name,interactionIndex:e.interactionIndex})),c=await I(o,a,(w=e.userTask,n=u.map(e=>({id:e.id,event_id:e.eventId,kind:e.kind,agent:e.agent||"",name:e.name||"",interaction_index:e.interactionIndex,text_preview:f(e.text,"llm_input"===e.kind?1800:3600)})),`你是 agent 评测系统中的“真实任务输出定位器”。
5
5
 
@@ -1,3 +1,3 @@
1
1
  module.exports=[864609,e=>{"use strict";let t=globalThis,r=t.__wittyPendingMap??(t.__wittyPendingMap=new Map);function s(e){if(r.has(e.requestId))return Promise.reject(Error(`duplicate requestId: ${e.requestId}`));let t=e.ttlMs??3e5;return new Promise((s,i)=>{let n=setTimeout(()=>{let s=r.get(e.requestId);s&&(r.delete(e.requestId),s.reject(Error(`interaction ${e.kind}/${e.requestId} timed out after ${t}ms`)))},t);r.set(e.requestId,{requestId:e.requestId,kind:e.kind,user:e.user,streamId:e.streamId,resolve:s,reject:i,expiresAt:Date.now()+t,timer:n})})}function i(e,t,s){let i=r.get(e);if(!i)return!1;if(i.user!==t)throw Error("user mismatch on interaction reply");return r.delete(e),clearTimeout(i.timer),i.resolve(s),!0}function n(e,t="stream closed"){let s=0;for(let[i,n]of r)n.streamId===e&&(r.delete(i),clearTimeout(n.timer),n.reject(Error(t)),s++);return s}e.s(["awaitInteraction",()=>s,"cancelStream",()=>n,"resolveInteraction",()=>i])},556602,e=>{"use strict";let t="[no-evaluable-case]";function r(e){let r=e instanceof Error?e.message:String(e||"");return!(!r.trim()||r.includes(t)||r.includes("缺少预期结果")||r.includes("expectedOutput")||r.includes("trace 没有实际输入")||r.includes("Session.interactions JSON 解析失败")||r.includes("Session 不存在或 interactions 为空")||r.includes("读取数据集失败")||r.includes("未匹配到可评测 case")||r.includes("评估数据集不存在")||r.includes("写入评测结果失败")||r.includes("结果输出提取失败")||r.includes("不允许派发子代理")||e instanceof Error&&"AbortError"===e.name||r.includes("已终止")||r.includes("用户中止")||r.includes("aborted: user terminated"))}function s(e,t,s){return!!r(e)&&(Number.isFinite(t)?Math.floor(t):1)<=Math.max(0,Math.floor(s))}function i(e){let t=Math.max(1,Math.floor(e)),r=0,s=[];return{acquire:()=>new Promise(e=>{r<t?(r++,e()):s.push(e)}),release:()=>{let e=s.shift();e?e():r=Math.max(0,r-1)}}}e.s(["NO_EVALUABLE_CASE_PREFIX",0,t,"createSimpleAsyncLimiter",()=>i,"isRetryableResultEvaluationFailure",()=>r,"shouldRetryGrayscaleEval",()=>s])},484695,e=>{e.v(e=>Promise.resolve().then(()=>e(759453)))},419781,e=>{e.v(e=>Promise.resolve().then(()=>e(106411)))},335270,e=>{e.v(t=>Promise.all(["server/chunks/src_lib_engine_evaluation_evaluator-execution-recorder_ts_d7fedcdd._.js"].map(t=>e.l(t))).then(()=>t(982505)))}];
2
2
 
3
- //# sourceMappingURL=src_lib_4751db31._.js.map
3
+ //# sourceMappingURL=src_lib_dc72b90b._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[363884,e=>{"use strict";var t=e.i(68683);function n(e){if(!e)return null;try{return(0,t.normalizeEndpoint)(e)}catch{return null}}e.s(["normalizeEndpointUrl",()=>n])},711340,e=>{"use strict";function t(e){let t="string"==typeof e.incomingLabel?e.incomingLabel.trim():void 0;if(void 0!==t){if(!t)return;return t}let n="string"==typeof e.existingLabel?e.existingLabel.trim():"",i="string"==typeof e.skill?e.skill.trim():"",l=e.skillVersion??null;if(n&&!(n&&"without-skill"===n))return n;if(i){let e="number"==typeof l&&Number.isFinite(l)?l:0;return`${i}-v${e}`}return"without-skill"}e.s(["chooseExecutionLabel",()=>t])},160570,e=>{"use strict";function t(e){let t="string"==typeof e?e.trim():"";if(!t||"without-skill"===t)return null;let n=t.match(/^(.+)-v(\d+)$/);if(!n)return null;let i=(n[1]||"").trim(),l=Number(n[2]);return i&&Number.isFinite(l)&&!(l<0)?{skill:i,skill_version:l,skills:[i],invokedSkills:[{name:i,version:l}]}:null}e.s(["parseLabelSkillVersionBinding",()=>t])},524913,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let n=Date.parse(t);return Number.isFinite(n)?n:null}return null}function n(e){let n=e.id??e.message_id??e.messageID;if("string"==typeof n&&n.trim())return`id:${n.trim()}`;let i="string"==typeof e.role?e.role:"unknown",l=t(e.timestamp)??t(e.timeInfo?.created)??t(e.timeInfo?.completed)??0,r="string"==typeof e.subagent_session_id?e.subagent_session_id:"";return`k:${r}:${l}:${i}`}function i(e,i){let l=Array.isArray(e)?e:[],r=Array.isArray(i)?i:[],s=new Map,o=new Map,a=0;for(let e of l){if(!e)continue;let t=n(e);s.has(t)||(s.set(t,e),o.set(t,a++))}for(let e of r){if(!e)continue;let t=n(e),i=s.get(t);i?s.set(t,function(e,t){let n={...e,...t},i="string"==typeof e.content?e.content:"",l="string"==typeof t.content?t.content:"";return i&&!l?n.content=i:i&&l&&l.length<i.length&&(n.content=i),e.subagent_name&&!t.subagent_name&&(n.subagent_name=e.subagent_name),e.agent&&!t.agent&&(n.agent=e.agent),e.subagent_session_id&&!t.subagent_session_id&&(n.subagent_session_id=e.subagent_session_id),n.tool_calls=function(e,t){let n=Array.isArray(e)?e:[],i=Array.isArray(t)?t:[];if(0===n.length)return i;if(0===i.length)return n;let l=new Set,r=[];for(let e of[...n,...i]){let t=function(e){let t=e?.id??e?.callID??e?.callId??e?.call_id;if("string"==typeof t&&t.trim())return`id:${t.trim()}`;let n=e?.function?.name??e?.name??"",i=e?.function?.arguments??e?.arguments??"";return`sig:${n}:${function(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return(t>>>0).toString(16)}(function(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(i))}`}(e);l.has(t)||(l.add(t),r.push(e))}return r}(e.tool_calls,t.tool_calls),e.usage&&!t.usage&&(n.usage=e.usage),e.timeInfo&&!t.timeInfo&&(n.timeInfo=e.timeInfo),n}(i,e)):(s.set(t,e),o.set(t,a++))}let u=Array.from(s.entries()).map(([e,n])=>({k:e,v:n,ts:t(n.timestamp)??t(n.timeInfo?.created)??t(n.timeInfo?.completed)??0,order:o.get(e)??0}));return u.sort((e,t)=>e.ts-t.ts||e.order-t.order),u.map(e=>e.v)}e.s(["mergeSessionInteractionsMonotonic",()=>i])},365759,e=>{"use strict";var t=e.i(997215),n=e.i(738282);let i={descriptor:{id:"claude",aliases:["claudecode"],label:"Claude Code",onboard:"watcher",platform:"claude"},normalizeForStorage:t.normalizeClaudeCodeInteractionsForStorage,extractSkills:n.extractSkillsWithVersionsFromClaudeSession},l={descriptor:{id:"hermes",label:"Hermes",onboard:"plugin",platform:"hermes"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromHermesSession},r={descriptor:{id:"jiuwenswarm",aliases:["jiuwen","openjiuwen"],label:"JiuwenSwarm",onboard:"env",platform:"jiuwenswarm"},capabilities:{subagentTree:!0,skills:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromJiuwenSession},s={descriptor:{id:"langfuse-langgraph",label:"Langfuse-Langgraph",onboard:"env",platform:"langfuse"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromOpencodeSession},o={descriptor:{id:"openclaw",label:"OpenClaw",onboard:"plugin",platform:"openclaw"},extractSkills:n.extractSkillsWithVersionsFromOpenClawSession},a={descriptor:{id:"opencode",label:"OpenCode",onboard:"plugin",platform:"opencode"},extractSkills:n.extractSkillsWithVersionsFromOpencodeSession},u={descriptor:{id:"unknown",label:"Unknown",onboard:"env"}},c=new Map;for(let e of[a,i,o,l,r,s])for(let t of(c.set(e.descriptor.id.toLowerCase(),e),e.descriptor.aliases??[]))c.set(t.toLowerCase(),e);function d(e){return String(e??"").trim().toLowerCase()}function m(e){return c.get(d(e))??u}function k(e){let t=d(e);return c.get(t)?.descriptor.id??t}e.s(["getAdapter",()=>m,"resolveFrameworkId",()=>k],365759)},543050,e=>{"use strict";let t={string:["=","contains","does not contain","starts with","ends with"],number:["=",">","<",">=","<="],datetime:[">","<",">=","<="],stringOptions:["any of","none of"],arrayOptions:["any of","none of","all of"],boolean:["="]},n=["is null","is not null"],i=new Map([{column:"query",type:"string",label:"查询内容",description:"用户输入 / 问题",syncMode:"textSearch",nullable:!0},{column:"finalResult",type:"string",label:"输出内容",description:"trace 最终输出",syncMode:"textSearch",nullable:!0},{column:"agentName",type:"string",label:"Agent 名",description:"主 Agent 名称",syncMode:"textSearch",nullable:!0},{column:"subagentName",type:"string",label:"子 Agent 名",description:"子 Agent 显示名",syncMode:"textSearch",nullable:!0},{column:"model",type:"string",label:"模型",description:"LLM 模型名",syncMode:"textSearch",nullable:!0},{column:"label",type:"string",label:"标注",description:"人工标注",syncMode:"textSearch",nullable:!0},{column:"framework",type:"stringOptions",label:"框架",description:"采集框架 / 平台",syncMode:"exactOption",nullable:!0},{column:"subagentType",type:"stringOptions",label:"子 Agent 类型",description:"kuafu / general …",syncMode:"exactOption",nullable:!0},{column:"latency",type:"number",label:"耗时",description:"执行时长(秒)",unit:"s",nullable:!0},{column:"tokens",type:"number",label:"Tokens",description:"总 token 数",nullable:!0},{column:"inputTokens",type:"number",label:"输入 Tokens",description:"输入 token 数",nullable:!0},{column:"outputTokens",type:"number",label:"输出 Tokens",description:"输出 token 数",nullable:!0},{column:"cost",type:"number",label:"成本",description:"估算成本($)",unit:"$",nullable:!0},{column:"toolCallCount",type:"number",label:"工具调用数",description:"工具调用次数",nullable:!0},{column:"toolCallErrorCount",type:"number",label:"工具错误数",description:"工具调用失败次数",nullable:!0},{column:"answerScore",type:"number",label:"答案分",description:"答案得分(0–1)",nullable:!0},{column:"skillScore",type:"number",label:"Skill 分",description:"Skill 得分(0–1)",nullable:!0},{column:"skillTriggerRate",type:"number",label:"Skill 触发率",description:"触发率(0–1)",nullable:!0},{column:"timestamp",type:"datetime",label:"时间",description:"trace 起始时间"},{column:"isAnswerCorrect",type:"boolean",label:"答案正确",description:"评测:答案是否正确",nullable:!0},{column:"isSubagent",type:"boolean",label:"是子 Agent",description:"是否子 Agent 执行"},{column:"agents",type:"arrayOptions",label:"Agent(多选)",description:"trace 涉及的 agent",field:"observedAgents",source:"observedAgents",syncMode:"arrayOption",nullable:!0},{column:"skill",type:"arrayOptions",label:"Skill",description:"调用的 skill",source:"executionSkill",syncMode:"arrayOption"},{column:"status",type:"stringOptions",label:"状态",description:"running / success / failed",source:"computed",syncMode:"exactOption"},{column:"ownership",type:"stringOptions",label:"归属",description:"user / system",source:"computed",syncMode:"exactOption"}].map(e=>[e.column,e]));function l(e){return i.get(e)}let r=Symbol("invalid"),s={"=":"equals",">":"gt","<":"lt",">=":"gte","<=":"lte"};function o(e,i=l){let d=[],m=[],k=[];for(let l of e){let e=i(l.column);if(!e){k.push({clause:l,reason:`unknown column: ${l.column}`});continue}if(!function(e,i){let l;return(l=t[e.type],e.nullable?[...l,...n]:l).includes(i)}(e,l.operator)){k.push({clause:l,reason:`operator "${l.operator}" not allowed on ${e.type} column "${e.column}"`});continue}let o=e.source??"execution";if("executionSkill"===o||"computed"===o){m.push(l);continue}let p="observedAgents"===o?function(e,t){let n=a(e),i=t.operator;if("is null"===i)return{[n]:null};if("is not null"===i)return{[n]:{not:null}};let l=c(t.value);if(null===l||0===l.length)return r;let s=e=>({[n]:{contains:JSON.stringify(e)}});return"any of"===i?{OR:l.map(s)}:"all of"===i?{AND:l.map(s)}:"none of"===i?u({NOT:{OR:l.map(s)}},e):r}(e,l):function(e,t){var n,i;let l=a(e),o=t.operator;if("is null"===o)return{[l]:null};if("is not null"===o)return{[l]:{not:null}};switch(e.type){case"string":{let i="string"==typeof(n=t.value)?n:"number"==typeof n||"boolean"==typeof n?String(n):null;if(null===i)return r;switch(o){case"=":return{[l]:i};case"contains":return{[l]:{contains:i}};case"does not contain":return u({NOT:{[l]:{contains:i}}},e);case"starts with":return{[l]:{startsWith:i}};case"ends with":return{[l]:{endsWith:i}};default:return r}}case"number":{let e=function(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e&&""!==e.trim()){let t=Number(e);return Number.isFinite(t)?t:null}return null}(t.value),n=s[o];if(null===e||!n)return r;return{[l]:{[n]:e}}}case"datetime":{let e=function(e){if("number"==typeof e||"string"==typeof e&&""!==e.trim()){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}(t.value),n=s[o];if(null===e||!n)return r;return{[l]:{[n]:e}}}case"boolean":{let e="boolean"==typeof(i=t.value)?i:"true"===i||"false"!==i&&null;if(null===e)return r;return{[l]:{equals:e}}}case"stringOptions":{let n=c(t.value);if(null===n||0===n.length)return r;if("any of"===o)return{[l]:{in:n}};if("none of"===o)return u({[l]:{notIn:n}},e);return r}default:return r}}(e,l);if(p===r){k.push({clause:l,reason:`invalid value for ${e.type} operator "${l.operator}"`});continue}null!==p&&d.push(p)}return{where:d.length?{AND:d}:{},deferred:m,errors:k}}function a(e){return e.field??e.column}function u(e,t){return t.nullable?{OR:[e,{[a(t)]:null}]}:e}function c(e){if(Array.isArray(e)){let t=e.map(e=>"string"==typeof e||"number"==typeof e?String(e):null);return t.every(e=>null!==e)?t:null}return"string"==typeof e||"number"==typeof e?[String(e)]:null}e.s(["buildPrismaWhere",()=>o],543050)},948594,e=>e.a(async(t,n)=>{try{var i=e.i(522734),l=e.i(814747),r=e.i(547499),s=e.i(307692),o=e.i(363884),a=e.i(854763),u=e.i(137165),c=e.i(384660),d=e.i(262197),m=e.i(274149),k=e.i(68987),p=e.i(243080),f=e.i(711340),g=e.i(160570),_=e.i(8129),y=e.i(524913),h=e.i(286372),v=e.i(837926),w=e.i(119586),b=e.i(365759),S=e.i(738282),x=e.i(543050),A=t([s,a,m,_]);[s,a,m,_]=A.then?(await A)():A;let er=!process.env.DB_HOST,es=/^[a-zA-Z0-9_\-\.]+$/;function I(e){let t=new Set,n=[];for(let i of e.events||[]){if("skill"!==i.kind)continue;let e=i.args&&"object"==typeof i.args?i.args:{},l=e.name??e.skill_name??e.skillName??e.skill;if(null==l||!String(l).trim())continue;let r=String(l).trim().replace(/^['"]+|['"]+$/g,"");if(!es.test(r)||t.has(r))continue;t.add(r);let s=null!=e.version?Number(e.version):null;n.push({name:r,version:null===s||isNaN(s)?null:s})}return n}async function N(e,t){let n=Array.from(new Set(e.filter(e=>null==e.version).map(e=>e.name))),i=new Map;if(n.length>0)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:n},...t?{OR:[{user:t},{user:null}]}:{}},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&i.set(e.name,e.activeVersion)}catch(e){console.warn("[Data-Service] snapshotSkillVersions lookup failed:",e)}return e.map(e=>null!=e.version?e:{name:e.name,version:i.get(e.name)??null})}async function T(e,t,n={}){if(er&&e)try{if(await a.prismaRaw.executionSkill.deleteMany({where:{executionId:e}}),!t.length)return;let i=new Set,l=[];for(let r of t){if(!r?.name)continue;let t=`${r.name}@@${r.version??""}`;i.has(t)||(i.add(t),l.push({executionId:e,skillName:r.name,skillVersion:r.version??null,isPrimary:null!=n.primaryName&&r.name===n.primaryName,user:n.user??null}))}l.length&&await a.prismaRaw.executionSkill.createMany({data:l})}catch(t){console.warn(`[Data-Service] persistExecutionSkills failed for ${e}:`,t)}}let eo=new Set([...(process.env.TRACE_SERVICE_OWNERS||"admin,anonymous").split(",").map(e=>e.trim()).filter(Boolean),"","debug-user","anonymous"]);function C(e){return eo.has((e||"").trim())}async function E(e,t){let n=(e||"").trim(),i=(t||"").trim();if(!n||!i||C(i))return!1;let l=await a.prismaRaw.execution.findUnique({where:{id:n},select:{id:!0,taskId:!0,user:!0}});if(l||(l=await a.prismaRaw.execution.findFirst({where:{taskId:n},select:{id:!0,taskId:!0,user:!0}})),!l)return!1;let r=(l.user||"").trim();if(r===i||!C(r))return!1;let s=[...eo].filter(Boolean);await a.prismaRaw.execution.update({where:{id:l.id},data:{user:i}}),await a.prismaRaw.execution.updateMany({where:{rootExecutionId:l.id,OR:[{user:{in:s}},{user:null}]},data:{user:i}});try{await a.prismaRaw.executionSkill.updateMany({where:{executionId:l.id},data:{user:i}})}catch{}if(l.taskId)try{await a.prismaRaw.session.updateMany({where:{taskId:l.taskId},data:{user:i}})}catch{}return!0}function O(e){if(null==e)return null;if(e instanceof Date)return Number.isFinite(e.getTime())?e.getTime():null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"!=typeof e)return null;let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let n=Date.parse(t);return Number.isFinite(n)?n:null}let ea="未找到匹配的效果评测配置";function M(e){let t=e.trim(),n=[['"','"'],["'","'"],["“","”"],["‘","’"],["`","`"],["《","》"],["(",")"],["(",")"],["【","】"],["[","]"],["{","}"],["<",">"]];for(let e=0;e<6;e++){let e=t;for(let[e,i]of(t=t.trim(),n))t.startsWith(e)&&t.endsWith(i)&&t.length>=e.length+i.length+1&&(t=t.slice(e.length,-i.length));if(t===e)break}return t=(t=(t=t.replace(/[\s"'“”‘’`。.]/g,"")).replace(/^[\s.,,。!?!?;;::、·…]+|[\s.,,。!?!?;;::、·…]+$/g,"")).replace(/\s+/g," ").trim()}function R(e,t,n="any"){if(!t)return;let i=M(t);if(!i)return;let l=e.filter(e=>e.query&&e.query.trim()).filter(e=>{let t=M(e.query||"");return!!t&&i.endsWith(t)}).filter(e=>"any"===n||(0,c.configSupportsDatasetType)(e.dataset_type,n));if(0!==l.length)return l.reduce((e,t)=>{let i=M(e.query||"").length,l=M(t.query||"").length;if(l!==i)return l>i?t:e;let r=(0,c.getDatasetTypePriority)(e.dataset_type,n);return(0,c.getDatasetTypePriority)(t.dataset_type,n)>r?t:e})}async function D(e,t,n){let i=(0,d.normalizeConfigQuery)(t);if(!i)return;let l=e.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,"routing")),r=[];for(let e of l){let t=function(e){let t=Array.isArray(e.routing_anchors)?e.routing_anchors.filter(e=>"string"==typeof e&&e.trim()):[];return e.routing_intent?.trim()&&t.length>0?{intent:e.routing_intent.trim(),anchors:t}:null}(e);if(!t)continue;let n=(0,m.matchQueryToStoredRoutingSignature)(i,t);(0!==n.matchedAnchors.length||n.intentMatched)&&r.push({config:e,signature:t,matchedAnchors:n.matchedAnchors,anchorCoverage:n.anchorCoverage,intentMatched:n.intentMatched})}if(0===r.length)return;r.sort((e,t)=>{if(t.matchedAnchors.length!==e.matchedAnchors.length)return t.matchedAnchors.length-e.matchedAnchors.length;if(t.anchorCoverage!==e.anchorCoverage)return t.anchorCoverage-e.anchorCoverage;if(Number(t.intentMatched)!==Number(e.intentMatched))return Number(t.intentMatched)-Number(e.intentMatched);let n=(0,c.getDatasetTypePriority)(e.config.dataset_type,"routing"),i=(0,c.getDatasetTypePriority)(t.config.dataset_type,"routing");if(i!==n)return i-n;let l=e.signature.anchors.join("").length;return t.signature.anchors.join("").length-l});let s=r[0];return s.config.routing_intent=s.signature.intent,s.config.routing_anchors=s.signature.anchors,s.config}function V(e,t){let n=function(e){let t=(0,d.normalizeConfigSkillName)(e.skill);if(t)return{skill:t,version:e.skill_version??null};let n=q(e),i=Array.from(new Map(n.filter(e=>e.name?.trim()).map(e=>[`${e.name.trim()}::${e.version??"any"}`,e])).values());if(1===i.length)return{skill:i[0].name.trim(),version:i[0].version??null}}(t);if(!n)return;let i=(0,d.normalizeConfigQuery)(t.query),l=e.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,"outcome")).filter(e=>(0,d.normalizeConfigSkillName)(e.skill)===n.skill).filter(e=>{let t=e.skillVersion??null;return null===t||t===n.version}).filter(e=>{let t=(0,d.normalizeConfigQuery)(e.query);return!t||t===i});if(0!==l.length)return l.reduce((e,t)=>{let l=(e.skillVersion??null)!==null&&e.skillVersion===n.version,r=(t.skillVersion??null)!==null&&t.skillVersion===n.version;if(l!==r)return r?t:e;let s=(0,d.normalizeConfigQuery)(e.query)===i,o=(0,d.normalizeConfigQuery)(t.query)===i;if(s!==o)return o?t:e;let a=!(0,d.normalizeConfigQuery)(e.query),u=!(0,d.normalizeConfigQuery)(t.query);if(a!==u)return u?t:e;let m=(0,c.getDatasetTypePriority)(e.dataset_type,"outcome");return(0,c.getDatasetTypePriority)(t.dataset_type,"outcome")>m?t:e})}function $(e){if(!e)return[];let t=(0,c.normalizeExpectedSkills)(e.expectedSkills);return t.length>0?t:e.skill?.trim()?[{skill:e.skill.trim(),version:e.skillVersion??null}]:[]}function q(e){return Array.isArray(e.invokedSkills)&&e.invokedSkills.length>0?e.invokedSkills.filter(e=>e?.name?.trim()).map(e=>({name:e.name.trim(),version:e.version??null})):Array.isArray(e.skills)&&e.skills.length>0?e.skills.filter(e=>"string"==typeof e&&e.trim()).map(e=>({name:e.trim(),version:null})):[]}function J(e,t){if(!Array.isArray(t))return null;let n=(0,S.normalizeInteractions)(t);return(0,b.getAdapter)(e).extractSkills?.(n)??null}function F(e,t,n){let i=new Map,l=(e,t)=>{let n=e?.trim();if(!n)return;let l=i.get(n)||{skill:n,expected_version:null,invoked_version:null,primary_version:null,is_expected:!1,is_invoked:!1,is_primary:!1,is_outcome_anchor:!1};i.set(n,{...l,...t,expected_version:void 0!==t.expected_version?t.expected_version:l.expected_version,invoked_version:void 0!==t.invoked_version?t.invoked_version:l.invoked_version,primary_version:void 0!==t.primary_version?t.primary_version:l.primary_version,is_expected:t.is_expected??l.is_expected,is_invoked:t.is_invoked??l.is_invoked,is_primary:t.is_primary??l.is_primary,is_outcome_anchor:t.is_outcome_anchor??l.is_outcome_anchor})};for(let n of(l(e.skill,{is_primary:!0,primary_version:e.skill_version??null}),$(t)))l(n.skill,{is_expected:!0,expected_version:n.version??null});for(let t of q(e))l(t.name,{is_invoked:!0,invoked_version:t.version??null});return n?.skill?.trim()&&l(n.skill,{is_outcome_anchor:!0}),Array.from(i.values()).sort((e,t)=>{let n=4*Number(e.is_primary)+2*Number(e.is_invoked)+Number(e.is_expected),i=4*Number(t.is_primary)+2*Number(t.is_invoked)+Number(t.is_expected);return n!==i?i-n:e.skill.localeCompare(t.skill)})}async function j(e,t){if(!e||Array.isArray(e.key_actions)&&e.key_actions.length>0)return;let n=function(e){let t=new Map,n=(e,n)=>{let i=(0,d.normalizeConfigSkillName)(e);if(!i)return;let l=n??null;t.set(`${i}::${l??"any"}`,{skill:i,version:l})};for(let t of(n(e.skill,e.skillVersion??null),(0,c.normalizeExpectedSkills)(e.expectedSkills)))n(t.skill,t.version??null);return Array.from(t.values())}(e);if(0===n.length)return;let i=[];for(let e of n){let n=await a.db.findSkill(e.skill,t||null);if(!n)continue;let l=e.version??n.activeVersion??n.versions?.[0]?.version??null;if(null==l)continue;let r=await a.db.findParsedFlow(n.id,l,t||null);if(!r?.flowJson)continue;let s=JSON.parse(r.flowJson),o=(0,_.extractKeyActionsFromFlow)(s).map(t=>({...t,skillSource:t.skillSource||e.skill}));o.length>0&&i.push({name:e.skill,actions:o})}if(0===i.length)return;let l=1===i.length?i[0].actions:(0,_.mergeKeyActionsFromMultipleSkills)(i);e.key_actions=l.map(e=>({content:e.content,weight:e.weight,..."required"!==e.controlFlowType?{controlFlowType:e.controlFlowType}:{},...e.condition?{condition:e.condition}:{},...e.branchLabel?{branchLabel:e.branchLabel}:{},...e.loopCondition?{loopCondition:e.loopCondition}:{},...void 0!==e.expectedMinCount?{expectedMinCount:e.expectedMinCount}:{},...void 0!==e.expectedMaxCount?{expectedMaxCount:e.expectedMaxCount}:{},...e.groupId?{groupId:e.groupId}:{}})),e.extractedKeyActions=l;try{await a.db.updateConfig(e.id,{keyActions:JSON.stringify(e.key_actions),extractedKeyActions:JSON.stringify(l)}),console.log(`[AutoExtract] Auto-filled key_actions for config ${e.id} from ${n.map(e=>e.skill).join(", ")}`)}catch(e){console.error("[AutoExtract] Error updating config with extracted key_actions:",e)}}async function L(e,t,n){let i=q(e),l=F(e,t);if(!t)return{status:"missing",expected_skills:[],invoked_skills:i,matched_skills:[],matched_anchors:[],expected_count:0,matched_count:0,is_correct:!1,trigger_rate:null,skill_breakdown:l.map(e=>({skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:!1,status:e.is_invoked?"unexpected":"not_applicable",expected_version:e.expected_version,invoked_version:e.invoked_version}))};let r=$(t),s=[],o=0,u=new Map,m=r.filter(e=>null!==e.version&&!i.some(t=>t.name===e.skill&&null!==t.version)).map(e=>e.skill);if(m.length>0)try{for(let e of(await a.db.findSkills({name:{in:m},user:n||null})))u.set(e.name,e)}catch(e){console.error("[RoutingEvaluation] Error fetching skills for version check:",e)}for(let e of r){let t=i.find(t=>t.name===e.skill);if(!t)continue;let n=!1;if(null===e.version)n=!0;else if(null!==t.version)n=t.version===e.version;else{let t=u.get(e.skill);n=(t?t.activeVersion||0:null)===e.version}n&&(o+=1,s.push({skill:e.skill,expected_version:e.version,invoked_version:t.version??null}))}let k=l.map(e=>{let t=s.some(t=>t.skill===e.skill),n="not_applicable";return e.is_expected?n=t?"matched":"missed":e.is_invoked&&(n="unexpected"),{skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:t,status:n,expected_version:e.expected_version,invoked_version:e.invoked_version}});return{status:"available",matched_config_id:t.id,matched_query:(0,d.normalizeConfigQuery)(t.query)||void 0,matched_intent:t.routing_intent||void 0,matched_anchors:t.routing_anchors||[],dataset_type:(0,c.normalizeConfigDatasetType)(t.dataset_type),expected_skills:r,invoked_skills:i,matched_skills:s,expected_count:r.length,matched_count:o,is_correct:o>0,trigger_rate:r.length>0?o/r.length:null,skill_breakdown:k}}async function z(e,t,n){let i=e.query?await D(t,e.query,n??e.user??null):void 0,l=V(t,e),r=await L(e,i,n??e.user??null),s=e.task_id||e.upload_id||"",o=null;if(s)try{let e=await a.db.findExecutionMatch(s);e&&(o={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{o=null}return{...e,routing_evaluation:r,outcome_evaluation:function(e,t,n,i){let l=F(e,n,t),r=(e,t)=>l.map(n=>{let l="context_only";n.is_primary?l="primary":n.is_invoked?l="invoked":n.is_expected&&(l="expected_only");let r=i?.status==="available"?i.skill_breakdown.find(e=>e.skill===n.skill)?.status||"not_applicable":"missing_dataset";return{skill:n.skill,version:n.invoked_version??n.primary_version??n.expected_version??null,role:l,is_primary:n.is_primary,is_invoked:n.is_invoked,is_expected:n.is_expected,routing_status:r,shares_execution_outcome:!0,score:e,is_correct:t}});if(!t)return{status:"missing",is_correct:null,score:null,reason:e.judgment_reason||ea,standard_answer_present:!1,root_cause_count:0,key_action_count:0,skill_breakdown:r(null,null)};let s="结果评估中..."===e.judgment_reason?"pending":"available",o="pending"===s?null:e.answer_score??null,a="pending"===s?null:e.is_answer_correct??null;return{status:s,matched_config_id:t.id,matched_query:(0,d.normalizeConfigQuery)(t.query)||void 0,matched_skill:(0,d.normalizeConfigSkillName)(t.skill)||void 0,matched_skill_version:t.skillVersion??null,dataset_type:(0,c.normalizeConfigDatasetType)(t.dataset_type),is_correct:a,score:o,reason:e.judgment_reason||void 0,standard_answer_present:!!t.standard_answer,root_cause_count:t.root_causes?.length??0,key_action_count:t.key_actions?.length??0,skill_breakdown:r(o,a)}}(e,l,i,r),execution_match:o}}let eu=(0,r.resolveAgentInsightDataPath)(),ec=l.default.join(eu,"evaluation_result.json"),ed="1"===process.env.AUDIT_DATA_MUTATIONS||"true"===process.env.AUDIT_DATA_MUTATIONS;async function P(e){let t={isSubagent:!1};e&&(t.user=e);let n=await a.db.findExecutions(t,{timestamp:"desc"}),i=[],l=new Set;for(let e of n){let t=String(e?.agentName||"").trim();!t||l.has(t)||(0,v.isEvaluatorAgentName)(t)||(l.add(t),i.push(t))}return i}async function W(e){let t=new Map;if(er)try{let n={};for(let i of(e&&(n.user=e),await a.prismaRaw.executionSkill.findMany({where:n,select:{skillName:!0,skillVersion:!0},distinct:["skillName","skillVersion"]}))){if(!i.skillName)continue;let e=t.get(i.skillName)??new Set;"number"==typeof i.skillVersion&&e.add(i.skillVersion),t.set(i.skillName,e)}}catch(e){console.warn("[listObservedSkills] ExecutionSkill query failed, falling back to legacy column:",e)}if(0===t.size){let n={};for(let i of(e&&(n.user=e),await a.db.findExecutions(n,{timestamp:"desc"},{skill:!0,skillVersion:!0}))){let e=String(i?.skill||"").trim();if(!e)continue;let n=t.get(e)??new Set;"number"==typeof i.skillVersion&&n.add(i.skillVersion),t.set(e,n)}}return Array.from(t.entries()).map(([e,t])=>({name:e,versions:Array.from(t).sort((e,t)=>e-t)})).sort((e,t)=>e.name.localeCompare(t.name))}let em=new Set(["framework","agentName","model","subagentType"]);async function U(e,t){if("skill"===e)try{return(await a.prismaRaw.executionSkill.groupBy({by:["skillName"],where:t?{user:t}:void 0,_count:{executionId:!0}})).map(e=>({value:String(e.skillName??""),count:e._count.executionId??0})).filter(e=>""!==e.value).sort((e,t)=>t.count-e.count)}catch(e){return console.warn("[listObservedFieldValues] skill groupBy failed:",e?.message),[]}if(!em.has(e))return[];let n={isSubagent:!1,[e]:{not:null}};t&&(n.user=t);try{return(await a.prismaRaw.execution.groupBy({by:[e],where:n,_count:{_all:!0}})).map(t=>({value:String(t[e]??""),count:t._count?._all??0})).filter(e=>""!==e.value).sort((e,t)=>t.count-e.count)}catch(t){return console.warn("[listObservedFieldValues] groupBy failed:",e,t?.message),[]}}async function B(e,t){let n={isSubagent:!1};e&&(n.user=e),t&&(n.agentName=t);let i=await a.db.findExecutions(n,{timestamp:"desc"}),l=[],r=new Set;for(let e of i){let t=String(e?.taskId||"").trim();if(t){if(r.has(t))continue;r.add(t),l.push(t);continue}let n=String(e?.id||"").trim();n&&l.push(n)}return l}let ek={id:!0,taskId:!0,query:!0,framework:!0,tokens:!0,cost:!0,latency:!0,toolCallCount:!0,llmCallCount:!0,inputTokens:!0,outputTokens:!0,toolCallErrorCount:!0,cacheReadInputTokens:!0,cacheCreationInputTokens:!0,maxSingleCallTokens:!0,reasoningTokens:!0,timestamp:!0,model:!0,agentName:!0,agentId:!0,skill:!0,skills:!0,invokedSkills:!0,isSkillCorrect:!0,isAnswerCorrect:!0,answerScore:!0,skillScore:!0,judgmentReason:!0,failures:!0,skillIssues:!0,skillVersion:!0,label:!0,user:!0,skillTriggerRate:!0,parentExecutionId:!0,rootExecutionId:!0,agentSessionId:!0,subagentType:!0,subagentName:!0,isSubagent:!0,observedAgents:!0},ep=Math.max(1,Math.trunc(Number(process.env.READ_RECORDS_HYDRATE_BATCH_SIZE))||100);function H(e){let t=new Map;for(let n of e){let e=n.taskId||null;e&&(t.has(e)||t.set(e,[]),t.get(e).push(n))}let n=new Set;for(let[e,i]of t.entries()){if(1===i.length){n.add(i[0].id);continue}let t=i.find(t=>t.id===e);if(t){n.add(t.id);continue}let l=i.slice().sort((e,t)=>{let n=new Date(e.timestamp??0).getTime(),i=new Date(t.timestamp??0).getTime();return i!==n?i-n:String(e.id).localeCompare(String(t.id))});n.add(l[0].id)}return{keepIds:n,byTaskId:t}}async function K(e,t){let{user:n,light:i,attachEvaluations:l,getConfigsForEvaluationUser:r}=t,s=e.map(e=>e.id),o=!i&&s.length>0?await a.db.findExecutions({id:{in:s}},void 0,{id:!0,finalResult:!0}):[];if(o.length>0){let t=new Map;for(let e of o)t.set(e.id,e.finalResult??null);for(let n of e)t.has(n.id)&&(n.finalResult=t.get(n.id))}let c=new Map,d=new Map;if(er&&s.length>0)try{for(let e of(await a.prismaRaw.executionSkill.findMany({where:{executionId:{in:s}},select:{executionId:!0,skillName:!0,skillVersion:!0,isPrimary:!0}}))){let t={name:e.skillName,version:e.skillVersion??null},n=c.get(e.executionId);n?n.push(t):c.set(e.executionId,[t]),e.isPrimary&&!d.has(e.executionId)&&d.set(e.executionId,t)}}catch(e){console.warn("[readRecords] ExecutionSkill batch fetch failed, falling back to legacy columns:",e)}let m=new Map,k=new Map;e.forEach(e=>{var t;let n,i=e.taskId||e.id,l=function(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.trim().length>0):[]}catch{return[]}}(e.observedAgents);m.set(i,l),k.set(i,(t=e.agentName,(n=(t||"").trim())||l.find(e=>e&&!(0,v.isEvaluatorAgentName)(e))||""))});let p={system:2,user:1},f=new Map,g=new Map;if(e.forEach(e=>{let t=e.taskId||e.id,n=k.get(t)||"";if(e.framework&&n){let t=`${e.framework}::${n}`;g.has(t)||g.set(t,{platform:e.framework,name:n})}}),g.size>0)try{for(let e of(await a.prisma.registeredAgent.findMany({where:{OR:Array.from(g.values())},select:{platform:!0,name:!0,agentOwnership:!0}}))){let t=`${e.platform}::${e.name}`,n=f.get(t);(!n||(p[e.agentOwnership]??0)>(p[n]??0))&&f.set(t,e.agentOwnership)}}catch{}let _=new Set;e.forEach(e=>{e.skill&&null==e.skillVersion&&!e.isSubagent&&_.add(String(e.skill))});let y=new Map;if(_.size>0&&n)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:Array.from(_)},OR:[{user:n},{user:null}]},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&y.set(e.name,e.activeVersion)}catch(e){console.warn("[readRecords] skill version backfill lookup failed:",e)}return await Promise.all(e.map(async e=>{let t=e.model??null,s=t?(0,u.getModelPricing)(t):null,o=s?.pricing??null,p=t&&null!=e.maxSingleCallTokens?(0,u.getModelContextWindow)(t):null,g=e.taskId||e.id,_=m.get(g)||[],h=k.get(g)||"",v=c.get(e.id)??null;if(!v&&e.invokedSkills)try{let t=JSON.parse(e.invokedSkills);Array.isArray(t)&&(v=t)}catch{}let b=(!e.isSubagent&&e.skill?{name:String(e.skill),version:"number"==typeof e.skillVersion?e.skillVersion:null}:null)??d.get(e.id)??null;if(e.skill&&null==e.skillVersion&&!e.isSubagent&&y.has(String(e.skill))){let t=y.get(String(e.skill));e.skillVersion=t,a.prisma.execution.updateMany({where:{id:e.id,skillVersion:null},data:{skillVersion:t}}).catch(t=>console.warn("[readRecords] backfill skillVersion failed for",e.id,":",t))}!b&&e.skill&&(b={name:String(e.skill),version:"number"==typeof e.skillVersion?e.skillVersion:null});let S={...e,upload_id:e.id,task_id:e.taskId||void 0,query:e.query||void 0,framework:e.framework||void 0,agent:e.agentName||void 0,agentName:e.agentName||void 0,agentOwnership:(0,w.isInternalSystemAgentTrace)(h)?"system":e.framework&&h?f.get(`${e.framework}::${h}`)??"user":"user",tokens:e.tokens||void 0,cost:o&&null!=e.inputTokens&&null!=e.outputTokens?(0,u.calculateCost)(e.inputTokens,e.outputTokens,o,e.cacheReadInputTokens??void 0,e.cacheCreationInputTokens??void 0):void 0,latency:e.latency||void 0,timestamp:e.timestamp?.toISOString?.()||e.timestamp,final_result:e.finalResult||void 0,skill:e.skill||void 0,rootSkill:b,root_skill:b,skills:v?v.map(e=>e.name):e.skills?JSON.parse(e.skills):void 0,invokedSkills:v??void 0,invoked_skills:v??void 0,is_skill_correct:e.isSkillCorrect??!1,is_answer_correct:e.isAnswerCorrect??null,answer_score:void 0!==e.answerScore?e.answerScore:void 0,skill_score:void 0!==e.skillScore?e.skillScore:void 0,judgment_reason:e.judgmentReason||void 0,failures:e.failures?JSON.parse(e.failures):void 0,label:e.label??null,user:e.user??null,skill_issues:e.skillIssues?JSON.parse(e.skillIssues):[],skill_version:e.skillVersion??null,model:t,tool_call_count:e.toolCallCount??void 0,llm_call_count:e.llmCallCount??void 0,input_tokens:e.inputTokens??void 0,output_tokens:e.outputTokens??void 0,tool_call_error_count:e.toolCallErrorCount??void 0,cache_read_input_tokens:e.cacheReadInputTokens??void 0,cache_creation_input_tokens:e.cacheCreationInputTokens??void 0,max_single_call_tokens:e.maxSingleCallTokens??void 0,reasoning_tokens:e.reasoningTokens??void 0,expected_skill_version:e.expectedSkillVersion??null,skill_trigger_rate:e.skillTriggerRate??null,context_window_pct:null!=e.maxSingleCallTokens&&p?Math.round(e.maxSingleCallTokens/p.contextWindow*1e3)/10:void 0,context_window_limit:p?.contextWindow,context_window_source:p?.source,cost_pricing:o?{inputTokenPrice:o.inputTokenPrice,outputTokenPrice:o.outputTokenPrice,cacheReadInputTokenPrice:o.cacheReadInputTokenPrice??o.inputTokenPrice*u.DEFAULT_CACHE_READ_RATIO,cacheCreationInputTokenPrice:o.cacheCreationInputTokenPrice??o.inputTokenPrice*u.DEFAULT_CACHE_CREATION_RATIO,source:s?.source??"default"}:null,agents:_,parent_execution_id:e.parentExecutionId??null,root_execution_id:e.rootExecutionId??null,agent_session_id:e.agentSessionId??null,subagent_type:e.subagentType??null,subagent_name:e.subagentName??null,is_subagent:e.isSubagent??!1},x=S.task_id||S.upload_id||"",A=null;if(!i&&x)try{let e=await a.db.findExecutionMatch(x);e&&(A={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{A=null}if(S.execution_match=A,!l)return S;let I=S.user??n??null,N=await r(I);return z(S,N,I)}))}async function G(e,t,n){let i=n?.lightweight===!0,l=!i&&(n?.attachEvaluations??!0),r=n?.page&&Number.isFinite(n.page)?Math.max(1,Math.trunc(n.page)):1,s=n?.pageSize&&Number.isFinite(n.pageSize)?Math.max(1,Math.trunc(n.pageSize)):0,o={};e&&!t?.showAllUsers&&(o.user=e);let u=!!(t?.taskIds?.length||t?.taskId),c=(t?.clauses??[]).filter(e=>"skill"===e.column&&("any of"===e.operator||"="===e.operator)).flatMap(e=>Array.isArray(e.value)?e.value:null!=e.value?[e.value]:[]).map(e=>String(e)),d=Array.from(new Set([...t?.skill!==void 0?[String(t.skill)]:[],...c])),m=er&&d.length>0;if(t?.onlySubagents===!0?o.isSubagent=!0:t?.includeSubagents===!0||t?.parentExecutionId!==void 0||u||m||(o.isSubagent=!1),t?.parentExecutionId!==void 0&&(o.parentExecutionId=t.parentExecutionId),t?.taskIds&&t.taskIds.length>0)o.taskId={in:t.taskIds},t.framework&&(o.framework=t.framework);else if(!t?.query&&t?.taskId)o.taskId=t.taskId,t.framework&&(o.framework=t.framework);else if(t?.query){let e=t.query.trim();e&&(o.OR=[{query:{contains:e}},{finalResult:{contains:e}},{id:{contains:e}},{taskId:{contains:e}}]),t.framework&&(o.framework=t.framework)}if(m){let n={skillName:{in:d}};t?.skillVersion!==void 0&&(n.skillVersion=t.skillVersion),e&&!t?.showAllUsers&&(n.user=e);try{let e=await a.prismaRaw.executionSkill.findMany({where:n,select:{executionId:!0}});o.id={in:Array.from(new Set(e.map(e=>e.executionId)))}}catch(e){console.warn("[readRecords] ExecutionSkill filter failed, falling back to legacy skill column:",e),o.skill={in:d},t?.skillVersion!==void 0&&(o.skillVersion=t.skillVersion)}}else t?.skill!==void 0&&(o.skill=t.skill),t?.skillVersion!==void 0&&(o.skillVersion=t.skillVersion);if(t?.agentName!==void 0&&(o.agentName=t.agentName),t?.clauses&&t.clauses.length>0){let{where:e,errors:n}=(0,x.buildPrismaWhere)(t.clauses);Array.isArray(e.AND)&&e.AND.length>0&&(o.AND=[...o.AND??[],...e.AND]),n.length>0&&console.warn("[readRecords] ignored invalid filter clauses:",n.map(e=>e.reason))}let k=await a.db.findExecutions(o,{timestamp:"desc"},ek),{keepIds:p,byTaskId:f}=H(k),g=k.filter(e=>!e.taskId||p.has(e.id)),_=g.length,y=s>0?g.slice((r-1)*s,(r-1)*s+s):g;for(let[e,t]of f.entries())if(!(t.length<=1)){for(let n of t)if(!p.has(n.id)){if(ed){let i=t.find(e=>p.has(e.id))?.id??"unknown";console.warn(`[Data-Audit] deleteExecution (read dedup): taskId=${e} deleteId=${n.id} keepId=${i}`)}a.db.deleteExecution(n.id).catch(()=>{})}}let h=new Map,v=e=>{let t=e||"__global__";return h.has(t)||h.set(t,Y(e||void 0)),h.get(t)},w=[];for(let t of function(e,t){let n=Math.max(1,Math.trunc(t)),i=[];for(let t=0;t<e.length;t+=n)i.push(e.slice(t,t+n));return i}(y,ep)){let n=await K(t,{user:e,light:i,attachEvaluations:l,getConfigsForEvaluationUser:v});w.push(...n)}return{records:w,total:_}}async function Q(e,t,n){return(await G(e,t,n)).records}async function Z(e,t,n){return G(e,t,n)}async function Y(e,t="any"){let n={};e&&(n.OR=[{user:e},{user:null}]);let i=(await a.db.findConfigs(n)).map(e=>{let t=(t,n)=>{if(t)try{return JSON.parse(t)}catch(t){console.error(`[readConfig] Failed to parse ${n} for config ${e.id}:`,t);return}};return{id:e.id,query:e.query??null,dataset_type:(0,c.normalizeConfigDatasetType)(e.datasetType),skill:e.skill,skillVersion:e.skillVersion,routing_intent:e.routingIntent||void 0,routing_anchors:t(e.routingAnchors,"routingAnchors"),expectedSkills:(0,c.normalizeExpectedSkills)(t(e.expectedSkills,"expectedSkills")),standard_answer:e.standardAnswer||"",root_causes:t(e.rootCauses,"rootCauses"),key_actions:t(e.keyActions,"keyActions"),extractedKeyActions:t(e.extractedKeyActions,"extractedKeyActions"),parse_status:e.parseStatus||"completed"}});return"any"===t?i:i.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,t))}async function X(e,t){if(!e)return 0;let n={taskId:e};t&&(n.framework=t);try{let i=await a.db.deleteExecutions(n);return i>0&&ed&&console.warn(`[Data-Audit] deleteExecutionsByTaskId: taskId=${e} framework=${t??"*"} deleted=${i}`),i}catch{return 0}}function ee(){return(process.env.AGENT_INSIGHT_DEFAULT_INGEST_USER||"").trim()||null}async function et(e){var t,n,l,r;let u,c=e.upload_id||e.task_id||crypto.randomUUID();if(e.task_id)try{let t={taskId:e.task_id};e.framework&&(t.framework=e.framework);let n=await a.db.findExecutions(t,{timestamp:"desc"});if(n&&n.length>0&&n[0]?.id){let t=n.find(t=>t.id===e.task_id),i=t&&t.id?t.id:n[0].id;i!==c&&(c=i)}}catch{}let m=null,_=await a.db.findExecutionById(c);_&&(m={..._,upload_id:_.id,task_id:_.taskId||void 0,query:_.query||void 0,framework:_.framework||void 0,tokens:_.tokens??void 0,cost:_.cost??void 0,latency:_.latency??void 0,timestamp:_.timestamp?.toISOString?.()||_.timestamp,final_result:_.finalResult||void 0,skill:_.skill||void 0,skills:_.skills?JSON.parse(_.skills):void 0,invokedSkills:_.invokedSkills?(()=>{try{return JSON.parse(_.invokedSkills)}catch{return}})():void 0,is_skill_correct:_.isSkillCorrect??!1,is_answer_correct:_.isAnswerCorrect??null,answer_score:_.answerScore??void 0,skill_score:_.skillScore??void 0,judgment_reason:_.judgmentReason||void 0,failures:_.failures?JSON.parse(_.failures):void 0,skill_issues:_.skillIssues?JSON.parse(_.skillIssues):void 0,label:_.label||void 0,user:_.user||void 0,skill_version:_.skillVersion??void 0,expected_skill_version:_.expectedSkillVersion??null,skill_trigger_rate:_.skillTriggerRate??null,model:_.model||void 0,tool_call_count:_.toolCallCount??void 0,llm_call_count:_.llmCallCount??void 0,input_tokens:_.inputTokens??void 0,output_tokens:_.outputTokens??void 0,tool_call_error_count:_.toolCallErrorCount??void 0,cache_read_input_tokens:_.cacheReadInputTokens??void 0,cache_creation_input_tokens:_.cacheCreationInputTokens??void 0,max_single_call_tokens:_.maxSingleCallTokens??void 0});let v=m?{...m}:{},S=!!m;S||v.timestamp||e.timestamp?e.timestamp&&(v.timestamp=e.timestamp):v.timestamp=new Date().toISOString();let x=!!e.force_query_update,A="string"==typeof m?.query?m.query.trim():"",C="string"==typeof e.query?e.query.trim():"",E=!1;if("string"==typeof e.label){let t=(0,g.parseLabelSkillVersionBinding)(e.label);t&&(e.skill=t.skill,e.skill_version=t.skill_version,e.skills=t.skills,e.invokedSkills=t.invokedSkills,E=!0)}v={...v,...e};let M=function(e){let{isUpdate:t,existingSkillVersion:n,incomingSkillVersion:i,explicitRewrite:l}=e;return!t||null==n||l?{resolved:i,blocked:!1}:i===n?{resolved:n,blocked:!1}:{resolved:n,blocked:!0}}({isUpdate:S,existingSkillVersion:m?.skill_version??null,incomingSkillVersion:v.skill_version??null,explicitRewrite:E});if(M.blocked&&console.warn(`[Data-Service] Preserving existing skill_version for execution ${c}: existing=${m?.skill_version}, incoming=${v.skill_version} blocked. Skill version is immutable history; only NULL → value or explicit label-binding rewrite is allowed.`),v.skill_version=M.resolved??void 0,!v.agentName&&v.agent&&(v.agentName=v.agent),A&&!x?v.query=A:!A&&C?v.query=C:"string"!=typeof v.query||v.query.trim()?"string"==typeof v.query&&(v.query=v.query.trim()):v.query=void 0,!v.upload_id&&v.task_id&&(v.upload_id=v.task_id),!v.task_id&&v.upload_id&&(v.task_id=v.upload_id),v.upload_id=c,(!v.label||!v.model||!v.user)&&v.task_id){let e=await a.db.findSessionByTaskId(v.task_id);e&&(!v.label&&e.label&&(v.label=e.label),!v.model&&e.model&&(v.model=e.model),!v.user&&e.user&&(v.user=e.user))}if(!v.user){let e=ee();if(e)v.user=e,console.log(`[Data-Service] No user on record for task ${v.task_id}, defaulting to AGENT_INSIGHT_DEFAULT_INGEST_USER=${e}`);else try{let e=a.db.getClient();if("query"in e){let t=await e.query('SELECT username FROM "User" LIMIT 1');t.rows[0]&&(v.user=t.rows[0].username,console.log(`[Data-Service] Fallback resolved user for task ${v.task_id} to: ${v.user}`))}}catch(e){console.warn("[Data-Service] Fallback user lookup failed:",e)}}let R=e.Token||e.token||e.tokens;void 0!==R&&(v.tokens=Number(R)),void 0!==e.tool_call_count&&(v.tool_call_count=Number(e.tool_call_count)),void 0!==e.llm_call_count&&(v.llm_call_count=Number(e.llm_call_count)),void 0!==e.input_tokens&&(v.input_tokens=Number(e.input_tokens)),void 0!==e.output_tokens&&(v.output_tokens=Number(e.output_tokens)),void 0!==e.tool_call_error_count&&(v.tool_call_error_count=Number(e.tool_call_error_count)),void 0!==e.cache_read_input_tokens&&(v.cache_read_input_tokens=Number(e.cache_read_input_tokens)),void 0!==e.cache_creation_input_tokens&&(v.cache_creation_input_tokens=Number(e.cache_creation_input_tokens)),void 0!==e.max_single_call_tokens&&(v.max_single_call_tokens=Number(e.max_single_call_tokens)),void 0!==e.reasoning_tokens&&(v.reasoning_tokens=Number(e.reasoning_tokens));let q=null;if(v.task_id&&v.interactions){let e=(0,b.getAdapter)(v.framework),t=t=>e.normalizeForStorage?.(t)??t,n="string"==typeof v.interactions?(()=>{try{return JSON.parse(v.interactions)}catch{return[]}})():v.interactions;q=n=t(n);try{let i=v.session_merge_strategy||e.sessionMergeStrategy||"monotonic";if("snapshot-replace"!==i){let e=await a.db.findSessionByTaskId(v.task_id),i=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];i=t(i),Array.isArray(i)&&i.length>0&&(q=(0,y.mergeSessionInteractionsMonotonic)(i,n))}else if("true"!==process.env.AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK){let e=await a.db.findSessionByTaskId(v.task_id),i=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];i=t(i);let l=Array.isArray(i)?i.length:0,r=Array.isArray(n)?n.length:0;if(l>0&&r<l)return console.warn(`[Data-Service] snapshot-replace 退化护栏:拒绝用更小快照覆盖 task ${v.task_id}(incoming ${r} < existing ${l} interactions),保留现有记录。设 AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK=true 可放行。`),{success:!0,record:v}}}catch(e){e&&"object"==typeof e&&"task_id"in v&&console.warn("[Data-Service] snapshot-replace 退化检查异常,按原逻辑继续:",e?.message||e)}q=t(q),v.interactions=q;let i=function(e){if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t||"user"!==String(t.role||"").toLowerCase())continue;let e="string"==typeof t.content?t.content.trim():"";if(e)return e}}(q);if(i&&function(e,t){let n="string"==typeof e?e.trim():"";if(!n)return!0;let i="string"==typeof t?t.trim().toLowerCase():"";return!!i&&n.toLowerCase()===`${i} session`}(v.query,v.framework)&&(v.query=i),"opencode"===v.framework&&Array.isArray(q)){let e=(0,k.deriveOpencodeExecutionFields)(q);e.model&&(v.model=e.model),e.final_result&&(v.final_result=e.final_result),e.agentName&&!v.agentName&&(v.agentName=e.agentName),v.tokens=e.tokens,v.latency=e.latency,v.input_tokens=e.input_tokens,v.output_tokens=e.output_tokens,v.tool_call_count=e.tool_call_count,v.tool_call_error_count=e.tool_call_error_count,v.llm_call_count=e.llm_call_count,v.cache_read_input_tokens=e.cache_read_input_tokens,v.cache_creation_input_tokens=e.cache_creation_input_tokens,v.max_single_call_tokens=e.max_single_call_tokens,v.reasoning_tokens=e.reasoning_tokens}}let F=!1,L=v.is_answer_correct||!1,P=v.judgment_reason||ea;v.skill_trigger_rate=null;let W=await Y(v.user);if(W.length>0){let n=await D(W,v.query,v.user),i=V(W,v);if(n){let e=Array.isArray(v.invokedSkills)?v.invokedSkills:[],t=(Array.isArray(v.skills)?v.skills:[]).map(e=>({name:e,version:null})),i=$(n);if(i.length>0){let n=e.length>0?e:t;if(n.length>0){let e=0,t=i.filter(e=>e.skill?.trim()),l=t.map(e=>e.skill.trim()),r=new Map;if(l.length>0)try{for(let e of(await a.db.findSkills({name:{in:l},user:v.user||null})))r.set(e.name,e)}catch(e){console.error("[Judgment] Error fetching skills for version check:",e)}for(let i of t){let t=i.skill.trim(),l=i.version??null,s=n.find(e=>e.name===t);if(s){let n=!1;if(null===l)n=!0;else if(null!==s.version)n=s.version===l;else{let e=r.get(t);n=!!e&&(e.activeVersion||0)===l}n&&(e++,F||(F=!0))}}t.length>0&&(v.skill_trigger_rate=e/t.length)}}v.is_skill_correct=F}if(i){if(await j(i,v.user),void 0!==v.final_result){let l=!0;if(S&&!e.force_judgment&&m&&m.query===v.query&&m.final_result===v.final_result&&(l=!1),e.skip_internal_judgment&&(l=!1),l&&!v.skip_evaluation){let e,l=(v.skill||i.skill||n?.skill||"").trim();if(l)try{let t=await a.db.findSkill(l,v.user||null);if(t){let n=i.skillVersion??v.skill_version??t.activeVersion??0,l=t.versions?.find(e=>e.version===n);if(l&&l.content)e=l.content,(void 0===v.skill_version||null===v.skill_version)&&(v.skill_version=l.version);else if(t.versions&&t.versions.length>0){let n=t.versions[0];n&&n.content&&(e=n.content,(void 0===v.skill_version||null===v.skill_version)&&(v.skill_version=n.version))}}}catch(e){console.error("[Judgment] Error fetching skill definition:",e)}let r=null;try{let e=await a.db.findExecutionMatch(v.task_id||v.upload_id||"");e?.extractedSteps&&(r="string"==typeof e.extractedSteps?JSON.parse(e.extractedSteps):e.extractedSteps)}catch(e){console.warn("[Judgment] Failed to load execution steps for KA evaluation:",e)}let o=await (0,s.judgeAnswer)((t=v,(0,d.getConfigSubjectLabel)({query:t.query,skill:t.skill||i?.skill||null,skillVersion:t.skill_version??i?.skillVersion??null},"Skill execution benchmark")),{standard_answer_example:i.standard_answer,root_causes:i.root_causes,key_actions:i.key_actions,skill_definition:e},v.final_result,v.user,r);L=o.is_correct,v.answer_score=o.score,P=o.reason||"Judged by Evaluation Model"}}}else(!S||e.force_judgment)&&(L=!1,P=ea,v.answer_score=null)}e.skip_evaluation&&(v.answer_score=null,L=!1,P="结果评估中..."),v.is_skill_correct=F,v.is_answer_correct=L,v.judgment_reason=P,v=await z(v,W,v.user);let U=Array.isArray(v.skills)&&v.skills.length>0?v.skills[0]:void 0;if(U){let e=function(){if(!i.default.existsSync(ec))return{};try{return JSON.parse(i.default.readFileSync(ec,"utf-8"))}catch{return{}}}()[U];e&&(v.skill_score=parseFloat(e))}if(v.label=(0,f.chooseExecutionLabel)({existingLabel:m?.label,incomingLabel:e.label,skill:v.skill,skillVersion:v.skill_version??null}),v.framework){let e=v.framework,t=v.user||null;for(let n of(0,p.extractObservedAgentRegistrations)(q,v.agentName))try{let i=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:n.name,user:t}});if(!i)try{i=await a.prisma.registeredAgent.create({data:{platform:e,name:n.name,user:t,agentOwnership:(0,w.isInternalSystemAgentTrace)(n.name)?"system":"user",agentType:"main"===n.agentType?v.agentType||"main":"subagent"}})}catch(l){(i=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:n.name,user:t}}))||console.warn(`[Data-Service] register observed agent failed (non-fatal): ${n.name}`,l)}i&&"main"===n.agentType&&n.name===v.agentName&&(u=i.id)}catch(e){console.warn(`[Data-Service] observed-agent registration error (non-fatal): ${n.name}`,e)}}let B=Array.isArray(q)&&q.length>0?JSON.stringify((0,p.extractObservedAgentNames)(q)):null;if(await a.db.upsertExecution({where:{id:c},create:{id:c,taskId:v.task_id,query:v.query,framework:v.framework,tokens:v.tokens,cost:v.cost,latency:v.latency,timestamp:v.timestamp?new Date(v.timestamp):new Date,finalResult:v.final_result,skill:v.skill,skills:v.skills?JSON.stringify(v.skills):null,invokedSkills:v.invokedSkills?JSON.stringify(v.invokedSkills):null,isSkillCorrect:v.is_skill_correct,isAnswerCorrect:v.is_answer_correct,answerScore:v.answer_score,skillScore:v.skill_score,judgmentReason:v.judgment_reason,failures:v.failures?JSON.stringify(v.failures):null,skillIssues:v.skill_issues?JSON.stringify(v.skill_issues):null,label:v.label,user:v.user,agentName:v.agentName,agentId:u,skillVersion:v.skill_version,model:v.model,endpoint:(0,o.normalizeEndpointUrl)(v.endpoint),toolCallCount:v.tool_call_count,llmCallCount:v.llm_call_count,inputTokens:v.input_tokens,outputTokens:v.output_tokens,toolCallErrorCount:v.tool_call_error_count,skillTriggerRate:v.skill_trigger_rate,cacheReadInputTokens:v.cache_read_input_tokens,cacheCreationInputTokens:v.cache_creation_input_tokens,maxSingleCallTokens:v.max_single_call_tokens,reasoningTokens:v.reasoning_tokens,observedAgents:B},update:{taskId:v.task_id,query:v.query,framework:v.framework,tokens:v.tokens,cost:v.cost,latency:v.latency,timestamp:v.timestamp?new Date(v.timestamp):new Date,finalResult:v.final_result,skill:v.skill,skills:v.skills?JSON.stringify(v.skills):null,invokedSkills:v.invokedSkills?JSON.stringify(v.invokedSkills):null,isSkillCorrect:v.is_skill_correct,isAnswerCorrect:v.is_answer_correct,answerScore:v.answer_score,skillScore:v.skill_score,judgmentReason:v.judgment_reason,failures:v.failures?JSON.stringify(v.failures):null,skillIssues:v.skill_issues?JSON.stringify(v.skill_issues):null,label:v.label,user:v.user,agentName:v.agentName,agentId:u,skillVersion:v.skill_version,model:v.model,endpoint:(0,o.normalizeEndpointUrl)(v.endpoint),toolCallCount:v.tool_call_count,llmCallCount:v.llm_call_count,inputTokens:v.input_tokens,outputTokens:v.output_tokens,toolCallErrorCount:v.tool_call_error_count,skillTriggerRate:v.skill_trigger_rate,cacheReadInputTokens:v.cache_read_input_tokens,cacheCreationInputTokens:v.cache_creation_input_tokens,maxSingleCallTokens:v.max_single_call_tokens,reasoningTokens:v.reasoning_tokens,observedAgents:B}}),e.upload_id&&e.task_id&&e.upload_id!==c)try{let t=await a.db.findExecutionById(e.upload_id);t&&t.taskId===e.task_id&&(ed&&console.warn(`[Data-Audit] deleteExecution (dedup on save): upload_id=${e.upload_id} task_id=${e.task_id} recordId=${c}`),await a.db.deleteExecution(e.upload_id))}catch{}if(er)try{let e=Array.isArray(q)&&q.length>0,t=(n=E?Array.isArray(v.invokedSkills)?v.invokedSkills:[]:e?function(e,t){if(!Array.isArray(t)||0===t.length)return[];if("opencode"===e||"hermes"===e||"langfuse-langgraph"===e){let e=(0,h.buildAgentCallTree)(t);return e?I(e):[]}return J(e,t)??[]}(v.framework,q):Array.isArray(v.invokedSkills)?v.invokedSkills:[],l=v.skill??null,r=v.skill_version??null,l&&"number"==typeof r?n.map(e=>e.name===l&&null==e.version?{...e,version:r}:e):n),i=await N(t,v.user);await T(c,i,{user:v.user,primaryName:v.skill??null}),await a.prismaRaw.execution.update({where:{id:c},data:{skills:i.length?JSON.stringify(i.map(e=>e.name)):null,invokedSkills:i.length?JSON.stringify(i):null}})}catch(e){console.warn(`[Data-Service] root ExecutionSkill persist failed for ${c}:`,e)}if(("opencode"===v.framework||"hermes"===v.framework||"langfuse-langgraph"===v.framework)&&v.task_id&&Array.isArray(q))try{await ei({parentExecutionId:c,parentTaskId:v.task_id,parentFramework:v.framework,parentUser:v.user,interactions:q})}catch(e){console.warn(`[Data-Service] deriveSubagentExecutions failed for parent=${c}:`,e)}let H=v.trace_completed_at?new Date(v.trace_completed_at):null,K=null!=H&&Number.isFinite(H.getTime()),G=!K&&"hermes"===v.framework&&"string"==typeof v.final_result&&v.final_result.trim()?function(e){if(!Array.isArray(e))return null;let t=e.flatMap(e=>{let t=e&&"object"==typeof e?e:{},n=t.timeInfo&&"object"==typeof t.timeInfo?t.timeInfo:{},i=t.timing&&"object"==typeof t.timing?t.timing:{};return[O(n.completed),O(n.created),O(i.completed_at),O(i.started_at),O(t.completedAt),O(t.completed_at),O(t.timestamp),O(t.createdAt)]}).filter(e=>null!=e&&Number.isFinite(e)&&e>0).reduce((e,t)=>Math.max(e,t),0);return t>0?new Date(t):null}(q):null,Q=K?H:G;!K&&G&&(v.trace_completed_at=G);let Z=null!=Q&&Number.isFinite(Q.getTime());return v.task_id&&q&&(await a.db.upsertSession(v.task_id,{taskId:v.task_id,query:v.query,label:v.label,user:v.user,model:v.model,interactions:JSON.stringify(q),...Z?{endTime:Q}:{}},{query:v.query,label:v.label,user:v.user,model:v.model,interactions:JSON.stringify(q)}),Z&&await a.db.updateSession(v.task_id,{endTime:Q}),"opencode"===v.framework&&!0===v.opencode_cli_completed&&await a.db.updateSession(v.task_id,{endTime:new Date})),{success:!0,record:v}}function en(e){if(null==e)return"";if("string"==typeof e){let t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return en(JSON.parse(t))}catch{}return e}return Array.isArray(e)?e.map(e=>en(e?.text??e?.content??e)).filter(Boolean).join("\n"):"object"==typeof e?en(e.text??e.content??""):String(e)}async function ei(e){let{parentExecutionId:t,parentTaskId:n,parentFramework:i,parentUser:l,interactions:r}=e;if(!Array.isArray(r)||0===r.length)return;let s=(0,h.buildAgentCallTree)(r);if(!s)return void await el(t,new Set);let o=[],u=new Set;if((0,h.walkTree)(s,e=>{if(!e||0===e.depth)return;let t="string"==typeof e.sessionId?e.sessionId.trim():"";!t||t===n||u.has(t)||(u.add(t),o.push({node:e,sessionId:t,parentNodeId:e.parentId}))}),0===o.length)return;o.sort((e,t)=>e.node.depth-t.node.depth);let c=new Map;c.set(s.id,t);let d=new Set;for(let e of o){let{node:n,sessionId:s,parentNodeId:o}=e,u=c.get(o)??t,m=`${u}__sub__${s}`;c.set(n.id,m),d.add(m);let k=new Set,f=[],g=e=>{for(let t of e.interactionIndices||[])k.add(t);for(let t of(Array.isArray(e.systemPrompts)&&e.systemPrompts.length>0&&e.sessionId&&f.push({sessionId:e.sessionId,entries:e.systemPrompts}),e.children||[]))g(t)};g(n);let _=[...k].sort((e,t)=>e-t).map(e=>r[e]).filter(Boolean),y=[];for(let e of f)for(let t of e.entries)y.push({role:"system",content:t.text,subagent_session_id:e.sessionId,system_prompt_sha256:t.sha256,system_prompt_length:t.length,system_prompt_modelID:t.modelID,system_prompt_providerID:t.providerID});let h=[...y,..._],v=function(e,t){let n=(e.interactionIndices||[]).map(e=>t[e]).filter(Boolean),i=n.map(e=>en(e?.content).trim()).filter(Boolean),l=i[0]||e.agentName||e.sessionId,r=(e.events||[]).filter(e=>"llm"===e.kind),s=r.filter(e=>{let t=e.usage;return!!t&&((t.total||0)>0||(t.input||0)>0||(t.output||0)>0||(t.reasoning||0)>0)}),o=e.interactionIndices?.[0],a=r.filter(e=>e.interactionIndex!==o&&(!!e.summary?.trim()||(e.interaction?.tool_calls?.length||0)>0)).length,u=(e.events||[]).filter(e=>"tool"===e.kind||"skill"===e.kind||"task"===e.kind),c=n.map(e=>e?.model??e?.modelID).find(e=>"string"==typeof e&&e.trim())||null;return{query:l,finalResult:i.length>1?i[i.length-1]:null,model:c,tokens:e.stats.totalTokens,inputTokens:e.stats.inputTokens,outputTokens:e.stats.outputTokens,reasoningTokens:e.stats.reasoningTokens,cacheReadInputTokens:e.stats.cacheReadTokens,cacheCreationInputTokens:e.stats.cacheWriteTokens,latency:e.stats.durationMs??null,llmCallCount:s.length||a,toolCallCount:u.length,toolCallErrorCount:u.filter(function e(t){let n=Array.isArray(t?.interaction?.tool_calls)?t.interaction.tool_calls:[],i=t?._toolCallId,l=n.find(e=>!i||e?.id===i),r=String(l?.state||"").toLowerCase();if("error"===r||"failed"===r)return!0;let s=t?.output??l?.output??l?.result;if(s&&"object"==typeof s){let e=String(s.status||s.state||"").toLowerCase();return"error"===e||"failed"===e||!!s.error}if("string"==typeof s&&s.trim().startsWith("{"))try{return e({...t,output:JSON.parse(s),interaction:void 0})}catch{}return!1}).length}}(n,r),w=((function(e,t){let n=String(t||"").trim();if(!n)return null;for(let t of e)for(let e of Array.isArray(t?.tool_calls)?t.tool_calls:[]){let t=e?.function?.name??e?.name;if("task"!==t)continue;let i=function(e){let t=e?.function?.arguments??e?.arguments;if(t&&"object"==typeof t&&!Array.isArray(t))return t;if("string"!=typeof t)return{};try{let e=JSON.parse(t);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch{return{}}}(e);if(String(i.subagent_session_id??i.session_id??i.agent_session_id??"").trim()!==n)continue;let l=en(i.description??i.task_description??i.prompt??i.subagent_type).trim();if(l)return l}return null})(r,s)||v.query).slice(0,500),b=I(n);if(er)try{b=await N(b,l)}catch(e){console.warn(`[Data-Service] sub skill version snapshot failed sub=${s}:`,e)}let S=n.startedAt?new Date(n.startedAt):new Date,x=n.endedAt?new Date(n.endedAt):null,A={taskId:s,framework:i,timestamp:S,agentName:n.agentName??null,user:l??null,query:w,finalResult:v.finalResult,model:v.model,tokens:v.tokens,inputTokens:v.inputTokens,outputTokens:v.outputTokens,reasoningTokens:v.reasoningTokens,cacheReadInputTokens:v.cacheReadInputTokens,cacheCreationInputTokens:v.cacheCreationInputTokens,latency:v.latency,llmCallCount:v.llmCallCount,toolCallCount:v.toolCallCount,toolCallErrorCount:v.toolCallErrorCount,skills:b.length?JSON.stringify(b.map(e=>e.name)):null,invokedSkills:b.length?JSON.stringify(b):null,parentExecutionId:u,rootExecutionId:t,agentSessionId:s,subagentType:n.subagentType??null,subagentName:n.agentName??null,isSubagent:!0,observedAgents:JSON.stringify((0,p.extractObservedAgentNames)(h))};try{await a.db.upsertExecution({where:{id:m},create:{id:m,...A},update:{...A}})}catch(e){console.warn(`[Data-Service] upsertExecution(sub) failed sub=${s}:`,e);continue}if(er)try{await T(m,b,{user:l??null})}catch(e){console.warn(`[Data-Service] sub ExecutionSkill persist failed sub=${s}:`,e)}try{await a.db.upsertSession(s,{taskId:s,label:n.agentName??null,user:l??null,query:w,interactions:JSON.stringify(h),...x?{endTime:x}:{}},{label:n.agentName??null,user:l??null,query:w,interactions:JSON.stringify(h),...x?{endTime:x}:{}})}catch(e){console.warn(`[Data-Service] upsertSession(sub) failed sub=${s}:`,e)}}await el(t,d)}async function el(e,t){try{for(let n of(await a.db.findExecutions({rootExecutionId:e,isSubagent:!0},{timestamp:"desc"})))if(!(!n?.id||t.has(n.id)))try{await a.db.deleteExecution(n.id)}catch(e){console.warn(`[Data-Service] sweepStaleSubagents: deleteExecution(${n.id}) failed:`,e)}}catch(t){console.warn(`[Data-Service] sweepStaleSubagents query failed root=${e}:`,t)}}e.s(["deleteExecutionsByTaskId",()=>X,"extractInvokedSkillsFromSessionInteractions",()=>J,"findBestMatchConfig",()=>R,"getDefaultIngestUser",()=>ee,"listObservedAgentNames",()=>P,"listObservedFieldValues",()=>U,"listObservedSkills",()=>W,"listObservedTraceIds",()=>B,"readConfig",()=>Y,"readRecordPage",()=>Z,"readRecords",()=>Q,"reattributeServiceTraceOwner",()=>E,"saveExecutionRecord",()=>et,"selectKeepIdsByTaskId",()=>H]),n()}catch(e){n(e)}},!1)];
1
+ module.exports=[363884,e=>{"use strict";var t=e.i(68683);function n(e){if(!e)return null;try{return(0,t.normalizeEndpoint)(e)}catch{return null}}e.s(["normalizeEndpointUrl",()=>n])},711340,e=>{"use strict";function t(e){let t="string"==typeof e.incomingLabel?e.incomingLabel.trim():void 0;if(void 0!==t){if(!t)return;return t}let n="string"==typeof e.existingLabel?e.existingLabel.trim():"",i="string"==typeof e.skill?e.skill.trim():"",l=e.skillVersion??null;if(n&&!(n&&"without-skill"===n))return n;if(i){let e="number"==typeof l&&Number.isFinite(l)?l:0;return`${i}-v${e}`}return"without-skill"}e.s(["chooseExecutionLabel",()=>t])},160570,e=>{"use strict";function t(e){let t="string"==typeof e?e.trim():"";if(!t||"without-skill"===t)return null;let n=t.match(/^(.+)-v(\d+)$/);if(!n)return null;let i=(n[1]||"").trim(),l=Number(n[2]);return i&&Number.isFinite(l)&&!(l<0)?{skill:i,skill_version:l,skills:[i],invokedSkills:[{name:i,version:l}]}:null}e.s(["parseLabelSkillVersionBinding",()=>t])},524913,e=>{"use strict";function t(e){if(null==e)return null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let n=Date.parse(t);return Number.isFinite(n)?n:null}return null}function n(e){let n=e.id??e.message_id??e.messageID;if("string"==typeof n&&n.trim())return`id:${n.trim()}`;let i="string"==typeof e.role?e.role:"unknown",l=t(e.timestamp)??t(e.timeInfo?.created)??t(e.timeInfo?.completed)??0,r="string"==typeof e.subagent_session_id?e.subagent_session_id:"";return`k:${r}:${l}:${i}`}function i(e,i){let l=Array.isArray(e)?e:[],r=Array.isArray(i)?i:[],s=new Map,o=new Map,a=0;for(let e of l){if(!e)continue;let t=n(e);s.has(t)||(s.set(t,e),o.set(t,a++))}for(let e of r){if(!e)continue;let t=n(e),i=s.get(t);i?s.set(t,function(e,t){let n={...e,...t},i="string"==typeof e.content?e.content:"",l="string"==typeof t.content?t.content:"";return i&&!l?n.content=i:i&&l&&l.length<i.length&&(n.content=i),e.subagent_name&&!t.subagent_name&&(n.subagent_name=e.subagent_name),e.agent&&!t.agent&&(n.agent=e.agent),e.subagent_session_id&&!t.subagent_session_id&&(n.subagent_session_id=e.subagent_session_id),n.tool_calls=function(e,t){let n=Array.isArray(e)?e:[],i=Array.isArray(t)?t:[];if(0===n.length)return i;if(0===i.length)return n;let l=new Set,r=[];for(let e of[...n,...i]){let t=function(e){let t=e?.id??e?.callID??e?.callId??e?.call_id;if("string"==typeof t&&t.trim())return`id:${t.trim()}`;let n=e?.function?.name??e?.name??"",i=e?.function?.arguments??e?.arguments??"";return`sig:${n}:${function(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return(t>>>0).toString(16)}(function(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}(i))}`}(e);l.has(t)||(l.add(t),r.push(e))}return r}(e.tool_calls,t.tool_calls),e.usage&&!t.usage&&(n.usage=e.usage),e.timeInfo&&!t.timeInfo&&(n.timeInfo=e.timeInfo),n}(i,e)):(s.set(t,e),o.set(t,a++))}let u=Array.from(s.entries()).map(([e,n])=>({k:e,v:n,ts:t(n.timestamp)??t(n.timeInfo?.created)??t(n.timeInfo?.completed)??0,order:o.get(e)??0}));return u.sort((e,t)=>e.ts-t.ts||e.order-t.order),u.map(e=>e.v)}e.s(["mergeSessionInteractionsMonotonic",()=>i])},365759,e=>{"use strict";var t=e.i(997215),n=e.i(738282);let i={descriptor:{id:"claude",aliases:["claudecode"],label:"Claude Code",onboard:"watcher",platform:"claude"},normalizeForStorage:t.normalizeClaudeCodeInteractionsForStorage,extractSkills:n.extractSkillsWithVersionsFromClaudeSession},l={descriptor:{id:"hermes",label:"Hermes",onboard:"plugin",platform:"hermes"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromHermesSession},r={descriptor:{id:"jiuwenswarm",aliases:["jiuwen","openjiuwen"],label:"JiuwenSwarm",onboard:"env",platform:"jiuwenswarm"},capabilities:{subagentTree:!0,skills:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromJiuwenSession},s={descriptor:{id:"langfuse-langgraph",label:"Langfuse-Langgraph",onboard:"env",platform:"langfuse"},capabilities:{skills:!0,subagentTree:!0},sessionMergeStrategy:"snapshot-replace",extractSkills:n.extractSkillsWithVersionsFromOpencodeSession},o={descriptor:{id:"openclaw",label:"OpenClaw",onboard:"plugin",platform:"openclaw"},extractSkills:n.extractSkillsWithVersionsFromOpenClawSession},a={descriptor:{id:"opencode",label:"OpenCode",onboard:"plugin",platform:"opencode"},extractSkills:n.extractSkillsWithVersionsFromOpencodeSession},u={descriptor:{id:"unknown",label:"Unknown",onboard:"env"}},c=new Map;for(let e of[a,i,o,l,r,s])for(let t of(c.set(e.descriptor.id.toLowerCase(),e),e.descriptor.aliases??[]))c.set(t.toLowerCase(),e);function d(e){return String(e??"").trim().toLowerCase()}function m(e){return c.get(d(e))??u}function k(e){let t=d(e);return c.get(t)?.descriptor.id??t}e.s(["getAdapter",()=>m,"resolveFrameworkId",()=>k],365759)},543050,e=>{"use strict";let t={string:["=","contains","does not contain","starts with","ends with"],number:["=",">","<",">=","<="],datetime:[">","<",">=","<="],stringOptions:["any of","none of"],arrayOptions:["any of","none of","all of"],boolean:["="]},n=["is null","is not null"],i=new Map([{column:"query",type:"string",label:"查询内容",description:"用户输入 / 问题",syncMode:"textSearch",nullable:!0},{column:"finalResult",type:"string",label:"输出内容",description:"trace 最终输出",syncMode:"textSearch",nullable:!0},{column:"agentName",type:"string",label:"Agent 名",description:"主 Agent 名称",syncMode:"textSearch",nullable:!0},{column:"subagentName",type:"string",label:"子 Agent 名",description:"子 Agent 显示名",syncMode:"textSearch",nullable:!0},{column:"model",type:"string",label:"模型",description:"LLM 模型名",syncMode:"textSearch",nullable:!0},{column:"label",type:"string",label:"标注",description:"人工标注",syncMode:"textSearch",nullable:!0},{column:"framework",type:"stringOptions",label:"框架",description:"采集框架 / 平台",syncMode:"exactOption",nullable:!0},{column:"subagentType",type:"stringOptions",label:"子 Agent 类型",description:"kuafu / general …",syncMode:"exactOption",nullable:!0},{column:"latency",type:"number",label:"耗时",description:"执行时长(秒)",unit:"s",nullable:!0},{column:"tokens",type:"number",label:"Tokens",description:"总 token 数",nullable:!0},{column:"inputTokens",type:"number",label:"输入 Tokens",description:"输入 token 数",nullable:!0},{column:"outputTokens",type:"number",label:"输出 Tokens",description:"输出 token 数",nullable:!0},{column:"cost",type:"number",label:"成本",description:"估算成本($)",unit:"$",nullable:!0},{column:"toolCallCount",type:"number",label:"工具调用数",description:"工具调用次数",nullable:!0},{column:"toolCallErrorCount",type:"number",label:"工具错误数",description:"工具调用失败次数",nullable:!0},{column:"answerScore",type:"number",label:"答案分",description:"答案得分(0–1)",nullable:!0},{column:"skillScore",type:"number",label:"Skill 分",description:"Skill 得分(0–1)",nullable:!0},{column:"skillTriggerRate",type:"number",label:"Skill 触发率",description:"触发率(0–1)",nullable:!0},{column:"timestamp",type:"datetime",label:"时间",description:"trace 起始时间"},{column:"isAnswerCorrect",type:"boolean",label:"答案正确",description:"评测:答案是否正确",nullable:!0},{column:"isSubagent",type:"boolean",label:"是子 Agent",description:"是否子 Agent 执行"},{column:"agents",type:"arrayOptions",label:"Agent(多选)",description:"trace 涉及的 agent",field:"observedAgents",source:"observedAgents",syncMode:"arrayOption",nullable:!0},{column:"skill",type:"arrayOptions",label:"Skill",description:"调用的 skill",source:"executionSkill",syncMode:"arrayOption"},{column:"status",type:"stringOptions",label:"状态",description:"running / success / failed",source:"computed",syncMode:"exactOption"},{column:"ownership",type:"stringOptions",label:"归属",description:"user / system",source:"computed",syncMode:"exactOption"}].map(e=>[e.column,e]));function l(e){return i.get(e)}let r=Symbol("invalid"),s={"=":"equals",">":"gt","<":"lt",">=":"gte","<=":"lte"};function o(e,i=l){let d=[],m=[],k=[];for(let l of e){let e=i(l.column);if(!e){k.push({clause:l,reason:`unknown column: ${l.column}`});continue}if(!function(e,i){let l;return(l=t[e.type],e.nullable?[...l,...n]:l).includes(i)}(e,l.operator)){k.push({clause:l,reason:`operator "${l.operator}" not allowed on ${e.type} column "${e.column}"`});continue}let o=e.source??"execution";if("executionSkill"===o||"computed"===o){m.push(l);continue}let f="observedAgents"===o?function(e,t){let n=a(e),i=t.operator;if("is null"===i)return{[n]:null};if("is not null"===i)return{[n]:{not:null}};let l=c(t.value);if(null===l||0===l.length)return r;let s=e=>({[n]:{contains:JSON.stringify(e)}});return"any of"===i?{OR:l.map(s)}:"all of"===i?{AND:l.map(s)}:"none of"===i?u({NOT:{OR:l.map(s)}},e):r}(e,l):function(e,t){var n,i;let l=a(e),o=t.operator;if("is null"===o)return{[l]:null};if("is not null"===o)return{[l]:{not:null}};switch(e.type){case"string":{let i="string"==typeof(n=t.value)?n:"number"==typeof n||"boolean"==typeof n?String(n):null;if(null===i)return r;switch(o){case"=":return{[l]:i};case"contains":return{[l]:{contains:i}};case"does not contain":return u({NOT:{[l]:{contains:i}}},e);case"starts with":return{[l]:{startsWith:i}};case"ends with":return{[l]:{endsWith:i}};default:return r}}case"number":{let e=function(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e&&""!==e.trim()){let t=Number(e);return Number.isFinite(t)?t:null}return null}(t.value),n=s[o];if(null===e||!n)return r;return{[l]:{[n]:e}}}case"datetime":{let e=function(e){if("number"==typeof e||"string"==typeof e&&""!==e.trim()){let t=new Date(e);return Number.isNaN(t.getTime())?null:t}return null}(t.value),n=s[o];if(null===e||!n)return r;return{[l]:{[n]:e}}}case"boolean":{let e="boolean"==typeof(i=t.value)?i:"true"===i||"false"!==i&&null;if(null===e)return r;return{[l]:{equals:e}}}case"stringOptions":{let n=c(t.value);if(null===n||0===n.length)return r;if("any of"===o)return{[l]:{in:n}};if("none of"===o)return u({[l]:{notIn:n}},e);return r}default:return r}}(e,l);if(f===r){k.push({clause:l,reason:`invalid value for ${e.type} operator "${l.operator}"`});continue}null!==f&&d.push(f)}return{where:d.length?{AND:d}:{},deferred:m,errors:k}}function a(e){return e.field??e.column}function u(e,t){return t.nullable?{OR:[e,{[a(t)]:null}]}:e}function c(e){if(Array.isArray(e)){let t=e.map(e=>"string"==typeof e||"number"==typeof e?String(e):null);return t.every(e=>null!==e)?t:null}return"string"==typeof e||"number"==typeof e?[String(e)]:null}e.s(["buildPrismaWhere",()=>o],543050)},948594,e=>e.a(async(t,n)=>{try{var i=e.i(522734),l=e.i(814747),r=e.i(547499),s=e.i(307692),o=e.i(363884),a=e.i(854763),u=e.i(137165),c=e.i(384660),d=e.i(262197),m=e.i(274149),k=e.i(68987),f=e.i(243080),p=e.i(711340),g=e.i(160570),_=e.i(8129),y=e.i(524913),h=e.i(286372),v=e.i(837926),w=e.i(119586),b=e.i(365759),S=e.i(738282),x=e.i(543050),A=e.i(75539),I=t([s,a,m,_,A]);[s,a,m,_,A]=I.then?(await I)():I;let es=!process.env.DB_HOST,eo=/^[a-zA-Z0-9_\-\.]+$/;function T(e){let t=new Set,n=[];for(let i of e.events||[]){if("skill"!==i.kind)continue;let e=i.args&&"object"==typeof i.args?i.args:{},l=e.name??e.skill_name??e.skillName??e.skill;if(null==l||!String(l).trim())continue;let r=String(l).trim().replace(/^['"]+|['"]+$/g,"");if(!eo.test(r)||t.has(r))continue;t.add(r);let s=null!=e.version?Number(e.version):null;n.push({name:r,version:null===s||isNaN(s)?null:s})}return n}async function N(e,t){let n=Array.from(new Set(e.filter(e=>null==e.version).map(e=>e.name))),i=new Map;if(n.length>0)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:n},...t?{OR:[{user:t},{user:null}]}:{}},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&i.set(e.name,e.activeVersion)}catch(e){console.warn("[Data-Service] snapshotSkillVersions lookup failed:",e)}return e.map(e=>null!=e.version?e:{name:e.name,version:i.get(e.name)??null})}async function C(e,t,n={}){if(es&&e)try{if(await a.prismaRaw.executionSkill.deleteMany({where:{executionId:e}}),!t.length)return;let i=new Set,l=[];for(let r of t){if(!r?.name)continue;let t=`${r.name}@@${r.version??""}`;i.has(t)||(i.add(t),l.push({executionId:e,skillName:r.name,skillVersion:r.version??null,isPrimary:null!=n.primaryName&&r.name===n.primaryName,user:n.user??null}))}l.length&&await a.prismaRaw.executionSkill.createMany({data:l})}catch(t){console.warn(`[Data-Service] persistExecutionSkills failed for ${e}:`,t)}}let ea=new Set([...(process.env.TRACE_SERVICE_OWNERS||"admin,anonymous").split(",").map(e=>e.trim()).filter(Boolean),"","debug-user","anonymous"]);function E(e){return ea.has((e||"").trim())}async function O(e,t){let n=(e||"").trim(),i=(t||"").trim();if(!n||!i||E(i))return!1;let l=await a.prismaRaw.execution.findUnique({where:{id:n},select:{id:!0,taskId:!0,user:!0}});if(l||(l=await a.prismaRaw.execution.findFirst({where:{taskId:n},select:{id:!0,taskId:!0,user:!0}})),!l)return!1;let r=(l.user||"").trim();if(r===i||!E(r))return!1;let s=[...ea].filter(Boolean);await a.prismaRaw.execution.update({where:{id:l.id},data:{user:i}}),await a.prismaRaw.execution.updateMany({where:{rootExecutionId:l.id,OR:[{user:{in:s}},{user:null}]},data:{user:i}});try{await a.prismaRaw.executionSkill.updateMany({where:{executionId:l.id},data:{user:i}})}catch{}if(l.taskId)try{await a.prismaRaw.session.updateMany({where:{taskId:l.taskId},data:{user:i}})}catch{}return!0}function M(e){if(null==e)return null;if(e instanceof Date)return Number.isFinite(e.getTime())?e.getTime():null;if("number"==typeof e&&Number.isFinite(e))return e;if("string"!=typeof e)return null;let t=e.trim();if(!t)return null;if(/^\d+$/.test(t)){let e=Number(t);return Number.isFinite(e)?e:null}let n=Date.parse(t);return Number.isFinite(n)?n:null}let eu="未找到匹配的效果评测配置";function R(e){let t=e.trim(),n=[['"','"'],["'","'"],["“","”"],["‘","’"],["`","`"],["《","》"],["(",")"],["(",")"],["【","】"],["[","]"],["{","}"],["<",">"]];for(let e=0;e<6;e++){let e=t;for(let[e,i]of(t=t.trim(),n))t.startsWith(e)&&t.endsWith(i)&&t.length>=e.length+i.length+1&&(t=t.slice(e.length,-i.length));if(t===e)break}return t=(t=(t=t.replace(/[\s"'“”‘’`。.]/g,"")).replace(/^[\s.,,。!?!?;;::、·…]+|[\s.,,。!?!?;;::、·…]+$/g,"")).replace(/\s+/g," ").trim()}function D(e,t,n="any"){if(!t)return;let i=R(t);if(!i)return;let l=e.filter(e=>e.query&&e.query.trim()).filter(e=>{let t=R(e.query||"");return!!t&&i.endsWith(t)}).filter(e=>"any"===n||(0,c.configSupportsDatasetType)(e.dataset_type,n));if(0!==l.length)return l.reduce((e,t)=>{let i=R(e.query||"").length,l=R(t.query||"").length;if(l!==i)return l>i?t:e;let r=(0,c.getDatasetTypePriority)(e.dataset_type,n);return(0,c.getDatasetTypePriority)(t.dataset_type,n)>r?t:e})}async function V(e,t,n){let i=(0,d.normalizeConfigQuery)(t);if(!i)return;let l=e.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,"routing")),r=[];for(let e of l){let t=function(e){let t=Array.isArray(e.routing_anchors)?e.routing_anchors.filter(e=>"string"==typeof e&&e.trim()):[];return e.routing_intent?.trim()&&t.length>0?{intent:e.routing_intent.trim(),anchors:t}:null}(e);if(!t)continue;let n=(0,m.matchQueryToStoredRoutingSignature)(i,t);(0!==n.matchedAnchors.length||n.intentMatched)&&r.push({config:e,signature:t,matchedAnchors:n.matchedAnchors,anchorCoverage:n.anchorCoverage,intentMatched:n.intentMatched})}if(0===r.length)return;r.sort((e,t)=>{if(t.matchedAnchors.length!==e.matchedAnchors.length)return t.matchedAnchors.length-e.matchedAnchors.length;if(t.anchorCoverage!==e.anchorCoverage)return t.anchorCoverage-e.anchorCoverage;if(Number(t.intentMatched)!==Number(e.intentMatched))return Number(t.intentMatched)-Number(e.intentMatched);let n=(0,c.getDatasetTypePriority)(e.config.dataset_type,"routing"),i=(0,c.getDatasetTypePriority)(t.config.dataset_type,"routing");if(i!==n)return i-n;let l=e.signature.anchors.join("").length;return t.signature.anchors.join("").length-l});let s=r[0];return s.config.routing_intent=s.signature.intent,s.config.routing_anchors=s.signature.anchors,s.config}function $(e,t){let n=function(e){let t=(0,d.normalizeConfigSkillName)(e.skill);if(t)return{skill:t,version:e.skill_version??null};let n=J(e),i=Array.from(new Map(n.filter(e=>e.name?.trim()).map(e=>[`${e.name.trim()}::${e.version??"any"}`,e])).values());if(1===i.length)return{skill:i[0].name.trim(),version:i[0].version??null}}(t);if(!n)return;let i=(0,d.normalizeConfigQuery)(t.query),l=e.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,"outcome")).filter(e=>(0,d.normalizeConfigSkillName)(e.skill)===n.skill).filter(e=>{let t=e.skillVersion??null;return null===t||t===n.version}).filter(e=>{let t=(0,d.normalizeConfigQuery)(e.query);return!t||t===i});if(0!==l.length)return l.reduce((e,t)=>{let l=(e.skillVersion??null)!==null&&e.skillVersion===n.version,r=(t.skillVersion??null)!==null&&t.skillVersion===n.version;if(l!==r)return r?t:e;let s=(0,d.normalizeConfigQuery)(e.query)===i,o=(0,d.normalizeConfigQuery)(t.query)===i;if(s!==o)return o?t:e;let a=!(0,d.normalizeConfigQuery)(e.query),u=!(0,d.normalizeConfigQuery)(t.query);if(a!==u)return u?t:e;let m=(0,c.getDatasetTypePriority)(e.dataset_type,"outcome");return(0,c.getDatasetTypePriority)(t.dataset_type,"outcome")>m?t:e})}function q(e){if(!e)return[];let t=(0,c.normalizeExpectedSkills)(e.expectedSkills);return t.length>0?t:e.skill?.trim()?[{skill:e.skill.trim(),version:e.skillVersion??null}]:[]}function J(e){return Array.isArray(e.invokedSkills)&&e.invokedSkills.length>0?e.invokedSkills.filter(e=>e?.name?.trim()).map(e=>({name:e.name.trim(),version:e.version??null})):Array.isArray(e.skills)&&e.skills.length>0?e.skills.filter(e=>"string"==typeof e&&e.trim()).map(e=>({name:e.trim(),version:null})):[]}function F(e,t){if(!Array.isArray(t))return null;let n=(0,S.normalizeInteractions)(t);return(0,b.getAdapter)(e).extractSkills?.(n)??null}function j(e,t,n){let i=new Map,l=(e,t)=>{let n=e?.trim();if(!n)return;let l=i.get(n)||{skill:n,expected_version:null,invoked_version:null,primary_version:null,is_expected:!1,is_invoked:!1,is_primary:!1,is_outcome_anchor:!1};i.set(n,{...l,...t,expected_version:void 0!==t.expected_version?t.expected_version:l.expected_version,invoked_version:void 0!==t.invoked_version?t.invoked_version:l.invoked_version,primary_version:void 0!==t.primary_version?t.primary_version:l.primary_version,is_expected:t.is_expected??l.is_expected,is_invoked:t.is_invoked??l.is_invoked,is_primary:t.is_primary??l.is_primary,is_outcome_anchor:t.is_outcome_anchor??l.is_outcome_anchor})};for(let n of(l(e.skill,{is_primary:!0,primary_version:e.skill_version??null}),q(t)))l(n.skill,{is_expected:!0,expected_version:n.version??null});for(let t of J(e))l(t.name,{is_invoked:!0,invoked_version:t.version??null});return n?.skill?.trim()&&l(n.skill,{is_outcome_anchor:!0}),Array.from(i.values()).sort((e,t)=>{let n=4*Number(e.is_primary)+2*Number(e.is_invoked)+Number(e.is_expected),i=4*Number(t.is_primary)+2*Number(t.is_invoked)+Number(t.is_expected);return n!==i?i-n:e.skill.localeCompare(t.skill)})}async function L(e,t){if(!e||Array.isArray(e.key_actions)&&e.key_actions.length>0)return;let n=function(e){let t=new Map,n=(e,n)=>{let i=(0,d.normalizeConfigSkillName)(e);if(!i)return;let l=n??null;t.set(`${i}::${l??"any"}`,{skill:i,version:l})};for(let t of(n(e.skill,e.skillVersion??null),(0,c.normalizeExpectedSkills)(e.expectedSkills)))n(t.skill,t.version??null);return Array.from(t.values())}(e);if(0===n.length)return;let i=[];for(let e of n){let n=await a.db.findSkill(e.skill,t||null);if(!n)continue;let l=e.version??n.activeVersion??n.versions?.[0]?.version??null;if(null==l)continue;let r=await a.db.findParsedFlow(n.id,l,t||null);if(!r?.flowJson)continue;let s=JSON.parse(r.flowJson),o=(0,_.extractKeyActionsFromFlow)(s).map(t=>({...t,skillSource:t.skillSource||e.skill}));o.length>0&&i.push({name:e.skill,actions:o})}if(0===i.length)return;let l=1===i.length?i[0].actions:(0,_.mergeKeyActionsFromMultipleSkills)(i);e.key_actions=l.map(e=>({content:e.content,weight:e.weight,..."required"!==e.controlFlowType?{controlFlowType:e.controlFlowType}:{},...e.condition?{condition:e.condition}:{},...e.branchLabel?{branchLabel:e.branchLabel}:{},...e.loopCondition?{loopCondition:e.loopCondition}:{},...void 0!==e.expectedMinCount?{expectedMinCount:e.expectedMinCount}:{},...void 0!==e.expectedMaxCount?{expectedMaxCount:e.expectedMaxCount}:{},...e.groupId?{groupId:e.groupId}:{}})),e.extractedKeyActions=l;try{await a.db.updateConfig(e.id,{keyActions:JSON.stringify(e.key_actions),extractedKeyActions:JSON.stringify(l)}),console.log(`[AutoExtract] Auto-filled key_actions for config ${e.id} from ${n.map(e=>e.skill).join(", ")}`)}catch(e){console.error("[AutoExtract] Error updating config with extracted key_actions:",e)}}async function z(e,t,n){let i=J(e),l=j(e,t);if(!t)return{status:"missing",expected_skills:[],invoked_skills:i,matched_skills:[],matched_anchors:[],expected_count:0,matched_count:0,is_correct:!1,trigger_rate:null,skill_breakdown:l.map(e=>({skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:!1,status:e.is_invoked?"unexpected":"not_applicable",expected_version:e.expected_version,invoked_version:e.invoked_version}))};let r=q(t),s=[],o=0,u=new Map,m=r.filter(e=>null!==e.version&&!i.some(t=>t.name===e.skill&&null!==t.version)).map(e=>e.skill);if(m.length>0)try{for(let e of(await a.db.findSkills({name:{in:m},user:n||null})))u.set(e.name,e)}catch(e){console.error("[RoutingEvaluation] Error fetching skills for version check:",e)}for(let e of r){let t=i.find(t=>t.name===e.skill);if(!t)continue;let n=!1;if(null===e.version)n=!0;else if(null!==t.version)n=t.version===e.version;else{let t=u.get(e.skill);n=(t?t.activeVersion||0:null)===e.version}n&&(o+=1,s.push({skill:e.skill,expected_version:e.version,invoked_version:t.version??null}))}let k=l.map(e=>{let t=s.some(t=>t.skill===e.skill),n="not_applicable";return e.is_expected?n=t?"matched":"missed":e.is_invoked&&(n="unexpected"),{skill:e.skill,expected:e.is_expected,invoked:e.is_invoked,matched:t,status:n,expected_version:e.expected_version,invoked_version:e.invoked_version}});return{status:"available",matched_config_id:t.id,matched_query:(0,d.normalizeConfigQuery)(t.query)||void 0,matched_intent:t.routing_intent||void 0,matched_anchors:t.routing_anchors||[],dataset_type:(0,c.normalizeConfigDatasetType)(t.dataset_type),expected_skills:r,invoked_skills:i,matched_skills:s,expected_count:r.length,matched_count:o,is_correct:o>0,trigger_rate:r.length>0?o/r.length:null,skill_breakdown:k}}async function P(e,t,n){let i=e.query?await V(t,e.query,n??e.user??null):void 0,l=$(t,e),r=await z(e,i,n??e.user??null),s=e.task_id||e.upload_id||"",o=null;if(s)try{let e=await a.db.findExecutionMatch(s);e&&(o={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{o=null}return{...e,routing_evaluation:r,outcome_evaluation:function(e,t,n,i){let l=j(e,n,t),r=(e,t)=>l.map(n=>{let l="context_only";n.is_primary?l="primary":n.is_invoked?l="invoked":n.is_expected&&(l="expected_only");let r=i?.status==="available"?i.skill_breakdown.find(e=>e.skill===n.skill)?.status||"not_applicable":"missing_dataset";return{skill:n.skill,version:n.invoked_version??n.primary_version??n.expected_version??null,role:l,is_primary:n.is_primary,is_invoked:n.is_invoked,is_expected:n.is_expected,routing_status:r,shares_execution_outcome:!0,score:e,is_correct:t}});if(!t)return{status:"missing",is_correct:null,score:null,reason:e.judgment_reason||eu,standard_answer_present:!1,root_cause_count:0,key_action_count:0,skill_breakdown:r(null,null)};let s="结果评估中..."===e.judgment_reason?"pending":"available",o="pending"===s?null:e.answer_score??null,a="pending"===s?null:e.is_answer_correct??null;return{status:s,matched_config_id:t.id,matched_query:(0,d.normalizeConfigQuery)(t.query)||void 0,matched_skill:(0,d.normalizeConfigSkillName)(t.skill)||void 0,matched_skill_version:t.skillVersion??null,dataset_type:(0,c.normalizeConfigDatasetType)(t.dataset_type),is_correct:a,score:o,reason:e.judgment_reason||void 0,standard_answer_present:!!t.standard_answer,root_cause_count:t.root_causes?.length??0,key_action_count:t.key_actions?.length??0,skill_breakdown:r(o,a)}}(e,l,i,r),execution_match:o}}let ec=(0,r.resolveAgentInsightDataPath)(),ed=l.default.join(ec,"evaluation_result.json"),em="1"===process.env.AUDIT_DATA_MUTATIONS||"true"===process.env.AUDIT_DATA_MUTATIONS;async function B(e){let t={isSubagent:!1};e&&(t.user=e);let n=await a.db.findExecutions(t,{timestamp:"desc"}),i=[],l=new Set;for(let e of n){let t=String(e?.agentName||"").trim();!t||l.has(t)||(0,v.isEvaluatorAgentName)(t)||(l.add(t),i.push(t))}return i}async function W(e){let t=new Map;if(es)try{let n={};for(let i of(e&&(n.user=e),await a.prismaRaw.executionSkill.findMany({where:n,select:{skillName:!0,skillVersion:!0},distinct:["skillName","skillVersion"]}))){if(!i.skillName)continue;let e=t.get(i.skillName)??new Set;"number"==typeof i.skillVersion&&e.add(i.skillVersion),t.set(i.skillName,e)}}catch(e){console.warn("[listObservedSkills] ExecutionSkill query failed, falling back to legacy column:",e)}if(0===t.size){let n={};for(let i of(e&&(n.user=e),await a.db.findExecutions(n,{timestamp:"desc"},{skill:!0,skillVersion:!0}))){let e=String(i?.skill||"").trim();if(!e)continue;let n=t.get(e)??new Set;"number"==typeof i.skillVersion&&n.add(i.skillVersion),t.set(e,n)}}return Array.from(t.entries()).map(([e,t])=>({name:e,versions:Array.from(t).sort((e,t)=>e-t)})).sort((e,t)=>e.name.localeCompare(t.name))}let ek=new Set(["framework","agentName","model","subagentType"]);async function U(e,t){if("skill"===e)try{return(await a.prismaRaw.executionSkill.groupBy({by:["skillName"],where:t?{user:t}:void 0,_count:{executionId:!0}})).map(e=>({value:String(e.skillName??""),count:e._count.executionId??0})).filter(e=>""!==e.value).sort((e,t)=>t.count-e.count)}catch(e){return console.warn("[listObservedFieldValues] skill groupBy failed:",e?.message),[]}if(!ek.has(e))return[];let n={isSubagent:!1,[e]:{not:null}};t&&(n.user=t);try{return(await a.prismaRaw.execution.groupBy({by:[e],where:n,_count:{_all:!0}})).map(t=>({value:String(t[e]??""),count:t._count?._all??0})).filter(e=>""!==e.value).sort((e,t)=>t.count-e.count)}catch(t){return console.warn("[listObservedFieldValues] groupBy failed:",e,t?.message),[]}}async function H(e,t){let n={isSubagent:!1};e&&(n.user=e),t&&(n.agentName=t);let i=await a.db.findExecutions(n,{timestamp:"desc"}),l=[],r=new Set;for(let e of i){let t=String(e?.taskId||"").trim();if(t){if(r.has(t))continue;r.add(t),l.push(t);continue}let n=String(e?.id||"").trim();n&&l.push(n)}return l}let ef={id:!0,taskId:!0,query:!0,framework:!0,tokens:!0,cost:!0,latency:!0,toolCallCount:!0,llmCallCount:!0,inputTokens:!0,outputTokens:!0,toolCallErrorCount:!0,cacheReadInputTokens:!0,cacheCreationInputTokens:!0,maxSingleCallTokens:!0,reasoningTokens:!0,timestamp:!0,model:!0,agentName:!0,agentId:!0,skill:!0,skills:!0,invokedSkills:!0,isSkillCorrect:!0,isAnswerCorrect:!0,answerScore:!0,skillScore:!0,judgmentReason:!0,failures:!0,skillIssues:!0,skillVersion:!0,label:!0,user:!0,skillTriggerRate:!0,parentExecutionId:!0,rootExecutionId:!0,agentSessionId:!0,subagentType:!0,subagentName:!0,isSubagent:!0,observedAgents:!0},ep=Math.max(1,Math.trunc(Number(process.env.READ_RECORDS_HYDRATE_BATCH_SIZE))||100);function K(e){let t=new Map;for(let n of e){let e=n.taskId||null;e&&(t.has(e)||t.set(e,[]),t.get(e).push(n))}let n=new Set;for(let[e,i]of t.entries()){if(1===i.length){n.add(i[0].id);continue}let t=i.find(t=>t.id===e);if(t){n.add(t.id);continue}let l=i.slice().sort((e,t)=>{let n=new Date(e.timestamp??0).getTime(),i=new Date(t.timestamp??0).getTime();return i!==n?i-n:String(e.id).localeCompare(String(t.id))});n.add(l[0].id)}return{keepIds:n,byTaskId:t}}async function G(e,t){let{user:n,light:i,attachEvaluations:l,includeTags:r,getConfigsForEvaluationUser:s}=t,o=e.map(e=>e.id),c=r?await (0,A.getTraceTagsByExecutionIds)(o,n).catch(e=>(console.warn("[readRecords] trace tag batch fetch failed:",e),new Map)):new Map,d=!i&&o.length>0?await a.db.findExecutions({id:{in:o}},void 0,{id:!0,finalResult:!0}):[];if(d.length>0){let t=new Map;for(let e of d)t.set(e.id,e.finalResult??null);for(let n of e)t.has(n.id)&&(n.finalResult=t.get(n.id))}let m=new Map,k=new Map;if(es&&o.length>0)try{for(let e of(await a.prismaRaw.executionSkill.findMany({where:{executionId:{in:o}},select:{executionId:!0,skillName:!0,skillVersion:!0,isPrimary:!0}}))){let t={name:e.skillName,version:e.skillVersion??null},n=m.get(e.executionId);n?n.push(t):m.set(e.executionId,[t]),e.isPrimary&&!k.has(e.executionId)&&k.set(e.executionId,t)}}catch(e){console.warn("[readRecords] ExecutionSkill batch fetch failed, falling back to legacy columns:",e)}let f=new Map,p=new Map;e.forEach(e=>{var t;let n,i=e.taskId||e.id,l=function(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.trim().length>0):[]}catch{return[]}}(e.observedAgents);f.set(i,l),p.set(i,(t=e.agentName,(n=(t||"").trim())||l.find(e=>e&&!(0,v.isEvaluatorAgentName)(e))||""))});let g={system:2,user:1},_=new Map,y=new Map;if(e.forEach(e=>{let t=e.taskId||e.id,n=p.get(t)||"";if(e.framework&&n){let t=`${e.framework}::${n}`;y.has(t)||y.set(t,{platform:e.framework,name:n})}}),y.size>0)try{for(let e of(await a.prisma.registeredAgent.findMany({where:{OR:Array.from(y.values())},select:{platform:!0,name:!0,agentOwnership:!0}}))){let t=`${e.platform}::${e.name}`,n=_.get(t);(!n||(g[e.agentOwnership]??0)>(g[n]??0))&&_.set(t,e.agentOwnership)}}catch{}let h=new Set;e.forEach(e=>{e.skill&&null==e.skillVersion&&!e.isSubagent&&h.add(String(e.skill))});let b=new Map;if(h.size>0&&n)try{for(let e of(await a.prisma.skill.findMany({where:{name:{in:Array.from(h)},OR:[{user:n},{user:null}]},select:{name:!0,activeVersion:!0}})))"number"==typeof e.activeVersion&&b.set(e.name,e.activeVersion)}catch(e){console.warn("[readRecords] skill version backfill lookup failed:",e)}return await Promise.all(e.map(async e=>{let t=e.model??null,r=t?(0,u.getModelPricing)(t):null,o=r?.pricing??null,d=t&&null!=e.maxSingleCallTokens?(0,u.getModelContextWindow)(t):null,g=e.taskId||e.id,y=f.get(g)||[],h=p.get(g)||"",v=m.get(e.id)??null;if(!v&&e.invokedSkills)try{let t=JSON.parse(e.invokedSkills);Array.isArray(t)&&(v=t)}catch{}let S=(!e.isSubagent&&e.skill?{name:String(e.skill),version:"number"==typeof e.skillVersion?e.skillVersion:null}:null)??k.get(e.id)??null;if(e.skill&&null==e.skillVersion&&!e.isSubagent&&b.has(String(e.skill))){let t=b.get(String(e.skill));e.skillVersion=t,a.prisma.execution.updateMany({where:{id:e.id,skillVersion:null},data:{skillVersion:t}}).catch(t=>console.warn("[readRecords] backfill skillVersion failed for",e.id,":",t))}!S&&e.skill&&(S={name:String(e.skill),version:"number"==typeof e.skillVersion?e.skillVersion:null});let x={...e,upload_id:e.id,task_id:e.taskId||void 0,query:e.query||void 0,framework:e.framework||void 0,agent:e.agentName||void 0,agentName:e.agentName||void 0,agentOwnership:(0,w.isInternalSystemAgentTrace)(h)?"system":e.framework&&h?_.get(`${e.framework}::${h}`)??"user":"user",tokens:e.tokens||void 0,cost:o&&null!=e.inputTokens&&null!=e.outputTokens?(0,u.calculateCost)(e.inputTokens,e.outputTokens,o,e.cacheReadInputTokens??void 0,e.cacheCreationInputTokens??void 0):void 0,latency:e.latency||void 0,timestamp:e.timestamp?.toISOString?.()||e.timestamp,final_result:e.finalResult||void 0,skill:e.skill||void 0,rootSkill:S,root_skill:S,skills:v?v.map(e=>e.name):e.skills?JSON.parse(e.skills):void 0,invokedSkills:v??void 0,invoked_skills:v??void 0,is_skill_correct:e.isSkillCorrect??!1,is_answer_correct:e.isAnswerCorrect??null,answer_score:void 0!==e.answerScore?e.answerScore:void 0,skill_score:void 0!==e.skillScore?e.skillScore:void 0,judgment_reason:e.judgmentReason||void 0,failures:e.failures?JSON.parse(e.failures):void 0,label:e.label??null,user:e.user??null,userTags:c.get(e.id)??[],skill_issues:e.skillIssues?JSON.parse(e.skillIssues):[],skill_version:e.skillVersion??null,model:t,tool_call_count:e.toolCallCount??void 0,llm_call_count:e.llmCallCount??void 0,input_tokens:e.inputTokens??void 0,output_tokens:e.outputTokens??void 0,tool_call_error_count:e.toolCallErrorCount??void 0,cache_read_input_tokens:e.cacheReadInputTokens??void 0,cache_creation_input_tokens:e.cacheCreationInputTokens??void 0,max_single_call_tokens:e.maxSingleCallTokens??void 0,reasoning_tokens:e.reasoningTokens??void 0,expected_skill_version:e.expectedSkillVersion??null,skill_trigger_rate:e.skillTriggerRate??null,context_window_pct:null!=e.maxSingleCallTokens&&d?Math.round(e.maxSingleCallTokens/d.contextWindow*1e3)/10:void 0,context_window_limit:d?.contextWindow,context_window_source:d?.source,cost_pricing:o?{inputTokenPrice:o.inputTokenPrice,outputTokenPrice:o.outputTokenPrice,cacheReadInputTokenPrice:o.cacheReadInputTokenPrice??o.inputTokenPrice*u.DEFAULT_CACHE_READ_RATIO,cacheCreationInputTokenPrice:o.cacheCreationInputTokenPrice??o.inputTokenPrice*u.DEFAULT_CACHE_CREATION_RATIO,source:r?.source??"default"}:null,agents:y,parent_execution_id:e.parentExecutionId??null,root_execution_id:e.rootExecutionId??null,agent_session_id:e.agentSessionId??null,subagent_type:e.subagentType??null,subagent_name:e.subagentName??null,is_subagent:e.isSubagent??!1},A=x.task_id||x.upload_id||"",I=null;if(!i&&A)try{let e=await a.db.findExecutionMatch(A);e&&(I={matchJson:e.matchJson??null,matchedAt:e.matchedAt??null,mode:e.mode??null})}catch{I=null}if(x.execution_match=I,!l)return x;let T=x.user??n??null,N=await s(T);return P(x,N,T)}))}async function Q(e,t,n){let i=n?.lightweight===!0,l=!i&&(n?.attachEvaluations??!0),r=n?.page&&Number.isFinite(n.page)?Math.max(1,Math.trunc(n.page)):1,s=n?.pageSize&&Number.isFinite(n.pageSize)?Math.max(1,Math.trunc(n.pageSize)):0,o={};e&&!t?.showAllUsers&&(o.user=e);let u=!!(t?.taskIds?.length||t?.taskId),c=(t?.clauses??[]).filter(e=>"skill"===e.column&&("any of"===e.operator||"="===e.operator)).flatMap(e=>Array.isArray(e.value)?e.value:null!=e.value?[e.value]:[]).map(e=>String(e)),d=Array.from(new Set([...t?.skill!==void 0?[String(t.skill)]:[],...c])),m=es&&d.length>0;if(t?.onlySubagents===!0?o.isSubagent=!0:t?.includeSubagents===!0||t?.parentExecutionId!==void 0||u||m||(o.isSubagent=!1),t?.parentExecutionId!==void 0&&(o.parentExecutionId=t.parentExecutionId),t?.taskIds&&t.taskIds.length>0)o.taskId={in:t.taskIds},t.framework&&(o.framework=t.framework);else if(!t?.query&&t?.taskId)o.taskId=t.taskId,t.framework&&(o.framework=t.framework);else if(t?.query){let e=t.query.trim();e&&(o.OR=[{query:{contains:e}},{finalResult:{contains:e}},{id:{contains:e}},{taskId:{contains:e}}]),t.framework&&(o.framework=t.framework)}if(m){let n={skillName:{in:d}};t?.skillVersion!==void 0&&(n.skillVersion=t.skillVersion),e&&!t?.showAllUsers&&(n.user=e);try{let e=await a.prismaRaw.executionSkill.findMany({where:n,select:{executionId:!0}});o.id={in:Array.from(new Set(e.map(e=>e.executionId)))}}catch(e){console.warn("[readRecords] ExecutionSkill filter failed, falling back to legacy skill column:",e),o.skill={in:d},t?.skillVersion!==void 0&&(o.skillVersion=t.skillVersion)}}else t?.skill!==void 0&&(o.skill=t.skill),t?.skillVersion!==void 0&&(o.skillVersion=t.skillVersion);t?.agentName!==void 0&&(o.agentName=t.agentName);let k=Array.from(new Set((t?.businessTagIds??[]).map(e=>String(e||"").trim()).filter(Boolean)));if(k.length>0){let t=await (0,A.findExecutionIdsByBusinessTags)(e,k).catch(e=>(console.warn("[readRecords] business tag filter failed:",e),[]));if(t){let e=Array.isArray(o.id?.in)?o.id.in.map(e=>String(e)):null;o.id={in:e?e.filter(e=>t.includes(e)):t}}}if(t?.clauses&&t.clauses.length>0){let{where:e,errors:n}=(0,x.buildPrismaWhere)(t.clauses);Array.isArray(e.AND)&&e.AND.length>0&&(o.AND=[...o.AND??[],...e.AND]),n.length>0&&console.warn("[readRecords] ignored invalid filter clauses:",n.map(e=>e.reason))}let f=await a.db.findExecutions(o,{timestamp:"desc"},ef),{keepIds:p,byTaskId:g}=K(f),_=f.filter(e=>!e.taskId||p.has(e.id)),y=_.length,h=s>0?_.slice((r-1)*s,(r-1)*s+s):_;for(let[e,t]of g.entries())if(!(t.length<=1)){for(let n of t)if(!p.has(n.id)){if(em){let i=t.find(e=>p.has(e.id))?.id??"unknown";console.warn(`[Data-Audit] deleteExecution (read dedup): taskId=${e} deleteId=${n.id} keepId=${i}`)}a.db.deleteExecution(n.id).catch(()=>{})}}let v=new Map,w=e=>{let t=e||"__global__";return v.has(t)||v.set(t,X(e||void 0)),v.get(t)},b=[];for(let t of function(e,t){let n=Math.max(1,Math.trunc(t)),i=[];for(let t=0;t<e.length;t+=n)i.push(e.slice(t,t+n));return i}(h,ep)){let r=await G(t,{user:e,light:i,attachEvaluations:l,includeTags:n?.includeTags===!0,getConfigsForEvaluationUser:w});b.push(...r)}return{records:b,total:y}}async function Z(e,t,n){return(await Q(e,t,n)).records}async function Y(e,t,n){return Q(e,t,n)}async function X(e,t="any"){let n={};e&&(n.OR=[{user:e},{user:null}]);let i=(await a.db.findConfigs(n)).map(e=>{let t=(t,n)=>{if(t)try{return JSON.parse(t)}catch(t){console.error(`[readConfig] Failed to parse ${n} for config ${e.id}:`,t);return}};return{id:e.id,query:e.query??null,dataset_type:(0,c.normalizeConfigDatasetType)(e.datasetType),skill:e.skill,skillVersion:e.skillVersion,routing_intent:e.routingIntent||void 0,routing_anchors:t(e.routingAnchors,"routingAnchors"),expectedSkills:(0,c.normalizeExpectedSkills)(t(e.expectedSkills,"expectedSkills")),standard_answer:e.standardAnswer||"",root_causes:t(e.rootCauses,"rootCauses"),key_actions:t(e.keyActions,"keyActions"),extractedKeyActions:t(e.extractedKeyActions,"extractedKeyActions"),parse_status:e.parseStatus||"completed"}});return"any"===t?i:i.filter(e=>(0,c.configSupportsDatasetType)(e.dataset_type,t))}async function ee(e,t){if(!e)return 0;let n={taskId:e};t&&(n.framework=t);try{let i=await a.db.deleteExecutions(n);return i>0&&em&&console.warn(`[Data-Audit] deleteExecutionsByTaskId: taskId=${e} framework=${t??"*"} deleted=${i}`),i}catch{return 0}}function et(){return(process.env.AGENT_INSIGHT_DEFAULT_INGEST_USER||"").trim()||null}async function en(e){var t,n,l,r;let u,c=e.upload_id||e.task_id||crypto.randomUUID();if(e.task_id)try{let t={taskId:e.task_id};e.framework&&(t.framework=e.framework);let n=await a.db.findExecutions(t,{timestamp:"desc"});if(n&&n.length>0&&n[0]?.id){let t=n.find(t=>t.id===e.task_id),i=t&&t.id?t.id:n[0].id;i!==c&&(c=i)}}catch{}let m=null,_=await a.db.findExecutionById(c);_&&(m={..._,upload_id:_.id,task_id:_.taskId||void 0,query:_.query||void 0,framework:_.framework||void 0,tokens:_.tokens??void 0,cost:_.cost??void 0,latency:_.latency??void 0,timestamp:_.timestamp?.toISOString?.()||_.timestamp,final_result:_.finalResult||void 0,skill:_.skill||void 0,skills:_.skills?JSON.parse(_.skills):void 0,invokedSkills:_.invokedSkills?(()=>{try{return JSON.parse(_.invokedSkills)}catch{return}})():void 0,is_skill_correct:_.isSkillCorrect??!1,is_answer_correct:_.isAnswerCorrect??null,answer_score:_.answerScore??void 0,skill_score:_.skillScore??void 0,judgment_reason:_.judgmentReason||void 0,failures:_.failures?JSON.parse(_.failures):void 0,skill_issues:_.skillIssues?JSON.parse(_.skillIssues):void 0,label:_.label||void 0,user:_.user||void 0,skill_version:_.skillVersion??void 0,expected_skill_version:_.expectedSkillVersion??null,skill_trigger_rate:_.skillTriggerRate??null,model:_.model||void 0,tool_call_count:_.toolCallCount??void 0,llm_call_count:_.llmCallCount??void 0,input_tokens:_.inputTokens??void 0,output_tokens:_.outputTokens??void 0,tool_call_error_count:_.toolCallErrorCount??void 0,cache_read_input_tokens:_.cacheReadInputTokens??void 0,cache_creation_input_tokens:_.cacheCreationInputTokens??void 0,max_single_call_tokens:_.maxSingleCallTokens??void 0});let v=m?{...m}:{},S=!!m;S||v.timestamp||e.timestamp?e.timestamp&&(v.timestamp=e.timestamp):v.timestamp=new Date().toISOString();let x=!!e.force_query_update,A="string"==typeof m?.query?m.query.trim():"",I="string"==typeof e.query?e.query.trim():"",E=!1;if("string"==typeof e.label){let t=(0,g.parseLabelSkillVersionBinding)(e.label);t&&(e.skill=t.skill,e.skill_version=t.skill_version,e.skills=t.skills,e.invokedSkills=t.invokedSkills,E=!0)}v={...v,...e};let O=function(e){let{isUpdate:t,existingSkillVersion:n,incomingSkillVersion:i,explicitRewrite:l}=e;return!t||null==n||l?{resolved:i,blocked:!1}:i===n?{resolved:n,blocked:!1}:{resolved:n,blocked:!0}}({isUpdate:S,existingSkillVersion:m?.skill_version??null,incomingSkillVersion:v.skill_version??null,explicitRewrite:E});if(O.blocked&&console.warn(`[Data-Service] Preserving existing skill_version for execution ${c}: existing=${m?.skill_version}, incoming=${v.skill_version} blocked. Skill version is immutable history; only NULL → value or explicit label-binding rewrite is allowed.`),v.skill_version=O.resolved??void 0,!v.agentName&&v.agent&&(v.agentName=v.agent),A&&!x?v.query=A:!A&&I?v.query=I:"string"!=typeof v.query||v.query.trim()?"string"==typeof v.query&&(v.query=v.query.trim()):v.query=void 0,!v.upload_id&&v.task_id&&(v.upload_id=v.task_id),!v.task_id&&v.upload_id&&(v.task_id=v.upload_id),v.upload_id=c,(!v.label||!v.model||!v.user)&&v.task_id){let e=await a.db.findSessionByTaskId(v.task_id);e&&(!v.label&&e.label&&(v.label=e.label),!v.model&&e.model&&(v.model=e.model),!v.user&&e.user&&(v.user=e.user))}if(!v.user){let e=et();if(e)v.user=e,console.log(`[Data-Service] No user on record for task ${v.task_id}, defaulting to AGENT_INSIGHT_DEFAULT_INGEST_USER=${e}`);else try{let e=a.db.getClient();if("query"in e){let t=await e.query('SELECT username FROM "User" LIMIT 1');t.rows[0]&&(v.user=t.rows[0].username,console.log(`[Data-Service] Fallback resolved user for task ${v.task_id} to: ${v.user}`))}}catch(e){console.warn("[Data-Service] Fallback user lookup failed:",e)}}let R=e.Token||e.token||e.tokens;void 0!==R&&(v.tokens=Number(R)),void 0!==e.tool_call_count&&(v.tool_call_count=Number(e.tool_call_count)),void 0!==e.llm_call_count&&(v.llm_call_count=Number(e.llm_call_count)),void 0!==e.input_tokens&&(v.input_tokens=Number(e.input_tokens)),void 0!==e.output_tokens&&(v.output_tokens=Number(e.output_tokens)),void 0!==e.tool_call_error_count&&(v.tool_call_error_count=Number(e.tool_call_error_count)),void 0!==e.cache_read_input_tokens&&(v.cache_read_input_tokens=Number(e.cache_read_input_tokens)),void 0!==e.cache_creation_input_tokens&&(v.cache_creation_input_tokens=Number(e.cache_creation_input_tokens)),void 0!==e.max_single_call_tokens&&(v.max_single_call_tokens=Number(e.max_single_call_tokens)),void 0!==e.reasoning_tokens&&(v.reasoning_tokens=Number(e.reasoning_tokens));let D=null;if(v.task_id&&v.interactions){let e=(0,b.getAdapter)(v.framework),t=t=>e.normalizeForStorage?.(t)??t,n="string"==typeof v.interactions?(()=>{try{return JSON.parse(v.interactions)}catch{return[]}})():v.interactions;D=n=t(n);try{let i=v.session_merge_strategy||e.sessionMergeStrategy||"monotonic";if("snapshot-replace"!==i){let e=await a.db.findSessionByTaskId(v.task_id),i=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];i=t(i),Array.isArray(i)&&i.length>0&&(D=(0,y.mergeSessionInteractionsMonotonic)(i,n))}else if("true"!==process.env.AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK){let e=await a.db.findSessionByTaskId(v.task_id),i=e?.interactions?(()=>{try{return JSON.parse(e.interactions)}catch{return[]}})():[];i=t(i);let l=Array.isArray(i)?i.length:0,r=Array.isArray(n)?n.length:0;if(l>0&&r<l)return console.warn(`[Data-Service] snapshot-replace 退化护栏:拒绝用更小快照覆盖 task ${v.task_id}(incoming ${r} < existing ${l} interactions),保留现有记录。设 AGENT_INSIGHT_JIUWEN_ALLOW_SHRINK=true 可放行。`),{success:!0,record:v}}}catch(e){e&&"object"==typeof e&&"task_id"in v&&console.warn("[Data-Service] snapshot-replace 退化检查异常,按原逻辑继续:",e?.message||e)}D=t(D),v.interactions=D;let i=function(e){if(Array.isArray(e))for(let t of e){if(!t||"object"!=typeof t||"user"!==String(t.role||"").toLowerCase())continue;let e="string"==typeof t.content?t.content.trim():"";if(e)return e}}(D);if(i&&function(e,t){let n="string"==typeof e?e.trim():"";if(!n)return!0;let i="string"==typeof t?t.trim().toLowerCase():"";return!!i&&n.toLowerCase()===`${i} session`}(v.query,v.framework)&&(v.query=i),"opencode"===v.framework&&Array.isArray(D)){let e=(0,k.deriveOpencodeExecutionFields)(D);e.model&&(v.model=e.model),e.final_result&&(v.final_result=e.final_result),e.agentName&&!v.agentName&&(v.agentName=e.agentName),v.tokens=e.tokens,v.latency=e.latency,v.input_tokens=e.input_tokens,v.output_tokens=e.output_tokens,v.tool_call_count=e.tool_call_count,v.tool_call_error_count=e.tool_call_error_count,v.llm_call_count=e.llm_call_count,v.cache_read_input_tokens=e.cache_read_input_tokens,v.cache_creation_input_tokens=e.cache_creation_input_tokens,v.max_single_call_tokens=e.max_single_call_tokens,v.reasoning_tokens=e.reasoning_tokens}}let J=!1,j=v.is_answer_correct||!1,z=v.judgment_reason||eu;v.skill_trigger_rate=null;let B=await X(v.user);if(B.length>0){let n=await V(B,v.query,v.user),i=$(B,v);if(n){let e=Array.isArray(v.invokedSkills)?v.invokedSkills:[],t=(Array.isArray(v.skills)?v.skills:[]).map(e=>({name:e,version:null})),i=q(n);if(i.length>0){let n=e.length>0?e:t;if(n.length>0){let e=0,t=i.filter(e=>e.skill?.trim()),l=t.map(e=>e.skill.trim()),r=new Map;if(l.length>0)try{for(let e of(await a.db.findSkills({name:{in:l},user:v.user||null})))r.set(e.name,e)}catch(e){console.error("[Judgment] Error fetching skills for version check:",e)}for(let i of t){let t=i.skill.trim(),l=i.version??null,s=n.find(e=>e.name===t);if(s){let n=!1;if(null===l)n=!0;else if(null!==s.version)n=s.version===l;else{let e=r.get(t);n=!!e&&(e.activeVersion||0)===l}n&&(e++,J||(J=!0))}}t.length>0&&(v.skill_trigger_rate=e/t.length)}}v.is_skill_correct=J}if(i){if(await L(i,v.user),void 0!==v.final_result){let l=!0;if(S&&!e.force_judgment&&m&&m.query===v.query&&m.final_result===v.final_result&&(l=!1),e.skip_internal_judgment&&(l=!1),l&&!v.skip_evaluation){let e,l=(v.skill||i.skill||n?.skill||"").trim();if(l)try{let t=await a.db.findSkill(l,v.user||null);if(t){let n=i.skillVersion??v.skill_version??t.activeVersion??0,l=t.versions?.find(e=>e.version===n);if(l&&l.content)e=l.content,(void 0===v.skill_version||null===v.skill_version)&&(v.skill_version=l.version);else if(t.versions&&t.versions.length>0){let n=t.versions[0];n&&n.content&&(e=n.content,(void 0===v.skill_version||null===v.skill_version)&&(v.skill_version=n.version))}}}catch(e){console.error("[Judgment] Error fetching skill definition:",e)}let r=null;try{let e=await a.db.findExecutionMatch(v.task_id||v.upload_id||"");e?.extractedSteps&&(r="string"==typeof e.extractedSteps?JSON.parse(e.extractedSteps):e.extractedSteps)}catch(e){console.warn("[Judgment] Failed to load execution steps for KA evaluation:",e)}let o=await (0,s.judgeAnswer)((t=v,(0,d.getConfigSubjectLabel)({query:t.query,skill:t.skill||i?.skill||null,skillVersion:t.skill_version??i?.skillVersion??null},"Skill execution benchmark")),{standard_answer_example:i.standard_answer,root_causes:i.root_causes,key_actions:i.key_actions,skill_definition:e},v.final_result,v.user,r);j=o.is_correct,v.answer_score=o.score,z=o.reason||"Judged by Evaluation Model"}}}else(!S||e.force_judgment)&&(j=!1,z=eu,v.answer_score=null)}e.skip_evaluation&&(v.answer_score=null,j=!1,z="结果评估中..."),v.is_skill_correct=J,v.is_answer_correct=j,v.judgment_reason=z,v=await P(v,B,v.user);let W=Array.isArray(v.skills)&&v.skills.length>0?v.skills[0]:void 0;if(W){let e=function(){if(!i.default.existsSync(ed))return{};try{return JSON.parse(i.default.readFileSync(ed,"utf-8"))}catch{return{}}}()[W];e&&(v.skill_score=parseFloat(e))}if(v.label=(0,p.chooseExecutionLabel)({existingLabel:m?.label,incomingLabel:e.label,skill:v.skill,skillVersion:v.skill_version??null}),v.framework){let e=v.framework,t=v.user||null;for(let n of(0,f.extractObservedAgentRegistrations)(D,v.agentName))try{let i=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:n.name,user:t}});if(!i)try{i=await a.prisma.registeredAgent.create({data:{platform:e,name:n.name,user:t,agentOwnership:(0,w.isInternalSystemAgentTrace)(n.name)?"system":"user",agentType:"main"===n.agentType?v.agentType||"main":"subagent"}})}catch(l){(i=await a.prisma.registeredAgent.findFirst({where:{platform:e,name:n.name,user:t}}))||console.warn(`[Data-Service] register observed agent failed (non-fatal): ${n.name}`,l)}i&&"main"===n.agentType&&n.name===v.agentName&&(u=i.id)}catch(e){console.warn(`[Data-Service] observed-agent registration error (non-fatal): ${n.name}`,e)}}let U=Array.isArray(D)&&D.length>0?JSON.stringify((0,f.extractObservedAgentNames)(D)):null;if(await a.db.upsertExecution({where:{id:c},create:{id:c,taskId:v.task_id,query:v.query,framework:v.framework,tokens:v.tokens,cost:v.cost,latency:v.latency,timestamp:v.timestamp?new Date(v.timestamp):new Date,finalResult:v.final_result,skill:v.skill,skills:v.skills?JSON.stringify(v.skills):null,invokedSkills:v.invokedSkills?JSON.stringify(v.invokedSkills):null,isSkillCorrect:v.is_skill_correct,isAnswerCorrect:v.is_answer_correct,answerScore:v.answer_score,skillScore:v.skill_score,judgmentReason:v.judgment_reason,failures:v.failures?JSON.stringify(v.failures):null,skillIssues:v.skill_issues?JSON.stringify(v.skill_issues):null,label:v.label,user:v.user,agentName:v.agentName,agentId:u,skillVersion:v.skill_version,model:v.model,endpoint:(0,o.normalizeEndpointUrl)(v.endpoint),toolCallCount:v.tool_call_count,llmCallCount:v.llm_call_count,inputTokens:v.input_tokens,outputTokens:v.output_tokens,toolCallErrorCount:v.tool_call_error_count,skillTriggerRate:v.skill_trigger_rate,cacheReadInputTokens:v.cache_read_input_tokens,cacheCreationInputTokens:v.cache_creation_input_tokens,maxSingleCallTokens:v.max_single_call_tokens,reasoningTokens:v.reasoning_tokens,observedAgents:U},update:{taskId:v.task_id,query:v.query,framework:v.framework,tokens:v.tokens,cost:v.cost,latency:v.latency,timestamp:v.timestamp?new Date(v.timestamp):new Date,finalResult:v.final_result,skill:v.skill,skills:v.skills?JSON.stringify(v.skills):null,invokedSkills:v.invokedSkills?JSON.stringify(v.invokedSkills):null,isSkillCorrect:v.is_skill_correct,isAnswerCorrect:v.is_answer_correct,answerScore:v.answer_score,skillScore:v.skill_score,judgmentReason:v.judgment_reason,failures:v.failures?JSON.stringify(v.failures):null,skillIssues:v.skill_issues?JSON.stringify(v.skill_issues):null,label:v.label,user:v.user,agentName:v.agentName,agentId:u,skillVersion:v.skill_version,model:v.model,endpoint:(0,o.normalizeEndpointUrl)(v.endpoint),toolCallCount:v.tool_call_count,llmCallCount:v.llm_call_count,inputTokens:v.input_tokens,outputTokens:v.output_tokens,toolCallErrorCount:v.tool_call_error_count,skillTriggerRate:v.skill_trigger_rate,cacheReadInputTokens:v.cache_read_input_tokens,cacheCreationInputTokens:v.cache_creation_input_tokens,maxSingleCallTokens:v.max_single_call_tokens,reasoningTokens:v.reasoning_tokens,observedAgents:U}}),e.upload_id&&e.task_id&&e.upload_id!==c)try{let t=await a.db.findExecutionById(e.upload_id);t&&t.taskId===e.task_id&&(em&&console.warn(`[Data-Audit] deleteExecution (dedup on save): upload_id=${e.upload_id} task_id=${e.task_id} recordId=${c}`),await a.db.deleteExecution(e.upload_id))}catch{}if(es)try{let e=Array.isArray(D)&&D.length>0,t=(n=E?Array.isArray(v.invokedSkills)?v.invokedSkills:[]:e?function(e,t){if(!Array.isArray(t)||0===t.length)return[];if("opencode"===e||"hermes"===e||"langfuse-langgraph"===e){let e=(0,h.buildAgentCallTree)(t);return e?T(e):[]}return F(e,t)??[]}(v.framework,D):Array.isArray(v.invokedSkills)?v.invokedSkills:[],l=v.skill??null,r=v.skill_version??null,l&&"number"==typeof r?n.map(e=>e.name===l&&null==e.version?{...e,version:r}:e):n),i=await N(t,v.user);await C(c,i,{user:v.user,primaryName:v.skill??null}),await a.prismaRaw.execution.update({where:{id:c},data:{skills:i.length?JSON.stringify(i.map(e=>e.name)):null,invokedSkills:i.length?JSON.stringify(i):null}})}catch(e){console.warn(`[Data-Service] root ExecutionSkill persist failed for ${c}:`,e)}if(("opencode"===v.framework||"hermes"===v.framework||"langfuse-langgraph"===v.framework)&&v.task_id&&Array.isArray(D))try{await el({parentExecutionId:c,parentTaskId:v.task_id,parentFramework:v.framework,parentUser:v.user,interactions:D})}catch(e){console.warn(`[Data-Service] deriveSubagentExecutions failed for parent=${c}:`,e)}let H=v.trace_completed_at?new Date(v.trace_completed_at):null,K=null!=H&&Number.isFinite(H.getTime()),G=!K&&"hermes"===v.framework&&"string"==typeof v.final_result&&v.final_result.trim()?function(e){if(!Array.isArray(e))return null;let t=e.flatMap(e=>{let t=e&&"object"==typeof e?e:{},n=t.timeInfo&&"object"==typeof t.timeInfo?t.timeInfo:{},i=t.timing&&"object"==typeof t.timing?t.timing:{};return[M(n.completed),M(n.created),M(i.completed_at),M(i.started_at),M(t.completedAt),M(t.completed_at),M(t.timestamp),M(t.createdAt)]}).filter(e=>null!=e&&Number.isFinite(e)&&e>0).reduce((e,t)=>Math.max(e,t),0);return t>0?new Date(t):null}(D):null,Q=K?H:G;!K&&G&&(v.trace_completed_at=G);let Z=null!=Q&&Number.isFinite(Q.getTime());return v.task_id&&D&&(await a.db.upsertSession(v.task_id,{taskId:v.task_id,query:v.query,label:v.label,user:v.user,model:v.model,interactions:JSON.stringify(D),...Z?{endTime:Q}:{}},{query:v.query,label:v.label,user:v.user,model:v.model,interactions:JSON.stringify(D)}),Z&&await a.db.updateSession(v.task_id,{endTime:Q}),"opencode"===v.framework&&!0===v.opencode_cli_completed&&await a.db.updateSession(v.task_id,{endTime:new Date})),{success:!0,record:v}}function ei(e){if(null==e)return"";if("string"==typeof e){let t=e.trim();if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return ei(JSON.parse(t))}catch{}return e}return Array.isArray(e)?e.map(e=>ei(e?.text??e?.content??e)).filter(Boolean).join("\n"):"object"==typeof e?ei(e.text??e.content??""):String(e)}async function el(e){let{parentExecutionId:t,parentTaskId:n,parentFramework:i,parentUser:l,interactions:r}=e;if(!Array.isArray(r)||0===r.length)return;let s=(0,h.buildAgentCallTree)(r);if(!s)return void await er(t,new Set);let o=[],u=new Set;if((0,h.walkTree)(s,e=>{if(!e||0===e.depth)return;let t="string"==typeof e.sessionId?e.sessionId.trim():"";!t||t===n||u.has(t)||(u.add(t),o.push({node:e,sessionId:t,parentNodeId:e.parentId}))}),0===o.length)return;o.sort((e,t)=>e.node.depth-t.node.depth);let c=new Map;c.set(s.id,t);let d=new Set;for(let e of o){let{node:n,sessionId:s,parentNodeId:o}=e,u=c.get(o)??t,m=`${u}__sub__${s}`;c.set(n.id,m),d.add(m);let k=new Set,p=[],g=e=>{for(let t of e.interactionIndices||[])k.add(t);for(let t of(Array.isArray(e.systemPrompts)&&e.systemPrompts.length>0&&e.sessionId&&p.push({sessionId:e.sessionId,entries:e.systemPrompts}),e.children||[]))g(t)};g(n);let _=[...k].sort((e,t)=>e-t).map(e=>r[e]).filter(Boolean),y=[];for(let e of p)for(let t of e.entries)y.push({role:"system",content:t.text,subagent_session_id:e.sessionId,system_prompt_sha256:t.sha256,system_prompt_length:t.length,system_prompt_modelID:t.modelID,system_prompt_providerID:t.providerID});let h=[...y,..._],v=function(e,t){let n=(e.interactionIndices||[]).map(e=>t[e]).filter(Boolean),i=n.map(e=>ei(e?.content).trim()).filter(Boolean),l=i[0]||e.agentName||e.sessionId,r=(e.events||[]).filter(e=>"llm"===e.kind),s=r.filter(e=>{let t=e.usage;return!!t&&((t.total||0)>0||(t.input||0)>0||(t.output||0)>0||(t.reasoning||0)>0)}),o=e.interactionIndices?.[0],a=r.filter(e=>e.interactionIndex!==o&&(!!e.summary?.trim()||(e.interaction?.tool_calls?.length||0)>0)).length,u=(e.events||[]).filter(e=>"tool"===e.kind||"skill"===e.kind||"task"===e.kind),c=n.map(e=>e?.model??e?.modelID).find(e=>"string"==typeof e&&e.trim())||null;return{query:l,finalResult:i.length>1?i[i.length-1]:null,model:c,tokens:e.stats.totalTokens,inputTokens:e.stats.inputTokens,outputTokens:e.stats.outputTokens,reasoningTokens:e.stats.reasoningTokens,cacheReadInputTokens:e.stats.cacheReadTokens,cacheCreationInputTokens:e.stats.cacheWriteTokens,latency:e.stats.durationMs??null,llmCallCount:s.length||a,toolCallCount:u.length,toolCallErrorCount:u.filter(function e(t){let n=Array.isArray(t?.interaction?.tool_calls)?t.interaction.tool_calls:[],i=t?._toolCallId,l=n.find(e=>!i||e?.id===i),r=String(l?.state||"").toLowerCase();if("error"===r||"failed"===r)return!0;let s=t?.output??l?.output??l?.result;if(s&&"object"==typeof s){let e=String(s.status||s.state||"").toLowerCase();return"error"===e||"failed"===e||!!s.error}if("string"==typeof s&&s.trim().startsWith("{"))try{return e({...t,output:JSON.parse(s),interaction:void 0})}catch{}return!1}).length}}(n,r),w=((function(e,t){let n=String(t||"").trim();if(!n)return null;for(let t of e)for(let e of Array.isArray(t?.tool_calls)?t.tool_calls:[]){let t=e?.function?.name??e?.name;if("task"!==t)continue;let i=function(e){let t=e?.function?.arguments??e?.arguments;if(t&&"object"==typeof t&&!Array.isArray(t))return t;if("string"!=typeof t)return{};try{let e=JSON.parse(t);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch{return{}}}(e);if(String(i.subagent_session_id??i.session_id??i.agent_session_id??"").trim()!==n)continue;let l=ei(i.description??i.task_description??i.prompt??i.subagent_type).trim();if(l)return l}return null})(r,s)||v.query).slice(0,500),b=T(n);if(es)try{b=await N(b,l)}catch(e){console.warn(`[Data-Service] sub skill version snapshot failed sub=${s}:`,e)}let S=n.startedAt?new Date(n.startedAt):new Date,x=n.endedAt?new Date(n.endedAt):null,A={taskId:s,framework:i,timestamp:S,agentName:n.agentName??null,user:l??null,query:w,finalResult:v.finalResult,model:v.model,tokens:v.tokens,inputTokens:v.inputTokens,outputTokens:v.outputTokens,reasoningTokens:v.reasoningTokens,cacheReadInputTokens:v.cacheReadInputTokens,cacheCreationInputTokens:v.cacheCreationInputTokens,latency:v.latency,llmCallCount:v.llmCallCount,toolCallCount:v.toolCallCount,toolCallErrorCount:v.toolCallErrorCount,skills:b.length?JSON.stringify(b.map(e=>e.name)):null,invokedSkills:b.length?JSON.stringify(b):null,parentExecutionId:u,rootExecutionId:t,agentSessionId:s,subagentType:n.subagentType??null,subagentName:n.agentName??null,isSubagent:!0,observedAgents:JSON.stringify((0,f.extractObservedAgentNames)(h))};try{await a.db.upsertExecution({where:{id:m},create:{id:m,...A},update:{...A}})}catch(e){console.warn(`[Data-Service] upsertExecution(sub) failed sub=${s}:`,e);continue}if(es)try{await C(m,b,{user:l??null})}catch(e){console.warn(`[Data-Service] sub ExecutionSkill persist failed sub=${s}:`,e)}try{await a.db.upsertSession(s,{taskId:s,label:n.agentName??null,user:l??null,query:w,interactions:JSON.stringify(h),...x?{endTime:x}:{}},{label:n.agentName??null,user:l??null,query:w,interactions:JSON.stringify(h),...x?{endTime:x}:{}})}catch(e){console.warn(`[Data-Service] upsertSession(sub) failed sub=${s}:`,e)}}await er(t,d)}async function er(e,t){try{for(let n of(await a.db.findExecutions({rootExecutionId:e,isSubagent:!0},{timestamp:"desc"})))if(!(!n?.id||t.has(n.id)))try{await a.db.deleteExecution(n.id)}catch(e){console.warn(`[Data-Service] sweepStaleSubagents: deleteExecution(${n.id}) failed:`,e)}}catch(t){console.warn(`[Data-Service] sweepStaleSubagents query failed root=${e}:`,t)}}e.s(["deleteExecutionsByTaskId",()=>ee,"extractInvokedSkillsFromSessionInteractions",()=>F,"findBestMatchConfig",()=>D,"getDefaultIngestUser",()=>et,"listObservedAgentNames",()=>B,"listObservedFieldValues",()=>U,"listObservedSkills",()=>W,"listObservedTraceIds",()=>H,"readConfig",()=>X,"readRecordPage",()=>Y,"readRecords",()=>Z,"reattributeServiceTraceOwner",()=>O,"saveExecutionRecord",()=>en,"selectKeepIdsByTaskId",()=>K]),n()}catch(e){n(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=src_lib_ea85a447._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[15066,a=>{"use strict";function b(a){a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}b.displayName="clike",b.aliases=[],a.s(["default",()=>b])},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},857764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},20664,a=>{"use strict";function b(a){a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.value.replace(/&amp;/,"&"))}),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(b,c){var d={};d["language-"+c]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[c]},d.cdata=/^<!\[CDATA\[|\]\]>$/i;var e={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:d}};e["language-"+c]={pattern:/[\s\S]+/,inside:a.languages[c]};var f={};f[b]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return b}),"i"),lookbehind:!0,greedy:!0,inside:e},a.languages.insertBefore("markup","cdata",f)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(b,c){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+b+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[c,"language-"+c],inside:a.languages[c]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml}b.displayName="markup",b.aliases=["atom","html","mathml","rss","ssml","svg","xml"],a.s(["default",()=>b])},824106,a=>{"use strict";function b(a){var b,c;b=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,a.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+b.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+b.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+b.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+b.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:b,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},a.languages.css.atrule.inside.rest=a.languages.css,(c=a.languages.markup)&&(c.tag.addInlined("style","css"),c.tag.addAttribute("style","css"))}b.displayName="css",b.aliases=[],a.s(["default",()=>b])},589027,a=>{"use strict";let b=(0,a.i(164831).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",()=>b],589027)},141146,a=>{"use strict";let b=(0,a.i(164831).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],141146)},752562,a=>{"use strict";var b=a.i(2589);a.s(["Check",()=>b.default])},2589,a=>{"use strict";let b=(0,a.i(164831).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["default",()=>b])},699570,400187,a=>{"use strict";var b=a.i(187924),c=a.i(811011),d=a.i(298621);let e=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,f=d.clsx,g=(a,b)=>c=>{var d;if((null==b?void 0:b.variants)==null)return f(a,null==c?void 0:c.class,null==c?void 0:c.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==c?void 0:c[a],d=null==h?void 0:h[a];if(null===b)return null;let f=e(b)||e(d);return g[a][f]}),j=c&&Object.entries(c).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return f(a,i,null==b||null==(d=b.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==c?void 0:c.class,null==c?void 0:c.className)};a.s(["cva",0,g],400187);var h=a.i(368114);let i=g("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",outline:"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",brand:"bg-[#2F6868] hover:bg-[#2F6868]/90 border-[#2F6868] text-white"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function j({className:a,variant:d,size:e,asChild:f=!1,...g}){let j=f?c.Slot:"button";return(0,b.jsx)(j,{"data-slot":"button",className:(0,h.cn)(i({variant:d,size:e,className:a})),...g})}a.s(["Button",()=>j],699570)},390702,a=>{"use strict";let b=(0,a.i(164831).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],390702)},474215,a=>{"use strict";let b=(0,a.i(164831).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",()=>b],474215)},795225,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(507554),e=a.i(470121),f=a.i(750104),g=a.i(392843),h=a.i(225152),i=a.i(596743),j=a.i(422297),k=a.i(692616),l=a.i(777192),m=a.i(30553),n=a.i(486228),o=a.i(152081),p=a.i(241852),q=a.i(811011),r="Dialog",[s,t]=(0,f.createContextScope)(r),[u,v]=s(r),w=a=>{let{__scopeDialog:d,children:e,open:f,defaultOpen:i,onOpenChange:j,modal:k=!0}=a,l=c.useRef(null),m=c.useRef(null),[n,o]=(0,h.useControllableState)({prop:f,defaultProp:i??!1,onChange:j,caller:r});return(0,b.jsx)(u,{scope:d,triggerRef:l,contentRef:m,contentId:(0,g.useId)(),titleId:(0,g.useId)(),descriptionId:(0,g.useId)(),open:n,onOpenChange:o,onOpenToggle:c.useCallback(()=>o(a=>!a),[o]),modal:k,children:e})};w.displayName=r;var x="DialogTrigger";c.forwardRef((a,c)=>{let{__scopeDialog:f,...g}=a,h=v(x,f),i=(0,e.useComposedRefs)(c,h.triggerRef);return(0,b.jsx)(m.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":h.open,"aria-controls":h.open?h.contentId:void 0,"data-state":R(h.open),...g,ref:i,onClick:(0,d.composeEventHandlers)(a.onClick,h.onOpenToggle)})}).displayName=x;var y="DialogPortal",[z,A]=s(y,{forceMount:void 0}),B=a=>{let{__scopeDialog:d,forceMount:e,children:f,container:g}=a,h=v(y,d);return(0,b.jsx)(z,{scope:d,forceMount:e,children:c.Children.map(f,a=>(0,b.jsx)(l.Presence,{present:e||h.open,children:(0,b.jsx)(k.Portal,{asChild:!0,container:g,children:a})}))})};B.displayName=y;var C="DialogOverlay",D=c.forwardRef((a,c)=>{let d=A(C,a.__scopeDialog),{forceMount:e=d.forceMount,...f}=a,g=v(C,a.__scopeDialog);return g.modal?(0,b.jsx)(l.Presence,{present:e||g.open,children:(0,b.jsx)(F,{...f,ref:c})}):null});D.displayName=C;var E=(0,q.createSlot)("DialogOverlay.RemoveScroll"),F=c.forwardRef((a,c)=>{let{__scopeDialog:d,...f}=a,g=v(C,d),h=(0,i.useDismissableLayerSurface)(),j=(0,e.useComposedRefs)(c,h);return(0,b.jsx)(o.RemoveScroll,{as:E,allowPinchZoom:!0,shards:[g.contentRef],children:(0,b.jsx)(m.Primitive.div,{"data-state":R(g.open),...f,ref:j,style:{pointerEvents:"auto",...f.style}})})}),G="DialogContent",H=c.forwardRef((a,c)=>{let d=A(G,a.__scopeDialog),{forceMount:e=d.forceMount,...f}=a,g=v(G,a.__scopeDialog);return(0,b.jsx)(l.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)(I,{...f,ref:c}):(0,b.jsx)(J,{...f,ref:c})})});H.displayName=G;var I=c.forwardRef((a,f)=>{let g=v(G,a.__scopeDialog),h=c.useRef(null),i=(0,e.useComposedRefs)(f,g.contentRef,h);return c.useEffect(()=>{let a=h.current;if(a)return(0,p.hideOthers)(a)},[]),(0,b.jsx)(K,{...a,ref:i,trapFocus:g.open,disableOutsidePointerEvents:g.open,onCloseAutoFocus:(0,d.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),g.triggerRef.current?.focus()}),onPointerDownOutside:(0,d.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:(0,d.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault())})}),J=c.forwardRef((a,d)=>{let e=v(G,a.__scopeDialog),f=c.useRef(!1),g=c.useRef(!1);return(0,b.jsx)(K,{...a,ref:d,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(f.current||e.triggerRef.current?.focus(),b.preventDefault()),f.current=!1,g.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(f.current=!0,"pointerdown"===b.detail.originalEvent.type&&(g.current=!0));let c=b.target;e.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&g.current&&b.preventDefault()}})}),K=c.forwardRef((a,c)=>{let{__scopeDialog:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:g,...h}=a,k=v(G,d);return(0,n.useFocusGuards)(),(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(j.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,b.jsx)(i.DismissableLayer,{role:"dialog",id:k.contentId,"aria-describedby":k.descriptionId,"aria-labelledby":k.titleId,"data-state":R(k.open),...h,ref:c,deferPointerDownOutside:!0,onDismiss:()=>k.onOpenChange(!1)})})})}),L="DialogTitle",M=c.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=v(L,d);return(0,b.jsx)(m.Primitive.h2,{id:f.titleId,...e,ref:c})});M.displayName=L;var N="DialogDescription",O=c.forwardRef((a,c)=>{let{__scopeDialog:d,...e}=a,f=v(N,d);return(0,b.jsx)(m.Primitive.p,{id:f.descriptionId,...e,ref:c})});O.displayName=N;var P="DialogClose",Q=c.forwardRef((a,c)=>{let{__scopeDialog:e,...f}=a,g=v(P,e);return(0,b.jsx)(m.Primitive.button,{type:"button",...f,ref:c,onClick:(0,d.composeEventHandlers)(a.onClick,()=>g.onOpenChange(!1))})});function R(a){return a?"open":"closed"}Q.displayName=P;var S=a.i(474215),T=a.i(368114);function U({className:a,...c}){return(0,b.jsx)(D,{"data-slot":"dialog-overlay",className:(0,T.cn)("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c})}function V({className:a,children:c,...d}){return(0,b.jsxs)(B,{children:[(0,b.jsx)(U,{}),(0,b.jsxs)(H,{"data-slot":"dialog-content",className:(0,T.cn)("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border border-card-border bg-card p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",a),...d,children:[c,(0,b.jsx)(Q,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring","aria-label":"Close",children:(0,b.jsx)(S.X,{className:"size-4"})})]})]})}function W({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,T.cn)("flex flex-col gap-1.5 text-left",a),...c})}function X({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-footer",className:(0,T.cn)("flex flex-row justify-end gap-2 pt-2",a),...c})}function Y({className:a,...c}){return(0,b.jsx)(M,{"data-slot":"dialog-title",className:(0,T.cn)("text-base font-semibold text-foreground",a),...c})}function Z({className:a,...c}){return(0,b.jsx)(O,{"data-slot":"dialog-description",className:(0,T.cn)("text-sm text-foreground-secondary",a),...c})}a.s(["Dialog",()=>w,"DialogContent",()=>V,"DialogDescription",()=>Z,"DialogFooter",()=>X,"DialogHeader",()=>W,"DialogTitle",()=>Y],795225)},991813,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(729936),e=a.i(50944),f=a.i(857195),g=a.i(575110);let h="#eceae4",i="#2c2b28",j="#6b6a66";function k({traceId:a}){let d=(0,e.useRouter)(),k=(0,e.useSearchParams)(),l=k?.get("runId")||"",m=k?.get("datasetId")||"",n=k?.get("resultId")||"",o=k?.get("autoWatchOnly")==="1"||k?.get("autoWatchOnly")==="true",[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(null),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{if(!a)return;let b=!1;return(async()=>{try{let c=await (0,g.apiFetch)(`/api/observe/session?taskId=${encodeURIComponent(a)}`);if(!c.ok)throw Error(`session API ${c.status}`);let d=await c.json(),e=Array.isArray(d?.interactions)?d.interactions:[];b||(q(e),s({query:d?.query,model:d?.model}));try{let c=await (0,g.apiFetch)(`/api/observe/task-stats?taskId=${encodeURIComponent(a)}`);if(c.ok){let a=await c.json();!b&&a?.found&&s(b=>({...b,framework:a.framework}))}}catch{}}catch(a){b||u(`加载链路失败:${a?.message||a}`)}finally{b||w(!1)}})(),()=>{b=!0}},[a]),(0,b.jsxs)("div",{style:{padding:"18px 22px 28px",maxWidth:1480,margin:"0 auto",color:"#1a1a18"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:14},children:[(0,b.jsx)("button",{onClick:function(){let b=[];l&&b.push(`runId=${encodeURIComponent(l)}`),m&&b.push(`datasetId=${encodeURIComponent(m)}`),n&&b.push(`resultId=${encodeURIComponent(n)}`),o&&b.push("autoWatchOnly=1");let c=b.length>0?`?${b.join("&")}`:"";d.push(`/eval/trajectory/${encodeURIComponent(a)}${c}`)},style:{padding:"4px 10px",background:"#fff",color:i,border:`1px solid ${h}`,borderRadius:5,fontSize:12,cursor:"pointer"},children:`< 返回评测详情`}),(0,b.jsx)("span",{style:{height:14,width:1,background:h}}),(0,b.jsx)("div",{style:{fontSize:14,fontWeight:600},children:"链路观测"}),(0,b.jsx)("code",{style:{fontSize:11.5,color:j,fontFamily:"monospace"},children:a}),(0,b.jsx)("div",{style:{flex:1}}),r?.framework?(0,b.jsxs)("span",{style:{fontSize:11,color:j,fontFamily:"monospace"},children:[r.framework,r.model?` \xb7 ${r.model}`:""]}):null]}),r?.query?(0,b.jsxs)("div",{style:{background:"#FBFAF6",border:`1px solid ${h}`,borderRadius:7,padding:"8px 12px",marginBottom:12,fontSize:12,color:i},children:[(0,b.jsx)("span",{style:{color:j,marginRight:6},children:"任务:"}),r.query]}):null,t&&(0,b.jsx)("div",{style:{padding:10,background:"#FFEBEB",border:"1px solid #FFD4D4",color:"#A32D2D",borderRadius:6,fontSize:12,marginBottom:12},children:t}),v?(0,b.jsx)("div",{style:{padding:24,color:j},children:"加载链路数据中..."}):null===p||0===p.length?(0,b.jsxs)("div",{style:{padding:24,border:`1px solid ${h}`,borderRadius:8,color:j,textAlign:"center"},children:["该 trace 没有 interactions 数据(traceId=",a,")"]}):(0,b.jsx)("div",{style:{border:`1px solid ${h}`,borderRadius:8,background:"#fff",overflow:"hidden"},children:(0,b.jsx)(f.default,{interactions:p})})]})}var l=a.i(960798);function m({params:a}){let{taskId:e}=(0,c.use)(a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.AppTopBar,{title:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Term,{id:"trace",label:"链路观测"}),` \xb7 ${e}`]})}),(0,b.jsx)("div",{style:{flex:1,overflowY:"auto"},children:(0,b.jsx)(k,{traceId:e})})]})}a.s(["default",()=>m],991813)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0eb5d21d._.js.map