@tangle-network/agent-eval 0.122.3 → 0.122.5

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  summarizeBackendIntegrity
3
- } from "./chunk-N3QPYIVG.js";
3
+ } from "./chunk-FZ26ORA6.js";
4
4
  import {
5
5
  paretoChart
6
6
  } from "./chunk-DPZAEKA6.js";
@@ -995,4 +995,4 @@ export {
995
995
  summarizeExecution,
996
996
  analyzeRuns
997
997
  };
998
- //# sourceMappingURL=chunk-BD2OK6ZW.js.map
998
+ //# sourceMappingURL=chunk-JUOZI4L3.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fsCampaignStorage,
3
3
  runCampaign
4
- } from "./chunk-N3QPYIVG.js";
4
+ } from "./chunk-FZ26ORA6.js";
5
5
  import {
6
6
  __export
7
7
  } from "./chunk-PZ5AY32C.js";
@@ -763,4 +763,4 @@ export {
763
763
  retrievalMetricsAtCutoff,
764
764
  benchmarks_exports
765
765
  };
766
- //# sourceMappingURL=chunk-OZFTLMGS.js.map
766
+ //# sourceMappingURL=chunk-WULRYLNC.js.map
@@ -1386,6 +1386,11 @@ interface Scenario {
1386
1386
  id: string;
1387
1387
  kind: string;
1388
1388
  tags?: string[];
1389
+ /**
1390
+ * Variants with the same non-empty value receive the same seed for a given
1391
+ * replicate. Leave unset when every scenario should have an independent seed.
1392
+ */
1393
+ seedGroup?: string;
1389
1394
  }
1390
1395
  /** Redacted identity of a complete scenario payload retained in campaign results. */
