@tangle-network/agent-eval 0.133.0 → 0.133.2

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 (100) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +1 -1
  3. package/dist/agent-profile-cell-OhuTee9n.js +335 -0
  4. package/dist/agent-profile-cell-OhuTee9n.js.map +1 -0
  5. package/dist/{analyze-runs-BjPn_fOS.js → analyze-runs-B-afTpCv.js} +6 -19
  6. package/dist/analyze-runs-B-afTpCv.js.map +1 -0
  7. package/dist/{analyze-runs-DZr7JW-m.d.ts → analyze-runs-BmX-h_yn.d.ts} +3 -3
  8. package/dist/{analyze-runs-DZr7JW-m.d.ts.map → analyze-runs-BmX-h_yn.d.ts.map} +1 -1
  9. package/dist/{baseline-HsBvw_dk.js → baseline-DcX5hQDv.js} +2 -70
  10. package/dist/{baseline-HsBvw_dk.js.map → baseline-DcX5hQDv.js.map} +1 -1
  11. package/dist/baseline-hG3K85h4.d.ts.map +1 -1
  12. package/dist/benchmarks/index.d.ts +1 -1
  13. package/dist/benchmarks/index.js +1 -1
  14. package/dist/{benchmarks-DncrVrSr.js → benchmarks-CJr1H1_a.js} +3 -3
  15. package/dist/{benchmarks-DncrVrSr.js.map → benchmarks-CJr1H1_a.js.map} +1 -1
  16. package/dist/builder-eval/index.js +1 -1
  17. package/dist/campaign/index.d.ts +3 -3
  18. package/dist/campaign/index.js +2 -2
  19. package/dist/{campaign-CyQMCCEU.js → campaign-BJjn1rhw.js} +19 -13
  20. package/dist/{campaign-CyQMCCEU.js.map → campaign-BJjn1rhw.js.map} +1 -1
  21. package/dist/{client-D4F9hdzR.d.ts → client-COvaLoQG.d.ts} +2 -2
  22. package/dist/{client-D4F9hdzR.d.ts.map → client-COvaLoQG.d.ts.map} +1 -1
  23. package/dist/contract/index.d.ts +3 -3
  24. package/dist/contract/index.js +5 -5
  25. package/dist/control.js +1 -1
  26. package/dist/{eval-campaign-CYkUME2T.js → eval-campaign-DXhpZghy.js} +4 -5
  27. package/dist/{eval-campaign-CYkUME2T.js.map → eval-campaign-DXhpZghy.js.map} +1 -1
  28. package/dist/hosted/index.d.ts +1 -1
  29. package/dist/index-3cdlURSk.d.ts.map +1 -1
  30. package/dist/{index-CiP2DRCj.d.ts → index-BREtv3ZZ.d.ts} +3 -3
  31. package/dist/{index-CiP2DRCj.d.ts.map → index-BREtv3ZZ.d.ts.map} +1 -1
  32. package/dist/{index-B_eUhU9K.d.ts → index-C7Wue8R6.d.ts} +28 -5
  33. package/dist/{index-B_eUhU9K.d.ts.map → index-C7Wue8R6.d.ts.map} +1 -1
  34. package/dist/{index-BAvgST_9.d.ts → index-nhIYz9hn.d.ts} +67 -9
  35. package/dist/index-nhIYz9hn.d.ts.map +1 -0
  36. package/dist/index.d.ts +7 -7
  37. package/dist/index.js +25 -18
  38. package/dist/index.js.map +1 -1
  39. package/dist/ledger-core/index.d.ts +2 -2
  40. package/dist/ledger-core/index.js +2 -2
  41. package/dist/ledger-core-CPZfcrC2.js +620 -0
  42. package/dist/ledger-core-CPZfcrC2.js.map +1 -0
  43. package/dist/meta-eval/index.js +2 -2
  44. package/dist/{mint-D5_87M5L.js → mint-BvkwcYZU.js} +2 -2
  45. package/dist/{mint-D5_87M5L.js.map → mint-BvkwcYZU.js.map} +1 -1
  46. package/dist/openapi.json +1 -1
  47. package/dist/{opencode-sqlite-BGrHeDu3.js → opencode-sqlite-8r6WUfHc.js} +2 -3
  48. package/dist/opencode-sqlite-8r6WUfHc.js.map +1 -0
  49. package/dist/{paired-arms-D9D0wXj2.js → paired-arms-6XItKzd1.js} +2 -2
  50. package/dist/{paired-arms-D9D0wXj2.js.map → paired-arms-6XItKzd1.js.map} +1 -1
  51. package/dist/pipelines/index.js +2 -2
  52. package/dist/profile-cell.js +1 -242
  53. package/dist/{propose-review-control-Bqb7daEJ.js → propose-review-control-SQ-n9-We.js} +2 -2
  54. package/dist/{propose-review-control-Bqb7daEJ.js.map → propose-review-control-SQ-n9-We.js.map} +1 -1
  55. package/dist/{release-report-DfmKSIEE.d.ts → release-report-CjHWa8Ia.d.ts} +2 -2
  56. package/dist/{release-report-DfmKSIEE.d.ts.map → release-report-CjHWa8Ia.d.ts.map} +1 -1
  57. package/dist/{release-report-oWt9f2k-.js → release-report-wuilQkvK.js} +3 -3
  58. package/dist/{release-report-oWt9f2k-.js.map → release-report-wuilQkvK.js.map} +1 -1
  59. package/dist/{replay-BMR4TEYY.js → replay-CJfGLdx4.js} +3 -3
  60. package/dist/{replay-BMR4TEYY.js.map → replay-CJfGLdx4.js.map} +1 -1
  61. package/dist/reporting.d.ts +2 -2
  62. package/dist/reporting.js +4 -4
  63. package/dist/{researcher-DMimgHtN.d.ts → researcher-CbSKhK8z.d.ts} +2 -2
  64. package/dist/{researcher-DMimgHtN.d.ts.map → researcher-CbSKhK8z.d.ts.map} +1 -1
  65. package/dist/{reward-hacking-BEvjdUtD.js → reward-hacking-Dl2UBzej.js} +3 -3
  66. package/dist/{reward-hacking-BEvjdUtD.js.map → reward-hacking-Dl2UBzej.js.map} +1 -1
  67. package/dist/rl.d.ts +1 -1
  68. package/dist/rl.js +6 -6
  69. package/dist/rollout/index.js +3 -3
  70. package/dist/{rollout-VEo41J0N.js → rollout-CreDz__7.js} +3 -3
  71. package/dist/{rollout-VEo41J0N.js.map → rollout-CreDz__7.js.map} +1 -1
  72. package/dist/{rubric-predictive-validity-B3xmbmS1.js → rubric-predictive-validity-QG7ydk0s.js} +2 -2
  73. package/dist/{rubric-predictive-validity-B3xmbmS1.js.map → rubric-predictive-validity-QG7ydk0s.js.map} +1 -1
  74. package/dist/{run-record-CN8Zd21B.js → run-record-BIwU2wdV.js} +2 -2
  75. package/dist/{run-record-CN8Zd21B.js.map → run-record-BIwU2wdV.js.map} +1 -1
  76. package/dist/{skillopt-optimization-method-DgN7U9iR.js → skillopt-optimization-method-CF6a327Q.js} +8 -4
  77. package/dist/{skillopt-optimization-method-DgN7U9iR.js.map → skillopt-optimization-method-CF6a327Q.js.map} +1 -1
  78. package/dist/{skillopt-optimization-method-CAASpcS3.d.ts → skillopt-optimization-method-wHF5xsUv.d.ts} +2 -2
  79. package/dist/{skillopt-optimization-method-CAASpcS3.d.ts.map → skillopt-optimization-method-wHF5xsUv.d.ts.map} +1 -1
  80. package/dist/{statistics-CnnxdpOg.js → statistics-DWM_AyLe.js} +90 -76
  81. package/dist/statistics-DWM_AyLe.js.map +1 -0
  82. package/dist/statistics-DbvkkDPa.d.ts.map +1 -1
  83. package/dist/{summary-report-DnUcjVpV.d.ts → summary-report-CFnQgNfg.d.ts} +2 -2
  84. package/dist/{summary-report-DnUcjVpV.d.ts.map → summary-report-CFnQgNfg.d.ts.map} +1 -1
  85. package/dist/{summary-report-BNs5nmXI.js → summary-report-Ci17nIdU.js} +4 -4
  86. package/dist/{summary-report-BNs5nmXI.js.map → summary-report-Ci17nIdU.js.map} +1 -1
  87. package/dist/supervisor-run/index.js +1 -1
  88. package/dist/{supervisor-run-_lnTLM3z.js → supervisor-run-B7lUGoyZ.js} +2 -2
  89. package/dist/{supervisor-run-_lnTLM3z.js.map → supervisor-run-B7lUGoyZ.js.map} +1 -1
  90. package/dist/traces.js +1 -1
  91. package/package.json +1 -1
  92. package/dist/analyze-runs-BjPn_fOS.js.map +0 -1
  93. package/dist/index-BAvgST_9.d.ts.map +0 -1
  94. package/dist/ledger-core-eqaI3PCD.js +0 -388
  95. package/dist/ledger-core-eqaI3PCD.js.map +0 -1
  96. package/dist/opencode-sqlite-BGrHeDu3.js.map +0 -1
  97. package/dist/pre-registration-DakwTRXk.js +0 -96
  98. package/dist/pre-registration-DakwTRXk.js.map +0 -1
  99. package/dist/profile-cell.js.map +0 -1
  100. package/dist/statistics-CnnxdpOg.js.map +0 -1
