@tangle-network/starter-foundry 0.7.0 → 0.7.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/corpus/held-out-validation.json +2 -2
- package/dist/eval/scaffold-bridge.d.ts +99 -2
- package/dist/eval/scaffold-bridge.js +252 -59
- package/dist/eval/scaffold-bridge.js.map +1 -1
- package/dist/lib/compose.js +41 -2
- package/dist/lib/compose.js.map +1 -1
- package/dist/lib/promoter-gates.d.ts +114 -0
- package/dist/lib/promoter-gates.js +426 -0
- package/dist/lib/promoter-gates.js.map +1 -0
- package/dist/lib/prompt-e2e.d.ts +1 -0
- package/dist/lib/prompt-e2e.js +20 -6
- package/dist/lib/prompt-e2e.js.map +1 -1
- package/dist/lib/template-quality.js +20 -4
- package/dist/lib/template-quality.js.map +1 -1
- package/package.json +21 -19
- package/registry/families/fraud-ops-console/files/src/main.tsx +11 -8
- package/registry/families/fraud-ops-console/manifest.json +13 -17
- package/registry/families/kyc-onboarding/files/index.html +1 -1
- package/registry/families/kyc-onboarding/files/vite.config.ts +0 -1
- package/registry/families/kyc-onboarding/manifest.json +12 -12
- package/registry/families/polymarket-portfolio-hedging/files/src/main.tsx +11 -8
- package/registry/families/polymarket-portfolio-hedging/manifest.json +7 -6
- package/registry/layers/capability/agent-eval/files/.github/workflows/eval.yml +60 -0
- package/registry/layers/capability/agent-eval/files/scripts/eval-baseline.mjs +87 -0
- package/registry/layers/capability/agent-eval/files/tests/eval/README.md +76 -0
- package/registry/layers/capability/agent-eval/files/tests/eval/judge.mjs +35 -0
- package/registry/layers/capability/agent-eval/files/tests/eval/run-eval.mjs +204 -0
- package/registry/layers/capability/agent-eval/files/tests/eval/scenarios.json +47 -0
- package/registry/layers/capability/agent-eval/manifest.json +73 -0
- package/registry/layers/framework/forge-foundation/files/foundry.toml +14 -0
- package/registry/layers/framework/tangle-blueprint/files/foundry.toml +8 -0
- /package/registry/families/kyc-onboarding/files/src/{main.ts → main.tsx} +0 -0
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"complexity": "medium",
|
|
42
42
|
"partner": null,
|
|
43
43
|
"prompt": "Build a RISC Zero prover service that generates ZK proofs for on-chain verification.",
|
|
44
|
-
"expected": { "kind": "starter", "family": "
|
|
44
|
+
"expected": { "kind": "starter", "family": "risczero-zkvm" }
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"id": "ho-eigenlayer-avs",
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
"complexity": "medium",
|
|
296
296
|
"partner": "tangle",
|
|
297
297
|
"prompt": "Build a Tangle Blueprint for decentralized storage with FROST threshold signing.",
|
|
298
|
-
"expected": { "kind": "
|
|
298
|
+
"expected": { "kind": "workspace", "family": "tangle-blueprint" }
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"id": "ho-rust-backend",
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import type { HarnessConfig, JudgeFn, WorkspaceAssertion, WorkspaceSnapshot, SandboxDriver } from '@tangle-network/agent-eval';
|
|
2
2
|
import type { ComposeSpec, ResolvedComponents } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Per-language harness config table. Single source of truth — the
|
|
5
|
+
* promoters (scripts/promote-family-proposal.mjs,
|
|
6
|
+
* scripts/promote-capability-proposal.mjs) import this table rather
|
|
7
|
+
* than redefining it. Gen 8b shipped when only two of three copies
|
|
8
|
+
* got the strict-gate fix; centralizing removes the drift surface.
|
|
9
|
+
*
|
|
10
|
+
* Keys are `taxonomy.language` values. New languages must be added
|
|
11
|
+
* here — `makeHarnessConfig` THROWS on unknown languages rather than
|
|
12
|
+
* silently returning a no-op (which was the muffled-gate shape where
|
|
13
|
+
* a Zig family silent-passed the build phase).
|
|
14
|
+
*
|
|
15
|
+
* `muffle-ok:` annotations mark places where a non-strict command
|
|
16
|
+
* is intentional and documented.
|
|
17
|
+
*/
|
|
18
|
+
export declare const HARNESS_CONFIGS: Record<string, HarnessConfig>;
|
|
3
19
|
/**
|
|
4
20
|
* Build the harness config for a family based on its taxonomy.language.
|
|
5
21
|
* The resolved setup/test commands run inside the composed tempdir, so
|
|
6
22
|
* the agent-eval SandboxHarness can subprocess-invoke them.
|
|
7
23
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
24
|
+
* Throws on unknown language — the previous fallback (`testCommand:
|
|
25
|
+
* 'true'`) silent-passed any family whose language wasn't in the
|
|
26
|
+
* dispatch, which is the muffled-gate shape Gen 9 closes. Callers
|
|
27
|
+
* that want to tolerate unknown languages must handle the throw
|
|
28
|
+
* explicitly.
|
|
10
29
|
*/
|
|
11
30
|
export declare function makeHarnessConfig(components: ResolvedComponents): HarnessConfig;
|
|
12
31
|
/**
|
|
@@ -92,9 +111,87 @@ export interface ScaffoldMetaVerdict {
|
|
|
92
111
|
}>;
|
|
93
112
|
verdict: 'pass' | 'fail' | 'borderline';
|
|
94
113
|
rationale?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Token usage + model for cost tracking. Populated on LLM-scored
|
|
116
|
+
* verdicts; absent when the compile-gate short-circuit fires (no LLM
|
|
117
|
+
* spend). Consumers record into agent-eval's CostTracker so
|
|
118
|
+
* cost-summary.json actually populates — pre-R4 the tracker was
|
|
119
|
+
* created but never recorded to, producing an empty `{}` summary.
|
|
120
|
+
*/
|
|
121
|
+
usage?: {
|
|
122
|
+
inputTokens: number;
|
|
123
|
+
outputTokens: number;
|
|
124
|
+
model: string;
|
|
125
|
+
};
|
|
95
126
|
}
|
|
96
127
|
export declare function invokeMetaJudge(args: {
|
|
97
128
|
userPrompt: string;
|
|
98
129
|
composedSpec: ComposeSpec;
|
|
99
130
|
snapshot: WorkspaceSnapshot;
|
|
131
|
+
/**
|
|
132
|
+
* Optional outcome of the upstream build/typecheck phase. When present and
|
|
133
|
+
* `passed === false`, the judge short-circuits to verdict='fail' WITHOUT
|
|
134
|
+
* spending an LLM call — the scaffold cannot be useful if it doesn't
|
|
135
|
+
* compile, regardless of how the rubric scores its layout. Carries the
|
|
136
|
+
* failing phase + stderr tail into the issues array so reviewers see the
|
|
137
|
+
* concrete failure (e.g. "typecheck: TS2339: createRoot does not exist").
|
|
138
|
+
*
|
|
139
|
+
* Gen 8 closure: PR #51 shipped 3 bugs (kyc-onboarding .ts JSX,
|
|
140
|
+
* fraud-ops/polymarket React 17 imports) that all passed the existing
|
|
141
|
+
* fidelity judge at 0.82-0.85 because the LLM judge cannot reliably
|
|
142
|
+
* detect compile-time defects from text. The build gate that should
|
|
143
|
+
* have caught them was muffled by `|| true`. This parameter lets the
|
|
144
|
+
* judge hard-gate on compile success when the caller already ran the
|
|
145
|
+
* build (the promoter does), without re-running the build itself.
|
|
146
|
+
*/
|
|
147
|
+
buildOutcome?: {
|
|
148
|
+
passed: boolean;
|
|
149
|
+
phase?: string;
|
|
150
|
+
stderr?: string;
|
|
151
|
+
stdout?: string;
|
|
152
|
+
};
|
|
100
153
|
}): Promise<ScaffoldMetaVerdict>;
|
|
154
|
+
/**
|
|
155
|
+
* Verdict shape from a fleet of mechanical judges (compiler, test,
|
|
156
|
+
* linter, security). Each judge runs the appropriate sandbox command
|
|
157
|
+
* and emits a per-judge pass/fail. `unanimousPass` requires ALL judges
|
|
158
|
+
* to pass; this is the new bar for "scaffold survived orthogonal
|
|
159
|
+
* validation" and is harder to Goodhart than a single LLM judge's
|
|
160
|
+
* aggregated overall score.
|
|
161
|
+
*
|
|
162
|
+
* Gen 10: this complements `invokeMetaJudge`, doesn't replace it. The
|
|
163
|
+
* fleet covers mechanical correctness; the meta judge covers subjective
|
|
164
|
+
* dimensions (idiomatic, productionReady) that mechanical gates can't
|
|
165
|
+
* see. Consumers should run both and combine.
|
|
166
|
+
*/
|
|
167
|
+
export interface FleetVerdict {
|
|
168
|
+
unanimousPass: boolean;
|
|
169
|
+
byJudge: Array<{
|
|
170
|
+
id: string;
|
|
171
|
+
kind: 'compiler' | 'test' | 'linter' | 'security';
|
|
172
|
+
passed: boolean;
|
|
173
|
+
score: number;
|
|
174
|
+
summary: string;
|
|
175
|
+
durationMs: number;
|
|
176
|
+
}>;
|
|
177
|
+
/** Mean of per-judge scores. 1.0 only when all pass. */
|
|
178
|
+
overall: number;
|
|
179
|
+
/** Total wall-time across the fleet (parallel; max of per-judge wallMs). */
|
|
180
|
+
wallMs: number;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Invoke the judge fleet against a composed scaffold's harness config.
|
|
184
|
+
*
|
|
185
|
+
* Returns a `FleetVerdict` aggregating per-judge results. Unanimous
|
|
186
|
+
* pass is the new strictness bar — replaces "single LLM judge said
|
|
187
|
+
* 0.85" as the validation gate.
|
|
188
|
+
*
|
|
189
|
+
* Reuses `BuilderSession`'s harness machinery for sandbox isolation;
|
|
190
|
+
* each judge runs in its own subprocess with the language-specific
|
|
191
|
+
* command. Skipped judges (no command for the language) score
|
|
192
|
+
* honest-null and are excluded from `unanimousPass` math.
|
|
193
|
+
*/
|
|
194
|
+
export declare function invokeJudgeFleet(args: {
|
|
195
|
+
components: ResolvedComponents;
|
|
196
|
+
harness: HarnessConfig;
|
|
197
|
+
}): Promise<FleetVerdict>;
|
|
@@ -21,73 +21,92 @@ import { fileExists } from '@tangle-network/agent-eval';
|
|
|
21
21
|
// ──────────────────────────────────────────────────────────────────
|
|
22
22
|
// Per-family harness dispatch
|
|
23
23
|
// ──────────────────────────────────────────────────────────────────
|
|
24
|
+
/**
|
|
25
|
+
* Per-language harness config table. Single source of truth — the
|
|
26
|
+
* promoters (scripts/promote-family-proposal.mjs,
|
|
27
|
+
* scripts/promote-capability-proposal.mjs) import this table rather
|
|
28
|
+
* than redefining it. Gen 8b shipped when only two of three copies
|
|
29
|
+
* got the strict-gate fix; centralizing removes the drift surface.
|
|
30
|
+
*
|
|
31
|
+
* Keys are `taxonomy.language` values. New languages must be added
|
|
32
|
+
* here — `makeHarnessConfig` THROWS on unknown languages rather than
|
|
33
|
+
* silently returning a no-op (which was the muffled-gate shape where
|
|
34
|
+
* a Zig family silent-passed the build phase).
|
|
35
|
+
*
|
|
36
|
+
* `muffle-ok:` annotations mark places where a non-strict command
|
|
37
|
+
* is intentional and documented.
|
|
38
|
+
*/
|
|
39
|
+
export const HARNESS_CONFIGS = {
|
|
40
|
+
typescript: {
|
|
41
|
+
setupCommand: 'pnpm install --prefer-offline',
|
|
42
|
+
// Strict: tsc --noEmit fails loud on type errors. The previous
|
|
43
|
+
// `pnpm run validate || pnpm run build || true` swallowed exit
|
|
44
|
+
// codes and silent-passed broken React 17 / .ts-JSX scaffolds —
|
|
45
|
+
// the Gen 8 Goodhart bug that triggered the compile-gate work.
|
|
46
|
+
testCommand: 'pnpm exec tsc --noEmit',
|
|
47
|
+
timeoutMs: 180_000,
|
|
48
|
+
},
|
|
49
|
+
javascript: {
|
|
50
|
+
setupCommand: 'pnpm install --prefer-offline',
|
|
51
|
+
// No tsc for JS; fall back to the build script. If a family lacks
|
|
52
|
+
// a build script it must declare a validationCheck instead.
|
|
53
|
+
testCommand: 'pnpm run build',
|
|
54
|
+
timeoutMs: 180_000,
|
|
55
|
+
},
|
|
56
|
+
rust: {
|
|
57
|
+
setupCommand: 'cargo fetch',
|
|
58
|
+
// muffle-ok: `|| cargo check` is a narrower-scope retry for
|
|
59
|
+
// non-workspace crates, not a pass-through. Both branches still
|
|
60
|
+
// fail-loud on type errors.
|
|
61
|
+
testCommand: 'cargo check --workspace || cargo check',
|
|
62
|
+
timeoutMs: 300_000,
|
|
63
|
+
},
|
|
64
|
+
go: {
|
|
65
|
+
setupCommand: 'go mod tidy',
|
|
66
|
+
testCommand: 'go build ./... && go vet ./...',
|
|
67
|
+
timeoutMs: 180_000,
|
|
68
|
+
},
|
|
69
|
+
python: {
|
|
70
|
+
// muffle-ok: setup is best-effort — if requirements.txt is
|
|
71
|
+
// absent, skip install. The testCommand (compileall) still
|
|
72
|
+
// fail-louds on syntax errors regardless of install outcome.
|
|
73
|
+
setupCommand: '[ -f requirements.txt ] && pip install -r requirements.txt || true', // muffle-ok: best-effort install; compileall is the real gate
|
|
74
|
+
testCommand: 'python -m compileall -q .',
|
|
75
|
+
timeoutMs: 120_000,
|
|
76
|
+
},
|
|
77
|
+
solidity: {
|
|
78
|
+
// muffle-ok: forge install is best-effort; if deps are vendored
|
|
79
|
+
// it may not be needed. `forge build` is the real gate.
|
|
80
|
+
setupCommand: 'forge install --no-git || true', // muffle-ok: setup is best-effort; forge build is the real gate
|
|
81
|
+
testCommand: 'forge build',
|
|
82
|
+
timeoutMs: 180_000,
|
|
83
|
+
},
|
|
84
|
+
move: {
|
|
85
|
+
setupCommand: '',
|
|
86
|
+
testCommand: 'aptos move compile --dev',
|
|
87
|
+
timeoutMs: 300_000,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
24
90
|
/**
|
|
25
91
|
* Build the harness config for a family based on its taxonomy.language.
|
|
26
92
|
* The resolved setup/test commands run inside the composed tempdir, so
|
|
27
93
|
* the agent-eval SandboxHarness can subprocess-invoke them.
|
|
28
94
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
95
|
+
* Throws on unknown language — the previous fallback (`testCommand:
|
|
96
|
+
* 'true'`) silent-passed any family whose language wasn't in the
|
|
97
|
+
* dispatch, which is the muffled-gate shape Gen 9 closes. Callers
|
|
98
|
+
* that want to tolerate unknown languages must handle the throw
|
|
99
|
+
* explicitly.
|
|
31
100
|
*/
|
|
32
101
|
export function makeHarnessConfig(components) {
|
|
33
102
|
const language = components.family.taxonomy?.language ?? 'unknown';
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// composed scaffolds don't carry a pnpm-lock.yaml; fresh install.
|
|
40
|
-
return {
|
|
41
|
-
setupCommand: 'pnpm install --prefer-offline',
|
|
42
|
-
testCommand: surface === 'contracts'
|
|
43
|
-
? 'pnpm run validate || pnpm run build || true'
|
|
44
|
-
: 'pnpm run validate || pnpm run build || true',
|
|
45
|
-
timeoutMs: 180_000,
|
|
46
|
-
};
|
|
47
|
-
case 'rust':
|
|
48
|
-
// Cargo workspace handling — `cargo check` is far cheaper than
|
|
49
|
-
// `cargo build --release` and catches the same class of errors
|
|
50
|
-
// (resolve + typecheck). Users running real builds can override.
|
|
51
|
-
return {
|
|
52
|
-
setupCommand: 'cargo fetch',
|
|
53
|
-
testCommand: 'cargo check --workspace || cargo check',
|
|
54
|
-
timeoutMs: 300_000,
|
|
55
|
-
};
|
|
56
|
-
case 'go':
|
|
57
|
-
return {
|
|
58
|
-
setupCommand: 'go mod tidy',
|
|
59
|
-
testCommand: 'go build ./... && go vet ./...',
|
|
60
|
-
timeoutMs: 180_000,
|
|
61
|
-
};
|
|
62
|
-
case 'python':
|
|
63
|
-
return {
|
|
64
|
-
// pip install -e would need a venv; most python starters ship a
|
|
65
|
-
// requirements.txt or pyproject.toml. Use a light import smoke.
|
|
66
|
-
setupCommand: '[ -f requirements.txt ] && pip install -r requirements.txt || true',
|
|
67
|
-
testCommand: 'python -m compileall -q .',
|
|
68
|
-
timeoutMs: 120_000,
|
|
69
|
-
};
|
|
70
|
-
case 'solidity':
|
|
71
|
-
return {
|
|
72
|
-
setupCommand: 'forge install --no-git || true',
|
|
73
|
-
testCommand: 'forge build',
|
|
74
|
-
timeoutMs: 180_000,
|
|
75
|
-
};
|
|
76
|
-
case 'move':
|
|
77
|
-
return {
|
|
78
|
-
setupCommand: '',
|
|
79
|
-
testCommand: 'aptos move compile --dev',
|
|
80
|
-
timeoutMs: 300_000,
|
|
81
|
-
};
|
|
82
|
-
default:
|
|
83
|
-
// Unknown language — run only the family's `validate-*` script if
|
|
84
|
-
// present. Never block the eval; return a no-op test.
|
|
85
|
-
return {
|
|
86
|
-
setupCommand: '',
|
|
87
|
-
testCommand: 'true',
|
|
88
|
-
timeoutMs: 60_000,
|
|
89
|
-
};
|
|
103
|
+
const config = HARNESS_CONFIGS[language];
|
|
104
|
+
if (!config) {
|
|
105
|
+
throw new Error(`makeHarnessConfig: unsupported taxonomy.language '${language}'. ` +
|
|
106
|
+
`Add it to HARNESS_CONFIGS in src/eval/scaffold-bridge.ts with a ` +
|
|
107
|
+
`strict (fail-loud) testCommand before composing a scaffold for it.`);
|
|
90
108
|
}
|
|
109
|
+
return config;
|
|
91
110
|
}
|
|
92
111
|
// ──────────────────────────────────────────────────────────────────
|
|
93
112
|
// Workspace assertions — manifest.files → real files on disk
|
|
@@ -348,7 +367,15 @@ export async function prepareScaffoldForEval(args) {
|
|
|
348
367
|
throw new Error(`compose failed (exit ${res.status}): ${res.stderr.slice(-500)}`);
|
|
349
368
|
}
|
|
350
369
|
const snapshot = snapshotScaffold(scaffoldDir);
|
|
351
|
-
|
|
370
|
+
// cwd MUST be baked into the harness at preparation time. agent-eval's
|
|
371
|
+
// SubprocessSandboxDriver.exec reads cwd from the per-call HarnessConfig,
|
|
372
|
+
// NOT from the driver constructor (see agent-eval@0.7.0 — Gen 8b bug).
|
|
373
|
+
// Returning the harness without cwd forces every caller to remember to
|
|
374
|
+
// spread it in, and historical evidence says that fails — the runtime
|
|
375
|
+
// eval path in scripts/agent-eval-scaffold.mjs (pre-Round-0) had the
|
|
376
|
+
// same construct-vs-call bug Gen 8b fixed in the promoters. Bake it in
|
|
377
|
+
// here so the muffled gate is structurally impossible at this seam.
|
|
378
|
+
const harness = { ...makeHarnessConfig(args.components), cwd: scaffoldDir };
|
|
352
379
|
const assertions = manifestComplianceAssertions(args.components);
|
|
353
380
|
return {
|
|
354
381
|
scaffoldDir,
|
|
@@ -396,8 +423,33 @@ const META_JUDGE_SIGNATURE = '"Grade a freshly-composed project STARTER SCAFFOLD
|
|
|
396
423
|
'correctness:number, completeness:number, idiomatic:number, productionReady:number, overScaffold:number, ' +
|
|
397
424
|
'overall:number, verdict:string, issues:string[], rationale:string';
|
|
398
425
|
export async function invokeMetaJudge(args) {
|
|
426
|
+
// Compile-gate short-circuit. If the caller already ran the build and it
|
|
427
|
+
// failed, return fail immediately. Saves the LLM call AND closes the
|
|
428
|
+
// Goodhart loop where fidelity passes scaffolds the build would reject.
|
|
429
|
+
if (args.buildOutcome && args.buildOutcome.passed === false) {
|
|
430
|
+
const phase = args.buildOutcome.phase ?? 'build';
|
|
431
|
+
const stderrTail = (args.buildOutcome.stderr ?? args.buildOutcome.stdout ?? '').slice(-500);
|
|
432
|
+
return {
|
|
433
|
+
correctness: 0,
|
|
434
|
+
completeness: 0,
|
|
435
|
+
idiomatic: 0,
|
|
436
|
+
productionReady: 0,
|
|
437
|
+
overScaffold: 0,
|
|
438
|
+
overall: 0,
|
|
439
|
+
issues: [
|
|
440
|
+
{
|
|
441
|
+
dimension: 'correctness',
|
|
442
|
+
severity: 'high',
|
|
443
|
+
description: `${phase} failed: ${stderrTail.replace(/\s+/g, ' ').trim().slice(0, 400)}`,
|
|
444
|
+
},
|
|
445
|
+
],
|
|
446
|
+
verdict: 'fail',
|
|
447
|
+
rationale: `Build/typecheck failed at ${phase} — scaffold cannot run. LLM scoring skipped (compile-gate).`,
|
|
448
|
+
};
|
|
449
|
+
}
|
|
399
450
|
const { createLLM } = await import('../lib/llm.js');
|
|
400
451
|
const { ax } = await import('@ax-llm/ax');
|
|
452
|
+
const { estimateTokens } = await import('@tangle-network/agent-eval');
|
|
401
453
|
// Don't pin a router-specific model slug like "anthropic/claude-sonnet-4-6" —
|
|
402
454
|
// it 404s on non-router providers in the fallback chain. createLLM() picks
|
|
403
455
|
// each provider's default (Claude Haiku on Anthropic, Llama 3.3 on Together,
|
|
@@ -430,6 +482,23 @@ export async function invokeMetaJudge(args) {
|
|
|
430
482
|
const overScaffold = num(raw.overScaffold, 1);
|
|
431
483
|
const overallFallback = correctness * 0.3 + completeness * 0.3 + idiomatic * 0.2 + productionReady * 0.1 + overScaffold * 0.1;
|
|
432
484
|
const verdict = raw.verdict === 'pass' || raw.verdict === 'fail' || raw.verdict === 'borderline' ? raw.verdict : 'borderline';
|
|
485
|
+
// Estimate token usage for cost tracking. AxGen.forward doesn't surface
|
|
486
|
+
// provider usage stats in a stable shape across backends (router vs
|
|
487
|
+
// Anthropic vs Together vs OpenAI), so estimate from the rendered
|
|
488
|
+
// prompt + output text via agent-eval's char-based heuristic. Under-
|
|
489
|
+
// estimates for structured-output heavy responses by <15%, good enough
|
|
490
|
+
// for scorecard-level cost visibility. Replace with live usage if ax
|
|
491
|
+
// exposes it via the AxAIService in a later version.
|
|
492
|
+
const promptText = `${META_JUDGE_SIGNATURE}\n${args.userPrompt}\n${args.composedSpec.family ?? ''}\n${(args.composedSpec.layers ?? []).join(',')}\n${fileList}\n${keyFiles}`;
|
|
493
|
+
const outputText = JSON.stringify(raw);
|
|
494
|
+
const usage = {
|
|
495
|
+
inputTokens: estimateTokens(promptText),
|
|
496
|
+
outputTokens: estimateTokens(outputText),
|
|
497
|
+
// createLLM's model is provider-picked — record what the signature
|
|
498
|
+
// most-closely corresponds to in MODEL_PRICING. Override in future
|
|
499
|
+
// if createLLM exposes the resolved model name.
|
|
500
|
+
model: 'claude-sonnet-4-20250514',
|
|
501
|
+
};
|
|
433
502
|
return {
|
|
434
503
|
correctness,
|
|
435
504
|
completeness,
|
|
@@ -440,8 +509,132 @@ export async function invokeMetaJudge(args) {
|
|
|
440
509
|
issues,
|
|
441
510
|
verdict,
|
|
442
511
|
rationale: raw.rationale,
|
|
512
|
+
usage,
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Per-language fleet config table. Each language maps to a set of
|
|
517
|
+
* sandbox commands the four mechanical judges will run. New languages
|
|
518
|
+
* must be added here; absent languages skip the fleet (return
|
|
519
|
+
* empty-pass) since we have no defensible commands to run.
|
|
520
|
+
*
|
|
521
|
+
* Why these specific commands:
|
|
522
|
+
* compiler: same testCommand from HARNESS_CONFIGS — it's the
|
|
523
|
+
* authoritative typecheck. Reusing keeps fleet aligned with the
|
|
524
|
+
* existing build gate.
|
|
525
|
+
* test: family-canonical test runner if the language convention
|
|
526
|
+
* has one (vitest for TS, pytest for Python, cargo test for Rust).
|
|
527
|
+
* For families that ship no test fixtures, test judge is a no-op
|
|
528
|
+
* pass — this is honest (we have nothing to validate against)
|
|
529
|
+
* rather than fabricating green.
|
|
530
|
+
* linter: forge-lint for solidity (Gen R1 cluster-fix), eslint for
|
|
531
|
+
* TS where configured, ruff for Python. No command = honest skip.
|
|
532
|
+
* security: a deps-vuln scan via `pnpm audit --audit-level high` for
|
|
533
|
+
* pnpm projects, `cargo audit` for Rust. Skip otherwise.
|
|
534
|
+
*/
|
|
535
|
+
function fleetCommandsForLanguage(language, surface) {
|
|
536
|
+
switch (language) {
|
|
537
|
+
case 'typescript':
|
|
538
|
+
case 'javascript':
|
|
539
|
+
return {
|
|
540
|
+
compiler: 'pnpm exec tsc --noEmit',
|
|
541
|
+
// Gracefully skip when no test script defined; vitest --run hard
|
|
542
|
+
// fails if vitest absent. The `pnpm test` form respects whatever
|
|
543
|
+
// test command the family/package declares — including the
|
|
544
|
+
// muffle-ok'd `echo no tests` patterns where applicable.
|
|
545
|
+
test: 'pnpm test --run --passWithNoTests 2>&1 || true', // muffle-ok: test judge tolerates absent suites — it scores 1 only when tests exist AND pass; absent suites score honest-null
|
|
546
|
+
linter: 'pnpm lint 2>&1 || true', // muffle-ok: linter score reflects exit 0/non-zero; absent lint script honest-skips
|
|
547
|
+
security: 'pnpm audit --audit-level high --json 2>&1 || true', // muffle-ok: parsed by score function below; non-zero on real vulns
|
|
548
|
+
};
|
|
549
|
+
case 'rust':
|
|
550
|
+
return {
|
|
551
|
+
compiler: 'cargo check --workspace || cargo check',
|
|
552
|
+
test: 'cargo test --workspace --no-run 2>&1 || true', // muffle-ok: compile-only test detection; test execution costly + flaky
|
|
553
|
+
};
|
|
554
|
+
case 'solidity':
|
|
555
|
+
return {
|
|
556
|
+
compiler: 'forge build',
|
|
557
|
+
test: 'forge test --no-match-test "Skip" 2>&1 || true', // muffle-ok: many forge tests need fork-block setup; absent → score honest-null
|
|
558
|
+
linter: 'forge lint 2>&1 || true', // muffle-ok: lint score reflects exit; absent foundry.toml [lint] section → honest-pass per Gen R1 fix
|
|
559
|
+
};
|
|
560
|
+
default:
|
|
561
|
+
return {};
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Score a fleet judge result. SandboxJudgeResult.score from agent-eval
|
|
566
|
+
* is testsPassed/testsTotal where parsers exist; we override for cases
|
|
567
|
+
* where the raw exit-code semantics need interpretation (e.g. lint
|
|
568
|
+
* exit-2 means warnings-only on some toolchains, exit-non-zero means
|
|
569
|
+
* security findings on pnpm audit).
|
|
570
|
+
*/
|
|
571
|
+
function interpretFleetResult(kind, exitCode, stdout) {
|
|
572
|
+
if (kind === 'security') {
|
|
573
|
+
// pnpm audit exits non-zero on findings; parse JSON for high+ count.
|
|
574
|
+
try {
|
|
575
|
+
const j = JSON.parse(stdout || '{}');
|
|
576
|
+
const high = (j.metadata?.vulnerabilities?.high ?? 0) + (j.metadata?.vulnerabilities?.critical ?? 0);
|
|
577
|
+
return { passed: high === 0, score: high === 0 ? 1 : 0, summary: high === 0 ? 'no high/critical vulns' : `${high} high+ vulns` };
|
|
578
|
+
}
|
|
579
|
+
catch {
|
|
580
|
+
return { passed: exitCode === 0, score: exitCode === 0 ? 1 : 0, summary: `audit exit=${exitCode}` };
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
return {
|
|
584
|
+
passed: exitCode === 0,
|
|
585
|
+
score: exitCode === 0 ? 1 : 0,
|
|
586
|
+
summary: exitCode === 0 ? `${kind} pass` : `${kind} exit=${exitCode}`,
|
|
443
587
|
};
|
|
444
588
|
}
|
|
589
|
+
/**
|
|
590
|
+
* Invoke the judge fleet against a composed scaffold's harness config.
|
|
591
|
+
*
|
|
592
|
+
* Returns a `FleetVerdict` aggregating per-judge results. Unanimous
|
|
593
|
+
* pass is the new strictness bar — replaces "single LLM judge said
|
|
594
|
+
* 0.85" as the validation gate.
|
|
595
|
+
*
|
|
596
|
+
* Reuses `BuilderSession`'s harness machinery for sandbox isolation;
|
|
597
|
+
* each judge runs in its own subprocess with the language-specific
|
|
598
|
+
* command. Skipped judges (no command for the language) score
|
|
599
|
+
* honest-null and are excluded from `unanimousPass` math.
|
|
600
|
+
*/
|
|
601
|
+
export async function invokeJudgeFleet(args) {
|
|
602
|
+
const { runJudgeFleet, compilerJudge, testJudge, linterJudge, securityJudge } = await import('@tangle-network/agent-eval');
|
|
603
|
+
const language = args.components.family.taxonomy?.language ?? 'unknown';
|
|
604
|
+
const surface = args.components.family.taxonomy?.surface ?? 'unknown';
|
|
605
|
+
const cmds = fleetCommandsForLanguage(language, surface);
|
|
606
|
+
const specs = [];
|
|
607
|
+
if (cmds.compiler)
|
|
608
|
+
specs.push(compilerJudge('fleet:compiler', { ...args.harness, testCommand: cmds.compiler }));
|
|
609
|
+
if (cmds.test)
|
|
610
|
+
specs.push(testJudge('fleet:test', { ...args.harness, testCommand: cmds.test }));
|
|
611
|
+
if (cmds.linter)
|
|
612
|
+
specs.push(linterJudge('fleet:linter', { ...args.harness, testCommand: cmds.linter }));
|
|
613
|
+
if (cmds.security)
|
|
614
|
+
specs.push(securityJudge('fleet:security', { ...args.harness, testCommand: cmds.security }));
|
|
615
|
+
if (specs.length === 0) {
|
|
616
|
+
return { unanimousPass: false, byJudge: [], overall: 0, wallMs: 0 };
|
|
617
|
+
}
|
|
618
|
+
const start = Date.now();
|
|
619
|
+
const results = await runJudgeFleet(specs, { parallel: true });
|
|
620
|
+
const wallMs = Date.now() - start;
|
|
621
|
+
const byJudge = results.map((r) => {
|
|
622
|
+
const exit = r.detail?.test?.exitCode ?? r.detail?.run?.exitCode ?? r.detail?.setup?.exitCode ?? 1;
|
|
623
|
+
const stdout = r.detail?.test?.stdout ?? r.detail?.run?.stdout ?? '';
|
|
624
|
+
const interp = interpretFleetResult(r.kind, exit, stdout);
|
|
625
|
+
return {
|
|
626
|
+
id: r.id,
|
|
627
|
+
kind: r.kind,
|
|
628
|
+
passed: interp.passed,
|
|
629
|
+
score: interp.score,
|
|
630
|
+
summary: interp.summary,
|
|
631
|
+
durationMs: r.detail?.totalWallMs ?? 0,
|
|
632
|
+
};
|
|
633
|
+
});
|
|
634
|
+
const unanimousPass = byJudge.length > 0 && byJudge.every((j) => j.passed);
|
|
635
|
+
const overall = byJudge.length > 0 ? byJudge.reduce((a, j) => a + j.score, 0) / byJudge.length : 0;
|
|
636
|
+
return { unanimousPass, byJudge, overall, wallMs };
|
|
637
|
+
}
|
|
445
638
|
/**
|
|
446
639
|
* Normalize the LLM's `issues` output into our typed shape. The AxSignature
|
|
447
640
|
* declares issues:string[] (simple list of concerns). We then parse each
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold-bridge.js","sourceRoot":"","sources":["../../src/eval/scaffold-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scaffold-bridge.js","sourceRoot":"","sources":["../../src/eval/scaffold-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/compose.js
CHANGED
|
@@ -124,6 +124,27 @@ async function mergeMediaManifests(outDir) {
|
|
|
124
124
|
await fs.writeFile(manifestPath, `${JSON.stringify(merged, null, 2)}\n`, 'utf8');
|
|
125
125
|
return merged.slots;
|
|
126
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Read the composed project's package.json (after mergeLayerPackageDeps)
|
|
129
|
+
* and return the sorted union of dependencies + devDependencies keys.
|
|
130
|
+
* Used by AGENTS.md/CLAUDE.md to tell the agent WHAT IS ALREADY INSTALLED
|
|
131
|
+
* so it doesn't waste turns running `pnpm add lucide-react` on a scaffold
|
|
132
|
+
* that already ships lucide-react. Returns [] for non-JS scaffolds.
|
|
133
|
+
*/
|
|
134
|
+
async function readPreinstalledPackages(outDir) {
|
|
135
|
+
const pkgPath = path.join(outDir, 'package.json');
|
|
136
|
+
try {
|
|
137
|
+
const pkg = JSON.parse(await fs.readFile(pkgPath, 'utf8'));
|
|
138
|
+
const deps = new Set([
|
|
139
|
+
...Object.keys(pkg.dependencies ?? {}),
|
|
140
|
+
...Object.keys(pkg.devDependencies ?? {}),
|
|
141
|
+
]);
|
|
142
|
+
return [...deps].sort();
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
127
148
|
// Merge each applied layer's declared packageDeps into the composed
|
|
128
149
|
// package.json. Runs after every file is written so the family's package.json
|
|
129
150
|
// is on disk; we read it, merge, write back. No-op if the family has no
|
|
@@ -184,6 +205,14 @@ async function composeStarterInner(spec, outDir) {
|
|
|
184
205
|
}
|
|
185
206
|
}
|
|
186
207
|
await mergeLayerPackageDeps(outDir, components.layers);
|
|
208
|
+
// Read the final package.json (after merge) so AGENTS.md can list the
|
|
209
|
+
// pre-installed deps for the agent. This closes the efficiency gap
|
|
210
|
+
// where agents re-install already-present packages (lucide-react,
|
|
211
|
+
// tailwindcss, clsx, etc.) because nothing in the scaffold docs told
|
|
212
|
+
// them those were already there. Evolve R3 (post-Gen-9) diagnosis:
|
|
213
|
+
// 54+ redundant installs in the 30-day window concentrate on 4
|
|
214
|
+
// packages that every react-vite-ts scaffold ships.
|
|
215
|
+
const preinstalledPackages = await readPreinstalledPackages(outDir);
|
|
187
216
|
const composeReport = {
|
|
188
217
|
spec,
|
|
189
218
|
components: {
|
|
@@ -202,7 +231,7 @@ async function composeStarterInner(spec, outDir) {
|
|
|
202
231
|
// Merge media manifests from all layers into a single root manifest
|
|
203
232
|
const mediaSlots = await mergeMediaManifests(outDir);
|
|
204
233
|
// Generate AGENTS.md — per-project agent instructions (OpenCode, Codex, etc.)
|
|
205
|
-
const agentsMd = buildAgentsMd(spec, components, composeReport.contextHints, mediaSlots);
|
|
234
|
+
const agentsMd = buildAgentsMd(spec, components, composeReport.contextHints, mediaSlots, preinstalledPackages);
|
|
206
235
|
await fs.writeFile(path.join(outDir, 'AGENTS.md'), `${agentsMd}\n`, 'utf8');
|
|
207
236
|
// Generate CLAUDE.md — Claude Code specific instructions (same content, different filename)
|
|
208
237
|
await fs.writeFile(path.join(outDir, 'CLAUDE.md'), `${agentsMd}\n`, 'utf8');
|
|
@@ -265,7 +294,7 @@ function buildLlmsTxt(spec, components, contextHints) {
|
|
|
265
294
|
].filter(line => line !== null);
|
|
266
295
|
return lines.join('\n');
|
|
267
296
|
}
|
|
268
|
-
function buildAgentsMd(spec, components, contextHints, mediaSlots = []) {
|
|
297
|
+
function buildAgentsMd(spec, components, contextHints, mediaSlots = [], preinstalledPackages = []) {
|
|
269
298
|
const buildPlan = generateBuildPlan(spec, components);
|
|
270
299
|
const lines = [
|
|
271
300
|
'# AGENTS.md',
|
|
@@ -302,6 +331,16 @@ function buildAgentsMd(spec, components, contextHints, mediaSlots = []) {
|
|
|
302
331
|
if (contextHints.entrypoints.length > 0) {
|
|
303
332
|
lines.push('## Key files', '', contextHints.entrypoints.map((e) => `- \`${e}\``).join('\n'), '');
|
|
304
333
|
}
|
|
334
|
+
// Pre-installed packages — closes the efficiency gap where agents run
|
|
335
|
+
// `pnpm add lucide-react` on scaffolds that already ship lucide-react.
|
|
336
|
+
// Evolve R3 diagnosis: the top 4 redundant installs (lucide-react,
|
|
337
|
+
// tailwindcss, @tailwindcss/vite, clsx) each ship in react-vite-ts's
|
|
338
|
+
// package.json, yet appear 9-17× in .evolve/buildout-analysis.json's
|
|
339
|
+
// topAddedPackages — agents installed them anyway because nothing told
|
|
340
|
+
// them the scaffold already had them.
|
|
341
|
+
if (preinstalledPackages.length > 0) {
|
|
342
|
+
lines.push('## Pre-installed packages — do NOT re-install', '', 'These are already in `package.json` (the sidecar\'s ensure-dev-server auto-installed them on first call). If you need any of these, **import them** — do not run `pnpm add`, `pnpm install <name>`, `npm install <name>`, or equivalent. Re-installing a present package burns turns and tokens for zero gain.', '', preinstalledPackages.map((p) => `- \`${p}\``).join('\n'), '', 'If you need a package that is NOT on this list, THEN you may add it — but check this list first.', '');
|
|
343
|
+
}
|
|
305
344
|
if (buildPlan.pages.length > 0 || buildPlan.apiRoutes.length > 0 || buildPlan.components.length > 0) {
|
|
306
345
|
lines.push('## Suggested build plan', '', 'These are starting points — adapt them to the user\'s actual needs.', '');
|
|
307
346
|
if (buildPlan.pages.length > 0)
|