@tangle-network/agent-eval 0.117.1 → 0.118.1

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 (143) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/analyst/index.d.ts +2772 -21
  3. package/dist/analyst/index.js +7 -6
  4. package/dist/analyst/index.js.map +1 -1
  5. package/dist/belief-state/index.d.ts +706 -10
  6. package/dist/belief-state/index.js +2 -1
  7. package/dist/belief-state/index.js.map +1 -1
  8. package/dist/benchmarks/index.d.ts +958 -14
  9. package/dist/benchmarks/index.js +12 -10
  10. package/dist/builder-eval/index.d.ts +449 -4
  11. package/dist/builder-eval/index.js +4 -3
  12. package/dist/builder-eval/index.js.map +1 -1
  13. package/dist/campaign/index.d.ts +4275 -73
  14. package/dist/campaign/index.js +12 -10
  15. package/dist/{chunk-VF3XSYTI.js → chunk-33JA4TFA.js} +6 -6
  16. package/dist/{chunk-4JLWXDYA.js → chunk-3EHHMC6E.js} +2 -2
  17. package/dist/{chunk-CCZIVI3F.js → chunk-BFW56GTT.js} +2 -2
  18. package/dist/{chunk-YZPO4UHR.js → chunk-FTUMG2U7.js} +124 -149
  19. package/dist/chunk-FTUMG2U7.js.map +1 -0
  20. package/dist/{chunk-E4BUPP7Z.js → chunk-HKUCJ437.js} +38 -66
  21. package/dist/chunk-HKUCJ437.js.map +1 -0
  22. package/dist/{chunk-HZHNRYHK.js → chunk-K6N6XJJX.js} +2 -2
  23. package/dist/chunk-KSDQVPLR.js +286 -0
  24. package/dist/chunk-KSDQVPLR.js.map +1 -0
  25. package/dist/chunk-MA6HLL3S.js +65 -0
  26. package/dist/chunk-MA6HLL3S.js.map +1 -0
  27. package/dist/{chunk-MGEHEHSN.js → chunk-OIIMMLRB.js} +11 -11
  28. package/dist/{chunk-DXZRATT5.js → chunk-OYZAPX5G.js} +3 -3
  29. package/dist/chunk-PXE2VKMX.js +140 -0
  30. package/dist/chunk-PXE2VKMX.js.map +1 -0
  31. package/dist/{chunk-JSJZ4PJ6.js → chunk-Q442S5AS.js} +17 -17
  32. package/dist/{chunk-ODVOOEWQ.js → chunk-QBRSJK47.js} +2 -2
  33. package/dist/{chunk-S2F4J57L.js → chunk-QKEGNI5B.js} +77 -32
  34. package/dist/chunk-QKEGNI5B.js.map +1 -0
  35. package/dist/{chunk-5UF54T55.js → chunk-S3UZOQ5Y.js} +34 -7
  36. package/dist/chunk-S3UZOQ5Y.js.map +1 -0
  37. package/dist/{chunk-FQNLDL4D.js → chunk-SVH2ANFD.js} +136 -4
  38. package/dist/chunk-SVH2ANFD.js.map +1 -0
  39. package/dist/{chunk-GQCZRZ7L.js → chunk-U5CHZ5M3.js} +9 -9
  40. package/dist/{chunk-TVVP3ZZQ.js → chunk-VQMK5FMP.js} +2 -1
  41. package/dist/{chunk-TVVP3ZZQ.js.map → chunk-VQMK5FMP.js.map} +1 -1
  42. package/dist/chunk-WDHBCA3M.js +31 -0
  43. package/dist/chunk-WDHBCA3M.js.map +1 -0
  44. package/dist/{chunk-HQPHZGL6.js → chunk-YLMUS4MM.js} +9 -9
  45. package/dist/{chunk-LQUTGLOZ.js → chunk-ZET2UAYW.js} +15 -65
  46. package/dist/chunk-ZET2UAYW.js.map +1 -0
  47. package/dist/contract/index.d.ts +4012 -38
  48. package/dist/contract/index.js +56 -29
  49. package/dist/contract/index.js.map +1 -1
  50. package/dist/control.d.ts +1013 -9
  51. package/dist/control.js +4 -3
  52. package/dist/fuzz.d.ts +194 -4
  53. package/dist/fuzz.js +3 -3
  54. package/dist/hosted/index.d.ts +498 -17
  55. package/dist/index.d.ts +10992 -1288
  56. package/dist/index.js +101 -80
  57. package/dist/index.js.map +1 -1
  58. package/dist/matrix/index.d.ts +139 -4
  59. package/dist/meta-eval/index.d.ts +862 -15
  60. package/dist/meta-eval/index.js +2 -1
  61. package/dist/meta-eval/index.js.map +1 -1
  62. package/dist/multishot/index.d.ts +214 -14
  63. package/dist/openapi.json +1 -1
  64. package/dist/pipelines/index.d.ts +392 -7
  65. package/dist/pipelines/index.js +5 -3
  66. package/dist/pipelines/index.js.map +1 -1
  67. package/dist/reporting.d.ts +1277 -17
  68. package/dist/rl.d.ts +2359 -28
  69. package/dist/rl.js +6 -5
  70. package/dist/rl.js.map +1 -1
  71. package/dist/storyboard/index.d.ts +86 -1
  72. package/dist/trace-attributes.d.ts +16 -0
  73. package/dist/trace-attributes.js +32 -0
  74. package/dist/trace-attributes.js.map +1 -0
  75. package/dist/traces.d.ts +1978 -697
  76. package/dist/traces.js +53 -32
  77. package/dist/wire/index.d.ts +655 -9
  78. package/docs/insight-report.md +44 -0
  79. package/package.json +9 -3
  80. package/dist/adversarial-B7loGVVX.d.ts +0 -19
  81. package/dist/analyst-C8HHvfJp.d.ts +0 -88
  82. package/dist/analyze-runs--2x39HZ7.d.ts +0 -81
  83. package/dist/baseline-DKq3gJpP.d.ts +0 -141
  84. package/dist/calibration-C8MTS7cw.d.ts +0 -101
  85. package/dist/chunk-5UF54T55.js.map +0 -1
  86. package/dist/chunk-E4BUPP7Z.js.map +0 -1
  87. package/dist/chunk-FQNLDL4D.js.map +0 -1
  88. package/dist/chunk-LQUTGLOZ.js.map +0 -1
  89. package/dist/chunk-S2F4J57L.js.map +0 -1
  90. package/dist/chunk-YZPO4UHR.js.map +0 -1
  91. package/dist/code-agent-session-CjZsVd19.d.ts +0 -87
  92. package/dist/control-6vuGfmDH.d.ts +0 -258
  93. package/dist/cost-ledger-DWy3XdJc.d.ts +0 -183
  94. package/dist/dataset-NENEzRgk.d.ts +0 -115
  95. package/dist/default-registry-DaK8b3fv.d.ts +0 -155
  96. package/dist/emitter-CjD7vUwv.d.ts +0 -122
  97. package/dist/errors-oeQrLqXC.d.ts +0 -74
  98. package/dist/failure-cluster-DOAcSJ87.d.ts +0 -76
  99. package/dist/feedback-trajectory-BUnM58xL.d.ts +0 -348
  100. package/dist/gepa-eESocoDi.d.ts +0 -642
  101. package/dist/index-PdX4VnPA.d.ts +0 -423
  102. package/dist/insight-report-DY4nDW9Q.d.ts +0 -310
  103. package/dist/integrity-DqlBiLyK.d.ts +0 -81
  104. package/dist/judge-calibration-7C-IDmKr.d.ts +0 -145
  105. package/dist/kind-factory-ClZmO25A.d.ts +0 -171
  106. package/dist/llm-client-qoDd18Qz.d.ts +0 -289
  107. package/dist/multi-layer-verifier-BsqKuLyN.d.ts +0 -150
  108. package/dist/off-policy-DiwuKKg7.d.ts +0 -132
  109. package/dist/outcome-store-rnXLEqSn.d.ts +0 -63
  110. package/dist/policy-edit-wG9uFEFm.d.ts +0 -455
  111. package/dist/pre-registration-BWQhJ3vz.d.ts +0 -761
  112. package/dist/provenance-DpjwyseI.d.ts +0 -541
  113. package/dist/query-CF7PG61p.d.ts +0 -35
  114. package/dist/raw-provider-sink-C46HDghv.d.ts +0 -132
  115. package/dist/release-report-C8G2i5Xi.d.ts +0 -236
  116. package/dist/researcher-C8XyxQsu.d.ts +0 -387
  117. package/dist/rubric-predictive-validity-p49lLVrE.d.ts +0 -105
  118. package/dist/run-record-BDH49H2E.d.ts +0 -360
  119. package/dist/runtime-trajectory-DGBIUt4B.d.ts +0 -49
  120. package/dist/schema-B3Q3l9Z_.d.ts +0 -201
  121. package/dist/semantic-concept-judge-CXnPEJbf.d.ts +0 -723
  122. package/dist/sequential-5iSVfzl2.d.ts +0 -139
  123. package/dist/series-convergence-D5OWMBg6.d.ts +0 -33
  124. package/dist/statistics-KUnG73jH.d.ts +0 -494
  125. package/dist/storage-DrX3v_5B.d.ts +0 -50
  126. package/dist/store-C1YxJDEK.d.ts +0 -248
  127. package/dist/store-DGqD0Pyo.d.ts +0 -116
  128. package/dist/summary-report-C5bKFfm-.d.ts +0 -445
  129. package/dist/test-graded-scenario-B0ybnPY7.d.ts +0 -166
  130. package/dist/types-BSw1rOUB.d.ts +0 -634
  131. package/dist/types-BUxNaJ8c.d.ts +0 -108
  132. package/dist/types-BkfcQnxV.d.ts +0 -313
  133. package/dist/verdict-C9MlYujm.d.ts +0 -35
  134. /package/dist/{chunk-VF3XSYTI.js.map → chunk-33JA4TFA.js.map} +0 -0
  135. /package/dist/{chunk-4JLWXDYA.js.map → chunk-3EHHMC6E.js.map} +0 -0
  136. /package/dist/{chunk-CCZIVI3F.js.map → chunk-BFW56GTT.js.map} +0 -0
  137. /package/dist/{chunk-HZHNRYHK.js.map → chunk-K6N6XJJX.js.map} +0 -0
  138. /package/dist/{chunk-MGEHEHSN.js.map → chunk-OIIMMLRB.js.map} +0 -0
  139. /package/dist/{chunk-DXZRATT5.js.map → chunk-OYZAPX5G.js.map} +0 -0
  140. /package/dist/{chunk-JSJZ4PJ6.js.map → chunk-Q442S5AS.js.map} +0 -0
  141. /package/dist/{chunk-ODVOOEWQ.js.map → chunk-QBRSJK47.js.map} +0 -0
  142. /package/dist/{chunk-GQCZRZ7L.js.map → chunk-U5CHZ5M3.js.map} +0 -0
  143. /package/dist/{chunk-HQPHZGL6.js.map → chunk-YLMUS4MM.js.map} +0 -0
