lastlight 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/connectors/github-webhook.js +5 -0
- package/dist/connectors/github-webhook.js.map +1 -1
- package/dist/connectors/types.d.ts +2 -0
- package/dist/engine/agent-executor.d.ts +7 -16
- package/dist/engine/agent-executor.js +34 -305
- package/dist/engine/agent-executor.js.map +1 -1
- package/dist/engine/dispatcher.js +24 -0
- package/dist/engine/dispatcher.js.map +1 -1
- package/dist/engine/executors/orchestrator.d.ts +81 -0
- package/dist/engine/executors/orchestrator.js +340 -0
- package/dist/engine/executors/orchestrator.js.map +1 -0
- package/dist/engine/router.js +47 -1
- package/dist/engine/router.js.map +1 -1
- package/dist/engine/screen/classifier.d.ts +10 -0
- package/dist/engine/screen/classifier.js +44 -0
- package/dist/engine/screen/classifier.js.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/sandbox/sandbox.d.ts +189 -0
- package/dist/sandbox/sandbox.js +429 -0
- package/dist/sandbox/sandbox.js.map +1 -0
- package/dist/state/workflow-run-store.d.ts +7 -0
- package/dist/state/workflow-run-store.js +14 -0
- package/dist/state/workflow-run-store.js.map +1 -1
- package/dist/workflows/simple.d.ts +24 -3
- package/dist/workflows/simple.js +29 -3
- package/dist/workflows/simple.js.map +1 -1
- package/docker-compose.yml +1 -1
- package/package.json +1 -1
- package/plugins/lastlight/.claude-plugin/plugin.json +1 -1
- package/plugins/lastlight/skills/lastlight-evals/SKILL.md +30 -2
- package/plugins/lastlight/skills/lastlight-evals/references/authoring-from-pr.md +117 -0
- package/plugins/lastlight/skills/lastlight-evals/references/instance-schema.md +26 -7
- package/skills/README.md +1 -1
- package/skills/issue-triage/SKILL.md +34 -7
- package/skills/issue-triage/references/AGENT-BRIEF.md +28 -24
- package/dist/engine/executors/backends.d.ts +0 -41
- package/dist/engine/executors/backends.js +0 -541
- package/dist/engine/executors/backends.js.map +0 -1
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import { join, relative } from "path";
|
|
2
|
+
import { mkdtempSync, mkdirSync, rmSync } from "fs";
|
|
3
|
+
import { tmpdir } from "os";
|
|
4
|
+
import { spawnSync } from "child_process";
|
|
5
|
+
import { createTaskSandbox, setupTaskWorktree, prePopulateWorkspace } from "./index.js";
|
|
6
|
+
import { SmolSandbox as SmolDriver, smolAvailable, SMOL_WORKSPACE_DIR } from "./smol.js";
|
|
7
|
+
import { ALLOW_ALL_SENTINEL } from "./egress-allowlist.js";
|
|
8
|
+
import { getDockerSandboxOtelEnv, getOtelEnvForSandbox } from "../telemetry/index.js";
|
|
9
|
+
import { DOCKER_WORKSPACE_DIR, SKILL_BUNDLE_ROOT, stageSkillBundle, excludeFromGit, applyEnv, } from "../engine/executors/shared.js";
|
|
10
|
+
/** Inner-run git identity, shared by every adapter's agent path. */
|
|
11
|
+
const GIT_IDENTITY_ENV = {
|
|
12
|
+
GIT_AUTHOR_NAME: "last-light[bot]",
|
|
13
|
+
GIT_AUTHOR_EMAIL: "last-light[bot]@users.noreply.github.com",
|
|
14
|
+
GIT_COMMITTER_NAME: "last-light[bot]",
|
|
15
|
+
GIT_COMMITTER_EMAIL: "last-light[bot]@users.noreply.github.com",
|
|
16
|
+
// /workspace is a host-UID bind mount into a different-UID guest; git refuses
|
|
17
|
+
// to operate without an explicit safe-directory. GIT_CONFIG_* avoids needing
|
|
18
|
+
// a writeable ~/.gitconfig.
|
|
19
|
+
GIT_CONFIG_COUNT: "1",
|
|
20
|
+
GIT_CONFIG_KEY_0: "safe.directory",
|
|
21
|
+
GIT_CONFIG_VALUE_0: "*",
|
|
22
|
+
};
|
|
23
|
+
/** The base (git-identity) sandbox env the orchestrator passes to `runAgent`. */
|
|
24
|
+
export const AGENT_GIT_IDENTITY_ENV = GIT_IDENTITY_ENV;
|
|
25
|
+
/**
|
|
26
|
+
* The single factory replacing the `if (backend === …)` ladder. Given a
|
|
27
|
+
* backend and construction opts, returns the matching adapter. Docker's
|
|
28
|
+
* old null-fallback is now a thrown error from `provision` (the orchestrator's
|
|
29
|
+
* bracket surfaces it), so this never returns null.
|
|
30
|
+
*/
|
|
31
|
+
export function sandboxFor(backend, opts) {
|
|
32
|
+
switch (backend) {
|
|
33
|
+
case "docker":
|
|
34
|
+
return new DockerSandbox(opts);
|
|
35
|
+
case "smol":
|
|
36
|
+
return new SmolSandbox(opts);
|
|
37
|
+
case "gondolin":
|
|
38
|
+
return new InProcessSandbox("gondolin", opts);
|
|
39
|
+
case "none":
|
|
40
|
+
return new InProcessSandbox("none", opts);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// ── Docker adapter ──────────────────────────────────────────────────
|
|
44
|
+
/**
|
|
45
|
+
* Wraps the docker container driver ({@link DockerDriver}) + the
|
|
46
|
+
* `createTaskSandbox` provisioning helper. Egress is the strict/open coredns
|
|
47
|
+
* pair selected by `--dns`; the host constants live here.
|
|
48
|
+
*/
|
|
49
|
+
class DockerSandbox {
|
|
50
|
+
opts;
|
|
51
|
+
backend = "docker";
|
|
52
|
+
sbx;
|
|
53
|
+
agentCwd = DOCKER_WORKSPACE_DIR;
|
|
54
|
+
constructor(opts) {
|
|
55
|
+
this.opts = opts;
|
|
56
|
+
}
|
|
57
|
+
async provision(pre) {
|
|
58
|
+
// Strict allowlist by default; an `unrestricted_egress` phase points at the
|
|
59
|
+
// open coredns sidecar instead. IPs match docker-compose.yml's static
|
|
60
|
+
// assignments (see src/sandbox/egress-firewall-config.ts).
|
|
61
|
+
const dnsIp = this.opts.egress.unrestricted
|
|
62
|
+
? process.env.LASTLIGHT_DNS_OPEN || "172.30.0.11"
|
|
63
|
+
: process.env.LASTLIGHT_DNS_STRICT || "172.30.0.10";
|
|
64
|
+
const sbx = await createTaskSandbox({
|
|
65
|
+
taskId: this.opts.taskId,
|
|
66
|
+
stateDir: this.opts.stateDir,
|
|
67
|
+
sandboxDir: this.opts.sandboxDir,
|
|
68
|
+
env: this.opts.env,
|
|
69
|
+
prePopulate: pre,
|
|
70
|
+
dnsIp,
|
|
71
|
+
imageName: this.opts.imageName,
|
|
72
|
+
});
|
|
73
|
+
if (!sbx) {
|
|
74
|
+
throw new Error("LASTLIGHT_SANDBOX=docker but no docker sandbox was available. " +
|
|
75
|
+
"Install Docker and build the sandbox image, or set LASTLIGHT_SANDBOX=gondolin / none.");
|
|
76
|
+
}
|
|
77
|
+
this.sbx = sbx;
|
|
78
|
+
this.agentCwd = pre ? `${DOCKER_WORKSPACE_DIR}/${pre.repo}` : DOCKER_WORKSPACE_DIR;
|
|
79
|
+
return { hostWorkspaceDir: sbx.workDir, agentCwd: this.agentCwd };
|
|
80
|
+
}
|
|
81
|
+
stageSkills(phaseKey, skillPaths) {
|
|
82
|
+
if (!this.sbx)
|
|
83
|
+
throw new Error("DockerSandbox.stageSkills before provision");
|
|
84
|
+
// Copy (not symlink): the agent's tools run inside the container and host
|
|
85
|
+
// symlink targets wouldn't resolve there. Map host dests → in-container paths.
|
|
86
|
+
const staged = stageSkillBundle(this.sbx.workDir, phaseKey, skillPaths, "copy");
|
|
87
|
+
if (!staged)
|
|
88
|
+
return undefined;
|
|
89
|
+
return staged.map((d) => `${DOCKER_WORKSPACE_DIR}/${relative(this.sbx.workDir, d)}`);
|
|
90
|
+
}
|
|
91
|
+
sandboxPathFor(relPath) {
|
|
92
|
+
return `${DOCKER_WORKSPACE_DIR}/${relPath}`;
|
|
93
|
+
}
|
|
94
|
+
async runAgent(taskId, prompt, opts, onEvent) {
|
|
95
|
+
if (!this.sbx)
|
|
96
|
+
throw new Error("DockerSandbox.runAgent before provision");
|
|
97
|
+
await this.sbx.sandbox.runAgent(taskId, prompt, {
|
|
98
|
+
model: opts.model,
|
|
99
|
+
thinking: opts.thinking,
|
|
100
|
+
profile: opts.profile,
|
|
101
|
+
sandboxEnv: this.innerAgentEnv(opts.sandboxEnv),
|
|
102
|
+
agentCwd: opts.agentCwd,
|
|
103
|
+
skillDirs: opts.skillDirs,
|
|
104
|
+
webSearch: opts.webSearch,
|
|
105
|
+
webSearchProvider: opts.webSearchProvider,
|
|
106
|
+
onLine: parseLine(onEvent),
|
|
107
|
+
});
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
async runCommand(taskId, command, opts) {
|
|
111
|
+
if (!this.sbx)
|
|
112
|
+
throw new Error("DockerSandbox.runCommand before provision");
|
|
113
|
+
return this.sbx.sandbox.runCommand(taskId, command, {
|
|
114
|
+
cwd: opts.cwd,
|
|
115
|
+
sandboxEnv: opts.sandboxEnv,
|
|
116
|
+
timeoutSeconds: opts.timeoutSeconds,
|
|
117
|
+
onLine: () => { },
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async dispose() {
|
|
121
|
+
if (this.sbx)
|
|
122
|
+
await this.sbx.cleanup();
|
|
123
|
+
}
|
|
124
|
+
/** Git identity + (inside-container) OTEL collector env. */
|
|
125
|
+
innerAgentEnv(base) {
|
|
126
|
+
const otel = this.opts.otel?.enabled && this.opts.otel.forwardToSandbox ? getDockerSandboxOtelEnv() : {};
|
|
127
|
+
return { ...otel, ...base };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// ── smol adapter ────────────────────────────────────────────────────
|
|
131
|
+
/**
|
|
132
|
+
* Wraps the smolvm micro-VM driver ({@link SmolDriver}). Egress is native
|
|
133
|
+
* per-machine `--allow-host`; unrestricted → null (open). Provisioning boots
|
|
134
|
+
* the VM first, then probes the share-backed host dir before cloning into it.
|
|
135
|
+
*/
|
|
136
|
+
class SmolSandbox {
|
|
137
|
+
opts;
|
|
138
|
+
backend = "smol";
|
|
139
|
+
driver;
|
|
140
|
+
agentCwd = SMOL_WORKSPACE_DIR;
|
|
141
|
+
hostWorkspaceDir = "";
|
|
142
|
+
constructor(opts) {
|
|
143
|
+
this.opts = opts;
|
|
144
|
+
}
|
|
145
|
+
async provision(pre) {
|
|
146
|
+
if (!smolAvailable()) {
|
|
147
|
+
throw new Error("LASTLIGHT_SANDBOX=smol but the smolvm CLI is not available. " +
|
|
148
|
+
"Install smolvm (https://smolmachines.com) and start `smolvm serve`, " +
|
|
149
|
+
"or set LASTLIGHT_SANDBOX=docker / gondolin / none.");
|
|
150
|
+
}
|
|
151
|
+
// Boot FIRST (workspace dir mounted), then provision the probed share. No
|
|
152
|
+
// pre-clone here — see SmolSandbox.resolveHostWorkspace for why the mount
|
|
153
|
+
// source isn't always the share root.
|
|
154
|
+
const workDir = setupTaskWorktree({
|
|
155
|
+
taskId: this.opts.taskId,
|
|
156
|
+
stateDir: this.opts.stateDir,
|
|
157
|
+
sandboxDir: this.opts.sandboxDir,
|
|
158
|
+
});
|
|
159
|
+
this.driver = new SmolDriver({
|
|
160
|
+
env: this.opts.env,
|
|
161
|
+
allowHosts: this.opts.egress.unrestricted ? null : this.opts.egress.hosts,
|
|
162
|
+
});
|
|
163
|
+
const machine = await this.driver.create({ taskId: this.opts.taskId, worktreePath: workDir });
|
|
164
|
+
const hostWs = machine.hostWorkspace;
|
|
165
|
+
if (pre)
|
|
166
|
+
prePopulateWorkspace(hostWs, pre);
|
|
167
|
+
this.hostWorkspaceDir = hostWs;
|
|
168
|
+
this.agentCwd = pre ? `${SMOL_WORKSPACE_DIR}/${pre.repo}` : SMOL_WORKSPACE_DIR;
|
|
169
|
+
return { hostWorkspaceDir: hostWs, agentCwd: this.agentCwd };
|
|
170
|
+
}
|
|
171
|
+
stageSkills(phaseKey, skillPaths) {
|
|
172
|
+
const staged = stageSkillBundle(this.hostWorkspaceDir, phaseKey, skillPaths, "copy");
|
|
173
|
+
if (!staged)
|
|
174
|
+
return undefined;
|
|
175
|
+
return staged.map((d) => `${SMOL_WORKSPACE_DIR}/${relative(this.hostWorkspaceDir, d)}`);
|
|
176
|
+
}
|
|
177
|
+
sandboxPathFor(relPath) {
|
|
178
|
+
return `${SMOL_WORKSPACE_DIR}/${relPath}`;
|
|
179
|
+
}
|
|
180
|
+
async runAgent(taskId, prompt, opts, onEvent) {
|
|
181
|
+
if (!this.driver)
|
|
182
|
+
throw new Error("SmolSandbox.runAgent before provision");
|
|
183
|
+
await this.driver.runAgent(taskId, prompt, {
|
|
184
|
+
model: opts.model,
|
|
185
|
+
thinking: opts.thinking,
|
|
186
|
+
profile: opts.profile,
|
|
187
|
+
sandboxEnv: opts.sandboxEnv,
|
|
188
|
+
agentCwd: opts.agentCwd,
|
|
189
|
+
skillDirs: opts.skillDirs,
|
|
190
|
+
webSearch: opts.webSearch,
|
|
191
|
+
webSearchProvider: opts.webSearchProvider,
|
|
192
|
+
onLine: parseLine(onEvent),
|
|
193
|
+
});
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
async runCommand(taskId, command, opts) {
|
|
197
|
+
if (!this.driver)
|
|
198
|
+
throw new Error("SmolSandbox.runCommand before provision");
|
|
199
|
+
return this.driver.runCommand(taskId, command, {
|
|
200
|
+
cwd: opts.cwd,
|
|
201
|
+
sandboxEnv: opts.sandboxEnv,
|
|
202
|
+
timeoutSeconds: opts.timeoutSeconds,
|
|
203
|
+
onLine: () => { },
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
async dispose() {
|
|
207
|
+
if (this.driver)
|
|
208
|
+
await this.driver.destroy(this.opts.taskId);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// ── In-process adapter (gondolin / none) ────────────────────────────
|
|
212
|
+
/**
|
|
213
|
+
* **One** adapter for the two in-process backends, parameterized by
|
|
214
|
+
* `mode: 'gondolin' | 'none'`. The two differ only in agentic-pi's `sandbox`
|
|
215
|
+
* arg and a `HOME` override. Owns the `applyEnv`/restore `process.env` splice
|
|
216
|
+
* and the lazy `import("agentic-pi")`.
|
|
217
|
+
*
|
|
218
|
+
* The `mode` flag is a **tombstone** for gondolin's planned removal — when
|
|
219
|
+
* gondolin is retired it collapses to single-mode `none`.
|
|
220
|
+
*/
|
|
221
|
+
class InProcessSandbox {
|
|
222
|
+
mode;
|
|
223
|
+
opts;
|
|
224
|
+
backend;
|
|
225
|
+
hostWorkspaceDir = "";
|
|
226
|
+
agentCwd = "";
|
|
227
|
+
constructor(mode, opts) {
|
|
228
|
+
this.mode = mode;
|
|
229
|
+
this.opts = opts;
|
|
230
|
+
this.backend = mode;
|
|
231
|
+
}
|
|
232
|
+
async provision(pre) {
|
|
233
|
+
const workDir = setupTaskWorktree({
|
|
234
|
+
taskId: this.opts.taskId,
|
|
235
|
+
stateDir: this.opts.stateDir,
|
|
236
|
+
sandboxDir: this.opts.sandboxDir,
|
|
237
|
+
prePopulate: pre,
|
|
238
|
+
});
|
|
239
|
+
this.hostWorkspaceDir = workDir;
|
|
240
|
+
// When pre-cloned, cwd is the checkout so the agent runs inside the repo
|
|
241
|
+
// with no `cd` preamble; otherwise the workspace root.
|
|
242
|
+
this.agentCwd = pre ? join(workDir, pre.repo) : workDir;
|
|
243
|
+
return { hostWorkspaceDir: workDir, agentCwd: this.agentCwd };
|
|
244
|
+
}
|
|
245
|
+
stageSkills(phaseKey, skillPaths) {
|
|
246
|
+
// none: stage at the workspace ROOT (host FS fully visible). gondolin
|
|
247
|
+
// mounts only cwd, so its bundle is staged under the repo + added to the
|
|
248
|
+
// checkout's local `.git/info/exclude` so the agent can't commit it.
|
|
249
|
+
const gondolin = this.mode === "gondolin";
|
|
250
|
+
const skillRoot = gondolin ? this.agentCwd : this.hostWorkspaceDir;
|
|
251
|
+
const staged = stageSkillBundle(skillRoot, phaseKey, skillPaths, "symlink");
|
|
252
|
+
if (staged && gondolin)
|
|
253
|
+
excludeFromGit(this.agentCwd, SKILL_BUNDLE_ROOT);
|
|
254
|
+
return staged; // host paths — passed through to agentic-pi's skillPaths
|
|
255
|
+
}
|
|
256
|
+
sandboxPathFor(relPath) {
|
|
257
|
+
return join(this.hostWorkspaceDir, relPath);
|
|
258
|
+
}
|
|
259
|
+
async runAgent(_taskId, prompt, opts, onEvent) {
|
|
260
|
+
// agentic-pi reads its own env (provider keys, App PEM, …) from
|
|
261
|
+
// process.env. Splice in our scoped values for the call, then restore.
|
|
262
|
+
const restore = applyEnv(this.opts.env);
|
|
263
|
+
const allowedHttpHosts = this.opts.egress.unrestricted ? [ALLOW_ALL_SENTINEL] : this.opts.egress.hosts;
|
|
264
|
+
try {
|
|
265
|
+
// Loaded lazily: agentic-pi transitively poisons the global undici
|
|
266
|
+
// dispatcher on import, which would break the harness's own fetch. The
|
|
267
|
+
// dynamic import keeps the harness clean unless an in-process run happens.
|
|
268
|
+
const { run: agenticRun } = await import("agentic-pi");
|
|
269
|
+
return await agenticRun({
|
|
270
|
+
model: opts.model,
|
|
271
|
+
prompt,
|
|
272
|
+
thinking: opts.thinking,
|
|
273
|
+
profile: opts.profile,
|
|
274
|
+
githubApiBaseUrl: opts.githubApiBaseUrl,
|
|
275
|
+
sandbox: this.mode === "gondolin" ? "gondolin" : "none",
|
|
276
|
+
sandboxEnv: this.innerAgentEnv(opts.sandboxEnv),
|
|
277
|
+
cwd: opts.agentCwd,
|
|
278
|
+
noSession: true,
|
|
279
|
+
skillPaths: opts.skillDirs,
|
|
280
|
+
allowedHttpHosts,
|
|
281
|
+
webSearch: opts.webSearch === true,
|
|
282
|
+
webSearchProvider: opts.webSearchProvider,
|
|
283
|
+
onEvent,
|
|
284
|
+
onWarn: (msg) => console.warn(`[agentic] ${msg}`),
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
finally {
|
|
288
|
+
restore();
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
async runCommand(_taskId, command, opts) {
|
|
292
|
+
// gondolin / none run the command on the host worktree via spawnSync — the
|
|
293
|
+
// same degraded model those backends already used.
|
|
294
|
+
const proc = spawnSync("sh", ["-c", command], {
|
|
295
|
+
cwd: opts.cwd,
|
|
296
|
+
env: { ...process.env, ...this.opts.env, ...(opts.sandboxEnv ?? {}) },
|
|
297
|
+
encoding: "utf-8",
|
|
298
|
+
timeout: opts.timeoutSeconds * 1000,
|
|
299
|
+
maxBuffer: 256 * 1024 * 1024,
|
|
300
|
+
});
|
|
301
|
+
const exitCode = proc.status ?? (proc.signal ? 124 : 1);
|
|
302
|
+
return {
|
|
303
|
+
exitCode,
|
|
304
|
+
stdout: proc.stdout ?? "",
|
|
305
|
+
stderr: proc.stderr ?? "",
|
|
306
|
+
timedOut: proc.signal === "SIGTERM",
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
dispose() {
|
|
310
|
+
// No isolation primitive to tear down — the env splice is restored inside
|
|
311
|
+
// runAgent, and the worktree is reaped elsewhere.
|
|
312
|
+
}
|
|
313
|
+
/** Git identity + OTEL env + (gondolin only) a HOME override into the VM. */
|
|
314
|
+
innerAgentEnv(base) {
|
|
315
|
+
const otel = this.opts.otel?.enabled && this.opts.otel.forwardToSandbox ? getOtelEnvForSandbox() : {};
|
|
316
|
+
// gondolin: the VM user inherits HOME from the agentic-pi process (the
|
|
317
|
+
// host's HOME leaks in). Force HOME=/root so `git config --global` /
|
|
318
|
+
// `gh auth status` write to a real path inside the VM. none runs on the
|
|
319
|
+
// host — never override HOME.
|
|
320
|
+
const homeOverride = this.mode === "gondolin" ? { HOME: "/root", USER: "root", LOGNAME: "root" } : {};
|
|
321
|
+
return { ...otel, ...base, ...homeOverride };
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* In-memory `Sandbox` adapter for unit-testing the orchestrator without
|
|
326
|
+
* Docker/VMs. `provision()` returns a **real** `mkdtemp` workspace (so skill
|
|
327
|
+
* staging + artifact harvest run for real), `runAgent` replays a canned array
|
|
328
|
+
* of pi event records through `onEvent`, and it **records** the opts it
|
|
329
|
+
* received for assertions. Covers Last Light's orchestration, not agentic-pi's
|
|
330
|
+
* semantics.
|
|
331
|
+
*
|
|
332
|
+
* Inject it via the optional `sandboxFactory` on `executeAgent`/`executeCommand`
|
|
333
|
+
* — see {@link FakeSandbox.asFactory}.
|
|
334
|
+
*/
|
|
335
|
+
export class FakeSandbox {
|
|
336
|
+
behavior;
|
|
337
|
+
backend = "none";
|
|
338
|
+
// Recorded for assertions.
|
|
339
|
+
egress;
|
|
340
|
+
env;
|
|
341
|
+
hostWorkspaceDir = "";
|
|
342
|
+
agentCwd = "";
|
|
343
|
+
stagedSkillDirs;
|
|
344
|
+
receivedAgentOpts;
|
|
345
|
+
receivedCommandOpts;
|
|
346
|
+
receivedCommand;
|
|
347
|
+
provisionCalls = 0;
|
|
348
|
+
disposed = false;
|
|
349
|
+
constructor(behavior = {}) {
|
|
350
|
+
this.behavior = behavior;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Build a {@link SandboxFactory} that always returns THIS instance, capturing
|
|
354
|
+
* the construction opts (egress, env, backend) for later inspection.
|
|
355
|
+
*/
|
|
356
|
+
asFactory() {
|
|
357
|
+
return (backend, opts) => {
|
|
358
|
+
this.backend = backend;
|
|
359
|
+
this.egress = opts.egress;
|
|
360
|
+
this.env = opts.env;
|
|
361
|
+
return this;
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
async provision(pre) {
|
|
365
|
+
this.provisionCalls += 1;
|
|
366
|
+
const dir = mkdtempSync(join(tmpdir(), "fake-sbx-"));
|
|
367
|
+
this.hostWorkspaceDir = dir;
|
|
368
|
+
this.agentCwd = pre ? join(dir, pre.repo) : dir;
|
|
369
|
+
if (pre)
|
|
370
|
+
mkdirSync(this.agentCwd, { recursive: true });
|
|
371
|
+
return { hostWorkspaceDir: dir, agentCwd: this.agentCwd };
|
|
372
|
+
}
|
|
373
|
+
stageSkills(phaseKey, skillPaths) {
|
|
374
|
+
this.stagedSkillDirs = stageSkillBundle(this.hostWorkspaceDir, phaseKey, skillPaths, "symlink");
|
|
375
|
+
return this.stagedSkillDirs;
|
|
376
|
+
}
|
|
377
|
+
sandboxPathFor(relPath) {
|
|
378
|
+
return join(this.hostWorkspaceDir, relPath);
|
|
379
|
+
}
|
|
380
|
+
async runAgent(_taskId, _prompt, opts, onEvent) {
|
|
381
|
+
this.receivedAgentOpts = opts;
|
|
382
|
+
if (this.behavior.throwOnRunAgent)
|
|
383
|
+
throw asError(this.behavior.throwOnRunAgent);
|
|
384
|
+
for (const record of this.behavior.events ?? [])
|
|
385
|
+
onEvent(record);
|
|
386
|
+
return this.behavior.returnRunResult;
|
|
387
|
+
}
|
|
388
|
+
async runCommand(_taskId, command, opts) {
|
|
389
|
+
this.receivedCommand = command;
|
|
390
|
+
this.receivedCommandOpts = opts;
|
|
391
|
+
if (this.behavior.throwOnRunCommand)
|
|
392
|
+
throw asError(this.behavior.throwOnRunCommand);
|
|
393
|
+
return this.behavior.commandResult ?? { exitCode: 0, stdout: "", stderr: "", timedOut: false };
|
|
394
|
+
}
|
|
395
|
+
dispose() {
|
|
396
|
+
this.disposed = true;
|
|
397
|
+
try {
|
|
398
|
+
if (this.hostWorkspaceDir)
|
|
399
|
+
rmSync(this.hostWorkspaceDir, { recursive: true, force: true });
|
|
400
|
+
}
|
|
401
|
+
catch {
|
|
402
|
+
/* best effort */
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
// ── helpers ─────────────────────────────────────────────────────────
|
|
407
|
+
function asError(e) {
|
|
408
|
+
return e instanceof Error ? e : new Error(e);
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Wrap an `onEvent(record)` consumer as an `onLine(line)` handler for the
|
|
412
|
+
* subprocess (docker/smol) drivers: apply the cheap `{`-prefix guard, parse
|
|
413
|
+
* JSON, and forward the parsed record. Non-JSON / malformed lines are dropped.
|
|
414
|
+
*/
|
|
415
|
+
function parseLine(onEvent) {
|
|
416
|
+
return (line) => {
|
|
417
|
+
if (!line.startsWith("{"))
|
|
418
|
+
return;
|
|
419
|
+
let record;
|
|
420
|
+
try {
|
|
421
|
+
record = JSON.parse(line);
|
|
422
|
+
}
|
|
423
|
+
catch {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
onEvent(record);
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,6 +93,13 @@ export declare class WorkflowRunStore {
|
|
|
93
93
|
getRun(id: string): WorkflowRun | null;
|
|
94
94
|
/** Find the most recent active (running or paused) workflow run for a trigger */
|
|
95
95
|
getByTrigger(triggerId: string): WorkflowRun | null;
|
|
96
|
+
/**
|
|
97
|
+
* True if any run of `workflowName` exists for this trigger, in ANY status.
|
|
98
|
+
* Unlike `getByTrigger` (active runs only), this also sees a build that has
|
|
99
|
+
* already succeeded/failed/cancelled — the signal the router uses to gate
|
|
100
|
+
* reporter-driven re-triage to the pre-build window.
|
|
101
|
+
*/
|
|
102
|
+
hasRunForTrigger(triggerId: string, workflowName: string): boolean;
|
|
96
103
|
/** List all active (running or paused) workflow runs */
|
|
97
104
|
listActive(): WorkflowRun[];
|
|
98
105
|
/** List recent workflow runs, ordered by start time descending */
|
|
@@ -96,6 +96,20 @@ export class WorkflowRunStore {
|
|
|
96
96
|
`).get(triggerId);
|
|
97
97
|
return row ? this.deserialize(row) : null;
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* True if any run of `workflowName` exists for this trigger, in ANY status.
|
|
101
|
+
* Unlike `getByTrigger` (active runs only), this also sees a build that has
|
|
102
|
+
* already succeeded/failed/cancelled — the signal the router uses to gate
|
|
103
|
+
* reporter-driven re-triage to the pre-build window.
|
|
104
|
+
*/
|
|
105
|
+
hasRunForTrigger(triggerId, workflowName) {
|
|
106
|
+
const row = this.db.prepare(`
|
|
107
|
+
SELECT 1 FROM workflow_runs
|
|
108
|
+
WHERE trigger_id = ? AND workflow_name = ?
|
|
109
|
+
LIMIT 1
|
|
110
|
+
`).get(triggerId, workflowName);
|
|
111
|
+
return !!row;
|
|
112
|
+
}
|
|
99
113
|
/** List all active (running or paused) workflow runs */
|
|
100
114
|
listActive() {
|
|
101
115
|
const rows = this.db.prepare(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-run-store.js","sourceRoot":"","sources":["../../src/state/workflow-run-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-run-store.js","sourceRoot":"","sources":["../../src/state/workflow-run-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,11 +70,32 @@ export declare const PER_TARGET_REUSE_WORKFLOWS: Set<string>;
|
|
|
70
70
|
* `serverArtifacts()` harvests them instead of being orphaned a level up.
|
|
71
71
|
* `build` was the original member; verify/qa-test were added for the harvest
|
|
72
72
|
* fix, and `demo` for the same reason (its `demo.mp4` is written under
|
|
73
|
-
* `.lastlight/<key>/` and harvested into the Artifacts store).
|
|
74
|
-
* leaves `prePopulateBranch` unset
|
|
75
|
-
* in `prePopulateWorkspace` clones the default
|
|
73
|
+
* `.lastlight/<key>/` and harvested into the Artifacts store). For a fresh
|
|
74
|
+
* (issue-scoped) dispatch the dispatcher leaves `prePopulateBranch` unset and
|
|
75
|
+
* the missing-branch fallback in `prePopulateWorkspace` clones the default
|
|
76
|
+
* branch — correct for `build`/`demo`, which *create* the synth branch off the
|
|
77
|
+
* default. But when the *same* workflow runs against an existing PR, the synth
|
|
78
|
+
* `lastlight/<prNumber>-<title-slug>` name won't match the PR's real head ref
|
|
79
|
+
* (named after the originating issue), so the fallback would clone the default
|
|
80
|
+
* branch and test/demo code that lacks the PR — see
|
|
81
|
+
* `PR_HEADREF_PREPOPULATE_WORKFLOWS`.
|
|
76
82
|
*/
|
|
77
83
|
export declare const PREPOPULATE_SYNTH_WORKFLOWS: Set<string>;
|
|
84
|
+
/**
|
|
85
|
+
* The subset of PR-scoped read workflows the dispatcher pins to the PR's *real*
|
|
86
|
+
* head ref (via `getPullRequest(...).head.ref`) before pre-populating, instead
|
|
87
|
+
* of letting them fall back to the synthesized `lastlight/N-<title-slug>` name.
|
|
88
|
+
* Each of these is meaningful only against an existing PR, and the synth name
|
|
89
|
+
* never matches the PR's actual branch (which is named after the originating
|
|
90
|
+
* issue, e.g. `lastlight/14-…` for a PR #15). Without this pinning:
|
|
91
|
+
* - `qa-test` / `verify` QA the *base* branch and report the PR's feature
|
|
92
|
+
* missing — a false-negative result.
|
|
93
|
+
* - `demo`'s "after" collapses onto the default branch, matching "before".
|
|
94
|
+
* `pr-fix` is handled separately (it plumbs `branch` through context for the
|
|
95
|
+
* architect/executor to push to). See the resolution block in
|
|
96
|
+
* `dispatchWorkflow` (src/index.ts).
|
|
97
|
+
*/
|
|
98
|
+
export declare const PR_HEADREF_PREPOPULATE_WORKFLOWS: Set<string>;
|
|
78
99
|
export declare function workflowScopedTaskId(repo: string, number: number | undefined, workflowName: string, workflowId: string): string;
|
|
79
100
|
/**
|
|
80
101
|
* Resolve the `{{branch}}` template var (and the matching sandbox
|
package/dist/workflows/simple.js
CHANGED
|
@@ -28,11 +28,37 @@ export const PER_TARGET_REUSE_WORKFLOWS = new Set(["pr-review", "pr-fix"]);
|
|
|
28
28
|
* `serverArtifacts()` harvests them instead of being orphaned a level up.
|
|
29
29
|
* `build` was the original member; verify/qa-test were added for the harvest
|
|
30
30
|
* fix, and `demo` for the same reason (its `demo.mp4` is written under
|
|
31
|
-
* `.lastlight/<key>/` and harvested into the Artifacts store).
|
|
32
|
-
* leaves `prePopulateBranch` unset
|
|
33
|
-
* in `prePopulateWorkspace` clones the default
|
|
31
|
+
* `.lastlight/<key>/` and harvested into the Artifacts store). For a fresh
|
|
32
|
+
* (issue-scoped) dispatch the dispatcher leaves `prePopulateBranch` unset and
|
|
33
|
+
* the missing-branch fallback in `prePopulateWorkspace` clones the default
|
|
34
|
+
* branch — correct for `build`/`demo`, which *create* the synth branch off the
|
|
35
|
+
* default. But when the *same* workflow runs against an existing PR, the synth
|
|
36
|
+
* `lastlight/<prNumber>-<title-slug>` name won't match the PR's real head ref
|
|
37
|
+
* (named after the originating issue), so the fallback would clone the default
|
|
38
|
+
* branch and test/demo code that lacks the PR — see
|
|
39
|
+
* `PR_HEADREF_PREPOPULATE_WORKFLOWS`.
|
|
34
40
|
*/
|
|
35
41
|
export const PREPOPULATE_SYNTH_WORKFLOWS = new Set(["build", "verify", "qa-test", "demo"]);
|
|
42
|
+
/**
|
|
43
|
+
* The subset of PR-scoped read workflows the dispatcher pins to the PR's *real*
|
|
44
|
+
* head ref (via `getPullRequest(...).head.ref`) before pre-populating, instead
|
|
45
|
+
* of letting them fall back to the synthesized `lastlight/N-<title-slug>` name.
|
|
46
|
+
* Each of these is meaningful only against an existing PR, and the synth name
|
|
47
|
+
* never matches the PR's actual branch (which is named after the originating
|
|
48
|
+
* issue, e.g. `lastlight/14-…` for a PR #15). Without this pinning:
|
|
49
|
+
* - `qa-test` / `verify` QA the *base* branch and report the PR's feature
|
|
50
|
+
* missing — a false-negative result.
|
|
51
|
+
* - `demo`'s "after" collapses onto the default branch, matching "before".
|
|
52
|
+
* `pr-fix` is handled separately (it plumbs `branch` through context for the
|
|
53
|
+
* architect/executor to push to). See the resolution block in
|
|
54
|
+
* `dispatchWorkflow` (src/index.ts).
|
|
55
|
+
*/
|
|
56
|
+
export const PR_HEADREF_PREPOPULATE_WORKFLOWS = new Set([
|
|
57
|
+
"pr-review",
|
|
58
|
+
"demo",
|
|
59
|
+
"qa-test",
|
|
60
|
+
"verify",
|
|
61
|
+
]);
|
|
36
62
|
export function workflowScopedTaskId(repo, number, workflowName, workflowId) {
|
|
37
63
|
// Reusable per-PR workspaces are keyed by (repo, PR) only — no run suffix.
|
|
38
64
|
if (number !== undefined && PER_TARGET_REUSE_WORKFLOWS.has(workflowName)) {
|