Skip to content

feat(improvement): source both proposers uniformly from agent-eval/campaign#365

Merged
drewstone merged 1 commit into
mainfrom
chore/consumer-proposer-fix
Jun 22, 2026
Merged

feat(improvement): source both proposers uniformly from agent-eval/campaign#365
drewstone merged 1 commit into
mainfrom
chore/consumer-proposer-fix

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

agent-eval 0.97.0 finished the Proposer migration: the optimize-a-surface proposers are now uniform factories on /campaigngepaProposer (prompt surface) and skillOptProposer (skill surface), both xProposer(opts): SurfaceProposer. This points the three consumers at that one source instead of the split they carried during the migration.

  • src/improvement/improve.ts — the documented surface → default proposer map now imports both gepaProposer and skillOptProposer from /campaign (was: gepa from /contract, skillOpt from /campaign). selfImprove + the SelfImprove* loop types stay on /contract (the loop contract, not a proposer). This closes the call-time-crash risk the migration left: a drifted proposer export now fails the build.
  • src/lifecycle/prompt-generator.ts — drop the /contract special-case; gepaProposer comes from /campaign alongside the ProposeContext/GenerationRecord types already imported there.
  • src/lifecycle/skill-generator.ts — refresh the production-wiring docs to name skillOptProposer (the uniform factory) instead of the lower-level runSkillOpt internal. The distill + diverse-seed arms are untouched — that is the generator value-add the proposer cannot do.
  • src/improvement/improve.test.ts (new) — drives the real improve() to a gate decision for both default surfaces (prompt → gepaProposer, skills → skillOptProposer) so a drifted proposer export fails the build, not a caller. Deterministic + offline: gate: 'none' forces generations = 0 (no reflection LLM call); the stub agent reports token-bearing cost so the backend-integrity guard sees a real backend. Also asserts the no-default config surfaces (tools/mcp/hooks/code) still fail loud with ConfigError.

Dependency

@tangle-network/agent-eval peer + dev pin → >=0.97.0 <1.0.0; agent-runtime0.75.0; docs/api regenerated + version pin updated.

Verify (all green, run against real 0.97.0)

…mpaign (0.75.0)

agent-eval 0.97.0 exports the optimize-a-surface proposers as uniform
factories on /campaign: gepaProposer (prompt surface) and skillOptProposer
(skill surface), both `xProposer(opts): SurfaceProposer`. Point the
consumers at that one source instead of the split they had during the
migration.

- improve.ts: the documented "surface -> default proposer" map now imports
  BOTH gepaProposer and skillOptProposer from /campaign (was: gepa from
  /contract, skillOpt from /campaign). selfImprove + the SelfImprove* loop
  types stay on /contract (the loop contract). The facade no longer risks a
  call-time crash from a drifted proposer export.
- prompt-generator.ts: drop the /contract special-case — gepaProposer comes
  from /campaign alongside the ProposeContext/GenerationRecord types it
  already imported there.
- skill-generator.ts: refresh the production-wiring docs to name
  skillOptProposer (the uniform factory) instead of the lower-level
  runSkillOpt internal. The distill + diverse-seed arms are unchanged — that
  is the generator value-add the proposer cannot do.
- improve.test.ts (new): drives the real improve() to a gate decision for
  both default surfaces (prompt -> gepaProposer, skills -> skillOptProposer)
  so a drifted proposer export fails the build, not a caller. Offline:
  gate 'none' forces generations 0; the stub agent reports token-bearing
  cost so the integrity guard sees a real backend. Also asserts the
  no-default config surfaces still fail loud with ConfigError.

Bump agent-eval peer + dev pin to >=0.97.0; agent-runtime 0.75.0; regen
docs/api + version pin.

@tangletools tangletools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Auto-approved PR — c0bba96b

Blanket team auto-approval is enabled for this reviewer service.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.

tangletools · auto-approval · reason: blanket_auto_approve · 2026-06-22T22:49:46Z

@drewstone drewstone merged commit 130d2ca into main Jun 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants