darwin-agents 0.6.0-alpha.1 → 0.7.0-alpha.1

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 (44) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +40 -1
  3. package/dist/src/cli/run.js +1 -1
  4. package/dist/src/cli/run.js.map +1 -1
  5. package/dist/src/evolution/alignment.d.ts +44 -0
  6. package/dist/src/evolution/alignment.d.ts.map +1 -1
  7. package/dist/src/evolution/alignment.js +124 -0
  8. package/dist/src/evolution/alignment.js.map +1 -1
  9. package/dist/src/evolution/loop.d.ts +28 -0
  10. package/dist/src/evolution/loop.d.ts.map +1 -1
  11. package/dist/src/evolution/loop.js +73 -12
  12. package/dist/src/evolution/loop.js.map +1 -1
  13. package/dist/src/evolution/multi-critic.d.ts +30 -1
  14. package/dist/src/evolution/multi-critic.d.ts.map +1 -1
  15. package/dist/src/evolution/multi-critic.js +57 -2
  16. package/dist/src/evolution/multi-critic.js.map +1 -1
  17. package/dist/src/evolution/optimizer-gepa.d.ts +47 -4
  18. package/dist/src/evolution/optimizer-gepa.d.ts.map +1 -1
  19. package/dist/src/evolution/optimizer-gepa.js +44 -5
  20. package/dist/src/evolution/optimizer-gepa.js.map +1 -1
  21. package/dist/src/evolution/pareto.d.ts +98 -3
  22. package/dist/src/evolution/pareto.d.ts.map +1 -1
  23. package/dist/src/evolution/pareto.js +193 -30
  24. package/dist/src/evolution/pareto.js.map +1 -1
  25. package/dist/src/evolution/safety.d.ts +35 -1
  26. package/dist/src/evolution/safety.d.ts.map +1 -1
  27. package/dist/src/evolution/safety.js +56 -2
  28. package/dist/src/evolution/safety.js.map +1 -1
  29. package/dist/src/evolution/sequential.d.ts +149 -0
  30. package/dist/src/evolution/sequential.d.ts.map +1 -0
  31. package/dist/src/evolution/sequential.js +239 -0
  32. package/dist/src/evolution/sequential.js.map +1 -0
  33. package/dist/src/evolution/tracker.d.ts +12 -0
  34. package/dist/src/evolution/tracker.d.ts.map +1 -1
  35. package/dist/src/evolution/tracker.js +24 -0
  36. package/dist/src/evolution/tracker.js.map +1 -1
  37. package/dist/src/index.d.ts +5 -3
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +10 -3
  40. package/dist/src/index.js.map +1 -1
  41. package/dist/src/types.d.ts +64 -0
  42. package/dist/src/types.d.ts.map +1 -1
  43. package/dist/src/types.js.map +1 -1
  44. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,87 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.7.0-alpha.1] — 2026-06-19
