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
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { randomUUID } from "crypto";
4
4
  import { loadConfig, resolveModel, resolveVariant } from "./config.js";
5
5
  import { ConnectorRegistry, GitHubWebhookConnector, SlackConnector, SessionManager, MessageDeliveryService } from "./connectors/index.js";
6
6
  import { dispatch } from "./engine/dispatcher.js";
7
+ import { MessageBatcher } from "./engine/message-batcher.js";
7
8
  import { CHAT_SYSTEM_SUFFIX, handleChatMessage, loadAgentContext } from "./engine/chat.js";
8
9
  import { configureWorkflowAssets, validateAssets, getWorkflow } from "./workflows/loader.js";
9
10
  import { ChatRunner } from "./engine/chat-runner.js";
@@ -219,8 +220,16 @@ async function main() {
219
220
  if (!prePopulateBranch && typeof ctxBranch === "string" && ctxBranch && workflowName === "pr-fix") {
220
221
  prePopulateBranch = ctxBranch;
221
222
  }
223
+ // PR-scoped read workflows that benefit from a workspace pre-checked-out at
224
+ // the PR's *real* head ref. `demo` is the load-bearing case: it synthesizes
225
+ // a `lastlight/N-<title-slug>` branch (see resolveRunBranch) that does NOT
226
+ // exist on the remote, so prePopulateWorkspace's missing-branch fallback
227
+ // silently clones the *default* branch — making a before/after demo's
228
+ // "after" identical to "before" (both end up on main). Resolving the head
229
+ // ref here pins the workspace to the actual PR code.
230
+ const PR_HEADREF_PREPOPULATE = new Set(["pr-review", "demo"]);
222
231
  if (!prePopulateBranch &&
223
- workflowName === "pr-review" &&
232
+ PR_HEADREF_PREPOPULATE.has(workflowName) &&
224
233
  typeof prNumber === "number" &&
225
234
  github &&
226
235
  owner &&
@@ -228,11 +237,17 @@ async function main() {
228
237
  try {
229
238
  const pr = await github.getPullRequest(owner, repo, prNumber);
230
239
  prePopulateBranch = pr.head.ref;
231
- console.log(`[dispatch] pr-review: pre-populating workspace at ${owner}/${repo}@${prePopulateBranch}`);
240
+ // Surface the base ref so a before/after demo can fetch + check out the
241
+ // baseline (the read-only pre-clone is shallow + single-branch at the
242
+ // head ref, so `origin/<base>` isn't present until the agent fetches it).
243
+ if (pr.base?.ref)
244
+ extra.baseBranch = pr.base.ref;
245
+ console.log(`[dispatch] ${workflowName}: pre-populating workspace at ${owner}/${repo}@${prePopulateBranch} ` +
246
+ `(base ${pr.base?.ref ?? "?"})`);
232
247
  }
233
248
  catch (err) {
234
249
  const msg = err instanceof Error ? err.message : String(err);
235
- console.warn(`[dispatch] pr-review: could not resolve PR head ref (${msg}); ` +
250
+ console.warn(`[dispatch] ${workflowName}: could not resolve PR head ref (${msg}); ` +
236
251
  `agent will need to clone via MCP`);
237
252
  }
238
253
  }
@@ -477,7 +492,11 @@ async function main() {
477
492
  if (config.slack) {
478
493
  slackConnector = new SlackConnector({
479
494
  botToken: config.slack.botToken,
495
+ mode: config.slack.mode,
480
496
  appToken: config.slack.appToken,
497
+ signingSecret: config.slack.signingSecret,
498
+ // Webhook mode mounts /webhooks/slack on the shared HTTP server.
499
+ honoApp: githubConnector?.honoApp,
481
500
  allowedUsers: config.slack.allowedUsers,
482
501
  deliveryChannel: config.slack.deliveryChannel,
483
502
  botIdentifier: "", // Will be resolved from Slack API on connect
@@ -683,7 +702,7 @@ async function main() {
683
702
  });
684
703
  return c.json({ text: reply, thread: threadId ?? session.id, sessionId: session.id, outcome: outcome.kind });
685
704
  });
686
- registry.onEvent(async (envelope) => {
705
+ const handleEnvelope = async (envelope) => {
687
706
  console.log(`[event] ${envelope.source}:${envelope.type} from ${envelope.sender}${envelope.repo ? ` on ${envelope.repo}` : ""}`);
688
707
  try {
689
708
  const outcome = await dispatch(envelope, dispatchDeps);
@@ -698,6 +717,24 @@ async function main() {
698
717
  const msg = err instanceof Error ? err.message : String(err);
699
718
  console.error(`[event] dispatch threw: ${msg}`);
700
719
  }
720
+ };
721
+ // Batch bursty messaging input per session BEFORE routing: a rapid Slack
722
+ // burst is collected, sorted into send order, and collapsed into ONE
723
+ // envelope so it's classified once and answered as a single ordered turn.
724
+ // Gated on `type === "message"` — only messaging connectors emit that here
725
+ // (GitHub events have richer types; the CLI dispatches directly, not via the
726
+ // registry). Tunable settle window via CHAT_BATCH_DEBOUNCE_MS (default 700ms;
727
+ // 0 disables).
728
+ const messageBatcher = new MessageBatcher({
729
+ dispatch: handleEnvelope,
730
+ debounceMs: Number.parseInt(process.env.CHAT_BATCH_DEBOUNCE_MS || "700", 10),
731
+ });
732
+ registry.onEvent(async (envelope) => {
733
+ if (envelope.type === "message") {
734
+ messageBatcher.submit(envelope);
735
+ return;
736
+ }
737
+ await handleEnvelope(envelope);
701
738
  });
702
739
  // Cron jobs — fan out from each tick into one workflow run per managed repo
703
740
  // (see dispatchCronWorkflow). The scheduler itself was constructed earlier
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,183 @@
1
+ import { describe, it, expect, beforeAll, afterAll } from "vitest";
2
+ import { execFileSync } from "child_process";
3
+ import { mkdtempSync, mkdirSync, rmSync, readdirSync, existsSync } from "fs";
4
+ import { join } from "path";
5
+ import { runWorkflow } from "./../workflows/runner.js";
6
+ /**
7
+ * Integration tests that ACTUALLY start a docker sandbox and execute
8
+ * deterministic `type: bash` / `type: script` phases end-to-end through the
9
+ * real workflow runner — no AI, no mocks. This is the one path the unit suite
10
+ * can't cover (it stubs `executeCommand`).
11
+ *
12
+ * Opt-in + self-gating: runs only when `RUN_SANDBOX_IT=1` AND the lean sandbox
13
+ * image is built, so the default `npx vitest run` (and CI without docker) skip
14
+ * it instantly. To run:
15
+ *
16
+ * docker compose --profile build-only build sandbox # if not already built
17
+ * RUN_SANDBOX_IT=1 npx vitest run src/sandbox/command-exec.integration.test.ts
18
+ *
19
+ * Each command phase spins up + tears down its own container, so these are
20
+ * slow (tens of seconds) — hence the long per-test timeout.
21
+ */
22
+ function sandboxImageBuilt() {
23
+ try {
24
+ const out = execFileSync("docker", ["images", "-q", "lastlight-sandbox:latest"], {
25
+ encoding: "utf-8",
26
+ stdio: ["ignore", "pipe", "ignore"],
27
+ });
28
+ return out.trim().length > 0;
29
+ }
30
+ catch {
31
+ return false;
32
+ }
33
+ }
34
+ const RUN = process.env.RUN_SANDBOX_IT === "1" && sandboxImageBuilt();
35
+ const TIMEOUT = 180_000;
36
+ let stateDir;
37
+ const savedEnv = {};
38
+ function setEnv(k, v) {
39
+ savedEnv[k] = process.env[k];
40
+ process.env[k] = v;
41
+ }
42
+ function baseCtx(taskId) {
43
+ return {
44
+ owner: "acme",
45
+ repo: "widget",
46
+ issueNumber: 1,
47
+ issueTitle: "integration",
48
+ issueBody: "",
49
+ issueLabels: [],
50
+ commentBody: "",
51
+ sender: "tester",
52
+ branch: "main",
53
+ taskId,
54
+ issueDir: ".lastlight/issue-1",
55
+ bootstrapLabel: "lastlight:bootstrap",
56
+ };
57
+ }
58
+ function dockerConfig() {
59
+ return {
60
+ sandbox: "docker",
61
+ stateDir,
62
+ sessionsDir: join(stateDir, "agent-sessions"),
63
+ };
64
+ }
65
+ describe.skipIf(!RUN)("sandbox command execution (integration)", () => {
66
+ beforeAll(() => {
67
+ // Base the workspace under the repo's gitignored `data/` dir (i.e. inside
68
+ // the project, under the user's home). Docker Desktop on macOS shares
69
+ // /Users by default but NOT /var/folders (os.tmpdir()) or /tmp — so the
70
+ // workspace bind mount is only visible to the daemon under a shared path.
71
+ // This mirrors scripts/dev-local.sh (STATE_DIR=$PROJECT_ROOT/data). On Linux
72
+ // any path works.
73
+ const base = join(process.cwd(), "data", "sandbox-it");
74
+ mkdirSync(base, { recursive: true });
75
+ stateDir = mkdtempSync(join(base, "run-"));
76
+ // Run on the default bridge (the compose sandbox-egress network + coredns
77
+ // sidecars don't exist outside docker-compose) and point DNS at a real
78
+ // resolver so the container has working name resolution + NAT.
79
+ setEnv("LASTLIGHT_SANDBOX_NETWORK", "default");
80
+ setEnv("LASTLIGHT_DNS_STRICT", "8.8.8.8");
81
+ setEnv("LASTLIGHT_DNS_OPEN", "8.8.8.8");
82
+ // Host-path data volume → bind-mount mode (mirrors scripts/dev-local.sh),
83
+ // so the harness and the daemon see the same workspace FS.
84
+ setEnv("SANDBOX_DATA_VOLUME", join(stateDir, "sandbox-data"));
85
+ });
86
+ afterAll(() => {
87
+ for (const [k, v] of Object.entries(savedEnv)) {
88
+ if (v === undefined)
89
+ delete process.env[k];
90
+ else
91
+ process.env[k] = v;
92
+ }
93
+ if (stateDir)
94
+ rmSync(stateDir, { recursive: true, force: true });
95
+ });
96
+ it("runs a no-AI bash workflow and threads output to a downstream phase", async () => {
97
+ const wf = {
98
+ kind: "agent",
99
+ name: "it-bash",
100
+ phases: [
101
+ { name: "phase_0", type: "context" },
102
+ { name: "emit", type: "bash", command: "echo hello-from-sandbox", output_var: "greeting" },
103
+ // Consumes the upstream output two ways: template substitution + the
104
+ // forwarded LL_OUT_<PHASE> env var.
105
+ { name: "consume", type: "bash", command: "echo template={{phaseOutputs.emit}} env=$LL_OUT_EMIT" },
106
+ ],
107
+ };
108
+ const result = await runWorkflow(wf, baseCtx("it-bash-1"), dockerConfig(), {});
109
+ expect(result.success).toBe(true);
110
+ const emit = result.phases.find((p) => p.phase === "emit");
111
+ expect(emit?.success).toBe(true);
112
+ expect(emit?.output).toContain("hello-from-sandbox");
113
+ const consume = result.phases.find((p) => p.phase === "consume");
114
+ expect(consume?.success).toBe(true);
115
+ expect(consume?.output).toContain("template=hello-from-sandbox");
116
+ expect(consume?.output).toContain("env=hello-from-sandbox");
117
+ // The command run is mirrored to a session jsonl (visible in the dashboard
118
+ // + CLI), exactly like an agent turn.
119
+ const projects = join(stateDir, "agent-sessions", "projects");
120
+ expect(existsSync(projects)).toBe(true);
121
+ const jsonls = readdirSync(projects, { recursive: true }).filter((f) => String(f).endsWith(".jsonl"));
122
+ expect(jsonls.length).toBeGreaterThan(0);
123
+ }, TIMEOUT);
124
+ it("fails the workflow when a bash phase exits non-zero", async () => {
125
+ const wf = {
126
+ kind: "agent",
127
+ name: "it-bash-fail",
128
+ phases: [
129
+ { name: "phase_0", type: "context" },
130
+ { name: "boom", type: "bash", command: "echo nope >&2; exit 3" },
131
+ ],
132
+ };
133
+ const result = await runWorkflow(wf, baseCtx("it-bash-fail-1"), dockerConfig(), {});
134
+ expect(result.success).toBe(false);
135
+ const boom = result.phases.find((p) => p.phase === "boom");
136
+ expect(boom?.success).toBe(false);
137
+ }, TIMEOUT);
138
+ it("runs an inline JS script via node", async () => {
139
+ const wf = {
140
+ kind: "agent",
141
+ name: "it-js",
142
+ phases: [
143
+ { name: "phase_0", type: "context" },
144
+ {
145
+ name: "calc",
146
+ type: "script",
147
+ runtime: "js",
148
+ script: "console.log('js-answer:', 6 * 7);",
149
+ output_var: "out",
150
+ },
151
+ ],
152
+ };
153
+ const result = await runWorkflow(wf, baseCtx("it-js-1"), dockerConfig(), {});
154
+ expect(result.success).toBe(true);
155
+ const calc = result.phases.find((p) => p.phase === "calc");
156
+ expect(calc?.success).toBe(true);
157
+ expect(calc?.output).toContain("js-answer: 42");
158
+ }, TIMEOUT);
159
+ it("runs an inline Python script via uv run (stdlib only, offline)", async () => {
160
+ const wf = {
161
+ kind: "agent",
162
+ name: "it-py",
163
+ phases: [
164
+ { name: "phase_0", type: "context" },
165
+ {
166
+ name: "calc",
167
+ type: "script",
168
+ runtime: "python",
169
+ timeout_seconds: 120,
170
+ script: "import sys\nprint('py-answer:', 6 * 7)\nprint('py-version-ok:', sys.version_info[0] == 3)",
171
+ output_var: "out",
172
+ },
173
+ ],
174
+ };
175
+ const result = await runWorkflow(wf, baseCtx("it-py-1"), dockerConfig(), {});
176
+ expect(result.success).toBe(true);
177
+ const calc = result.phases.find((p) => p.phase === "calc");
178
+ expect(calc?.success).toBe(true);
179
+ expect(calc?.output).toContain("py-answer: 42");
180
+ expect(calc?.output).toContain("py-version-ok: True");
181
+ }, TIMEOUT);
182
+ });
183
+ //# sourceMappingURL=command-exec.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-exec.integration.test.js","sourceRoot":"","sources":["../../src/sandbox/command-exec.integration.test.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,38 @@ export declare class DockerSandbox {
139
139
  /** Called for each newline-terminated stdout line as it arrives. */
140
140
  onLine?: (line: string) => void;
141
141
  }): Promise<void>;
142
+ /**
143
+ * Run a deterministic shell command inside an already-provisioned sandbox
144
+ * container and return its exit code + captured output. This is the
145
+ * non-agent sibling of {@link runAgent}: same `docker exec --user agent -w
146
+ * <workdir> … sh -c <cmd>` machinery, but it captures a bounded stdout tail
147
+ * (runAgent discards stdout) and RESOLVES with the exit code instead of
148
+ * rejecting on non-zero — the caller decides success/failure.
149
+ *
150
+ * Powers `type: bash` / `type: script` workflow phases (and the in-sandbox
151
+ * `generic_loop.until_bash` check). `command` is passed as a single argv slot
152
+ * to `sh -c`, so it is NOT re-parsed by the host shell — it is the script we
153
+ * intend to run. Env is forwarded via `docker exec -e KEY=VALUE` (argv, not
154
+ * shell-interpolated); keys are charset-asserted defensively.
155
+ */
156
+ runCommand(taskId: string, command: string, opts?: {
157
+ /**
158
+ * Working directory inside the container. Defaults to WORKSPACE_DIR.
159
+ * Asserted against the workspace-root allowlist (same guard as runAgent).
160
+ */
161
+ cwd?: string;
162
+ /** Env forwarded into the command via `docker exec -e`. */
163
+ sandboxEnv?: Record<string, string>;
164
+ /** Per-command timeout in seconds (default: the sandbox config timeout). */
165
+ timeoutSeconds?: number;
166
+ /** Called for each newline-terminated stdout line as it arrives. */
167
+ onLine?: (line: string) => void;
168
+ }): Promise<{
169
+ exitCode: number;
170
+ stdout: string;
171
+ stderr: string;
172
+ timedOut: boolean;
173
+ }>;
142
174
  /**
143
175
  * Remove a sandbox container.
144
176
  */
@@ -67,10 +67,16 @@ export class DockerSandbox {
67
67
  dockerArgs.push("-v", `${pkgCacheVolume}:${PKG_CACHE_DIR}`);
68
68
  // Point each package manager at its shared subdir. npm reads npm_config_cache;
69
69
  // pnpm reads npm-style env config (npm_config_store_dir → store-dir); yarn
70
- // (classic + berry) reads YARN_CACHE_FOLDER. The agent already picks the PM
71
- // from the repo's lockfile (see skills/pr-review/SKILL.md), so all three are
72
- // wired regardless of which one a given repo uses.
73
- dockerArgs.push("-e", `npm_config_cache=${PKG_CACHE_DIR}/npm`, "-e", `npm_config_store_dir=${PKG_CACHE_DIR}/pnpm`, "-e", `YARN_CACHE_FOLDER=${PKG_CACHE_DIR}/yarn`);
70
+ // (classic + berry) reads YARN_CACHE_FOLDER; uv (python `type: script`
71
+ // phases) reads UV_CACHE_DIR. The agent already picks the PM from the repo's
72
+ // lockfile (see skills/pr-review/SKILL.md), so all are wired regardless of
73
+ // which one a given repo uses.
74
+ dockerArgs.push("-e", `npm_config_cache=${PKG_CACHE_DIR}/npm`, "-e", `npm_config_store_dir=${PKG_CACHE_DIR}/pnpm`, "-e", `YARN_CACHE_FOLDER=${PKG_CACHE_DIR}/yarn`, "-e", `UV_CACHE_DIR=${PKG_CACHE_DIR}/uv`,
75
+ // uv resolves PEP 723 deps from PyPI (pypi.org / pythonhosted.org are in
76
+ // the strict egress allowlist). Pin it to the baked-in system python3 so
77
+ // it never tries to fetch a managed interpreter from astral.sh / GitHub
78
+ // (not guaranteed reachable under strict egress).
79
+ "-e", "UV_PYTHON_DOWNLOADS=never");
74
80
  // Resolve git mounts for worktrees (if .git is a file pointing elsewhere).
75
81
  // In volume-subpath mode these are still emitted as bind mounts; the
76
82
  // gitMounts path is only hit for git worktrees that live alongside the
@@ -322,6 +328,105 @@ export class DockerSandbox {
322
328
  });
323
329
  });
324
330
  }
331
+ /**
332
+ * Run a deterministic shell command inside an already-provisioned sandbox
333
+ * container and return its exit code + captured output. This is the
334
+ * non-agent sibling of {@link runAgent}: same `docker exec --user agent -w
335
+ * <workdir> … sh -c <cmd>` machinery, but it captures a bounded stdout tail
336
+ * (runAgent discards stdout) and RESOLVES with the exit code instead of
337
+ * rejecting on non-zero — the caller decides success/failure.
338
+ *
339
+ * Powers `type: bash` / `type: script` workflow phases (and the in-sandbox
340
+ * `generic_loop.until_bash` check). `command` is passed as a single argv slot
341
+ * to `sh -c`, so it is NOT re-parsed by the host shell — it is the script we
342
+ * intend to run. Env is forwarded via `docker exec -e KEY=VALUE` (argv, not
343
+ * shell-interpolated); keys are charset-asserted defensively.
344
+ */
345
+ async runCommand(taskId, command, opts) {
346
+ const info = this.activeContainers.get(taskId);
347
+ if (!info)
348
+ throw new Error(`No sandbox for task ${taskId}`);
349
+ const timeout = opts?.timeoutSeconds || this.config.timeoutSeconds || 1800;
350
+ const workdir = opts?.cwd ?? WORKSPACE_DIR;
351
+ if (!workdir.startsWith(WORKSPACE_DIR) || !/^[A-Za-z0-9/_.-]+$/.test(workdir)) {
352
+ throw new Error(`Refusing to run command in cwd "${workdir}" — must live under ${WORKSPACE_DIR}`);
353
+ }
354
+ const envFlags = [];
355
+ for (const [k, v] of Object.entries(opts?.sandboxEnv ?? {})) {
356
+ if (!/^[A-Z_][A-Z0-9_]*$/.test(k)) {
357
+ throw new Error(`Refusing sandbox-env key "${k}" — must be UPPER_SNAKE`);
358
+ }
359
+ // Values travel as argv (no shell re-parse), so any value is safe — but a
360
+ // newline would let a value smuggle a second `-e` token in some shells;
361
+ // reject defensively to match runAgent's posture.
362
+ if (/[\n\r]/.test(v)) {
363
+ throw new Error(`Refusing sandbox-env value for "${k}" — contains newline`);
364
+ }
365
+ envFlags.push("-e", `${k}=${v}`);
366
+ }
367
+ const args = ["exec", "--user", "agent", "-w", workdir, ...envFlags, info.containerName, "sh", "-c", command];
368
+ // Bounded tails so a runaway command (e.g. a build dumping MB of logs)
369
+ // can't OOM the harness — keep enough stdout for the downstream
370
+ // `{{phaseOutputs.*}}` reference to be useful.
371
+ const STDOUT_TAIL_BYTES = 256 * 1024;
372
+ const STDERR_TAIL_BYTES = 32 * 1024;
373
+ return await new Promise((resolvePromise, reject) => {
374
+ const child = spawn("docker", args, { stdio: ["ignore", "pipe", "pipe"] });
375
+ let stdoutTail = "";
376
+ let stderrTail = "";
377
+ let buf = "";
378
+ let timedOut = false;
379
+ const timer = setTimeout(() => {
380
+ timedOut = true;
381
+ child.kill("SIGKILL");
382
+ }, timeout * 1000);
383
+ child.stdout.setEncoding("utf-8");
384
+ child.stdout.on("data", (chunk) => {
385
+ stdoutTail += chunk;
386
+ if (stdoutTail.length > STDOUT_TAIL_BYTES)
387
+ stdoutTail = stdoutTail.slice(-STDOUT_TAIL_BYTES);
388
+ if (!opts?.onLine)
389
+ return;
390
+ buf += chunk;
391
+ let nl;
392
+ while ((nl = buf.indexOf("\n")) >= 0) {
393
+ const line = buf.slice(0, nl);
394
+ buf = buf.slice(nl + 1);
395
+ if (line.length > 0) {
396
+ try {
397
+ opts.onLine(line);
398
+ }
399
+ catch { /* swallow listener errors */ }
400
+ }
401
+ }
402
+ });
403
+ child.stderr.setEncoding("utf-8");
404
+ child.stderr.on("data", (chunk) => {
405
+ stderrTail += chunk;
406
+ if (stderrTail.length > STDERR_TAIL_BYTES)
407
+ stderrTail = stderrTail.slice(-STDERR_TAIL_BYTES);
408
+ });
409
+ child.on("error", (err) => {
410
+ clearTimeout(timer);
411
+ reject(new Error(`Sandbox command spawn failed: ${err.message}`));
412
+ });
413
+ child.on("close", (code) => {
414
+ clearTimeout(timer);
415
+ if (buf.length > 0 && opts?.onLine) {
416
+ try {
417
+ opts.onLine(buf);
418
+ }
419
+ catch { /* ignore */ }
420
+ }
421
+ resolvePromise({
422
+ exitCode: timedOut ? 124 : (code ?? 1),
423
+ stdout: stdoutTail,
424
+ stderr: stderrTail,
425
+ timedOut,
426
+ });
427
+ });
428
+ });
429
+ }
325
430
  /**
326
431
  * Remove a sandbox container.
327
432
  */