@prismatic-io/lux 0.0.2-preview.29 → 0.0.2-preview.30

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 (152) hide show
  1. package/lib/answerers/persona/index.d.ts +6 -0
  2. package/lib/answerers/persona/index.d.ts.map +1 -1
  3. package/lib/answerers/persona/index.js +5 -0
  4. package/lib/answerers/persona/index.js.map +1 -1
  5. package/lib/assertions/core/command-exits-zero.d.ts +2 -0
  6. package/lib/assertions/core/command-exits-zero.d.ts.map +1 -1
  7. package/lib/assertions/core/command-exits-zero.js +46 -4
  8. package/lib/assertions/core/command-exits-zero.js.map +1 -1
  9. package/lib/assertions/rubric/index.d.ts +16 -0
  10. package/lib/assertions/rubric/index.d.ts.map +1 -1
  11. package/lib/assertions/rubric/index.js +34 -3
  12. package/lib/assertions/rubric/index.js.map +1 -1
  13. package/lib/assertions/rubric/internal.d.ts +14 -0
  14. package/lib/assertions/rubric/internal.d.ts.map +1 -1
  15. package/lib/assertions/rubric/internal.js +122 -12
  16. package/lib/assertions/rubric/internal.js.map +1 -1
  17. package/lib/core/agent-environment.d.ts +5 -0
  18. package/lib/core/agent-environment.d.ts.map +1 -0
  19. package/lib/core/agent-environment.js +47 -0
  20. package/lib/core/agent-environment.js.map +1 -0
  21. package/lib/core/command-verification.d.ts +10 -0
  22. package/lib/core/command-verification.d.ts.map +1 -0
  23. package/lib/core/command-verification.js +66 -0
  24. package/lib/core/command-verification.js.map +1 -0
  25. package/lib/core/driver.d.ts +7 -0
  26. package/lib/core/driver.d.ts.map +1 -1
  27. package/lib/core/driver.js +2 -0
  28. package/lib/core/driver.js.map +1 -1
  29. package/lib/core/index.d.ts +2 -0
  30. package/lib/core/index.d.ts.map +1 -1
  31. package/lib/core/index.js +2 -0
  32. package/lib/core/index.js.map +1 -1
  33. package/lib/core/model-cli.d.ts +5 -0
  34. package/lib/core/model-cli.d.ts.map +1 -1
  35. package/lib/core/model-cli.js +8 -2
  36. package/lib/core/model-cli.js.map +1 -1
  37. package/lib/core/run.d.ts +5 -0
  38. package/lib/core/run.d.ts.map +1 -1
  39. package/lib/core/secure-copy.d.ts.map +1 -0
  40. package/lib/core/secure-copy.js.map +1 -0
  41. package/lib/drivers/antigravity/config.d.ts +3 -0
  42. package/lib/drivers/antigravity/config.d.ts.map +1 -1
  43. package/lib/drivers/antigravity/config.js +2 -0
  44. package/lib/drivers/antigravity/config.js.map +1 -1
  45. package/lib/drivers/antigravity/index.d.ts +4 -0
  46. package/lib/drivers/antigravity/index.d.ts.map +1 -1
  47. package/lib/drivers/antigravity/runtime.d.ts.map +1 -1
  48. package/lib/drivers/antigravity/runtime.js +7 -2
  49. package/lib/drivers/antigravity/runtime.js.map +1 -1
  50. package/lib/drivers/claude-code/index.d.ts +18 -4
  51. package/lib/drivers/claude-code/index.d.ts.map +1 -1
  52. package/lib/drivers/claude-code/index.js +97 -200
  53. package/lib/drivers/claude-code/index.js.map +1 -1
  54. package/lib/drivers/claude-code/isolation.d.ts +8 -0
  55. package/lib/drivers/claude-code/isolation.d.ts.map +1 -0
  56. package/lib/drivers/claude-code/isolation.js +199 -0
  57. package/lib/drivers/claude-code/isolation.js.map +1 -0
  58. package/lib/drivers/codex/config.d.ts +3 -0
  59. package/lib/drivers/codex/config.d.ts.map +1 -1
  60. package/lib/drivers/codex/config.js +2 -0
  61. package/lib/drivers/codex/config.js.map +1 -1
  62. package/lib/drivers/codex/index.d.ts +4 -0
  63. package/lib/drivers/codex/index.d.ts.map +1 -1
  64. package/lib/drivers/codex/index.js +52 -24
  65. package/lib/drivers/codex/index.js.map +1 -1
  66. package/lib/drivers/copilot/config.d.ts +3 -0
  67. package/lib/drivers/copilot/config.d.ts.map +1 -1
  68. package/lib/drivers/copilot/config.js +2 -0
  69. package/lib/drivers/copilot/config.js.map +1 -1
  70. package/lib/drivers/copilot/index.d.ts +4 -0
  71. package/lib/drivers/copilot/index.d.ts.map +1 -1
  72. package/lib/drivers/copilot/index.js +2 -1
  73. package/lib/drivers/copilot/index.js.map +1 -1
  74. package/lib/drivers/cursor/config.d.ts +1 -0
  75. package/lib/drivers/cursor/config.d.ts.map +1 -1
  76. package/lib/drivers/cursor/config.js +2 -0
  77. package/lib/drivers/cursor/config.js.map +1 -1
  78. package/lib/drivers/cursor/index.d.ts +2 -0
  79. package/lib/drivers/cursor/index.d.ts.map +1 -1
  80. package/lib/drivers/cursor/index.js +2 -1
  81. package/lib/drivers/cursor/index.js.map +1 -1
  82. package/lib/drivers/grok-build/config.d.ts +3 -0
  83. package/lib/drivers/grok-build/config.d.ts.map +1 -1
  84. package/lib/drivers/grok-build/config.js +2 -0
  85. package/lib/drivers/grok-build/config.js.map +1 -1
  86. package/lib/drivers/grok-build/index.d.ts +4 -0
  87. package/lib/drivers/grok-build/index.d.ts.map +1 -1
  88. package/lib/drivers/grok-build/index.js +2 -1
  89. package/lib/drivers/grok-build/index.js.map +1 -1
  90. package/lib/drivers/subprocess/index.d.ts +3 -3
  91. package/lib/drivers/subprocess/index.d.ts.map +1 -1
  92. package/lib/drivers/subprocess/index.js +5 -2
  93. package/lib/drivers/subprocess/index.js.map +1 -1
  94. package/lib/orchestrator/artifact-origin.d.ts +3 -0
  95. package/lib/orchestrator/artifact-origin.d.ts.map +1 -0
  96. package/lib/orchestrator/artifact-origin.js +40 -0
  97. package/lib/orchestrator/artifact-origin.js.map +1 -0
  98. package/lib/orchestrator/config.d.ts +6 -0
  99. package/lib/orchestrator/config.d.ts.map +1 -1
  100. package/lib/orchestrator/experiment-context.d.ts +2 -0
  101. package/lib/orchestrator/experiment-context.d.ts.map +1 -1
  102. package/lib/orchestrator/experiment-corpus.d.ts.map +1 -1
  103. package/lib/orchestrator/experiment-corpus.js +2 -2
  104. package/lib/orchestrator/experiment-corpus.js.map +1 -1
  105. package/lib/orchestrator/experiment-identity.d.ts.map +1 -1
  106. package/lib/orchestrator/experiment-identity.js +4 -4
  107. package/lib/orchestrator/experiment-identity.js.map +1 -1
  108. package/lib/orchestrator/fixture-identity.d.ts +1 -0
  109. package/lib/orchestrator/fixture-identity.d.ts.map +1 -1
  110. package/lib/orchestrator/fixture-identity.js +6 -1
  111. package/lib/orchestrator/fixture-identity.js.map +1 -1
  112. package/lib/orchestrator/orchestrator.d.ts.map +1 -1
  113. package/lib/orchestrator/orchestrator.js +2 -2
  114. package/lib/orchestrator/orchestrator.js.map +1 -1
  115. package/lib/orchestrator/run-execution.d.ts.map +1 -1
  116. package/lib/orchestrator/run-execution.js +14 -3
  117. package/lib/orchestrator/run-execution.js.map +1 -1
  118. package/package.json +1 -1
  119. package/skills/lux-answerer/SKILL.md +1 -1
  120. package/src/answerers/persona/index.ts +5 -0
  121. package/src/assertions/core/command-exits-zero.ts +57 -4
  122. package/src/assertions/rubric/index.ts +38 -3
  123. package/src/assertions/rubric/internal.ts +172 -11
  124. package/src/core/agent-environment.ts +64 -0
  125. package/src/core/command-verification.ts +74 -0
  126. package/src/core/driver.ts +4 -0
  127. package/src/core/index.ts +2 -0
  128. package/src/core/model-cli.ts +14 -2
  129. package/src/drivers/antigravity/config.ts +2 -0
  130. package/src/drivers/antigravity/runtime.ts +8 -2
  131. package/src/drivers/claude-code/index.ts +112 -221
  132. package/src/drivers/claude-code/isolation.ts +228 -0
  133. package/src/drivers/codex/config.ts +2 -0
  134. package/src/drivers/codex/index.ts +71 -31
  135. package/src/drivers/copilot/config.ts +2 -0
  136. package/src/drivers/copilot/index.ts +2 -1
  137. package/src/drivers/cursor/config.ts +2 -0
  138. package/src/drivers/cursor/index.ts +2 -1
  139. package/src/drivers/grok-build/config.ts +2 -0
  140. package/src/drivers/grok-build/index.ts +2 -1
  141. package/src/drivers/subprocess/index.ts +5 -2
  142. package/src/orchestrator/artifact-origin.ts +50 -0
  143. package/src/orchestrator/experiment-corpus.ts +10 -7
  144. package/src/orchestrator/experiment-identity.ts +16 -13
  145. package/src/orchestrator/fixture-identity.ts +9 -1
  146. package/src/orchestrator/orchestrator.ts +12 -6
  147. package/src/orchestrator/run-execution.ts +21 -4
  148. package/lib/drivers/shared/secure-copy.d.ts.map +0 -1
  149. package/lib/drivers/shared/secure-copy.js.map +0 -1
  150. /package/lib/{drivers/shared → core}/secure-copy.d.ts +0 -0
  151. /package/lib/{drivers/shared → core}/secure-copy.js +0 -0
  152. /package/src/{drivers/shared → core}/secure-copy.ts +0 -0
