feat(0.42.0)!: gepaDriver + delete legacy orchestration subsystem#103
Merged
Conversation
BREAKING: remove the legacy optimization orchestration from the public API so no consumer (or agent reading the substrate) can adopt it — the campaign API (runCampaign / runImprovementLoop / defaultProductionGate / drivers) fully supersedes it. Deleted: runProductionLoop, runPromptEvolution, runMultiShotOptimization + MultiShot*/EvolvableVariant/MutateAdapter adapters, the mutators (code/composite/traced), optimization.ts (+ the ./optimization subpath), trial-aggregator, jsonl-trial-cache, integration-gates, evolution-telemetry, and the rl/auto-research legacy glue — 12 source files, ~5,700 LOC. KEPT (shared primitives, not legacy): reflective-mutation, llm-client, LabeledScenarioStore, release-confidence (re-homed ActionableSideInfo/AsiSeverity that lived in the deleted multishot file), multi-layer-verifier. ADD gepaDriver — a campaign-native reflective ImprovementDriver (sibling to evolutionaryDriver). Surface-agnostic: any string surface in any consumer opts into best-in-class reflective prompt optimization, grounded on the 0.41.0 per-candidate dimensional + per-scenario evidence. Built on the kept reflection primitive; zero dependency on the deleted orchestration. REPLACE the legacy RL glue with a campaign-native path: rl/run-record-adapters now exposes campaignToRunRecords (CampaignResult cells -> RunRecord[]) so the RL bridge consumes campaign output directly; dropped trial/variantAggregate adapters. Full suite green (1370).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
BREAKING. Removes the legacy optimization orchestration from the public API so no consumer — or agent reading the substrate — can adopt it; the campaign API (
runCampaign/runImprovementLoop/defaultProductionGate/ drivers) fully supersedes it.Deleted (~5,700 LOC, 12 source files)
runProductionLoop,runPromptEvolution,runMultiShotOptimization+ theMultiShot*/EvolvableVariant/MutateAdapteradapters, the mutators (code/composite/traced),optimization.ts(+ the./optimizationsubpath export),trial-aggregator,jsonl-trial-cache,integration-gates,evolution-telemetry, and therl/auto-researchlegacy glue.Kept (shared primitives — not legacy)
reflective-mutation,llm-client,LabeledScenarioStore,multi-layer-verifier,release-confidence(re-homedActionableSideInfo/AsiSeveritythat had lived in the deleted multishot file).Added —
gepaDriverA campaign-native reflective
ImprovementDriver(sibling toevolutionaryDriver). Surface-agnostic: any string surface in any consumer opts into best-in-class reflective prompt optimization — system prompts, addenda, judge/reviewer prompts, driver prompts — grounded on the 0.41.0 per-candidate dimensional + per-scenario evidence. Built on the kept reflection primitive; zero dependency on the deleted orchestration.Replaced — RL bridge is now campaign-native
rl/run-record-adaptersexposescampaignToRunRecords(CampaignResultcells →RunRecord[]) so the RL bridge consumes campaign output directly. Dropped theTrialResult/VariantAggregateadapters + theanalyzeOptimizationResultglue.Migration for consumers
On bump to 0.42.0, anything importing the removed symbols breaks — that's the forcing function. Replace with the campaign surface-registry pattern (see gtm-agent/creative-agent
eval/self-improve.ts). Pinned consumers on 0.41.0 are unaffected until they bump.Test plan
gepaDriver+campaignToRunRecordsregression testsVersion-lock bump 0.41.0 → 0.42.0 (npm + pyproject + python client).