@mutagent/evaluator 0.1.0-alpha.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 (126) hide show
  1. package/.claude/skills/mutagent-evaluator/SKILL.md +538 -0
  2. package/.claude/skills/mutagent-evaluator/assets/agents/audit-executor.md +169 -0
  3. package/.claude/skills/mutagent-evaluator/assets/agents/dataset-builder.md +160 -0
  4. package/.claude/skills/mutagent-evaluator/assets/agents/discovery.md +425 -0
  5. package/.claude/skills/mutagent-evaluator/assets/agents/evaluator.md +1044 -0
  6. package/.claude/skills/mutagent-evaluator/assets/brand/theme.css +213 -0
  7. package/.claude/skills/mutagent-evaluator/assets/brand/wordmark.html +9 -0
  8. package/.claude/skills/mutagent-evaluator/lenses/context-flow-lens.md +85 -0
  9. package/.claude/skills/mutagent-evaluator/lenses/data-lens.md +47 -0
  10. package/.claude/skills/mutagent-evaluator/lenses/decision-lens.md +48 -0
  11. package/.claude/skills/mutagent-evaluator/lenses/methodology-critic-lens.md +53 -0
  12. package/.claude/skills/mutagent-evaluator/lenses/trajectory-lens.md +44 -0
  13. package/.claude/skills/mutagent-evaluator/references/build-review-interface.md +83 -0
  14. package/.claude/skills/mutagent-evaluator/references/edd-loop.md +134 -0
  15. package/.claude/skills/mutagent-evaluator/references/error-analysis.md +113 -0
  16. package/.claude/skills/mutagent-evaluator/references/eval-audit.md +154 -0
  17. package/.claude/skills/mutagent-evaluator/references/eval-stage.md +168 -0
  18. package/.claude/skills/mutagent-evaluator/references/generate-synthetic-data.md +81 -0
  19. package/.claude/skills/mutagent-evaluator/references/grounded-adjudication.md +221 -0
  20. package/.claude/skills/mutagent-evaluator/references/memory-format.md +65 -0
  21. package/.claude/skills/mutagent-evaluator/references/methodology.md +201 -0
  22. package/.claude/skills/mutagent-evaluator/references/operation-inventory.md +196 -0
  23. package/.claude/skills/mutagent-evaluator/references/validate-evaluator.md +125 -0
  24. package/.claude/skills/mutagent-evaluator/references/workflows/orchestrator-protocol.md +287 -0
  25. package/.claude/skills/mutagent-evaluator/references/write-judge-prompt.md +123 -0
  26. package/.claude/skills/mutagent-evaluator/schemas/behavior-tree.schema.yaml +73 -0
  27. package/.claude/skills/mutagent-evaluator/schemas/dataset.schema.yaml +66 -0
  28. package/.claude/skills/mutagent-evaluator/schemas/edd-change-request.schema.yaml +114 -0
  29. package/.claude/skills/mutagent-evaluator/schemas/eval-matrix.schema.yaml +74 -0
  30. package/.claude/skills/mutagent-evaluator/schemas/flow-graph.schema.yaml +69 -0
  31. package/.claude/skills/mutagent-evaluator/schemas/flow-profile.schema.yaml +49 -0
  32. package/.claude/skills/mutagent-evaluator/schemas/methodology-review.schema.yaml +40 -0
  33. package/.claude/skills/mutagent-evaluator/schemas/scorecard.schema.yaml +85 -0
  34. package/.claude/skills/mutagent-evaluator/scripts/agent-dispatch.ts +0 -0
  35. package/.claude/skills/mutagent-evaluator/scripts/aggregate-discover.ts +543 -0
  36. package/.claude/skills/mutagent-evaluator/scripts/artifact-paths.ts +99 -0
  37. package/.claude/skills/mutagent-evaluator/scripts/assemble-scorecard.ts +172 -0
  38. package/.claude/skills/mutagent-evaluator/scripts/build-dataset.ts +186 -0
  39. package/.claude/skills/mutagent-evaluator/scripts/build-evals.ts +93 -0
  40. package/.claude/skills/mutagent-evaluator/scripts/build-review-ui.ts +393 -0
  41. package/.claude/skills/mutagent-evaluator/scripts/check-method-router.ts +170 -0
  42. package/.claude/skills/mutagent-evaluator/scripts/cli/aggregate.ts +112 -0
  43. package/.claude/skills/mutagent-evaluator/scripts/cli/audit-run.ts +175 -0
  44. package/.claude/skills/mutagent-evaluator/scripts/cli/doctor.ts +211 -0
  45. package/.claude/skills/mutagent-evaluator/scripts/cli/dogfood.ts +133 -0
  46. package/.claude/skills/mutagent-evaluator/scripts/cli/init.ts +601 -0
  47. package/.claude/skills/mutagent-evaluator/scripts/cli/methodology-review.ts +122 -0
  48. package/.claude/skills/mutagent-evaluator/scripts/cli/prep.ts +279 -0
  49. package/.claude/skills/mutagent-evaluator/scripts/cli/profile-subject.ts +165 -0
  50. package/.claude/skills/mutagent-evaluator/scripts/cli/run.sh +56 -0
  51. package/.claude/skills/mutagent-evaluator/scripts/cli/variance-check.ts +105 -0
  52. package/.claude/skills/mutagent-evaluator/scripts/code-eval.ts +248 -0
  53. package/.claude/skills/mutagent-evaluator/scripts/codegen-evals.ts +173 -0
  54. package/.claude/skills/mutagent-evaluator/scripts/cold-start-project.ts +151 -0
  55. package/.claude/skills/mutagent-evaluator/scripts/cold-start-sampler.ts +267 -0
  56. package/.claude/skills/mutagent-evaluator/scripts/config/load.ts +307 -0
  57. package/.claude/skills/mutagent-evaluator/scripts/config/schema.ts +325 -0
  58. package/.claude/skills/mutagent-evaluator/scripts/contracts/agentspec-evals.ts +85 -0
  59. package/.claude/skills/mutagent-evaluator/scripts/contracts/dataset.ts +149 -0
  60. package/.claude/skills/mutagent-evaluator/scripts/contracts/eval-engine.ts +118 -0
  61. package/.claude/skills/mutagent-evaluator/scripts/contracts/eval-matrix.ts +577 -0
  62. package/.claude/skills/mutagent-evaluator/scripts/contracts/eval-types.ts +1074 -0
  63. package/.claude/skills/mutagent-evaluator/scripts/contracts/flow-graph.ts +194 -0
  64. package/.claude/skills/mutagent-evaluator/scripts/contracts/types.ts +303 -0
  65. package/.claude/skills/mutagent-evaluator/scripts/contracts/validation.ts +193 -0
  66. package/.claude/skills/mutagent-evaluator/scripts/derive-dataset.ts +152 -0
  67. package/.claude/skills/mutagent-evaluator/scripts/determine-outcome.ts +219 -0
  68. package/.claude/skills/mutagent-evaluator/scripts/diff-discriminate.ts +160 -0
  69. package/.claude/skills/mutagent-evaluator/scripts/discover-criteria.ts +348 -0
  70. package/.claude/skills/mutagent-evaluator/scripts/edd/change-request.ts +232 -0
  71. package/.claude/skills/mutagent-evaluator/scripts/edd/edd-types.ts +210 -0
  72. package/.claude/skills/mutagent-evaluator/scripts/edd/variance-gate.ts +186 -0
  73. package/.claude/skills/mutagent-evaluator/scripts/emit-completeness.ts +111 -0
  74. package/.claude/skills/mutagent-evaluator/scripts/eval-engine.ts +160 -0
  75. package/.claude/skills/mutagent-evaluator/scripts/evaluate.ts +333 -0
  76. package/.claude/skills/mutagent-evaluator/scripts/flow-graph.ts +230 -0
  77. package/.claude/skills/mutagent-evaluator/scripts/judge-prompt-template.ts +253 -0
  78. package/.claude/skills/mutagent-evaluator/scripts/judge-provider.ts +135 -0
  79. package/.claude/skills/mutagent-evaluator/scripts/lint-grounding.ts +229 -0
  80. package/.claude/skills/mutagent-evaluator/scripts/lint-uniformity.ts +168 -0
  81. package/.claude/skills/mutagent-evaluator/scripts/living-suite.ts +109 -0
  82. package/.claude/skills/mutagent-evaluator/scripts/load-bundle.ts +203 -0
  83. package/.claude/skills/mutagent-evaluator/scripts/load-profile-vocab.ts +64 -0
  84. package/.claude/skills/mutagent-evaluator/scripts/load-profile.ts +106 -0
  85. package/.claude/skills/mutagent-evaluator/scripts/mask.ts +138 -0
  86. package/.claude/skills/mutagent-evaluator/scripts/materialize-dataset.ts +113 -0
  87. package/.claude/skills/mutagent-evaluator/scripts/matrix-judge.ts +750 -0
  88. package/.claude/skills/mutagent-evaluator/scripts/memory/append.ts +215 -0
  89. package/.claude/skills/mutagent-evaluator/scripts/memory/read.ts +168 -0
  90. package/.claude/skills/mutagent-evaluator/scripts/prep-tasks.ts +125 -0
  91. package/.claude/skills/mutagent-evaluator/scripts/profile-subject.ts +310 -0
  92. package/.claude/skills/mutagent-evaluator/scripts/publish-report.ts +131 -0
  93. package/.claude/skills/mutagent-evaluator/scripts/read-unitf-traces.ts +81 -0
  94. package/.claude/skills/mutagent-evaluator/scripts/render-build-cards.ts +195 -0
  95. package/.claude/skills/mutagent-evaluator/scripts/render-discover-report.ts +1640 -0
  96. package/.claude/skills/mutagent-evaluator/scripts/render-eval-report.ts +3823 -0
  97. package/.claude/skills/mutagent-evaluator/scripts/render-report.ts +212 -0
  98. package/.claude/skills/mutagent-evaluator/scripts/resolve-credential.ts +110 -0
  99. package/.claude/skills/mutagent-evaluator/scripts/resolve-ref.ts +98 -0
  100. package/.claude/skills/mutagent-evaluator/scripts/result-verify.ts +129 -0
  101. package/.claude/skills/mutagent-evaluator/scripts/route-failures.ts +320 -0
  102. package/.claude/skills/mutagent-evaluator/scripts/run-deterministic.ts +271 -0
  103. package/.claude/skills/mutagent-evaluator/scripts/run-evaluate.ts +715 -0
  104. package/.claude/skills/mutagent-evaluator/scripts/run-judge.ts +155 -0
  105. package/.claude/skills/mutagent-evaluator/scripts/run-pipeline.ts +175 -0
  106. package/.claude/skills/mutagent-evaluator/scripts/sample-traces.ts +210 -0
  107. package/.claude/skills/mutagent-evaluator/scripts/self-audit.ts +387 -0
  108. package/.claude/skills/mutagent-evaluator/scripts/source-map.ts +106 -0
  109. package/.claude/skills/mutagent-evaluator/scripts/subject-profile.ts +134 -0
  110. package/.claude/skills/mutagent-evaluator/scripts/substrate.ts +162 -0
  111. package/.claude/skills/mutagent-evaluator/scripts/ui-slots.ts +119 -0
  112. package/.claude/skills/mutagent-evaluator/scripts/unitf-to-evaltrace.ts +284 -0
  113. package/.claude/skills/mutagent-evaluator/scripts/validate-judge.ts +358 -0
  114. package/.claude/skills/mutagent-evaluator/scripts/variance-compare.ts +177 -0
  115. package/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/behavior-tree.yaml +140 -0
  116. package/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/eval-matrix.yaml +1270 -0
  117. package/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/methodology-review.yaml +105 -0
  118. package/.claude/skills/mutagent-evaluator/workflows/audit.workflow.js +82 -0
  119. package/.claude/skills/mutagent-evaluator/workflows/data-leak.workflow.js +236 -0
  120. package/.claude/skills/mutagent-evaluator/workflows/variance.workflow.js +163 -0
  121. package/LICENSE +201 -0
  122. package/NOTICE +23 -0
  123. package/README.md +90 -0
  124. package/bin/mutagent-cli.mjs +9263 -0
  125. package/bin/mutagent-evaluator.mjs +96 -0
  126. package/package.json +52 -0
