@ai-dossier/cli 0.92.1 → 0.93.0-next.715.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.
- package/README.md +21 -2
- package/dist/batch-suite-runner.d.ts +2 -0
- package/dist/batch-suite-runner.d.ts.map +1 -1
- package/dist/batch-suite-runner.js +4 -3
- package/dist/batch-suite-runner.js.map +1 -1
- package/dist/cap-envelope.d.ts +18 -1
- package/dist/cap-envelope.d.ts.map +1 -1
- package/dist/cap-envelope.js +28 -0
- package/dist/cap-envelope.js.map +1 -1
- package/dist/cap-run-tracked.d.ts +74 -0
- package/dist/cap-run-tracked.d.ts.map +1 -0
- package/dist/cap-run-tracked.js +371 -0
- package/dist/cap-run-tracked.js.map +1 -0
- package/dist/commands/sched-service.d.ts +15 -0
- package/dist/commands/sched-service.d.ts.map +1 -1
- package/dist/commands/sched-service.js +10 -4
- package/dist/commands/sched-service.js.map +1 -1
- package/dist/commands/sched.d.ts +16 -1
- package/dist/commands/sched.d.ts.map +1 -1
- package/dist/commands/sched.js +135 -63
- package/dist/commands/sched.js.map +1 -1
- package/dist/sched-service.d.ts +1 -0
- package/dist/sched-service.d.ts.map +1 -1
- package/dist/sched-service.js +25 -0
- package/dist/sched-service.js.map +1 -1
- package/dist/sched-tick-runner.d.ts +26 -0
- package/dist/sched-tick-runner.d.ts.map +1 -0
- package/dist/sched-tick-runner.js +102 -0
- package/dist/sched-tick-runner.js.map +1 -0
- package/dist/sched-tick-worker.d.ts +40 -0
- package/dist/sched-tick-worker.d.ts.map +1 -0
- package/dist/sched-tick-worker.js +89 -0
- package/dist/sched-tick-worker.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tracked `cap run` launcher for the sched engine (#1233).
|
|
4
|
+
*
|
|
5
|
+
* `spawnSync` gave the engine no pid until the gate had finished, kept the
|
|
6
|
+
* gate in the engine's process group, and left nothing behind when the engine
|
|
7
|
+
* died mid-gate — so a restarted engine launched a duplicate gate that
|
|
8
|
+
* collided with the orphaned one. This launcher:
|
|
9
|
+
*
|
|
10
|
+
* - starts `ai-dossier cap run <id>` through a tiny `/bin/sh` wrapper in its
|
|
11
|
+
* OWN process group (`detached`), output and exit status going to files in
|
|
12
|
+
* a private run directory (no pipe a descendant can hold open);
|
|
13
|
+
* - records the run in the in-flight registry (`@ai-dossier/sched`
|
|
14
|
+
* `writeInFlight`) BEFORE it starts waiting — pid, start time, worktree,
|
|
15
|
+
* HEAD — so `sched status`, the stale-lease alert and the next engine see it;
|
|
16
|
+
* - waits synchronously (the batch state machine is synchronous) by polling,
|
|
17
|
+
* and on its timeout kills the whole process group;
|
|
18
|
+
* - on entry, ADOPTS a recorded run for the same worktree + capability: a
|
|
19
|
+
* live one is waited for (never duplicated), a finished one is consumed
|
|
20
|
+
* when it ran against the same HEAD; anything else is discarded.
|
|
21
|
+
*
|
|
22
|
+
* It returns the same `SpawnSyncReturns`-shaped result the legacy path does, so
|
|
23
|
+
* verdict resolution (`resolveVerdict` in cap-envelope.ts) is shared. Two
|
|
24
|
+
* deliberate differences from `spawnSync`: output larger than `maxBuffer` is
|
|
25
|
+
* truncated to its TAIL (noted in the diagnostics) instead of failing ENOBUFS,
|
|
26
|
+
* and a timeout kills the gate's whole process group, not just `cap run`.
|
|
27
|
+
*/
|
|
28
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.ADOPT_FINISHED_MAX_AGE_MS = exports.TRACKED_KILL_GRACE_MS = exports.TRACKED_POLL_MS = void 0;
|
|
33
|
+
exports.runTrackedCapRun = runTrackedCapRun;
|
|
34
|
+
exports.launchTrackedCapRun = launchTrackedCapRun;
|
|
35
|
+
const node_child_process_1 = require("node:child_process");
|
|
36
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
37
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
38
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
39
|
+
const sched_1 = require("@ai-dossier/sched");
|
|
40
|
+
const capability_1 = require("./capability");
|
|
41
|
+
/** Poll cadence while waiting for a gate. */
|
|
42
|
+
exports.TRACKED_POLL_MS = 500;
|
|
43
|
+
/** Grace between SIGTERM and SIGKILL to the gate's process group on timeout. */
|
|
44
|
+
exports.TRACKED_KILL_GRACE_MS = 5_000;
|
|
45
|
+
/** Poll cadence inside that grace. */
|
|
46
|
+
const KILL_GRACE_POLL_MS = 100;
|
|
47
|
+
/** A finished-but-unconsumed run older than this is not adopted. */
|
|
48
|
+
exports.ADOPT_FINISHED_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
49
|
+
/** Budget for the `git rev-parse HEAD` identity probe. */
|
|
50
|
+
const GIT_HEAD_TIMEOUT_MS = 10_000;
|
|
51
|
+
/** `sh` exit code for "command not found". */
|
|
52
|
+
const SH_NOT_FOUND = 127;
|
|
53
|
+
/** `sh` reports a signal-killed child as 128 + the signal number. */
|
|
54
|
+
const SH_SIGNAL_EXIT_BASE = 128;
|
|
55
|
+
/**
|
|
56
|
+
* Waits for the launcher's go-file (`$3`), then runs `cap run <id>` and records
|
|
57
|
+
* its exit status atomically. `$1` = the capability id, `$2` = the run
|
|
58
|
+
* directory's `IN_FLIGHT_RUN_FILES.status` path, `$3` = its go-file. The
|
|
59
|
+
* launcher creates the go-file only AFTER the in-flight record is on disk, so
|
|
60
|
+
* a gate never runs unrecorded; a launcher that dies in between leaves a
|
|
61
|
+
* wrapper that gives up after ~10 s without running anything (exit 125, no
|
|
62
|
+
* status — the record then reads as dead and is discarded). All three are
|
|
63
|
+
* positional arguments — never interpolated into the script.
|
|
64
|
+
*/
|
|
65
|
+
const WRAPPER_SCRIPT = 'i=0; while [ ! -e "$3" ]; do i=$((i+1)); [ "$i" -gt 200 ] && exit 125; sleep 0.05; done; ' +
|
|
66
|
+
'ai-dossier cap run "$1"; s=$?; echo "$s" > "$2.tmp" && mv "$2.tmp" "$2"';
|
|
67
|
+
/** Go-file inside a run directory (see {@link WRAPPER_SCRIPT}). */
|
|
68
|
+
const GO_FILE = 'go';
|
|
69
|
+
function sleepSync(ms) {
|
|
70
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
71
|
+
}
|
|
72
|
+
function gitHead(cwd) {
|
|
73
|
+
try {
|
|
74
|
+
const r = (0, node_child_process_1.spawnSync)('git', ['rev-parse', 'HEAD'], {
|
|
75
|
+
cwd,
|
|
76
|
+
encoding: 'utf-8',
|
|
77
|
+
timeout: GIT_HEAD_TIMEOUT_MS,
|
|
78
|
+
});
|
|
79
|
+
const sha = typeof r.stdout === 'string' ? r.stdout.trim() : '';
|
|
80
|
+
return r.status === 0 && /^[0-9a-f]{7,64}$/.test(sha) ? sha : null;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/** Last `maxBytes` of a file ('' when absent), and whether it was cut. */
|
|
87
|
+
function readTail(file, maxBytes) {
|
|
88
|
+
let fd;
|
|
89
|
+
try {
|
|
90
|
+
fd = node_fs_1.default.openSync(file, 'r');
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return { text: '', truncated: false };
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const size = node_fs_1.default.fstatSync(fd).size;
|
|
97
|
+
const length = Math.min(size, maxBytes);
|
|
98
|
+
const buf = Buffer.alloc(length);
|
|
99
|
+
const read = node_fs_1.default.readSync(fd, buf, 0, length, size - length);
|
|
100
|
+
return { text: buf.subarray(0, read).toString('utf-8'), truncated: size > maxBytes };
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
node_fs_1.default.closeSync(fd);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function signalGroup(pgid, signal) {
|
|
107
|
+
try {
|
|
108
|
+
process.kill(-pgid, signal);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// group already gone
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Another live process (not this one) — the launcher of a run we adopted, say. */
|
|
115
|
+
function otherProcessAlive(pid) {
|
|
116
|
+
return Number.isInteger(pid) && pid > 1 && pid !== process.pid && (0, sched_1.pidExists)(pid);
|
|
117
|
+
}
|
|
118
|
+
function errno(message, code) {
|
|
119
|
+
return Object.assign(new Error(message), { code });
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Wait for a recorded run to finish (its wrapper wrote a status) or die. At
|
|
123
|
+
* `deadlineMs` the whole process group is killed — but only while
|
|
124
|
+
* `inFlightAlive` still confirms it is OUR gate (identity-checked: a recycled
|
|
125
|
+
* pid never gets a group signal). Returns whether it timed out.
|
|
126
|
+
*/
|
|
127
|
+
function waitForRun(record, deadlineMs) {
|
|
128
|
+
const statusFile = node_path_1.default.join(record.run_dir, sched_1.IN_FLIGHT_RUN_FILES.status);
|
|
129
|
+
for (;;) {
|
|
130
|
+
if (node_fs_1.default.existsSync(statusFile))
|
|
131
|
+
return { timedOut: false };
|
|
132
|
+
if (!(0, sched_1.inFlightAlive)(record))
|
|
133
|
+
return { timedOut: false };
|
|
134
|
+
if (Date.now() >= deadlineMs)
|
|
135
|
+
break;
|
|
136
|
+
sleepSync(Math.min(exports.TRACKED_POLL_MS, Math.max(1, deadlineMs - Date.now())));
|
|
137
|
+
}
|
|
138
|
+
if ((0, sched_1.inFlightAlive)(record))
|
|
139
|
+
signalGroup(record.pid, 'SIGTERM');
|
|
140
|
+
const graceEnd = Date.now() + exports.TRACKED_KILL_GRACE_MS;
|
|
141
|
+
while (Date.now() < graceEnd && (0, sched_1.inFlightAlive)(record) && !node_fs_1.default.existsSync(statusFile)) {
|
|
142
|
+
sleepSync(KILL_GRACE_POLL_MS);
|
|
143
|
+
}
|
|
144
|
+
if ((0, sched_1.inFlightAlive)(record))
|
|
145
|
+
signalGroup(record.pid, 'SIGKILL');
|
|
146
|
+
return { timedOut: true };
|
|
147
|
+
}
|
|
148
|
+
/** Build the `spawnSync`-shaped result from a run directory. */
|
|
149
|
+
function collect(record, timedOut, maxBuffer, notes) {
|
|
150
|
+
const dir = record.run_dir;
|
|
151
|
+
const out = readTail(node_path_1.default.join(dir, sched_1.IN_FLIGHT_RUN_FILES.stdout), maxBuffer);
|
|
152
|
+
const err = readTail(node_path_1.default.join(dir, sched_1.IN_FLIGHT_RUN_FILES.stderr), maxBuffer);
|
|
153
|
+
if (out.truncated || err.truncated) {
|
|
154
|
+
notes.push(`output truncated to its last ${maxBuffer} bytes`);
|
|
155
|
+
}
|
|
156
|
+
let code = null;
|
|
157
|
+
try {
|
|
158
|
+
const parsed = Number.parseInt(node_fs_1.default.readFileSync(node_path_1.default.join(dir, sched_1.IN_FLIGHT_RUN_FILES.status), 'utf-8').trim(), 10);
|
|
159
|
+
code = Number.isInteger(parsed) ? parsed : null;
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
code = null;
|
|
163
|
+
}
|
|
164
|
+
let status = code;
|
|
165
|
+
let signal = null;
|
|
166
|
+
let error;
|
|
167
|
+
if (code !== null && code > SH_SIGNAL_EXIT_BASE) {
|
|
168
|
+
// `$?` of a signal-killed `cap run` — report it the way spawnSync would.
|
|
169
|
+
const name = Object.entries(node_os_1.default.constants.signals).find(([, n]) => n === code - SH_SIGNAL_EXIT_BASE)?.[0];
|
|
170
|
+
if (name !== undefined) {
|
|
171
|
+
status = null;
|
|
172
|
+
signal = name;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (timedOut) {
|
|
176
|
+
// Our own deadline fired: ETIMEDOUT exactly like spawnSync, whatever the
|
|
177
|
+
// wrapper managed to record during the kill grace.
|
|
178
|
+
error = errno(`cap run ${record.capability} ETIMEDOUT after ${record.timeout_ms}ms`, 'ETIMEDOUT');
|
|
179
|
+
status = null;
|
|
180
|
+
signal = signal ?? 'SIGTERM';
|
|
181
|
+
}
|
|
182
|
+
else if (code === SH_NOT_FOUND &&
|
|
183
|
+
!node_fs_1.default.existsSync(node_path_1.default.join(dir, sched_1.IN_FLIGHT_RUN_FILES.envelope))) {
|
|
184
|
+
// `sh` could not find `ai-dossier` on PATH — spawnSync's ENOENT.
|
|
185
|
+
error = errno('spawnSync ai-dossier ENOENT', 'ENOENT');
|
|
186
|
+
status = null;
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
pid: record.pid,
|
|
190
|
+
output: [null, out.text, err.text],
|
|
191
|
+
stdout: out.text,
|
|
192
|
+
stderr: err.text,
|
|
193
|
+
status,
|
|
194
|
+
signal,
|
|
195
|
+
...(error !== undefined ? { error } : {}),
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function trackedResult(record, timedOut, opts, notes, release) {
|
|
199
|
+
const spawned = collect(record, timedOut, opts.maxBuffer, notes);
|
|
200
|
+
return {
|
|
201
|
+
spawned,
|
|
202
|
+
envelopeFile: node_path_1.default.join(record.run_dir, sched_1.IN_FLIGHT_RUN_FILES.envelope),
|
|
203
|
+
notes,
|
|
204
|
+
release,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Remove a record this process did NOT launch — unless its launcher is still
|
|
209
|
+
* alive (a live engine while an operator's `sched resume --batch` waited
|
|
210
|
+
* alongside it): that launcher consumes and cleans up its own run.
|
|
211
|
+
*/
|
|
212
|
+
function releaseAdopted(dir, record) {
|
|
213
|
+
if (!otherProcessAlive(record.launcher_pid))
|
|
214
|
+
(0, sched_1.removeInFlight)(dir, record);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* The adoption half of {@link runTrackedCapRun}: a result when a recorded run
|
|
218
|
+
* for this worktree + capability supplied the verdict, else null (launch fresh).
|
|
219
|
+
*/
|
|
220
|
+
function adoptExisting(existing, capabilityId, worktree, head, opts, notes) {
|
|
221
|
+
const dir = opts.inFlightDir;
|
|
222
|
+
const finished = (0, sched_1.inFlightFinished)(existing);
|
|
223
|
+
const alive = !finished && (0, sched_1.inFlightAlive)(existing);
|
|
224
|
+
if (alive) {
|
|
225
|
+
// Never launch a duplicate next to a live gate (#1233) — wait for it, and
|
|
226
|
+
// say so in the record (the in-tick heartbeat keys on it).
|
|
227
|
+
notes.push(`adopted in-flight ${capabilityId} pid ${existing.pid} started ${existing.started_at} by pid ${existing.launcher_pid}`);
|
|
228
|
+
process.stderr.write(`▶ sched: adopting in-flight ${capabilityId} (pid ${existing.pid}, started ${existing.started_at}) in ${worktree} instead of launching a duplicate\n`);
|
|
229
|
+
try {
|
|
230
|
+
(0, sched_1.writeInFlight)(dir, { ...existing, waiter_pid: process.pid });
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
// advisory: only the in-tick heartbeat reads waiter_pid
|
|
234
|
+
}
|
|
235
|
+
const { timedOut } = waitForRun(existing, Date.parse(existing.started_at) + existing.timeout_ms);
|
|
236
|
+
if (head !== null && existing.head === head) {
|
|
237
|
+
return trackedResult(existing, timedOut, opts, notes, () => releaseAdopted(dir, existing));
|
|
238
|
+
}
|
|
239
|
+
notes.push(`adopted run was against HEAD ${existing.head ?? 'unknown'}, now ${head ?? 'unknown'} — re-running`);
|
|
240
|
+
releaseAdopted(dir, existing);
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
if (finished &&
|
|
244
|
+
head !== null &&
|
|
245
|
+
existing.head === head &&
|
|
246
|
+
Date.now() - Date.parse(existing.started_at) < exports.ADOPT_FINISHED_MAX_AGE_MS) {
|
|
247
|
+
notes.push(`adopted finished ${capabilityId} pid ${existing.pid} (started ${existing.started_at}) for the same HEAD`);
|
|
248
|
+
return trackedResult(existing, false, opts, notes, () => releaseAdopted(dir, existing));
|
|
249
|
+
}
|
|
250
|
+
notes.push(`discarded ${finished ? 'stale finished' : 'dead'} in-flight record (pid ${existing.pid}, started ${existing.started_at})`);
|
|
251
|
+
releaseAdopted(dir, existing);
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Run (or adopt) `ai-dossier cap run <capabilityId>` in `cwd`, tracked under
|
|
256
|
+
* `inFlightDir`. Synchronous; returns once the gate has a verdict, died, or
|
|
257
|
+
* timed out (process group killed).
|
|
258
|
+
*/
|
|
259
|
+
function runTrackedCapRun(capabilityId, cwd, opts) {
|
|
260
|
+
const notes = [];
|
|
261
|
+
const worktree = node_path_1.default.resolve(cwd);
|
|
262
|
+
const head = gitHead(worktree);
|
|
263
|
+
const dir = opts.inFlightDir;
|
|
264
|
+
const existing = (0, sched_1.readInFlight)(dir, worktree, capabilityId);
|
|
265
|
+
if (existing !== null) {
|
|
266
|
+
const adopted = adoptExisting(existing, capabilityId, worktree, head, opts, notes);
|
|
267
|
+
if (adopted !== null)
|
|
268
|
+
return adopted;
|
|
269
|
+
}
|
|
270
|
+
const launched = launchTrackedCapRun(capabilityId, worktree, {
|
|
271
|
+
timeoutMs: opts.timeoutMs,
|
|
272
|
+
env: opts.env,
|
|
273
|
+
inFlightDir: dir,
|
|
274
|
+
head,
|
|
275
|
+
});
|
|
276
|
+
if ('error' in launched) {
|
|
277
|
+
return {
|
|
278
|
+
spawned: {
|
|
279
|
+
pid: 0,
|
|
280
|
+
output: [null, '', ''],
|
|
281
|
+
stdout: '',
|
|
282
|
+
stderr: '',
|
|
283
|
+
status: null,
|
|
284
|
+
signal: null,
|
|
285
|
+
error: launched.error,
|
|
286
|
+
},
|
|
287
|
+
envelopeFile: '',
|
|
288
|
+
notes,
|
|
289
|
+
release: () => { },
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
const { record } = launched;
|
|
293
|
+
if (launched.note !== undefined)
|
|
294
|
+
notes.push(launched.note);
|
|
295
|
+
const { timedOut } = waitForRun(record, Date.now() + opts.timeoutMs);
|
|
296
|
+
return trackedResult(record, timedOut, opts, notes, () => (0, sched_1.removeInFlight)(dir, record));
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Start `cap run <capabilityId>` detached (its own process group) through the
|
|
300
|
+
* status-recording wrapper and record it in the in-flight registry. Returns
|
|
301
|
+
* at once — the caller waits. Exported so a test can stand in for an engine
|
|
302
|
+
* that launched a gate and then died.
|
|
303
|
+
*/
|
|
304
|
+
function launchTrackedCapRun(capabilityId, worktree, opts) {
|
|
305
|
+
const dir = opts.inFlightDir;
|
|
306
|
+
(0, sched_1.ensureInFlightDir)(dir);
|
|
307
|
+
const runDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(dir, sched_1.IN_FLIGHT_RUN_DIR_PREFIX));
|
|
308
|
+
const files = {
|
|
309
|
+
status: node_path_1.default.join(runDir, sched_1.IN_FLIGHT_RUN_FILES.status),
|
|
310
|
+
stdout: node_path_1.default.join(runDir, sched_1.IN_FLIGHT_RUN_FILES.stdout),
|
|
311
|
+
stderr: node_path_1.default.join(runDir, sched_1.IN_FLIGHT_RUN_FILES.stderr),
|
|
312
|
+
envelope: node_path_1.default.join(runDir, sched_1.IN_FLIGHT_RUN_FILES.envelope),
|
|
313
|
+
};
|
|
314
|
+
const outFd = node_fs_1.default.openSync(files.stdout, 'w', 0o600);
|
|
315
|
+
const errFd = node_fs_1.default.openSync(files.stderr, 'w', 0o600);
|
|
316
|
+
let pid;
|
|
317
|
+
let spawnError;
|
|
318
|
+
try {
|
|
319
|
+
const child = (0, node_child_process_1.spawn)('/bin/sh', ['-c', WRAPPER_SCRIPT, 'sh', capabilityId, files.status, node_path_1.default.join(runDir, GO_FILE)], {
|
|
320
|
+
cwd: worktree,
|
|
321
|
+
env: { ...(opts.env ?? process.env), [capability_1.CAP_ENVELOPE_FILE_ENV]: files.envelope },
|
|
322
|
+
stdio: ['ignore', outFd, errFd],
|
|
323
|
+
// #1233 (5): its own process group — isolated from signals aimed at the
|
|
324
|
+
// engine's group, and killable as a whole on timeout.
|
|
325
|
+
detached: true,
|
|
326
|
+
});
|
|
327
|
+
// An async spawn failure is reported as an 'error' event; unhandled, it
|
|
328
|
+
// would crash the engine (or its tick worker).
|
|
329
|
+
child.on('error', (err) => {
|
|
330
|
+
spawnError = err;
|
|
331
|
+
});
|
|
332
|
+
child.unref();
|
|
333
|
+
pid = child.pid;
|
|
334
|
+
}
|
|
335
|
+
catch (err) {
|
|
336
|
+
spawnError = err;
|
|
337
|
+
}
|
|
338
|
+
finally {
|
|
339
|
+
node_fs_1.default.closeSync(outFd);
|
|
340
|
+
node_fs_1.default.closeSync(errFd);
|
|
341
|
+
}
|
|
342
|
+
if (pid === undefined) {
|
|
343
|
+
node_fs_1.default.rmSync(runDir, { recursive: true, force: true });
|
|
344
|
+
return { error: spawnError ?? errno('spawn /bin/sh failed: no pid', 'ENOENT') };
|
|
345
|
+
}
|
|
346
|
+
const record = {
|
|
347
|
+
version: 1,
|
|
348
|
+
capability: capabilityId,
|
|
349
|
+
cwd: worktree,
|
|
350
|
+
pid,
|
|
351
|
+
pid_start: (0, sched_1.procStartTime)(pid),
|
|
352
|
+
started_at: new Date().toISOString(),
|
|
353
|
+
timeout_ms: opts.timeoutMs,
|
|
354
|
+
launcher_pid: process.pid,
|
|
355
|
+
run_dir: runDir,
|
|
356
|
+
head: opts.head,
|
|
357
|
+
};
|
|
358
|
+
let note;
|
|
359
|
+
try {
|
|
360
|
+
(0, sched_1.writeInFlight)(dir, record);
|
|
361
|
+
}
|
|
362
|
+
catch (err) {
|
|
363
|
+
// The gate runs untracked: a restart mid-gate could duplicate it. Loud.
|
|
364
|
+
note = `in-flight record not written (${err.message}) — this gate is untracked`;
|
|
365
|
+
process.stderr.write(`⚠ sched: ${capabilityId} pid ${pid}: ${note}\n`);
|
|
366
|
+
}
|
|
367
|
+
// Record on disk (or loudly not) — let the wrapper start `cap run`.
|
|
368
|
+
node_fs_1.default.writeFileSync(node_path_1.default.join(runDir, GO_FILE), '', { mode: 0o600 });
|
|
369
|
+
return note !== undefined ? { record, note } : { record };
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=cap-run-tracked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cap-run-tracked.js","sourceRoot":"","sources":["../src/cap-run-tracked.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,26 @@
|
|
|
4
4
|
* tested); this file is only argument handling and process wiring.
|
|
5
5
|
*/
|
|
6
6
|
import type { Command } from 'commander';
|
|
7
|
+
import { type ServiceIo } from '../sched-service';
|
|
8
|
+
interface ServiceOptions {
|
|
9
|
+
project?: string;
|
|
10
|
+
mode?: string;
|
|
11
|
+
autoUpgrade?: boolean;
|
|
12
|
+
alertIssue?: string;
|
|
13
|
+
unitDir?: string;
|
|
14
|
+
repoDir?: string;
|
|
15
|
+
activate?: boolean;
|
|
16
|
+
print?: boolean;
|
|
17
|
+
json?: boolean;
|
|
18
|
+
}
|
|
7
19
|
/**
|
|
8
20
|
* `crontab -l`, strictly: `''` only for the verifiable "no crontab for <user>"
|
|
9
21
|
* case. A missing binary, a permission error or a timeout THROWS — an empty
|
|
10
22
|
* string there would make install overwrite the user's real crontab.
|
|
11
23
|
*/
|
|
12
24
|
export declare function readCrontabStrict(): string;
|
|
25
|
+
/** Real process I/O for the supervisor helpers — also used by `sched start`'s unsupervised check (#1233). */
|
|
26
|
+
export declare function serviceIo(opts?: ServiceOptions): ServiceIo;
|
|
13
27
|
export declare function registerSchedServiceCommands(sched: Command): void;
|
|
28
|
+
export {};
|
|
14
29
|
//# sourceMappingURL=sched-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sched-service.d.ts","sourceRoot":"","sources":["../../src/commands/sched-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"sched-service.d.ts","sourceRoot":"","sources":["../../src/commands/sched-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAKL,KAAK,SAAS,EAQf,MAAM,kBAAkB,CAAC;AAE1B,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAgBD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED,6GAA6G;AAC7G,wBAAgB,SAAS,CAAC,IAAI,GAAE,cAAmB,GAAG,SAAS,CAe9D;AAwDD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAuLjE"}
|
|
@@ -39,6 +39,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
})();
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
exports.readCrontabStrict = readCrontabStrict;
|
|
42
|
+
exports.serviceIo = serviceIo;
|
|
42
43
|
exports.registerSchedServiceCommands = registerSchedServiceCommands;
|
|
43
44
|
const node_child_process_1 = require("node:child_process");
|
|
44
45
|
const fs = __importStar(require("node:fs"));
|
|
@@ -77,7 +78,8 @@ function readCrontabStrict() {
|
|
|
77
78
|
return '';
|
|
78
79
|
throw new Error(`crontab -l exited ${res.status}: ${stderr || 'no output'}`);
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
+
/** Real process I/O for the supervisor helpers — also used by `sched start`'s unsupervised check (#1233). */
|
|
82
|
+
function serviceIo(opts = {}) {
|
|
81
83
|
return {
|
|
82
84
|
run,
|
|
83
85
|
unitDir: opts.unitDir ?? (0, sched_service_1.defaultUnitDir)(),
|
|
@@ -168,7 +170,7 @@ function registerSchedServiceCommands(sched) {
|
|
|
168
170
|
.action((opts) => {
|
|
169
171
|
const project = projectOf(opts);
|
|
170
172
|
const spec = buildSpec(opts, project);
|
|
171
|
-
const io =
|
|
173
|
+
const io = serviceIo(opts);
|
|
172
174
|
const mode = chooseMode(opts.mode, io);
|
|
173
175
|
if (opts.print) {
|
|
174
176
|
console.log(mode === 'systemd' ? (0, sched_service_1.renderSystemdUnit)(spec) : (0, sched_service_1.renderCronBlock)(spec));
|
|
@@ -199,7 +201,7 @@ function registerSchedServiceCommands(sched) {
|
|
|
199
201
|
.option('--no-activate', 'Only remove files — never call systemctl or crontab')
|
|
200
202
|
.action((opts) => {
|
|
201
203
|
const project = projectOf(opts);
|
|
202
|
-
const { removed, errors } = (0, sched_service_1.uninstallService)(project,
|
|
204
|
+
const { removed, errors } = (0, sched_service_1.uninstallService)(project, serviceIo(opts));
|
|
203
205
|
if (errors.length > 0) {
|
|
204
206
|
console.error(`✗ [${project}] uninstall incomplete${removed.length ? ` (removed: ${removed.join(', ')})` : ''}`);
|
|
205
207
|
for (const e of errors)
|
|
@@ -218,7 +220,7 @@ function registerSchedServiceCommands(sched) {
|
|
|
218
220
|
.option('--json', 'Output as JSON')
|
|
219
221
|
.action((opts) => {
|
|
220
222
|
const project = projectOf(opts);
|
|
221
|
-
const status = (0, sched_service_1.serviceStatus)(project,
|
|
223
|
+
const status = (0, sched_service_1.serviceStatus)(project, serviceIo(opts));
|
|
222
224
|
const lease = new sched_1.SchedStore((0, sched_1.schedStateDir)(project)).engineLeaseStatus();
|
|
223
225
|
if (opts.json) {
|
|
224
226
|
console.log(JSON.stringify({ ...status, engine_lease: lease }, null, 2));
|
|
@@ -228,6 +230,10 @@ function registerSchedServiceCommands(sched) {
|
|
|
228
230
|
console.log(`systemd unit: ${status.systemd.installed ? `installed (${status.systemd.enabled ?? '?'}, ${status.systemd.active ?? '?'})` : 'not installed'}`);
|
|
229
231
|
console.log(`cron watchdog: ${status.cron.error ? `unknown (${status.cron.error})` : status.cron.installed ? 'installed' : 'not installed'}`);
|
|
230
232
|
console.log(`engine: ${lease ? `pid ${lease.pid} ${lease.alive ? 'live' : 'STALE'}${lease.updated_at ? `, heartbeat ${lease.updated_at}` : ''}` : 'no lease (not running)'}`);
|
|
233
|
+
// #1233: an engine can be dead while the gate it launched still runs.
|
|
234
|
+
for (const g of (0, sched_1.listInFlight)((0, sched_1.inFlightDir)((0, sched_1.schedStateDir)(project)))) {
|
|
235
|
+
console.log(`gate in flight: ${(0, sched_1.describeInFlight)(g)}`);
|
|
236
|
+
}
|
|
231
237
|
if (!status.supervised) {
|
|
232
238
|
console.log('⚠ NOT supervised — a crash or reboot leaves the queue unattended. Run `ai-dossier sched service install`.');
|
|
233
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sched-service.js","sourceRoot":"","sources":["../../src/commands/sched-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sched-service.js","sourceRoot":"","sources":["../../src/commands/sched-service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEH,8CAQC;AAGD,8BAeC;AAwDD,oEAuLC;AAzUD,2DAAoE;AACpE,4CAA8B;AAC9B,4CAA8B;AAC9B,6CAU2B;AAE3B,wCAAkC;AAClC,gDAAsE;AACtE,kDAAmE;AACnE,oDAa0B;AAc1B,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAc,EAAiB,EAAE;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,CACX,IAAA,iCAAY,EAAC,IAAI,EAAE,IAAI,EAAE;YACvB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,MAAM;SAChB,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAA,8BAAS,EAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAChF,IAAI,GAAG,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,uBAAuB,GAAG,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3E,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,uBAAuB,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC;IAClG,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,6GAA6G;AAC7G,SAAgB,SAAS,CAAC,OAAuB,EAAE;IACjD,OAAO;QACL,GAAG;QACH,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAA,8BAAc,GAAE;QACzC,WAAW,EAAE,iBAAiB;QAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC;gBACH,IAAA,iCAAY,EAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACrF,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAoB;IACrC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAA,0BAAkB,EAAC,mBAAW,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACvE,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,IAAI,GAAG,CAAC;AAC7D,CAAC;AAED,SAAS,SAAS,CAAC,IAAoB,EAAE,OAAe;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7E,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,mBAAW,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAA,cAAI,EAAC;YACH,GAAG,OAAO,wBAAwB,WAAW,WAAW,OAAO,2DAA2D;SAC3H,CAAC,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,IAAA,cAAI,EAAC,CAAC,wEAAwE,CAAC,CAAC,CAAC;IAC/F,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QACH,UAAU,GAAG,IAAA,6BAAe,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,cAAI,EAAC,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,IAAI,GAAgB;QACxB,OAAO;QACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO;QACP,OAAO;QACP,OAAO,EAAE,IAAA,8BAAc,EAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACzC,gGAAgG;QAChG,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,KAAK;QACvC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,oCAAoB,EAAC,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB,EAAE,EAAa;IACxD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IACpD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM;QACrC,IAAA,cAAI,EAAC,CAAC,8CAA8C,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,MAAM,IAAI,IAAA,oCAAoB,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACxE,CAAC;AAED,SAAgB,4BAA4B,CAAC,KAAc;IACzD,MAAM,OAAO,GAAG,KAAK;SAClB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,yMAAyM,CAC1M,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iFAAiF,CAAC;SAC9F,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CACL,eAAe,EACf,8EAA8E,CAC/E;SACA,MAAM,CACL,mBAAmB,EACnB,2EAA2E,CAC5E;SACA,MAAM,CACL,mBAAmB,EACnB,sEAAsE,CACvE;SACA,MAAM,CAAC,kBAAkB,EAAE,kEAAkE,CAAC;SAC9F,MAAM,CACL,mBAAmB,EACnB,6GAA6G,CAC9G;SACA,MAAM,CACL,eAAe,EACf,+EAA+E,CAChF;SACA,MAAM,CAAC,SAAS,EAAE,4DAA4D,CAAC;SAC/E,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,iCAAiB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,8BAAc,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,EAAE;YAAE,IAAA,gCAAiB,EAAC,IAAI,kBAAU,CAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,KAAK,IAAI,2BAA2B,CAAC,CAAC;YACjE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CACT,IAAI,OAAO,KAAK,IAAI,uEAAuE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,QAAQ,kBAAkB,CAAC,CAAC,CAAC,iDAAiD,EAAE,CAC/N,CAAC;YACF,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CACT,MAAM,OAAO,KAAK,IAAI,eAAe,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpJ,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CACV,qFAAqF,CACtF;SACA,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAgB,EAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,MAAM,OAAO,yBAAyB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClG,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,MAAM;gBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,MAAM,OAAO,cAAc,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjD,CAAC,CAAC,IAAI,OAAO,2BAA2B,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,CAAC;SACrF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,kBAAU,CAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CACT,iBAAiB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAChJ,CAAC;QACF,OAAO,CAAC,GAAG,CACT,kBAAkB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CACjI,CAAC;QACF,OAAO,CAAC,GAAG,CACT,WAAW,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CACjK,CAAC;QACF,sEAAsE;QACtE,KAAK,MAAM,CAAC,IAAI,IAAA,oBAAY,EAAC,IAAA,mBAAW,EAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAA,wBAAgB,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CACT,2GAA2G,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CACV,yJAAyJ,CAC1J;SACA,MAAM,CAAC,kBAAkB,EAAE,6DAA6D,CAAC;SACzF,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,CAAC;SAC5E,MAAM,CAAC,WAAW,EAAE,+DAA+D,CAAC;SACpF,MAAM,CAAC,UAAU,EAAE,gCAAgC,CAAC;SACpD,MAAM,CAAC,CAAC,IAA8D,EAAE,EAAE;QACzE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,kBAAU,CAAC,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAA,gCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,oBAAoB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QACD,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACH,UAAU,GAAG,IAAA,6BAAe,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,cAAI,EAAC,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,4BAAa,EAAC;YAC5B,KAAK;YACL,OAAO,EAAE,IAAI,eAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/B,8FAA8F;YAC9F,MAAM,EAAE,IAAA,iCAAmB,EACzB,OAAO,EACP,GAAG,EAAE,CAAC,IAAA,0BAAkB,EAAC,OAAO,EAAE,mBAAW,CAAC,IAAI,SAAS,EAC3D,UAAU,EACV,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CACxB;YACD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;YACrB,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACH,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC1D,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAA,0BAAK,EACjB,OAAO,CAAC,QAAQ,EAChB;wBACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAW;wBACzB,OAAO;wBACP,OAAO;wBACP,WAAW;wBACX,OAAO;wBACP,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC3E,EACD,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAClE,CAAC;oBACF,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACjB,OAAO,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/sched.d.ts
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* watching parked PRs, script-based teardown of merged worktrees, and the
|
|
9
9
|
* cheap-tier report dispatch.
|
|
10
10
|
*/
|
|
11
|
-
import type { CapabilityGateResult } from '@ai-dossier/sched';
|
|
11
|
+
import type { CapabilityGateResult, SchedConfig } from '@ai-dossier/sched';
|
|
12
|
+
import { type EngineDeps, Journal, SchedStore } from '@ai-dossier/sched';
|
|
12
13
|
import type { Command } from 'commander';
|
|
13
14
|
/**
|
|
14
15
|
* Batch-worktree `ai-dossier cap run <id>` runner for the per-member
|
|
@@ -28,12 +29,26 @@ import type { Command } from 'commander';
|
|
|
28
29
|
export declare function createBatchCapabilityRunner(opts?: {
|
|
29
30
|
/** Overridable so tests can exercise the ETIMEDOUT branch cheaply (mirrors `createBatchSuiteRunner`). */
|
|
30
31
|
timeoutMs?: number;
|
|
32
|
+
/** #1233: track the gate in the sched state's in-flight registry (adopt, never duplicate). */
|
|
33
|
+
inFlightDir?: string;
|
|
31
34
|
}): (worktree: string, capabilityId: string) => CapabilityGateResult;
|
|
32
35
|
/** Supervisor restart request used when the runtime has no `process.execve`. */
|
|
33
36
|
export declare const UPGRADE_RESTART_EXIT_CODE = 75;
|
|
34
37
|
type ExecveFn = (file: string, args: string[], env: NodeJS.ProcessEnv) => never;
|
|
35
38
|
/** Replace this process with the updated CLI, preserving its invocation. */
|
|
36
39
|
export declare function reexecUpdatedCli(execveOverride?: ExecveFn | null): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The engine's dependencies for `sched start` — one place, so the inline tick
|
|
42
|
+
* and the tick worker (#1233, `sched-tick-worker.ts`) build identical engines.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildEngineDeps(opts: {
|
|
45
|
+
store: SchedStore;
|
|
46
|
+
journal: Journal;
|
|
47
|
+
anchorRepo: string | undefined;
|
|
48
|
+
/** The config snapshot of the tick in progress (the suite runner reads it per run). */
|
|
49
|
+
getTickConfig: () => SchedConfig;
|
|
50
|
+
repoDir?: string;
|
|
51
|
+
}): EngineDeps;
|
|
37
52
|
export declare function registerSchedCommand(program: Command): void;
|
|
38
53
|
export {};
|
|
39
54
|
//# sourceMappingURL=sched.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sched.d.ts","sourceRoot":"","sources":["../../src/commands/sched.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAKV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"sched.d.ts","sourceRoot":"","sources":["../../src/commands/sched.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAKV,oBAAoB,EAKpB,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EA0BL,KAAK,UAAU,EAef,OAAO,EAgCP,UAAU,EAaX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6DzC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE;IACjD,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,oBAAoB,CAgEnE;AAmpED,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAgG5C,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;AAEhF,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAyB1E;AAyBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,uFAAuF;IACvF,aAAa,EAAE,MAAM,WAAW,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,UAAU,CAmFb;AAgYD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmB3D"}
|