@guyghost/swarm-dao-improvement 0.5.6 → 0.6.0
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/sandbox.d.ts +3 -3
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +20 -10
- package/dist/sandbox.js.map +1 -1
- package/dist/workers.d.ts.map +1 -1
- package/dist/workers.js +67 -17
- package/dist/workers.js.map +1 -1
- package/dist/worktree.d.ts.map +1 -1
- package/dist/worktree.js +23 -11
- package/dist/worktree.js.map +1 -1
- package/package.json +3 -3
package/dist/sandbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildSandboxArgv, SANDBOX_WORKDIR_MOUNT, validateSandboxImage } from "@guyghost/swarm-dao-core/delivery";
|
|
2
2
|
export type SandboxMode = "none" | "docker" | "container" | "auto";
|
|
3
3
|
export interface SandboxOptions {
|
|
4
4
|
mode: Exclude<SandboxMode, "none">;
|
|
@@ -11,14 +11,14 @@ export interface SandboxOptions {
|
|
|
11
11
|
timeoutMs?: number;
|
|
12
12
|
}
|
|
13
13
|
type AnchorCommandOutcome = import("./orchestrator.js").AnchorCommandOutcome;
|
|
14
|
-
export type SandboxExecRunner = (
|
|
14
|
+
export type SandboxExecRunner = (argv: readonly string[], timeoutMs: number) => Promise<{
|
|
15
15
|
stdout: string;
|
|
16
16
|
stderr: string;
|
|
17
17
|
exitCode: number;
|
|
18
18
|
}>;
|
|
19
19
|
export type AnchorCommandRunner = (command: string) => Promise<AnchorCommandOutcome>;
|
|
20
20
|
export type { SandboxCommandOptions } from "@guyghost/swarm-dao-core/delivery";
|
|
21
|
-
export {
|
|
21
|
+
export { buildSandboxArgv, SANDBOX_WORKDIR_MOUNT, validateSandboxImage };
|
|
22
22
|
/**
|
|
23
23
|
* An AnchorCommandRunner that executes each command inside a fresh bounded
|
|
24
24
|
* container. Errors surface as { ok: false } outcomes — an anchor honestly
|
package/dist/sandbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAElH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AAQnE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnC,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,oBAAoB,GAAG,OAAO,mBAAmB,EAAE,oBAAoB,CAAC;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAErF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;AAkCzE;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CAAE,EACzE,MAAM,GAAE,iBAAqC,GAC5C,mBAAmB,CAUrB;AAQD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,WAAW,EACtB,MAAM,GAAE,iBAAqC,GAC5C,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAMvD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,iBAAqC,GAC5C,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAiBrC"}
|
package/dist/sandbox.js
CHANGED
|
@@ -9,18 +9,28 @@
|
|
|
9
9
|
//
|
|
10
10
|
// Boundary: this module executes commands, it never judges them. Verdicts
|
|
11
11
|
// stay with the improvement machine; a sandbox is a boundary, not an authority.
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { buildSandboxCommand, SANDBOX_WORKDIR_MOUNT, validateSandboxImage } from "@guyghost/swarm-dao-core/delivery";
|
|
12
|
+
import { execFile } from "node:child_process";
|
|
13
|
+
import { buildSandboxArgv, SANDBOX_WORKDIR_MOUNT, validateSandboxImage } from "@guyghost/swarm-dao-core/delivery";
|
|
15
14
|
// The pure container command builder and image validation live in core
|
|
16
15
|
// (delivery/sandbox-command) and are shared with the delivery layer; this
|
|
17
16
|
// module keeps the executor-side concerns (runtime detection, outcome runner).
|
|
18
17
|
const DEFAULT_TIMEOUT_MS = 600_000;
|
|
19
|
-
export {
|
|
20
|
-
|
|
21
|
-
const
|
|
18
|
+
export { buildSandboxArgv, SANDBOX_WORKDIR_MOUNT, validateSandboxImage };
|
|
19
|
+
/** execFile with utf8 strings, promise-shaped (argv — never a shell line). */
|
|
20
|
+
const execFileAsync = (file, args, options) => new Promise((resolve, reject) => {
|
|
21
|
+
execFile(file, args, { ...options, encoding: "utf8" }, (error, stdout, stderr) => {
|
|
22
|
+
if (error)
|
|
23
|
+
reject(Object.assign(error, { stdout, stderr }));
|
|
24
|
+
else
|
|
25
|
+
resolve({ stdout: String(stdout), stderr: String(stderr) });
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
const defaultExecRunner = async (argv, timeoutMs) => {
|
|
22
29
|
try {
|
|
23
|
-
const { stdout, stderr } = await
|
|
30
|
+
const { stdout, stderr } = await execFileAsync(argv[0] ?? "", argv.slice(1), {
|
|
31
|
+
timeout: timeoutMs,
|
|
32
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
33
|
+
});
|
|
24
34
|
return { stdout, stderr, exitCode: 0 };
|
|
25
35
|
}
|
|
26
36
|
catch (error) {
|
|
@@ -40,8 +50,8 @@ const tail = (value, max) => (value.length <= max ? value : `…${value.slice(-m
|
|
|
40
50
|
*/
|
|
41
51
|
export function createSandboxRunCommand(options, runner = defaultExecRunner) {
|
|
42
52
|
return async (command) => {
|
|
43
|
-
const
|
|
44
|
-
const result = await runner(
|
|
53
|
+
const argv = buildSandboxArgv({ ...options, runtime: options.mode }, command);
|
|
54
|
+
const result = await runner(argv, options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
45
55
|
if (result.exitCode !== 0) {
|
|
46
56
|
const detail = [result.stderr, result.stdout].filter((part) => part && part.length > 0).join(" ");
|
|
47
57
|
return { ok: false, detail: tail(detail.trim(), 300) || `exit ${result.exitCode}` };
|
|
@@ -51,7 +61,7 @@ export function createSandboxRunCommand(options, runner = defaultExecRunner) {
|
|
|
51
61
|
}
|
|
52
62
|
/** Probe a runtime binary by executing its version command. */
|
|
53
63
|
async function hasRuntime(binary, runner) {
|
|
54
|
-
const probe = await runner(
|
|
64
|
+
const probe = await runner([binary, "--version"], 10_000);
|
|
55
65
|
return probe.exitCode === 0;
|
|
56
66
|
}
|
|
57
67
|
/**
|
package/dist/sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAC/D,6EAA6E;AAC7E,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,gFAAgF;AAEhF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
|
package/dist/workers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../src/workers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../src/workers.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAsCrE,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;+CAE2C;IAC3C,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnG,kFAAkF;AAClF,eAAO,MAAM,eAAe,QAA4B,CAAC;AAEzD;;;2DAG2D;AAC3D,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAY,CAAC;AA8ChE,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,EAAE,UAAU,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAIzF,CAAC;AA0DF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CA2GxB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAuBrF"}
|
package/dist/workers.js
CHANGED
|
@@ -12,15 +12,28 @@
|
|
|
12
12
|
// signal (models/improvement-orchestrator.md). Executor retries are
|
|
13
13
|
// effect-level, bounded, and idempotent (fresh workspace per attempt); they
|
|
14
14
|
// never change series or cycle state.
|
|
15
|
-
import {
|
|
16
|
-
import { promisify } from "node:util";
|
|
15
|
+
import { execFile } from "node:child_process";
|
|
17
16
|
import { ORCHESTRATOR_MAX_WORKER_RETRIES } from "@guyghost/swarm-dao-core/models/improvement";
|
|
18
|
-
import { sanitizeHerdrName } from "@guyghost/swarm-dao-herdr-adapter";
|
|
19
|
-
|
|
17
|
+
import { sanitizeHerdrName, trimTrailingNewlines } from "@guyghost/swarm-dao-herdr-adapter";
|
|
18
|
+
/** execFile with utf8 strings, promise-shaped. Failures reject with the child
|
|
19
|
+
* error carrying .code/.stdout/.stderr. Commands are ARGV — never shell
|
|
20
|
+
* strings — so worker prompts and labels are never shell-interpreted. */
|
|
21
|
+
const execFileAsync = (file, args, options) => new Promise((resolve, reject) => {
|
|
22
|
+
execFile(file, args, { ...options, encoding: "utf8" }, (error, stdout, stderr) => {
|
|
23
|
+
if (error)
|
|
24
|
+
reject(Object.assign(error, { stdout, stderr }));
|
|
25
|
+
else
|
|
26
|
+
resolve({ stdout: String(stdout), stderr: String(stderr) });
|
|
27
|
+
});
|
|
28
|
+
});
|
|
20
29
|
const defaultRunner = () => ({
|
|
21
|
-
exec: async (
|
|
30
|
+
exec: async (argv, options) => {
|
|
22
31
|
try {
|
|
23
|
-
const { stdout, stderr } = await
|
|
32
|
+
const { stdout, stderr } = await execFileAsync(argv[0] ?? "", argv.slice(1), {
|
|
33
|
+
cwd: options?.cwd,
|
|
34
|
+
timeout: options?.timeout,
|
|
35
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
36
|
+
});
|
|
24
37
|
return { stdout, stderr, exitCode: 0 };
|
|
25
38
|
}
|
|
26
39
|
catch (error) {
|
|
@@ -86,7 +99,7 @@ const escapeInStringControls = (candidate) => {
|
|
|
86
99
|
}
|
|
87
100
|
return repaired;
|
|
88
101
|
};
|
|
89
|
-
// Numeric options
|
|
102
|
+
// Numeric options reach herdr command lines as argv elements, so they must be
|
|
90
103
|
// finite integers within bounds even when callers bypass the TypeScript types
|
|
91
104
|
// (e.g. JSON config); anything else falls back to the default.
|
|
92
105
|
export const toBoundedInt = (value, fallback, min, max) => {
|
|
@@ -95,7 +108,6 @@ export const toBoundedInt = (value, fallback, min, max) => {
|
|
|
95
108
|
return fallback;
|
|
96
109
|
return Math.min(Math.max(Math.trunc(parsed), min), max);
|
|
97
110
|
};
|
|
98
|
-
const quote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
|
|
99
111
|
function herdrErrorDetail(stderr, stdout) {
|
|
100
112
|
try {
|
|
101
113
|
const parsed = JSON.parse(stderr.trim() || stdout.trim());
|
|
@@ -129,7 +141,7 @@ function agentState(result) {
|
|
|
129
141
|
async function closeLingeringWorkspaces(runner, baseName) {
|
|
130
142
|
let listed;
|
|
131
143
|
try {
|
|
132
|
-
listed = await runner.exec("herdr workspace list");
|
|
144
|
+
listed = await runner.exec(["herdr", "workspace", "list"]);
|
|
133
145
|
}
|
|
134
146
|
catch {
|
|
135
147
|
return; // listing is best-effort; creation will surface real errors
|
|
@@ -141,7 +153,7 @@ async function closeLingeringWorkspaces(runner, baseName) {
|
|
|
141
153
|
const label = typeof workspace.label === "string" ? workspace.label : "";
|
|
142
154
|
if (!workspace.workspace_id || (label !== baseName && !label.startsWith(`${baseName}-r`)))
|
|
143
155
|
continue;
|
|
144
|
-
await runner.exec(
|
|
156
|
+
await runner.exec(["herdr", "workspace", "close", workspace.workspace_id]).catch(() => undefined);
|
|
145
157
|
}
|
|
146
158
|
}
|
|
147
159
|
/**
|
|
@@ -157,7 +169,6 @@ export async function runHerdrWorker(options, name, prompt) {
|
|
|
157
169
|
const timeoutMs = toBoundedInt(options.timeoutMs, 300_000, 1_000, 300_000);
|
|
158
170
|
const startTimeoutMs = toBoundedInt(options.startTimeoutMs, 120_000, 1_000, 300_000);
|
|
159
171
|
const readLines = toBoundedInt(options.readLines, 200, 1, 10_000);
|
|
160
|
-
const extraArgs = agentArgs.map((arg) => quote(arg)).join(" ");
|
|
161
172
|
if (!SAFE_HERDR_KIND.test(kind))
|
|
162
173
|
return { ok: false, error: `herdr kind '${kind}' is not a valid agent kind identifier.` };
|
|
163
174
|
const baseName = sanitizeHerdrName(name);
|
|
@@ -170,7 +181,16 @@ export async function runHerdrWorker(options, name, prompt) {
|
|
|
170
181
|
const agentName = attempt === 1 ? baseName : `${baseName}-r${attempt}`.slice(0, 32);
|
|
171
182
|
let workspaceId = null;
|
|
172
183
|
try {
|
|
173
|
-
const created = await runner.exec(
|
|
184
|
+
const created = await runner.exec([
|
|
185
|
+
"herdr",
|
|
186
|
+
"workspace",
|
|
187
|
+
"create",
|
|
188
|
+
"--cwd",
|
|
189
|
+
options.workDir,
|
|
190
|
+
"--label",
|
|
191
|
+
agentName,
|
|
192
|
+
"--no-focus",
|
|
193
|
+
]);
|
|
174
194
|
if (created.exitCode !== 0) {
|
|
175
195
|
lastError = `herdr workspace create failed: ${herdrErrorDetail(created.stderr, created.stdout)}`;
|
|
176
196
|
continue;
|
|
@@ -181,12 +201,33 @@ export async function runHerdrWorker(options, name, prompt) {
|
|
|
181
201
|
lastError = `herdr workspace create returned no pane/workspace id: ${created.stdout.slice(0, 200)}`;
|
|
182
202
|
continue;
|
|
183
203
|
}
|
|
184
|
-
const started = await runner.exec(
|
|
204
|
+
const started = await runner.exec([
|
|
205
|
+
"herdr",
|
|
206
|
+
"agent",
|
|
207
|
+
"start",
|
|
208
|
+
agentName,
|
|
209
|
+
"--kind",
|
|
210
|
+
kind,
|
|
211
|
+
"--pane",
|
|
212
|
+
paneId,
|
|
213
|
+
"--timeout",
|
|
214
|
+
String(startTimeoutMs),
|
|
215
|
+
...(agentArgs.length > 0 ? ["--", ...agentArgs] : []),
|
|
216
|
+
]);
|
|
185
217
|
if (started.exitCode !== 0) {
|
|
186
218
|
lastError = `herdr agent start (${kind}) failed: ${herdrErrorDetail(started.stderr, started.stdout)}`;
|
|
187
219
|
continue;
|
|
188
220
|
}
|
|
189
|
-
const prompted = await runner.exec(
|
|
221
|
+
const prompted = await runner.exec([
|
|
222
|
+
"herdr",
|
|
223
|
+
"agent",
|
|
224
|
+
"prompt",
|
|
225
|
+
agentName,
|
|
226
|
+
prompt,
|
|
227
|
+
"--wait",
|
|
228
|
+
"--timeout",
|
|
229
|
+
String(timeoutMs),
|
|
230
|
+
]);
|
|
190
231
|
if (prompted.exitCode !== 0) {
|
|
191
232
|
lastError = `herdr agent prompt failed (likely timeout): ${herdrErrorDetail(prompted.stderr, prompted.stdout)}`;
|
|
192
233
|
continue;
|
|
@@ -195,19 +236,28 @@ export async function runHerdrWorker(options, name, prompt) {
|
|
|
195
236
|
lastError = `herdr agent ${agentName} is blocked (approval/question UI) — it never produced a signal.`;
|
|
196
237
|
continue;
|
|
197
238
|
}
|
|
198
|
-
const read = await runner.exec(
|
|
239
|
+
const read = await runner.exec([
|
|
240
|
+
"herdr",
|
|
241
|
+
"agent",
|
|
242
|
+
"read",
|
|
243
|
+
agentName,
|
|
244
|
+
"--source",
|
|
245
|
+
"recent-unwrapped",
|
|
246
|
+
"--lines",
|
|
247
|
+
String(readLines),
|
|
248
|
+
]);
|
|
199
249
|
if (read.exitCode !== 0) {
|
|
200
250
|
lastError = `herdr agent read failed: ${herdrErrorDetail(read.stderr, read.stdout)}`;
|
|
201
251
|
continue;
|
|
202
252
|
}
|
|
203
|
-
return { ok: true, content: read.stdout
|
|
253
|
+
return { ok: true, content: trimTrailingNewlines(read.stdout) };
|
|
204
254
|
}
|
|
205
255
|
catch (error) {
|
|
206
256
|
lastError = error instanceof Error ? error.message : String(error);
|
|
207
257
|
}
|
|
208
258
|
finally {
|
|
209
259
|
if (!options.keepPanes && workspaceId) {
|
|
210
|
-
await runner.exec(
|
|
260
|
+
await runner.exec(["herdr", "workspace", "close", workspaceId]).catch(() => undefined);
|
|
211
261
|
}
|
|
212
262
|
}
|
|
213
263
|
}
|
package/dist/workers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workers.js","sourceRoot":"","sources":["../src/workers.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,8EAA8E;AAC9E,+EAA+E;AAC/E,uCAAuC;AACvC,kEAAkE;AAClE,gFAAgF;AAChF,+DAA+D;AAC/D,gEAAgE;AAChE,+BAA+B;AAC/B,EAAE;AACF,6EAA6E;AAC7E,oEAAoE;AACpE,4EAA4E;AAC5E,sCAAsC;AAEtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"workers.js","sourceRoot":"","sources":["../src/workers.ts"],"names":[],"mappings":"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"}
|
package/dist/worktree.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAmCrE,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;CAClB;AAKD,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,MAAgC,CAAC;AAErF,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,MACpB,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkD1B"}
|
package/dist/worktree.js
CHANGED
|
@@ -15,15 +15,26 @@
|
|
|
15
15
|
//
|
|
16
16
|
// Boundary: this module only prepares a directory; it never judges commands
|
|
17
17
|
// or emits signals. Verdicts stay with the improvement machine.
|
|
18
|
-
import {
|
|
18
|
+
import { execFile } from "node:child_process";
|
|
19
19
|
import { promises as fs } from "node:fs";
|
|
20
20
|
import path from "node:path";
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/** execFile with utf8 strings, promise-shaped (commands are ARGV — never
|
|
22
|
+
* shell strings — so series ids and paths are never shell-interpreted). */
|
|
23
|
+
const execFileAsync = (file, args, options) => new Promise((resolve, reject) => {
|
|
24
|
+
execFile(file, args, { ...options, encoding: "utf8" }, (error, stdout, stderr) => {
|
|
25
|
+
if (error)
|
|
26
|
+
reject(Object.assign(error, { stdout, stderr }));
|
|
27
|
+
else
|
|
28
|
+
resolve({ stdout: String(stdout), stderr: String(stderr) });
|
|
29
|
+
});
|
|
30
|
+
});
|
|
23
31
|
const defaultRunner = () => ({
|
|
24
|
-
exec: async (
|
|
32
|
+
exec: async (argv, options) => {
|
|
25
33
|
try {
|
|
26
|
-
const { stdout, stderr } = await
|
|
34
|
+
const { stdout, stderr } = await execFileAsync(argv[0] ?? "", argv.slice(1), {
|
|
35
|
+
cwd: options?.cwd,
|
|
36
|
+
timeout: options?.timeout,
|
|
37
|
+
});
|
|
27
38
|
return { stdout, stderr, exitCode: 0 };
|
|
28
39
|
}
|
|
29
40
|
catch (error) {
|
|
@@ -41,7 +52,6 @@ const validSeriesId = (seriesId) => /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(se
|
|
|
41
52
|
export const seriesBranchName = (seriesId) => `dao/loop/${seriesId}`;
|
|
42
53
|
/** Worktree path for a series: <repo>/.dao/worktrees/<seriesId> (gitignored). */
|
|
43
54
|
export const seriesWorktreePath = (repoDir, seriesId) => path.join(repoDir, ".dao", "worktrees", seriesId);
|
|
44
|
-
const quote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
|
|
45
55
|
/**
|
|
46
56
|
* Ensure the series worktree exists (idempotent). Commands run through the
|
|
47
57
|
* injectable runner; every interpolated value is a validated seriesId or an
|
|
@@ -71,16 +81,16 @@ export async function ensureSeriesWorktree(options) {
|
|
|
71
81
|
// worktree remove`, e.g. an operator wiping `.dao/`) must not brick the
|
|
72
82
|
// series: prune them before creating, so `add` never collides with a
|
|
73
83
|
// registration whose directory no longer exists.
|
|
74
|
-
await runner.exec("git worktree prune", { cwd: path.resolve(options.repoDir) });
|
|
75
|
-
const branchExists = await runner.exec(
|
|
84
|
+
await runner.exec(["git", "worktree", "prune"], { cwd: path.resolve(options.repoDir) });
|
|
85
|
+
const branchExists = await runner.exec(["git", "rev-parse", "--verify", "--quiet", `refs/heads/${branch}`], {
|
|
76
86
|
cwd: options.repoDir,
|
|
77
87
|
});
|
|
78
88
|
if (branchExists.exitCode !== 0 && branchExists.exitCode !== 1) {
|
|
79
89
|
throw new Error(`git rev-parse failed: ${(branchExists.stderr || branchExists.stdout).trim().slice(0, 300)}`);
|
|
80
90
|
}
|
|
81
91
|
const command = branchExists.exitCode === 0
|
|
82
|
-
?
|
|
83
|
-
:
|
|
92
|
+
? ["git", "worktree", "add", worktreePath, branch]
|
|
93
|
+
: ["git", "worktree", "add", "-b", branch, worktreePath];
|
|
84
94
|
const created = await runner.exec(command, { cwd: options.repoDir });
|
|
85
95
|
if (created.exitCode !== 0) {
|
|
86
96
|
throw new Error(`git worktree add failed: ${(created.stderr || created.stdout).trim().slice(0, 300)}`);
|
|
@@ -99,7 +109,9 @@ async function installWorktreeDependencies(runner, worktreePath) {
|
|
|
99
109
|
const manifest = await fs.stat(path.join(worktreePath, "package.json")).catch(() => null);
|
|
100
110
|
if (manifest === null)
|
|
101
111
|
return;
|
|
102
|
-
await runner
|
|
112
|
+
await runner
|
|
113
|
+
.exec(["bun", "install", "--frozen-lockfile"], { cwd: worktreePath, timeout: 300_000 })
|
|
114
|
+
.catch(() => undefined);
|
|
103
115
|
}
|
|
104
116
|
/** `.dao/` is gitignored, so a fresh worktree lacks the project's improvement
|
|
105
117
|
* config and anchor resolution would fail there. Copy the human-owned config
|
package/dist/worktree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kEAAkE;AAClE,+DAA+D;AAC/D,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,EAAE;AACF,qCAAqC;AACrC,8EAA8E;AAC9E,2EAA2E;AAC3E,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,gEAAgE;AAEhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guyghost/swarm-dao-improvement",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Swarm DAO improvement loop executor — continuous improvement series over journal-replayed cycles, with herdr workers and bounded sandbox execution (Docker / Apple container)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"prepublishOnly": "bun run build"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@guyghost/swarm-dao-core": "^0.
|
|
28
|
-
"@guyghost/swarm-dao-herdr-adapter": "^0.
|
|
27
|
+
"@guyghost/swarm-dao-core": "^0.15.0",
|
|
28
|
+
"@guyghost/swarm-dao-herdr-adapter": "^0.4.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/bun": "1.3.14",
|