6
+
7
+ **Statistical rigor + coverage sampling.** Six additive, opt-in upgrades that
8
+ make the self-evolution loop statistically honest and bring the GEPA optimizer
9
+ closer to the paper. With the new flags off, the evolution loop, the A/B gate,
10
+ and prompt mutation are byte-for-byte identical to v0.6.0 — except the feedback
11
+ window default (see **Changed**). Reviewed by a 3-agent code-review round
12
+ (critic + analyst + research) plus per-fix re-verification. **436 tests green**
13
+ (was 355, +81), `tsc` + `typecheck:tests` + `build` all clean. Zero hard deps
14
+ preserved — the new embedding capability is **injected** (`EmbedFn`), and the
15
+ coverage RNG is injected too, so the pure modules stay pure.
16
+
17
+ ### Added
18
+
19
+ - **Always-valid sequential A/B testing** (`src/evolution/sequential.ts`, new):
20
+ `msprtTwoSample` (Mixture SPRT, Gaussian-mixture prior, Welch variance of the
21
+ difference of means) and `hoeffdingTwoSample` (σ-free time-uniform confidence
22
+ sequence for bounded scores). Wired into the safety gate via
23
+ `SafetyThresholds.confidenceMethod: 'effect-size' | 'msprt' | 'hoeffding'`
24
+ (+ `confidenceAlpha` / `confidenceTau` / `confidenceMinSamples` /
25
+ `confidenceScoreRange`). Only consulted when `requireConfidence` is on;
26
+ defaults to the v0.6.0 effect-size heuristic. This is the rigorous upgrade to
27
+ the peeking-resistant gate promised in the v0.6 roadmap. The loop loads the
28
+ per-arm composite samples (`ExperimentTracker.getCompositeScores`) only when a
29
+ sequential method is configured.
30
+ - **ε-Pareto dominance** (`dominatesEpsilon` in `pareto.ts`) +
31
+ `EvolutionConfig.paretoEpsilon`. A small relative tolerance (applied
32
+ symmetrically to both the regression and the strict-better check) lets the
33
+ `paretoGate` accept a challenger that wins big on one objective while
34
+ regressing microscopically (≤ ε) on another — instead of rejecting it over
35
+ noise. `paretoEpsilon: 0` (default) is exactly the strict v0.6.0 gate.
36
+ - **Instance-wise coverage sampling** (GEPA Algorithm 2) in `pareto.ts`:
37
+ `coverageFrontier`, `coverageWeights`, `selectByCoverage` (deterministic,
38
+ diversity-preserving survivor selection), and `sampleByCoverage`
39
+ (coverage-proportional candidate sampling with an **injected** RNG). Opt-in in
40
+ the GEPA loop via `GepaNextGenerationOptions.useCoverage` + a per-variant
41
+ `perKeyScores` map. Closes the long-standing "coverage sampling = backlog for
42
+ V0.6" deferral.
43
+ - **Semantic (embedding-distance) alignment guard**
44
+ (`checkAlignmentPreservationSemantic` in `alignment.ts`) + injectable
45
+ `EmbedFn`. When an embedder is wired into the loop (`DarwinLoopDeps.embed`),
46
+ a mutation that *rewords* a safety constraint (rather than removing it) is no
47
+ longer a false-positive rejection. Fail-closed: no embedder, an embedder
48
+ error, or malformed output all fall back to the strict keyword check, so the
49
+ guard never weakens.
50
+ - **Epoch-shuffled reflection minibatch** (`epochShuffledMinibatch` in
51
+ `optimizer-gepa.ts`) + `EvolutionConfig.reflectionMinibatchSize`. Reflect on a
52
+ focused, rotating subset of the feedback window each cycle (GEPA's
53
+ `reflection_minibatch_size` + epoch-shuffled sampler, adapted to the online
54
+ loop), so reflection prompts stay tight while still covering the whole window.
55
+ - **Style-bias-free judging** (`stripMarkdownForJudging` in `multi-critic.ts`) +
56
+ `RunMultiCriticOptions.normalizeForJudging` / `EvolutionConfig.normalizeForJudging`.
57
+ Strips markdown to plain prose before the multi-critic scores an output, so the
58
+ judge measures content, not formatting (LLM judges carry a documented style
59
+ bias toward markdown). Off by default; turn on for prose agents, leave off when
60
+ the output format itself is the deliverable.
61
+
62
+ ### Changed
63
+
64
+ - **`EvolutionConfig.feedbackWindow` default is 15** (was a hard-coded 5). This
65
+ is the v0.6-roadmap "feedback window 5→15" upgrade: both the legacy optimizer
66
+ and the GEPA reflector now see more recent critic feedback by default. This is
67
+ the one default-path behaviour change in this release — set
68
+ `feedbackWindow: 5` to restore the exact v0.6.0 input. A larger window is more
69
+ information for the optimizer, not a regression, but it is called out here so
70
+ the change is not silent.
71
+
72
+ ### Notes
73
+
74
+ - The sequential-confidence gate (`requireConfidence` + `confidenceMethod`) and
75
+ the semantic-alignment embedder (`embed`) are configured through the **library
76
+ API** — construct `new SafetyGate({ requireConfidence, confidenceMethod })`
77
+ and `new DarwinLoop({ ..., safety, embed })`. The bundled `darwin` CLI runs
78
+ with safety defaults; the per-agent `EvolutionConfig` knobs (`useGepa`,
79
+ `paretoGate`, `paretoEpsilon`, `useCoverage` via `perKeyScores`,
80
+ `feedbackWindow`, `reflectionMinibatchSize`, `normalizeForJudging`) are honored
81
+ by any loop constructed with the agent.
82
+ - The mSPRT closed form is expressed in estimator coordinates with the Welch
83
+ variance of the difference of means — robust to unequal arm variances and free
84
+ of the sample-mean form's `n` vs `n²` ambiguity.
85
+
5
86
  ## [0.6.0-alpha.1] — 2026-06-10
