@tangle-network/agent-eval 0.110.0 → 0.111.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/belief-state/index.js +1 -1
  3. package/dist/benchmarks/index.js +6 -6
  4. package/dist/builder-eval/index.js +1 -1
  5. package/dist/campaign/index.d.ts +50 -5
  6. package/dist/campaign/index.js +7 -5
  7. package/dist/{chunk-X6NIXVOD.js → chunk-3LDPUYAC.js} +2 -2
  8. package/dist/{chunk-N22ZO7FV.js → chunk-7QPK6W7R.js} +2 -2
  9. package/dist/{chunk-QFGTU7MT.js → chunk-BOLYPSAE.js} +4 -4
  10. package/dist/{chunk-RNB2NICW.js → chunk-D2XDWRFX.js} +74 -4
  11. package/dist/chunk-D2XDWRFX.js.map +1 -0
  12. package/dist/{chunk-6MFFKPZ4.js → chunk-EMKORATZ.js} +2 -2
  13. package/dist/{chunk-GTERJI6Q.js → chunk-RCXMWGRY.js} +16 -5
  14. package/dist/{chunk-GTERJI6Q.js.map → chunk-RCXMWGRY.js.map} +1 -1
  15. package/dist/{chunk-6HFYGEZ3.js → chunk-RT2AFUXM.js} +2 -2
  16. package/dist/{chunk-XMSYF4A7.js → chunk-VC43KQCK.js} +24 -1
  17. package/dist/chunk-VC43KQCK.js.map +1 -0
  18. package/dist/{chunk-T6W5ADLG.js → chunk-VLNGPUJJ.js} +2 -2
  19. package/dist/{chunk-6PL5MGDL.js → chunk-WZOIFFG2.js} +2 -2
  20. package/dist/{chunk-3PFZBGMR.js → chunk-XNCF3JU3.js} +2 -2
  21. package/dist/{chunk-PLOMR3HP.js → chunk-YWGKQARF.js} +2 -2
  22. package/dist/contract/index.d.ts +11 -10
  23. package/dist/contract/index.js +6 -6
  24. package/dist/contract/index.js.map +1 -1
  25. package/dist/{gepa-BUNP3606.d.ts → gepa-T8T215nw.d.ts} +6 -4
  26. package/dist/index.d.ts +122 -5
  27. package/dist/index.js +470 -210
  28. package/dist/index.js.map +1 -1
  29. package/dist/meta-eval/index.d.ts +1 -1
  30. package/dist/meta-eval/index.js +2 -2
  31. package/dist/openapi.json +1 -1
  32. package/dist/pipelines/index.js +2 -2
  33. package/dist/{provenance-DMvsfknv.d.ts → provenance-KhY8ESVM.d.ts} +2 -2
  34. package/dist/reporting.d.ts +1 -1
  35. package/dist/reporting.js +4 -4
  36. package/dist/rl.js +5 -5
  37. package/dist/{run-campaign-PNHAJIT2.js → run-campaign-HJQEDCJQ.js} +3 -3
  38. package/dist/{statistics-D88peojY.d.ts → statistics-CDfpwIdX.d.ts} +13 -1
  39. package/docs/improvement-glossary.md +14 -13
  40. package/package.json +1 -1
  41. package/dist/chunk-RNB2NICW.js.map +0 -1
  42. package/dist/chunk-XMSYF4A7.js.map +0 -1
  43. /package/dist/{chunk-X6NIXVOD.js.map → chunk-3LDPUYAC.js.map} +0 -0
  44. /package/dist/{chunk-N22ZO7FV.js.map → chunk-7QPK6W7R.js.map} +0 -0
  45. /package/dist/{chunk-QFGTU7MT.js.map → chunk-BOLYPSAE.js.map} +0 -0
  46. /package/dist/{chunk-6MFFKPZ4.js.map → chunk-EMKORATZ.js.map} +0 -0
  47. /package/dist/{chunk-6HFYGEZ3.js.map → chunk-RT2AFUXM.js.map} +0 -0
  48. /package/dist/{chunk-T6W5ADLG.js.map → chunk-VLNGPUJJ.js.map} +0 -0
  49. /package/dist/{chunk-6PL5MGDL.js.map → chunk-WZOIFFG2.js.map} +0 -0
  50. /package/dist/{chunk-3PFZBGMR.js.map → chunk-XNCF3JU3.js.map} +0 -0
  51. /package/dist/{chunk-PLOMR3HP.js.map → chunk-YWGKQARF.js.map} +0 -0
  52. /package/dist/{run-campaign-PNHAJIT2.js.map → run-campaign-HJQEDCJQ.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@ All notable changes to `@tangle-network/agent-eval` and its sibling `agent-eval-
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.111.0] — 2026-07-09 — repository-clustered paired inference
8
+
9
+ ### Added
10
+
11
+ - Added `clusteredPairedBinary`, which pairs binary outcomes by work item, exposes every unmatched row, resamples whole repositories for a task-weighted confidence interval, and tests the same effect with whole-repository sign flips.
12
+ - Added Holm step-down adjustment for strong family-wise error control across benchmark arms.
13
+
14
+ The cluster interval is unavailable below two repositories, and consumers must reject unmatched rows before promotion.
15
+
16
+ ## [0.110.1] — 2026-07-09 — proposer portfolio export
17
+
18
+ ### Added
19
+
20
+ - Exported the existing `compositeProposer` and `CompositeProposerOptions` from `@tangle-network/agent-eval/campaign`, so consumers can split one population budget across GEPA, SkillOpt, FAPO, memory, trace-analysis, or other proposers without copying the portfolio implementation.
21
+ - Added a packed-package import check for the export.
22
+
23
+ No proposer behavior changed.
24
+
7
25
  ## [0.108.1] — 2026-07-08 — public catalog docs patch
8
26
 
9
27
  ### Fixed
@@ -17,7 +17,7 @@ import {
17
17
  } from "../chunk-DTJ6QUQB.js";
18
18
  import {
19
19
  confidenceInterval
20
- } from "../chunk-XMSYF4A7.js";
20
+ } from "../chunk-VC43KQCK.js";
21
21
  import {
22
22
  ValidationError
23
23
  } from "../chunk-ONWEPEDO.js";
@@ -16,15 +16,15 @@ import {
16
16
  routing_exports,
17
17
  runBenchmarkAdapter,
18
18
  summarizeBenchmarkCampaign
19
- } from "../chunk-T6W5ADLG.js";
20
- import "../chunk-RNB2NICW.js";
21
- import "../chunk-GTERJI6Q.js";
19
+ } from "../chunk-VLNGPUJJ.js";
20
+ import "../chunk-D2XDWRFX.js";
21
+ import "../chunk-RCXMWGRY.js";
22
22
  import "../chunk-VI2UW6B6.js";
23
- import "../chunk-3PFZBGMR.js";
23
+ import "../chunk-XNCF3JU3.js";
24
24
  import "../chunk-2IY4ILP4.js";
25
25
  import "../chunk-7NX6ZSBG.js";
26
- import "../chunk-N22ZO7FV.js";
27
- import "../chunk-XMSYF4A7.js";
26
+ import "../chunk-7QPK6W7R.js";
27
+ import "../chunk-VC43KQCK.js";
28
28
  import "../chunk-RPDDVKI7.js";
29
29
  import "../chunk-GGE4NNQT.js";
30
30
  import "../chunk-LNQEP766.js";
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  pearsonR,
7
7
  spearmanR
8
- } from "../chunk-XMSYF4A7.js";
8
+ } from "../chunk-VC43KQCK.js";
9
9
  import {
10
10
  judgeSpans
11
11
  } from "../chunk-MHNQWM4I.js";
@@ -3,12 +3,12 @@ export { L as LlmJudgeDimension, c as LlmJudgeOptions, l as llmJudge } from '../
3
3
  import { A as AnalyzeTracesOptions, a as AnalyzeTracesInput, b as AnalyzeTracesResult } from '../analyst-C8HHvfJp.js';
4
4
  import { S as Scenario, M as MutableSurface, D as DispatchContext, b as JudgeConfig, g as Gate, e as GenerationRecord, J as JudgeScore, L as LabeledScenarioStore, s as LabeledScenarioWrite, t as LabeledScenarioSampleArgs, u as LabeledScenarioRecord, v as LabelTrust, f as SurfaceProposer, w as ProposedCandidate, x as ProposeContext, y as LabeledScenarioSource, C as CampaignResult, m as CodeSurface } from '../types-v--ctu-b.js';
5
5
  export { i as CampaignAggregates, j as CampaignArtifactWriter, k as CampaignCellResult, l as CampaignCostMeter, z as CampaignTokenUsage, d as CampaignTraceWriter, c as DispatchFn, n as GateContext, h as GateDecision, G as GateResult, o as GenerationCandidate, A as JudgeAggregate, a as JudgeDimension, p as Mutator, O as OptimizationProposer, q as OptimizerConfig, P as ParetoParent, R as RedactionStatus, B as ScenarioAggregate, r as SessionScript, T as TraceSpan, E as isProposedCandidate, F as labelTrustRank } from '../types-v--ctu-b.js';
6
- import { C as CampaignRunPlan, P as PlanCampaignRunOptions, b as RunCampaignOptions, c as RunImprovementLoopOptions } from '../gepa-BUNP3606.js';
7
- export { f as CampaignRunPlanCell, h as GepaProposerConstraints, G as GepaProposerOptions, O as OpenAutoPrOptions, i as OpenAutoPrResult, a as RunImprovementLoopResult, R as RunOptimizationOptions, j as RunOptimizationResult, k as countSentenceEdits, l as defaultRenderDiff, m as extractH2Sections, g as gepaProposer, o as openAutoPr, p as planCampaignRun, r as runCampaign, d as runImprovementLoop, n as runOptimization, s as surfaceHash } from '../gepa-BUNP3606.js';
6
+ import { C as CampaignRunPlan, P as PlanCampaignRunOptions, b as RunCampaignOptions, c as RunImprovementLoopOptions } from '../gepa-T8T215nw.js';
7
+ export { f as CampaignRunPlanCell, h as GepaProposerConstraints, G as GepaProposerOptions, O as OpenAutoPrOptions, i as OpenAutoPrResult, a as RunImprovementLoopResult, R as RunOptimizationOptions, j as RunOptimizationResult, k as countSentenceEdits, l as defaultRenderDiff, m as extractH2Sections, g as gepaProposer, o as openAutoPr, p as planCampaignRun, r as runCampaign, d as runImprovementLoop, n as runOptimization, s as surfaceHash } from '../gepa-T8T215nw.js';
8
8
  import { C as CampaignStorage } from '../storage-Dw_f7WMt.js';
9
9
  export { f as fsCampaignStorage, i as inMemoryCampaignStorage } from '../storage-Dw_f7WMt.js';
10
- export { A as AxisEvidence, a as AxisVerdict, B as BuildEvidenceVectorOptions, l as BuildLoopProvenanceArgs, D as DefaultProductionGateOptions, m as EmitLoopProvenanceArgs, n as EmitLoopProvenanceResult, E as EvidenceVector, b as EvolutionaryProposerOptions, H as HeldOutGateOptions, o as LoopProvenanceBackend, q as LoopProvenanceCandidate, L as LoopProvenanceRecord, O as ObjectiveSource, c as ParetoSignificanceGateOptions, P as PowerPreflight, s as PowerPreflightOptions, d as PromotionObjective, e as PromotionPolicy, R as RunEvalOptions, f as buildEvidenceVector, t as buildLoopProvenanceRecord, g as composeGate, h as defaultProductionGate, u as emitLoopProvenance, i as evolutionaryProposer, j as heldOutGate, v as loopProvenanceSpans, p as paretoPolicy, k as paretoSignificanceGate, w as powerPreflight, x as provenanceRecordPath, y as provenanceSpansPath, r as runEval, z as surfaceContentHash } from '../provenance-DMvsfknv.js';
11
- import { E as EProcessState, a as PairedBootstrapResult } from '../statistics-D88peojY.js';
10
+ export { A as AxisEvidence, a as AxisVerdict, B as BuildEvidenceVectorOptions, l as BuildLoopProvenanceArgs, D as DefaultProductionGateOptions, m as EmitLoopProvenanceArgs, n as EmitLoopProvenanceResult, E as EvidenceVector, b as EvolutionaryProposerOptions, H as HeldOutGateOptions, o as LoopProvenanceBackend, q as LoopProvenanceCandidate, L as LoopProvenanceRecord, O as ObjectiveSource, c as ParetoSignificanceGateOptions, P as PowerPreflight, s as PowerPreflightOptions, d as PromotionObjective, e as PromotionPolicy, R as RunEvalOptions, f as buildEvidenceVector, t as buildLoopProvenanceRecord, g as composeGate, h as defaultProductionGate, u as emitLoopProvenance, i as evolutionaryProposer, j as heldOutGate, v as loopProvenanceSpans, p as paretoPolicy, k as paretoSignificanceGate, w as powerPreflight, x as provenanceRecordPath, y as provenanceSpansPath, r as runEval, z as surfaceContentHash } from '../provenance-KhY8ESVM.js';
11
+ import { E as EProcessState, a as PairedBootstrapResult } from '../statistics-CDfpwIdX.js';
12
12
  import { L as LlmClientOptions } from '../llm-client-DyqEH4jH.js';
13
13
  import { AgentProfile } from '@tangle-network/agent-interface';
14
14
  import { A as AgentEvalError } from '../errors-oeQrLqXC.js';
@@ -1836,6 +1836,51 @@ interface AceProposerOptions {
1836
1836
  */
1837
1837
  declare function aceProposer(opts?: AceProposerOptions): SurfaceProposer;
1838
1838
 
1839
+ /**
1840
+ * `compositeProposer` — run N proposers TOGETHER on the same surface.
1841
+ *
1842
+ * The question this answers ("why can't we combine GEPA + skillOpt + ACE + a
1843
+ * trace-analyst?"): nothing in the loop cares where candidates come from — the
1844
+ * generation's population is one pool and the Pareto frontier / promotion logic
1845
+ * evaluates every candidate identically. The only missing piece was a proposer
1846
+ * that fans the population budget out across members and merges their proposals.
1847
+ * This is that piece.
1848
+ *
1849
+ * Semantics:
1850
+ * - Budget: each member is asked for a share of `populationSize`
1851
+ * (near-equal split by default, or explicit `weights`). Members may return
1852
+ * fewer; the pool is topped up round-robin from members that can offer more
1853
+ * is NOT attempted — proposers are not obligated to be re-entrant.
1854
+ * - Provenance: every candidate's `label` is prefixed with its member's kind
1855
+ * (`gepa:...`, `skill-opt:...`) so generation records and the promotion
1856
+ * provenance attribute each winner to the proposer family that made it —
1857
+ * the cheap, honest version of proposer-level credit assignment.
1858
+ * - Dedup: identical surfaces from different members collapse to the first.
1859
+ * - Failure isolation: one member throwing does not sink the generation; its
1860
+ * error is logged into the surviving candidates' generation via a warning
1861
+ * and the pool proceeds (a generation with zero candidates from all members
1862
+ * failing still throws — that is a real failure).
1863
+ * - Early stop: the composite stops only when EVERY member with a `decide`
1864
+ * votes stop (a member without `decide` never votes stop).
1865
+ *
1866
+ * This is deliberately NOT joint multi-surface mutation: every member mutates
1867
+ * the SAME `MutableSurface`. Joint profile-patch surfaces (prompt+skills+tools
1868
+ * in one candidate) require the composite-surface contract and measured
1869
+ * component attribution — see the experiment-optimal research brief.
1870
+ */
1871
+
1872
+ interface CompositeProposerOptions<TFindings = unknown> {
1873
+ /** Member proposers, in priority order (earlier members get the larger share
1874
+ * of an uneven split). At least one required. */
1875
+ proposers: Array<SurfaceProposer<TFindings>>;
1876
+ /** Optional population-share weights, same length as `proposers`. Need not
1877
+ * sum to anything; shares are proportional. Default: equal. */
1878
+ weights?: number[];
1879
+ }
1880
+ /** Fan the population budget across N proposers and merge their candidates into
1881
+ * one generation pool, with per-member provenance labels. */
1882
+ declare function compositeProposer<TFindings = unknown>(opts: CompositeProposerOptions<TFindings>): SurfaceProposer<TFindings>;
1883
+
1839
1884
  /**
1840
1885
  * `haloProposer` — wraps the REAL halo-engine (Inference.net's hierarchical
1841
1886
  * agentic trace analyzer, `pip install halo-engine`, repo context-labs/halo)
@@ -2216,4 +2261,4 @@ declare function gitWorktreeAdapter(opts: GitWorktreeAdapterOptions): WorktreeAd
2216
2261
  * as a ref under the adapter's worktree dir. */
2217
2262
  declare function resolveWorktreePath(surface: CodeSurface, worktreeDir?: string): string;
2218
2263
 
2219
- export { type AcceptedEdit, type AceProposerOptions, type AnalystArtifact, type AnalystScenario, type ApplySkillPatchResult, type BuildAnalystSurfaceDispatchOptions, type CampaignBreakdown, CampaignResult, CampaignRunPlan, CampaignStorage, CodeSurface, type CompareProposersOptions, type DimensionRegression, type DiscriminationScore, DispatchContext, type EvalFixture, type EvalFixtureFile, type EvalFixtureLoadOptions, type EvalFixtureRunPlan, type EvalFixtureScenario, type EvalFixtureValidationMode, type FailureModeRecallJudgeOptions, type FapoAttributionSignals, type FapoEntryConfig, type FapoFailureCluster, type FapoOptimizationLevel, type FapoProposerOptions, type FapoReviewInput, type FapoReviewIssue, type FapoReviewResult, type FapoScopeContract, FsLabeledScenarioStore, type FsLabeledScenarioStoreOptions, Gate, GenerationRecord, type GitWorktreeAdapterOptions, type Governor, type GovernorContext, type GovernorOp, type HaloProposerOptions, type HeldoutSignificance, type HeldoutSignificanceOptions, type HeuristicGovernorOptions, type JsonPrimitive, type JsonValue, JudgeConfig, JudgeScore, LabelTrust, LabeledScenarioRecord, LabeledScenarioSampleArgs, LabeledScenarioSource, LabeledScenarioStore, LabeledScenarioStoreError, LabeledScenarioWrite, Lineage, type LineageEdge, type LineageGraph, type LineageNode, type LineageNodeInput, type LineageStore, type LoadEvalFixtureScenariosOptions, type MemoryCurationProposerOptions, MutableSurface, type NeutralizationGateOptions, type OptimizerEntryConfig, type PairedHoldout, type ParameterCandidate, type ParameterChange, type ParameterSweepProposerOptions, PlanCampaignRunOptions, type PlanEvalFixtureRunOptions, type PlaybackContext, type PlaybackDriver, type PlaybackStep, type PolicyEditProposerOptions, type ProfileDispatchFn, ProfileMatrixError, type ProfileSummary, ProposeContext, type ProposePatchesArgs, ProposedCandidate, type ProposerComparison, type ProposerEntry, type ProposerPairwise, type ProposerScore, type RejectedEdit, type RolloutArgumentDiff, type RolloutArgumentDiffOptions, type RolloutCall, RunCampaignOptions, RunImprovementLoopOptions, type RunLineageLoopOptions, type RunLineageLoopResult, type RunLineageLoopSeed, type RunLineageOptions, type RunLineageResult, type RunLineageSeed, type RunLineageStepResult, type RunProfileMatrixOptions, type RunProfileMatrixResult, type RunSkillOptOptions, type RunSkillOptResult, Scenario, type ScenarioRollup, type ScenarioSignal, type ScoreboardRenderOptions, type ScoreboardRow, type ScoreboardSummary, type ScoredRollout, type SequentialDecideFn, type SequentialDecideOptions, type SequentialDecision, type SequentialObservation, type SequentialPairedGate, type SequentialPairedGateOptions, type SingleRunLock, type SingleRunLockOptions, type SkillOptEpochRecord, type SkillOptEvidence, type SkillOptProposer, type SkillOptProposerOptions, type SkillPatch, type SkillPatchOp, SkillPatchParseError, type SkillPatchRejection, SurfaceProposer, type SurfaceScore, type TraceAnalystProposerOptions, type TransientFailureOptions, type UngroundedLiteralReport, type UserStory, type UserStoryVerdict, type Worktree, type WorktreeAdapter, WorktreeAdapterError, aceProposer, acquireSingleRunLock, applySkillPatch, buildAnalystSurfaceDispatch, callbackGovernor, campaignBreakdown, campaignMeanComposite, classifyUngroundedLiterals, compareProposers, detectScale, dimensionRegressions, discoverEvalFixtures, extractFapoAttributionSignals, failureModeRecallJudge, fapoEscalationEntry, fapoProposer, fsLineageStore, gepaParetoEntry, gepaReflectionEntry, gitWorktreeAdapter, haloProposer, heldoutSignificance, heuristicGovernor, isTransientTransportFailure, lineageNodeId, loadEvalFixture, loadEvalFixtureScenarios, makePlaybackDispatch, memLineageStore, memoryCurationProposer, neutralizationGate, neutralizeText, pairHoldout, parameterSweepProposer, parseSkillPatchResponse, patchEditCount, planEvalFixtureRun, policyEditProposer, renderScoreboardMarkdown, resolveRunDir, resolveWorktreePath, rolloutArgumentDiff, runLineage, runLineageLoop, runProfileMatrix, runSkillOpt, scoreDiscrimination, scoreUserStory, scoreboardSummary, selectDiscriminative, sequentialDecide, sequentialPairedGate, skillOptEntry, skillOptProposer, tangleTracesRoot, traceAnalystProposer, userStoryScoreboard };
2264
+ export { type AcceptedEdit, type AceProposerOptions, type AnalystArtifact, type AnalystScenario, type ApplySkillPatchResult, type BuildAnalystSurfaceDispatchOptions, type CampaignBreakdown, CampaignResult, CampaignRunPlan, CampaignStorage, CodeSurface, type CompareProposersOptions, type CompositeProposerOptions, type DimensionRegression, type DiscriminationScore, DispatchContext, type EvalFixture, type EvalFixtureFile, type EvalFixtureLoadOptions, type EvalFixtureRunPlan, type EvalFixtureScenario, type EvalFixtureValidationMode, type FailureModeRecallJudgeOptions, type FapoAttributionSignals, type FapoEntryConfig, type FapoFailureCluster, type FapoOptimizationLevel, type FapoProposerOptions, type FapoReviewInput, type FapoReviewIssue, type FapoReviewResult, type FapoScopeContract, FsLabeledScenarioStore, type FsLabeledScenarioStoreOptions, Gate, GenerationRecord, type GitWorktreeAdapterOptions, type Governor, type GovernorContext, type GovernorOp, type HaloProposerOptions, type HeldoutSignificance, type HeldoutSignificanceOptions, type HeuristicGovernorOptions, type JsonPrimitive, type JsonValue, JudgeConfig, JudgeScore, LabelTrust, LabeledScenarioRecord, LabeledScenarioSampleArgs, LabeledScenarioSource, LabeledScenarioStore, LabeledScenarioStoreError, LabeledScenarioWrite, Lineage, type LineageEdge, type LineageGraph, type LineageNode, type LineageNodeInput, type LineageStore, type LoadEvalFixtureScenariosOptions, type MemoryCurationProposerOptions, MutableSurface, type NeutralizationGateOptions, type OptimizerEntryConfig, type PairedHoldout, type ParameterCandidate, type ParameterChange, type ParameterSweepProposerOptions, PlanCampaignRunOptions, type PlanEvalFixtureRunOptions, type PlaybackContext, type PlaybackDriver, type PlaybackStep, type PolicyEditProposerOptions, type ProfileDispatchFn, ProfileMatrixError, type ProfileSummary, ProposeContext, type ProposePatchesArgs, ProposedCandidate, type ProposerComparison, type ProposerEntry, type ProposerPairwise, type ProposerScore, type RejectedEdit, type RolloutArgumentDiff, type RolloutArgumentDiffOptions, type RolloutCall, RunCampaignOptions, RunImprovementLoopOptions, type RunLineageLoopOptions, type RunLineageLoopResult, type RunLineageLoopSeed, type RunLineageOptions, type RunLineageResult, type RunLineageSeed, type RunLineageStepResult, type RunProfileMatrixOptions, type RunProfileMatrixResult, type RunSkillOptOptions, type RunSkillOptResult, Scenario, type ScenarioRollup, type ScenarioSignal, type ScoreboardRenderOptions, type ScoreboardRow, type ScoreboardSummary, type ScoredRollout, type SequentialDecideFn, type SequentialDecideOptions, type SequentialDecision, type SequentialObservation, type SequentialPairedGate, type SequentialPairedGateOptions, type SingleRunLock, type SingleRunLockOptions, type SkillOptEpochRecord, type SkillOptEvidence, type SkillOptProposer, type SkillOptProposerOptions, type SkillPatch, type SkillPatchOp, SkillPatchParseError, type SkillPatchRejection, SurfaceProposer, type SurfaceScore, type TraceAnalystProposerOptions, type TransientFailureOptions, type UngroundedLiteralReport, type UserStory, type UserStoryVerdict, type Worktree, type WorktreeAdapter, WorktreeAdapterError, aceProposer, acquireSingleRunLock, applySkillPatch, buildAnalystSurfaceDispatch, callbackGovernor, campaignBreakdown, campaignMeanComposite, classifyUngroundedLiterals, compareProposers, compositeProposer, detectScale, dimensionRegressions, discoverEvalFixtures, extractFapoAttributionSignals, failureModeRecallJudge, fapoEscalationEntry, fapoProposer, fsLineageStore, gepaParetoEntry, gepaReflectionEntry, gitWorktreeAdapter, haloProposer, heldoutSignificance, heuristicGovernor, isTransientTransportFailure, lineageNodeId, loadEvalFixture, loadEvalFixtureScenarios, makePlaybackDispatch, memLineageStore, memoryCurationProposer, neutralizationGate, neutralizeText, pairHoldout, parameterSweepProposer, parseSkillPatchResponse, patchEditCount, planEvalFixtureRun, policyEditProposer, renderScoreboardMarkdown, resolveRunDir, resolveWorktreePath, rolloutArgumentDiff, runLineage, runLineageLoop, runProfileMatrix, runSkillOpt, scoreDiscrimination, scoreUserStory, scoreboardSummary, selectDiscriminative, sequentialDecide, sequentialPairedGate, skillOptEntry, skillOptProposer, tangleTracesRoot, traceAnalystProposer, userStoryScoreboard };
@@ -12,6 +12,7 @@ import {
12
12
  callbackGovernor,
13
13
  classifyUngroundedLiterals,
14
14
  compareProposers,
15
+ compositeProposer,
15
16
  discoverEvalFixtures,
16
17
  extractFapoAttributionSignals,
17
18
  failureModeRecallJudge,
@@ -55,7 +56,7 @@ import {
55
56
  skillOptProposer,
56
57
  traceAnalystProposer,
57
58
  userStoryScoreboard
58
- } from "../chunk-RNB2NICW.js";
59
+ } from "../chunk-D2XDWRFX.js";
59
60
  import {
60
61
  buildEvidenceVector,
61
62
  buildLoopProvenanceRecord,
@@ -88,7 +89,7 @@ import {
88
89
  runOptimization,
89
90
  surfaceContentHash,
90
91
  surfaceHash
91
- } from "../chunk-GTERJI6Q.js";
92
+ } from "../chunk-RCXMWGRY.js";
92
93
  import "../chunk-VI2UW6B6.js";
93
94
  import {
94
95
  fsCampaignStorage,
@@ -97,11 +98,11 @@ import {
97
98
  resolveRunDir,
98
99
  runCampaign,
99
100
  tangleTracesRoot
100
- } from "../chunk-3PFZBGMR.js";
101
+ } from "../chunk-XNCF3JU3.js";
101
102
  import "../chunk-2IY4ILP4.js";
102
103
  import "../chunk-7NX6ZSBG.js";
103
- import "../chunk-N22ZO7FV.js";
104
- import "../chunk-XMSYF4A7.js";
104
+ import "../chunk-7QPK6W7R.js";
105
+ import "../chunk-VC43KQCK.js";
105
106
  import "../chunk-RPDDVKI7.js";
106
107
  import "../chunk-GGE4NNQT.js";
107
108
  import "../chunk-LNQEP766.js";
@@ -131,6 +132,7 @@ export {
131
132
  classifyUngroundedLiterals,
132
133
  compareProposers,
133
134
  composeGate,
135
+ compositeProposer,
134
136
  countSentenceEdits,
135
137
  defaultProductionGate,
136
138
  defaultRenderDiff,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  pearsonR,
3
3
  spearmanR
4
- } from "./chunk-XMSYF4A7.js";
4
+ } from "./chunk-VC43KQCK.js";
5
5
 
6
6
  // src/meta-eval/rubric-predictive-validity.ts
7
7
  async function rubricPredictiveValidity(input) {
@@ -133,4 +133,4 @@ function makeRng(seed) {
133
133
  export {
134
134
  rubricPredictiveValidity
135
135
  };
136
- //# sourceMappingURL=chunk-X6NIXVOD.js.map
136
+ //# sourceMappingURL=chunk-3LDPUYAC.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pearsonR
3
- } from "./chunk-XMSYF4A7.js";
3
+ } from "./chunk-VC43KQCK.js";
4
4
 
5
5
  // src/rl/verifiable-reward.ts
6
6
  var DEFAULT_DETERMINISTIC_LAYERS = /* @__PURE__ */ new Set([
@@ -309,4 +309,4 @@ export {
309
309
  filterDeterministicallyRewarded,
310
310
  detectRewardHacking
311
311
  };
312
- //# sourceMappingURL=chunk-N22ZO7FV.js.map
312
+ //# sourceMappingURL=chunk-7QPK6W7R.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  summarizeBackendIntegrity
3
- } from "./chunk-3PFZBGMR.js";
3
+ } from "./chunk-XNCF3JU3.js";
4
4
  import {
5
5
  paretoChart
6
- } from "./chunk-6MFFKPZ4.js";
6
+ } from "./chunk-EMKORATZ.js";
7
7
  import {
8
8
  cohensD,
9
9
  pairedBootstrap,
@@ -12,7 +12,7 @@ import {
12
12
  pearsonR,
13
13
  requiredSampleSize,
14
14
  spearmanR
15
- } from "./chunk-XMSYF4A7.js";
15
+ } from "./chunk-VC43KQCK.js";
16
16
  import {
17
17
  llmSpans
18
18
  } from "./chunk-MHNQWM4I.js";
@@ -822,4 +822,4 @@ export {
822
822
  HoldoutAuditor,
823
823
  analyzeRuns
824
824
  };
825
- //# sourceMappingURL=chunk-QFGTU7MT.js.map
825
+ //# sourceMappingURL=chunk-BOLYPSAE.js.map
@@ -10,7 +10,7 @@ import {
10
10
  renderAnalystEvidence,
11
11
  runImprovementLoop,
12
12
  surfaceHash
13
- } from "./chunk-GTERJI6Q.js";
13
+ } from "./chunk-RCXMWGRY.js";
14
14
  import {
15
15
  estimateCost,
16
16
  isModelPriced
@@ -21,7 +21,7 @@ import {
21
21
  planCampaignRun,
22
22
  runCampaign,
23
23
  summarizeBackendIntegrity
24
- } from "./chunk-3PFZBGMR.js";
24
+ } from "./chunk-XNCF3JU3.js";
25
25
  import {
26
26
  admitPolicyEdit,
27
27
  applyPolicyEditToSurface,
@@ -39,7 +39,7 @@ import {
39
39
  mulberry32,
40
40
  pairedBootstrap,
41
41
  weightedComposite
42
- } from "./chunk-XMSYF4A7.js";
42
+ } from "./chunk-VC43KQCK.js";
43
43
  import {
44
44
  analyzeTraces
45
45
  } from "./chunk-RPDDVKI7.js";
@@ -3870,6 +3870,75 @@ ${block}` : block;
3870
3870
  };