@@ -6,13 +6,14 @@ import {
6
6
  fromPiSession,
7
7
  fromPigraphSession,
8
8
  parseCodeAgentJsonl
9
- } from "../chunk-E4BUPP7Z.js";
9
+ } from "../chunk-HKUCJ437.js";
10
10
  import {
11
11
  createHostedClient
12
12
  } from "../chunk-ZZUXHH3R.js";
13
13
  import {
14
- analyzeRuns
15
- } from "../chunk-FQNLDL4D.js";
14
+ analyzeRuns,
15
+ summarizeExecution
16
+ } from "../chunk-SVH2ANFD.js";
16
17
  import {
17
18
  REFERENCE_EQUIVALENCE_INPUT_LIMITS,
18
19
  REFERENCE_EQUIVALENCE_JUDGE_VERSION,
@@ -33,7 +34,7 @@ import {
33
34
  runReferenceEquivalenceJudge,
34
35
  surfaceContentHash,
35
36
  surfaceHash
36
- } from "../chunk-HQPHZGL6.js";
37
+ } from "../chunk-YLMUS4MM.js";
37
38
  import {
38
39
  createRunCostLedger,
39
40
  fsCampaignStorage,
@@ -44,33 +45,38 @@ import {
44
45
  import {
45
46
  buildDefaultAnalystRegistry,
46
47
  createChatClient
47
- } from "../chunk-VF3XSYTI.js";
48
+ } from "../chunk-33JA4TFA.js";
48
49
  import "../chunk-HHWE3POT.js";
49
- import "../chunk-MGEHEHSN.js";
50
+ import "../chunk-OIIMMLRB.js";
50
51
  import {
51
52
  FileSystemOutcomeStore,
52
53
  InMemoryOutcomeStore
53
54
  } from "../chunk-3RF76KTD.js";
54
55
  import "../chunk-ARU2PZFM.js";
56
+ import "../chunk-NJC7U437.js";
55
57
  import "../chunk-DPZAEKA6.js";
56
58
  import "../chunk-PJQFMIOX.js";
57
- import "../chunk-LQUTGLOZ.js";
59
+ import "../chunk-VCTY3W6J.js";
60
+ import "../chunk-VI2UW6B6.js";
61
+ import {
62
+ recordAggregateMeasurements,
63
+ summarizeExecutionMeasurements
64
+ } from "../chunk-KSDQVPLR.js";
65
+ import "../chunk-PXE2VKMX.js";
66
+ import "../chunk-ZET2UAYW.js";
58
67
  import "../chunk-GGE4NNQT.js";
59
68
  import {
60
- LLM_INPUT_TOKEN_ATTR_KEYS,
61
- LLM_MODEL_ATTR_KEYS,
62
- LLM_OUTPUT_TOKEN_ATTR_KEYS
63
- } from "../chunk-S2F4J57L.js";
69
+ LLM_MODEL_ATTR_KEYS
70
+ } from "../chunk-QKEGNI5B.js";
71
+ import "../chunk-PC4UYEBM.js";
64
72
  import {
65
73
  parseRunRecordSafe
66
- } from "../chunk-5UF54T55.js";
74
+ } from "../chunk-S3UZOQ5Y.js";
75
+ import "../chunk-MA6HLL3S.js";
67
76
  import "../chunk-XJYR7XFV.js";
