darwin-agents 0.9.0 → 0.11.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 (40) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +87 -0
  3. package/dist/src/cli/evolution-flags.d.ts +4 -0
  4. package/dist/src/cli/evolution-flags.d.ts.map +1 -1
  5. package/dist/src/cli/evolution-flags.js +69 -1
  6. package/dist/src/cli/evolution-flags.js.map +1 -1
  7. package/dist/src/cli/evolve.d.ts +4 -0
  8. package/dist/src/cli/evolve.d.ts.map +1 -1
  9. package/dist/src/cli/evolve.js +21 -0
  10. package/dist/src/cli/evolve.js.map +1 -1
  11. package/dist/src/cli/index.js +2 -0
  12. package/dist/src/cli/index.js.map +1 -1
  13. package/dist/src/evolution/demos.d.ts +128 -0
  14. package/dist/src/evolution/demos.d.ts.map +1 -0
  15. package/dist/src/evolution/demos.js +196 -0
  16. package/dist/src/evolution/demos.js.map +1 -0
  17. package/dist/src/evolution/enabled-state.d.ts +5 -5
  18. package/dist/src/evolution/enabled-state.d.ts.map +1 -1
  19. package/dist/src/evolution/enabled-state.js +17 -5
  20. package/dist/src/evolution/enabled-state.js.map +1 -1
  21. package/dist/src/evolution/feedback-filter.d.ts +54 -0
  22. package/dist/src/evolution/feedback-filter.d.ts.map +1 -0
  23. package/dist/src/evolution/feedback-filter.js +65 -0
  24. package/dist/src/evolution/feedback-filter.js.map +1 -0
  25. package/dist/src/evolution/loop.d.ts +70 -0
  26. package/dist/src/evolution/loop.d.ts.map +1 -1
  27. package/dist/src/evolution/loop.js +198 -20
  28. package/dist/src/evolution/loop.js.map +1 -1
  29. package/dist/src/evolution/selection.d.ts +73 -0
  30. package/dist/src/evolution/selection.d.ts.map +1 -0
  31. package/dist/src/evolution/selection.js +121 -0
  32. package/dist/src/evolution/selection.js.map +1 -0
  33. package/dist/src/index.d.ts +3 -0
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +15 -0
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/types.d.ts +132 -6
  38. package/dist/src/types.d.ts.map +1 -1
  39. package/dist/src/types.js.map +1 -1
  40. package/package.json +4 -1
@@ -13,6 +13,9 @@ import { notifyABTestComplete, notifyEvolutionStarted, notifyRollback } from './
13
13
  import { epochShuffledMinibatch } from './optimizer-gepa.js';
14
14
  import { checkAlignmentPreservation, checkAlignmentPreservationSemantic } from './alignment.js';
15
15
  import { dominatesEpsilon, paretoSelect, DARWIN_DEFAULT_OBJECTIVES } from './pareto.js';
16
+ import { selectDemoCandidates, buildDemoSection, applyDemoSection } from './demos.js';
17
+ import { selectParentVariant } from './selection.js';
18
+ import { isPerfectScore, resolvePerfectFeedbackScore } from './feedback-filter.js';
16
19
  // ─── Validation Constants ─────────────────────────────
17
20
  /** Default minimum output length (overridden by agent.evolution.minOutputLength) */
18
21
  const DEFAULT_MIN_VALID_OUTPUT = 2000;
