lastlight 0.4.0 → 0.5.1

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 (65) hide show
  1. package/README.md +17 -6
  2. package/deploy/entrypoint.sh +21 -6
  3. package/deploy/sandbox-entrypoint.sh +1 -1
  4. package/dist/config.d.ts +12 -1
  5. package/dist/config.js +26 -6
  6. package/dist/config.js.map +1 -1
  7. package/dist/connectors/messaging/base.js +22 -9
  8. package/dist/connectors/messaging/base.js.map +1 -1
  9. package/dist/connectors/slack/connector.d.ts +62 -9
  10. package/dist/connectors/slack/connector.js +216 -63
  11. package/dist/connectors/slack/connector.js.map +1 -1
  12. package/dist/connectors/slack/connector.test.d.ts +1 -0
  13. package/dist/connectors/slack/connector.test.js +135 -0
  14. package/dist/connectors/slack/connector.test.js.map +1 -0
  15. package/dist/connectors/types.d.ts +7 -0
  16. package/dist/engine/agent-executor.d.ts +32 -10
  17. package/dist/engine/agent-executor.js +239 -1
  18. package/dist/engine/agent-executor.js.map +1 -1
  19. package/dist/engine/agent-executor.seam.test.d.ts +1 -0
  20. package/dist/engine/agent-executor.seam.test.js +57 -0
  21. package/dist/engine/agent-executor.seam.test.js.map +1 -0
  22. package/dist/engine/dispatcher.d.ts +13 -0
  23. package/dist/engine/dispatcher.js +26 -7
  24. package/dist/engine/dispatcher.js.map +1 -1
  25. package/dist/engine/dispatcher.test.js.map +1 -1
  26. package/dist/engine/message-batcher.d.ts +32 -0
  27. package/dist/engine/message-batcher.js +109 -0
  28. package/dist/engine/message-batcher.js.map +1 -0
  29. package/dist/engine/message-batcher.test.d.ts +1 -0
  30. package/dist/engine/message-batcher.test.js +109 -0
  31. package/dist/engine/message-batcher.test.js.map +1 -0
  32. package/dist/engine/profiles.d.ts +9 -0
  33. package/dist/engine/profiles.js.map +1 -1
  34. package/dist/evals-api.d.ts +24 -0
  35. package/dist/evals-api.js +22 -0
  36. package/dist/evals-api.js.map +1 -0
  37. package/dist/index.js +41 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/sandbox/command-exec.integration.test.d.ts +1 -0
  40. package/dist/sandbox/command-exec.integration.test.js +183 -0
  41. package/dist/sandbox/command-exec.integration.test.js.map +1 -0
  42. package/dist/sandbox/docker.d.ts +32 -0
  43. package/dist/sandbox/docker.js +109 -4
  44. package/dist/sandbox/docker.js.map +1 -1
  45. package/dist/workflows/loader.test.js +83 -0
  46. package/dist/workflows/loader.test.js.map +1 -1
  47. package/dist/workflows/phase-executor.d.ts +28 -3
  48. package/dist/workflows/phase-executor.js +170 -45
  49. package/dist/workflows/phase-executor.js.map +1 -1
  50. package/dist/workflows/phase-executor.test.js +64 -1
  51. package/dist/workflows/phase-executor.test.js.map +1 -1
  52. package/dist/workflows/runner.test.js +32 -27
  53. package/dist/workflows/runner.test.js.map +1 -1
  54. package/dist/workflows/schema.d.ts +20 -0
  55. package/dist/workflows/schema.js +72 -2
  56. package/dist/workflows/schema.js.map +1 -1
  57. package/package.json +12 -2
  58. package/sandbox.Dockerfile +7 -0
  59. package/skills/browser-qa/scripts/agent-browser.mjs +15 -0
  60. package/skills/demo/SKILL.md +45 -19
  61. package/skills/demo/scripts/compose-demo.sh +77 -39
  62. package/workflows/examples/bash-smoke.yaml +41 -0
  63. package/workflows/prompts/demo.md +27 -5
  64. package/workflows/qa-test.yaml +1 -1
  65. package/workflows/verify.yaml +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/sandbox/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/sandbox/docker.ts"],"names":[],"mappings":"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"}