68
77
  import "../chunk-VSMTAMNK.js";
69
- import "../chunk-NJC7U437.js";
70
- import "../chunk-VCTY3W6J.js";
71
- import "../chunk-VI2UW6B6.js";
72
- import "../chunk-PC4UYEBM.js";
73
78
  import "../chunk-ONWEPEDO.js";
79
+ import "../chunk-WDHBCA3M.js";
74
80
  import "../chunk-PZ5AY32C.js";
75
81
 
76
82
  // src/contract/self-improve.ts
@@ -917,9 +923,6 @@ function fromFeedbackTable(opts) {
917
923
  // src/contract/intake/otel-spans.ts
918
924
  var SCORE_KEYS = ["tangle.score", "eval.score", "score"];
919
925
  var MODEL_KEYS = ["tangle.model", ...LLM_MODEL_ATTR_KEYS, "model"];
920
- var COST_KEYS = ["tangle.cost.usd", "gen_ai.usage.cost_usd", "cost.usd", "cost"];
921
- var INPUT_TOKEN_KEYS = [...LLM_INPUT_TOKEN_ATTR_KEYS, "tangle.tokens.in", "tokens.in"];
922
- var OUTPUT_TOKEN_KEYS = [...LLM_OUTPUT_TOKEN_ATTR_KEYS, "tangle.tokens.out", "tokens.out"];
923
926
  var PROMPT_HASH_KEYS = ["tangle.prompt_hash", "prompt.hash"];
924
927
  var CONFIG_HASH_KEYS = ["tangle.config_hash", "config.hash"];
925
928
  function fromOtelSpans(opts) {
@@ -929,19 +932,31 @@ function fromOtelSpans(opts) {
929
932
  for (const [groupKey, groupSpans2] of grouped) {
930
933
  const root = findRoot(groupSpans2);
931
934
  if (!root) continue;
935
+ const measurements = summarizeExecutionMeasurements(
936
+ groupSpans2.map((span) => ({
937
+ id: span.spanId,
938
+ ...span.parentSpanId ? { parentId: span.parentSpanId } : {},
939
+ attributes: span.attributes,
940
+ modelCall: isExplicitModelCall(span),
941
+ aggregate: isExplicitAggregate(span)
942
+ }))
943
+ );
944
+ const callSpanIds = new Set(measurements.callSpanIds);
945
+ const callSpans = groupSpans2.filter((span) => callSpanIds.has(span.spanId));
932
946
  const wallMs = Math.max(0, (root.endTimeUnixNano - root.startTimeUnixNano) / 1e6);
933
- const model = readAttrString(groupSpans2, MODEL_KEYS) ?? "unknown@unknown";
934
- const costUsd = readAttrNumber(groupSpans2, COST_KEYS) ?? 0;
935
- const inputTokens = readAttrNumber(groupSpans2, INPUT_TOKEN_KEYS) ?? 0;
936
- const outputTokens = readAttrNumber(groupSpans2, OUTPUT_TOKEN_KEYS) ?? 0;
947
+ const model = readAttrString(callSpans, MODEL_KEYS) ?? readAttrString(groupSpans2, MODEL_KEYS) ?? "unknown@unknown";
948
+ const capturedCost = (measurements.cost.complete ? measurements.cost.value : void 0) ?? measurements.aggregate?.costUsd;
949
+ const costUsd = capturedCost ?? 0;
937
950
  const promptHash = readAttrString(groupSpans2, PROMPT_HASH_KEYS) ?? "sha256:unknown";
938
951
  const configHash = readAttrString(groupSpans2, CONFIG_HASH_KEYS) ?? "sha256:unknown";
939
952
  const score = readAttrNumber(groupSpans2, SCORE_KEYS);
940
953
  const rawNumeric = collectNumericAttrs(groupSpans2);
941
- const tokenUsage = {
942
- input: inputTokens,
943
- output: outputTokens
944
- };
954
+ rawNumeric.error_span_count = groupSpans2.filter((span) => span.status?.code === "ERROR").length;
955
+ rawNumeric.llm_span_count = measurements.modelCallCount;
956
+ if (measurements.cost.value !== void 0 && !measurements.cost.complete) {
957
+ rawNumeric.partial_observed_cost_usd = measurements.cost.value;
958
+ }
959
+ recordAggregateMeasurements(rawNumeric, measurements.aggregate);
945
960
  const judgeScores = score !== void 0 ? {
946
961
  perJudge: { "otel-derived": { score } },
947
962
  perDimMean: { score },
@@ -964,7 +979,8 @@ function fromOtelSpans(opts) {
964
979
  commitSha: root.attributes["tangle.commit_sha"] ?? "unknown",
965
980
  wallMs,
966
981
  costUsd,
967
- tokenUsage,
982
+ costProvenance: capturedCost === void 0 ? { kind: "uncaptured", usd: null } : { kind: "observed", usd: capturedCost },
983
+ tokenUsage: measurements.tokenUsage,
968
984
  outcome,
969
985
  splitTag: defaultSplit,
970
986
  ...errorSpan ? { failureMode: errorSpan.name } : {}
@@ -972,6 +988,16 @@ function fromOtelSpans(opts) {
972
988
  }
973
989
  return runs;
974
990
  }
991
+ function isExplicitModelCall(span) {
992
+ const kind = span.attributes["openinference.span.kind"];
993
+ if (typeof kind === "string") return kind.toUpperCase() === "LLM";
994
+ const spanType = span.attributes["span.type"];
995
+ return typeof spanType === "string" && spanType.toLowerCase() === "llm_request" || span.name.toLowerCase().includes("llm") || readAttrString([span], MODEL_KEYS) !== void 0 || typeof span.attributes["gen_ai.operation.name"] === "string";
996
+ }
997
+ function isExplicitAggregate(span) {
998
+ const kind = span.attributes["openinference.span.kind"];
999
+ return typeof kind === "string" && kind.toUpperCase() !== "LLM";
1000
+ }
975
1001
  function groupSpans(spans) {
976
1002
  const m = /* @__PURE__ */ new Map();
977
1003
  for (const span of spans) {
@@ -1057,6 +1083,7 @@ export {
1057
1083
  runEval,
1058
1084
  runImprovementLoop,
1059
1085
  runReferenceEquivalenceJudge,
1060
- selfImprove
1086
+ selfImprove,
1087
+ summarizeExecution
1061
1088
  };
1062
1089
  //# sourceMappingURL=index.js.map