@tangle-network/agent-eval 0.123.2 → 0.123.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 (65) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +48 -4
  3. package/dist/analyst/index.d.ts +18 -3
  4. package/dist/analyst/index.js +5 -5
  5. package/dist/benchmarks/index.d.ts +10 -3
  6. package/dist/benchmarks/index.js +7 -7
  7. package/dist/campaign/index.d.ts +241 -221
  8. package/dist/campaign/index.js +20 -16
  9. package/dist/{chunk-RQP5UTK5.js → chunk-22VO7T2I.js} +689 -356
  10. package/dist/chunk-22VO7T2I.js.map +1 -0
  11. package/dist/{chunk-EBDOTTZJ.js → chunk-4KO6D2BO.js} +3 -3
  12. package/dist/{chunk-3FCG7FBV.js → chunk-D5JZ7UDZ.js} +2 -2
  13. package/dist/{chunk-BGVTIE2C.js → chunk-GRCDRKII.js} +13 -2
  14. package/dist/chunk-GRCDRKII.js.map +1 -0
  15. package/dist/{chunk-FHFTYX2Q.js → chunk-JKDNAOF5.js} +2 -2
  16. package/dist/{chunk-WXQTVEKM.js → chunk-MHPEGJHC.js} +3 -3
  17. package/dist/{chunk-J7S4YM27.js → chunk-MK3Q6GCL.js} +28 -14
  18. package/dist/chunk-MK3Q6GCL.js.map +1 -0
  19. package/dist/{chunk-DNVPOYUS.js → chunk-N7ZS6PEF.js} +2 -2
  20. package/dist/{chunk-4SOQ4ND2.js → chunk-QFQZ3U3X.js} +1 -1
  21. package/dist/chunk-QFQZ3U3X.js.map +1 -0
  22. package/dist/{chunk-WMJR67FX.js → chunk-QNVBALEX.js} +4 -4
  23. package/dist/{chunk-E3HAD4A3.js → chunk-SJT4OBVL.js} +2 -2
  24. package/dist/{chunk-HQY7LBV2.js → chunk-SUN7QLPB.js} +6 -6
  25. package/dist/{chunk-HQY7LBV2.js.map → chunk-SUN7QLPB.js.map} +1 -1
  26. package/dist/{chunk-5YMKIFYP.js → chunk-WP3GEXKI.js} +3 -3
  27. package/dist/cli.js +3 -3
  28. package/dist/contract/index.d.ts +18 -3
  29. package/dist/contract/index.js +7 -7
  30. package/dist/fuzz.d.ts +8 -1
  31. package/dist/fuzz.js +4 -4
  32. package/dist/index.d.ts +27 -9
  33. package/dist/index.js +14 -12
  34. package/dist/index.js.map +1 -1
  35. package/dist/multishot/index.d.ts +2 -2
  36. package/dist/openapi.json +1 -1
  37. package/dist/rl.d.ts +15 -2
  38. package/dist/rl.js +4 -2
  39. package/dist/rl.js.map +1 -1
  40. package/dist/{run-campaign-ZKR5MQMQ.js → run-campaign-I3JXKVAK.js} +3 -3
  41. package/dist/traces.d.ts +2 -2
  42. package/dist/traces.js +1 -1
  43. package/dist/wire/index.d.ts +16 -1
  44. package/dist/wire/index.js +3 -3
  45. package/docs/campaign-proposers.md +142 -131
  46. package/docs/concepts.md +30 -34
  47. package/docs/design/loop-taxonomy.md +2 -3
  48. package/docs/design.md +0 -1
  49. package/docs/multi-shot-optimization.md +41 -49
  50. package/package.json +1 -1
  51. package/dist/chunk-4SOQ4ND2.js.map +0 -1
  52. package/dist/chunk-BGVTIE2C.js.map +0 -1
  53. package/dist/chunk-J7S4YM27.js.map +0 -1
  54. package/dist/chunk-RQP5UTK5.js.map +0 -1
  55. package/docs/improvement-glossary.md +0 -204
  56. package/docs/self-improvement-map.md +0 -115
  57. /package/dist/{chunk-EBDOTTZJ.js.map → chunk-4KO6D2BO.js.map} +0 -0
  58. /package/dist/{chunk-3FCG7FBV.js.map → chunk-D5JZ7UDZ.js.map} +0 -0
  59. /package/dist/{chunk-FHFTYX2Q.js.map → chunk-JKDNAOF5.js.map} +0 -0
  60. /package/dist/{chunk-WXQTVEKM.js.map → chunk-MHPEGJHC.js.map} +0 -0
  61. /package/dist/{chunk-DNVPOYUS.js.map → chunk-N7ZS6PEF.js.map} +0 -0
  62. /package/dist/{chunk-WMJR67FX.js.map → chunk-QNVBALEX.js.map} +0 -0
  63. /package/dist/{chunk-E3HAD4A3.js.map → chunk-SJT4OBVL.js.map} +0 -0
  64. /package/dist/{chunk-5YMKIFYP.js.map → chunk-WP3GEXKI.js.map} +0 -0
  65. /package/dist/{run-campaign-ZKR5MQMQ.js.map → run-campaign-I3JXKVAK.js.map} +0 -0
@@ -81,9 +81,16 @@ interface CostReceiptInput extends CostUsage {
81
81
  costUnknown?: boolean;
82
82
  usageUnknown?: boolean;
83
83
  }
84
+ /** Per-million token rates for a model or endpoint not covered by package pricing. */
85
+ interface CustomTokenPricing {
86
+ inputUsdPerMillion: number;
87
+ outputUsdPerMillion: number;
88
+ }
84
89
  type MaximumCharge = {
85
90
  externallyEnforcedMaximumUsd: number;
86
91
  } | ({
92
+ customTokenPricing: CustomTokenPricing;
93
+ } & Pick<CostUsage, 'inputTokens' | 'outputTokens'>) | ({
87
94
  model: string;
88
95
  } & CostUsage);