@@ -275,6 +275,89 @@ context:
275
275
  expect(jobs[0].workflow).toBe("security-review");
276
276
  });
277
277
  });
278
+ describe("loader — bash / script phase types", () => {
279
+ let dir;
280
+ beforeEach(() => {
281
+ dir = makeTempDir();
282
+ setWorkflowDir(dir);
283
+ clearWorkflowCache();
284
+ });
285
+ it("loads a bash phase with a command", () => {
286
+ writeFileSync(join(dir, "b.yaml"), `
287
+ kind: agent
288
+ name: b
289
+ phases:
290
+ - name: run
291
+ type: bash
292
+ command: "echo hi"
293
+ output_var: out
294
+ timeout_seconds: 30
295
+ `.trim());
296
+ const wf = getWorkflow("b");
297
+ expect(wf.phases[0].type).toBe("bash");
298
+ expect(wf.phases[0].command).toBe("echo hi");
299
+ expect(wf.phases[0].timeout_seconds).toBe(30);
300
+ });
301
+ it("loads a script phase with runtime", () => {
302
+ writeFileSync(join(dir, "s.yaml"), `
303
+ kind: agent
304
+ name: s
305
+ phases:
306
+ - name: run
307
+ type: script
308
+ runtime: python
309
+ script: "print('hi')"
310
+ `.trim());
311
+ const wf = getWorkflow("s");
312
+ expect(wf.phases[0].type).toBe("script");
313
+ expect(wf.phases[0].runtime).toBe("python");
314
+ expect(wf.phases[0].script).toBe("print('hi')");
315
+ });
316
+ it("rejects a bash phase with no command", () => {
317
+ writeFileSync(join(dir, "nocmd.yaml"), `
318
+ kind: agent
319
+ name: nocmd
320
+ phases:
321
+ - name: run
322
+ type: bash
323
+ `.trim());
324
+ expect(() => getWorkflow("nocmd")).toThrow(/requires .command/);
325
+ });
326
+ it("rejects a script phase with no script", () => {
327
+ writeFileSync(join(dir, "noscript.yaml"), `
328
+ kind: agent
329
+ name: noscript
330
+ phases:
331
+ - name: run
332
+ type: script
333
+ `.trim());
334
+ expect(() => getWorkflow("noscript")).toThrow(/requires .script/);
335
+ });
336
+ it("rejects command on a non-bash phase", () => {
337
+ writeFileSync(join(dir, "mix.yaml"), `
338
+ kind: agent
339
+ name: mix
340
+ phases:
341
+ - name: run
342
+ type: agent
343
+ prompt: prompts/x.md
344
+ command: "echo nope"
345
+ `.trim());
346
+ expect(() => getWorkflow("mix")).toThrow(/command.* only valid on type .bash/);
347
+ });
348
+ it("rejects script field on a bash phase", () => {
349
+ writeFileSync(join(dir, "mix2.yaml"), `
350
+ kind: agent
351
+ name: mix2
352
+ phases:
353
+ - name: run
354
+ type: bash
355
+ command: "echo ok"
356
+ script: "print('no')"
357
+ `.trim());
358
+ expect(() => getWorkflow("mix2")).toThrow(/script.* only valid on type .script/);
359
+ });
360
+ });
278
361
  describe("loader — resolveSkillPaths", () => {
279
362
  it("resolves known skill names to absolute directory paths", () => {
280
363
  const paths = resolveSkillPaths(["issue-triage", "pr-review"]);
@@ -1 +1 @@
1
- {"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/workflows/loader.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/workflows/loader.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ExecutorConfig, ExecutionResult, GitSandboxAccess } from "../engine/profiles.js";
2
+ import { type CommandSpec } from "../engine/agent-executor.js";
2
3
  import type { StateDb } from "../state/db.js";
3
4
  import type { AgentWorkflowDefinition, PhaseDefinition } from "./schema.js";
4
5
  import { type TemplateContext } from "./templates.js";
@@ -105,11 +106,17 @@ type RunPhaseResult = {
105
106
  reason: "running" | "done";
106
107
  };
107
108
  /**
108
- * Run a single agent phase with DB-tracked deduplication. Moved verbatim from
109
- * runner.ts — the dedup ledger (`shouldRunPhase`) is the single source of
110
- * truth for resume, so re-running from the top skips completed phases here.
109
+ * Run a single agent phase with DB-tracked deduplication. The dedup ledger
110
+ * (`shouldRunPhase`) is the single source of truth for resume, so re-running
111
+ * from the top skips completed phases here.
111
112
  */
112
113
  export declare function runPhase(workflowName: string, phaseName: string, taskId: string, triggerId: string, prompt: string, config: ExecutorConfig, db?: StateDb, modelOverride?: string, workflowRunId?: string, githubAccess?: GitSandboxAccess, variantOverride?: string): Promise<RunPhaseResult>;
114
+ /**
115
+ * Run a single deterministic `bash`/`script` phase, sharing the agent phase's
116
+ * dedup ledger + executions row so it appears (and dedups on resume) exactly
117
+ * like an agent phase — just with `turns: 0` and no model cost.
118
+ */
119
+ export declare function runCommandPhase(workflowName: string, phaseName: string, taskId: string, triggerId: string, spec: CommandSpec, config: ExecutorConfig, db?: StateDb, workflowRunId?: string, githubAccess?: GitSandboxAccess, timeoutSeconds?: number, sandboxEnv?: Record<string, string>): Promise<RunPhaseResult>;
113
120
  export declare class PhaseExecutor {
114
121
  private readonly run;
115
122
  private readonly reporter;
@@ -126,6 +133,24 @@ export declare class PhaseExecutor {
126
133
  private resolveModelVariant;
127
134
  private runPhaseCall;
128
135
  private runStandard;
136
+ /**
137
+ * Body for `type: bash` / `type: script` phases. Runs a deterministic command
138
+ * in the sandbox (no LLM), then mirrors the agent-phase lifecycle: report
139
+ * progress, expose stdout downstream via `output_var` →
140
+ * `{{phaseOutputs.<name>.output}}`, fail the workflow on a non-zero exit, and
141
+ * honour an optional `approval_gate`.
142
+ */
143
+ private runCommandBody;
144
+ /** Render a command/script phase's template fields into a {@link CommandSpec}. */
145
+ private buildCommandSpec;
146
+ private runCommandPhaseCall;
147
+ /**
148
+ * Evaluate a `generic_loop.until_bash` condition INSIDE the sandbox (against
149
+ * the persisted workspace), replacing the old harness-host `execSync`. Exit 0
150
+ * ⇒ loop complete. The check inherits the phase's egress; no session log is
151
+ * written (it's an internal loop condition, not a user-facing phase).
152
+ */
153
+ private runUntilBash;
129
154
  /**
130
155
  * Evaluate the `contains_BLOCKED` rule. Returns "fail" when the workflow
131
156
  * should fail, or "continue" when the marker is absent or bypassed.
@@ -1,6 +1,5 @@
1
1
  import { randomUUID } from "crypto";
2
- import { execSync } from "child_process";
3
- import { executeAgent } from "../engine/agent-executor.js";
2
+ import { executeAgent, executeCommand } from "../engine/agent-executor.js";
4
3
  import { phaseSkillNames } from "./schema.js";
5
4
  import { loadPromptTemplate, resolveSkillPaths } from "./loader.js";
6
5
  import { renderTemplate } from "./templates.js";
@@ -19,6 +18,26 @@ function validateShellCommand(cmd) {
19
18
  throw new Error(`until_bash command rejected: contains template marker '{{'. Render templates before passing to shell.`);
20
19
  }
21
20
  }
21
+ /**
22
+ * Forward upstream phase outputs to a `bash`/`script` command as env vars
23
+ * (`LL_OUT_<PHASE>`), so a script can read them via `process.env` / `os.environ`
24
+ * without any shell-injection risk. Only simple single-line, reasonably-sized
25
+ * string outputs are forwarded; larger / multi-line outputs are still reachable
26
+ * via `{{phaseOutputs.<name>.output}}` template substitution in the command.
27
+ */
28
+ function upstreamOutputsEnv(outputs) {
29
+ const env = {};
30
+ for (const [k, v] of Object.entries(outputs)) {
31
+ if (typeof v !== "string" || v.length === 0 || v.length > 4096)
32
+ continue;
33
+ if (/[\n\r]/.test(v))
34
+ continue;
35
+ const key = `LL_OUT_${k.toUpperCase().replace(/[^A-Z0-9_]/g, "_")}`;
36
+ if (/^LL_OUT_[A-Z0-9_]+$/.test(key))
37
+ env[key] = v;
38
+ }
39
+ return env;
40
+ }
22
41
  /**
23
42
  * Build the agent prompt for a phase, handling both `prompt:` (template file)
24
43
  * and `skill:`/`skills:` (skill references) phase definitions.
@@ -112,19 +131,15 @@ async function isContainerAlive(taskId) {
112
131
  * runner.ts — the dedup ledger (`shouldRunPhase`) is the single source of
113
132
  * truth for resume, so re-running from the top skips completed phases here.
114
133
  */
115
- export async function runPhase(workflowName, phaseName, taskId, triggerId, prompt, config, db, modelOverride, workflowRunId, githubAccess, variantOverride) {
116
- const dedupKey = `${workflowName}:${phaseName}`;
117
- const attrs = {
118
- "workflow.name": workflowName,
119
- "phase.name": phaseName,
120
- "workflow.run_id": workflowRunId,
121
- "trigger.id": triggerId,
122
- "task.id": taskId,
123
- repo: githubAccess?.repo,
124
- "issue.number": issueNumberFromTrigger(triggerId),
125
- "sandbox.backend": config.sandbox,
126
- model: modelOverride || config.model,
127
- };
134
+ /**
135
+ * The DB-tracked dedup ledger shared by agent phases ({@link runPhase}) and
136
+ * deterministic command phases ({@link runCommandPhase}). The `run` callback
137
+ * does the actual work and receives a session-id sink so the executions row can
138
+ * be linked to its session jsonl mid-run. `shouldRunPhase` is the single source
139
+ * of truth for resume — re-running from the top skips completed phases here.
140
+ */
141
+ async function runPhaseLedger(attrs, meta, db, run) {
142
+ const { dedupKey, phaseName, taskId, triggerId, repo, workflowRunId } = meta;
128
143
  return withSpan("lastlight.workflow.phase", attrs, async (span) => {
129
144
  if (db) {
130
145
  const status = db.executions.shouldRunPhase(dedupKey, triggerId, workflowRunId);
@@ -149,29 +164,19 @@ export async function runPhase(workflowName, phaseName, taskId, triggerId, promp
149
164
  triggerType: "webhook",
150
165
  triggerId,
151
166
  skill: dedupKey,
152
- repo: githubAccess?.repo,
167
+ repo,
153
168
  issueNumber: issueNumberFromTrigger(triggerId),
154
169
  startedAt: new Date().toISOString(),
155
170
  workflowRunId,
156
171
  });
157
- const baseConfig = modelOverride ? { ...config, model: modelOverride } : config;
158
- const phaseConfigBase = variantOverride ? { ...baseConfig, variant: variantOverride } : baseConfig;
159
- const phaseConfig = {
160
- ...phaseConfigBase,
161
- telemetry: { workflowName, phaseName, triggerId, workflowRunId },
162
- };
163
172
  try {
164
- const result = await executeAgent(prompt, phaseConfig, {
165
- taskId,
166
- githubAccess,
167
- onSessionId: (sessionId) => {
168
- try {
169
- db.executions.recordSessionId(executionId, sessionId);
170
- }
171
- catch (err) {
172
- console.warn(`[runner] Failed to persist session id mid-run for ${phaseName}:`, err);
173
- }
174
- },
173
+ const result = await run((sessionId) => {
174
+ try {
175
+ db.executions.recordSessionId(executionId, sessionId);
176
+ }
177
+ catch (err) {
178
+ console.warn(`[runner] Failed to persist session id mid-run for ${phaseName}:`, err);
179
+ }
175
180
  });
176
181
  db.executions.recordFinish(executionId, {
177
182
  success: result.success,
@@ -198,14 +203,58 @@ export async function runPhase(workflowName, phaseName, taskId, triggerId, promp
198
203
  throw err;
199
204
  }
200
205
  }
201
- const baseConfig = modelOverride ? { ...config, model: modelOverride } : config;
202
- const phaseConfigBase = variantOverride ? { ...baseConfig, variant: variantOverride } : baseConfig;
203
- const phaseConfig = { ...phaseConfigBase, telemetry: { workflowName, phaseName, triggerId, workflowRunId } };
204
- const result = await executeAgent(prompt, phaseConfig, { taskId, githubAccess });
206
+ const result = await run(() => { });
205
207
  recordExecutionMetrics("phase", { ...attrs, success: result.success, stop_reason: result.stopReason, durationMs: result.durationMs, costUsd: result.costUsd, inputTokens: result.inputTokens, outputTokens: result.outputTokens });
206
208
  return { result, skipped: false };
207
209
  });
208
210
  }
211
+ /**
212
+ * Run a single agent phase with DB-tracked deduplication. The dedup ledger
213
+ * (`shouldRunPhase`) is the single source of truth for resume, so re-running
214
+ * from the top skips completed phases here.
215
+ */
216
+ export async function runPhase(workflowName, phaseName, taskId, triggerId, prompt, config, db, modelOverride, workflowRunId, githubAccess, variantOverride) {
217
+ const dedupKey = `${workflowName}:${phaseName}`;
218
+ const attrs = {
219
+ "workflow.name": workflowName,
220
+ "phase.name": phaseName,
221
+ "workflow.run_id": workflowRunId,
222
+ "trigger.id": triggerId,
223
+ "task.id": taskId,
224
+ repo: githubAccess?.repo,
225
+ "issue.number": issueNumberFromTrigger(triggerId),
226
+ "sandbox.backend": config.sandbox,
227
+ model: modelOverride || config.model,
228
+ };
229
+ const baseConfig = modelOverride ? { ...config, model: modelOverride } : config;
230
+ const phaseConfigBase = variantOverride ? { ...baseConfig, variant: variantOverride } : baseConfig;
231
+ const phaseConfig = {
232
+ ...phaseConfigBase,
233
+ telemetry: { workflowName, phaseName, triggerId, workflowRunId },
234
+ };
235
+ return runPhaseLedger(attrs, { dedupKey, phaseName, taskId, triggerId, repo: githubAccess?.repo, workflowRunId }, db, (onSessionId) => executeAgent(prompt, phaseConfig, { taskId, githubAccess, onSessionId }));
236
+ }
237
+ /**
238
+ * Run a single deterministic `bash`/`script` phase, sharing the agent phase's
239
+ * dedup ledger + executions row so it appears (and dedups on resume) exactly
240
+ * like an agent phase — just with `turns: 0` and no model cost.
241
+ */
242
+ export async function runCommandPhase(workflowName, phaseName, taskId, triggerId, spec, config, db, workflowRunId, githubAccess, timeoutSeconds, sandboxEnv) {
243
+ const dedupKey = `${workflowName}:${phaseName}`;
244
+ const attrs = {
245
+ "workflow.name": workflowName,
246
+ "phase.name": phaseName,
247
+ "workflow.run_id": workflowRunId,
248
+ "trigger.id": triggerId,
249
+ "task.id": taskId,
250
+ repo: githubAccess?.repo,
251
+ "issue.number": issueNumberFromTrigger(triggerId),
252
+ "sandbox.backend": config.sandbox,
253
+ model: spec.kind,
254
+ };
255
+ const phaseConfig = { ...config, telemetry: { workflowName, phaseName, triggerId, workflowRunId } };
256
+ return runPhaseLedger(attrs, { dedupKey, phaseName, taskId, triggerId, repo: githubAccess?.repo, workflowRunId }, db, (onSessionId) => executeCommand(spec, phaseConfig, { taskId, githubAccess, onSessionId, timeoutSeconds, sandboxEnv }));
257
+ }
209
258
  // ── PhaseExecutor ────────────────────────────────────────────────────────────
210
259
  const MAX_PREV_OUTPUT_BYTES = 10 * 1024; // cap accumulated generic-loop output at 10KB
211
260
  export class PhaseExecutor {
@@ -231,6 +280,8 @@ export class PhaseExecutor {
231
280
  const phaseType = phase.type ?? "agent";
232
281
  if (phaseType === "context")
233
282
  return this.runContext(phase);
283
+ if (phaseType === "bash" || phaseType === "script")
284
+ return this.runCommandBody(phase, outputs);
234
285
  if (!phase.prompt && phaseSkillNames(phase).length === 0) {
235
286
  console.warn(`[runner] Phase "${phase.name}" has type=agent but neither prompt: nor skills: — skipping`);
236
287
  return { results: [], status: "succeeded" };
@@ -325,6 +376,87 @@ export class PhaseExecutor {
325
376
  });
326
377
  return { results: [result], status: "succeeded", outputVars };
327
378
  }
379
+ /**
380
+ * Body for `type: bash` / `type: script` phases. Runs a deterministic command
381
+ * in the sandbox (no LLM), then mirrors the agent-phase lifecycle: report
382
+ * progress, expose stdout downstream via `output_var` →
383
+ * `{{phaseOutputs.<name>.output}}`, fail the workflow on a non-zero exit, and
384
+ * honour an optional `approval_gate`.
385
+ */
386
+ async runCommandBody(phase, outputs) {
387
+ const phaseName = phase.name;
388
+ await this.reporter.onStart(phaseName);
389
+ await this.reporter.step(phaseName, "running", phase.messages?.on_start);
390
+ const spec = this.buildCommandSpec(phase, outputs);
391
+ const sandboxEnv = upstreamOutputsEnv(outputs);
392
+ const pr = await this.runCommandPhaseCall(phaseName, phase, spec, sandboxEnv);
393
+ if (pr.skipped) {
394
+ if (pr.reason === "running") {
395
+ await this.reporter.message(phase.messages?.on_skipped_done);
396
+ return { results: [], status: "failed", aborted: true };
397
+ }
398
+ const result = { phase: phaseName, success: true, output: "Already completed" };
399
+ this.reporter.persistPhase(phaseName, "Already completed (deduplicated)");
400
+ await this.reporter.onEnd(phaseName, result);
401
+ await this.reporter.step(phaseName, "done", phase.messages?.on_skipped_done);
402
+ return { results: [result], status: "succeeded" };
403
+ }
404
+ const result = { phase: phaseName, ...pickResult(pr.result) };
405
+ await this.reporter.onEnd(phaseName, result);
406
+ const rawOutput = pr.result.output ?? "";
407
+ const outputVars = { [phaseName]: rawOutput };
408
+ if (phase.output_var)
409
+ outputVars[phase.output_var] = rawOutput;
410
+ if (!pr.result.success) {
411
+ if (!isTerminated(pr.result.error)) {
412
+ await this.reporter.step(phaseName, "failed", phase.messages?.on_failure);
413
+ }
414
+ this.reporter.failWorkflow(pr.result.error);
415
+ return { results: [result], status: "failed", outputVars };
416
+ }
417
+ if (phase.approval_gate && this.resolver.gateEnabled(phase.approval_gate) && this.run.db && this.run.workflowId) {
418
+ await this.pauseForApproval(phaseName, phase.approval_gate, `${phaseName} complete — awaiting ${phase.approval_gate} approval.`, "approve", phase.approval_gate_message, { gateKey: phase.approval_gate }, undefined, phase.approval_artifact);
419
+ return { results: [result], status: "succeeded", paused: true, outputVars };
420
+ }
421
+ this.reporter.persistPhase(phaseName);
422
+ await this.reporter.step(phaseName, "done", phase.messages?.on_success, {
423
+ phaseOutputs: { ...outputs, ...outputVars },
424
+ });
425
+ return { results: [result], status: "succeeded", outputVars };
426
+ }
427
+ /** Render a command/script phase's template fields into a {@link CommandSpec}. */
428
+ buildCommandSpec(phase, outputs) {
429
+ const ctx = { ...this.run.ctx, phaseOutputs: outputs };
430
+ if ((phase.type ?? "agent") === "script") {
431
+ const script = renderTemplate(phase.script ?? "", ctx);
432
+ return { kind: "script", script, runtime: phase.runtime ?? "js", name: phase.name.replace(/[^A-Za-z0-9_-]/g, "_") };
433
+ }
434
+ const command = renderTemplate(phase.command ?? "", ctx);
435
+ // Guard against an unresolved template marker reaching the shell.
436
+ validateShellCommand(command);
437
+ return { kind: "bash", command };
438
+ }
439
+ async runCommandPhaseCall(label, phase, spec, sandboxEnv) {
440
+ const { definition, config, db, workflowId, githubAccess, taskId, triggerId } = this.run;
441
+ return runCommandPhase(definition.name, label, taskId, triggerId, spec, phaseConfigFor(config, phase), db, workflowId, githubAccess, phase.timeout_seconds, sandboxEnv);
442
+ }
443
+ /**
444
+ * Evaluate a `generic_loop.until_bash` condition INSIDE the sandbox (against
445
+ * the persisted workspace), replacing the old harness-host `execSync`. Exit 0
446
+ * ⇒ loop complete. The check inherits the phase's egress; no session log is
447
+ * written (it's an internal loop condition, not a user-facing phase).
448
+ */
449
+ async runUntilBash(command, phase) {
450
+ const { config, githubAccess, taskId, triggerId, definition, workflowId } = this.run;
451
+ try {
452
+ validateShellCommand(command);
453
+ const res = await executeCommand({ kind: "bash", command }, { ...phaseConfigFor(config, phase), telemetry: { workflowName: definition.name, phaseName: `${phase.name}_until`, triggerId, workflowRunId: workflowId } }, { taskId, githubAccess, timeoutSeconds: phase.timeout_seconds ?? 30, writeSession: false });
454
+ return res.success;
455
+ }
456
+ catch {
457
+ return false;
458
+ }
459
+ }
328
460
  /**
329
461
  * Evaluate the `contains_BLOCKED` rule. Returns "fail" when the workflow
330
462
  * should fail, or "continue" when the marker is absent or bypassed.
@@ -601,14 +733,7 @@ export class PhaseExecutor {
601
733
  });
602
734
  }
603
735
  if (!conditionMet && loop.until_bash) {
604
- try {
605
- validateShellCommand(loop.until_bash);
606
- execSync(loop.until_bash, { timeout: 30_000, stdio: "pipe", cwd: config.sandboxDir ?? config.cwd });
607
- conditionMet = true;
608
- }
609
- catch {
610
- conditionMet = false;
611
- }
736
+ conditionMet = await this.runUntilBash(loop.until_bash, phase);
612
737
  }
613
738
  const iterExecutionId = "executionId" in ir ? ir.executionId : undefined;
614
739
  if (iterExecutionId && db)