@prismatic-io/lux 0.0.2-preview.40 → 0.0.2-preview.41
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/lib/answerers/persona/index.d.ts.map +1 -1
- package/lib/answerers/persona/index.js +6 -1
- package/lib/answerers/persona/index.js.map +1 -1
- package/lib/assertions/rubric/index.d.ts.map +1 -1
- package/lib/assertions/rubric/index.js +9 -1
- package/lib/assertions/rubric/index.js.map +1 -1
- package/lib/assertions/rubric/internal.d.ts.map +1 -1
- package/lib/assertions/rubric/internal.js +10 -7
- package/lib/assertions/rubric/internal.js.map +1 -1
- package/lib/cli/init-templates.d.ts +2 -2
- package/lib/cli/init-templates.d.ts.map +1 -1
- package/lib/cli/init-templates.js +16 -78
- package/lib/cli/init-templates.js.map +1 -1
- package/lib/core/model-cli.d.ts +22 -4
- package/lib/core/model-cli.d.ts.map +1 -1
- package/lib/core/model-cli.js +14 -1
- package/lib/core/model-cli.js.map +1 -1
- package/lib/drivers/claude-code/index.js +1 -1
- package/lib/drivers/claude-code/index.js.map +1 -1
- package/lib/drivers/shared/experiment-policy.d.ts.map +1 -1
- package/lib/drivers/shared/experiment-policy.js +5 -0
- package/lib/drivers/shared/experiment-policy.js.map +1 -1
- package/lib/orchestrator/config.d.ts +51 -9
- package/lib/orchestrator/config.d.ts.map +1 -1
- package/lib/orchestrator/doctor.d.ts.map +1 -1
- package/lib/orchestrator/doctor.js +35 -15
- package/lib/orchestrator/doctor.js.map +1 -1
- package/lib/orchestrator/experiment-context.d.ts +1 -1
- package/lib/orchestrator/experiment-corpus.d.ts.map +1 -1
- package/lib/orchestrator/experiment-corpus.js +4 -2
- package/lib/orchestrator/experiment-corpus.js.map +1 -1
- package/lib/orchestrator/experiment-identity.d.ts.map +1 -1
- package/lib/orchestrator/experiment-identity.js +28 -9
- package/lib/orchestrator/experiment-identity.js.map +1 -1
- package/lib/orchestrator/orchestrator.d.ts.map +1 -1
- package/lib/orchestrator/orchestrator.js +5 -3
- package/lib/orchestrator/orchestrator.js.map +1 -1
- package/lib/orchestrator/regrade.d.ts.map +1 -1
- package/lib/orchestrator/regrade.js +5 -1
- package/lib/orchestrator/regrade.js.map +1 -1
- package/package.json +1 -1
- package/skills/lux-answerer/SKILL.md +1 -1
- package/src/answerers/persona/index.ts +6 -1
- package/src/assertions/rubric/index.ts +14 -1
- package/src/assertions/rubric/internal.ts +10 -7
- package/src/cli/init-templates.ts +16 -78
- package/src/core/model-cli.ts +18 -2
- package/src/drivers/claude-code/index.ts +1 -1
- package/src/drivers/shared/experiment-policy.ts +5 -0
- package/src/orchestrator/doctor.ts +78 -17
- package/src/orchestrator/experiment-corpus.ts +10 -2
- package/src/orchestrator/experiment-identity.ts +41 -13
- package/src/orchestrator/orchestrator.ts +5 -8
- package/src/orchestrator/regrade.ts +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regrade.d.ts","sourceRoot":"","sources":["../../src/orchestrator/regrade.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,KAAK,QAAQ,EAMb,KAAK,QAAQ,EACb,KAAK,GAAG,EAKT,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"regrade.d.ts","sourceRoot":"","sources":["../../src/orchestrator/regrade.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,KAAK,QAAQ,EAMb,KAAK,QAAQ,EACb,KAAK,GAAG,EAKT,MAAM,kBAAkB,CAAC;AAe1B,eAAO,MAAM,+BAA+B,EAAG,CAAU,CAAC;AAE1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AA2IpE,eAAO,MAAM,iBAAiB,WACpB,MAAM,iBACC,QAAQ,YACd;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,KAClC,OAAO,CAAC,GAAG,CA+Bb,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,WAC1B,MAAM,iBACC,QAAQ,KACtB,OAAO,CAAC,GAAG,CAuEb,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAe,GAAG,KAAG,OAAO,CAAC,IAAI,CAKvE,CAAC;AAyLF,eAAO,MAAM,UAAU,YAAmB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,wFAAwF;IACxF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,CAwDtD,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
|
4
4
|
import { temporaryDirectory } from "tempy";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { ArtifactSchema, bindRunArtifactEvidence, contentHash, EvalCaseSchema, GradingReportSchema, inspectRunArtifact, PersistedCaseSchema, RunMetadataSchema, readInspectedFileBytes, readRunArtifactBytes, valueHash, } from "../core/index.js";
|
|
7
|
+
import { HarnessModelConfigSchema, resolveHarnessForDriver } from "../core/model-cli.js";
|
|
7
8
|
import { registryForEvalCase } from "./case-extensions.js";
|
|
8
9
|
import { evaluatorImplementationHash } from "./evaluator-identity.js";
|
|
9
10
|
import { parsePersistedJson, readBoundedHandle, safeReadJson } from "./fs-read.js";
|
|
@@ -405,12 +406,15 @@ export const regradeRun = async (options) => {
|
|
|
405
406
|
const validatedAssertionsHash = valueHash(validatedAssertionConfigs);
|
|
406
407
|
const assertionEvaluators = assertionEvaluatorIdentities(run.case.assertions ?? [], registry);
|
|
407
408
|
const assertionPlugins = assertionPluginIdentities(run.case.assertions ?? [], registry);
|
|
409
|
+
const configuredHarness = HarnessModelConfigSchema.safeParse(options.graderContext);
|
|
408
410
|
const graderHash = graderConfigHash({
|
|
409
411
|
luxVersion: LUX_VERSION,
|
|
410
412
|
implementationHash: await currentEvaluatorImplementationHash(),
|
|
411
413
|
assertions: assertionEvaluators,
|
|
412
414
|
validatedAssertionsHash,
|
|
413
|
-
graderContext:
|
|
415
|
+
graderContext: configuredHarness.success
|
|
416
|
+
? configuredHarness.data
|
|
417
|
+
: (options.graderContext ?? resolveHarnessForDriver(undefined, run.metadata.driver)),
|
|
414
418
|
});
|
|
415
419
|
const report = await gradeRun(run, registry, undefined, options.abortSignal, undefined, undefined, validatedAssertionConfigs);
|
|
416
420
|
let postEvaluationEvidenceHash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regrade.js","sourceRoot":"","sources":["../../src/orchestrator/regrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"regrade.js","sourceRoot":"","sources":["../../src/orchestrator/regrade.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prismatic-io/lux",
|
|
3
|
-
"version": "0.0.2-preview.
|
|
3
|
+
"version": "0.0.2-preview.41",
|
|
4
4
|
"description": "Coding-agent evaluation and improvement with deterministic assertions, optional LLM judges, and first-class human-in-the-loop runs.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/prismatic-io/lux",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lux-answerer
|
|
3
|
-
version: 0.0.2-preview.
|
|
3
|
+
version: 0.0.2-preview.41
|
|
4
4
|
description: Play the persona for a running Lux orchestrator that uses the claude-code answerer. Read structured events on stdout, decide answers from persona + context, write JSON to its answer channel.
|
|
5
5
|
user-invocable: false
|
|
6
6
|
allowed-tools: Bash, Read
|
|
@@ -69,7 +69,12 @@ Rules:
|
|
|
69
69
|
them with a suggestion or assumption from the agent's question.
|
|
70
70
|
- Include every persona constraint about each resource or operation the agent
|
|
71
71
|
mentions, including constraints its question omitted.
|
|
72
|
-
-
|
|
72
|
+
- Stay within the user's stated knowledge and authority. If material facts are
|
|
73
|
+
unavailable, say so; identify who could supply them only when known. Never
|
|
74
|
+
invent credentials, source behavior, platform guarantees, or completed work.
|
|
75
|
+
- You may supply ordinary conversational preferences consistent with the role.
|
|
76
|
+
Leave routine technical choices to the agent unless the task gives you that
|
|
77
|
+
responsibility; do not authorize unstated changes to business requirements.
|
|
73
78
|
- Follow the response format requested after the agent's fenced output. Do not
|
|
74
79
|
combine formats or append a conversation decision.`;
|
|
75
80
|
};
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
sumUsage,
|
|
15
15
|
type TokenUsage,
|
|
16
16
|
} from "../../core/index.js";
|
|
17
|
+
import { resolveHarnessForDriver } from "../../core/model-cli.js";
|
|
17
18
|
import { baseAssertionFields } from "../core/helpers.js";
|
|
18
19
|
import { RubricEvidenceSchema } from "./evidence.js";
|
|
19
20
|
import {
|
|
@@ -98,6 +99,13 @@ Rules:
|
|
|
98
99
|
demonstrated. Optional polish is outside the denominator. Do not invent gaps
|
|
99
100
|
to avoid awarding full credit, require perfection beyond the request, or force
|
|
100
101
|
scores into a distribution.
|
|
102
|
+
- Accept equivalent implementations that satisfy the requested constraints.
|
|
103
|
+
Do not require an unstated architecture, library, layout, or test framework.
|
|
104
|
+
- Distinguish an implementation defect from missing verification. Missing tests
|
|
105
|
+
reduce verification confidence; they do not by themselves prove working
|
|
106
|
+
behavior incorrect. Assess only consequences relevant to this criterion.
|
|
107
|
+
- Claims alone do not establish execution or runtime guarantees. Use actual
|
|
108
|
+
implementation and observed results where the criterion requires them.
|
|
101
109
|
- Missing or truncated evidence is not proof of failure or success. Abstain when
|
|
102
110
|
it prevents a supported judgment; do not guess a score.
|
|
103
111
|
- comment is one sentence explaining the judgment, citing specifics
|
|
@@ -264,7 +272,12 @@ export const createRubricAssertion = (
|
|
|
264
272
|
detail: { attempts: 0, toolInvocations: error.detail },
|
|
265
273
|
};
|
|
266
274
|
}
|
|
267
|
-
const result = await judgeRubric(
|
|
275
|
+
const result = await judgeRubric(
|
|
276
|
+
config,
|
|
277
|
+
evidence.prompt,
|
|
278
|
+
rubricRuntime(config, resolveHarnessForDriver(harness, run.metadata.driver)),
|
|
279
|
+
ctx,
|
|
280
|
+
);
|
|
268
281
|
const detail = typeof result.detail === "object" && result.detail !== null ? result.detail : {};
|
|
269
282
|
return evidence.toolInvocations
|
|
270
283
|
? { ...result, detail: { ...detail, toolInvocations: evidence.toolInvocations } }
|
|
@@ -334,11 +334,11 @@ const fitOptionalEvidence = (
|
|
|
334
334
|
return [fittedTrace, fittedArtifacts];
|
|
335
335
|
};
|
|
336
336
|
|
|
337
|
-
const artifactListing = (
|
|
337
|
+
const artifactListing = (artifacts: Run["artifacts"]): string[] => {
|
|
338
338
|
const listed: string[] = [];
|
|
339
339
|
let listingChars = 0;
|
|
340
|
-
for (const
|
|
341
|
-
const path = boundedText(
|
|
340
|
+
for (const artifact of artifacts.slice(0, ARTIFACT_LISTING_CAP)) {
|
|
341
|
+
const path = `[origin: ${artifact.origin ?? "unknown"}] ${boundedText(artifact.path, 500, "artifact path")}`;
|
|
342
342
|
if (listingChars + path.length > ARTIFACT_LISTING_CHARS) {
|
|
343
343
|
listed.push("[... artifact listing character budget exhausted ...]");
|
|
344
344
|
break;
|
|
@@ -346,8 +346,8 @@ const artifactListing = (paths: readonly string[]): string[] => {
|
|
|
346
346
|
listed.push(path);
|
|
347
347
|
listingChars += path.length;
|
|
348
348
|
}
|
|
349
|
-
if (
|
|
350
|
-
listed.push(`[... ${
|
|
349
|
+
if (artifacts.length > listed.length) {
|
|
350
|
+
listed.push(`[... ${artifacts.length - listed.length} more selected files omitted ...]`);
|
|
351
351
|
}
|
|
352
352
|
return listed;
|
|
353
353
|
};
|
|
@@ -372,10 +372,11 @@ export const sampleArtifacts = async (
|
|
|
372
372
|
return origin === undefined ? 1 : 0;
|
|
373
373
|
};
|
|
374
374
|
selected.sort((left, right) => priority(left.origin) - priority(right.origin));
|
|
375
|
-
const listed = artifactListing(selected
|
|
375
|
+
const listed = artifactListing(selected);
|
|
376
376
|
const out: string[] = [
|
|
377
377
|
`Files selected (${selected.length} of ${run.artifacts.length}):\n${listed.join("\n")}`,
|
|
378
378
|
"Selection counts refer to captured paths matching this criterion, not capture failures. Listed files are not necessarily shown in full below.",
|
|
379
|
+
"Origins compare captured paths and bytes with the supplied fixture snapshot: fixture = unchanged supplied file; modified = changed supplied file; generated = captured path absent from that snapshot; unknown = not established. Supplied content is baseline context, not proof of newly implemented work. Retained behavior can satisfy requirements; modified or generated files do not by themselves prove correctness or authorship.",
|
|
379
380
|
];
|
|
380
381
|
if (evidence?.includeArtifactContents === false) {
|
|
381
382
|
out.push("[File contents excluded by the evidence selector.]");
|
|
@@ -401,7 +402,7 @@ export const sampleArtifacts = async (
|
|
|
401
402
|
continue;
|
|
402
403
|
}
|
|
403
404
|
budget -= content.text.length;
|
|
404
|
-
const block =
|
|
405
|
+
const block = `Origin: ${artifact.origin ?? "unknown"}\n--- ${path} ---\n${content.text}${content.truncated ? "\n[File excerpt truncated; omitted content is unassessed.]" : ""}`;
|
|
405
406
|
framingBudget -= block.length - content.text.length + 2;
|
|
406
407
|
out.push(block);
|
|
407
408
|
}
|
|
@@ -511,6 +512,8 @@ export const buildJudgeEvidence = async (
|
|
|
511
512
|
`Criterion to judge: ${boundedText(config.criteria, 8_000, "criterion")}`,
|
|
512
513
|
"",
|
|
513
514
|
...(config.guidance ? [`Interpretation guidance: ${config.guidance}`, ""] : []),
|
|
515
|
+
`Evidence selection: recent trace event types are ${evidence.eventTypes.join(", ") || "none"}; tool detail is ${evidence.toolDetail}. Unselected events and excluded artifact contents are not evidence of missing work.`,
|
|
516
|
+
"",
|
|
514
517
|
...(invocations ? [invocations.text, ""] : []),
|
|
515
518
|
].join("\n");
|
|
516
519
|
const assemble = (recent: string, files: string): string =>
|
|
@@ -15,7 +15,6 @@ export const luxConfigBody = (
|
|
|
15
15
|
const subjectRoot = withExperiment ? ' subjectRoot: ".",\n' : "";
|
|
16
16
|
const profiles = withExperiment ? " profiles: { starter: {} },\n" : "";
|
|
17
17
|
const selectedDriver = driver ?? (withExperiment ? undefined : "subprocess");
|
|
18
|
-
const modelField = model ? `model: ${JSON.stringify(model)}, ` : "";
|
|
19
18
|
let defaultDriver: string;
|
|
20
19
|
if (selectedDriver === "subprocess") {
|
|
21
20
|
defaultDriver = ` defaultDriver: { name: "subprocess", config: {
|
|
@@ -25,40 +24,17 @@ export const luxConfigBody = (
|
|
|
25
24
|
} },
|
|
26
25
|
`;
|
|
27
26
|
} else if (selectedDriver) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
cursor: "",
|
|
32
|
-
"grok-build": 'reasoningEffort: "low", permissionMode: "auto"',
|
|
33
|
-
copilot: 'reasoningEffort: "low"',
|
|
34
|
-
antigravity: 'reasoningEffort: "low"',
|
|
35
|
-
};
|
|
36
|
-
defaultDriver = ` defaultDriver: { name: ${JSON.stringify(selectedDriver)}, config: { ${modelField}${efforts[selectedDriver]} } },
|
|
37
|
-
`;
|
|
27
|
+
defaultDriver = model
|
|
28
|
+
? ` defaultDriver: { name: ${JSON.stringify(selectedDriver)}, config: { model: ${JSON.stringify(model)} } },\n`
|
|
29
|
+
: ` defaultDriver: ${JSON.stringify(selectedDriver)},\n`;
|
|
38
30
|
} else {
|
|
39
|
-
defaultDriver = ` // Select a driver with lux init --experiment --driver codex --force
|
|
40
|
-
// defaultDriver: { name: "codex", config: { reasoningEffort: "low" } },
|
|
41
|
-
`;
|
|
31
|
+
defaultDriver = ` // Select a driver with lux init --experiment --driver codex --force.\n`;
|
|
42
32
|
}
|
|
43
33
|
return `${selectedDriver === "subprocess" ? 'import { fileURLToPath } from "node:url";\n' : ""}import type { LuxConfig } from "@prismatic-io/lux";
|
|
44
34
|
|
|
45
|
-
/**
|
|
46
|
-
* Lux project configuration. Drivers, answerers, and assertions
|
|
47
|
-
* register here; \`lux run\` discovers cases under \`casesRoot\`.
|
|
48
|
-
*/
|
|
49
35
|
const config: LuxConfig = {
|
|
50
36
|
casesRoot: "./cases",
|
|
51
|
-
|
|
52
|
-
runsRoot: "./.lux-runs",
|
|
53
|
-
${subjectRoot} // Runners default to cheap models and low effort instead of inheriting CLI defaults.
|
|
54
|
-
${defaultDriver} // Persona answerers and rubric judges default to cheap models and low effort.
|
|
55
|
-
// Override both explicitly when a stronger harness is worth the added cost:
|
|
56
|
-
// harness: { provider: "codex", model: "YOUR_HARNESS_MODEL" },
|
|
57
|
-
defaultAnswerer: "persona",
|
|
58
|
-
${profiles} // drivers: [/* register drivers here */],
|
|
59
|
-
// answerers: [/* register answerers here */],
|
|
60
|
-
// assertions: [/* register custom assertions here */],
|
|
61
|
-
};
|
|
37
|
+
${subjectRoot}${defaultDriver}${profiles}};
|
|
62
38
|
|
|
63
39
|
export default config;
|
|
64
40
|
`;
|
|
@@ -73,12 +49,11 @@ await writeFile(join(process.env.LUX_ARTIFACTS_DIR, "add.mjs"), "export const ad
|
|
|
73
49
|
send({ type: "done", summary: "Wrote add.mjs" });
|
|
74
50
|
`;
|
|
75
51
|
|
|
76
|
-
const ADDITION_COMMAND = `
|
|
52
|
+
const ADDITION_COMMAND = `import assert from 'node:assert/strict'; import { add } from './add.mjs'; assert.equal(add(2, 3), 5); assert.equal(add(-2, 2), 0); assert.equal(add(0, 0), 0);`;
|
|
77
53
|
|
|
78
54
|
export const SAMPLE_CASE_BODY = `import { defineEvalCase } from "@prismatic-io/lux";
|
|
79
55
|
|
|
80
56
|
export default defineEvalCase({
|
|
81
|
-
id: "addition",
|
|
82
57
|
prompt: "Write add.mjs exporting add(a, b). It must add two numbers, including negative numbers and zero.",
|
|
83
58
|
assertions: [
|
|
84
59
|
{ id: "completed", type: "run-succeeded" },
|
|
@@ -86,7 +61,7 @@ export default defineEvalCase({
|
|
|
86
61
|
{
|
|
87
62
|
id: "adds-correctly",
|
|
88
63
|
type: "command-exits-zero",
|
|
89
|
-
command: ${JSON.stringify(ADDITION_COMMAND)},
|
|
64
|
+
command: [process.execPath, "--input-type=module", "-e", ${JSON.stringify(ADDITION_COMMAND)}],
|
|
90
65
|
},
|
|
91
66
|
],
|
|
92
67
|
});
|
|
@@ -98,7 +73,6 @@ export const EXPERIMENT_SAMPLE_CASE_BODY = `import { defineEvalCase } from "@pri
|
|
|
98
73
|
* A starter smoke case. It inherits the default driver from lux.config.ts.
|
|
99
74
|
*/
|
|
100
75
|
export default defineEvalCase({
|
|
101
|
-
id: "hello-world",
|
|
102
76
|
prompt: "Say hello to the world.",
|
|
103
77
|
assertions: [{ id: "completed", type: "run-succeeded" }],
|
|
104
78
|
});
|
|
@@ -106,51 +80,15 @@ export default defineEvalCase({
|
|
|
106
80
|
|
|
107
81
|
export const README_BODY = `# Lux evals
|
|
108
82
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
- \`lux.config.ts\` — project configuration: default driver/answerer and registered plugins.
|
|
114
|
-
- \`cases/\` — one TypeScript file per eval case. Default-export a \`defineEvalCase({...})\`.
|
|
115
|
-
- \`fixtures/\` — starting state for cases that need pre-staged input.
|
|
116
|
-
- \`.lux-runs/\` — run output, gitignored.
|
|
117
|
-
|
|
118
|
-
## Setup
|
|
119
|
-
|
|
120
|
-
Install Lux in the project so authored TypeScript cases can resolve its API:
|
|
121
|
-
|
|
122
|
-
\`\`\`bash
|
|
123
|
-
npm install --save-dev @prismatic-io/lux
|
|
124
|
-
\`\`\`
|
|
125
|
-
|
|
126
|
-
## First result
|
|
127
|
-
|
|
128
|
-
The default starter uses a local deterministic agent and makes no model calls.
|
|
129
|
-
Run \`npm exec -- lux run\`, then \`npm exec -- lux view\` to inspect its
|
|
130
|
-
artifact and behavioral assertions. In \`agent/demo.mjs\`, replace \`a + b\`
|
|
131
|
-
with \`a - b\` and run again: the agent completes, but the behavioral assertion
|
|
132
|
-
fails. Restore addition and rerun to see it pass.
|
|
133
|
-
|
|
134
|
-
For a real coding agent, scaffold with \`lux init --driver claude-code\` or
|
|
135
|
-
\`lux init --driver codex\`. Cursor, Copilot, and Antigravity require an
|
|
136
|
-
explicit model, for example \`lux init --driver copilot --model <model-id>\`.
|
|
137
|
-
These modes make model calls when you run cases and require the corresponding
|
|
138
|
-
authenticated CLI.
|
|
139
|
-
|
|
140
|
-
## Run cases
|
|
141
|
-
|
|
142
|
-
\`lux run\` discovers every case under \`casesRoot\` and runs it. Filter by
|
|
143
|
-
name/path substring, by \`--tag\`, or repeat each matched eval with \`--loop\`:
|
|
83
|
+
Write tasks and assertions in \`cases/\`; choose the driver in \`lux.config.ts\`.
|
|
84
|
+
Run \`npm exec -- lux run\`, then \`npm exec -- lux view\` to inspect results.
|
|
85
|
+
Pass a case name to run only matching cases. Results are saved in \`.lux-runs/\`.
|
|
144
86
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
npm exec -- lux run cases/addition.ts # one file directly
|
|
149
|
-
npm exec -- lux run --tag smoke # cases tagged "smoke" (meta.tags)
|
|
150
|
-
npm exec -- lux run --loop 5 # run each matched eval 5 times
|
|
151
|
-
\`\`\`
|
|
87
|
+
The default starter uses a deterministic demo agent without model calls.
|
|
88
|
+
Changing \`a + b\` to \`a - b\` in \`agent/demo.mjs\` demonstrates a failed check.
|
|
89
|
+
Scaffolding with \`--driver\` instead uses that agent's authenticated CLI and model account.
|
|
152
90
|
|
|
153
|
-
See
|
|
91
|
+
See [Lux](https://github.com/prismatic-io/lux) for setup and available assertions.
|
|
154
92
|
`;
|
|
155
93
|
|
|
156
94
|
export const STARTER_PROMPT_BODY = `# Starter agent instructions
|
|
@@ -170,7 +108,7 @@ export const experimentCaseBody = (
|
|
|
170
108
|
"assert.equal(result(12, 0, 10), 10); assert.equal(result(-1, 0, 10), 0); assert.equal(result(5, 0, 10), 5)",
|
|
171
109
|
test: "assert.equal(result(' Lux REVIEW '), 'lux review'); assert.equal(result(''), '')",
|
|
172
110
|
};
|
|
173
|
-
const command = `
|
|
111
|
+
const command = `import assert from 'node:assert/strict'; import { result } from './result.mjs'; ${checks[split]};`;
|
|
174
112
|
return `import { defineEvalCase, subjectPath } from "@prismatic-io/lux";
|
|
175
113
|
|
|
176
114
|
export default defineEvalCase({
|
|
@@ -181,7 +119,7 @@ export default defineEvalCase({
|
|
|
181
119
|
].join("\\n\\n"),
|
|
182
120
|
assertions: [
|
|
183
121
|
{ id: "completed", type: "run-succeeded" },
|
|
184
|
-
{ id: "behavior", type: "command-exits-zero", command: ${JSON.stringify(command)} },
|
|
122
|
+
{ id: "behavior", type: "command-exits-zero", command: [process.execPath, "--input-type=module", "-e", ${JSON.stringify(command)}] },
|
|
185
123
|
],
|
|
186
124
|
meta: { tags: [${JSON.stringify(split)}] },
|
|
187
125
|
});
|
package/src/core/model-cli.ts
CHANGED
|
@@ -66,13 +66,17 @@ const discoverCliVersionOnce = async (command: string): Promise<string | undefin
|
|
|
66
66
|
export const HarnessModelConfigSchema = z
|
|
67
67
|
.object({
|
|
68
68
|
provider: ModelCliProviderSchema,
|
|
69
|
-
model: z.string().min(1),
|
|
69
|
+
model: z.string().min(1).optional(),
|
|
70
70
|
command: z.string().optional(),
|
|
71
71
|
inheritEnv: InheritEnvironmentSchema.optional(),
|
|
72
72
|
env: z.record(z.string(), z.string()).optional(),
|
|
73
73
|
reasoningEffort: ReasoningEffortSchema.optional(),
|
|
74
74
|
})
|
|
75
75
|
.strict()
|
|
76
|
+
.transform((config) => ({
|
|
77
|
+
...config,
|
|
78
|
+
model: config.model ?? defaultHarnessModel(config.provider),
|
|
79
|
+
}))
|
|
76
80
|
.superRefine((config, ctx) => {
|
|
77
81
|
const issue = effortIssue(
|
|
78
82
|
providerCatalog(config.provider),
|
|
@@ -81,7 +85,19 @@ export const HarnessModelConfigSchema = z
|
|
|
81
85
|
);
|
|
82
86
|
if (issue) ctx.addIssue({ code: "custom", path: ["reasoningEffort"], message: issue });
|
|
83
87
|
});
|
|
84
|
-
export type HarnessModelConfig = z.
|
|
88
|
+
export type HarnessModelConfig = z.input<typeof HarnessModelConfigSchema>;
|
|
89
|
+
|
|
90
|
+
/** Infer only the provider, never the subject's model, environment, or permissions. */
|
|
91
|
+
export const resolveHarnessForDriver = (
|
|
92
|
+
harness: HarnessModelConfig | undefined,
|
|
93
|
+
driver: string | { name: string } | undefined,
|
|
94
|
+
): z.output<typeof HarnessModelConfigSchema> | undefined => {
|
|
95
|
+
if (harness) return HarnessModelConfigSchema.parse(harness);
|
|
96
|
+
const name = typeof driver === "string" ? driver : driver?.name;
|
|
97
|
+
return name === "codex" || name === "claude-code"
|
|
98
|
+
? { provider: name, model: defaultHarnessModel(name) }
|
|
99
|
+
: undefined;
|
|
100
|
+
};
|
|
85
101
|
|
|
86
102
|
/** Merge harness defaults without carrying provider-specific values across providers. */
|
|
87
103
|
export const mergeHarnessModelConfig = (
|
|
@@ -120,7 +120,7 @@ export const ClaudeCodeDriverConfigSchema = z
|
|
|
120
120
|
* `defer-resume` uses Claude Code's persisted tool deferral protocol.
|
|
121
121
|
* `stream-json` is the legacy live-stdin protocol for compatible stubs.
|
|
122
122
|
*/
|
|
123
|
-
interactionMode: z.enum(["defer-resume", "stream-json"]).default("
|
|
123
|
+
interactionMode: z.enum(["defer-resume", "stream-json"]).default("defer-resume"),
|
|
124
124
|
/**
|
|
125
125
|
* Treat a terminal agent message containing a question as an interrupt
|
|
126
126
|
* when a weaker model asks in text instead of calling `askToolName`.
|
|
@@ -154,6 +154,11 @@ const bindClaudeExperimentConfig = (
|
|
|
154
154
|
driverEnv: Record<string, unknown>,
|
|
155
155
|
): unknown => {
|
|
156
156
|
if (config.isolation) return config;
|
|
157
|
+
// Deferred questions require Lux's trusted hook, so isolate ambient hooks
|
|
158
|
+
// instead of disabling every hook through conflicting --settings arguments.
|
|
159
|
+
if (config.interactionMode !== "stream-json") {
|
|
160
|
+
return { ...config, isolation: { allowRead: [] } };
|
|
161
|
+
}
|
|
157
162
|
return {
|
|
158
163
|
...config,
|
|
159
164
|
extraArgs: [
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
permutationId,
|
|
16
16
|
type Registry,
|
|
17
17
|
} from "../core/index.js";
|
|
18
|
+
import { resolveHarnessForDriver } from "../core/model-cli.js";
|
|
18
19
|
import { mergeDriverReference, withDriverDefaults } from "../core/reference-defaults.js";
|
|
19
20
|
import { registryForEvalCase } from "./case-extensions.js";
|
|
20
21
|
import { buildRegistryFromConfig, loadLuxConfig, type ResolvedLuxConfig } from "./config.js";
|
|
@@ -189,14 +190,11 @@ const answererCommand = (reference: unknown): string | undefined => {
|
|
|
189
190
|
return config.provider === "codex" ? "codex" : "claude";
|
|
190
191
|
};
|
|
191
192
|
|
|
192
|
-
const rubricCommands = (
|
|
193
|
+
const rubricCommands = (
|
|
194
|
+
assertion: unknown,
|
|
195
|
+
harnesses: ReturnType<typeof resolveHarnessForDriver>[],
|
|
196
|
+
): string[] => {
|
|
193
197
|
const rubric = RubricConfigSchema.parse(assertion);
|
|
194
|
-
const harnesses = [
|
|
195
|
-
config.harness,
|
|
196
|
-
...Object.values(config.profiles ?? {}).map(
|
|
197
|
-
(profile) => resolveProfile(config, profile).harness,
|
|
198
|
-
),
|
|
199
|
-
];
|
|
200
198
|
const commands = harnesses.map((harness) => {
|
|
201
199
|
const provider = rubric.provider ?? harness?.provider ?? "claude-code";
|
|
202
200
|
const inheritsHarness = rubric.provider === undefined || rubric.provider === harness?.provider;
|
|
@@ -225,7 +223,19 @@ const configuredCliTargets = (config: ResolvedLuxConfig, registry: Registry): Cl
|
|
|
225
223
|
/* Reported by validateConfiguredMatrix. */
|
|
226
224
|
}
|
|
227
225
|
}
|
|
228
|
-
|
|
226
|
+
const base = resolveProfile(config);
|
|
227
|
+
if (base.driver || base.harness) {
|
|
228
|
+
add(
|
|
229
|
+
"default answerer",
|
|
230
|
+
answererCommand(
|
|
231
|
+
resolveAnswererReference(
|
|
232
|
+
{ prompt: "" },
|
|
233
|
+
base.answerer ?? config.defaultAnswerer,
|
|
234
|
+
resolveHarnessForDriver(base.harness, base.driver),
|
|
235
|
+
),
|
|
236
|
+
),
|
|
237
|
+
);
|
|
238
|
+
}
|
|
229
239
|
if (config.harness) {
|
|
230
240
|
add(
|
|
231
241
|
"default harness",
|
|
@@ -238,7 +248,17 @@ const configuredCliTargets = (config: ResolvedLuxConfig, registry: Registry): Cl
|
|
|
238
248
|
for (const command of driverCommands(resolveProfile(config, profile).driver, registry)) {
|
|
239
249
|
add(`profile '${id}' driver`, command);
|
|
240
250
|
}
|
|
241
|
-
|
|
251
|
+
const resolved = resolveProfile(config, profile);
|
|
252
|
+
add(
|
|
253
|
+
`profile '${id}' answerer`,
|
|
254
|
+
answererCommand(
|
|
255
|
+
resolveAnswererReference(
|
|
256
|
+
{ prompt: "" },
|
|
257
|
+
resolved.answerer ?? config.defaultAnswerer,
|
|
258
|
+
resolveHarnessForDriver(resolved.harness, resolved.driver),
|
|
259
|
+
),
|
|
260
|
+
),
|
|
261
|
+
);
|
|
242
262
|
const harness = resolveProfile(config, profile).harness;
|
|
243
263
|
if (harness) {
|
|
244
264
|
add(
|
|
@@ -569,7 +589,7 @@ const validateCaseAnswerer = (
|
|
|
569
589
|
const validateCaseAssertions = async (
|
|
570
590
|
caseId: string,
|
|
571
591
|
authored: EvalCase,
|
|
572
|
-
|
|
592
|
+
harnesses: ReturnType<typeof resolveHarnessForDriver>[],
|
|
573
593
|
registry: Registry,
|
|
574
594
|
recorder: DoctorRecorder,
|
|
575
595
|
): Promise<CliTarget[]> => {
|
|
@@ -601,7 +621,7 @@ const validateCaseAssertions = async (
|
|
|
601
621
|
);
|
|
602
622
|
}
|
|
603
623
|
if (assertion.type === "rubric") {
|
|
604
|
-
for (const command of rubricCommands(assertion,
|
|
624
|
+
for (const command of rubricCommands(assertion, harnesses)) {
|
|
605
625
|
targets.push({ label: `case '${caseId}' rubric judge`, command });
|
|
606
626
|
}
|
|
607
627
|
}
|
|
@@ -635,13 +655,54 @@ const inspectCase = async (
|
|
|
635
655
|
try {
|
|
636
656
|
const authored = await loadEvalCase(discovered.path);
|
|
637
657
|
const caseRegistry = registryForEvalCase(registry, authored);
|
|
638
|
-
const
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
658
|
+
const profiles = [
|
|
659
|
+
resolveProfile(config),
|
|
660
|
+
...Object.values(config.profiles ?? {}).map((profile) => resolveProfile(config, profile)),
|
|
661
|
+
];
|
|
662
|
+
const contexts = profiles.flatMap((profile, index) => {
|
|
663
|
+
const drivers = caseDriverReferences(
|
|
664
|
+
authored,
|
|
665
|
+
{
|
|
666
|
+
...config,
|
|
667
|
+
profiles: {},
|
|
668
|
+
defaultDriver: profile.driver,
|
|
669
|
+
...(index > 0 ? { matrix: undefined } : {}),
|
|
670
|
+
},
|
|
671
|
+
caseRegistry,
|
|
672
|
+
);
|
|
673
|
+
return drivers.map((driver) => {
|
|
674
|
+
const harness = resolveHarnessForDriver(profile.harness, refName(driver));
|
|
675
|
+
return {
|
|
676
|
+
driver,
|
|
677
|
+
harness,
|
|
678
|
+
answerer: resolveAnswererReference(
|
|
679
|
+
authored,
|
|
680
|
+
profile.answerer ?? config.defaultAnswerer,
|
|
681
|
+
harness,
|
|
682
|
+
),
|
|
683
|
+
};
|
|
684
|
+
});
|
|
685
|
+
});
|
|
686
|
+
validateCaseDrivers(
|
|
687
|
+
discovered.id,
|
|
688
|
+
contexts.map(({ driver }) => driver),
|
|
689
|
+
caseRegistry,
|
|
690
|
+
recorder,
|
|
691
|
+
authored.requires,
|
|
692
|
+
);
|
|
693
|
+
for (const { answerer } of contexts)
|
|
694
|
+
validateCaseAnswerer(discovered.id, answerer, caseRegistry, recorder);
|
|
642
695
|
return [
|
|
643
|
-
...(await validateCaseAssertions(
|
|
644
|
-
|
|
696
|
+
...(await validateCaseAssertions(
|
|
697
|
+
discovered.id,
|
|
698
|
+
authored,
|
|
699
|
+
contexts.map(({ harness }) => harness),
|
|
700
|
+
caseRegistry,
|
|
701
|
+
recorder,
|
|
702
|
+
)),
|
|
703
|
+
...contexts.flatMap(({ driver, answerer }) =>
|
|
704
|
+
executionTargetsForCase(discovered.id, [driver], answerer, caseRegistry),
|
|
705
|
+
),
|
|
645
706
|
];
|
|
646
707
|
} catch (error) {
|
|
647
708
|
recorder.add(
|