1391
1396
  interface CampaignScenarioIdentity extends Pick<Scenario, 'id' | 'kind'> {
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  analyzeRuns,
16
16
  summarizeExecution
17
- } from "../chunk-BD2OK6ZW.js";
17
+ } from "../chunk-JUOZI4L3.js";
18
18
  import {
19
19
  REFERENCE_EQUIVALENCE_INPUT_LIMITS,
20
20
  REFERENCE_EQUIVALENCE_JUDGE_VERSION,
@@ -36,7 +36,7 @@ import {
36
36
  runReferenceEquivalenceJudge,
37
37
  surfaceContentHash,
38
38
  surfaceHash
39
- } from "../chunk-DHJJACEX.js";
39
+ } from "../chunk-FLCXOTWF.js";
40
40
  import {
41
41
  campaignSplitDigest,
42
42
  createRunCostLedger,
@@ -44,7 +44,7 @@ import {
44
44
  inMemoryCampaignStorage,
45
45
  resolveRunDir,
46
46
  runCampaign
47
- } from "../chunk-N3QPYIVG.js";
47
+ } from "../chunk-FZ26ORA6.js";
48
48
  import {
49
49
  buildDefaultAnalystRegistry,
50
50
  createChatClient
package/dist/index.d.ts CHANGED
@@ -7520,6 +7520,11 @@ interface Scenario {
7520
7520
  id: string;
7521
7521
  kind: string;
7522
7522
  tags?: string[];
7523
+ /**
7524
+ * Variants with the same non-empty value receive the same seed for a given
7525
+ * replicate. Leave unset when every scenario should have an independent seed.
7526
+ */
7527
+ seedGroup?: string;
7523
7528
  }
7524
7529
  /** Redacted identity of a complete scenario payload retained in campaign results. */
7525
7530
  interface CampaignScenarioIdentity extends Pick<Scenario, 'id' | 'kind'> {
@@ -14081,6 +14086,35 @@ declare namespace index$2 {
14081
14086
  export { index$2_ROUTING_DATASET as ROUTING_DATASET, index$2_RoutingAdapter as RoutingAdapter, type index$2_RoutingDatasetItem as RoutingDatasetItem, type index$2_RoutingItem as RoutingItem, type index$2_RoutingPayload as RoutingPayload, index$2_assignSplit as assignSplit, index$2_evaluate as evaluate, index$2_extractRouteTokens as extractRouteTokens, index$2_loadDataset as loadDataset };
14082
14087
  }
14083
14088
 
14089
+ /**
14090
+ * `CampaignStorage` — the filesystem seam `runCampaign` writes through
14091
+ * (run/cell dirs, the resumability cache, per-cell artifacts, trace spans).
14092
+ *
14093
+ * The default (`fsCampaignStorage`) is the Node filesystem — identical
14094
+ * behavior to the inline `node:fs` calls it replaces, so existing CLI
14095
+ * consumers are unaffected. `inMemoryCampaignStorage` keeps everything in a
14096
+ * `Map`, so the substrate runs in environments WITHOUT a filesystem
14097
+ * (Cloudflare Workers, Deno Deploy, other edge runtimes) — the campaign
14098
+ * still produces its `CampaignResult` (cells + aggregates) in memory;
14099
+ * artifacts/traces simply aren't persisted to disk.
14100
+ *
14101
+ * Paths are opaque keys to the in-memory adapter — it does not parse them,
14102
+ * so the same `join(...)`-built paths work unchanged across both adapters.
14103
+ */
14104
+ interface CampaignStorage {
14105
+ /** Ensure a directory exists (recursive). No-op for in-memory. */
14106
+ ensureDir(dir: string): void;
14107
+ /** Does this path exist (as a written file or an ensured dir)? */
14108
+ exists(path: string): boolean;
14109
+ /** Read a UTF-8 file; `undefined` when missing or unreadable. */
14110
+ read(path: string): string | undefined;
14111
+ /** Write a file (string or bytes). Parent dir is assumed ensured. */
14112
+ write(path: string, content: string | Uint8Array): void;
14113
+ /** Append only when the current UTF-8 byte length matches `expectedBytes`.
14114
+ * Returns the new length, or undefined when another writer won. */
14115
+ append?(path: string, content: string, expectedBytes: number): number | undefined;
14116
+ }
14117
+
14084
14118
  /**
14085
14119
  * `openAutoPr` — thin shell-out helper for the `runImprovementLoop` preset's
14086
14120
  * `autoOnPromote: 'pr'` mode. Substitutes for the per-product PR-opening
@@ -14130,35 +14164,6 @@ interface OpenAutoPrResult {
14130
14164
  */
14131
14165
  declare function openAutoPr<TArtifact, TScenario extends Scenario>(options: OpenAutoPrOptions<TArtifact, TScenario>): OpenAutoPrResult;
14132
14166
 
14133
- /**
14134
- * `CampaignStorage` — the filesystem seam `runCampaign` writes through
14135
- * (run/cell dirs, the resumability cache, per-cell artifacts, trace spans).
14136
- *
14137
- * The default (`fsCampaignStorage`) is the Node filesystem — identical
14138
- * behavior to the inline `node:fs` calls it replaces, so existing CLI
14139
- * consumers are unaffected. `inMemoryCampaignStorage` keeps everything in a
14140
- * `Map`, so the substrate runs in environments WITHOUT a filesystem
14141
- * (Cloudflare Workers, Deno Deploy, other edge runtimes) — the campaign
14142
- * still produces its `CampaignResult` (cells + aggregates) in memory;
14143
- * artifacts/traces simply aren't persisted to disk.
14144
- *
14145
- * Paths are opaque keys to the in-memory adapter — it does not parse them,
14146
- * so the same `join(...)`-built paths work unchanged across both adapters.
14147
- */
14148
- interface CampaignStorage {
14149
- /** Ensure a directory exists (recursive). No-op for in-memory. */
14150
- ensureDir(dir: string): void;
14151
- /** Does this path exist (as a written file or an ensured dir)? */
14152
- exists(path: string): boolean;
14153
- /** Read a UTF-8 file; `undefined` when missing or unreadable. */
14154
- read(path: string): string | undefined;
14155
- /** Write a file (string or bytes). Parent dir is assumed ensured. */
14156
- write(path: string, content: string | Uint8Array): void;
14157
- /** Append only when the current UTF-8 byte length matches `expectedBytes`.
14158
- * Returns the new length, or undefined when another writer won. */
14159
- append?(path: string, content: string, expectedBytes: number): number | undefined;
14160
- }
14161
-
14162
14167
  /**
14163
14168
  * `runOptimization` — the improvement loop body. Runs N generations: the
14164
14169
  * `SurfaceProposer` proposes K candidate surfaces per generation, each
package/dist/index.js CHANGED
@@ -9,12 +9,12 @@ import {
9
9
  checkBehavioralCanary,
10
10
  checkCanaries,
11
11
  runBehavioralCanaries
12
- } from "./chunk-BD2OK6ZW.js";
12
+ } from "./chunk-JUOZI4L3.js";
13
13
  import {
14
14
  BENCHMARK_SPLIT_SEED,
15
15
  benchmarks_exports,
16
16
  deterministicSplit
17
- } from "./chunk-OZFTLMGS.js";
17
+ } from "./chunk-WULRYLNC.js";
18
18
  import {
19
19
  DEFAULT_RULES,
20
20
  buildTrajectory,
@@ -53,7 +53,7 @@ import {
53
53
  pairArms,
54
54
  parseCorrectnessResponse,
55
55
  verifyCompletion
56
- } from "./chunk-IDC74VDL.js";
56
+ } from "./chunk-GLUBGL77.js";
57
57
  import {
58
58
  DEFAULT_MUTATION_PRIMITIVES,
59
59
  DEFAULT_RED_TEAM_CORPUS,
@@ -91,7 +91,7 @@ import {
91
91
  scoreRedTeamOutput,
92
92
  surfaceContentHash,
93
93
  toolNamesForRun
94
- } from "./chunk-DHJJACEX.js";
94
+ } from "./chunk-FLCXOTWF.js";
95
95
  import {
96
96
  BackendIntegrityError,
97
97
  assertRealAgentReceipts,
@@ -103,7 +103,7 @@ import {
103
103
  inMemoryVerdictCache,
104
104
  summarizeAgentReceiptIntegrity,
105
105
  summarizeBackendIntegrity
106
- } from "./chunk-N3QPYIVG.js";
106
+ } from "./chunk-FZ26ORA6.js";
107
107
  import {
108
108
  DEFAULT_COMPLEXITY_WEIGHTS,
109
109
  FindingsStore,
package/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "@tangle-network/agent-eval — wire protocol",
5
- "version": "0.122.3",
5
+ "version": "0.122.5",
6
6
  "description": "HTTP and stdio RPC interface to agent-eval. The TypeScript runtime is the source of truth; this spec is the contract that cross-language clients (Python, Rust, Go) generate from.\n\nWire-protocol version: 1.0.0. Bumps on breaking changes to request/response schemas.",
7
7
  "contact": {
8
8
  "name": "Tangle Network",
package/dist/rl.d.ts CHANGED
@@ -3569,6 +3569,11 @@ interface Scenario {
3569
3569
  id: string;
3570
3570
  kind: string;
3571
3571
  tags?: string[];
3572
+ /**
3573
+ * Variants with the same non-empty value receive the same seed for a given
3574
+ * replicate. Leave unset when every scenario should have an independent seed.
3575
+ */
3576
+ seedGroup?: string;
3572
3577
  }
3573
3578
  /** Redacted identity of a complete scenario payload retained in campaign results. */
3574
3579
  interface CampaignScenarioIdentity extends Pick<Scenario, 'id' | 'kind'> {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  planCampaignRun,
3
3
  runCampaign
4
- } from "./chunk-N3QPYIVG.js";
4
+ } from "./chunk-FZ26ORA6.js";
5
5
  import "./chunk-PJQFMIOX.js";
