@metaharness/darwin 0.2.0 → 0.2.2

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,28 @@
1
+ # Changelog — @metaharness/darwin
2
+
3
+ All notable changes to this package. Dates UTC.
4
+
5
+ ## 0.2.2 — 2026-06-19
6
+
7
+ - **Docs: full SWE-bench Lite (300) evidence ladder** now in the description + README, all official `swebench` Docker harness, batch-verified:
8
+ - open-loop **7.7%** [5.2, 11.2] (ADR-144)
9
+ - + localization **8.0%** [5.4, 11.6] (ADR-146)
10
+ - + closed-loop repair **15.3%** [11.7, 19.8] (ADR-149)
11
+ - + Barbarian&Scholar hybrid (cheap base + frontier-tail escalation) **33.3%** [28.2, 38.8] (ADR-148)
12
+ - Blended cost ~$0.01/instance (cheap) → ~$0.34/instance (hybrid) vs $1–20/instance for frontier agents.
13
+ - README now links `bench/results/RESULTS.md` (the full reproducible evidence) for npm-only readers.
14
+ - `RuvllmMutator` (local/$0 air-gapped mutator, ADR-259) ships in `dist/`.
15
+ - Added `bench/swebench/KNOWN_FLAKY.md` (standing `psf__requests-2317` Docker-hang exclusion note).
16
+
17
+ ## 0.2.1 — 2026-06-19
18
+
19
+ - Metadata: repositioned as "an LLM supercharger and cost optimizer"; keywords/description.
20
+
21
+ ## 0.2.0 — 2026-06-18
22
+
23
+ - Integrated into the `metaharness` scaffolder (`npm run evolve`, ADR-147).
24
+ - Evolutionary stack (mutation + crossover + diverse selection + graded promotion) over a frozen core.
25
+
26
+ ## 0.1.x — 2026-06
27
+
28
+ - Initial release: frozen-model / evolving-harness over 7 mutation surfaces; deterministic mutator default; `validateGeneratedCode` safety gate; pluggable `CodeGenerator`.
package/README.md CHANGED
@@ -1,17 +1,26 @@
1
1
  # @metaharness/darwin
2
2
 
3
- > Darwin Mode **the model is frozen; the harness evolves.**
4
-
5
- Bounded, empirical, population-based self-improvement of an agent harness
6
- (ADR-070…075). "Self-improving agents" is widely misread as "the model trains
7
- itself." Darwin Mode ships the practical version: an agent **modifies its own
8
- harness**, runs benchmarks in a sandbox, keeps the variants that *measurably*
9
- improve, and builds an **archive of successful descendants**. The foundation
10
- model never changes what evolves is the operating system around it (planner,
11
- context builder, reviewer, retry/tool/memory/score policy). This follows the
12
- **Darwin Gödel Machine** lineage: iteratively mutate the source of a coding
13
- agent, then *empirically validate* each variant — no weight updates, just a
14
- population, a benchmark, and an archive.
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
@@ -244,9 +253,10 @@ By default the sandbox runs the **repo's test command**, which is independent of
244
253
  the harness surfaces — so the behavioural manifold is degenerate (measured:
245
254
  `nicheEntropy = 0`, ADR-099). `sandboxMode: 'mock'` (ADR-102) instead runs a
246
255
  **deterministic surface-driven agent loop**, so a variant's traces depend on its
247
- surface content and the manifold comes alive. The full real-agent substrate
248
- (surfaces driving an LLM on real coding tasks SWE-bench) is **ADR-101/098,
249
- deferred**.
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).
250
260
 
251
261
  ### Validated results (real, reproducible — see `bench/results/`)
252
262
 
@@ -261,15 +271,42 @@ deferred**.
261
271
  - **Polyglot model frontier** (ADR-085): 15 models × 6 languages, execution-scored;
262
272
  DeepSeek-V3 ($0.4/Mtok) tops quality-per-dollar — cheap beats frontier for code.
263
273
 
