@metaharness/darwin 0.2.1 → 0.2.3

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/CHANGELOG.md ADDED
@@ -0,0 +1,32 @@
1
+ # Changelog — @metaharness/darwin
2
+
3
+ All notable changes to this package. Dates UTC.
4
+
5
+ ## 0.2.3 — 2026-06-19
6
+
7
+ - Add `LEARNINGS.md` — the measured findings distilled into harness defaults (repair=2x lever, cost-routing, Barbarian&Scholar tiering, format-contract, batch-eval discipline, capability floor).
8
+
9
+ ## 0.2.2 — 2026-06-19
10
+
11
+ - **Docs: full SWE-bench Lite (300) evidence ladder** now in the description + README, all official `swebench` Docker harness, batch-verified:
12
+ - open-loop **7.7%** [5.2, 11.2] (ADR-144)
13
+ - + localization **8.0%** [5.4, 11.6] (ADR-146)
14
+ - + closed-loop repair **15.3%** [11.7, 19.8] (ADR-149)
15
+ - + Barbarian&Scholar hybrid (cheap base + frontier-tail escalation) **33.3%** [28.2, 38.8] (ADR-148)
16
+ - Blended cost ~$0.01/instance (cheap) → ~$0.34/instance (hybrid) vs $1–20/instance for frontier agents.
17
+ - README now links `bench/results/RESULTS.md` (the full reproducible evidence) for npm-only readers.
18
+ - `RuvllmMutator` (local/$0 air-gapped mutator, ADR-259) ships in `dist/`.
19
+ - Added `bench/swebench/KNOWN_FLAKY.md` (standing `psf__requests-2317` Docker-hang exclusion note).
20
+
21
+ ## 0.2.1 — 2026-06-19
22
+
23
+ - Metadata: repositioned as "an LLM supercharger and cost optimizer"; keywords/description.
24
+
25
+ ## 0.2.0 — 2026-06-18
26
+
27
+ - Integrated into the `metaharness` scaffolder (`npm run evolve`, ADR-147).
28
+ - Evolutionary stack (mutation + crossover + diverse selection + graded promotion) over a frozen core.
29
+
30
+ ## 0.1.x — 2026-06
31
+
32
+ - Initial release: frozen-model / evolving-harness over 7 mutation surfaces; deterministic mutator default; `validateGeneratedCode` safety gate; pluggable `CodeGenerator`.
package/LEARNINGS.md ADDED
@@ -0,0 +1,63 @@
1
+ # What the benchmarks taught us → harness defaults
2
+
3
+ Empirical findings from the full SWE-bench Lite (300) arc (official `swebench` Docker harness,
4
+ batch-verified — see `bench/results/RESULTS.md`). These are the *measured* reasons behind the
5
+ recommended harness patterns. The headline: **the harness, not the model, is the dominant lever.**
6
+
7
+ ## 1. Closed-loop repair (test feedback) is the #1 lever — ~2× for free
8
+ - open-loop single-shot: **7.7%** → + closed-loop repair (run the failing tests, feed the
9
+ traceback back, retry ≤3): **15.3%** — on the *same cheap model*, ~$0.01/instance.
10
+ - **Recommendation:** make iteration against ground-truth (compiler/tests) first-class. A model
11
+ that can *see why it failed* beats a smarter model that can't. Prefer `retryPolicy` configs that
12
+ consume real failure signal over blind retries.
13
+
14
+ ## 2. Localization fixes retrieval, not emission — beware the "emission wall"
15
+ - LLM file-localization lifted gold-file recall **+15pp** but resolve-rate stayed flat (8.0%).
16
+ The bottleneck was *writing a valid patch*, not *finding the file*.
17
+ - **Recommendation:** measure where you actually lose (selection vs emission) before optimizing
18
+ retrieval. Don't assume better context = better output.
19
+
20
+ ## 3. Format contract + fit-in-context unblocks weak/local models (0 → 13/25 applied)
21
+ - A small local model emitted prose summaries instead of edits until the harness (a) served enough
22
+ context window, (b) carried the search/replace **format contract in a system message + worked
23
+ example**, and (c) **shrank per-file context to fit the window** (truncation silently dropped the
24
+ instruction). Apply-rate went 0 → ~50%.
25
+ - **Recommendation:** put the output-format contract in a *system* role with an example; size the
26
+ prompt to the model's real context; never let truncation eat the instruction.
27
+
28
+ ## 4. Cheap-first + cost-aware routing — 31× cheaper per resolve
29
+ - Router probe: `pareto-code`→deepseek-v4-pro resolved at **$0.21/resolve** vs `fusion`→opus-4.8 at
30
+ **$6.57/resolve** — same task, 31× cost gap for +1 resolve.
31
+ - **Recommendation:** default to the cheapest model that clears the task; reserve frontier models for
32
+ measured capability gaps. Track **$/resolve**, not just resolve-rate.
33
+
34
+ ## 5. Barbarian & Scholar — tier the models, escalate only the residual (33.3% at ~6× less cost)
35
+ - Cheap base (deepseek + repair) banks the easy 46/300; a frontier "Scholar" (sonnet-4 + repair)
36
+ escalated **only to the 254 it failed** cracks 55 more → **100/300 = 33.3%**, blended
37
+ ~$0.34/instance vs ~$2 to run frontier on all 300.
38
+ - **Recommendation:** two-tier orchestration — cheap sweep, then frontier on the residual — is far
39
+ more cost-efficient than one strong model everywhere (you'd waste 5/6 of frontier spend re-solving
40
+ what cheap already gets).
41
+
42
+ ## 6. The repair lift is model-bound below a capability floor (~14B)
43
+ - Repair did nothing for a 7B (4%→4%) but lifted a 14B (8%→12%) and doubled a hosted model. The loop
44
+ needs the model to *occasionally* produce a correct-ish patch to converge toward.
45
+ - **Recommendation:** don't expect harness scaffolding to rescue a model below the task's reasoning
46
+ floor; pick the smallest model *above* it, then let the harness multiply it.
47
+
48
+ ## 7. Methodology: only batch-eval on final predictions is authoritative
49
+ - In-loop "resolved" counters drifted from clean batch eval by 1.5–5× (both directions — flaky
50
+ passes over-count; Docker-hang false-negatives under-count). Every reported number here is a
51
+ fresh batch eval on the final saved predictions.
52
+ - **Recommendation:** never report the in-loop signal; re-evaluate the artifact you'd actually ship.
53
+
54
+ ## 8. Engineering robustness (or your run lies to you)
55
+ - Concurrency clones rate-limit (6-wide anon GitHub clones → 63 fetch failures): **cap at 2–3**,
56
+ retry-with-backoff, free each clone. One instance (`psf__requests-2317`) reliably hangs Docker
57
+ past timeout → known-flaky exclusion (`bench/swebench/KNOWN_FLAKY.md`). Watch for wedged containers.
58
+
59
+ ---
60
+
61
+ Verdict: this paradigm (localize + search/replace + repair + tiered escalation) tops out ~33% on
62
+ SWE-bench Lite with a cheap base. The 65–88% agentic-SOTA tier needs a **multi-step autonomous agent**
63
+ (bash, dir-navigation, long-horizon discovery) — an architecture change, not more knob-tuning.
package/README.md CHANGED
@@ -271,7 +271,9 @@ substrate is **no longer deferred** — it shipped (ADR-106→141) and now runs
271
271
  - **Polyglot model frontier** (ADR-085): 15 models × 6 languages, execution-scored;