6
6
  import "./chunk-ZMXDQ4K7.js";
7
7
  import "./chunk-VI2UW6B6.js";
@@ -11,4 +11,4 @@ export {
11
11
  planCampaignRun,
12
12
  runCampaign
13
13
  };
14
- //# sourceMappingURL=run-campaign-2YJ3Z6JS.js.map
14
+ //# sourceMappingURL=run-campaign-56EB2UN5.js.map
@@ -15,6 +15,9 @@ composition point already exists (see Produced-state grading below).**
15
15
  | `runOptimization` | GENERATE: measured or validated premeasured baseline → N generations of propose → measure → rank → promote. No release gate. | generations + winner |
16
16
  | `runImprovementLoop` | The release-gate shell around `runOptimization`: adds a held-out re-score + a promotion gate (+ optional auto-PR). | gate decision + winner |
17
17
  | `runEvalCampaign` | Inversion-of-control variant of `runCampaign` — the runner is handed a pre-wired trace/sink/emitter and integrity gating as a precondition. Use when you need full capture by construction. | `CampaignResult` + records |
18
+
19
+ When variants of the same task run inside one `runCampaign`, give those scenarios the same `seedGroup` so each repetition uses common randomness.
20
+ Use `runProfileMatrix` instead when profiles are separate campaign axes.
18
21
  | `runAgentMatrix` | The bare N-axis cartesian scheduler with concurrency control. The layer beneath the eval surface — reach for it only when you need raw scheduling, not eval semantics. | cell results |
19
22
 
20
23
  Mental model: **measure** (`runCampaign`/`runEval`) → **factor** (`runProfileMatrix`) →
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/agent-eval",
3
- "version": "0.122.3",
3
+ "version": "0.122.5",
4
4
  "description": "Evaluate and improve AI agents from runs, traces, judges, and feedback. Compare candidates, cluster failures, measure lift, and gate releases.",
5
5
  "homepage": "https://github.com/tangle-network/agent-eval#readme",
6
6
  "repository": {