89
96
  interface RunPaidCallInput<T> {
@@ -95,7 +102,7 @@ interface RunPaidCallInput<T> {
95
102
  model?: string;
96
103
  tags?: Record<string, string>;
97
104
  signal?: AbortSignal;
98
- /** Provider-enforced dollar maximum, or maximum priced token usage. Required when capped. */
105
+ /** Provider-enforced dollar maximum, or maximum token usage with known pricing. Required when capped. */
99
106
  maximumCharge?: MaximumCharge;
100
107
  /** `callId` can be forwarded as the provider's idempotency key. */
101
108
  execute(signal: AbortSignal, callId: string): Promise<T>;
@@ -1135,8 +1142,8 @@ interface LlmCallResult {
1135
1142
  content: string;
1136
1143
  usage: LlmUsage;
1137
1144
  /**
1138
- * Cost in USD. Pulled from proxy's `_response_cost` field when present;
1139
- * `null` when neither the proxy nor the caller can derive it.
1145
+ * Cost in USD. Uses the provider's reported cost when present, otherwise
1146
+ * caller-supplied token pricing. `null` when neither is available.
1140
1147
  */
1141
1148
  costUsd: number | null;
1142
1149
  /** Model name actually used (echoed from response). */
@@ -1195,6 +1202,8 @@ interface LlmClientOptions {
1195
1202
  deadlineMs?: number;
1196
1203
  /** Total provider attempts. Legacy option name; default 3 (1 initial + 2 retries). */
1197
1204
  maxRetries?: number;
1205
+ /** Token rates used when the provider omits cost or package pricing does not cover the model. */
1206
+ customTokenPricing?: CustomTokenPricing;
1198
1207
  /**
1199
1208
  * Transport for requests that declare `jsonSchema`. `native` sends
1200
1209
  * `response_format: json_schema`; `json-object` sends the broadly supported
@@ -1202,6 +1211,12 @@ interface LlmClientOptions {
1202
1211
  * instructions. Default: `native`.
1203
1212
  */
1204
1213
  jsonSchemaTransport?: 'native' | 'json-object';
1214
+ /**
1215
+ * JSON payload parsing policy. `extract` accepts fenced or prose-prefixed JSON.
1216
+ * `exact` requires the complete response content to be one JSON value.
1217
+ * Default: `extract`.
1218
+ */
1219
+ jsonPayloadMode?: 'extract' | 'exact';
1205
1220
  /** Fetch implementation — defaults to global `fetch`. Override for custom transport (e.g. tests). */
1206
1221
  fetch?: typeof fetch;
1207
1222
  /**
@@ -2374,35 +2389,18 @@ interface AnalyzeTracesOptions {
2374
2389
  }
2375
2390
 
2376
2391
  /**
2377
- * Make the trace-analyst's OWN prompt a GEPA-optimizable surface.
2378
- *
2379
- * The analyst that drives self-improvement is itself a prompt — and a
2380
- * hand-tuned one (a hardcoded, hand-versioned `const`). This module lets the
2381
- * loop optimize it: the analyst `actorDescription` becomes a `MutableSurface`
2382
- * that `gepaProposer` / `haloProposer` / any `SurfaceProposer` can mutate inside
2383
- * `runImprovementLoop` or `compareProposers`. That is the second-order loop —
2384
- * optimizing the optimizer's eyes, not just the agent's prompt.
2392
+ * Treat the trace analyst's instructions as an optimizable text surface.
2385
2393
  *
2386
- * Two pieces, both deliberately small (the loop engine already exists — this
2387
- * only supplies the analyst-shaped dispatch + an objective scorer):
2394
+ * `buildAnalystSurfaceDispatch` analyzes a fixed trace corpus using the
2395
+ * supplied surface as `actorDescription`. `failureModeRecallJudge` scores the
2396
+ * findings against failure labels derived independently from the analyst output.
2388
2397
  *
2389
- * - `buildAnalystSurfaceDispatch` — `dispatchWithSurface(surface, scenario)`
2390
- * runs `analyzeTraces` with `surface` as the actorDescription over the
2391
- * scenario's fixed trace corpus, returning its findings.
2392
- * - `failureModeRecallJudge` — a DETERMINISTIC judge (no LLM, no opinion)
2393
- * that scores those findings against the scenario's GROUND-TRUTH failure
2394
- * modes. This is what keeps optimizing the analyst prompt ungameable: the
2395
- * labels come from objective signal (e.g. AppWorld `world.evaluate()` tells
2396
- * us which task failed and which API calls were wrong), so we reward an
2397
- * analyst for surfacing the failures that really happened — not for
2398
- * pleasing a judge that could be talked into anything (Goodhart).
2399
- *
2400
- * Wiring (the loop is unchanged; you only pass these in):
2398
+ * Example:
2401
2399
  *
2402
2400
  * const dispatchWithSurface = buildAnalystSurfaceDispatch({ analystOptions: { ai } })
2403
2401
  * await runImprovementLoop({
2404
- * baselineSurface: TRACE_ANALYST_ACTOR_DESCRIPTION, // the prompt under optimization
2405
- * scenarios: trainScenarios, // labeled trace corpora
2402
+ * baselineSurface: TRACE_ANALYST_ACTOR_DESCRIPTION,
2403
+ * scenarios: trainScenarios,
2406
2404
  * holdoutScenarios: heldOutScenarios,
2407
2405
  * dispatchWithSurface,
2408
2406
  * judges: [failureModeRecallJudge()],
@@ -4196,6 +4194,152 @@ interface ParameterSweepProposerOptions {
4196
4194
  /** Config/parameter-level proposer for FAPO's middle escalation level. */
4197
4195
  declare function parameterSweepProposer(opts: ParameterSweepProposerOptions): SurfaceProposer;
4198
4196
 
4197
+ /**
4198
+ * Compare optimization methods on shared train, selection, and test data.
4199
+ * Optimizers receive only train and selection data. After every optimizer
4200
+ * finishes, their selected surfaces are measured on the same untouched test
4201
+ * data and compared with paired confidence intervals.
4202
+ */
4203
+
4204
+ /** Per-method campaign settings. Each method receives its own spend account. */
4205
+ type OptimizationMethodRunOptions<TScenario extends Scenario, TArtifact> = Omit<RunCampaignOptions<TScenario, TArtifact>, 'costLedger' | 'dispatch' | 'judges' | 'runDir' | 'scenarios' | 'seed'>;
4206
+ /** Cost reported by a method or by final test scoring. */
4207
+ interface ComparisonCost {
4208
+ totalCostUsd: number;
4209
+ accountingComplete: boolean;
4210
+ incompleteReasons: string[];
4211
+ }
4212
+ /** Shared inputs for one optimization method. Final test data is absent. */
4213
+ interface OptimizationMethodInput<TScenario extends Scenario, TArtifact> {
4214
+ /** Surface every method starts from. */
4215
+ readonly baselineSurface: MutableSurface;
4216
+ /** Evidence used to author or fit candidates. */
4217
+ readonly trainScenarios: readonly TScenario[];
4218
+ /** Data used for candidate acceptance, early stopping, and model selection. */
4219
+ readonly selectionScenarios: readonly TScenario[];
4220
+ /** Runs one scenario with a candidate surface. */
4221
+ readonly dispatchWithSurface: (surface: MutableSurface, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
4222
+ /** Scores artifacts produced by `dispatchWithSurface`. */
4223
+ readonly judges: readonly JudgeConfig<TArtifact, TScenario>[];
4224
+ /** Method-specific artifacts are written below this directory. */
4225
+ readonly runDir: string;
4226
+ readonly seed: number;
4227
+ /** Shared defaults for every method. A method may override them explicitly. */
4228
+ readonly runOptions: Readonly<OptimizationMethodRunOptions<TScenario, TArtifact>>;
4229
+ }
4230
+ interface OptimizationMethodResult {
4231
+ /** Surface selected without using the final test partition. */
4232
+ winnerSurface: MutableSurface;
4233
+ /** Optimization spend. Excludes final test scoring. */
4234
+ cost: ComparisonCost;
4235
+ /** Optimization duration. Excludes final test scoring. */
4236
+ durationMs?: number;
4237
+ }
4238
+ /** A complete optimization method, including candidate generation and selection. */
4239
+ interface OptimizationMethod<TScenario extends Scenario = Scenario, TArtifact = unknown> {
4240
+ /** Unique, trimmed display name. Its normalized form must also be unique. */
4241
+ name: string;
4242
+ optimize: (input: OptimizationMethodInput<TScenario, TArtifact>) => Promise<OptimizationMethodResult>;
4243
+ }
4244
+ interface OptimizationMethodScore {
4245
+ name: string;
4246
+ /** Mean final-test composite of the baseline (identical across methods). */
4247
+ baselineComposite: number;
4248
+ /** Mean final-test composite of this method's selected surface. */
4249
+ winnerComposite: number;
4250
+ /** Mean per-scenario final-test lift (winner minus baseline). */
4251
+ lift: number;
4252
+ /** Simultaneous paired-bootstrap interval for per-scenario lift.
4253
+ * `low > 0` excludes zero after adjustment for all reported contrasts. */
4254
+ liftCi: {
4255
+ low: number;
4256
+ high: number;
4257
+ };
4258
+ /** Optimization spend reported by the method. Excludes final test scoring. */
4259
+ optimizationCost: ComparisonCost;
4260
+ /** Optimization duration reported by the method. Excludes final test scoring. */
4261
+ durationMs?: number;
4262
+ /** Paired final-test values used to compute lift and its interval. */
4263
+ scenarioScores: Array<{
4264
+ scenarioId: string;
4265
+ baselineComposite: number;
4266
+ winnerComposite: number;
4267
+ lift: number;
4268
+ }>;
4269
+ winnerSurface: MutableSurface;
4270
+ /** 1-based, by descending lift. */
4271
+ rank: number;
4272
+ }
4273
+ interface OptimizationMethodPairwise {
4274
+ /** Higher-ranked method. */
4275
+ a: string;
4276
+ b: string;
4277
+ /** Mean per-scenario untouched-test delta (a − b). */
4278
+ deltaMean: number;
4279
+ low: number;
4280
+ high: number;
4281
+ /** `a` if the CI clears 0, `b` if it is entirely negative, else `'tie'`. */
4282
+ favored: string;
4283
+ }
4284
+ interface OptimizationMethodComparison {
4285
+ /** Sorted by descending lift; `rank` set accordingly. */
4286
+ scores: OptimizationMethodScore[];
4287
+ best: OptimizationMethodScore;
4288
+ /** Best vs each other method, using simultaneous paired-bootstrap intervals. */
4289
+ pairwise: OptimizationMethodPairwise[];
4290
+ testScenarioIds: string[];
4291
+ /** Sum of the costs reported by every optimization method. */
4292
+ optimizationCost: ComparisonCost;
4293
+ /** Baseline and distinct winner scoring on the final test partition. */
4294
+ testCost: ComparisonCost;
4295
+ /** Optimization plus final test scoring. */
4296
+ totalCost: ComparisonCost;
4297
+ /** Caller-requested simultaneous coverage across all reported contrasts. */
4298
+ confidence: number;
4299
+ /** Bonferroni-adjusted confidence used for each bootstrap interval. */
4300
+ intervalConfidence: number;
4301
+ /** Method-vs-baseline plus all possible method-vs-method contrasts. */
4302
+ comparisonCount: number;
4303
+ /** Deterministic bootstrap and campaign seed. */
4304
+ seed: number;
4305
+ /** Bootstrap draws used for each interval. */
4306
+ resamples: number;
4307
+ /** Agent runs averaged within each test scenario before resampling scenarios. */
4308
+ reps: number;
4309
+ }
4310
+ interface CompareOptimizationMethodsOptions<TScenario extends Scenario, TArtifact> extends Omit<RunCampaignOptions<TScenario, TArtifact>, 'dispatch' | 'judges' | 'scenarios'> {
4311
+ methods: OptimizationMethod<TScenario, TArtifact>[];
4312
+ baselineSurface: MutableSurface;
4313
+ /** Evidence used by every optimizer to author or fit candidates. */
4314
+ trainScenarios: TScenario[];
4315
+ /** Candidate acceptance, early-stopping, and optimizer-selection data. */
4316
+ selectionScenarios: TScenario[];
4317
+ /** Untouched final comparison data. Never passed to an optimization method. */
4318
+ testScenarios: TScenario[];
4319
+ /** Scores a surface on a scenario. The methods and final test share this function. */
4320
+ dispatchWithSurface: (surface: MutableSurface, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
4321
+ judges: JudgeConfig<TArtifact, TScenario>[];
4322
+ /** Bootstrap resamples for the lift intervals. Default is at least 2000 and
4323
+ * rises when the requested simultaneous confidence needs finer tails. */
4324
+ resamples?: number;
4325
+ /** Shared defaults for each method's train and selection campaigns. */
4326
+ optimizationRunOptions?: OptimizationMethodRunOptions<TScenario, TArtifact>;
4327
+ /** Number of optimization methods to run concurrently. Default 1. */
4328
+ optimizationConcurrency?: number;
4329
+ /** Simultaneous confidence across method-vs-baseline and method-vs-method contrasts.
4330
+ * Each bootstrap interval is Bonferroni-adjusted. Default 0.95. */
4331
+ confidence?: number;
4332
+ /** Shared spend limit across baseline and winner scoring on the final test partition.
4333
+ * Each method owns its optimization budget through `optimizationRunOptions.costCeiling`. */
4334
+ costCeiling?: number;
4335
+ }
4336
+ /**
4337
+ * Compare complete optimization methods on disjoint train, selection, and final test data.
4338
+ */
4339
+ declare function compareOptimizationMethods<TScenario extends Scenario, TArtifact>(opts: CompareOptimizationMethodsOptions<TScenario, TArtifact>): Promise<OptimizationMethodComparison>;
4340
+ /** Keep the cost fields a custom optimization method must report. */
4341
+ declare function costFromLedgerSummary(summary: CostLedgerSummary): ComparisonCost;
4342
+
4199
4343
  /**
4200
4344
  * `runOptimization` — the improvement loop body. Runs N generations: the
4201
4345
  * `SurfaceProposer` proposes K candidate surfaces per generation, each
@@ -4398,100 +4542,13 @@ interface RunImprovementLoopResult<TArtifact, TScenario extends Scenario> extend
4398
4542
  */
4399
4543
  declare function runImprovementLoop<TScenario extends Scenario, TArtifact>(opts: RunImprovementLoopOptions<TScenario, TArtifact>): Promise<RunImprovementLoopResult<TArtifact, TScenario>>;
4400
4544
 
4401
- /**
4402
- * `compareProposers` — a head-to-head lift benchmark across surface proposers
4403
- * on ONE corpus. This is the forcing function: optimizer quality (GEPA
4404
- * reflection vs GEPA+Pareto vs SkillOpt) becomes a NUMBER with a confidence
4405
- * interval, so a proposer regression — or shipping a simplified proposer and
4406
- * calling it the real one — turns a build red instead of going
4407
- * measurement-invisible.
4408
- *
4409
- * Every entrant is scored the SAME way: each proposer returns the surface it
4410
- * promoted, then the benchmark scores the baseline + every winner on the
4411
- * SAME held-out scenarios with the SAME judges. Apples-to-apples by
4412
- * construction — the comparison never depends on how a proposer measured itself.
4413
- * The per-scenario held-out composites feed a paired bootstrap (`statistics.ts`)
4414
- * for each proposer's lift CI and for the pairwise "which proposer wins" CI.
4415
- */
4416
-
4417
- /** What an optimizer produced: the surface it promoted + what it cost to get
4418
- * there. The comparison does the held-out scoring itself, so an entry only
4419
- * needs to run its loop and hand back the winner. */
4420
- interface ProposerEntry {
4421
- name: string;
4422
- optimize: () => Promise<{
4423
- winnerSurface: MutableSurface;
4424
- costUsd: number;
4425
- durationMs?: number;
4426
- }>;
4427
- }
4428
- interface ProposerScore {
4429
- name: string;
4430
- /** Mean held-out composite of the baseline (identical across proposers). */
4431
- baselineComposite: number;
4432
- /** Mean held-out composite of this proposer's promoted surface. */
4433
- winnerComposite: number;
4434
- /** Mean per-scenario held-out lift (winner − baseline). */
4435
- lift: number;
4436
- /** Paired-bootstrap CI of the per-scenario lift. `low > 0` ⇒ a real gain. */
4437
- liftCi: {
4438
- low: number;
4439
- high: number;
4440
- };
4441
- costUsd: number;
4442
- durationMs?: number;
4443
- winnerSurface: MutableSurface;
4444
- /** 1-based, by descending lift. */
4445
- rank: number;
4446
- }
4447
- interface ProposerPairwise {
4448
- /** Higher-ranked proposer. */
4449
- a: string;
4450
- b: string;
4451
- /** Mean per-scenario held-out delta (a − b). */
4452
- deltaMean: number;
4453
- low: number;
4454
- high: number;
4455
- /** `a` if the CI clears 0, `b` if it is entirely negative, else `'tie'`. */
4456
- favored: string;
4457
- }
4458
- interface ProposerComparison {
4459
- /** Sorted by descending lift; `rank` set accordingly. */
4460
- scores: ProposerScore[];
4461
- best: ProposerScore;
4462
- /** Best vs each other proposer, paired-bootstrap on the held-out winners. */
4463
- pairwise: ProposerPairwise[];
4464
- holdoutScenarioIds: string[];
4465
- }
4466
- interface CompareProposersOptions<TScenario extends Scenario, TArtifact> extends Omit<RunCampaignOptions<TScenario, TArtifact>, 'dispatch' | 'scenarios'> {
4467
- proposers: ProposerEntry[];
4468
- baselineSurface: MutableSurface;
4469
- /** The held-out scenarios every winner is scored on. */
4470
- holdoutScenarios: TScenario[];
4471
- /** Scores a surface on a scenario — the same dispatcher the proposers used. */
4472
- dispatchWithSurface: (surface: MutableSurface, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
4473
- /** Bootstrap resamples for the lift CIs. Default 2000. */
4474
- resamples?: number;
4475
- /** CI confidence. Default 0.95. */
4476
- confidence?: number;
4477
- }
4478
- /**
4479
- * Run a head-to-head lift benchmark across surface proposers on a shared holdout, returning per-proposer lift CIs and pairwise "who wins" verdicts.
4480
- */
4481
- declare function compareProposers<TScenario extends Scenario, TArtifact>(opts: CompareProposersOptions<TScenario, TArtifact>): Promise<ProposerComparison>;
4482
- /** Shared corpus + transport for the three built-in optimizer entries. */
4483
- interface OptimizerEntryConfig<TScenario extends Scenario, TArtifact> {
4484
- baselineSurface: string;
4485
- /** Training scenarios the proposers reflect on. */
4486
- trainScenarios: TScenario[];
4487
- /** Held-out scenarios (the gate axis + the benchmark scoring axis). */
4488
- holdoutScenarios: TScenario[];
4489
- dispatchWithSurface: (surface: MutableSurface, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
4490
- judges: JudgeConfig<TArtifact, TScenario>[];
4545
+ interface BuiltinOptimizationMethodConfig<TScenario extends Scenario = Scenario, TArtifact = unknown> {
4491
4546
  llm: LlmClientOptions;
4492
4547
  model: string;
4493
4548
  target: string;
4494
- runDir: string;
4549
+ /** Override shared method-run settings for this method only. */
4550
+ runOptions?: OptimizationMethodRunOptions<TScenario, TArtifact>;
4551
+ /** Override the comparison seed for this method only. */
4495
4552
  seed?: number;
4496
4553
  /** GEPA population per generation. Default 2. */
4497
4554
  populationSize?: number;
@@ -4500,51 +4557,33 @@ interface OptimizerEntryConfig<TScenario extends Scenario, TArtifact> {
4500
4557
  /** SkillOpt epochs. Default 6. */
4501
4558
  maxEpochs?: number;
4502
4559
  mutationPrimitives?: string[];
4503
- /** Static findings seed forwarded to each GEPA proposer's `propose()` as
4504
- * `ctx.findings`. Forwarded by `gepaReflectionEntry` / `gepaParetoEntry`;
4505
- * `skillOptEntry` runs without findings (see its doc). */
4560
+ /** Static findings passed to each GEPA candidate-generation call. */
4506
4561
  findings?: unknown[];
4507
- /** Per-generation findings producer: after each generation scores, this
4508
- * re-diagnoses and REPLACES `ctx.findings` for the
4509
- * next generation's `propose()`. Reuses the `runOptimization` field type so
4510
- * it cannot drift. GEPA entries only. */
4562
+ /** Recompute findings after each GEPA generation. */
4511
4563
  analyzeGeneration?: RunImprovementLoopOptions<TScenario, TArtifact>['analyzeGeneration'];
4512
- /** Optional analysis report forwarded to `propose()` as `ctx.report`. */
4564
+ /** Optional analysis report passed to candidate generation. */
4513
4565
  report?: unknown;
4514
4566
  }
4515
4567
  /** GEPA, reflection-only (single-parent, no Pareto combine). */
4516
- declare function gepaReflectionEntry<TScenario extends Scenario, TArtifact>(config: OptimizerEntryConfig<TScenario, TArtifact>, name?: string): ProposerEntry;
4517
- /** GEPA with the Pareto frontier + combine-complementary-lessons. */
4518
- declare function gepaParetoEntry<TScenario extends Scenario, TArtifact>(config: OptimizerEntryConfig<TScenario, TArtifact>, name?: string): ProposerEntry;
4519
- /** SkillOpt patch-mode hill-climb. Runs findings-BLIND: `runSkillOpt` owns its
4520
- * own epoch acceptance/budget loop and does not thread `analyzeGeneration`, so
4521
- * `config.findings` is intentionally NOT forwarded here. In a findings-fed
4522
- * comparison this entry is the blind control do not read its result as
4523
- * findings-fed. (Threading findings into the SkillOpt epoch loop is a separate
4524
- * refactor, deferred not faked.) */
4525
- declare function skillOptEntry<TScenario extends Scenario, TArtifact>(config: OptimizerEntryConfig<TScenario, TArtifact>, name?: string): ProposerEntry;
4526
- /** FAPO reviewed-escalation policy. This is an orchestration layer over
4527
- * level-specific proposers, not a new mutation operator:
4528
- * prompt -> parameter -> structural, with scope + reviewer + plateau rules in
4529
- * `fapoProposer`. The prompt proposer defaults to GEPA+Pareto because that is
4530
- * the package's strongest prompt-tier proposer; parameter/structural proposers
4531
- * are opt-in so we do not fake code-generation inside agent-eval. */
4532
- interface FapoEntryConfig<TScenario extends Scenario, TArtifact> extends OptimizerEntryConfig<TScenario, TArtifact> {
4533
- /** Override the prompt-level proposer. Default: `gepaProposer({ combineParents: true })`. */
4568
+ declare function gepaReflectionMethod<TScenario extends Scenario, TArtifact>(config: BuiltinOptimizationMethodConfig<TScenario, TArtifact>, name?: string): OptimizationMethod<TScenario, TArtifact>;
4569
+ /** GEPA with the Pareto frontier and complementary-parent combination. */
4570
+ declare function gepaParetoMethod<TScenario extends Scenario, TArtifact>(config: BuiltinOptimizationMethodConfig<TScenario, TArtifact>, name?: string): OptimizationMethod<TScenario, TArtifact>;
4571
+ /** SkillOpt patch-mode hill climb. */
4572
+ declare function skillOptMethod<TScenario extends Scenario, TArtifact>(config: BuiltinOptimizationMethodConfig<TScenario, TArtifact>, name?: string): OptimizationMethod<TScenario, TArtifact>;
4573
+ interface FapoOptimizationMethodConfig<TScenario extends Scenario, TArtifact> extends BuiltinOptimizationMethodConfig<TScenario, TArtifact> {
4574
+ /** Override the prompt-level proposer. Default: GEPA with Pareto parents. */
4534
4575
  promptProposer?: SurfaceProposer;
4535
4576
  /** Parameter/config-level proposer. If omitted, `parameterCandidates` builds one. */
4536
4577
  parameterProposer?: SurfaceProposer;
4537
4578
  /** Structural/code-level proposer, typically supplied by agent-runtime. */
4538
4579
  structuralProposer?: SurfaceProposer;
4539
- /** Convenience: build a `parameterSweepProposer` from these candidates. */
4580
+ /** Convenience: build a parameter sweep from these candidates. */
4540
4581
  parameterCandidates?: readonly ParameterCandidate[];
4541
- /** FAPO policy knobs: scope, reviewer, plateau thresholds. */
4582
+ /** FAPO policy settings: scope, reviewer, and plateau thresholds. */
4542
4583
  fapo?: Omit<FapoProposerOptions, 'proposers' | 'promptProposer' | 'parameterProposer' | 'structuralProposer'>;
4543
4584
  }
4544
- /**
4545
- * Build a `ProposerEntry` that runs the full FAPO escalation policy (prompt parameter structural) as a single comparable optimizer entry.
4546
- */
4547
- declare function fapoEscalationEntry<TScenario extends Scenario, TArtifact>(config: FapoEntryConfig<TScenario, TArtifact>, name?: string): ProposerEntry;
4585
+ /** Build one method that runs the complete FAPO escalation policy. */
4586
+ declare function fapoEscalationMethod<TScenario extends Scenario, TArtifact>(config: FapoOptimizationMethodConfig<TScenario, TArtifact>, name?: string): OptimizationMethod<TScenario, TArtifact>;
4548
4587
 
4549
4588
  /**
4550
4589
  * Artifact validators.
@@ -5286,17 +5325,17 @@ declare function patchEditCount(patch: SkillPatch): number;
5286
5325
  * meta-note steer the optimizer away from dead ends.
5287
5326
  *
5288
5327
  * This module is the PROPOSER — the LLM call that turns evidence into
5289
- * structured patches. The accept-only-if-held-out-improves loop, the budget
5328
+ * structured patches. The accept-only-if-selection-improves loop, the budget
5290
5329
  * annealing, and the rejected buffer live in the `runSkillOpt` preset, which
5291
5330
  * owns the epoch hill-climb. The proposer also conforms to `SurfaceProposer`
5292
5331
  * (`propose` applies its patches to the current surface and returns the
5293
5332
  * candidate surfaces) so it is a drop-in for `runOptimization` and a fair
5294
- * entrant in `compareProposers`.
5333
+ * entrant in `compareOptimizationMethods`.
5295
5334
  */
5296
5335
 
5297
5336
  /** Evidence the optimizer reflects on: where the current surface is weakest.
5298
5337
  * Computed by the caller (the preset uses a TRAIN campaign so proposals never
5299
- * see the held-out split; the generic loop derives it from history). */
5338
+ * see the selection split; the generic loop derives it from history). */
5300
5339
  interface SkillOptEvidence {
5301
5340
  /** Lowest-scoring scenarios (drives WHICH behavior to patch). */
5302
5341
  weakScenarios: Array<{
@@ -5373,28 +5412,14 @@ declare class SkillPatchParseError extends Error {
5373
5412
  declare function parseSkillPatchResponse(raw: string, maxPatches: number, editBudget: number): SkillPatch[];
5374
5413
 
5375
5414
  /**
5376
- * `runSkillOpt` the SkillOpt epoch hill-climb (Microsoft, arXiv:2605.23904).
5377
- * Unlike `runOptimization`'s population search around one global incumbent,
5378
- * SkillOpt is a sequential, held-out-gated hill-climb on ONE skill document:
5379
- *
5380
- * each epoch:
5381
- * 1. reflect on the CURRENT surface's weakest TRAIN scenarios/dimensions
5382
- * (never the held-out split — proposals must not see the acceptance axis)
5383
- * 2. propose ≤ `patchesPerEpoch` bounded patches (≤ `editBudget` ops each)
5384
- * 3. apply each; score the candidate on the HELD-OUT split
5385
- * 4. ACCEPT the first patch that STRICTLY improves the held-out composite;
5386
- * otherwise push it to the rejected-edit buffer (fed back so the model
5387
- * does not re-propose dead ends)
5388
- * 5. anneal the edit budget down after consecutive rejections (the
5389
- * "textual learning rate" decay); refresh the slow-update meta note
5390
- * 6. stop at `maxEpochs` or after `patience` epochs with no acceptance
5415
+ * Optimize one skill document with the repeated selection method from SkillOpt
5416
+ * (Microsoft, arXiv:2605.23904).
5391
5417
  *
5392
- * The accept-only-if-held-out-improves rule is the same discipline as
5393
- * `HeldOutGate`/`defaultProductionGate`, applied per edit instead of once at
5394
- * the end which is why the held-out composite is monotonically
5395
- * non-decreasing and a regression can never ship. `runCampaign` is the
5396
- * measurement; `applySkillPatch` applies the edits; `skillOptProposer` proposes
5397
- * them.
5418
+ * Each round proposes bounded patches from item-level training evidence, then
5419
+ * accepts the first patch that improves the selection score. Later rounds see
5420
+ * aggregate acceptance feedback and prior rejected edits, so selection data is
5421
+ * adaptively reused. It is not a final test. Use `compareOptimizationMethods` when you
5422
+ * need a separate test partition.
5398
5423
  */
5399
5424
 
5400
5425
  interface RunSkillOptOptions<TScenario extends Scenario, TArtifact> extends Omit<RunCampaignOptions<TScenario, TArtifact>, 'dispatch' | 'scenarios'> {
@@ -5403,18 +5428,17 @@ interface RunSkillOptOptions<TScenario extends Scenario, TArtifact> extends Omit
5403
5428
  /** Dispatcher taking the CURRENT skill surface + scenario → artifact. */
5404
5429
  dispatchWithSurface: (surface: string, scenario: TScenario, ctx: DispatchContext) => Promise<TArtifact>;
5405
5430
  proposer: SkillOptProposer;
5406
- /** Scenarios the optimizer reflects on for evidence. MUST be disjoint from
5407
- * `holdoutScenarios` — proposals never see the acceptance axis. */
5431
+ /** Item-level evidence shown to the proposer. Must be disjoint from selection. */
5408
5432
  trainScenarios: TScenario[];
5409
- /** Held-out scenarios. An edit is accepted ONLY if it strictly improves the
5410
- * mean composite here. */
5411
- holdoutScenarios: TScenario[];
5433
+ /** Adaptively reused candidate-selection scenarios. An edit is accepted ONLY
5434
+ * if it strictly improves the mean composite here. This is not a final test. */
5435
+ selectionScenarios: TScenario[];
5412
5436
  maxEpochs: number;
5413
5437
  /** Candidate patches proposed per epoch. Default 2. */
5414
5438
  patchesPerEpoch?: number;
5415
5439
  /** Initial ops-per-patch cap (the textual learning rate). Default 3. */
5416
5440
  editBudget?: number;
5417
- /** Strict acceptance margin: accept iff the held-out composite improves by
5441
+ /** Strict acceptance margin: accept iff the selection composite improves by
5418
5442
  * MORE than this. Default 0 (any strict improvement). */
5419
5443
  minImprovement?: number;
5420
5444
  /** Stop after this many consecutive epochs with no acceptance. Default =
@@ -5436,8 +5460,8 @@ interface AcceptedEdit {
5436
5460
  epoch: number;
5437
5461
  label: string;
5438
5462
  rationale: string;
5439
- /** Held-out composite improvement vs the surface before this edit. */
5440
- holdoutDelta: number;
5463
+ /** Selection composite improvement vs the surface before this edit. */
5464
+ selectionDelta: number;
5441
5465
  }
5442
5466
  interface SkillOptEpochRecord {
5443
5467
  epoch: number;
@@ -5446,28 +5470,27 @@ interface SkillOptEpochRecord {
5446
5470
  /** The accepted edit this epoch, or null if every proposal was rejected. */
5447
5471
  accepted: AcceptedEdit | null;
5448
5472
  rejected: RejectedEdit[];
5449
- /** Held-out composite of the CURRENT surface at the END of the epoch. */
5450
- holdoutComposite: number;
5473
+ /** Selection composite of the CURRENT surface at the END of the epoch. */
5474
+ selectionComposite: number;
5451
5475
  }
5452
5476
  interface RunSkillOptResult {
5453
5477
  winnerSurface: string;
5454
- baselineHoldoutComposite: number;
5455
- winnerHoldoutComposite: number;
5456
- /** `winnerHoldoutComposite - baselineHoldoutComposite` monotonically 0
5457
- * by construction (only strictly-improving edits are accepted). */
5458
- lift: number;
5478
+ baselineSelectionComposite: number;
5479
+ winnerSelectionComposite: number;
5480
+ /** `winnerSelectionComposite - baselineSelectionComposite`. This is not test lift. */
5481
+ selectionLift: number;
5459
5482
  acceptedEdits: AcceptedEdit[];
5460
5483
  rejectedEdits: RejectedEdit[];
5461
5484
  epochsRun: number;
5462
5485
  history: SkillOptEpochRecord[];
5463
- /** Total cost across every scoring campaign (train evidence + holdout
5464
- * acceptance) the hill-climb ran. */
5486
+ /** Full run spend. Alias of `cost.totalCostUsd`; includes scoring, proposals,
5487
+ * and judges. */
5465
5488
  totalCostUsd: number;
5466
5489
  /** Run-wide spend, including scoring, proposals, and judges. */
5467
5490
  cost: CostLedgerSummary;
5468
5491
  }
5469
5492
  /**
5470
- * SkillOpt sequential hill-climb: each epoch reflects on train-scenario weaknesses, proposes bounded patches, accepts the first patch that strictly improves the held-out composite, and anneals the edit budget on consecutive rejections.
5493
+ * SkillOpt sequential hill-climb: each epoch reflects on train-scenario weaknesses, proposes bounded patches, accepts the first patch that strictly improves the selection composite, and anneals the edit budget on consecutive rejections.
5471
5494
  */
5472
5495
  declare function runSkillOpt<TScenario extends Scenario, TArtifact>(opts: RunSkillOptOptions<TScenario, TArtifact>): Promise<RunSkillOptResult>;
5473
5496
 
@@ -5641,20 +5664,11 @@ declare function extractH2Sections(text: string): string[];
5641
5664
  declare function countSentenceEdits(baseline: string, candidate: string): number;
5642
5665
 
5643
5666
  /**
5644
- * `haloProposer` — wraps the REAL halo-engine (Inference.net's hierarchical
5645
- * agentic trace analyzer, `pip install halo-engine`, repo context-labs/halo)
5646
- * as an agent-eval `SurfaceProposer`, so HALO competes head-to-head with
5647
- * `gepaProposer` — and with our own `traceAnalystProposer` — inside `compareProposers`
5648
- * on identical traces / scenarios / held-out scoring.
5667
+ * Adapt the published `halo-engine` CLI to `SurfaceProposer`.
5649
5668
  *
5650
- * It PRESERVES halo's actual working usage `analyze` shells out to the
5651
- * published CLI (`halo <traces.jsonl> -p <prompt> -m <model>`) and uses its real
5652
- * RLM findings verbatim. We do NOT reimplement its analysis; that would make the
5653
- * benchmark meaningless. The materialize/apply pipeline is the shared
5654
- * `analysisEditProposer` — identical to `traceAnalystProposer`, which is what makes
5655
- * the comparison apples-to-apples.
5656
- *
5657
- * Fail-loud: no traces → throw; halo errors → throw; empty findings → throw.
5669
+ * The proposer runs `halo <traces.jsonl> -p <prompt> -m <model>` and passes its
5670
+ * findings to the shared edit step also used by `traceAnalystProposer`. It
5671
+ * rejects missing traces, CLI errors, and empty findings.
5658
5672
  */
5659
5673
 
5660
5674
  interface HaloProposerOptions {
@@ -5812,7 +5826,7 @@ interface LlmPolicyEditProposerOptions {
5812
5826
  targetSurface: JsonPolicyEditTargetSurface;
5813
5827
  /** Exact JSON paths the author may change. Prefix or fuzzy matches are not accepted. */
5814
5828
  allowedJsonPaths: readonly string[];
5815
- /** Exact search objectives forecasts may name. Unknown keys or mismatched directions fail. */
5829
+ /** Caller-owned search objective bound into every authored forecast. */
5816
5830
  objectives: readonly PolicyEditObjective[];
5817
5831
  /** Default: evidence-only, so uncertain edits are measured rather than
5818
5832
  * suppressed by their own model-authored predictions. */
@@ -6166,23 +6180,29 @@ interface RegistryRunOpts {
6166
6180
  }
6167
6181
 
6168
6182
  /**
6169
- * `traceAnalystProposer` wraps agent-eval's OWN trace-analyst engine
6170
- * (`AnalystRegistry` over the agentic OTLP reader) as a `SurfaceProposer`.
6171
- * It is the symmetric opponent to `haloProposer`: both run the SAME shared
6172
- * `analysisEditProposer` pipeline (materialize identical traces → apply via one
6173
- * identical LLM edit), so a `compareProposers` lift delta isolates a single
6174
- * variable — ANALYSIS QUALITY. The benchmark answers "is our HALO clone as good
6175
- * as the real HALO?" as a held-out lift CI, not a vibe.
6176
- *
6177
- * Findings come from the REGISTRY (structured `AnalystFinding[]` carrying
6178
- * area / severity / recommended_action), rendered into the report the shared
6179
- * apply step consumes.
6183
+ * Adapt the built-in analyst registry to `SurfaceProposer`.
6180
6184
  *
6181
- * Fail-loud: no traces throw; analyst run errors throw; zero findings →
6182
- * throw. Never fabricate a candidate.
6185
+ * The proposer produces structured findings from OTLP traces, then uses the
6186
+ * same edit step as `haloProposer`. It rejects missing traces, analysis errors,
6187
+ * and empty findings instead of returning a fabricated candidate.
6183
6188
  */
6184
6189
 
6185
6190
  type TraceAnalystPriorFindings = NonNullable<RegistryRunOpts['priorFindings']>;
6191
+ interface AnalyzeOtlpTraceFileOptions {
6192
+ tracePath: string;
6193
+ runId: string;
6194
+ baseUrl: string;
6195
+ apiKey: string;
6196
+ model: string;
6197
+ provider?: AxAIArgs<unknown>['name'];
6198
+ kinds?: readonly TraceAnalystKindSpec[];
6199
+ signal?: AbortSignal;
6200
+ costLedger?: CostLedgerHandle;
6201
+ costPhase?: string;
6202
+ priorFindings?: TraceAnalystPriorFindings;
6203
+ }
6204
+ /** Run the built-in analyst registry against one OTLP JSONL file. */
6205
+ declare function analyzeOtlpTraceFile(opts: AnalyzeOtlpTraceFileOptions): Promise<AnalystFinding[]>;
6186
6206
  interface TraceAnalystProposerOptions<TFindings = unknown> {
6187
6207
  /** OpenAI-compatible base URL for BOTH the analyst's agentic reads and the
6188
6208
  * apply step (e.g. `https://api.deepseek.com/v1` or the Tangle router). */
@@ -7134,7 +7154,7 @@ declare function selectDiscriminative(signals: ScenarioSignal[], k: number, opts
7134
7154
 
7135
7155
  /**
7136
7156
  * Shared campaign-score reductions used by every optimizer preset
7137
- * (`runOptimization`, `runSkillOpt`, `compareProposers`). ONE definition of
7157
+ * (`runOptimization`, `runSkillOpt`, `compareOptimizationMethods`). ONE definition of
7138
7158
  * "composite of a campaign" and "per-scenario / per-dimension breakdown" so
7139
7159
  * the optimizers cannot drift on how a surface's score is computed.
7140
7160
  */
@@ -7658,4 +7678,4 @@ declare function verifyCodeSurface(surface: CodeSurface, worktreeDir?: string):
7658
7678
  * identity against the checkout at `worktreeRef`. */
7659
7679
  declare function resolveWorktreePath(surface: CodeSurface, worktreeDir?: string): string;
7660
7680
 
7661
- export { type AcceptedEdit, type AceProposerOptions, type AnalystArtifact, type AnalystScenario, type AnalyzeCrossSurfaceInteractionsInput, type ApplySkillPatchResult, type AxisEvidence, type AxisVerdict, type BuildAnalystSurfaceDispatchOptions, type BuildEvidenceVectorOptions, type BuildLoopProvenanceArgs, type CampaignAggregates, type CampaignArtifactWriter, type CampaignBreakdown, type CampaignCellResult, type CampaignCostMeter, type CampaignResult, type CampaignRunPlan, type CampaignRunPlanCell, type CampaignScenarioIdentity, type CampaignStorage, type CampaignTokenUsage, type CampaignTraceWriter, type CodeSurface, type CodeSurfaceVerification, type CompareProposersOptions, type CompositeProposerOptions, type CostLedgerHandle, type CrossSurfaceAdditionDecision, type CrossSurfaceAdditionRejectionReason, type CrossSurfaceAttemptCompleteness, type CrossSurfaceBestSingleSelection, type CrossSurfaceBootstrapPolicy, type CrossSurfaceCandidate, type CrossSurfaceCandidateComparison, type CrossSurfaceCandidateEvidence, type CrossSurfaceCandidateOutcome, type CrossSurfaceCandidateSummary, type CrossSurfaceComponent, type CrossSurfaceComponentEvidence, type CrossSurfaceCompositionStep, type CrossSurfaceDistribution, type CrossSurfaceEligibility, type CrossSurfaceEvidenceBreakdown, type CrossSurfaceIneligibilityReason, type CrossSurfaceInteractionAwareSelection, type CrossSurfaceInteractionEffect, type CrossSurfaceInteractionPath, type CrossSurfaceInteractionReport, type CrossSurfaceInteractionTask, type CrossSurfaceNaiveStackSelection, type CrossSurfacePairCompatibility, type CrossSurfacePairEvidence, type CrossSurfacePairIncompatibilityReason, type CrossSurfacePairwiseEntry, type CrossSurfaceRankedSingle, type CrossSurfaceRelativeCost, type CrossSurfaceSelectionPolicy, type CrossSurfaceSelections, type CrossSurfaceTaskRow, DEFAULT_POLICY_EDIT_HISTORY_LIMITS, type DefaultProductionGateOptions, type DimensionRegression, type DiscriminationScore, type DispatchContext, type DispatchFn, type EmitLoopProvenanceArgs, type EmitLoopProvenanceResult, type EvalFixture, type EvalFixtureFile, type EvalFixtureLoadOptions, type EvalFixtureRunPlan, type EvalFixtureScenario, type EvalFixtureValidationMode, type EvidenceVector, type EvolutionaryProposerOptions, type FailureModeRecallJudgeOptions, type FapoAttributionSignals, type FapoEntryConfig, type FapoFailureCluster, type FapoOptimizationLevel, type FapoProposerOptions, type FapoReviewInput, type FapoReviewIssue, type FapoReviewResult, type FapoScopeContract, FileSearchLedger, FsLabeledScenarioStore, type FsLabeledScenarioStoreOptions, type Gate, type GateContext, type GateDecision, type GateResult, type GenerationCandidate, type GenerationRecord, type GepaProposerConstraints, type GepaProposerOptions, type GitWorktreeAdapterOptions, type Governor, type GovernorContext, type GovernorOp, type HaloProposerOptions, type HeldOutGateOptions, type HeldoutSignificance, type HeldoutSignificanceOptions, type HeuristicGovernorOptions, type JsonPolicyEditTargetSurface, type JsonPrimitive, type JsonValue, type JudgeAggregate, type JudgeConfig, type JudgeDimension, type JudgeScore, type LabelTrust, type LabeledScenarioRecord, type LabeledScenarioSampleArgs, type LabeledScenarioSource, type LabeledScenarioStore, LabeledScenarioStoreError, type LabeledScenarioWrite, Lineage, type LineageEdge, type LineageGraph, type LineageNode, type LineageNodeInput, type LineageStore, LineageStoreConflictError, type LlmJudgeDimension, type LlmJudgeOptions, type LlmPolicyEditProposerOptions, type LoadEvalFixtureScenariosOptions, type LoopProvenanceArgsFromResult, type LoopProvenanceBackend, type LoopProvenanceCandidate, type LoopProvenanceEvidence, type LoopProvenanceRecord, type MemoryCurationProposerOptions, type MutableSurface, type Mutator, type NeutralizationGateOptions, type ObjectiveSource, type OpenAutoPrOptions, type OpenAutoPrResult, type OpenSearchLedgerOptions, type OptimizationProposer, type OptimizerConfig, type OptimizerEntryConfig, POLICY_EDIT_CANDIDATE_RECORD_SCHEMA, type PairedHoldout, type ParameterCandidate, type ParameterChange, type ParameterSweepProposerOptions, type ParetoParent, type ParetoSignificanceGateOptions, type PendingCostCallView, type PlanCampaignRunOptions, type PlanEvalFixtureRunOptions, type PlaybackContext, type PlaybackDriver, type PlaybackStep, type PolicyEditAuthorScenarioRow, type PolicyEditCandidateRecord, type PolicyEditCandidateSummary, type PolicyEditFindingInput, type PolicyEditFindingSource, type PolicyEditHistoryCandidateContext, type PolicyEditHistoryGenerationContext, type PolicyEditHistoryProjectionOptions, type PolicyEditObjective, type PolicyEditOutcomeContext, type PolicyEditProposerOptions, type PowerPreflight, type PowerPreflightOptions, type PremeasuredOptimizationBaseline, type ProfileDispatchFn, ProfileMatrixError, type ProfileSummary, type PromotionObjective, type PromotionPolicy, type ProposalTrackContext, type ProposeContext, type ProposePatchesArgs, type ProposedCandidate, type ProposerComparison, type ProposerEntry, type ProposerPairwise, type ProposerScore, type RedactionStatus, type ReferenceEquivalenceJudgeOptions, type ReferenceEquivalenceScenario, type RejectedEdit, type RolloutArgumentDiff, type RolloutArgumentDiffOptions, type RolloutCall, type RunCampaignOptions, type RunEvalOptions, type RunImprovementLoopOptions, type RunImprovementLoopResult, type RunLineageLoopOptions, type RunLineageLoopResult, type RunLineageLoopSeed, type RunLineageOptions, type RunLineageResult, type RunLineageSeed, type RunLineageStepResult, type RunOptimizationOptions, type RunOptimizationResult, type RunProfileMatrixOptions, type RunProfileMatrixResult, type RunSkillOptOptions, type RunSkillOptResult, SEARCH_LEDGER_SCHEMA, type Scenario, type ScenarioAggregate, type ScenarioRollup, type ScenarioSignal, type ScoreboardRenderOptions, type ScoreboardRow, type ScoreboardSummary, type ScoredRollout, type ScoredSurfaceOutcome, type SearchAccountingAudit, type SearchArtifactRef, type SearchAttemptAccounting, type SearchCandidateDecidedEvent, type SearchCandidateLineage, type SearchCandidateRegisteredEvent, type SearchCandidateSlot, type SearchCandidateSlotClosedEvent, type SearchCandidateSurface, type SearchCompletedEvent, type SearchCostAccounting, type SearchFailureReason, type SearchLedger, type SearchLedgerAppendResult, SearchLedgerConflictError, type SearchLedgerEntry, SearchLedgerError, type SearchLedgerEvent, type SearchLedgerHash, SearchLedgerIntegrityError, type SearchLedgerReplay, type SearchModelIdentity, type SearchOperationKind, type SearchOperationRecordedEvent, type SearchPlan, type SearchPlannedEvent, type SearchPlannedOperation, type SearchPlannedTask, type SearchSourceRef, type SearchSurfaceEffect, type SearchSurfaceEvidence, type SearchSurfaceKind, type SearchTaskAttemptedEvent, type SearchTaskOutcome, type SearchTokenAccounting, type SelectPolicyEditAuthorRowsOptions, type SequentialDecideFn, type SequentialDecideOptions, type SequentialDecision, type SequentialObservation, type SequentialPairedGate, type SequentialPairedGateOptions, type SerializedJsonBudget, type SessionScript, type SingleRunLock, type SingleRunLockOptions, type SkillOptEpochRecord, type SkillOptEvidence, type SkillOptProposer, type SkillOptProposerOptions, type SkillPatch, type SkillPatchOp, SkillPatchParseError, type SkillPatchRejection, type SurfaceProposer, type SurfaceScore, type TraceAnalystPriorFindings, type TraceAnalystProposerOptions, type TraceSpan, type TransientFailureOptions, type UngroundedLiteralReport, type UserStory, type UserStoryVerdict, type Worktree, type WorktreeAdapter, WorktreeAdapterError, aceProposer, acquireSingleRunLock, analyzeCrossSurfaceInteractions, applySkillPatch, assertCampaignDesign, assertCampaignSplitIdentity, assertCodeSurfaceIdentity, assertPolicyEditAuthorContextBudget, buildAnalystSurfaceDispatch, buildEvidenceVector, buildLoopProvenanceRecord, callbackGovernor, campaignBreakdown, campaignLineageStore, campaignMeanComposite, campaignMeasurementDigest, campaignScenarioIdentity, campaignSplitDigest, campaignSplitDigestFromIdentities, canonicalDigest, classifyUngroundedLiterals, codeSurfaceIdentityMaterial, compareProposers, composeGate, compositeProposer, countSentenceEdits, createReferenceEquivalenceJudge, createRunCostLedger, defaultProductionGate, detectScale, dimensionRegressions, discoverEvalFixtures, emitLoopProvenance, evolutionaryProposer, extractFapoAttributionSignals, extractH2Sections, failureModeRecallJudge, fapoEscalationEntry, fapoProposer, fsCampaignStorage, fsLineageStore, gepaParetoEntry, gepaProposer, gepaReflectionEntry, gitWorktreeAdapter, haloProposer, heldOutGate, heldoutSignificance, heuristicGovernor, inMemoryCampaignStorage, isProposedCandidate, isTransientTransportFailure, labelTrustRank, lineageNodeId, llmJudge, llmPolicyEditProposer, loadEvalFixture, loadEvalFixtureScenarios, loopProvenanceArgsFromResult, loopProvenanceSpans, makePlaybackDispatch, memLineageStore, memoryCurationProposer, neutralizationGate, neutralizeText, openAutoPr, openSearchLedger, pairHoldout, parameterSweepProposer, paretoPolicy, paretoSignificanceGate, parseSkillPatchResponse, patchEditCount, planCampaignRun, planEvalFixtureRun, policyEditProposer, powerPreflight, projectPolicyEditHistory, provenanceRecordPath, provenanceSpansPath, renderScoreboardMarkdown, renderSurfaceDiff, resolveRunDir, resolveWorktreePath, rolloutArgumentDiff, runCampaign, runEval, runImprovementLoop, runLineage, runLineageLoop, runOptimization, runProfileMatrix, runSkillOpt, scoreDiscrimination, scoreUserStory, scoreboardSummary, selectDiscriminative, selectPolicyEditAuthorRows, sequentialDecide, sequentialPairedGate, skillOptEntry, skillOptProposer, surfaceContentHash, surfaceHash, tangleTracesRoot, traceAnalystProposer, userStoryScoreboard, validatePolicyEditCandidateRecord, validateSearchLedgerEvent, verifyCodeSurface, verifyLoopProvenanceRecord };
7681
+ export { type AcceptedEdit, type AceProposerOptions, type AnalystArtifact, type AnalystScenario, type AnalyzeCrossSurfaceInteractionsInput, type AnalyzeOtlpTraceFileOptions, type ApplySkillPatchResult, type AxisEvidence, type AxisVerdict, type BuildAnalystSurfaceDispatchOptions, type BuildEvidenceVectorOptions, type BuildLoopProvenanceArgs, type BuiltinOptimizationMethodConfig, type CampaignAggregates, type CampaignArtifactWriter, type CampaignBreakdown, type CampaignCellResult, type CampaignCostMeter, type CampaignResult, type CampaignRunPlan, type CampaignRunPlanCell, type CampaignScenarioIdentity, type CampaignStorage, type CampaignTokenUsage, type CampaignTraceWriter, type CodeSurface, type CodeSurfaceVerification, type CompareOptimizationMethodsOptions, type ComparisonCost, type CompositeProposerOptions, type CostLedgerHandle, type CrossSurfaceAdditionDecision, type CrossSurfaceAdditionRejectionReason, type CrossSurfaceAttemptCompleteness, type CrossSurfaceBestSingleSelection, type CrossSurfaceBootstrapPolicy, type CrossSurfaceCandidate, type CrossSurfaceCandidateComparison, type CrossSurfaceCandidateEvidence, type CrossSurfaceCandidateOutcome, type CrossSurfaceCandidateSummary, type CrossSurfaceComponent, type CrossSurfaceComponentEvidence, type CrossSurfaceCompositionStep, type CrossSurfaceDistribution, type CrossSurfaceEligibility, type CrossSurfaceEvidenceBreakdown, type CrossSurfaceIneligibilityReason, type CrossSurfaceInteractionAwareSelection, type CrossSurfaceInteractionEffect, type CrossSurfaceInteractionPath, type CrossSurfaceInteractionReport, type CrossSurfaceInteractionTask, type CrossSurfaceNaiveStackSelection, type CrossSurfacePairCompatibility, type CrossSurfacePairEvidence, type CrossSurfacePairIncompatibilityReason, type CrossSurfacePairwiseEntry, type CrossSurfaceRankedSingle, type CrossSurfaceRelativeCost, type CrossSurfaceSelectionPolicy, type CrossSurfaceSelections, type CrossSurfaceTaskRow, DEFAULT_POLICY_EDIT_HISTORY_LIMITS, type DefaultProductionGateOptions, type DimensionRegression, type DiscriminationScore, type DispatchContext, type DispatchFn, type EmitLoopProvenanceArgs, type EmitLoopProvenanceResult, type EvalFixture, type EvalFixtureFile, type EvalFixtureLoadOptions, type EvalFixtureRunPlan, type EvalFixtureScenario, type EvalFixtureValidationMode, type EvidenceVector, type EvolutionaryProposerOptions, type FailureModeRecallJudgeOptions, type FapoAttributionSignals, type FapoFailureCluster, type FapoOptimizationLevel, type FapoOptimizationMethodConfig, type FapoProposerOptions, type FapoReviewInput, type FapoReviewIssue, type FapoReviewResult, type FapoScopeContract, FileSearchLedger, FsLabeledScenarioStore, type FsLabeledScenarioStoreOptions, type Gate, type GateContext, type GateDecision, type GateResult, type GenerationCandidate, type GenerationRecord, type GepaProposerConstraints, type GepaProposerOptions, type GitWorktreeAdapterOptions, type Governor, type GovernorContext, type GovernorOp, type HaloProposerOptions, type HeldOutGateOptions, type HeldoutSignificance, type HeldoutSignificanceOptions, type HeuristicGovernorOptions, type JsonPolicyEditTargetSurface, type JsonPrimitive, type JsonValue, type JudgeAggregate, type JudgeConfig, type JudgeDimension, type JudgeScore, type LabelTrust, type LabeledScenarioRecord, type LabeledScenarioSampleArgs, type LabeledScenarioSource, type LabeledScenarioStore, LabeledScenarioStoreError, type LabeledScenarioWrite, Lineage, type LineageEdge, type LineageGraph, type LineageNode, type LineageNodeInput, type LineageStore, LineageStoreConflictError, type LlmJudgeDimension, type LlmJudgeOptions, type LlmPolicyEditProposerOptions, type LoadEvalFixtureScenariosOptions, type LoopProvenanceArgsFromResult, type LoopProvenanceBackend, type LoopProvenanceCandidate, type LoopProvenanceEvidence, type LoopProvenanceRecord, type MemoryCurationProposerOptions, type MutableSurface, type Mutator, type NeutralizationGateOptions, type ObjectiveSource, type OpenAutoPrOptions, type OpenAutoPrResult, type OpenSearchLedgerOptions, type OptimizationMethod, type OptimizationMethodComparison, type OptimizationMethodInput, type OptimizationMethodPairwise, type OptimizationMethodResult, type OptimizationMethodRunOptions, type OptimizationMethodScore, type OptimizationProposer, type OptimizerConfig, POLICY_EDIT_CANDIDATE_RECORD_SCHEMA, type PairedHoldout, type ParameterCandidate, type ParameterChange, type ParameterSweepProposerOptions, type ParetoParent, type ParetoSignificanceGateOptions, type PendingCostCallView, type PlanCampaignRunOptions, type PlanEvalFixtureRunOptions, type PlaybackContext, type PlaybackDriver, type PlaybackStep, type PolicyEditAuthorScenarioRow, type PolicyEditCandidateRecord, type PolicyEditCandidateSummary, type PolicyEditFindingInput, type PolicyEditFindingSource, type PolicyEditHistoryCandidateContext, type PolicyEditHistoryGenerationContext, type PolicyEditHistoryProjectionOptions, type PolicyEditObjective, type PolicyEditOutcomeContext, type PolicyEditProposerOptions, type PowerPreflight, type PowerPreflightOptions, type PremeasuredOptimizationBaseline, type ProfileDispatchFn, ProfileMatrixError, type ProfileSummary, type PromotionObjective, type PromotionPolicy, type ProposalTrackContext, type ProposeContext, type ProposePatchesArgs, type ProposedCandidate, type RedactionStatus, type ReferenceEquivalenceJudgeOptions, type ReferenceEquivalenceScenario, type RejectedEdit, type RolloutArgumentDiff, type RolloutArgumentDiffOptions, type RolloutCall, type RunCampaignOptions, type RunEvalOptions, type RunImprovementLoopOptions, type RunImprovementLoopResult, type RunLineageLoopOptions, type RunLineageLoopResult, type RunLineageLoopSeed, type RunLineageOptions, type RunLineageResult, type RunLineageSeed, type RunLineageStepResult, type RunOptimizationOptions, type RunOptimizationResult, type RunProfileMatrixOptions, type RunProfileMatrixResult, type RunSkillOptOptions, type RunSkillOptResult, SEARCH_LEDGER_SCHEMA, type Scenario, type ScenarioAggregate, type ScenarioRollup, type ScenarioSignal, type ScoreboardRenderOptions, type ScoreboardRow, type ScoreboardSummary, type ScoredRollout, type ScoredSurfaceOutcome, type SearchAccountingAudit, type SearchArtifactRef, type SearchAttemptAccounting, type SearchCandidateDecidedEvent, type SearchCandidateLineage, type SearchCandidateRegisteredEvent, type SearchCandidateSlot, type SearchCandidateSlotClosedEvent, type SearchCandidateSurface, type SearchCompletedEvent, type SearchCostAccounting, type SearchFailureReason, type SearchLedger, type SearchLedgerAppendResult, SearchLedgerConflictError, type SearchLedgerEntry, SearchLedgerError, type SearchLedgerEvent, type SearchLedgerHash, SearchLedgerIntegrityError, type SearchLedgerReplay, type SearchModelIdentity, type SearchOperationKind, type SearchOperationRecordedEvent, type SearchPlan, type SearchPlannedEvent, type SearchPlannedOperation, type SearchPlannedTask, type SearchSourceRef, type SearchSurfaceEffect, type SearchSurfaceEvidence, type SearchSurfaceKind, type SearchTaskAttemptedEvent, type SearchTaskOutcome, type SearchTokenAccounting, type SelectPolicyEditAuthorRowsOptions, type SequentialDecideFn, type SequentialDecideOptions, type SequentialDecision, type SequentialObservation, type SequentialPairedGate, type SequentialPairedGateOptions, type SerializedJsonBudget, type SessionScript, type SingleRunLock, type SingleRunLockOptions, type SkillOptEpochRecord, type SkillOptEvidence, type SkillOptProposer, type SkillOptProposerOptions, type SkillPatch, type SkillPatchOp, SkillPatchParseError, type SkillPatchRejection, type SurfaceProposer, type SurfaceScore, type TraceAnalystPriorFindings, type TraceAnalystProposerOptions, type TraceSpan, type TransientFailureOptions, type UngroundedLiteralReport, type UserStory, type UserStoryVerdict, type Worktree, type WorktreeAdapter, WorktreeAdapterError, aceProposer, acquireSingleRunLock, analyzeCrossSurfaceInteractions, analyzeOtlpTraceFile, applySkillPatch, assertCampaignDesign, assertCampaignSplitIdentity, assertCodeSurfaceIdentity, assertPolicyEditAuthorContextBudget, buildAnalystSurfaceDispatch, buildEvidenceVector, buildLoopProvenanceRecord, callbackGovernor, campaignBreakdown, campaignLineageStore, campaignMeanComposite, campaignMeasurementDigest, campaignScenarioIdentity, campaignSplitDigest, campaignSplitDigestFromIdentities, canonicalDigest, classifyUngroundedLiterals, codeSurfaceIdentityMaterial, compareOptimizationMethods, composeGate, compositeProposer, costFromLedgerSummary, countSentenceEdits, createReferenceEquivalenceJudge, createRunCostLedger, defaultProductionGate, detectScale, dimensionRegressions, discoverEvalFixtures, emitLoopProvenance, evolutionaryProposer, extractFapoAttributionSignals, extractH2Sections, failureModeRecallJudge, fapoEscalationMethod, fapoProposer, fsCampaignStorage, fsLineageStore, gepaParetoMethod, gepaProposer, gepaReflectionMethod, gitWorktreeAdapter, haloProposer, heldOutGate, heldoutSignificance, heuristicGovernor, inMemoryCampaignStorage, isProposedCandidate, isTransientTransportFailure, labelTrustRank, lineageNodeId, llmJudge, llmPolicyEditProposer, loadEvalFixture, loadEvalFixtureScenarios, loopProvenanceArgsFromResult, loopProvenanceSpans, makePlaybackDispatch, memLineageStore, memoryCurationProposer, neutralizationGate, neutralizeText, openAutoPr, openSearchLedger, pairHoldout, parameterSweepProposer, paretoPolicy, paretoSignificanceGate, parseSkillPatchResponse, patchEditCount, planCampaignRun, planEvalFixtureRun, policyEditProposer, powerPreflight, projectPolicyEditHistory, provenanceRecordPath, provenanceSpansPath, renderScoreboardMarkdown, renderSurfaceDiff, resolveRunDir, resolveWorktreePath, rolloutArgumentDiff, runCampaign, runEval, runImprovementLoop, runLineage, runLineageLoop, runOptimization, runProfileMatrix, runSkillOpt, scoreDiscrimination, scoreUserStory, scoreboardSummary, selectDiscriminative, selectPolicyEditAuthorRows, sequentialDecide, sequentialPairedGate, skillOptMethod, skillOptProposer, surfaceContentHash, surfaceHash, tangleTracesRoot, traceAnalystProposer, userStoryScoreboard, validatePolicyEditCandidateRecord, validateSearchLedgerEvent, verifyCodeSurface, verifyLoopProvenanceRecord };