274
+ ### Canonical SWE-bench Lite (real, official harness — ADR-142–149)
275
+
276
+ > Full reproducible evidence + per-run provenance: [`bench/results/RESULTS.md`](bench/results/RESULTS.md) · known-flaky exclusions: [`bench/swebench/KNOWN_FLAKY.md`](bench/swebench/KNOWN_FLAKY.md)
277
+
278
+ Run on the **full 300** SWE-bench Lite (test) instances, scored by the **official
279
+ `swebench` Docker harness** — no cherry-picking, tight CIs. Solver = relevance-ranked
280
+ context + symbol-aware localization + search/replace patch, `deepseek-chat`, ~$0.01/instance.
281
+
282
+ | config | resolved | Wilson 95% CI | ADR |
283
+ |---|---|---|---|
284
+ | baseline (open-loop, single-shot) | 23/300 = **7.7%** | [5.2, 11.2] | 144 |
285
+ | + LLM localization | 24/300 = **8.0%** | [5.4, 11.6] | 146 |
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/`.
297
+
264
298
  ## Status
265
299
 
266
- **Working prototype, empirically validated (mock substrate).** The
267
- `DeterministicMutator` is seeded and signature-preserving; the `OpenRouterMutator`
268
- (ADR-085) is the production LLM `CodeGenerator`, behind the *same*
269
- `validateGeneratedCode` gate. The safety boundary, scorer, archive, and bench
270
- layer are kernel code. The frontier is **Tier-2 real-agent execution**
271
- (ADR-101/098): surfaces driving a real LLM on real tasks, which turns the
272
- validated mock instrument into real-world SWE results.
300
+ **Working, empirically validated on both the mock substrate *and* canonical
301
+ SWE-bench Lite.** The `DeterministicMutator` is seeded and signature-preserving;
302
+ the `OpenRouterMutator` (ADR-085) is the production LLM `CodeGenerator`, behind the
303
+ *same* `validateGeneratedCode` gate. The safety boundary, scorer, archive, and bench
304
+ layer are kernel code. The real-LLM-on-real-code frontier (once deferred) is now
305
+ **measured**: a reproducible **7.7% [5.2–11.2%]** open-loop baseline on the full
306
+ SWE-bench Lite (ADR-144), with localization (146), the repair loop (149), and a
307
+ hybrid cheap→frontier escalation (148) as the active levers. Darwin Mode also ships
308
+ **integrated into the `metaharness` scaffolder** — `npx metaharness <name>` produces
309
+ a harness with `npm run evolve` out of the box (ADR-147).
273
310
 
274
311
  ## License
275
312
 
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.0",
4
- "description": "Darwin Mode (ADR-070…075) bounded, empirical, population-based self-improvement of an agent harness. Generate child harness variants, sandbox-score them, archive the lineage, and promote only measured, safe wins. The model is frozen; the harness evolves. Dependency-free (Node built-ins only).",
3
+ "version": "0.2.2",
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,8 @@
18
18
  "dist/**",
19
19
  "README.md",
20
20
  "SECURITY.md",
21
- "LICENSE"
21
+ "LICENSE",
22
+ "CHANGELOG.md"
22
23
  ],
23
24
  "scripts": {
24
25
  "build": "tsc",
@@ -26,15 +27,18 @@
26
27
  "lint": "tsc --noEmit"
27
28
  },
28
29
  "keywords": [
30
+ "llm",
31
+ "cost-optimization",
32
+ "llm-optimizer",
33
+ "cheap-llm",
34
+ "compute-arbitrage",
29
35
  "agent-harness",
30
- "darwin-mode",
31
36
  "self-improvement",
32
37
  "evolutionary-search",
38
+ "swe-bench",
33
39
  "metaharness",
34
- "dgm",
35
- "archive",
36
- "sandbox",
37
- "benchmark"
40
+ "darwin-mode",
41
+ "sandbox"
38
42
  ],
39
43
  "author": "rUv <ruv@ruv.net>",
40
44
  "license": "MIT",