@metaharness/darwin 0.1.0 → 0.2.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.
- package/README.md +113 -19
- package/dist/archive.d.ts +15 -0
- package/dist/archive.d.ts.map +1 -1
- package/dist/archive.js +41 -0
- package/dist/archive.js.map +1 -1
- package/dist/bench/promotion.d.ts.map +1 -1
- package/dist/bench/promotion.js +1 -0
- package/dist/bench/promotion.js.map +1 -1
- package/dist/bench/stats.d.ts +14 -0
- package/dist/bench/stats.d.ts.map +1 -1
- package/dist/bench/stats.js +38 -2
- package/dist/bench/stats.js.map +1 -1
- package/dist/bench/types.d.ts +4 -0
- package/dist/bench/types.d.ts.map +1 -1
- package/dist/clade.d.ts +26 -0
- package/dist/clade.d.ts.map +1 -0
- package/dist/clade.js +115 -0
- package/dist/clade.js.map +1 -0
- package/dist/cli.js +34 -1
- package/dist/cli.js.map +1 -1
- package/dist/curriculum.d.ts +19 -0
- package/dist/curriculum.d.ts.map +1 -0
- package/dist/curriculum.js +48 -0
- package/dist/curriculum.js.map +1 -0
- package/dist/epistasis.d.ts +40 -0
- package/dist/epistasis.d.ts.map +1 -0
- package/dist/epistasis.js +88 -0
- package/dist/epistasis.js.map +1 -0
- package/dist/evolve.d.ts +9 -1
- package/dist/evolve.d.ts.map +1 -1
- package/dist/evolve.js +314 -9
- package/dist/evolve.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mock-sandbox.d.ts +58 -0
- package/dist/mock-sandbox.d.ts.map +1 -0
- package/dist/mock-sandbox.js +119 -0
- package/dist/mock-sandbox.js.map +1 -0
- package/dist/mutator.d.ts +44 -2
- package/dist/mutator.d.ts.map +1 -1
- package/dist/mutator.js +100 -7
- package/dist/mutator.js.map +1 -1
- package/dist/openrouter-mutator.d.ts.map +1 -1
- package/dist/openrouter-mutator.js +5 -2
- package/dist/openrouter-mutator.js.map +1 -1
- package/dist/pareto.d.ts +7 -0
- package/dist/pareto.d.ts.map +1 -0
- package/dist/pareto.js +46 -0
- package/dist/pareto.js.map +1 -0
- package/dist/phenotype.d.ts +83 -0
- package/dist/phenotype.d.ts.map +1 -0
- package/dist/phenotype.js +189 -0
- package/dist/phenotype.js.map +1 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +6 -1
- package/dist/templates.js.map +1 -1
- package/dist/tier2-driver.d.ts +10 -0
- package/dist/tier2-driver.d.ts.map +1 -0
- package/dist/tier2-driver.js +62 -0
- package/dist/tier2-driver.js.map +1 -0
- package/dist/tier2-sandbox.d.ts +18 -0
- package/dist/tier2-sandbox.d.ts.map +1 -0
- package/dist/tier2-sandbox.js +91 -0
- package/dist/tier2-sandbox.js.map +1 -0
- package/dist/types.d.ts +99 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -7
package/README.md
CHANGED
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
# @metaharness/darwin
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
> **An LLM supercharger and cost optimizer.** Keep your model frozen — evolve the
|
|
4
|
+
> harness around it so a *cheap* model performs like an expensive one, for a fraction
|
|
5
|
+
> of the cost.
|
|
6
|
+
|
|
7
|
+
Darwin Mode makes the LLM you already use **measurably better and cheaper** by
|
|
8
|
+
evolving the *operating system around it* — planner, context builder, reviewer,
|
|
9
|
+
retry/tool/memory/score policy — instead of paying for a bigger model. It mutates one
|
|
10
|
+
surface at a time, tests each change in a sandbox, and keeps only what *measurably*
|
|
11
|
+
improves, building an archive of successful descendants. No weight updates, no
|
|
12
|
+
fine-tuning — just a population, a benchmark, and an archive.
|
|
13
|
+
|
|
14
|
+
**Why it pays off (measured, not marketing):**
|
|
15
|
+
- **Cheap beats frontier.** On a 15-model × 6-language execution benchmark, DeepSeek-V3
|
|
16
|
+
($0.4/Mtok) tops quality-per-dollar — and the harness, not the model, is the lever (ADR-085).
|
|
17
|
+
- **Real bug-fixing for pennies.** Resolves real **SWE-bench Lite** issues at **~$0.01/instance**
|
|
18
|
+
with a sub-$1/Mtok model (ADR-142–146) — vs. $1–20/instance for frontier-model agents.
|
|
19
|
+
- **The harness is the multiplier.** Evolving context-window/selection/retry policy lifts a
|
|
20
|
+
fixed model's measured outcomes (e.g. `finalScore 0.765 → 0.985`, ADR-103) — same model, better results.
|
|
21
|
+
|
|
22
|
+
This follows the **Darwin Gödel Machine** lineage: iteratively mutate the source of a
|
|
23
|
+
coding agent, then *empirically validate* each variant.
|
|
15
24
|
|
|
16
25
|
```
|
|
17
26
|
repo
|
|
@@ -38,7 +47,10 @@ npm run build # tsc
|
|
|
38
47
|
Then evolve a repo with the CLI (one verb, `evolve`):
|
|
39
48
|
|
|
40
49
|
```bash
|
|
41
|
-
metaharness-darwin evolve <repo> [--generations N] [--children N] [--concurrency N] [--seed N]
|
|
50
|
+
metaharness-darwin evolve <repo> [--generations N] [--children N] [--concurrency N] [--seed N] \
|
|
51
|
+
[--bench <suite.json>] [--tie faster] \
|
|
52
|
+
[--selection score|quality-diversity|behavioral-diversity|niche-steering|clade|pareto] \
|
|
53
|
+
[--crossover] [--epistasis] [--risk-budget N] [--fdr Q] [--curriculum] [--sandbox real|mock|agent]
|
|
42
54
|
```
|
|
43
55
|
|
|
44
56
|
| Flag | Meaning | Default |
|
|
@@ -47,6 +59,17 @@ metaharness-darwin evolve <repo> [--generations N] [--children N] [--concurrency
|
|
|
47
59
|
| `--children N` | children produced per parent per generation | `4` |
|
|
48
60
|
| `--concurrency N` | max variants evaluated concurrently (bounded fan-out) | `4` |
|
|
49
61
|
| `--seed N` | deterministic seed for mutation selection | `0` |
|
|
62
|
+
| `--bench <suite.json>` | route promotion through the statistical benchmark gate (ADR-087) | off |
|
|
63
|
+
| `--tie faster` | break score ties by efficiency (ADR-086) | `insertion` |
|
|
64
|
+
| `--selection …` | parent-selection strategy (see *Evolutionary stack*) | `score` |
|
|
65
|
+
| `--crossover` | recombine two parents' surfaces (ADR-089) | off |
|
|
66
|
+
| `--epistasis` | topology-aware crossover via learned linkage (ADR-093) | off |
|
|
67
|
+
| `--risk-budget N` | SGM cumulative risk cap on promotions (ADR-090) | off |
|
|
68
|
+
| `--fdr Q` | Benjamini-Hochberg FDR control on promotion (ADR-096) | off |
|
|
69
|
+
| `--curriculum` | difficulty-ladder over a graded suite (ADR-097) | off |
|
|
70
|
+
| `--sandbox …` | evaluation substrate: `real` (repo test) · `mock` (surface params, ADR-102) · `agent` (real surface code, ADR-106) | `real` |
|
|
71
|
+
|
|
72
|
+
All flags are **opt-in and additive** over a frozen, reproducible core — every default-path run is byte-identical to the ADR-070…075 baseline.
|
|
50
73
|
|
|
51
74
|
The `<repo>` argument defaults to the current directory. Everything is written
|
|
52
75
|
under a self-describing `.metaharness/` work tree inside the repo:
|
|
@@ -200,14 +223,85 @@ The package also re-exports the building blocks behind `evolve`: `profileRepo`,
|
|
|
200
223
|
`scoreWeights`, `Archive`, `inspectVariant` / `validateGeneratedCode`, plus the
|
|
201
224
|
`SURFACES`, `FILE_BY_SURFACE`, and `APPROVED_FILES` constants.
|
|
202
225
|
|
|
226
|
+
## Evolutionary stack (ADR-084–105)
|
|
227
|
+
|
|
228
|
+
The baseline above is the frozen core. On top of it, a set of **opt-in, additive,
|
|
229
|
+
reproducible** mechanisms turn the loop from a single-best search into a real
|
|
230
|
+
evolutionary algorithm. Every one is off by default (so the core stays
|
|
231
|
+
byte-identical) and individually toggled:
|
|
232
|
+
|
|
233
|
+
| Capability | ADR | How to enable |
|
|
234
|
+
|---|---|---|
|
|
235
|
+
| **Failure-driven mutation** — feed a parent's failing traces into the mutator | 084 | always (the deterministic mutator ignores it) |
|
|
236
|
+
| **LLM mutator** — `OpenRouterMutator` as a `CodeGenerator`, behind the same safety gate; model chosen by a 15-model execution benchmark | 085 | `config.generator` |
|
|
237
|
+
| **Efficiency tie-break** — break score ties by speed | 086 | `--tie faster` |
|
|
238
|
+
| **Graded statistical promotion** — public∧hidden∧regression∧safety + seeded bootstrap CI over a hash-pinned suite | 087 | `--bench s.json` |
|
|
239
|
+
| **MAP-Elites** — keep the elite per behaviour niche | 088 | `--selection quality-diversity` |
|
|
240
|
+
| **Genetic crossover** — recombine two parents' surfaces | 089 | `--crossover` |
|
|
241
|
+
| **SGM risk budget** — bound cumulative self-modification | 090 | `--risk-budget N` |
|
|
242
|
+
| **Hyperbolic phenotyping** — Poincaré-ball behavioural niche from traces | 091 | `--selection behavioral-diversity` |
|
|
243
|
+
| **Active niche steering** — drive toward under-explored regions | 092 | `--selection niche-steering` |
|
|
244
|
+
| **Epistatic linkage** — topology-aware crossover of co-adapted surfaces | 093 | `--crossover --epistasis` |
|
|
245
|
+
| **Clade metaproductivity** — select parents by descendant potential (Huxley-Gödel) | 094 | `--selection clade` |
|
|
246
|
+
| **Benjamini-Hochberg FDR control** — correct promotion for multiple testing | 096 | `--fdr Q` |
|
|
247
|
+
| **Self-directed curriculum** — difficulty ladder over a graded suite | 097 | `--curriculum` |
|
|
248
|
+
| **Multi-objective Pareto** — non-dominated (capability × parsimony) front | 100 | `--selection pareto` |
|
|
249
|
+
|
|
250
|
+
### The evaluation substrate (ADR-101/102)
|
|
251
|
+
|
|
252
|
+
By default the sandbox runs the **repo's test command**, which is independent of
|
|
253
|
+
the harness surfaces — so the behavioural manifold is degenerate (measured:
|
|
254
|
+
`nicheEntropy = 0`, ADR-099). `sandboxMode: 'mock'` (ADR-102) instead runs a
|
|
255
|
+
**deterministic surface-driven agent loop**, so a variant's traces depend on its
|
|
256
|
+
surface content and the manifold comes alive. `sandboxMode: 'agent'` (ADR-106)
|
|
257
|
+
runs a variant's **real surface code** in a child process. The real-LLM-on-real-code
|
|
258
|
+
substrate is **no longer deferred** — it shipped (ADR-106→141) and now runs on
|
|
259
|
+
**canonical SWE-bench Lite** (ADR-142+, below).
|
|
260
|
+
|
|
261
|
+
### Validated results (real, reproducible — see `bench/results/`)
|
|
262
|
+
|
|
263
|
+
- **Manifold goes live** (ADR-102): real `nicheEntropy 0 → 0.69`, finalScores
|
|
264
|
+
`flat 0.985 → spread 0.435–0.802` under mock mode.
|
|
265
|
+
- **Self-improvement** (ADR-103): the loop evolves `contextBuilder` (window
|
|
266
|
+
30 → 70) and climbs `finalScore 0.765 → 0.985` by generation 3.
|
|
267
|
+
- **Diversity beats greedy on deception** (ADR-105): on a deceptive epistatic
|
|
268
|
+
landscape across 5 seeds, greedy `score` selection crosses it **0/5**,
|
|
269
|
+
`behavioral-diversity` **5/5**, `clade` **4/5** — empirically justifying the
|
|
270
|
+
diversity machinery.
|
|
271
|
+
- **Polyglot model frontier** (ADR-085): 15 models × 6 languages, execution-scored;
|
|
272
|
+
DeepSeek-V3 ($0.4/Mtok) tops quality-per-dollar — cheap beats frontier for code.
|
|
273
|
+
|
|
274
|
+
### Canonical SWE-bench Lite (real, official harness — ADR-142–146)
|
|
275
|
+
|
|
276
|
+
Run on the **full 300** SWE-bench Lite (test) instances, scored by the **official
|
|
277
|
+
`swebench` Docker harness** — no cherry-picking, tight CIs. Solver = relevance-ranked
|
|
278
|
+
context + symbol-aware localization + search/replace patch, `deepseek-chat`, ~$0.01/instance.
|
|
279
|
+
|
|
280
|
+
| config | resolved | Wilson 95% CI | ADR |
|
|
281
|
+
|---|---|---|---|
|
|
282
|
+
| baseline (open-loop, single-shot) | 23/300 = **7.7%** | [5.2, 11.2] | 144 |
|
|
283
|
+
| + LLM localization | 24/300 = **8.0%** | [5.4, 11.6] | 146 |
|
|
284
|
+
| + closed-loop repair (test-feedback) | *measuring (full 300)* | — | 149 |
|
|
285
|
+
|
|
286
|
+
Honest framing: this is a **cheap-model, single-shot baseline** ($0.4/Mtok, <1¢/instance) —
|
|
287
|
+
leaderboard leaders hit 65–88% on Verified using iterative agentic loops + frontier models at
|
|
288
|
+
$1–20/instance. Localization lifted file-selection recall **44.7% → 59.7%** but resolve-rate held
|
|
289
|
+
flat — the bottleneck relocated to *patch emission* (ADR-146). The repair loop and a hybrid
|
|
290
|
+
cheap→frontier escalation (ADR-148) are the measured next levers. Every number is reproducible
|
|
291
|
+
under `bench/swebench/`.
|
|
292
|
+
|
|
203
293
|
## Status
|
|
204
294
|
|
|
205
|
-
**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
295
|
+
**Working, empirically validated on both the mock substrate *and* canonical
|
|
296
|
+
SWE-bench Lite.** The `DeterministicMutator` is seeded and signature-preserving;
|
|
297
|
+
the `OpenRouterMutator` (ADR-085) is the production LLM `CodeGenerator`, behind the
|
|
298
|
+
*same* `validateGeneratedCode` gate. The safety boundary, scorer, archive, and bench
|
|
299
|
+
layer are kernel code. The real-LLM-on-real-code frontier (once deferred) is now
|
|
300
|
+
**measured**: a reproducible **7.7% [5.2–11.2%]** open-loop baseline on the full
|
|
301
|
+
SWE-bench Lite (ADR-144), with localization (146), the repair loop (149), and a
|
|
302
|
+
hybrid cheap→frontier escalation (148) as the active levers. Darwin Mode also ships
|
|
303
|
+
**integrated into the `metaharness` scaffolder** — `npx metaharness <name>` produces
|
|
304
|
+
a harness with `npm run evolve` out of the box (ADR-147).
|
|
211
305
|
|
|
212
306
|
## License
|
|
213
307
|
|
package/dist/archive.d.ts
CHANGED
|
@@ -51,6 +51,21 @@ export declare class Archive {
|
|
|
51
51
|
* @param limit Maximum number of parents to return. `<= 0` yields `[]`.
|
|
52
52
|
*/
|
|
53
53
|
selectParents(limit: number): HarnessVariant[];
|
|
54
|
+
/**
|
|
55
|
+
* MAP-Elites elite selection (quality-diversity). Bin the scored records by a
|
|
56
|
+
* behaviour descriptor (default: the mutated surface), keep the BEST record per
|
|
57
|
+
* bin (highest finalScore, ties by earliest insertion), and return up to
|
|
58
|
+
* `limit` bin-champions ordered by finalScore. Where `selectParents` can return
|
|
59
|
+
* `limit` near-identical variants (all the same surface — common at the ADR-072
|
|
60
|
+
* 0.985 ceiling), this returns champions from DISTINCT niches, so the next
|
|
61
|
+
* generation explores diverse surfaces instead of collapsing onto one.
|
|
62
|
+
*
|
|
63
|
+
* Pure and deterministic (no wall-clock) → reproducible from `archive.json`.
|
|
64
|
+
*
|
|
65
|
+
* @param limit Maximum number of elites to return. `<= 0` yields `[]`.
|
|
66
|
+
* @param descriptorOf Behaviour-descriptor function; defaults to mutated surface.
|
|
67
|
+
*/
|
|
68
|
+
selectElites(limit: number, descriptorOf?: (variant: HarnessVariant) => string): HarnessVariant[];
|
|
54
69
|
/**
|
|
55
70
|
* The path of ids from the root ancestor down to `variantId`, following
|
|
56
71
|
* `parentId` upward then reversing. Returns `[]` if `variantId` is unknown.
|
package/dist/archive.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;GAKG;AACH,qBAAa,OAAO;IAQN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IAEjE;;;OAGG;gBAC0B,IAAI,EAAE,MAAM;IAEzC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAczC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAUnD,8EAA8E;IAC9E,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIjD,wCAAwC;IACxC,GAAG,IAAI,aAAa,EAAE;IAItB;;;;OAIG;IACH,IAAI,IAAI,aAAa,GAAG,IAAI;IAW5B;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAoB9C;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBtC;;;;;OAKG;IACH,cAAc,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,eAAe,EAAE,MAAM,CAAC;YACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;SAC1B,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC5C;IA+BD;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;GAKG;AACH,qBAAa,OAAO;IAQN,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPjC,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IAEjE;;;OAGG;gBAC0B,IAAI,EAAE,MAAM;IAEzC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAczC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAUnD,8EAA8E;IAC9E,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIjD,wCAAwC;IACxC,GAAG,IAAI,aAAa,EAAE;IAItB;;;;OAIG;IACH,IAAI,IAAI,aAAa,GAAG,IAAI;IAW5B;;;;;;;OAOG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAoB9C;;;;;;;;;;;;;OAaG;IACH,YAAY,CACV,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAiC,GAC3E,cAAc,EAAE;IA6BnB;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBtC;;;;;OAKG;IACH,cAAc,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;YACxB,UAAU,EAAE,MAAM,CAAC;YACnB,eAAe,EAAE,MAAM,CAAC;YACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;YAC1B,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;SAC1B,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC5C;IA+BD;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
|
package/dist/archive.js
CHANGED
|
@@ -137,6 +137,47 @@ export class Archive {
|
|
|
137
137
|
});
|
|
138
138
|
return scored.slice(0, limit).map((s) => s.record.variant);
|
|
139
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* MAP-Elites elite selection (quality-diversity). Bin the scored records by a
|
|
142
|
+
* behaviour descriptor (default: the mutated surface), keep the BEST record per
|
|
143
|
+
* bin (highest finalScore, ties by earliest insertion), and return up to
|
|
144
|
+
* `limit` bin-champions ordered by finalScore. Where `selectParents` can return
|
|
145
|
+
* `limit` near-identical variants (all the same surface — common at the ADR-072
|
|
146
|
+
* 0.985 ceiling), this returns champions from DISTINCT niches, so the next
|
|
147
|
+
* generation explores diverse surfaces instead of collapsing onto one.
|
|
148
|
+
*
|
|
149
|
+
* Pure and deterministic (no wall-clock) → reproducible from `archive.json`.
|
|
150
|
+
*
|
|
151
|
+
* @param limit Maximum number of elites to return. `<= 0` yields `[]`.
|
|
152
|
+
* @param descriptorOf Behaviour-descriptor function; defaults to mutated surface.
|
|
153
|
+
*/
|
|
154
|
+
selectElites(limit, descriptorOf = (v) => v.mutationSurface) {
|
|
155
|
+
if (limit <= 0)
|
|
156
|
+
return [];
|
|
157
|
+
// descriptor → champion, tracking insertion index for deterministic ties.
|
|
158
|
+
const champions = new Map();
|
|
159
|
+
let index = 0;
|
|
160
|
+
for (const record of this.records.values()) {
|
|
161
|
+
const i = index++;
|
|
162
|
+
if (record.score === null)
|
|
163
|
+
continue;
|
|
164
|
+
const key = descriptorOf(record.variant);
|
|
165
|
+
const current = champions.get(key);
|
|
166
|
+
if (current === undefined ||
|
|
167
|
+
record.score.finalScore > current.record.score.finalScore) {
|
|
168
|
+
champions.set(key, { record, index: i });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return [...champions.values()]
|
|
172
|
+
.sort((a, b) => {
|
|
173
|
+
const delta = b.record.score.finalScore - a.record.score.finalScore;
|
|
174
|
+
if (delta !== 0)
|
|
175
|
+
return delta; // higher finalScore first
|
|
176
|
+
return a.index - b.index; // tie-break: earlier insertion first
|
|
177
|
+
})
|
|
178
|
+
.slice(0, limit)
|
|
179
|
+
.map((c) => c.record.variant);
|
|
180
|
+
}
|
|
140
181
|
/**
|
|
141
182
|
* The path of ids from the root ancestor down to `variantId`, following
|
|
142
183
|
* `parentId` upward then reversing. Returns `[]` if `variantId` is unknown.
|
package/dist/archive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../src/bench/promotion.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAerE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../src/bench/promotion.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAerE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,iBAAiB,CAkFpB"}
|
package/dist/bench/promotion.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promotion.js","sourceRoot":"","sources":["../../src/bench/promotion.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"promotion.js","sourceRoot":"","sources":["../../src/bench/promotion.ts"],"names":[],"mappings":"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"}
|
package/dist/bench/stats.d.ts
CHANGED
|
@@ -23,4 +23,18 @@ export declare function bootstrapDelta(parentScores: number[], childScores: numb
|
|
|
23
23
|
seed?: number;
|
|
24
24
|
minDelta?: number;
|
|
25
25
|
}): BootstrapResult;
|
|
26
|
+
/**
|
|
27
|
+
* Benjamini–Hochberg false-discovery-rate control (ADR-096). Given a set of
|
|
28
|
+
* one-sided p-values and a target FDR `q`, return a boolean per hypothesis:
|
|
29
|
+
* `true` ⇒ rejected H0 (i.e. a statistically real discovery after correcting
|
|
30
|
+
* for multiple testing). Standard step-up: sort ascending, find the largest k
|
|
31
|
+
* with p_(k) ≤ (k/m)·q, reject all hypotheses with p ≤ that threshold. Pure and
|
|
32
|
+
* deterministic. Empty input ⇒ empty output; q ≤ 0 ⇒ reject nothing.
|
|
33
|
+
*
|
|
34
|
+
* CALIBRATION (ADR-112): BH controls FDR only when the input p-values are
|
|
35
|
+
* (super-)uniform under the null. Bootstrap p-values from `bootstrapDelta` meet
|
|
36
|
+
* this from ~5 samples up; at n=3 they are too coarse/anti-conservative and the
|
|
37
|
+
* empirical FDR is ~33% at q=0.05. Callers must supply ≥ 5 task-scores per variant.
|
|
38
|
+
*/
|
|
39
|
+
export declare function benjaminiHochberg(pValues: readonly number[], q: number): boolean[];
|
|
26
40
|
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/bench/stats.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CASlD;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,EACrB,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,eAAe,
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/bench/stats.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CASlD;AAWD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,EACrB,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,eAAe,CAgCjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAYlF"}
|
package/dist/bench/stats.js
CHANGED
|
@@ -52,23 +52,59 @@ export function bootstrapDelta(parentScores, childScores, opts) {
|
|
|
52
52
|
const seed = opts?.seed ?? 0;
|
|
53
53
|
const minDelta = opts?.minDelta ?? 0.05;
|
|
54
54
|
if (parentScores.length === 0 || childScores.length === 0) {
|
|
55
|
-
return { meanDelta: 0, lower95: 0, upper95: 0, promote: false, samples };
|
|
55
|
+
return { meanDelta: 0, lower95: 0, upper95: 0, promote: false, samples, pValue: 1 };
|
|
56
56
|
}
|
|
57
57
|
const rng = makeRng(seed);
|
|
58
58
|
const deltas = new Array(samples);
|
|
59
59
|
let sum = 0;
|
|
60
|
+
let nonPositive = 0;
|
|
60
61
|
for (let i = 0; i < samples; i += 1) {
|
|
61
62
|
const parent = parentScores[Math.floor(rng() * parentScores.length)];
|
|
62
63
|
const child = childScores[Math.floor(rng() * childScores.length)];
|
|
63
64
|
const delta = child - parent;
|
|
64
65
|
deltas[i] = delta;
|
|
65
66
|
sum += delta;
|
|
67
|
+
if (delta <= 0)
|
|
68
|
+
nonPositive += 1;
|
|
66
69
|
}
|
|
67
70
|
deltas.sort((x, y) => x - y);
|
|
68
71
|
const meanDelta = round6(sum / samples);
|
|
69
72
|
const lower95 = round6(deltas[Math.floor(samples * 0.025)]);
|
|
70
73
|
const upper95 = round6(deltas[Math.floor(samples * 0.975)]);
|
|
71
74
|
const promote = meanDelta > minDelta && lower95 > 0;
|
|
72
|
-
|
|
75
|
+
// One-sided bootstrap p-value for H0: delta ≤ 0 (the share of resamples ≤ 0).
|
|
76
|
+
const pValue = round6(nonPositive / samples);
|
|
77
|
+
return { meanDelta, lower95, upper95, promote, samples, pValue };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Benjamini–Hochberg false-discovery-rate control (ADR-096). Given a set of
|
|
81
|
+
* one-sided p-values and a target FDR `q`, return a boolean per hypothesis:
|
|
82
|
+
* `true` ⇒ rejected H0 (i.e. a statistically real discovery after correcting
|
|
83
|
+
* for multiple testing). Standard step-up: sort ascending, find the largest k
|
|
84
|
+
* with p_(k) ≤ (k/m)·q, reject all hypotheses with p ≤ that threshold. Pure and
|
|
85
|
+
* deterministic. Empty input ⇒ empty output; q ≤ 0 ⇒ reject nothing.
|
|
86
|
+
*
|
|
87
|
+
* CALIBRATION (ADR-112): BH controls FDR only when the input p-values are
|
|
88
|
+
* (super-)uniform under the null. Bootstrap p-values from `bootstrapDelta` meet
|
|
89
|
+
* this from ~5 samples up; at n=3 they are too coarse/anti-conservative and the
|
|
90
|
+
* empirical FDR is ~33% at q=0.05. Callers must supply ≥ 5 task-scores per variant.
|
|
91
|
+
*/
|
|
92
|
+
export function benjaminiHochberg(pValues, q) {
|
|
93
|
+
const m = pValues.length;
|
|
94
|
+
const result = new Array(m).fill(false);
|
|
95
|
+
if (m === 0 || q <= 0)
|
|
96
|
+
return result;
|
|
97
|
+
const order = pValues.map((p, i) => ({ p, i })).sort((a, b) => a.p - b.p);
|
|
98
|
+
let cutoff = -1; // largest p that passes the BH threshold
|
|
99
|
+
for (let rank = 1; rank <= m; rank += 1) {
|
|
100
|
+
if (order[rank - 1].p <= (rank / m) * q)
|
|
101
|
+
cutoff = order[rank - 1].p;
|
|
102
|
+
}
|
|
103
|
+
if (cutoff < 0)
|
|
104
|
+
return result;
|
|
105
|
+
for (let j = 0; j < m; j += 1)
|
|
106
|
+
if (pValues[j] <= cutoff)
|
|
107
|
+
result[j] = true;
|
|
108
|
+
return result;
|
|
73
109
|
}
|
|
74
110
|
//# sourceMappingURL=stats.js.map
|
package/dist/bench/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/bench/stats.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,4EAA4E;AAC5E,gEAAgE;AAChE,EAAE;AACF,oCAAoC;AAIpC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IACnB,OAAO;QACL,CAAC,IAAI,CAAC,CAAC;QACP,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,YAAsB,EACtB,WAAqB,EACrB,IAA6D;IAE7D,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IAExC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/bench/stats.ts"],"names":[],"mappings":"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"}
|
package/dist/bench/types.d.ts
CHANGED
|
@@ -107,6 +107,8 @@ export interface BootstrapResult {
|
|
|
107
107
|
/** meanDelta > minDelta ∧ lower95 > 0. */
|
|
108
108
|
promote: boolean;
|
|
109
109
|
samples: number;
|
|
110
|
+
/** One-sided bootstrap p-value for H0: delta ≤ 0 (fraction of resamples ≤ 0). */
|
|
111
|
+
pValue: number;
|
|
110
112
|
}
|
|
111
113
|
/** The full, auditable promotion verdict for a child vs its parent. */
|
|
112
114
|
export interface PromotionDecision {
|
|
@@ -122,6 +124,8 @@ export interface PromotionDecision {
|
|
|
122
124
|
parentRegressionRate: number;
|
|
123
125
|
childSafetyViolations: number;
|
|
124
126
|
cleanReplay: boolean;
|
|
127
|
+
/** One-sided bootstrap p-value for the child>parent win (for FDR control, ADR-096). */
|
|
128
|
+
pValue: number;
|
|
125
129
|
}
|
|
126
130
|
/** A node in the lineage tree used for descendant-potential analysis. */
|
|
127
131
|
export interface LineageNode {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bench/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bench/types.ts"],"names":[],"mappings":"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"}
|
package/dist/clade.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Archive } from './archive.js';
|
|
2
|
+
import type { HarnessVariant } from './types.js';
|
|
3
|
+
/** mulberry32 — a tiny, fast, deterministic PRNG seeded from a 32-bit integer. */
|
|
4
|
+
export declare function mulberry32(seed: number): () => number;
|
|
5
|
+
/** Beta(a, b) = X/(X+Y), X~Gamma(a), Y~Gamma(b). Deterministic given `rng`. */
|
|
6
|
+
export declare function sampleBeta(rng: () => number, a: number, b: number): number;
|
|
7
|
+
/**
|
|
8
|
+
* Clade outcome counts over a variant's descendant subtree (inclusive). A scored
|
|
9
|
+
* node is a "success" iff it was promoted, else a "failure"; unscored nodes are
|
|
10
|
+
* ignored. Cycle-guarded. O(subtree).
|
|
11
|
+
*/
|
|
12
|
+
export declare function cladeOutcomes(archive: Archive, rootId: string): {
|
|
13
|
+
passes: number;
|
|
14
|
+
failures: number;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Clade-metaproductivity Thompson selection: for every scored variant draw
|
|
18
|
+
* `u ~ Beta(τ·passes+1, τ·failures+1)` over its subtree outcomes and return the
|
|
19
|
+
* top-`limit` variants by `u`. Seeded → reproducible. Returns `[]` when nothing
|
|
20
|
+
* is scored (caller falls back).
|
|
21
|
+
*
|
|
22
|
+
* @param tau exploration→exploitation schedule in [0, ∞): 0 ⇒ uniform Beta(1,1)
|
|
23
|
+
* (pure exploration); larger ⇒ sharper posteriors (exploitation).
|
|
24
|
+
*/
|
|
25
|
+
export declare function cladeThompsonSelect(archive: Archive, tau: number, limit: number, seed: number): HarnessVariant[];
|
|
26
|
+
//# sourceMappingURL=clade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clade.d.ts","sourceRoot":"","sources":["../src/clade.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CASrD;AA0BD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAiBpG;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,cAAc,EAAE,CAclB"}
|
package/dist/clade.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
//
|
|
3
|
+
// Clade-metaproductivity parent selection (ADR-094), after the Huxley-Gödel
|
|
4
|
+
// Machine (Wang, Piękos, Li et al., arXiv:2510.21614, 2025). It fixes the
|
|
5
|
+
// "metaproductivity–performance mismatch": the best-SCORING variant is a poor
|
|
6
|
+
// PARENT because it has exhausted its descendant diversity. HGM instead selects
|
|
7
|
+
// parents by Clade Metaproductivity — the success rate of a variant's whole
|
|
8
|
+
// descendant subtree — via Thompson sampling over Beta(τ·passes+1, τ·fails+1),
|
|
9
|
+
// with τ scheduling exploration→exploitation.
|
|
10
|
+
//
|
|
11
|
+
// We tie τ to the SGM risk budget (ADR-090): early (budget full) → low τ → flat
|
|
12
|
+
// Betas → exploration; late (budget spent) → high τ → sharp Betas → exploitation.
|
|
13
|
+
//
|
|
14
|
+
// Unlike the paper (which uses Math.random), the Beta draws here come from a
|
|
15
|
+
// SEEDED PRNG, so clade selection is fully reproducible (ADR-075) — same seed ⇒
|
|
16
|
+
// same parents. Dependency-free.
|
|
17
|
+
/** mulberry32 — a tiny, fast, deterministic PRNG seeded from a 32-bit integer. */
|
|
18
|
+
export function mulberry32(seed) {
|
|
19
|
+
let a = seed >>> 0;
|
|
20
|
+
return () => {
|
|
21
|
+
a = (a + 0x6d2b79f5) >>> 0;
|
|
22
|
+
let t = a;
|
|
23
|
+
t = Math.imul(t ^ (t >>> 15), t | 1);
|
|
24
|
+
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
|
|
25
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Standard normal via Box–Muller from a uniform stream. */
|
|
29
|
+
function sampleNormal(rng) {
|
|
30
|
+
let u = 0, v = 0;
|
|
31
|
+
while (u === 0)
|
|
32
|
+
u = rng();
|
|
33
|
+
while (v === 0)
|
|
34
|
+
v = rng();
|
|
35
|
+
return Math.sqrt(-2 * Math.log(u)) * Math.cos(2 * Math.PI * v);
|
|
36
|
+
}
|
|
37
|
+
/** Gamma(shape ≥ 1, scale 1) via Marsaglia–Tsang. Our shapes are always ≥ 1. */
|
|
38
|
+
function sampleGamma(rng, shape) {
|
|
39
|
+
const k = Math.max(1, shape);
|
|
40
|
+
const d = k - 1 / 3;
|
|
41
|
+
const c = 1 / Math.sqrt(9 * d);
|
|
42
|
+
for (;;) {
|
|
43
|
+
const x = sampleNormal(rng);
|
|
44
|
+
const v0 = 1 + c * x;
|
|
45
|
+
if (v0 <= 0)
|
|
46
|
+
continue;
|
|
47
|
+
const v = v0 * v0 * v0;
|
|
48
|
+
const u = rng();
|
|
49
|
+
if (u < 1 - 0.0331 * x * x * x * x)
|
|
50
|
+
return d * v;
|
|
51
|
+
if (Math.log(u) < 0.5 * x * x + d * (1 - v + Math.log(v)))
|
|
52
|
+
return d * v;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Beta(a, b) = X/(X+Y), X~Gamma(a), Y~Gamma(b). Deterministic given `rng`. */
|
|
56
|
+
export function sampleBeta(rng, a, b) {
|
|
57
|
+
const x = sampleGamma(rng, a);
|
|
58
|
+
const y = sampleGamma(rng, b);
|
|
59
|
+
return x + y === 0 ? 0.5 : x / (x + y);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Clade outcome counts over a variant's descendant subtree (inclusive). A scored
|
|
63
|
+
* node is a "success" iff it was promoted, else a "failure"; unscored nodes are
|
|
64
|
+
* ignored. Cycle-guarded. O(subtree).
|
|
65
|
+
*/
|
|
66
|
+
export function cladeOutcomes(archive, rootId) {
|
|
67
|
+
let passes = 0, failures = 0;
|
|
68
|
+
const seen = new Set();
|
|
69
|
+
const stack = [rootId];
|
|
70
|
+
while (stack.length > 0) {
|
|
71
|
+
const id = stack.pop();
|
|
72
|
+
if (seen.has(id))
|
|
73
|
+
continue;
|
|
74
|
+
seen.add(id);
|
|
75
|
+
const rec = archive.get(id);
|
|
76
|
+
if (!rec)
|
|
77
|
+
continue;
|
|
78
|
+
if (rec.score !== null) {
|
|
79
|
+
if (rec.score.promoted)
|
|
80
|
+
passes += 1;
|
|
81
|
+
else
|
|
82
|
+
failures += 1;
|
|
83
|
+
}
|
|
84
|
+
for (const child of rec.children)
|
|
85
|
+
stack.push(child);
|
|
86
|
+
}
|
|
87
|
+
return { passes, failures };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Clade-metaproductivity Thompson selection: for every scored variant draw
|
|
91
|
+
* `u ~ Beta(τ·passes+1, τ·failures+1)` over its subtree outcomes and return the
|
|
92
|
+
* top-`limit` variants by `u`. Seeded → reproducible. Returns `[]` when nothing
|
|
93
|
+
* is scored (caller falls back).
|
|
94
|
+
*
|
|
95
|
+
* @param tau exploration→exploitation schedule in [0, ∞): 0 ⇒ uniform Beta(1,1)
|
|
96
|
+
* (pure exploration); larger ⇒ sharper posteriors (exploitation).
|
|
97
|
+
*/
|
|
98
|
+
export function cladeThompsonSelect(archive, tau, limit, seed) {
|
|
99
|
+
if (limit <= 0)
|
|
100
|
+
return [];
|
|
101
|
+
const rng = mulberry32(seed);
|
|
102
|
+
const t = Math.max(0, tau);
|
|
103
|
+
const scored = archive.all().filter((r) => r.score !== null);
|
|
104
|
+
if (scored.length === 0)
|
|
105
|
+
return [];
|
|
106
|
+
const ranked = scored
|
|
107
|
+
.map((r) => {
|
|
108
|
+
const { passes, failures } = cladeOutcomes(archive, r.variant.id);
|
|
109
|
+
const u = sampleBeta(rng, t * passes + 1, t * failures + 1);
|
|
110
|
+
return { variant: r.variant, u };
|
|
111
|
+
})
|
|
112
|
+
.sort((a, b) => b.u - a.u);
|
|
113
|
+
return ranked.slice(0, limit).map((x) => x.variant);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=clade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clade.js","sourceRoot":"","sources":["../src/clade.ts"],"names":[],"mappings":"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"}
|