272
272
  DeepSeek-V3 ($0.4/Mtok) tops quality-per-dollar — cheap beats frontier for code.
273
273
 
274
- ### Canonical SWE-bench Lite (real, official harness — ADR-142–146)
274
+ ### Canonical SWE-bench Lite (real, official harness — ADR-142–149)
275
+
276
+ > Full reproducible evidence: [`bench/results/RESULTS.md`](bench/results/RESULTS.md) · measured best-practices: [`LEARNINGS.md`](LEARNINGS.md) · known-flaky exclusions: [`bench/swebench/KNOWN_FLAKY.md`](bench/swebench/KNOWN_FLAKY.md)
275
277
 
276
278
  Run on the **full 300** SWE-bench Lite (test) instances, scored by the **official
277
279
  `swebench` Docker harness** — no cherry-picking, tight CIs. Solver = relevance-ranked
@@ -281,14 +283,17 @@ context + symbol-aware localization + search/replace patch, `deepseek-chat`, ~$0
281
283
  |---|---|---|---|
282
284
  | baseline (open-loop, single-shot) | 23/300 = **7.7%** | [5.2, 11.2] | 144 |
283
285
  | + 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/`.
286
+ | **+ closed-loop repair (test-feedback, ≤3)** | 46/300 = **15.3%** | **[11.7, 19.8]** | 149 |
287
+ | **+ Barbarian&Scholar hybrid (cheap+frontier tail)** | 100/300 = **33.3%** | **[28.2, 38.8]** | 148 |
288
+
289
+ The closed-loop repair loop **~doubles** the resolve-rate (7.7% 15.3%) on the *same cheap model*
290
+ (deepseek, <1¢/instance); the baseline and repair CIs are essentially disjoint (11.2 vs 11.7), so
291
+ it's a real lift, not noise. Honest framing: 15.3% is still a **cheap-model** number — leaderboard
292
+ leaders hit 65–88% on Verified using frontier models + deeper agentic loops at $1–20/instance. The
293
+ contribution is the **harness lift on a fixed cheap model**: open-loop 7.7% → closed-loop 15.3% at
294
+ near-constant cost. Localization lifted file-selection recall **44.7% → 59.7%**; the repair loop
295
+ then converts first-shot misses into fixes via test feedback. Next levers: hybrid cheap→frontier
296
+ escalation (ADR-148), local-model repair (ADR-150). Every number is reproducible under `bench/swebench/`.
292
297
 
293
298
  ## Status
294
299
 
package/dist/cli.js CHANGED
@@ -13,6 +13,7 @@
13
13
  // leaderboard + the winner's lineage. Dependency-free.
14
14
  import { resolve } from 'node:path';
15
15
  import { evolve } from './evolve.js';
16
+ import { RuvllmMutator } from './ruvllm-mutator.js';
16
17
  import { profileRepo } from './repo_profiler.js';
17
18
  import { loadSuite, makeSuite, saveSuite, verifySuite } from './bench/suite.js';
18
19
  function flag(name, fallback) {
@@ -95,7 +96,7 @@ async function main() {
95
96
  }
96
97
  if (command !== 'evolve') {
97
98
  process.stderr.write('usage: metaharness-darwin <evolve|bench> …\n' +
98
- ' evolve <repo> [--generations N] [--children N] [--concurrency N] [--seed N] [--bench <suite.json>] [--tie faster] [--selection quality-diversity|behavioral-diversity|niche-steering|clade|pareto] [--crossover] [--epistasis] [--risk-budget N] [--fdr Q] [--curriculum] [--sandbox real|mock|agent]\n' +
99
+ ' evolve <repo> [--generations N] [--children N] [--concurrency N] [--seed N] [--bench <suite.json>] [--tie faster] [--selection quality-diversity|behavioral-diversity|niche-steering|clade|pareto] [--crossover] [--epistasis] [--risk-budget N] [--fdr Q] [--curriculum] [--sandbox real|mock|agent] [--mutator deterministic|ruvllm] [--ruvllm-url URL] [--ruvllm-model M]\n' +
99
100
  ' bench create <repo> [--out <suite.json>]\n' +
100
101
  ' bench verify <suite.json>\n');
101
102
  process.exit(1);
@@ -125,6 +126,13 @@ async function main() {
125
126
  const curriculum = process.argv.includes('--curriculum');
126
127
  const sbRaw = flag('--sandbox', 'real');
127
128
  const sandboxMode = sbRaw === 'mock' || sbRaw === 'agent' ? sbRaw : 'real';
129
+ // ADR-259: pluggable mutator backend. Default = deterministic (no network, no key).
130
+ // --mutator ruvllm routes mutations to a local `ruvllm serve` endpoint (fully local,
131
+ // air-gapped, zero API cost). The OpenRouter LLM mutator stays library-only.
132
+ const mutatorRaw = flag('--mutator', 'deterministic');
133
+ const generator = mutatorRaw === 'ruvllm'
134
+ ? new RuvllmMutator({ baseUrl: flag('--ruvllm-url', '') || undefined, model: flag('--ruvllm-model', '') || undefined })
135
+ : undefined;
128
136
  const result = await evolve({
129
137
  repoRoot,
130
138
  workRoot,
@@ -143,6 +151,7 @@ async function main() {
143
151
  ...(fdrQ !== undefined ? { fdrQ } : {}),
144
152
  ...(curriculum ? { curriculum } : {}),
145
153
  ...(sandboxMode !== 'real' ? { sandboxMode } : {}),
154
+ ...(generator ? { generator } : {}),
146
155
  tieBreaker,
147
156
  selection,
148
157
  crossover,
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './templates.js';
5
5
  export * from './generator.js';
6
6
  export * from './mutator.js';
7
7
  export * from './openrouter-mutator.js';
8
+ export * from './ruvllm-mutator.js';
8
9
  export * from './phenotype.js';
9
10
  export * from './epistasis.js';
10
11
  export * from './clade.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAI5B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAI5B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -29,6 +29,7 @@ export * from './templates.js';
29
29
  export * from './generator.js';
30
30
  export * from './mutator.js';
31
31
  export * from './openrouter-mutator.js';
32
+ export * from './ruvllm-mutator.js';
32
33
  export * from './phenotype.js';
33
34
  export * from './epistasis.js';
34
35
  export * from './clade.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,EAAE;AACF,iFAAiF;AACjF,2BAA2B;AAC3B,EAAE;AACF,WAAW;AACX,yCAAyC;AACzC,yEAAyE;AACzE,wCAAwC;AACxC,iEAAiE;AACjE,oDAAoD;AACpD,iFAAiF;AACjF,8EAA8E;AAC9E,sEAAsE;AACtE,kFAAkF;AAClF,4EAA4E;AAC5E,+DAA+D;AAE/D,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,gFAAgF;AAChF,2EAA2E;AAC3E,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,EAAE;AACF,iFAAiF;AACjF,2BAA2B;AAC3B,EAAE;AACF,WAAW;AACX,yCAAyC;AACzC,yEAAyE;AACzE,wCAAwC;AACxC,iEAAiE;AACjE,oDAAoD;AACpD,iFAAiF;AACjF,8EAA8E;AAC9E,sEAAsE;AACtE,kFAAkF;AAClF,4EAA4E;AAC5E,+DAA+D;AAE/D,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAE5B,gFAAgF;AAChF,2EAA2E;AAC3E,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { CodeGenerator } from './mutator.js';
2
+ import type { MutationSurface } from './types.js';
3
+ export interface RuvllmMutatorOptions {
4
+ /** Base URL of the `ruvllm serve` endpoint. Default: http://localhost:8080 (or RUVLLM_URL). */
5
+ baseUrl?: string;
6
+ /** Model name passed in the request body. Default: 'local' (or RUVLLM_MODEL). */
7
+ model?: string;
8
+ maxTokens?: number;
9
+ temperature?: number;
10
+ /** Request timeout in ms. Default: 30_000. */
11
+ timeoutMs?: number;
12
+ }
13
+ export declare class RuvllmMutator implements CodeGenerator {
14
+ private readonly baseUrl;
15
+ private readonly model;
16
+ private readonly maxTokens;
17
+ private readonly temperature;
18
+ private readonly timeoutMs;
19
+ constructor(opts?: RuvllmMutatorOptions);
20
+ generateMutation(input: {
21
+ parentCode: string;
22
+ surface: MutationSurface;
23
+ repoSummary: string;
24
+ parentScore: number;
25
+ failedTraces: string[];
26
+ nonce?: number;
27
+ }): Promise<{
28
+ code: string;
29
+ summary: string;
30
+ }>;
31
+ }
32
+ //# sourceMappingURL=ruvllm-mutator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruvllm-mutator.d.ts","sourceRoot":"","sources":["../src/ruvllm-mutator.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,GAAE,oBAAyB;IAQrC,gBAAgB,CAAC,KAAK,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,eAAe,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAuC/C"}
@@ -0,0 +1,73 @@
1
+ // SPDX-License-Identifier: MIT
2
+ //
3
+ // RuvllmMutator — local ruvllm server backend for Darwin Mode (ADR-259).
4
+ //
5
+ // Implements the `CodeGenerator` interface against a local `ruvllm serve` endpoint
6
+ // (OpenAI-compatible `POST /v1/chat/completions`). This makes evolution **fully local,
7
+ // air-gapped, and zero-API-cost** — no `OPENROUTER_API_KEY`, no public network. On-thesis
8
+ // for the "runs anywhere / cost optimizer" positioning.
9
+ //
10
+ // NOTE on value (honest, per ADR-087): the mutator is NOT the quality lever — the
11
+ // deterministic and frontier-LLM mutators both hit the 0.985 scorer ceiling. So
12
+ // RuvllmMutator's benefit is *operational* (local/free/private), not higher scores.
13
+ //
14
+ // Zero runtime dependencies; uses Node's built-in fetch (Node ≥ 18). Falls back to a
15
+ // safe no-op (returns the parent code unchanged) if the server is unreachable — the
16
+ // same contract as OpenRouterMutator, so a down server never breaks the evolution loop.
17
+ /** Strip a single ```fenced``` block if the model wrapped its output. */
18
+ function unfence(text) {
19
+ const m = text.match(/```(?:[a-zA-Z0-9]+)?\n([\s\S]*?)\n```/);
20
+ return (m ? m[1] : text).trim() + '\n';
21
+ }
22
+ export class RuvllmMutator {
23
+ baseUrl;
24
+ model;
25
+ maxTokens;
26
+ temperature;
27
+ timeoutMs;
28
+ constructor(opts = {}) {
29
+ this.baseUrl = (opts.baseUrl ?? process.env.RUVLLM_URL ?? 'http://localhost:8080').replace(/\/$/, '');
30
+ this.model = opts.model ?? process.env.RUVLLM_MODEL ?? 'local';
31
+ this.maxTokens = opts.maxTokens ?? 2000;
32
+ this.temperature = opts.temperature ?? 0.4;
33
+ this.timeoutMs = opts.timeoutMs ?? 30_000;
34
+ }
35
+ async generateMutation(input) {
36
+ const sys = 'You improve ONE file of an AI agent harness. Output ONLY the full replacement file — ' +
37
+ 'no prose, no fences. HARD RULES: keep every exported name and signature identical; ' +
38
+ 'introduce NO new capabilities, imports, network, filesystem, shell, or env access; ' +
39
+ 'no new dependencies; pure refactor/tuning only. Make a small, plausibly score-improving ' +
40
+ `change to the "${input.surface}" surface.`;
41
+ const user = `Surface: ${input.surface}\nParent score: ${input.parentScore}\n` +
42
+ (input.repoSummary ? `Repo: ${input.repoSummary}\n` : '') +
43
+ (input.failedTraces.length ? `Recent failures:\n${input.failedTraces.slice(0, 5).join('\n')}\n` : '') +
44
+ `\n--- current file ---\n${input.parentCode}\n--- end ---\n` +
45
+ 'Return the improved full file.';
46
+ let res;
47
+ try {
48
+ const controller = new AbortController();
49
+ const tid = setTimeout(() => controller.abort(), this.timeoutMs);
50
+ res = await fetch(`${this.baseUrl}/v1/chat/completions`, {
51
+ method: 'POST',
52
+ headers: { 'Content-Type': 'application/json' },
53
+ body: JSON.stringify({
54
+ model: this.model,
55
+ messages: [{ role: 'system', content: sys }, { role: 'user', content: user }],
56
+ max_tokens: this.maxTokens,
57
+ temperature: this.temperature,
58
+ }),
59
+ signal: controller.signal,
60
+ });
61
+ clearTimeout(tid);
62
+ }
63
+ catch (e) {
64
+ return { code: input.parentCode, summary: `ruvllm:${this.baseUrl} unreachable (${e.message}) — no-op` };
65
+ }
66
+ const j = (await res.json());
67
+ const content = j.choices?.[0]?.message?.content;
68
+ if (!content)
69
+ return { code: input.parentCode, summary: `ruvllm:${this.model} no content — no-op` };
70
+ return { code: unfence(content), summary: `ruvllm:${this.model} regenerated ${input.surface}` };
71
+ }
72
+ }
73
+ //# sourceMappingURL=ruvllm-mutator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruvllm-mutator.js","sourceRoot":"","sources":["../src/ruvllm-mutator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@metaharness/darwin",
3
- "version": "0.2.1",
4
- "description": "An LLM supercharger and cost optimizer: keep your model frozen and evolve the harness around it so a cheap model performs like an expensive one measurably better, far cheaper. Mutate→sandbox→score→archive; promote only safe, measured wins. Validated on real SWE-bench Lite (~$0.01/instance). Dependency-free (Node built-ins).",
3
+ "version": "0.2.3",
4
+ "description": "An LLM supercharger and cost optimizer: freeze your model, evolve the harness around it. Measured on full SWE-bench Lite (300, official swebench Docker): open-loop 7.7% -> +repair 15.3% -> +Barbarian&Scholar hybrid 33.3%, at ~$0.01-$0.34/instance (vs $1-20 for frontier agents). Mutate->sandbox->score->archive. Dependency-free (Node built-ins).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -18,7 +18,9 @@
18
18
  "dist/**",
19
19
  "README.md",
20
20
  "SECURITY.md",
21
- "LICENSE"
21
+ "LICENSE",
22
+ "CHANGELOG.md",
23
+ "LEARNINGS.md"
22
24
  ],
23
25
  "scripts": {
24
26
  "build": "tsc",