Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness by drewstone · Pull Request #153 · tangle-network/agent-runtime · GitHub
Skip to content

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness - #153

Merged
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks
Jun 4, 2026
Merged

feat(bench): wire real benchmark adapters — aec-bench, commit0, programbench, appworld + shared harness#153
drewstone merged 1 commit into
mainfrom
feat/wire-benchmarks

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

What

Four real BenchmarkAdapters, built by reusing the contract + one shared harness — no duplication.

  • benchmarks/_harness.ts — the shared code-bench harness extracted from swe-bench/terminal-bench: stage artifact → run the bench's own evaluator in a .venv/Docker subprocess → parse the JSON report → {resolved, score}, plus runVenvScriptStdin. swe-bench + terminal-bench refactored onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
  • aec-benchREAL, runnable with zero extra deps. Judge = the task's own tests/verify.py over python3 stdlib (recompute closed-form ground truth, per-field math.isclosegraded partial credit). Deterministic, correctable middle band — the open-gate candidate domain. Real GitHub task tree + committed fixtures; goldArtifact returns the real golden_pass.md (offline verify-judge works).
  • commit0 / programbench — real loadTasks (HF + *_FIXTURES=1 offline) + judge via the official harness; fail loud (pip install … + Docker) — never a fabricated score.
  • appworld — finished the stub: loadTasks enumerates the live engine, judge = AppWorld's own world.evaluate(); fail loud, no offline fixture by honest design (task data exists only after appworld download data).

Registered in bothADAPTERS maps (run.ts + rsi.ts); offline fixture tests for all four; fixed two real execFile stdin-hang bugs (programbench, appworld) by routing through the shared stdin runner; HARNESS.md adapter section rewritten to the honest state.

Verified

cd bench && tsc --noEmit → 0 · 19/19 fixture tests (tsx --test) · repo lint clean (220 files). aec-bench verified end-to-end offline: gold → {resolved:true, score:1} with per-field credit; empty → {resolved:false, score:0}.

Not in scope (honest)

The code benches (commit0/programbench/swe-bench) need Docker; appworld needs its pip env + download data. Adapters are wired + fixture-tested, runnable when those deps are present (preflight fails loud with the exact fix). tau2-bench (multi-turn dual-control conversation) is a different harness regime — deliberately deferred.

Why aec-bench matters beyond "another adapter"

It's the first wired domain that is deterministic + graded + no-LLM-judge + no-Docker → a clean, cheap, test-retest-zero instrument for the open gate (diverse@k vs blind@k under a deployable selector), and the tie-break domain from architecture-alternatives.md.

…ambench, appworld
Ship four real BenchmarkAdapters by REUSING the contract + one shared harness,
no duplication:
- benchmarks/_harness.ts: shared code-bench harness (stage artifact -> run the
bench's own evaluator in a .venv/Docker subprocess -> parse JSON report ->
{resolved,score}) + runVenvScriptStdin. swe-bench + terminal-bench refactored
onto it (behavior-identical; no per-adapter process/venv/temp plumbing left).
- aec-bench: REAL, runnable with ZERO extra deps — judge = the task's own
tests/verify.py over python3 stdlib (recompute closed-form ground truth,
per-field math.isclose -> graded partial credit). Deterministic, correctable
middle band: the open-gate candidate domain. Real GitHub task tree + fixtures.
- commit0 / programbench: real loadTasks (HF + *_FIXTURES offline) + judge via
the official harness; fail loud (pip + Docker), never a fabricated score.
- appworld: finished the stub — loadTasks via the engine, judge = world.evaluate;
fail loud (no offline fixture by honest design).
Registered in both ADAPTERS maps (run.ts + rsi.ts); offline fixture tests for
all four; fixed two execFile stdin-hang bugs (programbench, appworld).
Verified: bench tsc 0, 19/19 fixture tests, lint clean.
@drewstone
drewstone merged commit ef67004 into mainJun 4, 2026
1 check passed
@drewstone
drewstone deleted the feat/wire-benchmarks branch June 4, 2026 14:51
drewstone added a commit that referenced this pull request Jun 6, 2026
Cuts the 58-commit backlog on main into a published release. Headline surface:
- runToolLoop / streamToolLoop — bounded turn-level tool-dispatch loop (#137)
- RSI agent tree: recursive Agent.act, Supervisor keystone, runProgram, the
adaptive-driver channel (#139/#151/#165)
- optimization API collapsed onto agent-eval selfImprove; the runtime keeps the
CODE-surface ImprovementDriver you pass as driver (#172)
- deployable benchmark adapters: AppWorld, commit0, aec-bench, EnterpriseOps-Gym;
runBenchmarks over one ADAPTERS registry (#153/#156/#157)
- agent-eval floor raised to >=0.83.0 (#175)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@drewstone