6
87
 
7
88
  **GEPA goes online.** The GEPA-style reflective optimizer (shipped as a
package/README.md CHANGED
@@ -143,6 +143,45 @@ paths. Pair with `requireConfidence` on your `SafetyThresholds` for a
143
143
  peeking-resistant A/B gate. All of it is off unless you opt in — existing
144
144
  agents behave exactly as before.
145
145
 
146
+ ### Statistical rigor + coverage sampling (v0.7, opt-in)
147
+
148
+ v0.7 makes the evolution loop statistically honest and brings the GEPA optimizer
149
+ closer to the paper. Every piece is additive and off by default (one exception:
150
+ the feedback window default rose from 5 to 15):
151
+
152
+ ```typescript
153
+ import { SafetyGate, DarwinLoop } from 'darwin-agents';
154
+
155
+ // Always-valid sequential A/B gate — peeking-resistant after every run.
156
+ const safety = new SafetyGate({
157
+ minDataPoints: 10,
158
+ maxRegression: 0.2,
159
+ failureRollbackThreshold: 3,
160
+ requireConfidence: true,
161
+ confidenceMethod: 'msprt', // Mixture SPRT (or 'hoeffding' — σ-free, conservative)
162
+ });
163
+
164
+ const loop = new DarwinLoop({
165
+ memory, tracker, optimizer, safety, patterns, agent,
166
+ embed: myBatchEmbedder, // opt-in semantic alignment guard (zero hard deps — injected)
167
+ });
168
+ ```
169
+
170
+ - **mSPRT / Hoeffding confidence sequences** — a margin win is adopted only when
171
+ it clears an always-valid significance bar, so monitoring after every run no
172
+ longer inflates false positives.
173
+ - **ε-Pareto gate** (`evolution.paretoEpsilon`) — forgive a microscopic
174
+ regression on one objective when a challenger wins decisively on another.
175
+ - **Instance-wise coverage sampling** (`useCoverage` + per-variant `perKeyScores`)
176
+ — GEPA Algorithm 2: keep/sample the variants that excel on the most *different*
177
+ task subsets, not N copies of the global-average winner.
178
+ - **Semantic alignment guard** — a *reworded* safety constraint is no longer a
179
+ false rejection; a *removed* one still is (fail-closed without an embedder).
180
+ - **Epoch-shuffled reflection minibatch** (`reflectionMinibatchSize`) + a
181
+ configurable `feedbackWindow` (default 15).
182
+ - **Style-bias-free judging** (`normalizeForJudging`) — strip markdown before the
183
+ critic scores, so it measures content not formatting.
184
+
146
185
  ## Built-in Agents
147
186
 
148
187
  | Agent | What it does | Needs |
@@ -397,7 +436,7 @@ The safety gate prevents regressions. If a new variant scores >20% lower, Darwin
397
436
  ## Known Limitations
398
437
 
399
438
  - **LLM-as-Judge bias**: Critics use LLMs to evaluate LLM outputs. We mitigate this with multi-model critics (GPT + Claude), but inherent self-preference bias exists. [Research context](https://openreview.net/forum?id=Ns8zGZ0lmM).
400
- - **Statistical simplicity**: A/B tests use mean comparison with a 5% threshold by default, not formal significance tests. `computeDynamicMinRuns()` adjusts sample sizes based on variance, and v0.6 adds an opt-in `requireConfidence` gate (effect-size + sample-size guard) that resists the peeking problem of evaluating after every run. A proper sequential test (mSPRT / always-valid confidence sequences) is the next step on the roadmap.
439
+ - **Statistical simplicity (default)**: A/B tests use mean comparison with a 5% threshold by default, not formal significance tests. `computeDynamicMinRuns()` adjusts sample sizes based on variance. For rigor, v0.6 added an opt-in `requireConfidence` effect-size gate and **v0.7 ships proper always-valid sequential tests** set `confidenceMethod: 'msprt'` (Mixture SPRT) or `'hoeffding'` (σ-free confidence sequence) on your `SafetyThresholds` to make the peeking-resistant gate statistically sound. The default path remains the simple threshold for zero-config use.
401
440
  - **No human-in-the-loop approval**: Prompt mutations go directly to A/B testing. Telegram notifications inform you, but there's no approval gate before testing starts.
402
441
 
403
442
  ## Contributing
@@ -264,7 +264,7 @@ async function runCommandInner(flags, agent, config, memory) {
264
264
  provider: criticInfo?.provider,
265
265
  });
266
266
  return criticRun.output;
267
- }, agent.name);
267
+ }, agent.name, { normalizeForJudging: agent.evolution?.normalizeForJudging });
268
268
  if (multiResult.medianScore > 0) {
269
269
  result.experiment.metrics.qualityScore = multiResult.medianScore;
270
270
  result.experiment.feedback = {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -45,4 +45,48 @@ export declare const SAFETY_PATTERNS: RegExp[];
45
45
  * or a human-readable rejection reason naming the eroded keywords.
46
46
  */
47
47
  export declare function checkAlignmentPreservation(original: string, mutated: string): string | null;
48
+ /**
49
+ * Batch embedding function. Returns one vector per input text (same order).
50
+ * INJECTED — Darwin keeps zero hard deps, so the caller supplies the embedder
51
+ * (OpenAI `text-embedding-3-small`, a local model, Anthropic, whatever). Pure
52
+ * keyword checking needs none of this; semantic checking is strictly opt-in.
53
+ *
54
+ * NEW v0.7.0.
55
+ */
56
+ export type EmbedFn = (texts: string[]) => Promise<number[][]>;
57
+ export interface SemanticAlignmentOptions {
58
+ /** Injected batch embedder. When omitted, the check is keyword-only (fail-closed). */
59
+ embed?: EmbedFn;
60
+ /**
61
+ * Cosine-similarity threshold above which an eroded safety keyword is judged
62
+ * to have been REWORDED (not removed) and the mutation is accepted. Default
63
+ * 0.82 — high enough that only a genuinely equivalent restatement passes.
64
+ */
65
+ minSafetySimilarity?: number;
66
+ }
67
+ /**
68
+ * Semantic alignment guard (v0.7.0) — the embedding-distance upgrade to the
69
+ * keyword-count {@link checkAlignmentPreservation}. The keyword check is
70
+ * conservative BY DESIGN: it rejects a reworded-but-equivalent constraint
71
+ * ("never reveal secrets" → "you must keep secrets confidential") as if the
72
+ * safety instruction were removed. That false-positive costs a wasted
73
+ * evolution cycle every time the optimizer legitimately rephrases.
74
+ *
75
+ * This function keeps the keyword check as the first, cheap gate, and ONLY
76
+ * when it trips does it spend embeddings to ask: "is the safety statement
77
+ * still semantically present, just worded differently?" For every safety
78
+ * sentence in the original that contained an eroded keyword, it checks whether
79
+ * the mutated prompt still contains a sentence above `minSafetySimilarity`. If
80
+ * EVERY eroded safety sentence has a close semantic match, the rewording is
81
+ * accepted (returns null). Otherwise the keyword rejection stands.
82
+ *
83
+ * Fail-closed contract preserved:
84
+ * - keyword check passes ⇒ null (no embedding spent)
85
+ * - keyword check fails AND no `embed` supplied ⇒ keyword rejection (== sync)
86
+ * - keyword check fails, embed supplied, embedding errors ⇒ keyword rejection
87
+ *
88
+ * So a missing/broken embedder NEVER weakens the guard — it just falls back to
89
+ * the strict keyword behaviour.
90
+ */
91
+ export declare function checkAlignmentPreservationSemantic(original: string, mutated: string, opts?: SemanticAlignmentOptions): Promise<string | null>;
48
92
  //# sourceMappingURL=alignment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/evolution/alignment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,EAWnC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAuBf"}
1
+ {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/evolution/alignment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,EAWnC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAuBf;AAID;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqDxB"}
@@ -74,4 +74,128 @@ export function checkAlignmentPreservation(original, mutated) {
74
74
  }
75
75
  return null;
76
76
  }
77
+ const DEFAULT_SAFETY_SIMILARITY = 0.82;
78
+ /**
79
+ * Semantic alignment guard (v0.7.0) — the embedding-distance upgrade to the
80
+ * keyword-count {@link checkAlignmentPreservation}. The keyword check is
81
+ * conservative BY DESIGN: it rejects a reworded-but-equivalent constraint
82
+ * ("never reveal secrets" → "you must keep secrets confidential") as if the
83
+ * safety instruction were removed. That false-positive costs a wasted
84
+ * evolution cycle every time the optimizer legitimately rephrases.
85
+ *
86
+ * This function keeps the keyword check as the first, cheap gate, and ONLY
87
+ * when it trips does it spend embeddings to ask: "is the safety statement
88
+ * still semantically present, just worded differently?" For every safety
89
+ * sentence in the original that contained an eroded keyword, it checks whether
90
+ * the mutated prompt still contains a sentence above `minSafetySimilarity`. If
91
+ * EVERY eroded safety sentence has a close semantic match, the rewording is
92
+ * accepted (returns null). Otherwise the keyword rejection stands.
93
+ *
94
+ * Fail-closed contract preserved:
95
+ * - keyword check passes ⇒ null (no embedding spent)
96
+ * - keyword check fails AND no `embed` supplied ⇒ keyword rejection (== sync)
97
+ * - keyword check fails, embed supplied, embedding errors ⇒ keyword rejection
98
+ *
99
+ * So a missing/broken embedder NEVER weakens the guard — it just falls back to
100
+ * the strict keyword behaviour.
101
+ */
102
+ export async function checkAlignmentPreservationSemantic(original, mutated, opts = {}) {
103
+ const keywordResult = checkAlignmentPreservation(original, mutated);
104
+ if (keywordResult === null)
105
+ return null; // safe — fast path, no embeddings
106
+ if (!opts.embed)
107
+ return keywordResult; // fail-closed: keyword-only
108
+ const threshold = Number.isFinite(opts.minSafetySimilarity) &&
109
+ opts.minSafetySimilarity > 0 &&
110
+ opts.minSafetySimilarity <= 1
111
+ ? opts.minSafetySimilarity
112
+ : DEFAULT_SAFETY_SIMILARITY;
113
+ // Which patterns actually eroded? Re-derive from SAFETY_PATTERNS.
114
+ const eroded = erodedPatterns(original, mutated);
115
+ if (eroded.length === 0)
116
+ return keywordResult; // shouldn't happen, be safe
117
+ // Original sentences carrying an eroded safety keyword = the statements we
118
+ // must prove still exist (semantically) in the mutated prompt.
119
+ const originalSentences = splitSentences(original);
120
+ const safetySentences = originalSentences.filter((s) => eroded.some((p) => new RegExp(p.source, 'i').test(s)));
121
+ if (safetySentences.length === 0)
122
+ return keywordResult;
123
+ const mutatedSentences = splitSentences(mutated);
124
+ if (mutatedSentences.length === 0)
125
+ return keywordResult; // nothing to match → reject
126
+ try {
127
+ // One batched embed call: [...safetySentences, ...mutatedSentences].
128
+ const all = await opts.embed([...safetySentences, ...mutatedSentences]);
129
+ if (!Array.isArray(all) || all.length !== safetySentences.length + mutatedSentences.length) {
130
+ return keywordResult; // malformed embedder output → fail-closed
131
+ }
132
+ const safetyVecs = all.slice(0, safetySentences.length);
133
+ const mutatedVecs = all.slice(safetySentences.length);
134
+ // Every eroded safety sentence must have a close match in the mutation.
135
+ for (const sv of safetyVecs) {
136
+ let best = -Infinity;
137
+ for (const mv of mutatedVecs) {
138
+ const sim = cosine(sv, mv);
139
+ if (sim > best)
140
+ best = sim;
141
+ }
142
+ if (!(best >= threshold)) {
143
+ // This safety statement has no semantic equivalent in the mutation.
144
+ return keywordResult;
145
+ }
146
+ }
147
+ // All eroded safety statements survive semantically → reworded, accept.
148
+ return null;
149
+ }
150
+ catch {
151
+ return keywordResult; // embedder threw → fail-closed
152
+ }
153
+ }
154
+ /** SAFETY_PATTERNS whose occurrence count dropped from original → mutated. */
155
+ function erodedPatterns(original, mutated) {
156
+ const o = original.toLowerCase();
157
+ const m = mutated.toLowerCase();
158
+ const out = [];
159
+ for (const pattern of SAFETY_PATTERNS) {
160
+ const oc = o.match(new RegExp(pattern.source, 'gi'))?.length ?? 0;
161
+ const mc = m.match(new RegExp(pattern.source, 'gi'))?.length ?? 0;
162
+ if (oc > 0 && mc < oc)
163
+ out.push(pattern);
164
+ }
165
+ return out;
166
+ }
167
+ /**
168
+ * Split prose into trimmed, non-empty sentences. Boundaries: terminal
169
+ * punctuation followed by whitespace, terminal punctuation directly followed
170
+ * by an uppercase letter (handles "...secrets.Be transparent." with no space —
171
+ * otherwise two sentences fuse and a dropped safety constraint could ride in
172
+ * on a partial semantic match), or newlines.
173
+ */
174
+ function splitSentences(text) {
175
+ return text
176
+ .split(/(?<=[.!?])\s+|(?<=[.!?])(?=[A-Z])|\n+/)
177
+ .map((s) => s.trim())
178
+ .filter((s) => s.length > 0);
179
+ }
180
+ /** Cosine similarity. Returns 0 for zero/length-mismatched/non-finite vectors. */
181
+ function cosine(a, b) {
182
+ if (!Array.isArray(a) || !Array.isArray(b) || a.length === 0 || a.length !== b.length) {
183
+ return 0;
184
+ }
185
+ let dot = 0;
186
+ let na = 0;
187
+ let nb = 0;
188
+ for (let i = 0; i < a.length; i++) {
189
+ const av = a[i];
190
+ const bv = b[i];
191
+ if (!Number.isFinite(av) || !Number.isFinite(bv))
192
+ return 0;
193
+ dot += av * bv;
194
+ na += av * av;
195
+ nb += bv * bv;
196
+ }
197
+ if (na === 0 || nb === 0)
198
+ return 0;
199
+ return dot / (Math.sqrt(na) * Math.sqrt(nb));
200
+ }
77
201
  //# sourceMappingURL=alignment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/evolution/alignment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,aAAa;IACb,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;IACX,aAAa;IACb,UAAU;IACV,gBAAgB;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,OAAe;IAEf,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3C,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5E,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC1C,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,mEAAmE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACzG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/evolution/alignment.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import type { SafetyGate } from './safety.js';
16
16
  import type { PatternDetector } from './patterns.js';
17
17
  import type { NotificationConfig } from './notifications.js';
18
18
  import type { GepaOptimizer } from './optimizer-gepa.js';
19
+ import { type EmbedFn } from './alignment.js';
19
20
  export interface EvolutionResult {
20
21
  patternsFound: DarwinPattern[];
21
22
  promptEvolved: boolean;
@@ -43,6 +44,20 @@ interface DarwinLoopDeps {
43
44
  * false) to keep the legacy single-shot path — behaviour is unchanged.
44
45
  */
45
46
  gepa?: GepaOptimizer;
47
+ /**
48
+ * v0.7.0 — Optional batch embedder. When present, the GEPA mutation path
49
+ * upgrades its alignment guard from keyword-count to the semantic
50
+ * (embedding-distance) check: a safety constraint that was REWORDED (not
51
+ * removed) is accepted instead of triggering a false-positive rejection.
52
+ * When omitted, the guard stays keyword-only (fail-closed). Darwin keeps
53
+ * zero hard deps — you inject the embedder.
54
+ */
55
+ embed?: EmbedFn;
56
+ /**
57
+ * v0.7.0 — Cosine-similarity threshold for the semantic alignment guard
58
+ * (only used when `embed` is set). Default 0.82.
59
+ */
60
+ alignmentSimilarityThreshold?: number;
46
61
  }
47
62
  export declare class DarwinLoop {
48
63
  private memory;
@@ -53,6 +68,8 @@ export declare class DarwinLoop {
53
68
  private agent?;
54
69
  private notifications;
55
70
  private gepa?;
71
+ private embed?;
72
+ private alignmentSimilarityThreshold?;
56
73
  constructor(deps: DarwinLoopDeps);
57
74
  /**
58
75
  * Called AFTER every agent run. Drives the evolution cycle.
@@ -76,6 +93,17 @@ export declare class DarwinLoop {
76
93
  * Activate a specific prompt version and deactivate all others.
77
94
  */
78
95
  private activateVersion;
96
+ /**
97
+ * v0.7.0 — Configurable feedback window (default 15, was a hard-coded 5).
98
+ * A larger window gives both the legacy optimizer and the GEPA reflector
99
+ * more of the recent behaviour to learn from. Clamped to ≥ 1.
100
+ */
101
+ private feedbackWindow;
102
+ /**
103
+ * v0.7.0 — Parse the integer out of a "vN" version string for use as the
104
+ * epoch-shuffled-minibatch epoch. "v1"→1, "v12"→12; non-parsable→0.
105
+ */
106
+ private versionInt;
79
107
  /**
80
108
  * Extract recent critic feedback reports from experiments.
81
109
  *
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/evolution/loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,UAAU,cAAc;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gEAAgE;IAChE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAYD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAgB;gBAEjB,IAAI,EAAE,cAAc;IAWhC;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YAmPxD,YAAY;IAsI1B;;;OAGG;YACW,QAAQ;IA8BtB;;OAEG;YACW,eAAe;IAe7B;;;;;;OAMG;YACW,iBAAiB;IAe/B;;;;;;;;;;;;;;;;;OAiBG;YACW,mBAAmB;IAgDjC;;;;;;OAMG;YACW,qBAAqB;IAsBnC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;YACW,mBAAmB;IAiDjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAsB1B"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/evolution/loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAkE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK9G,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,UAAU,cAAc;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gEAAgE;IAChE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAYD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,KAAK,CAAC,CAAkB;IAChC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAU;IACxB,OAAO,CAAC,4BAA4B,CAAC,CAAS;gBAElC,IAAI,EAAE,cAAc;IAahC;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YAwPxD,YAAY;IAwJ1B;;;OAGG;YACW,QAAQ;IA8BtB;;OAEG;YACW,eAAe;IAe7B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAMtB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAKlB;;;;;;OAMG;YACW,iBAAiB;IAe/B;;;;;;;;;;;;;;;;;OAiBG;YACW,mBAAmB;IAkEjC;;;;;;OAMG;YACW,qBAAqB;IAsBnC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;YACW,mBAAmB;IAiDjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAsB1B"}