@tangle-network/agent-eval 0.117.0 → 0.118.0

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 +4276 -74
  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-DP3BBMYJ.js} +100 -143
  19. package/dist/chunk-DP3BBMYJ.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-ZUXV7UWZ.js → chunk-Q442S5AS.js} +73 -19
  32. package/dist/{chunk-ZUXV7UWZ.js.map → chunk-Q442S5AS.js.map} +1 -1
  33. package/dist/{chunk-ODVOOEWQ.js → chunk-QBRSJK47.js} +2 -2
  34. package/dist/{chunk-S2F4J57L.js → chunk-QKEGNI5B.js} +77 -32
  35. package/dist/chunk-QKEGNI5B.js.map +1 -0
  36. package/dist/{chunk-5UF54T55.js → chunk-S3UZOQ5Y.js} +34 -7
  37. package/dist/chunk-S3UZOQ5Y.js.map +1 -0
  38. package/dist/{chunk-FQNLDL4D.js → chunk-SVH2ANFD.js} +136 -4
  39. package/dist/chunk-SVH2ANFD.js.map +1 -0
  40. package/dist/{chunk-GQCZRZ7L.js → chunk-U5CHZ5M3.js} +9 -9
  41. package/dist/{chunk-TVVP3ZZQ.js → chunk-VQMK5FMP.js} +2 -1
  42. package/dist/{chunk-TVVP3ZZQ.js.map → chunk-VQMK5FMP.js.map} +1 -1
  43. package/dist/chunk-WDHBCA3M.js +31 -0
  44. package/dist/chunk-WDHBCA3M.js.map +1 -0
  45. package/dist/{chunk-HQPHZGL6.js → chunk-YLMUS4MM.js} +9 -9
  46. package/dist/{chunk-LQUTGLOZ.js → chunk-ZET2UAYW.js} +15 -65
  47. package/dist/chunk-ZET2UAYW.js.map +1 -0
  48. package/dist/contract/index.d.ts +4012 -38
  49. package/dist/contract/index.js +56 -29
  50. package/dist/contract/index.js.map +1 -1
  51. package/dist/control.d.ts +1013 -9
  52. package/dist/control.js +4 -3
  53. package/dist/fuzz.d.ts +194 -4
  54. package/dist/fuzz.js +3 -3
  55. package/dist/hosted/index.d.ts +498 -17
  56. package/dist/index.d.ts +10982 -1286
  57. package/dist/index.js +97 -80
  58. package/dist/index.js.map +1 -1
  59. package/dist/matrix/index.d.ts +139 -4
  60. package/dist/meta-eval/index.d.ts +862 -15
  61. package/dist/meta-eval/index.js +2 -1
  62. package/dist/meta-eval/index.js.map +1 -1
  63. package/dist/multishot/index.d.ts +214 -14
  64. package/dist/openapi.json +1 -1
  65. package/dist/pipelines/index.d.ts +392 -7
  66. package/dist/pipelines/index.js +5 -3
  67. package/dist/pipelines/index.js.map +1 -1
  68. package/dist/reporting.d.ts +1277 -17
  69. package/dist/rl.d.ts +2359 -28
  70. package/dist/rl.js +6 -5
  71. package/dist/rl.js.map +1 -1
  72. package/dist/storyboard/index.d.ts +86 -1
  73. package/dist/trace-attributes.d.ts +16 -0
  74. package/dist/trace-attributes.js +32 -0
  75. package/dist/trace-attributes.js.map +1 -0
  76. package/dist/traces.d.ts +1970 -697
  77. package/dist/traces.js +49 -32
  78. package/dist/wire/index.d.ts +655 -9
  79. package/docs/insight-report.md +44 -0
  80. package/package.json +9 -3
  81. package/dist/adversarial-B7loGVVX.d.ts +0 -19
  82. package/dist/analyst-C8HHvfJp.d.ts +0 -88
  83. package/dist/analyze-runs--2x39HZ7.d.ts +0 -81
  84. package/dist/baseline-DKq3gJpP.d.ts +0 -141
  85. package/dist/calibration-C8MTS7cw.d.ts +0 -101
  86. package/dist/chunk-5UF54T55.js.map +0 -1
  87. package/dist/chunk-E4BUPP7Z.js.map +0 -1
  88. package/dist/chunk-FQNLDL4D.js.map +0 -1
  89. package/dist/chunk-LQUTGLOZ.js.map +0 -1
  90. package/dist/chunk-S2F4J57L.js.map +0 -1
  91. package/dist/chunk-YZPO4UHR.js.map +0 -1
  92. package/dist/code-agent-session-CjZsVd19.d.ts +0 -87
  93. package/dist/control-6vuGfmDH.d.ts +0 -258
  94. package/dist/cost-ledger-DWy3XdJc.d.ts +0 -183
  95. package/dist/dataset-NENEzRgk.d.ts +0 -115
  96. package/dist/default-registry-DaK8b3fv.d.ts +0 -155
  97. package/dist/emitter-CjD7vUwv.d.ts +0 -122
  98. package/dist/errors-oeQrLqXC.d.ts +0 -74
  99. package/dist/failure-cluster-DOAcSJ87.d.ts +0 -76
  100. package/dist/feedback-trajectory-BUnM58xL.d.ts +0 -348
  101. package/dist/gepa-eESocoDi.d.ts +0 -642
  102. package/dist/index-PdX4VnPA.d.ts +0 -423
  103. package/dist/insight-report-DY4nDW9Q.d.ts +0 -310
  104. package/dist/integrity-DqlBiLyK.d.ts +0 -81
  105. package/dist/judge-calibration-7C-IDmKr.d.ts +0 -145
  106. package/dist/kind-factory-ClZmO25A.d.ts +0 -171
  107. package/dist/llm-client-qoDd18Qz.d.ts +0 -289
  108. package/dist/multi-layer-verifier-BsqKuLyN.d.ts +0 -150
  109. package/dist/off-policy-DiwuKKg7.d.ts +0 -132
  110. package/dist/outcome-store-rnXLEqSn.d.ts +0 -63
  111. package/dist/policy-edit-wG9uFEFm.d.ts +0 -455
  112. package/dist/pre-registration-BWQhJ3vz.d.ts +0 -761
  113. package/dist/provenance-DpjwyseI.d.ts +0 -541
  114. package/dist/query-CF7PG61p.d.ts +0 -35
  115. package/dist/raw-provider-sink-C46HDghv.d.ts +0 -132
  116. package/dist/release-report-C8G2i5Xi.d.ts +0 -236
  117. package/dist/researcher-C8XyxQsu.d.ts +0 -387
  118. package/dist/rubric-predictive-validity-p49lLVrE.d.ts +0 -105
  119. package/dist/run-record-BDH49H2E.d.ts +0 -360
  120. package/dist/runtime-trajectory-DGBIUt4B.d.ts +0 -49
  121. package/dist/schema-B3Q3l9Z_.d.ts +0 -201
  122. package/dist/semantic-concept-judge-CXnPEJbf.d.ts +0 -723
  123. package/dist/sequential-5iSVfzl2.d.ts +0 -139
  124. package/dist/series-convergence-D5OWMBg6.d.ts +0 -33
  125. package/dist/statistics-KUnG73jH.d.ts +0 -494
  126. package/dist/storage-DrX3v_5B.d.ts +0 -50
  127. package/dist/store-C1YxJDEK.d.ts +0 -248
  128. package/dist/store-DGqD0Pyo.d.ts +0 -116
  129. package/dist/summary-report-C5bKFfm-.d.ts +0 -445
  130. package/dist/test-graded-scenario-B0ybnPY7.d.ts +0 -166
  131. package/dist/types-BSw1rOUB.d.ts +0 -634
  132. package/dist/types-BUxNaJ8c.d.ts +0 -108
  133. package/dist/types-BkfcQnxV.d.ts +0 -313
  134. package/dist/verdict-C9MlYujm.d.ts +0 -35
  135. /package/dist/{chunk-VF3XSYTI.js.map → chunk-33JA4TFA.js.map} +0 -0
  136. /package/dist/{chunk-4JLWXDYA.js.map → chunk-3EHHMC6E.js.map} +0 -0
  137. /package/dist/{chunk-CCZIVI3F.js.map → chunk-BFW56GTT.js.map} +0 -0
  138. /package/dist/{chunk-HZHNRYHK.js.map → chunk-K6N6XJJX.js.map} +0 -0
  139. /package/dist/{chunk-MGEHEHSN.js.map → chunk-OIIMMLRB.js.map} +0 -0
  140. /package/dist/{chunk-DXZRATT5.js.map → chunk-OYZAPX5G.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