@detergent-software/conductor 1.0.0 → 1.1.0-dev.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/CHANGELOG.md +18 -0
- package/README.md +11 -0
- package/build/brief-cli.js.map +1 -1
- package/build/brief.js +24 -9
- package/build/brief.js.map +1 -1
- package/build/broker-cli.js +5 -1
- package/build/broker-cli.js.map +1 -1
- package/build/broker.js +19 -5
- package/build/broker.js.map +1 -1
- package/build/checkout-sync.js +265 -0
- package/build/checkout-sync.js.map +1 -0
- package/build/claude.js +3 -1
- package/build/claude.js.map +1 -1
- package/build/cli.js +119 -32
- package/build/cli.js.map +1 -1
- package/build/client.js +3 -1
- package/build/client.js.map +1 -1
- package/build/conditions.js +4 -2
- package/build/conditions.js.map +1 -1
- package/build/config.js +13 -1
- package/build/config.js.map +1 -1
- package/build/console.js +94 -8
- package/build/console.js.map +1 -1
- package/build/credential.js +4 -1
- package/build/credential.js.map +1 -1
- package/build/daemon.js +56 -7
- package/build/daemon.js.map +1 -1
- package/build/events.js +4 -1
- package/build/events.js.map +1 -1
- package/build/help.js +87 -43
- package/build/help.js.map +1 -1
- package/build/history.js +216 -52
- package/build/history.js.map +1 -1
- package/build/inbox.js +23 -10
- package/build/inbox.js.map +1 -1
- package/build/manager.js +84 -18
- package/build/manager.js.map +1 -1
- package/build/mod.js +3 -1
- package/build/mod.js.map +1 -1
- package/build/note.js +12 -5
- package/build/note.js.map +1 -1
- package/build/notes.js +8 -5
- package/build/notes.js.map +1 -1
- package/build/notify.js +111 -24
- package/build/notify.js.map +1 -1
- package/build/overrides.js +24 -6
- package/build/overrides.js.map +1 -1
- package/build/profile.js.map +1 -1
- package/build/pushover.js +4 -1
- package/build/pushover.js.map +1 -1
- package/build/queue.js +18 -3
- package/build/queue.js.map +1 -1
- package/build/registry.js.map +1 -1
- package/build/rule-actions.js +173 -36
- package/build/rule-actions.js.map +1 -1
- package/build/rule-input.js +3 -1
- package/build/rule-input.js.map +1 -1
- package/build/rules-service.js +41 -11
- package/build/rules-service.js.map +1 -1
- package/build/rules.js +86 -14
- package/build/rules.js.map +1 -1
- package/build/scheduler.js +48 -8
- package/build/scheduler.js.map +1 -1
- package/build/server.js +56 -12
- package/build/server.js.map +1 -1
- package/build/spend.js.map +1 -1
- package/build/store.js +71 -16
- package/build/store.js.map +1 -1
- package/build/token.js +3 -1
- package/build/token.js.map +1 -1
- package/build/trackers.js +3 -1
- package/build/trackers.js.map +1 -1
- package/build/upgrade.js.map +1 -1
- package/build/wait.js +3 -1
- package/build/wait.js.map +1 -1
- package/build/watchers/ado-api.js +5 -2
- package/build/watchers/ado-api.js.map +1 -1
- package/build/watchers/ado.js +18 -6
- package/build/watchers/ado.js.map +1 -1
- package/build/watchers/boards-brief.js +9 -3
- package/build/watchers/boards-brief.js.map +1 -1
- package/build/watchers/boards-queue.js +10 -5
- package/build/watchers/boards-queue.js.map +1 -1
- package/build/watchers/boards-writes.js +11 -3
- package/build/watchers/boards-writes.js.map +1 -1
- package/build/watchers/boards.js +12 -3
- package/build/watchers/boards.js.map +1 -1
- package/build/watchers/conflicts.js +11 -3
- package/build/watchers/conflicts.js.map +1 -1
- package/build/watchers/github.js +6 -2
- package/build/watchers/github.js.map +1 -1
- package/build/watchers/health.js.map +1 -1
- package/build/watchers/index.js +22 -4
- package/build/watchers/index.js.map +1 -1
- package/build/watchers/linear-api.js +1 -1
- package/build/watchers/linear-api.js.map +1 -1
- package/build/watchers/linear-labels.js +3 -1
- package/build/watchers/linear-labels.js.map +1 -1
- package/build/watchers/linear-queue.js +10 -4
- package/build/watchers/linear-queue.js.map +1 -1
- package/build/watchers/linear.js +13 -4
- package/build/watchers/linear.js.map +1 -1
- package/build/watchers/npm.js.map +1 -1
- package/build/watchers/source.js +1 -1
- package/build/watchers/source.js.map +1 -1
- package/build/why.js +7 -3
- package/build/why.js.map +1 -1
- package/build/worktrees.js +2 -1
- package/build/worktrees.js.map +1 -1
- package/mod/hooks/model.ts +90 -25
- package/mod/hooks/register.tsx +172 -62
- package/package.json +11 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-sync.js","sourceRoot":"","sources":["../src/checkout-sync.ts"],"names":[],"mappings":"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"}
|
package/build/claude.js
CHANGED
|
@@ -90,7 +90,9 @@ export function parseHandle(output) {
|
|
|
90
90
|
return /backgrounded · ([0-9a-f]{8})\b/.exec(output)?.[1] ?? null;
|
|
91
91
|
}
|
|
92
92
|
export function permissionPrompt(session) {
|
|
93
|
-
return session.status === 'waiting' && /permission/i.test(session.waitingFor ?? '')
|
|
93
|
+
return session.status === 'waiting' && /permission/i.test(session.waitingFor ?? '')
|
|
94
|
+
? (session.waitingFor ?? null)
|
|
95
|
+
: null;
|
|
94
96
|
}
|
|
95
97
|
// The turn ended and nothing holds the session: no tool running, no prompt open, no Monitor armed
|
|
96
98
|
// (an armed Monitor reads busy). Only `status` says so. `state` is the agent view's label for how
|
package/build/claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEzC,qGAAqG;AACrG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,8FAA8F;IAC9F,uFAAuF;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,yFAAyF;IACzF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAuBH,MAAM,UAAU,SAAS;IACvB,oGAAoG;IACpG,MAAM,MAAM,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../src/claude.ts"],"names":[],"mappings":"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"}
|
package/build/cli.js
CHANGED
|
@@ -9,12 +9,12 @@ import { briefCommand } from "./brief-cli.js";
|
|
|
9
9
|
import { heldLocks, lockCommand, lockLine, portsCommand } from "./broker-cli.js";
|
|
10
10
|
import { callApi, NotRunningError, ping, readEndpoint } from "./client.js";
|
|
11
11
|
import { loadConfig } from "./config.js";
|
|
12
|
-
import { CONSOLE_ARGS, CONSOLE_WINDOW, consoleProject, consoleTabArgs, escalationLines, escalationSchema, handledSchema } from "./console.js";
|
|
12
|
+
import { claimConsole, CONSOLE_ARGS, CONSOLE_WINDOW, consoleProject, consoleTabArgs, escalationLines, escalationSchema, handledSchema, } from "./console.js";
|
|
13
13
|
import { logCrashes, startDaemon } from "./daemon.js";
|
|
14
14
|
import { ConductorError } from "./errors.js";
|
|
15
15
|
import { eventsCommand } from "./events.js";
|
|
16
16
|
import { commandHelp, isCommand, listing, unknownCommand, usageError } from "./help.js";
|
|
17
|
-
import { flagWindow, historyLines, historyReport, historySchema, parseRange, retroMarkdown } from "./history.js";
|
|
17
|
+
import { flagWindow, historyLines, historyReport, historySchema, parseRange, retroMarkdown, } from "./history.js";
|
|
18
18
|
import { inboxLines } from "./inbox.js";
|
|
19
19
|
import { parseJsonc } from "./jsonc.js";
|
|
20
20
|
import { processAlive, readPid } from "./lock.js";
|
|
@@ -25,14 +25,14 @@ import { notifyLines, notifyStatusSchema, parseUntil, testResultSchema } from ".
|
|
|
25
25
|
import { overrideViewSchema, PAUSE } from "./overrides.js";
|
|
26
26
|
import { conductorPaths } from "./paths.js";
|
|
27
27
|
import { registerProject } from "./registry.js";
|
|
28
|
-
import { rulesLines, rulesService, rulesTestResultSchema, rulesViewSchema, testLines } from "./rules-service.js";
|
|
28
|
+
import { rulesLines, rulesService, rulesTestResultSchema, rulesViewSchema, testLines, } from "./rules-service.js";
|
|
29
29
|
import { resolveUntil } from "./rules.js";
|
|
30
30
|
import { outputOf, run } from "./run.js";
|
|
31
31
|
import { queueLines, queueViewSchema } from "./scheduler.js";
|
|
32
32
|
import { awaitStart, serveDetached, ServeStartError } from "./serve.js";
|
|
33
33
|
import { formatTokens, localDay } from "./spend.js";
|
|
34
34
|
import { installStartup, removeStartup, runStartup, startupRunsCli, TASK_NAME } from "./startup.js";
|
|
35
|
-
import { inboxItemSchema, openStore, projectSchema, waitSchema, workerSchema } from "./store.js";
|
|
35
|
+
import { inboxItemSchema, openStore, projectSchema, waitSchema, workerSchema, } from "./store.js";
|
|
36
36
|
import { parseTag, restartDaemon, upgrade } from "./upgrade.js";
|
|
37
37
|
import { waitCommand } from "./wait.js";
|
|
38
38
|
import { whyLines, whySchema } from "./why.js";
|
|
@@ -74,7 +74,11 @@ const answerBody = z.object({
|
|
|
74
74
|
item: inboxItemSchema,
|
|
75
75
|
waits: z.array(waitSchema),
|
|
76
76
|
});
|
|
77
|
-
const answerRefusal = z.object({
|
|
77
|
+
const answerRefusal = z.object({
|
|
78
|
+
details: z.array(z.string()).optional(),
|
|
79
|
+
error: z.string(),
|
|
80
|
+
posted: z.enum(['no', 'unknown']).optional(),
|
|
81
|
+
});
|
|
78
82
|
async function addProject(paths, path) {
|
|
79
83
|
const absolute = resolve(path);
|
|
80
84
|
let result;
|
|
@@ -95,7 +99,12 @@ async function addProject(paths, path) {
|
|
|
95
99
|
// by the item whose plan waits.
|
|
96
100
|
async function answer(paths, ref, request) {
|
|
97
101
|
const target = request.action === 'done' ? inboxId(ref) : await planItem(paths, ref);
|
|
98
|
-
const { body, status } = await callApi(paths, {
|
|
102
|
+
const { body, status } = await callApi(paths, {
|
|
103
|
+
body: request,
|
|
104
|
+
method: 'POST',
|
|
105
|
+
path: `/inbox/${target}/resolve`,
|
|
106
|
+
timeoutMs: ANSWER_TIMEOUT_MS,
|
|
107
|
+
});
|
|
99
108
|
if (status !== 200) {
|
|
100
109
|
const refusal = answerRefusal.safeParse(body).data;
|
|
101
110
|
const details = [...(refusal?.details ?? [])];
|
|
@@ -143,30 +152,48 @@ function brokerIo() {
|
|
|
143
152
|
}
|
|
144
153
|
// `conduct console`: the console (design note, section 11), the Claude session the conductor mod
|
|
145
154
|
// serves, started with CONDUCTOR_CONSOLE=1 in the project's main checkout, where the console skill
|
|
146
|
-
// is installed. It keeps no state of its own, so a new one after a close loses nothing.
|
|
155
|
+
// is installed. It keeps no state of its own, so a new one after a close loses nothing. One at a
|
|
156
|
+
// time: the daemon refuses the start while another console is open or starting (ATK-393).
|
|
147
157
|
async function consoleCommand(paths, options) {
|
|
148
158
|
const project = consoleProject(await projectsNow(paths), options.project);
|
|
149
159
|
if (options.here) {
|
|
150
|
-
|
|
160
|
+
await claimConsole(paths, options.force);
|
|
161
|
+
const child = spawn('claude', CONSOLE_ARGS, {
|
|
162
|
+
cwd: project.root,
|
|
163
|
+
env: { ...process.env, CONDUCTOR_CONSOLE: '1' },
|
|
164
|
+
stdio: 'inherit',
|
|
165
|
+
});
|
|
151
166
|
// Ctrl+C belongs to the session; this process only waits for it to end.
|
|
152
167
|
process.on('SIGINT', () => { });
|
|
153
168
|
process.exitCode = await new Promise((done, fail) => {
|
|
154
|
-
|
|
169
|
+
// The start is claimed: a retry within the minute needs --force.
|
|
170
|
+
child.on('error', (error) => fail(new ConductorError('could not start claude', [
|
|
171
|
+
error.message,
|
|
172
|
+
'try again with `conduct console --here --force`',
|
|
173
|
+
])));
|
|
155
174
|
child.on('exit', (code) => done(code ?? 1));
|
|
156
175
|
});
|
|
157
176
|
return;
|
|
158
177
|
}
|
|
159
178
|
if (process.platform !== 'win32') {
|
|
160
|
-
throw new ConductorError('conduct console opens a Windows Terminal tab', [
|
|
179
|
+
throw new ConductorError('conduct console opens a Windows Terminal tab', [
|
|
180
|
+
'run `conduct console --here` in a terminal of your own',
|
|
181
|
+
]);
|
|
161
182
|
}
|
|
162
183
|
// A tab starts with Windows Terminal's environment, not this one's.
|
|
163
184
|
if (process.env.CONDUCTOR_HOME) {
|
|
164
|
-
throw new ConductorError('a console tab would not see CONDUCTOR_HOME', [
|
|
185
|
+
throw new ConductorError('a console tab would not see CONDUCTOR_HOME', [
|
|
186
|
+
'run `conduct console --here` in a terminal where it is set',
|
|
187
|
+
]);
|
|
165
188
|
}
|
|
166
189
|
const args = consoleTabArgs(project, process.execPath, realpathSync(fileURLToPath(import.meta.url)));
|
|
190
|
+
await claimConsole(paths, options.force);
|
|
167
191
|
const result = await run('wt.exe', args, { cwd: project.root, timeoutMs: 60_000 });
|
|
168
192
|
if (result.code !== 0)
|
|
169
|
-
throw new ConductorError('could not open the console tab', [
|
|
193
|
+
throw new ConductorError('could not open the console tab', [
|
|
194
|
+
outputOf(result, 500),
|
|
195
|
+
'run `conduct console --here --force` in a terminal instead',
|
|
196
|
+
]);
|
|
170
197
|
out(`opened the console in ${project.root} (Windows Terminal window "${CONSOLE_WINDOW}")`);
|
|
171
198
|
}
|
|
172
199
|
// How `conduct start` and upgrade's restart start the daemon detached from this process.
|
|
@@ -199,7 +226,9 @@ async function escalations(paths, json) {
|
|
|
199
226
|
const answer = await callApi(paths, { method: 'GET', path: '/console/escalations' });
|
|
200
227
|
if (answer.status === 404)
|
|
201
228
|
throw olderDaemon('no console escalations');
|
|
202
|
-
const { escalations: open } = z
|
|
229
|
+
const { escalations: open } = z
|
|
230
|
+
.object({ escalations: z.array(escalationSchema) })
|
|
231
|
+
.parse(await expectOk(Promise.resolve(answer)));
|
|
203
232
|
if (json)
|
|
204
233
|
return out(JSON.stringify(open, null, 2));
|
|
205
234
|
escalationLines(open, new Date()).forEach((line) => out(line));
|
|
@@ -247,7 +276,11 @@ async function history(paths, command, range, options) {
|
|
|
247
276
|
throw new ConductorError(`conduct ${command} takes a <range> or --since/--until, not both`);
|
|
248
277
|
const now = new Date();
|
|
249
278
|
const window = flags ? flagWindow(options.since, options.until, now) : parseRange(range, now);
|
|
250
|
-
const request = {
|
|
279
|
+
const request = {
|
|
280
|
+
project: options.project ?? null,
|
|
281
|
+
since: window.since.toISOString(),
|
|
282
|
+
until: window.until.toISOString(),
|
|
283
|
+
};
|
|
251
284
|
// Read-only: a daemon older than this build may be running, and a migration would strand it.
|
|
252
285
|
const local = () => {
|
|
253
286
|
try {
|
|
@@ -264,7 +297,11 @@ async function history(paths, command, range, options) {
|
|
|
264
297
|
};
|
|
265
298
|
let report;
|
|
266
299
|
try {
|
|
267
|
-
const query = new URLSearchParams({
|
|
300
|
+
const query = new URLSearchParams({
|
|
301
|
+
since: request.since,
|
|
302
|
+
until: request.until,
|
|
303
|
+
...(options.project ? { project: options.project } : {}),
|
|
304
|
+
});
|
|
268
305
|
const answer = await callApi(paths, { method: 'GET', path: `/history?${query.toString()}`, timeoutMs: 60_000 });
|
|
269
306
|
report = answer.status === 404 ? local() : historySchema.parse(await expectOk(Promise.resolve(answer)));
|
|
270
307
|
}
|
|
@@ -361,7 +398,10 @@ async function main(argv) {
|
|
|
361
398
|
return out(commandHelp('escalations'));
|
|
362
399
|
const [ref, ...rest] = argv.slice(2);
|
|
363
400
|
const ask = rest.includes('--ask');
|
|
364
|
-
const text = rest
|
|
401
|
+
const text = rest
|
|
402
|
+
.filter((word) => word !== '--ask')
|
|
403
|
+
.join(' ')
|
|
404
|
+
.trim();
|
|
365
405
|
if (ref === undefined || !text)
|
|
366
406
|
throw usageError('escalations');
|
|
367
407
|
return escalationDone(conductorPaths(), ref, { ask, text });
|
|
@@ -428,7 +468,11 @@ async function main(argv) {
|
|
|
428
468
|
});
|
|
429
469
|
return;
|
|
430
470
|
case 'console':
|
|
431
|
-
return consoleCommand(paths, {
|
|
471
|
+
return consoleCommand(paths, {
|
|
472
|
+
force: values.force === true,
|
|
473
|
+
here: values.here === true,
|
|
474
|
+
project: values.project,
|
|
475
|
+
});
|
|
432
476
|
case 'done':
|
|
433
477
|
if (sub === undefined)
|
|
434
478
|
throw usageError('done');
|
|
@@ -443,11 +487,18 @@ async function main(argv) {
|
|
|
443
487
|
return events(paths, values.follow === true, values.since, values.console === true || process.env.CONDUCTOR_CONSOLE === '1');
|
|
444
488
|
case 'history':
|
|
445
489
|
case 'retro':
|
|
446
|
-
return history(paths, command, sub, {
|
|
490
|
+
return history(paths, command, sub, {
|
|
491
|
+
json: values.json === true,
|
|
492
|
+
project: values.project,
|
|
493
|
+
since: values.since,
|
|
494
|
+
until: values.until,
|
|
495
|
+
});
|
|
447
496
|
case 'inbox':
|
|
448
497
|
return inbox(paths, values.json === true);
|
|
449
498
|
case 'install-mod':
|
|
450
|
-
return values.remove
|
|
499
|
+
return values.remove
|
|
500
|
+
? removeMod(modDeps())
|
|
501
|
+
: installMod(fileURLToPath(new URL('../mod', import.meta.url)), modDeps());
|
|
451
502
|
case 'install-startup':
|
|
452
503
|
return values.remove ? uninstall() : install();
|
|
453
504
|
case 'launch':
|
|
@@ -502,9 +553,16 @@ async function main(argv) {
|
|
|
502
553
|
...(values.weight === undefined ? {} : { weight: wholeNumber('--weight', values.weight) }),
|
|
503
554
|
});
|
|
504
555
|
case 'pause':
|
|
505
|
-
return override(paths, {
|
|
556
|
+
return override(paths, {
|
|
557
|
+
action: 'pause',
|
|
558
|
+
...(sub === undefined ? {} : { project: sub }),
|
|
559
|
+
...(values.until === undefined ? {} : { until: untilOf(values.until) }),
|
|
560
|
+
});
|
|
506
561
|
case 'ports':
|
|
507
|
-
process.exitCode = await portsCommand(paths, sub, {
|
|
562
|
+
process.exitCode = await portsCommand(paths, sub, {
|
|
563
|
+
json: values.json === true,
|
|
564
|
+
...(values.prefer === undefined ? {} : { prefer: wholeNumber('--prefer', values.prefer) }),
|
|
565
|
+
}, brokerIo());
|
|
508
566
|
return;
|
|
509
567
|
case 'queue':
|
|
510
568
|
return queue(paths, values.json === true, values.fresh === true);
|
|
@@ -578,7 +636,11 @@ async function notifyStatus(paths, json) {
|
|
|
578
636
|
async function notifyTest(paths, options) {
|
|
579
637
|
if (options.raise && options.channel)
|
|
580
638
|
throw new ConductorError('--raise routes the item by the profile; it takes no --channel');
|
|
581
|
-
const body = {
|
|
639
|
+
const body = {
|
|
640
|
+
...(options.channel ? { channel: options.channel } : {}),
|
|
641
|
+
...(options.kind ? { kind: options.kind } : {}),
|
|
642
|
+
raise: options.raise,
|
|
643
|
+
};
|
|
582
644
|
// Pushover can take its 15 s, after a Credential Manager read.
|
|
583
645
|
const answer = await notifyAnswer(paths, { body, method: 'POST', path: '/notify/test', timeoutMs: 60_000 });
|
|
584
646
|
if (options.raise) {
|
|
@@ -615,11 +677,17 @@ function out(line) {
|
|
|
615
677
|
}
|
|
616
678
|
// `conduct pause|unpause|focus`: an override that ends on its own (unpause ends a pause).
|
|
617
679
|
async function override(paths, body) {
|
|
618
|
-
const answer = await callApi(paths, {
|
|
680
|
+
const answer = await callApi(paths, {
|
|
681
|
+
body: { ...body, by: `conduct ${String(body.action)}` },
|
|
682
|
+
method: 'POST',
|
|
683
|
+
path: '/overrides',
|
|
684
|
+
});
|
|
619
685
|
if (answer.status === 404)
|
|
620
686
|
throw olderDaemon('no overrides');
|
|
621
|
-
const { overrides, set } = z
|
|
622
|
-
|
|
687
|
+
const { overrides, set } = z
|
|
688
|
+
.object({ overrides: z.array(overrideViewSchema), set: z.array(overrideViewSchema) })
|
|
689
|
+
.parse(await expectOk(Promise.resolve(answer)));
|
|
690
|
+
const untilOfView = (o) => o.until === null ? ' until you unpause' : ` until ${new Date(o.until).toLocaleString()}`;
|
|
623
691
|
for (const o of set) {
|
|
624
692
|
const who = o.project ?? 'every project';
|
|
625
693
|
if (o.kind === PAUSE)
|
|
@@ -639,11 +707,16 @@ function parsing(command, parse) {
|
|
|
639
707
|
return parse();
|
|
640
708
|
}
|
|
641
709
|
catch (error) {
|
|
642
|
-
if (!(error instanceof Error &&
|
|
710
|
+
if (!(error instanceof Error &&
|
|
711
|
+
'code' in error &&
|
|
712
|
+
typeof error.code === 'string' &&
|
|
713
|
+
error.code.startsWith('ERR_PARSE_ARGS')))
|
|
643
714
|
throw error;
|
|
644
715
|
// Node's advice on `--` for a positional that starts with a dash is about the shell, not conduct.
|
|
645
716
|
const message = error.message.replace(/\. To specify a positional argument.*$/s, '');
|
|
646
|
-
throw isCommand(command)
|
|
717
|
+
throw isCommand(command)
|
|
718
|
+
? usageError(command, message)
|
|
719
|
+
: new ConductorError(message, ['run `conduct help` for the commands']);
|
|
647
720
|
}
|
|
648
721
|
}
|
|
649
722
|
// The open plan item of `ref`: the item (ATK-312) whose plan waits, or an inbox id written #12. A
|
|
@@ -652,7 +725,9 @@ async function planItem(paths, ref) {
|
|
|
652
725
|
if (ref.startsWith('#'))
|
|
653
726
|
return inboxId(ref);
|
|
654
727
|
if (/^\d+$/.test(ref)) {
|
|
655
|
-
throw new ConductorError(`"${ref}" is ambiguous`, [
|
|
728
|
+
throw new ConductorError(`"${ref}" is ambiguous`, [
|
|
729
|
+
`name the item, such as ATK-${ref}, or the inbox id as #${ref}`,
|
|
730
|
+
]);
|
|
656
731
|
}
|
|
657
732
|
const items = await openItems(paths);
|
|
658
733
|
if (items === null)
|
|
@@ -681,7 +756,11 @@ async function projectsNow(paths) {
|
|
|
681
756
|
}
|
|
682
757
|
async function queue(paths, json, fresh) {
|
|
683
758
|
// A fresh read asks every project's tracker, within the shared rate budget.
|
|
684
|
-
const answer = await callApi(paths, {
|
|
759
|
+
const answer = await callApi(paths, {
|
|
760
|
+
method: 'GET',
|
|
761
|
+
path: `/queue${fresh ? '?fresh=true' : ''}`,
|
|
762
|
+
timeoutMs: 120_000,
|
|
763
|
+
});
|
|
685
764
|
if (answer.status === 404)
|
|
686
765
|
throw olderDaemon('no scheduler');
|
|
687
766
|
const view = queueViewSchema.parse(await expectOk(Promise.resolve(answer)));
|
|
@@ -793,7 +872,10 @@ async function start(paths) {
|
|
|
793
872
|
const holder = readPid(paths.pid);
|
|
794
873
|
if (error instanceof ServeStartError || holder === null || !processAlive(holder))
|
|
795
874
|
throw error;
|
|
796
|
-
throw new ConductorError(`process ${holder} holds the conductor's lock (${paths.pid}) but doesn't answer`, [
|
|
875
|
+
throw new ConductorError(`process ${holder} holds the conductor's lock (${paths.pid}) but doesn't answer`, [
|
|
876
|
+
'if it is a hung conductor, stop it, then run conduct start again',
|
|
877
|
+
`see ${paths.log}`,
|
|
878
|
+
]);
|
|
797
879
|
}
|
|
798
880
|
}
|
|
799
881
|
async function status(paths, json) {
|
|
@@ -928,10 +1010,15 @@ function wholeNumber(flag, text) {
|
|
|
928
1010
|
// each of the item's newest actions.
|
|
929
1011
|
async function why(paths, ref, json) {
|
|
930
1012
|
const byId = /^#?(\d+)$/.exec(ref)?.[1];
|
|
931
|
-
const answer = await callApi(paths, {
|
|
1013
|
+
const answer = await callApi(paths, {
|
|
1014
|
+
method: 'GET',
|
|
1015
|
+
path: byId === undefined ? `/why?item=${encodeURIComponent(ref)}` : `/why/${byId}`,
|
|
1016
|
+
});
|
|
932
1017
|
if (answer.status === 404 && byId !== undefined) {
|
|
933
1018
|
const body = errorBody.safeParse(answer.body);
|
|
934
|
-
throw body.success && body.data.error === 'not_found'
|
|
1019
|
+
throw body.success && body.data.error === 'not_found'
|
|
1020
|
+
? new ConductorError(`no event ${byId}`)
|
|
1021
|
+
: olderDaemon('no conduct why');
|
|
935
1022
|
}
|
|
936
1023
|
const body = await expectOk(Promise.resolve(answer));
|
|
937
1024
|
const whys = byId === undefined ? z.object({ items: z.array(whySchema) }).parse(body).items : [whySchema.parse(body)];
|