@@ -0,0 +1,195 @@
1
+ /**
2
+ * scripts/render-build-cards.ts — F13/F16/F20/F22 wireframe TERMINAL cards (Type A — PURE).
3
+ * ---------------------------------------------------------------------------
4
+ * The ADL EVAL-stage terminal surface. All renderers are PURE deterministic
5
+ * string builders in the house box-drawing style (matching `renderEvalCards` in
6
+ * render-eval-report.ts). No clock / random / network.
7
+ *
8
+ * - F13 + F16 — stream PROGRESS as wireframe cards for BOTH *build-dataset and
9
+ * *build-evals (`renderBuildDatasetProgressCard` · `renderBuildEvalsProgressCard`).
10
+ * - F22 — emit a VERBOSE entity card after *build-dataset and after *build-evals
11
+ * (`renderDatasetEntityCard` · `renderEvalsEntityCard`).
12
+ * - F20 — render the eval SCORECARD as a DASHBOARD wireframe (per-criterion
13
+ * pass/fail, variance, samples) — NOT a flat dump (`renderScorecardDashboard`).
14
+ *
15
+ * Subject-agnostic: every label is DATA passed in.
16
+ */
17
+
18
+ const W = 60; // card inner width
19
+ const TOP = `╔${"═".repeat(W)}╗`;
20
+ const MID = `╠${"═".repeat(W)}╣`;
21
+ const BOT = `╚${"═".repeat(W)}╝`;
22
+
23
+ /** A card body line, padded/truncated to the inner width. PURE. */
24
+ function row(text: string): string {
25
+ const t = text.length > W - 2 ? text.slice(0, W - 3) + "…" : text;
26
+ return `║ ${t.padEnd(W - 2)} ║`;
27
+ }
28
+
29
+ /** A progress glyph bar `done/total` → filled/empty blocks. PURE. */
30
+ function progressBar(done: number, total: number, width = 20): string {
31
+ if (total <= 0) return "░".repeat(width);
32
+ const filled = Math.max(0, Math.min(width, Math.round((done / total) * width)));
33
+ return "█".repeat(filled) + "░".repeat(width - filled);
34
+ }
35
+
36
+ // ── F13/F16 — *build-dataset progress card ───────────────────────────────────
37
+ export interface BuildDatasetProgress {
38
+ subject: string;
39
+ /** the streamed phase (e.g. "materialize" | "synth-expand" | "dedup-merge"). */
40
+ phase: string;
41
+ categoriesTotal: number;
42
+ categoriesDone: number;
43
+ itemsMaterialized: number;
44
+ edgeItems: number;
45
+ }
46
+
47
+ export function renderBuildDatasetProgressCard(p: BuildDatasetProgress): string {
48
+ const bar = progressBar(p.categoriesDone, p.categoriesTotal);
49
+ return [
50
+ TOP,
51
+ row(`◆ BUILD-DATASET — ${p.subject}`),
52
+ MID,
53
+ row(`phase: ${p.phase}`),
54
+ row(`categories: ${bar} ${p.categoriesDone}/${p.categoriesTotal}`),
55
+ row(`items materialized: ${p.itemsMaterialized} (edge: ${p.edgeItems})`),
56
+ BOT,
57
+ ].join("\n");
58
+ }
59
+
60
+ // ── F13/F16 — *build-evals progress card ─────────────────────────────────────
61
+ export interface BuildEvalsProgress {
62
+ subject: string;
63
+ /** the chosen engine (native-matrix | code-written). */
64
+ engine: string;
65
+ /** the streamed phase (e.g. "ask-engine" | "judge-spec" | "codegen" | "validate"). */
66
+ phase: string;
67
+ criteriaTotal: number;
68
+ criteriaDone: number;
69
+ codeChecks: number;
70
+ judges: number;
71
+ }
72
+
73
+ export function renderBuildEvalsProgressCard(p: BuildEvalsProgress): string {
74
+ const bar = progressBar(p.criteriaDone, p.criteriaTotal);
75
+ return [
76
+ TOP,
77
+ row(`◆ BUILD-EVALS — ${p.subject} [engine: ${p.engine}]`),
78
+ MID,
79
+ row(`phase: ${p.phase}`),
80
+ row(`criteria: ${bar} ${p.criteriaDone}/${p.criteriaTotal}`),
81
+ row(`code-checks: ${p.codeChecks} judges: ${p.judges}`),
82
+ BOT,
83
+ ].join("\n");
84
+ }
85
+
86
+ // ── F22 — dataset entity card (verbose, after *build-dataset) ─────────────────
87
+ export interface DatasetEntity {
88
+ subject: string;
89
+ version: number;
90
+ categories: { id: string; items: number; edgeItems: number }[];
91
+ totalItems: number;
92
+ sink: string;
93
+ }
94
+
95
+ export function renderDatasetEntityCard(e: DatasetEntity): string {
96
+ const lines = [
97
+ TOP,
98
+ row(`▣ DATASET — ${e.subject} (v${e.version})`),
99
+ MID,
100
+ row(`categories (${e.categories.length}) · ${e.totalItems} items total`),
101
+ ];
102
+ for (const c of e.categories) {
103
+ lines.push(row(` • ${c.id}: ${c.items} items (edge: ${c.edgeItems})`));
104
+ }
105
+ lines.push(row(`sink: ${e.sink}`));
106
+ lines.push(BOT);
107
+ return lines.join("\n");
108
+ }
109
+
110
+ // ── F22 — evals entity card (verbose, after *build-evals) ────────────────────
111
+ export interface EvalsEntity {
112
+ subject: string;
113
+ engine: string;
114
+ requiresClaudeCode: boolean;
115
+ requiresLogSink: boolean;
116
+ outputSink: string;
117
+ criteria: { id: string; kind: string; severity: string }[];
118
+ }
119
+
120
+ export function renderEvalsEntityCard(e: EvalsEntity): string {
121
+ const dep =
122
+ (e.requiresClaudeCode ? "needs Claude Code" : "portable (no Claude Code)") +
123
+ (e.requiresLogSink ? " · needs agent log/trace sink" : "");
124
+ const lines = [
125
+ TOP,
126
+ row(`▣ EVAL SUITE — ${e.subject} [engine: ${e.engine}]`),
127
+ MID,
128
+ row(`dependency: ${dep}`),
129
+ row(`output sink: ${e.outputSink}`),
130
+ row(`criteria (${e.criteria.length}):`),
131
+ ];
132
+ for (const c of e.criteria) {
133
+ lines.push(row(` • ${c.id} [${c.severity}·${c.kind}]`));
134
+ }
135
+ lines.push(BOT);
136
+ return lines.join("\n");
137
+ }
138
+
139
+ // ── F20 — scorecard DASHBOARD (per-criterion pass/fail, variance, samples) ───
140
+ const GATE_BANNERS: Record<string, string> = {
141
+ pass: "PASS",
142
+ fail: "FAIL",
143
+ incomplete: "INCOMPLETE",
144
+ };
145
+
146
+ export interface ScorecardDashboardCriterion {
147
+ id: string;
148
+ severity: string;
149
+ pass: number;
150
+ fail: number;
151
+ indeterminate: number;
152
+ /** eval-score variance across reruns (EV-054). */
153
+ variance: number;
154
+ /** number of trajectories/samples scored. */
155
+ samples: number;
156
+ }
157
+
158
+ export interface ScorecardDashboardInput {
159
+ subject: string;
160
+ /** the run-level GATE (fail ▸ incomplete ▸ pass). */
161
+ gate: string;
162
+ criteria: ScorecardDashboardCriterion[];
163
+ }
164
+
165
+ /**
166
+ * Render the eval scorecard as a DASHBOARD wireframe — a gate banner + a
167
+ * per-criterion row carrying a pass/fail BAR (visual, not a flat number), the
168
+ * pass/fail/indeterminate split, variance, and sample count (F20). THROWS on an
169
+ * unknown gate value (fail-loud). PURE.
170
+ */
171
+ export function renderScorecardDashboard(input: ScorecardDashboardInput): string {
172
+ const banner = GATE_BANNERS[input.gate];
173
+ if (banner === undefined) {
174
+ throw new Error(
175
+ `renderScorecardDashboard: unknown gate '${input.gate}'. ` +
176
+ `Expected one of {${Object.keys(GATE_BANNERS).join(", ")}}.`,
177
+ );
178
+ }
179
+ const lines = [
180
+ TOP,
181
+ row(`▦ SCORECARD — ${input.subject}`),
182
+ row(`GATE: ${banner}`),
183
+ MID,
184
+ row("criterion bar pass/fail/? var samples"),
185
+ ];
186
+ for (const c of input.criteria) {
187
+ const decided = c.pass + c.fail;
188
+ const bar = progressBar(c.pass, Math.max(1, decided), 12);
189
+ const id = `${c.id}[${c.severity}]`.padEnd(16);
190
+ const split = `${c.pass}/${c.fail}/${c.indeterminate}`.padEnd(11);
191
+ lines.push(row(`${id} ${bar} ${split} var=${c.variance} n=${c.samples}`));
192
+ }
193
+ lines.push(BOT);
194
+ return lines.join("\n");
195
+ }