@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.
Files changed (32) hide show
  1. package/corpus/held-out-validation.json +2 -2
  2. package/dist/eval/scaffold-bridge.d.ts +99 -2
  3. package/dist/eval/scaffold-bridge.js +252 -59
  4. package/dist/eval/scaffold-bridge.js.map +1 -1
  5. package/dist/lib/compose.js +41 -2
  6. package/dist/lib/compose.js.map +1 -1
  7. package/dist/lib/promoter-gates.d.ts +114 -0
  8. package/dist/lib/promoter-gates.js +426 -0
  9. package/dist/lib/promoter-gates.js.map +1 -0
  10. package/dist/lib/prompt-e2e.d.ts +1 -0
  11. package/dist/lib/prompt-e2e.js +20 -6
  12. package/dist/lib/prompt-e2e.js.map +1 -1
  13. package/dist/lib/template-quality.js +20 -4
  14. package/dist/lib/template-quality.js.map +1 -1
  15. package/package.json +21 -19
  16. package/registry/families/fraud-ops-console/files/src/main.tsx +11 -8
  17. package/registry/families/fraud-ops-console/manifest.json +13 -17
  18. package/registry/families/kyc-onboarding/files/index.html +1 -1
  19. package/registry/families/kyc-onboarding/files/vite.config.ts +0 -1
  20. package/registry/families/kyc-onboarding/manifest.json +12 -12
  21. package/registry/families/polymarket-portfolio-hedging/files/src/main.tsx +11 -8
  22. package/registry/families/polymarket-portfolio-hedging/manifest.json +7 -6
  23. package/registry/layers/capability/agent-eval/files/.github/workflows/eval.yml +60 -0
  24. package/registry/layers/capability/agent-eval/files/scripts/eval-baseline.mjs +87 -0
  25. package/registry/layers/capability/agent-eval/files/tests/eval/README.md +76 -0
  26. package/registry/layers/capability/agent-eval/files/tests/eval/judge.mjs +35 -0
  27. package/registry/layers/capability/agent-eval/files/tests/eval/run-eval.mjs +204 -0
  28. package/registry/layers/capability/agent-eval/files/tests/eval/scenarios.json +47 -0
  29. package/registry/layers/capability/agent-eval/manifest.json +73 -0
  30. package/registry/layers/framework/forge-foundation/files/foundry.toml +14 -0
  31. package/registry/layers/framework/tangle-blueprint/files/foundry.toml +8 -0
  32. /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": "zk-prover-service" }
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": "starter", "family": "tangle-blueprint" }
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
- * Keep this table in sync with the registry's families — when a new
9
- * language surface lands (e.g. a Zig family), add a dispatch here.
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
- * Keep this table in sync with the registry's families — when a new
30
- * language surface lands (e.g. a Zig family), add a dispatch here.
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 surface = components.family.taxonomy?.surface ?? 'unknown';
35
- switch (language) {
36
- case 'typescript':
37
- case 'javascript':
38
- // pnpm for the foundry-native JS projects. `--frozen-lockfile` off:
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
- const harness = makeHarnessConfig(args.components);
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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"}
@@ -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)