@@ -1,7 +1,8 @@
1
1
  import { cp } from "node:fs/promises";
2
2
  import { dirname, isAbsolute, resolve } from "node:path";
3
3
  import { z } from "zod";
4
- import { AnswererModelAccountingSchema, AnswererModelCallAccountingSchema, actionTiming, emptyUsage, guardRunObserver, inspectRunArtifact, normalizeDriverMetrics, summarizeAgentActivity, summarizeToolOutcomes, sumUsage, TokenUsageSchema, valueHash, } from "../core/index.js";
4
+ import { AnswererModelAccountingSchema, AnswererModelCallAccountingSchema, actionTiming, bindRunExecutionWorkspace, emptyUsage, guardRunObserver, inspectRunArtifact, normalizeDriverMetrics, summarizeAgentActivity, summarizeToolOutcomes, sumUsage, TokenUsageSchema, valueHash, } from "../core/index.js";
5
+ import { identifyArtifactOrigins } from "./artifact-origin.js";
5
6
  import { createDriverSession, } from "./driver-session.js";
6
7
  import { fixtureIdentity } from "./fixture-identity.js";
7
8
  import { gradeRun } from "./grading.js";
@@ -38,7 +39,11 @@ const stageFixtures = async (ref, options) => {
38
39
  if (staged.hash !== source.hash) {
39
40
  throw new Error(`fixtures: tree changed while staging: ${source.rootDir}`);
40
41
  }
41
- return { fixtures: { rootDir: source.rootDir }, hash: staged.hash };
42
+ return {
43
+ fixtures: { rootDir: source.rootDir },
44
+ hash: staged.hash,
45
+ fileHashes: staged.fileHashes,
46
+ };
42
47
  };