3871
3871
  }
3872
3872
 
3873
+ // src/campaign/proposers/composite.ts
3874
+ function compositeProposer(opts) {
3875
+ const members = opts.proposers;
3876
+ if (members.length === 0)
3877
+ throw new Error("compositeProposer: at least one member proposer required");
3878
+ const weights = opts.weights ?? members.map(() => 1);
3879
+ if (weights.length !== members.length || weights.some((w) => !(w > 0))) {
3880
+ throw new Error("compositeProposer: weights must match proposers length and be positive");
3881
+ }
3882
+ return {
3883
+ kind: `composite(${members.map((m) => m.kind).join("+")})`,
3884
+ async propose(ctx) {
3885
+ const totalWeight = weights.reduce((a, b) => a + b, 0);
3886
+ const exact = weights.map((w) => ctx.populationSize * w / totalWeight);
3887
+ const shares = exact.map((e) => Math.floor(e));
3888
+ let remaining = ctx.populationSize - shares.reduce((a, b) => a + b, 0);
3889
+ const byRemainder = exact.map((e, i) => ({ i, rem: e - Math.floor(e) })).sort((a, b) => b.rem - a.rem);
3890
+ for (const { i } of byRemainder) {
3891
+ if (remaining <= 0) break;
3892
+ shares[i] = (shares[i] ?? 0) + 1;
3893
+ remaining -= 1;
3894
+ }
3895
+ const pool = [];
3896
+ const seen = /* @__PURE__ */ new Set();
3897
+ const errors = [];
3898
+ for (let i = 0; i < members.length; i += 1) {
3899
+ const member = members[i];
3900
+ const share = shares[i] ?? 0;
3901
+ if (!member || share === 0 || ctx.signal.aborted) continue;
3902
+ try {
3903
+ const proposals = await member.propose({ ...ctx, populationSize: share });
3904
+ for (const proposal of proposals) {
3905
+ const isCandidate = typeof proposal === "object" && proposal !== null && "surface" in proposal;
3906
+ const surface = isCandidate ? proposal.surface : proposal;
3907
+ const label = isCandidate ? proposal.label : "candidate";
3908
+ const rationale = isCandidate ? proposal.rationale : "";
3909
+ const key = typeof surface === "string" ? surface : JSON.stringify(surface);
3910
+ if (seen.has(key)) continue;
3911
+ seen.add(key);
3912
+ pool.push({ surface, label: `${member.kind}:${label}`, rationale });
3913
+ }
3914
+ } catch (err) {
3915
+ errors.push(`${member.kind}: ${err instanceof Error ? err.message : String(err)}`);
3916
+ }
3917
+ }
3918
+ if (pool.length === 0) {
3919
+ throw new Error(
3920
+ `compositeProposer: every member failed or proposed nothing${errors.length ? ` \u2014 ${errors.join("; ")}` : ""}`
3921
+ );
3922
+ }
3923
+ if (errors.length > 0) {
3924
+ console.warn(
3925
+ `[compositeProposer] ${errors.length} member(s) failed this generation: ${errors.join("; ")}`
3926
+ );
3927
+ }
3928
+ return pool.slice(0, ctx.populationSize);
3929
+ },
3930
+ decide(args) {
3931
+ const votes = members.filter((m) => typeof m.decide === "function").map((m) => m.decide(args));
3932
+ if (votes.length === 0) return { stop: false };
3933
+ const allStop = votes.every((v) => v.stop);
3934
+ return allStop ? {
3935
+ stop: true,
3936
+ reason: votes.map((v) => v.reason).filter(Boolean).join("; ") || "all members converged"
3937
+ } : { stop: false };
3938
+ }
3939
+ };
3940
+ }
3941
+
3873
3942
  // src/campaign/proposers/halo.ts
3874
3943
  import { execFile } from "child_process";
3875
3944
  import { promisify } from "util";
@@ -4393,6 +4462,7 @@ export {
4393
4462
  ProfileMatrixError,
4394
4463
  runProfileMatrix,
4395
4464
  aceProposer,
4465
+ compositeProposer,
4396
4466
  haloProposer,
4397
4467
  memoryCurationProposer,
4398
4468
  policyEditProposer,
@@ -4405,4 +4475,4 @@ export {
4405
4475
  gitWorktreeAdapter,
4406
4476
  resolveWorktreePath
4407
4477
  };
4408
- //# sourceMappingURL=chunk-RNB2NICW.js.map
4478
+ //# sourceMappingURL=chunk-D2XDWRFX.js.map