@@ -1,243 +1,2 @@
1
- import { s as ValidationError } from "./errors-8YnH8WlF.js";
2
- import { r as hashJson } from "./pre-registration-DakwTRXk.js";
3
- //#region src/agent-profile-cell.ts
4
- var AgentProfileCellValidationError = class extends ValidationError {
5
- path;
6
- constructor(message, path = "") {
7
- super(path ? `${message} (at ${path})` : message);
8
- this.path = path;
9
- }
10
- };
11
- const SHA256_HEX = /^[0-9a-f]{64}$/;
12
- const CELL_ID = /^agent-profile-cell:sha256:[0-9a-f]{64}$/;
13
- async function buildAgentProfileCell(input) {
14
- const material = await normalizeAgentProfileCellInput(input);
15
- const cellId = `agent-profile-cell:sha256:${await hashJson(material)}`;
16
- return {
17
- ...material,
18
- cellId
19
- };
20
- }
21
- function agentProfileCellHashMaterial(cell) {
22
- const { cellId: _cellId, ...material } = cell;
23
- return normalizeAgentProfileCell(material);
24
- }
25
- /**
26
- * Verify an `AgentProfileCell`'s `cellId` matches the sha256 of its hash-material fields, confirming the record has not been tampered with.
27
- */
28
- async function verifyAgentProfileCell(cell) {
29
- validateAgentProfileCell(cell);
30
- return cell.cellId === `agent-profile-cell:sha256:${await hashJson(agentProfileCellHashMaterial(cell))}`;
31
- }
32
- function validateAgentProfileCell(input) {
33
- if (input === null || typeof input !== "object") throw new AgentProfileCellValidationError("expected object");
34
- const obj = input;
35
- expectLiteral(obj.schemaVersion, "agent-profile-cell/v1", "schemaVersion");
36
- if (typeof obj.cellId !== "string" || !CELL_ID.test(obj.cellId)) throw new AgentProfileCellValidationError("cellId must match agent-profile-cell:sha256:<64 lowercase hex chars>", "cellId");
37
- expectString(obj.profileId, "profileId");
38
- validateSource(obj.sourceProfile, "sourceProfile");
39
- if (obj.harness !== void 0) validateHarness(obj.harness, "harness");
40
- if (obj.model !== void 0) expectString(obj.model, "model");
41
- if (obj.promptHash !== void 0) expectString(obj.promptHash, "promptHash");
42
- if (obj.dimensions !== void 0) validateDimensions(obj.dimensions, "dimensions");
43
- return input;
44
- }
45
- function requireAgentProfileCell(record) {
46
- if (!record.agentProfile) throw new AgentProfileCellValidationError(`run "${record.runId}" is missing agentProfile; profile-cell grouping requires explicit profile identity`, "agentProfile");
47
- return validateAgentProfileCell(record.agentProfile);
48
- }
49
- function agentProfileCellKey(record) {
50
- return requireAgentProfileCell(record).cellId;
51
- }
52
- async function assertRunAgentProfileCell(record) {
53
- const profile = requireAgentProfileCell(record);
54
- if (!await verifyAgentProfileCell(profile)) throw new AgentProfileCellValidationError(`run "${record.runId}" has an agentProfile.cellId that does not match its content`, "agentProfile.cellId");
55
- if (profile.model !== void 0 && profile.model !== record.model) throw new AgentProfileCellValidationError(`run "${record.runId}" agentProfile.model "${profile.model}" does not match model "${record.model}"`, "agentProfile.model");
56
- if (profile.promptHash !== void 0 && profile.promptHash !== record.promptHash) throw new AgentProfileCellValidationError(`run "${record.runId}" agentProfile.promptHash "${profile.promptHash}" does not match promptHash "${record.promptHash}"`, "agentProfile.promptHash");
57
- return profile;
58
- }
59
- function groupRunsByAgentProfileCell(records) {
60
- const groups = /* @__PURE__ */ new Map();
61
- for (const record of records) {
62
- const key = agentProfileCellKey(record);
63
- const bucket = groups.get(key);
64
- if (bucket) bucket.push(record);
65
- else groups.set(key, [record]);
66
- }
67
- return groups;
68
- }
69
- async function normalizeAgentProfileCellInput(input) {
70
- return normalizeAgentProfileCell({
71
- schemaVersion: "agent-profile-cell/v1",
72
- profileId: input.profileId,
73
- sourceProfile: await normalizeSourceInput(input.sourceProfile),
74
- harness: input.harness,
75
- model: input.model,
76
- promptHash: input.promptHash,
77
- dimensions: input.dimensions
78
- });
79
- }
80
- function normalizeAgentProfileCell(input) {
81
- return compactObject({
82
- schemaVersion: "agent-profile-cell/v1",
83
- profileId: requireNonEmpty(input.profileId, "profileId"),
84
- sourceProfile: normalizeSource(input.sourceProfile),
85
- harness: input.harness ? normalizeHarness(input.harness, "harness") : void 0,
86
- model: optionalNonEmpty(input.model, "model"),
87
- promptHash: optionalNonEmpty(input.promptHash, "promptHash"),
88
- dimensions: input.dimensions ? nonEmptyRecord(normalizeDimensions(input.dimensions)) : void 0
89
- });
90
- }
91
- async function normalizeSourceInput(input) {
92
- const kind = requireNonEmpty(input.kind, "sourceProfile.kind");
93
- if (input.hash !== void 0 && input.profile !== void 0) throw new AgentProfileCellValidationError("sourceProfile must provide either hash or profile, not both", "sourceProfile");
94
- if (input.hash !== void 0) return {
95
- kind,
96
- hash: requireSha256Hex(input.hash, "sourceProfile.hash")
97
- };
98
- if (input.profile === void 0) throw new AgentProfileCellValidationError("sourceProfile must provide hash or profile", "sourceProfile");
99
- assertJson(input.profile, "sourceProfile.profile");
100
- return {
101
- kind,
102
- hash: await hashJson(input.profile)
103
- };
104
- }
105
- function normalizeSource(input) {
106
- return {
107
- kind: requireNonEmpty(input.kind, "sourceProfile.kind"),
108
- hash: requireSha256Hex(input.hash, "sourceProfile.hash")
109
- };
110
- }
111
- function normalizeHarness(input, path) {
112
- return compactObject({
113
- id: requireNonEmpty(input.id, `${path}.id`),
114
- version: optionalNonEmpty(input.version, `${path}.version`),
115
- hash: optionalNonEmpty(input.hash, `${path}.hash`)
116
- });
117
- }
118
- function normalizeDimensions(input) {
119
- const out = {};
120
- for (const key of Object.keys(input).sort()) {
121
- const value = input[key];
122
- requireNonEmpty(key, "dimensions.<key>");
123
- if (value !== null && typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") throw new AgentProfileCellValidationError("expected primitive dimension value", `dimensions.${key}`);
124
- if (typeof value === "number" && !Number.isFinite(value)) throw new AgentProfileCellValidationError("expected finite number", `dimensions.${key}`);
125
- out[key] = value;
126
- }
127
- return out;
128
- }
129
- function compactObject(input) {
130
- const out = {};
131
- for (const [key, value] of Object.entries(input)) if (value !== void 0) out[key] = value;
132
- return out;
133
- }
134
- function nonEmptyRecord(input) {
135
- return Object.keys(input).length > 0 ? input : void 0;
136
- }
137
- function validateSource(value, path) {
138
- if (value === null || typeof value !== "object" || Array.isArray(value)) throw new AgentProfileCellValidationError("expected object", path);
139
- const rec = value;
140
- expectString(rec.kind, `${path}.kind`);
141
- requireSha256Hex(rec.hash, `${path}.hash`);
142
- }
143
- function validateHarness(value, path) {
144
- if (value === null || typeof value !== "object" || Array.isArray(value)) throw new AgentProfileCellValidationError("expected object", path);
145
- const rec = value;
146
- expectString(rec.id, `${path}.id`);
147
- if (rec.version !== void 0) expectString(rec.version, `${path}.version`);
148
- if (rec.hash !== void 0) expectString(rec.hash, `${path}.hash`);
149
- }
150
- function validateDimensions(value, path) {
151
- if (value === null || typeof value !== "object" || Array.isArray(value)) throw new AgentProfileCellValidationError("expected object", path);
152
- normalizeDimensions(value);
153
- }
154
- function assertJson(value, path) {
155
- if (value === null) return;
156
- const type = typeof value;
157
- if (type === "string" || type === "boolean") return;
158
- if (type === "number") {
159
- if (!Number.isFinite(value)) throw new AgentProfileCellValidationError("expected finite number", path);
160
- return;
161
- }
162
- if (Array.isArray(value)) {
163
- value.forEach((item, index) => {
164
- assertJson(item, `${path}[${index}]`);
165
- });
166
- return;
167
- }
168
- if (type === "object") {
169
- for (const [key, nested] of Object.entries(value)) {
170
- requireNonEmpty(key, `${path}.<key>`);
171
- assertJson(nested, `${path}.${key}`);
172
- }
173
- return;
174
- }
175
- throw new AgentProfileCellValidationError("expected JSON-compatible value", path);
176
- }
177
- function expectLiteral(value, expected, path) {
178
- if (value !== expected) throw new AgentProfileCellValidationError(`expected ${expected}`, path);
179
- }
180
- function expectString(value, path) {
181
- if (typeof value !== "string" || value.length === 0) throw new AgentProfileCellValidationError("expected non-empty string", path);
182
- }
183
- function requireNonEmpty(value, path) {
184
- if (typeof value !== "string" || value.length === 0) throw new AgentProfileCellValidationError("expected non-empty string", path);
185
- return value;
186
- }
187
- function optionalNonEmpty(value, path) {
188
- if (value === void 0) return void 0;
189
- return requireNonEmpty(value, path);
190
- }
191
- function requireSha256Hex(value, path) {
192
- if (typeof value !== "string" || !SHA256_HEX.test(value)) throw new AgentProfileCellValidationError("expected 64 lowercase sha256 hex chars", path);
193
- return value;
194
- }
195
- /** Canonical `sourceProfile.kind` values. Two products fingerprinting the
196
- * same canonical profile MUST use the same kind for their cells to share
197
- * `sourceProfile.hash`. Extend rather than create new strings — adding a
198
- * new kind is a deliberate cross-product schema change. */
199
- const AGENT_PROFILE_KINDS = {
200
- /** A profile declared via `defineAgentProfile(...)` from
201
- * `@tangle-network/agent-interface`. The default kind for router-backed
202
- * and sandbox-backed products. */
203
- AGENT_INTERFACE_PROFILE: "agent-interface-profile" };
204
- /** Canonicalize an arbitrary value into `AgentProfileJson` by JSON
205
- * round-trip. Throws when the value contains anything not representable
206
- * as JSON (functions, BigInt, cycles) — non-portable profiles fail loud
207
- * rather than silently dropping fields. */
208
- function toAgentProfileJson(value) {
209
- let serialized;
210
- try {
211
- serialized = JSON.stringify(value);
212
- } catch (err) {
213
- throw new AgentProfileCellValidationError(`agent profile must be JSON-serializable: ${err instanceof Error ? err.message : String(err)}`, "sourceProfile.profile");
214
- }
215
- if (serialized === void 0) throw new AgentProfileCellValidationError("agent profile must be JSON-serializable (got undefined after JSON.stringify)", "sourceProfile.profile");
216
- return JSON.parse(serialized);
217
- }
218
- /** Higher-level helper that hard-codes the canonical
219
- * `agent-interface-profile` kind plus the JSON canonicalization. Equivalent
220
- * to calling `buildAgentProfileCell` with `profileId = \`${name}@${version}\``
221
- * and `sourceProfile = { kind: AGENT_INTERFACE_PROFILE, profile: <round-tripped> }`.
222
- *
223
- * Use this from any product consuming an agent-interface `AgentProfile`; the
224
- * manual `buildAgentProfileCell` call is reserved for advanced cases
225
- * (custom kinds, pre-computed source hashes, alternate profileId
226
- * conventions). */
227
- async function buildAgentInterfaceProfileCell(profile, input) {
228
- if (!profile || typeof profile !== "object") throw new AgentProfileCellValidationError("AgentProfile must be an object", "profile");
229
- if (typeof profile.name !== "string" || profile.name.length === 0) throw new AgentProfileCellValidationError("AgentProfile must have a non-empty `name`", "profile.name");
230
- if (typeof profile.version !== "string" || profile.version.length === 0) throw new AgentProfileCellValidationError("AgentProfile must have a non-empty `version`", "profile.version");
231
- return buildAgentProfileCell({
232
- ...input,
233
- profileId: `${profile.name}@${profile.version}`,
234
- sourceProfile: {
235
- kind: AGENT_PROFILE_KINDS.AGENT_INTERFACE_PROFILE,
236
- profile: toAgentProfileJson(profile)
237
- }
238
- });
239
- }
240
- //#endregion
1
+ import { a as assertRunAgentProfileCell, c as groupRunsByAgentProfileCell, d as validateAgentProfileCell, f as verifyAgentProfileCell, i as agentProfileCellKey, l as requireAgentProfileCell, n as AgentProfileCellValidationError, o as buildAgentInterfaceProfileCell, r as agentProfileCellHashMaterial, s as buildAgentProfileCell, t as AGENT_PROFILE_KINDS, u as toAgentProfileJson } from "./agent-profile-cell-OhuTee9n.js";
241
2
  export { AGENT_PROFILE_KINDS, AgentProfileCellValidationError, agentProfileCellHashMaterial, agentProfileCellKey, assertRunAgentProfileCell, buildAgentInterfaceProfileCell, buildAgentProfileCell, groupRunsByAgentProfileCell, requireAgentProfileCell, toAgentProfileJson, validateAgentProfileCell, verifyAgentProfileCell };
242
-
243
- //# sourceMappingURL=profile-cell.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as TraceEmitter } from "./emitter-CPBAhxum.js";
2
- import { s as validateRunRecord } from "./run-record-CN8Zd21B.js";
2
+ import { s as validateRunRecord } from "./run-record-BIwU2wdV.js";
3
3
  import { appendFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
4
4
  import { dirname } from "node:path";
5
5
  //#region src/action-policy.ts
@@ -1455,4 +1455,4 @@ function controlFailureClassFromVerification(verification) {
1455
1455
  //#endregion
1456
1456
  export { observeAll as _, jsonlReviewStore as a, scoreFromEvals as c, runAgentControlLoop as d, stopOnNoProgress as f, noProgressDetector as g, errorStreakDetector as h, inMemoryReviewStore as i, allCriticalPassed as l, subjectiveEval as m, runProposeReviewAsControlLoop as n, runProposeReview as o, stopOnRepeatedAction as p, createLlmReviewer as r, controlRunToRunRecord as s, controlFailureClassFromVerification as t, objectiveEval as u, repeatedActionDetector as v, evaluateActionPolicy as y };
1457
1457
 
1458
- //# sourceMappingURL=propose-review-control-Bqb7daEJ.js.map
1458
+ //# sourceMappingURL=propose-review-control-SQ-n9-We.js.map