43
48
  export const runDirOfError = (error) => error instanceof Error && typeof error.luxRunDir === "string"
44
49
  ? error.luxRunDir
@@ -184,6 +189,7 @@ class RunExecution {
184
189
  loop;
185
190
  ready;
186
191
  fixturesHash;
192
+ fixtureFileHashes = new Map();
187
193
  startAttempted = false;
188
194
  loopOutcome;
189
195
  collection = { artifacts: [] };
@@ -242,6 +248,7 @@ class RunExecution {
242
248
  artifactsDir: this.workspace.path,
243
249
  });
244
250
  this.fixturesHash = staged?.hash;
251
+ this.fixtureFileHashes = staged?.fileHashes ?? new Map();
245
252
  if (request.abortSignal?.aborted)
246
253
  return;
247
254
  this.lifecycle("start-driver");
@@ -299,6 +306,9 @@ class RunExecution {
299
306
  this.metadata = completed.metadata;
300
307
  this.usage = completed.usage;
301
308
  this.run = completed.run;
309
+ const executionWorkspace = await this.args.driver.verificationWorkspace?.();
310
+ if (executionWorkspace)
311
+ bindRunExecutionWorkspace(this.run, executionWorkspace);
302
312
  await writeFrozenCase(this.runDir.path, this.args.authoredCase, this.args.casePath);
303
313
  await this.runDir.writeJson("run.json", completed.metadata);
304
314
  await this.runDir.writeJson("artifacts.json", this.collection.artifacts);
@@ -429,8 +439,9 @@ class RunExecution {
429
439
  try {
430
440
  await this.args.driver.quiesce?.();
431
441
  const artifacts = await this.args.driver.collect();
442
+ const archived = (await this.workspace?.archive(this.runDir.artifactsDir, artifacts)) ?? artifacts;
432
443
  return {
433
- artifacts: (await this.workspace?.archive(this.runDir.artifactsDir, artifacts)) ?? artifacts,
444
+ artifacts: await identifyArtifactOrigins(this.runDir.path, archived, this.fixtureFileHashes),
434
445
  };
435
446
  }
436
447
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"run-execution.js","sourceRoot":"","sources":["../../src/orchestrator/run-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-execution.js","sourceRoot":"","sources":["../../src/orchestrator/run-execution.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.29",
3
+ "version": "0.0.2-preview.30",
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.29
3
+ version: 0.0.2-preview.30
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
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { z } from "zod";
3
+ import { InheritEnvironmentSchema } from "../../core/agent-environment.js";
3
4
  import { DurationSchema, durationMs } from "../../core/duration.js";
4
5
  import {
5
6
  type Answer,
@@ -33,6 +34,8 @@ export const PersonaAnswererConfigSchema = z
33
34
  model: z.string().optional(),
34
35
  /** Agent CLI override; defaults to `claude` or `codex` for the provider. */
35
36
  command: z.string().optional(),
37
+ inheritEnv: InheritEnvironmentSchema.optional(),
38
+ env: z.record(z.string(), z.string()).optional(),
36
39
  /** Reasoning effort for providers that support it. Codex defaults to low. */
37
40
  reasoningEffort: ReasoningEffortSchema.optional(),
38
41
  /** Hard timeout per answer. Default 120s. */
@@ -285,6 +288,8 @@ class PersonaAnswererImpl implements Answerer {
285
288
  command: this.config.command,
286
289
  model: this.config.model,
287
290
  reasoningEffort: this.config.reasoningEffort,
291
+ inheritEnv: this.config.inheritEnv,
292
+ env: this.config.env,
288
293
  timeoutMs: durationMs(this.config.timeout),
289
294
  system,
290
295
  prompt,
@@ -1,7 +1,13 @@
1
- import { resolve } from "node:path";
1
+ import { isAbsolute, relative, resolve, sep } from "node:path";
2
2
  import { z } from "zod";
3
3
  import { DurationSchema, durationMs } from "../../core/duration.js";
4
- import { type AssertionImpl, exec, hasRunArtifactEvidenceBoundary } from "../../core/index.js";
4
+ import {
5
+ type AssertionImpl,
6
+ copyCommandWorkspace,
7
+ exec,
8
+ hasRunArtifactEvidenceBoundary,
9
+ runExecutionWorkspace,
10
+ } from "../../core/index.js";
5
11
  import {
6
12
  baseAssertionFields,
7
13
  commandEnvironment,
@@ -17,6 +23,10 @@ export const CommandExitsZeroConfigSchema = z
17
23
  cwd: z.string().optional(),
18
24
  in: LocationSchema,
19
25
  env: z.record(z.string(), z.string()).optional(),
26
+ /** Require live dependencies; frozen replay needs an explicitly configured preparation. */
27
+ requiresExecutionWorkspace: z.boolean().default(false),
28
+ /** Trusted, bounded preparation in the disposable copy, such as a locked dependency install. */
29
+ prepare: z.string().min(1).optional(),
20
30
  /**
21
31
  * Parent variables to add to the minimal toolchain environment. Set to
22
32
  * `true` only when the command deliberately needs the entire Lux process
@@ -49,14 +59,55 @@ export const commandExitsZeroAssertion: AssertionImpl<CommandExitsZeroConfig> =
49
59
  }
50
60
  }
51
61
  const parentEnv = commandEnvironment(process.env, config.inheritEnv);
62
+ for (const name of ["NODE_OPTIONS", "NODE_PATH", "BASH_ENV", "ENV"]) delete parentEnv[name];
52
63
  // The whole command line is one shell string with no interpolation, so
53
64
  // `shell: true` is safe here; exec() gives it a real process-group
54
65
  // timeout and an output cap the old hand-rolled spawn lacked.
55
66
  let result: Awaited<ReturnType<typeof exec>>;
67
+ let verification: Awaited<ReturnType<typeof copyCommandWorkspace>> | undefined;
56
68
  try {
69
+ const live = runExecutionWorkspace(run);
70
+ const offset = relative(resolveLocationRoot(run, "artifacts"), root);
71
+ const withinArtifacts =
72
+ config.in === "artifacts" &&
73
+ offset !== ".." &&
74
+ !offset.startsWith(`..${sep}`) &&
75
+ !isAbsolute(offset);
76
+ const liveSelected = live && withinArtifacts ? live : undefined;
77
+ if (config.requiresExecutionWorkspace && !liveSelected && !config.prepare) {
78
+ return {
79
+ passed: false,
80
+ score: 0,
81
+ abstention: "insufficient-evidence",
82
+ comment:
83
+ "execution workspace unavailable; frozen dependency verification requires explicit prepare configuration",
84
+ detail: { executionWorkspace: "unavailable" },
85
+ };
86
+ }
87
+ verification = await copyCommandWorkspace(
88
+ liveSelected ?? (withinArtifacts ? resolveLocationRoot(run, "artifacts") : root),
89
+ ctx?.abortSignal,
90
+ );
91
+ const commandRoot = withinArtifacts ? resolve(verification.root, offset) : verification.root;
92
+ const env = { ...parentEnv, ...config.env };
93
+ if (config.prepare) {
94
+ const prepared = await exec(config.prepare, [], {
95
+ cwd: commandRoot,
96
+ env,
97
+ shell: true,
98
+ timeoutMs: durationMs(config.timeout),
99
+ maxBuffer: 4_000,
100
+ ...(ctx?.abortSignal ? { signal: ctx.abortSignal } : {}),
101
+ });
102
+ if (prepared.exitCode !== 0 || prepared.timedOut) {
103
+ throw new Error(
104
+ `command preparation failed: ${prepared.stderr || prepared.stdout || `exit ${prepared.exitCode}`}`,
105
+ );
106
+ }
107
+ }
57
108
  result = await exec(config.command, [], {
58
- cwd: root,
59
- env: { ...parentEnv, ...config.env },
109
+ cwd: commandRoot,
110
+ env,
60
111
  shell: true,
61
112
  timeoutMs: durationMs(config.timeout),
62
113
  maxBuffer: 4_000,
@@ -71,6 +122,8 @@ export const commandExitsZeroAssertion: AssertionImpl<CommandExitsZeroConfig> =
71
122
  errorMessage: message,
72
123
  detail: { error: message },
73
124
  };
125
+ } finally {
126
+ await verification?.close();
74
127
  }
75
128
  const passed = result.exitCode === 0 && !result.timedOut;
76
129
  const comment = result.timedOut
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { InheritEnvironmentSchema } from "../../core/agent-environment.js";
2
3
  import { DurationSchema, durationMs } from "../../core/duration.js";
3
4
  import {
4
5
  type AssertionImpl,
@@ -14,7 +15,11 @@ import {
14
15
  type TokenUsage,
15
16
  } from "../../core/index.js";
16
17
  import { baseAssertionFields } from "../core/helpers.js";
17
- import { buildJudgePrompt, tryParseJudgeResponse } from "./internal.js";
18
+ import {
19
+ buildJudgeEvidence,
20
+ IncompleteInvocationEvidence,
21
+ tryParseJudgeResponse,
22
+ } from "./internal.js";
18
23
 
19
24
  /**
20
25
  * LLM-judge assertion. Lux drives a configured local Claude Code or Codex CLI
@@ -38,6 +43,10 @@ export const RubricEvidenceSchema = z
38
43
  * because tool payloads can contain large or sensitive values.
39
44
  */
40
45
  toolDetail: z.enum(["names", "inputs", "inputs-and-results"]).default("names"),
46
+ /** Include every exact tool invocation, independently of the recent-event cap. */
47
+ toolInvocations: z.enum(["recent", "all"]).default("recent"),
48
+ /** Independent UTF-16 character limit; required framing must also fit the overall prompt. */
49
+ maxInvocationChars: z.number().int().min(0).max(120_000).default(120_000),
41
50
  artifactPatterns: z.array(z.string().min(1).max(500)).max(50).default(["**/*"]),
42
51
  includeArtifactContents: z.boolean().default(true),
43
52
  /** Adjacent messages from the same agent share one event slot; character limits still apply. */
@@ -50,6 +59,8 @@ export const RubricEvidenceSchema = z
50
59
  .default({
51
60
  eventTypes: ["agent-message", "tool-call", "interrupt", "responded", "terminal"],
52
61
  toolDetail: "names",
62
+ toolInvocations: "recent",
63
+ maxInvocationChars: 120_000,
53
64
  artifactPatterns: ["**/*"],
54
65
  includeArtifactContents: true,
55
66
  maxEvents: 30,
@@ -72,6 +83,8 @@ export const RubricConfigSchema = z
72
83
  ...baseAssertionFields,
73
84
  /** Agent CLI override; defaults to `claude` or `codex` for the provider. */
74
85
  command: z.string().optional(),
86
+ inheritEnv: InheritEnvironmentSchema.optional(),
87
+ env: z.record(z.string(), z.string()).optional(),
75
88
  /** Reasoning effort for providers that support it. Codex defaults to low. */
76
89
  reasoningEffort: ReasoningEffortSchema.optional(),
77
90
  /** Hard timeout for the judge call. Default 120s. */
@@ -136,6 +149,8 @@ type RubricRuntime = {
136
149
  model: string | undefined;
137
150
  command: string | undefined;
138
151
  reasoningEffort: RubricConfig["reasoningEffort"];
152
+ inheritEnv: RubricConfig["inheritEnv"];
153
+ env: RubricConfig["env"];
139
154
  };
140
155
 
141
156
  const rubricRuntime = (
@@ -146,6 +161,8 @@ const rubricRuntime = (
146
161
  const inheritsHarness = config.provider === undefined || config.provider === harness?.provider;
147
162
  return {
148
163
  provider,
164
+ inheritEnv: config.inheritEnv ?? harness?.inheritEnv,
165
+ env: { ...harness?.env, ...config.env },
149
166
  model: config.model ?? (inheritsHarness ? harness?.model : undefined),
150
167
  command: config.command ?? (inheritsHarness ? harness?.command : undefined),
151
168
  reasoningEffort:
@@ -245,6 +262,8 @@ const judgeRubric = async (
245
262
  command: runtime.command,
246
263
  model: runtime.model,
247
264
  reasoningEffort: runtime.reasoningEffort,
265
+ inheritEnv: runtime.inheritEnv,
266
+ env: runtime.env,
248
267
  timeoutMs: durationMs(config.timeout),
249
268
  system: systemPrompt(config.scoring),
250
269
  prompt,
@@ -270,8 +289,24 @@ export const createRubricAssertion = (
270
289
  // hand evaluate() a raw config — re-parse so the schema defaults
271
290
  // (model, command, timeout, ...) apply either way.
272
291
  const config = RubricConfigSchema.parse(rawConfig);
273
- const prompt = await buildJudgePrompt(config, run);
274
- return judgeRubric(config, prompt, rubricRuntime(config, harness), ctx);
292
+ let evidence: Awaited<ReturnType<typeof buildJudgeEvidence>>;
293
+ try {
294
+ evidence = await buildJudgeEvidence(config, run);
295
+ } catch (error) {
296
+ if (!(error instanceof IncompleteInvocationEvidence)) throw error;
297
+ return {
298
+ passed: false,
299
+ score: 0,
300
+ abstention: "insufficient-evidence",
301
+ comment: error.message,
302
+ detail: { attempts: 0, toolInvocations: error.detail },
303
+ };
304
+ }
305
+ const result = await judgeRubric(config, evidence.prompt, rubricRuntime(config, harness), ctx);
306
+ const detail = typeof result.detail === "object" && result.detail !== null ? result.detail : {};
307
+ return evidence.toolInvocations
308
+ ? { ...result, detail: { ...detail, toolInvocations: evidence.toolInvocations } }
309
+ : result;
275
310
  },
276
311
  });
277
312
 
@@ -44,7 +44,11 @@ const eventSelected = (event: RunEvent, evidence?: RubricEvidence): boolean => {
44
44
  };
45
45
 
46
46
  const interruptDetail = (event: Extract<RunEvent, { type: "interrupt" }>): string => {
47
- if (event.kind === "ask") return event.question;
47
+ if (event.kind === "ask") {
48
+ return event.context === undefined
49
+ ? event.question
50
+ : `${event.question} context=${safeJson(event.context)}`;
51
+ }
48
52
  if (event.kind === "approve") return event.request;
49
53
  return "<custom>";
50
54
  };
@@ -213,6 +217,11 @@ const eventLine = (
213
217
  renderedToolText: ReadonlyMap<RunEvent, string>,
214
218
  ): string | null => {
215
219
  if (event.type === "interrupt") {
220
+ // Native question tools may put their actual choices and headers in context,
221
+ // rather than duplicating them in the human-readable question string.
222
+ if (event.kind === "ask") {
223
+ return `interrupt(ask): ${boundedText(interruptDetail(event), 4_000, "ask interrupt")}`;
224
+ }
216
225
  return `interrupt(${event.kind}): ${interruptDetail(event).slice(0, 160)}`;
217
226
  }
218
227
  if (event.type === "responded") {
@@ -295,6 +304,35 @@ const MAX_ARTIFACT_EXCERPT = 20_000;
295
304
 
296
305
  const boundedText = (value: string, limit: number, label: string): string =>
297
306
  value.length <= limit ? value : `${value.slice(0, limit)}\n[... ${label} truncated ...]`;
307
+ const OPTIONAL_TRACE_TRUNCATION = "[... optional recent trace truncated from start ...]\n";
308
+ const OPTIONAL_ARTIFACT_TRUNCATION = "\n[... optional artifact evidence truncated ...]";
309
+ const OPTIONAL_EVIDENCE_OMISSION = "[... optional evidence omitted: prompt budget ...]";
310
+
311
+ // Complete invocation evidence is protected. Share the remaining prompt capacity
312
+ // between contextual trace and artifacts, including the omission markers themselves.
313
+ const fitOptionalEvidence = (
314
+ trace: string,
315
+ artifacts: string,
316
+ available: number,
317
+ ): [string, string] => {
318
+ if (trace.length + artifacts.length <= available) return [trace, artifacts];
319
+ const traceMarker = OPTIONAL_TRACE_TRUNCATION;
320
+ const artifactMarker = OPTIONAL_ARTIFACT_TRUNCATION;
321
+ const discretionary = Math.max(0, available - traceMarker.length - artifactMarker.length);
322
+ const traceBudget =
323
+ traceMarker.length +
324
+ Math.floor((discretionary * trace.length) / (trace.length + artifacts.length));
325
+ const artifactBudget = available - traceBudget;
326
+ const traceTake = Math.max(0, traceBudget - traceMarker.length);
327
+ // Recent evidence is chronological: preserve the final answer and newest context.
328
+ const fittedTrace =
329
+ trace.length <= traceBudget ? trace : `${traceMarker}${trace.slice(trace.length - traceTake)}`;
330
+ const fittedArtifacts =
331
+ artifacts.length <= artifactBudget
332
+ ? artifacts
333
+ : `${artifacts.slice(0, Math.max(0, artifactBudget - artifactMarker.length))}${artifactMarker}`;
334
+ return [fittedTrace, fittedArtifacts];
335
+ };
298
336
 
299
337
  const artifactListing = (paths: readonly string[]): string[] => {
300
338
  const listed: string[] = [];
@@ -322,8 +360,14 @@ export const sampleArtifacts = async (
322
360
  if (run.artifacts.length === 0) return "(no artifacts captured)";
323
361
  const selected = evidence
324
362
  ? run.artifacts.filter((artifact) => matchesAnyGlob(artifact.path, evidence.artifactPatterns))
325
- : run.artifacts;
363
+ : [...run.artifacts];
326
364
  if (selected.length === 0) return "(no artifacts matched the rubric evidence selector)";
365
+ // Keep the complete index visible, but spend excerpt budget on delivered changes first.
366
+ const priority = (origin: (typeof selected)[number]["origin"]) => {
367
+ if (origin === "fixture") return 2;
368
+ return origin === undefined ? 1 : 0;
369
+ };
370
+ selected.sort((left, right) => priority(left.origin) - priority(right.origin));
327
371
  const listed = artifactListing(selected.map((artifact) => artifact.path));
328
372
  const out: string[] = [
329
373
  `Files selected (${selected.length} of ${run.artifacts.length}):\n${listed.join("\n")}`,
@@ -346,9 +390,92 @@ export const sampleArtifacts = async (
346
390
  return out.join("\n\n");
347
391
  };
348
392
 
349
- export const buildJudgePrompt = async (config: RubricConfig, run: Run): Promise<string> => {
393
+ type InvocationCompleteness = {
394
+ complete: boolean;
395
+ total: number;
396
+ included: number;
397
+ bytes: number;
398
+ };
399
+
400
+ export class IncompleteInvocationEvidence extends Error {
401
+ readonly detail: InvocationCompleteness;
402
+ constructor(message: string, detail: InvocationCompleteness) {
403
+ super(message);
404
+ this.detail = detail;
405
+ }
406
+ }
407
+
408
+ const allToolInvocations = (
409
+ run: Run,
410
+ budget: number,
411
+ ): { text: string; detail: InvocationCompleteness } => {
412
+ const calls = run.events.filter(
413
+ (event) => event.type === "progress" && event.kind === "tool-call",
414
+ );
415
+ const detail: InvocationCompleteness = {
416
+ complete: false,
417
+ total: calls.length,
418
+ included: 0,
419
+ bytes: 0,
420
+ };
421
+ const lines: string[] = [];
422
+ try {
423
+ for (const event of calls) {
424
+ const payload = (event as Extract<RunEvent, { type: "progress" }>).payload as {
425
+ name?: unknown;
426
+ input?: unknown;
427
+ };
428
+ if (
429
+ typeof payload?.name !== "string" ||
430
+ !("input" in payload) ||
431
+ payload.input === undefined
432
+ ) {
433
+ throw new Error("tool invocation lacks a name or input");
434
+ }
435
+ lines.push(JSON.stringify({ name: payload.name, input: payload.input }));
436
+ }
437
+ } catch {
438
+ throw new IncompleteInvocationEvidence(
439
+ "Complete tool invocation evidence cannot be serialized.",
440
+ detail,
441
+ );
442
+ }
443
+ const inventory = lines.join("\n");
444
+ detail.bytes = Buffer.byteLength(inventory, "utf8");
445
+ if (inventory.length > budget) {
446
+ throw new IncompleteInvocationEvidence(
447
+ "Complete tool invocation evidence exceeds the explicit invocation-character budget.",
448
+ detail,
449
+ );
450
+ }
451
+ detail.complete = true;
452
+ detail.included = calls.length;
453
+ return {
454
+ text: `Complete chronological tool invocations: ${JSON.stringify(detail)}\nThis inventory includes every recorded tool invocation independently of omissions in the recent trace. It does not establish completeness of tool results or artifact contents.\n${inventory}`,
455
+ detail,
456
+ };
457
+ };
458
+
459
+ export const buildJudgeEvidence = async (
460
+ config: RubricConfig,
461
+ run: Run,
462
+ ): Promise<{
463
+ prompt: string;
464
+ toolInvocations?: InvocationCompleteness;
465
+ }> => {
466
+ const invocations =
467
+ config.evidence.toolInvocations === "all"
468
+ ? allToolInvocations(run, config.evidence.maxInvocationChars)
469
+ : undefined;
350
470
  if (config.promptOverride) {
351
- return boundedText(config.promptOverride, JUDGE_PROMPT_CHARS, "judge prompt override");
471
+ if (invocations)
472
+ throw new IncompleteInvocationEvidence(
473
+ "A prompt override cannot establish complete tool invocation evidence.",
474
+ { ...invocations.detail, complete: false, included: 0 },
475
+ );
476
+ return {
477
+ prompt: boundedText(config.promptOverride, JUDGE_PROMPT_CHARS, "judge prompt override"),
478
+ };
352
479
  }
353
480
  const evidence: RubricEvidence = {
354
481
  ...config.evidence,
@@ -357,20 +484,54 @@ export const buildJudgePrompt = async (config: RubricConfig, run: Run): Promise<
357
484
  maxToolChars: Math.min(config.evidence.maxToolChars, MAX_TOOL_CHARS),
358
485
  maxArtifactChars: Math.min(config.evidence.maxArtifactChars, MAX_ARTIFACT_CHARS),
359
486
  };
360
- const prompt = [
487
+ if (invocations) {
488
+ evidence.eventTypes = evidence.eventTypes.filter((type) => type !== "tool-call");
489
+ }
490
+ const required = [
361
491
  `Agent task: ${boundedText(run.case.prompt, 20_000, "agent task")}`,
362
492
  "",
363
493
  `Criterion to judge: ${boundedText(config.criteria, 8_000, "criterion")}`,
364
494
  "",
365
- "Recent run trace:",
366
- summarizeEvents(run.events, evidence.maxEvents, evidence),
367
- "",
368
- "Captured artifacts (excerpted):",
369
- await sampleArtifacts(run, Math.min(config.maxArtifactExcerpt, MAX_ARTIFACT_EXCERPT), evidence),
495
+ ...(invocations ? [invocations.text, ""] : []),
370
496
  ].join("\n");
371
- return boundedText(prompt, JUDGE_PROMPT_CHARS, "judge prompt");
497
+ const assemble = (recent: string, files: string): string =>
498
+ `${required}\nRecent run trace:\n${recent}\n\nCaptured artifacts (excerpted):\n${files}`;
499
+ const available = JUDGE_PROMPT_CHARS - assemble("", "").length;
500
+ if (invocations) {
501
+ // Reserve the minimal explicit omission notice, not verbose optional section markers.
502
+ if (`${required}\n${OPTIONAL_EVIDENCE_OMISSION}`.length > JUDGE_PROMPT_CHARS) {
503
+ throw new IncompleteInvocationEvidence(
504
+ "Complete tool invocation evidence and required framing exceed the judge-prompt budget.",
505
+ { ...invocations.detail, complete: false, included: 0 },
506
+ );
507
+ }
508
+ }
509
+ let trace = summarizeEvents(run.events, evidence.maxEvents, evidence);
510
+ let artifacts = await sampleArtifacts(
511
+ run,
512
+ Math.min(config.maxArtifactExcerpt, MAX_ARTIFACT_EXCERPT),
513
+ evidence,
514
+ );
515
+ let prompt: string;
516
+ if (
517
+ invocations &&
518
+ trace.length + artifacts.length > available &&
519
+ available < OPTIONAL_TRACE_TRUNCATION.length + OPTIONAL_ARTIFACT_TRUNCATION.length
520
+ ) {
521
+ prompt = `${required}\n${OPTIONAL_EVIDENCE_OMISSION}`;
522
+ } else {
523
+ if (invocations) [trace, artifacts] = fitOptionalEvidence(trace, artifacts, available);
524
+ prompt = assemble(trace, artifacts);
525
+ }
526
+ return {
527
+ prompt: boundedText(prompt, JUDGE_PROMPT_CHARS, "judge prompt"),
528
+ ...(invocations ? { toolInvocations: invocations.detail } : {}),
529
+ };
372
530
  };
373
531
 
532
+ export const buildJudgePrompt = async (config: RubricConfig, run: Run): Promise<string> =>
533
+ (await buildJudgeEvidence(config, run)).prompt;
534
+
374
535
  const JudgeResponseSchema = z.union([
375
536
  z.object({ score: z.number().min(0).max(1), comment: z.string().min(1).max(2_000) }).strict(),
376
537
  z