@@ -30,6 +33,7 @@ export class DarwinLoop {
30
33
  gepa;
31
34
  embed;
32
35
  alignmentSimilarityThreshold;
36
+ rng;
33
37
  constructor(deps) {
34
38
  this.memory = deps.memory;
35
39
  this.tracker = deps.tracker;
@@ -41,6 +45,7 @@ export class DarwinLoop {
41
45
  this.gepa = deps.gepa;
42
46
  this.embed = deps.embed;
43
47
  this.alignmentSimilarityThreshold = deps.alignmentSimilarityThreshold;
48
+ this.rng = deps.rng;
44
49
  }
45
50
  /**
46
51
  * Called AFTER every agent run. Drives the evolution cycle.
@@ -250,7 +255,33 @@ export class DarwinLoop {
250
255
  // optimizer so the loop never stalls.
251
256
  let newPromptText = null;
252
257
  let generatedBy = 'legacy';
253
- if (this.agent?.evolution?.useGepa === true && this.gepa) {
258
+ // ── v0.10.0: SIMBA-style demo injection (opt-in, zero LLM cost) ──
259
+ // On every demoEveryK-th cycle, build a challenger by appending (or
260
+ // refreshing) a "Demonstrations" section harvested from the agent's own
261
+ // highest-scoring past runs. Independent of useGepa — no reflector is
262
+ // involved. The demo prompt runs the same alignment guard and enters the
263
+ // same A/B test as any mutation; when demos don't help, the incumbent
264
+ // wins. When the demo set is unchanged since the last injection the path
265
+ // yields no challenger (no-op) and falls through to GEPA/legacy.
266
+ if (this.agent?.evolution?.useDemos === true) {
267
+ const epoch = this.versionInt(activePrompt.version);
268
+ if (epoch > 0 && epoch % this.demoEveryK() === 0) {
269
+ const demoPrompt = await this.tryDemoVariant(agent, activePrompt.promptText);
270
+ if (demoPrompt !== null) {
271
+ const guarded = await this.runAlignmentGuard(activePrompt.promptText, demoPrompt);
272
+ if (guarded !== null) {
273
+ newPromptText = guarded;
274
+ generatedBy = 'demos';
275
+ }
276
+ else {
277
+ // Mirrors the merge-path breadcrumb: a consistently guard-failing
278
+ // demo section should be visible, not silently skipped forever.
279
+ console.warn(`[darwin] demo variant for "${agent}" failed the alignment guard, falling through.`);
280
+ }
281
+ }
282
+ }
283
+ }
284
+ if (newPromptText === null && this.agent?.evolution?.useGepa === true && this.gepa) {
254
285
  // Epoch = the integer of the active prompt version (v1→1, v12→12). It
255
286
  // advances by one each evolution cycle, so the epoch-shuffled minibatch
256
287
  // rotates which feedback subset the reflector sees per cycle, and the
@@ -273,10 +304,11 @@ export class DarwinLoop {
273
304
  promptText: newPromptText,
274
305
  createdAt: new Date().toISOString(),
275
306
  parentVersion: activePrompt.version,
276
- // Only tag the change reason with the generator when GEPA was opted in —
277
- // keeps the stored `changeReason` byte-for-byte identical for legacy-only
307
+ // Only tag the change reason with the generator when a non-legacy
308
+ // challenger source was opted in (GEPA v0.6.0 / demos v0.10.0) — keeps
309
+ // the stored `changeReason` byte-for-byte identical for legacy-only
278
310
  // agents (v0.6.0 review Finding 8).
279
- changeReason: this.agent?.evolution?.useGepa
311
+ changeReason: this.agent?.evolution?.useGepa || this.agent?.evolution?.useDemos
280
312
  ? `[${generatedBy}] ${this.buildChangeReason(detectedPatterns)}`
281
313
  : this.buildChangeReason(detectedPatterns),
282
314
  active: false, // Not active yet — going into A/B test
@@ -305,7 +337,9 @@ export class DarwinLoop {
305
337
  result.promptEvolved = true;
306
338
  result.abTestStarted = true;
307
339
  result.newVersion = newVersion;
308
- const genLabel = this.agent?.evolution?.useGepa ? ` via ${generatedBy}` : '';
340
+ const genLabel = this.agent?.evolution?.useGepa || this.agent?.evolution?.useDemos
341
+ ? ` via ${generatedBy}`
342
+ : '';
309
343
  result.message = `New prompt ${newVersion} generated${genLabel}. A/B test started: ${activePrompt.version} vs ${newVersion} (minRuns: ${dynamicMinRuns}).`;
310
344
  // Notify via Telegram (non-blocking)
311
345
  notifyEvolutionStarted(this.notifications, agent, activePrompt.version, newVersion, this.buildChangeReason(detectedPatterns)).catch(() => { });
@@ -491,17 +525,32 @@ export class DarwinLoop {
491
525
  */
492
526
  async getRecentFeedback(agentName, limit) {
493
527
  const experiments = await this.memory.loadExperiments(agentName);
528
+ const skipPerfect = this.agent?.evolution?.skipPerfectFeedback === true;
529
+ const perfectScore = this.perfectFeedbackScore();
494
530
  const feedback = [];
495
531
  for (const exp of experiments) {
496
532
  if (feedback.length >= limit)
497
533
  break;
498
534
  if (exp.feedback?.report) {
535
+ // v0.11.0: skip already-perfect runs (GEPA skip_perfect_score) — a
536
+ // 10/10 report gives the optimizer no gradient. Skipped items do NOT
537
+ // count toward `limit`, so the window fills with actionable reports.
538
+ if (skipPerfect && isPerfectScore(exp.feedback.score, perfectScore))
539
+ continue;
499
540
  const header = `Score: ${exp.feedback.score}/10 | Task: "${exp.task}" | Version: ${exp.promptVersion}`;
500
541
  feedback.push(`${header}\n${exp.feedback.report}`);
501
542
  }
502
543
  }
503
544
  return feedback;
504
545
  }
546
+ /**
547
+ * v0.11.0 — Resolved perfect-score threshold for {@link
548
+ * EvolutionConfig.skipPerfectFeedback} (finite, within the critic 1–10
549
+ * scale, else default 10).
550
+ */
551
+ perfectFeedbackScore() {
552
+ return resolvePerfectFeedbackScore(this.agent?.evolution?.perfectFeedbackScore);
553
+ }
505
554
  /**
506
555
  * v0.6.0 — Generate the next prompt variant via the GEPA reflective path.
507
556
  *
@@ -533,11 +582,18 @@ export class DarwinLoop {
533
582
  // correct-by-design rather than relying on tryMergeVariant's no-op.
534
583
  if (this.agent?.evolution?.useMerge === true &&
535
584
  epoch > 0 &&
536
- epoch % this.mergeEveryK() === 0) {
585
+ epoch % this.mergeEveryK() === 0 &&
586
+ (await this.mergeBudgetAvailable(agentName))) {
537
587
  const merged = await this.tryMergeVariant(agentName);
538
588
  if (merged !== null) {
539
589
  const guarded = await this.runAlignmentGuard(currentPrompt, merged);
540
590
  if (guarded !== null) {
591
+ // v0.11.0: count this merge challenger against the lifetime cap
592
+ // (GEPA max_merge_invocations). Only accepted merges are counted —
593
+ // one that failed the guard below consumed no A/B slot. The counter
594
+ // is written ONLY when a cap is configured, so an uncapped useMerge
595
+ // agent's persisted state stays byte-for-byte v0.10 (no stray key).
596
+ await this.recordMergeInvocation(agentName);
541
597
  return { prompt: guarded, via: 'merge' };
542
598
  }
543
599
  // Merge produced a prompt that eroded a safety constraint — reject it
@@ -554,10 +610,31 @@ export class DarwinLoop {
554
610
  // currently-active prompt. Falls back to the active prompt when fewer than
555
611
  // two versions carry per-task-type data (selectCoverageParent → null).
556
612
  let parentPrompt = currentPrompt;
613
+ let parentChosen = false;
557
614
  if (this.agent?.evolution?.useCoverage === true) {
558
615
  const coverageParent = await this.selectCoverageParent(agentName);
559
616
  if (coverageParent !== null) {
560
617
  parentPrompt = coverageParent;
618
+ parentChosen = true;
619
+ }
620
+ }
621
+ // v0.10.0: GEPA candidate_selection_strategy parity (opt-in via
622
+ // evolution.candidateSelection). Pick the reflection parent from the
623
+ // agent's SCORED version history — 'best' (current_best), 'pareto'
624
+ // (uniform sample from the non-dominated front), or 'epsilon-greedy'
625
+ // (explore/exploit). Coverage selection (the more specific GEPA
626
+ // Algorithm 2 selector) takes precedence when it found a parent; this
627
+ // strategy is the fallback for that cycle. 'active'/unset keeps the
628
+ // historical reflect-from-active-prompt behaviour byte-for-byte.
629
+ const strategy = this.agent?.evolution?.candidateSelection;
630
+ if (!parentChosen && strategy !== undefined && strategy !== 'active') {
631
+ const scored = await this.buildScoredHistory(agentName);
632
+ const chosen = selectParentVariant(scored, strategy, {
633
+ epsilon: this.agent?.evolution?.explorationEpsilon,
634
+ rng: this.rng,
635
+ });
636
+ if (chosen !== null) {
637
+ parentPrompt = chosen.prompt;
561
638
  }
562
639
  }
563
640
  // v0.7.0: pull the configurable feedback window (default 15, was 5).
@@ -625,6 +702,113 @@ export class DarwinLoop {
625
702
  return Math.floor(k);
626
703
  return 3;
627
704
  }
705
+ /**
706
+ * v0.11.0 — Resolved lifetime merge cap (GEPA `max_merge_invocations`), or
707
+ * `null` when uncapped. A non-finite / negative value is treated as "no cap"
708
+ * rather than silently disabling merge; a non-integer cap is floored (mirrors
709
+ * `mergeEveryK`) so a hand-edited `2.5` behaves as 2, not 3.
710
+ */
711
+ mergeCap() {
712
+ const cap = this.agent?.evolution?.maxMergeInvocations;
713
+ if (typeof cap !== 'number' || !Number.isFinite(cap) || cap < 0)
714
+ return null;
715
+ return Math.floor(cap);
716
+ }
717
+ /**
718
+ * v0.11.0 — Lifetime merge budget check (GEPA `max_merge_invocations`).
719
+ * Returns `true` (merge may fire) when no cap is configured, or when the
720
+ * per-agent count of merge-derived challengers is still below the cap.
721
+ */
722
+ async mergeBudgetAvailable(agentName) {
723
+ const cap = this.mergeCap();
724
+ if (cap === null)
725
+ return true;
726
+ const state = await this.memory.getState();
727
+ const used = state.mergeInvocations?.[agentName] ?? 0;
728
+ return used < cap;
729
+ }
730
+ /**
731
+ * v0.11.0 — Increment this agent's lifetime merge-invocation count. Called
732
+ * once per merge challenger that passes the alignment guard and is carried
733
+ * into an A/B test, and ONLY when a cap is configured — an uncapped useMerge
734
+ * agent never writes the counter, so its persisted state is unchanged from
735
+ * v0.10. Initialises the map lazily for state rows that predate the field.
736
+ *
737
+ * The check (`mergeBudgetAvailable`) and this increment are separate state
738
+ * reads, so two cycles running concurrently for the SAME agent could each
739
+ * observe `used = cap-1` and overshoot by one. The overshoot is bounded by
740
+ * the concurrency and sits inside the pre-existing concurrent-A/B-start
741
+ * envelope (afterRun's "an A/B test is already running" guard is likewise
742
+ * check-then-act) — acceptable for a soft lifetime budget, not a hard limit.
743
+ */
744
+ async recordMergeInvocation(agentName) {
745
+ if (this.mergeCap() === null)
746
+ return; // uncapped → leave state untouched
747
+ await this.memory.updateState((s) => {
748
+ if (!s.mergeInvocations)
749
+ s.mergeInvocations = {};
750
+ s.mergeInvocations[agentName] = (s.mergeInvocations[agentName] ?? 0) + 1;
751
+ return s;
752
+ });
753
+ }
754
+ /**
755
+ * v0.10.0 — Demo-injection cadence (every K-th cycle). Default 4, clamped
756
+ * ≥ 1. Deliberately offset from the merge default (3) so the two
757
+ * non-reflective challenger sources don't collide on the same cycles.
758
+ */
759
+ demoEveryK() {
760
+ const k = this.agent?.evolution?.demoEveryK;
761
+ if (typeof k === 'number' && Number.isFinite(k) && k >= 1)
762
+ return Math.floor(k);
763
+ return 4;
764
+ }
765
+ /**
766
+ * v0.10.0 — Build a SIMBA-style demo challenger: current prompt + a
767
+ * marker-delimited "Demonstrations" section harvested from this agent's
768
+ * highest-scoring past runs. Pure selection + rendering — no LLM call.
769
+ *
770
+ * Returns `null` (→ caller falls through to GEPA/legacy generation) when
771
+ * no run qualifies (score/threshold/length filters) or when the rendered
772
+ * demo set is byte-identical to what the prompt already carries — an A/B
773
+ * test of a version against itself would be pointless.
774
+ */
775
+ async tryDemoVariant(agentName, currentPrompt) {
776
+ const experiments = await this.memory.loadExperiments(agentName);
777
+ const demos = selectDemoCandidates(experiments, {
778
+ maxDemos: this.agent?.evolution?.maxDemos,
779
+ scoreThreshold: this.agent?.evolution?.demoScoreThreshold,
780
+ });
781
+ if (demos.length === 0)
782
+ return null;
783
+ const section = buildDemoSection(demos);
784
+ const withDemos = applyDemoSection(currentPrompt, section);
785
+ if (withDemos === currentPrompt)
786
+ return null;
787
+ return withDemos;
788
+ }
789
+ /**
790
+ * v0.10.0 — Scored version history for parent selection AND merge: every
791
+ * prompt version that has text and at least one run's worth of averaged
792
+ * metrics, as {@link ScoredVariant}s. One getAverageMetrics
793
+ * (→ loadExperiments) call per version. O(N) backend round-trips, but N is
794
+ * the agent's prompt-version count (≤ ~20 in practice) and this only runs
795
+ * on selection/merge cadences, so it is cheap — same pattern handleABTest
796
+ * already uses for the Pareto gate. (Extracted from tryMergeVariant,
797
+ * behaviour unchanged.)
798
+ */
799
+ async buildScoredHistory(agentName) {
800
+ const versions = await this.memory.getAllPromptVersions(agentName);
801
+ const scored = [];
802
+ for (const v of versions) {
803
+ if (!v.promptText)
804
+ continue;
805
+ const metrics = await this.tracker.getAverageMetrics(agentName, v.version);
806
+ if (Object.keys(metrics).length === 0)
807
+ continue; // no runs for this version
808
+ scored.push({ id: v.version, prompt: v.promptText, metrics });
809
+ }
810
+ return scored;
811
+ }
628
812
  /**
629
813
  * v0.7.0 — GEPA system-aware MERGE (paper Appendix-D). Builds scored
630
814
  * variants from this agent's prompt-version history (each version's prompt
@@ -641,20 +825,7 @@ export class DarwinLoop {
641
825
  async tryMergeVariant(agentName) {
642
826
  if (!this.gepa)
643
827
  return null;
644
- const versions = await this.memory.getAllPromptVersions(agentName);
645
- const scored = [];
646
- // One getAverageMetrics (→ loadExperiments) call per version. O(N) backend
647
- // round-trips, but N is the agent's prompt-version count (≤ ~20 in
648
- // practice) and this only runs on the merge cadence, so it is cheap — same
649
- // pattern handleABTest already uses for the Pareto gate.
650
- for (const v of versions) {
651
- if (!v.promptText)
652
- continue;
653
- const metrics = await this.tracker.getAverageMetrics(agentName, v.version);
654
- if (Object.keys(metrics).length === 0)
655
- continue; // no runs for this version
656
- scored.push({ id: v.version, prompt: v.promptText, metrics });
657
- }
828
+ const scored = await this.buildScoredHistory(agentName);
658
829
  if (scored.length < 2)
659
830
  return null; // need two parents to merge
660
831
  // Two best Pareto-front members (distinct versions, scalarised tie-break).
@@ -732,11 +903,18 @@ export class DarwinLoop {
732
903
  */
733
904
  async getReflectiveFeedback(agentName, limit) {
734
905
  const experiments = await this.memory.loadExperiments(agentName);
906
+ const skipPerfect = this.agent?.evolution?.skipPerfectFeedback === true;
907
+ const perfectScore = this.perfectFeedbackScore();
735
908
  const feedbacks = [];
736
909
  for (const exp of experiments) {
737
910
  if (feedbacks.length >= limit)
738
911
  break;
739
912
  if (exp.feedback?.report) {
913
+ // v0.11.0: skip already-perfect runs (GEPA skip_perfect_score) so the
914
+ // reflector concentrates on runs with an actual improvement gradient.
915
+ // Skipped items do NOT count toward `limit`.
916
+ if (skipPerfect && isPerfectScore(exp.feedback.score, perfectScore))
917
+ continue;
740
918
  feedbacks.push({
741
919
  variantId: exp.promptVersion,
742
920
  score: exp.feedback.score,
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/evolution/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/evolution/loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Parent-selection strategies (v0.10.0) — GEPA `candidate_selection_strategy`
3
+ * parity for the online evolution loop.
4
+ *
5
+ * Upstream GEPA exposes three strategies for picking WHICH candidate to
6
+ * mutate next: sample from the Pareto frontier (default), always take the
7
+ * current best, or epsilon-greedy explore/exploit. Darwin's online loop
8
+ * historically always reflected from the currently-ACTIVE prompt (plus the
9
+ * opt-in v0.7 coverage selection). This module adds the missing strategies as
10
+ * a pure, injectable-RNG helper:
11
+ *
12
+ * - `"active"` — loop default, reflect from the active prompt
13
+ * (handled by the caller; this helper returns null).
14
+ * - `"best"` — GEPA `current_best`: highest scalarised composite
15
+ * over the version history.
16
+ * - `"pareto"` — GEPA default: uniform sample from the non-dominated
17
+ * front of the version history.
18
+ * - `"epsilon-greedy"`— with probability ε pick a uniformly-random version
19
+ * (explore), otherwise the best (exploit).
20
+ *
21
+ * Why it matters: always mutating the active prompt is a hill-climb that can
22
+ * get stuck on a local optimum. Sampling parents from the Pareto front keeps
23
+ * lineages alive that win on DIFFERENT objectives, and epsilon-greedy buys
24
+ * cheap exploration — both directly per the GEPA paper's selection ablation.
25
+ *
26
+ * Purity: no I/O, no LLM calls, deterministic given the same `rng`. The RNG
27
+ * is injected (default `Math.random`) so tests pin outcomes exactly — same
28
+ * pattern as `sampleByCoverage` (v0.7.0).
29
+ */
30
+ import { type ParetoObjective } from "./pareto.js";
31
+ /**
32
+ * Strategy for choosing the prompt version the next challenger is derived
33
+ * from. `"active"` is the historical default (reflect from the active
34
+ * prompt); the other three operate on the agent's scored version history.
35
+ */
36
+ export type CandidateSelectionStrategy = "active" | "best" | "pareto" | "epsilon-greedy";
37
+ /** Minimal shape this module needs — `ScoredVariant` satisfies it. */
38
+ export interface SelectableVariant {
39
+ /** Averaged objective vector for one prompt version. */
40
+ metrics: Record<string, number>;
41
+ }
42
+ /** Options for {@link selectParentVariant}. */
43
+ export interface ParentSelectionOptions {
44
+ /**
45
+ * Exploration probability for `"epsilon-greedy"` (default
46
+ * {@link DEFAULT_EXPLORATION_EPSILON}). Clamped to [0, 1]; non-finite
47
+ * values fall back to the default (NaN never bypasses the clamp).
48
+ */
49
+ epsilon?: number;
50
+ /**
51
+ * Random source in [0, 1) — injected for deterministic tests
52
+ * (default `Math.random`). Consulted by `"pareto"` (front sampling) and
53
+ * `"epsilon-greedy"` (explore coin-flip + explore pick).
54
+ */
55
+ rng?: () => number;
56
+ /**
57
+ * Objectives for dominance/scalarisation (default
58
+ * {@link DARWIN_DEFAULT_OBJECTIVES}). Same scale-sensitivity caveat as
59
+ * `paretoSelect` applies to the scalarised `"best"` pick.
60
+ */
61
+ objectives?: ReadonlyArray<ParetoObjective<Record<string, number>>>;
62
+ }
63
+ export declare const DEFAULT_EXPLORATION_EPSILON = 0.1;
64
+ /**
65
+ * Pick the parent variant the next challenger should be derived from.
66
+ *
67
+ * Returns `null` when the strategy is `"active"` (caller keeps the active
68
+ * prompt — the historical default path) or when `variants` is empty. A
69
+ * single-element list short-circuits to that element for every non-active
70
+ * strategy.
71
+ */
72
+ export declare function selectParentVariant<V extends SelectableVariant>(variants: ReadonlyArray<V>, strategy: CandidateSelectionStrategy, options?: ParentSelectionOptions): V | null;
73
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/evolution/selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAIrB;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEzF,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAyD/C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,iBAAiB,EAC7D,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,0BAA0B,EACpC,OAAO,GAAE,sBAA2B,GACnC,CAAC,GAAG,IAAI,CAmCV"}