@metaharness/darwin 0.2.1 → 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 +28 -0
- package/README.md +14 -9
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ruvllm-mutator.d.ts +32 -0
- package/dist/ruvllm-mutator.d.ts.map +1 -0
- package/dist/ruvllm-mutator.js +73 -0
- package/dist/ruvllm-mutator.js.map +1 -0
- package/package.json +4 -3
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
|
@@ -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–
|
|
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)
|
|
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
|
-
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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.
|
|
4
|
-
"description": "An LLM supercharger and cost optimizer:
|
|
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",
|