@detergent-software/conductor 1.0.1-dev.1 → 1.1.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/CHANGELOG.md +24 -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 +114 -31
- 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 +45 -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 +85 -42
- 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 +40 -10
- 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
package/build/rule-actions.js
CHANGED
|
@@ -3,12 +3,17 @@ import { ConductorError } from "./errors.js";
|
|
|
3
3
|
import { PAUSE } from "./overrides.js";
|
|
4
4
|
import { clockFields, describeAction, resolveUntil, selectRules, } from "./rules.js";
|
|
5
5
|
import { localDay } from "./spend.js";
|
|
6
|
-
import { ACTIVE_STATUSES } from "./store.js";
|
|
6
|
+
import { ACTIVE_STATUSES, } from "./store.js";
|
|
7
7
|
const GATES = ['plan', 'merge', 'npm-otp'];
|
|
8
8
|
const TICK_SECONDS = 60;
|
|
9
9
|
const MAX_LABELS = 20;
|
|
10
10
|
const autoApprove = z.object({ kind: z.literal('auto-approve'), plan: z.number(), rule: z.string() });
|
|
11
|
-
const noteData = z.looseObject({
|
|
11
|
+
const noteData = z.looseObject({
|
|
12
|
+
kind: z.string().nullable().optional(),
|
|
13
|
+
phase: z.string(),
|
|
14
|
+
tier: z.string().optional(),
|
|
15
|
+
worker: z.number().optional(),
|
|
16
|
+
});
|
|
12
17
|
const workerData = z.looseObject({ kind: z.string().optional(), worker: z.number() });
|
|
13
18
|
const waitData = z.looseObject({ condition: z.string(), wait: z.number(), worker: z.number() });
|
|
14
19
|
const inboxData = z.looseObject({ id: z.number() });
|
|
@@ -25,7 +30,11 @@ export function ruleActions(deps) {
|
|
|
25
30
|
const minutesSince = (iso) => Math.max(0, (now().getTime() - Date.parse(iso)) / 60_000);
|
|
26
31
|
// ---------- subjects ----------
|
|
27
32
|
// Read once per event or tick, not once per subject: spend sums scan the spend table.
|
|
28
|
-
const factsNow = () => ({
|
|
33
|
+
const factsNow = () => ({
|
|
34
|
+
failed: store.listWorkers(['failed']),
|
|
35
|
+
open: inbox.open(),
|
|
36
|
+
spend: store.spendSummary(localDay(now())),
|
|
37
|
+
});
|
|
29
38
|
const itemFields = (project, item, facts) => {
|
|
30
39
|
if (project === null || item === null)
|
|
31
40
|
return {};
|
|
@@ -44,24 +53,34 @@ export function ruleActions(deps) {
|
|
|
44
53
|
// Earlier tries of the item: launches that failed, and sessions a retry revived.
|
|
45
54
|
const retriesOf = (worker, facts) => {
|
|
46
55
|
const failed = facts.failed.filter((w) => w.project === worker.project && w.item === worker.item && w.id !== worker.id).length;
|
|
47
|
-
const revived = store
|
|
56
|
+
const revived = store
|
|
57
|
+
.ruleEvents(worker.item, 50)
|
|
58
|
+
.filter((e) => e.kind === 'worker.revived' && e.project === worker.project).length;
|
|
48
59
|
return failed + revived;
|
|
49
60
|
};
|
|
50
61
|
const workerFields = (worker, facts) => {
|
|
51
62
|
if (worker === null)
|
|
52
63
|
return {};
|
|
53
64
|
const spend = facts.spend.byWorker.get(worker.id) ?? 0;
|
|
54
|
-
return {
|
|
65
|
+
return {
|
|
66
|
+
...(worker.phase === null ? {} : { 'worker.phase': worker.phase }),
|
|
67
|
+
'spend.worker': spend,
|
|
68
|
+
'worker.retries': retriesOf(worker, facts),
|
|
69
|
+
};
|
|
55
70
|
};
|
|
56
71
|
// A wait by the gate it holds (plan, merge, npm-otp) when an open inbox item has its condition.
|
|
57
|
-
const waitKind = (wait, facts) => facts.open.find((i) => i.condition === wait.condition && GATES.includes(i.kind))?.kind ??
|
|
72
|
+
const waitKind = (wait, facts) => facts.open.find((i) => i.condition === wait.condition && GATES.includes(i.kind))?.kind ??
|
|
73
|
+
wait.condition.split(':')[0] ??
|
|
74
|
+
'time';
|
|
58
75
|
const base = (target, facts) => ({
|
|
59
76
|
...clockFields(now()),
|
|
60
77
|
'notify.profile': notifier.status().profile,
|
|
61
78
|
...(target.project === null ? {} : { project: target.project }),
|
|
62
79
|
...itemFields(target.project, target.item, facts),
|
|
63
80
|
...workerFields(target.worker, facts),
|
|
64
|
-
...(target.wait
|
|
81
|
+
...(target.wait
|
|
82
|
+
? { 'wait.age': minutesSince(target.wait.createdAt), 'wait.kind': waitKind(target.wait, facts) }
|
|
83
|
+
: {}),
|
|
65
84
|
...(target.inbox ? { 'inbox.age': minutesSince(target.inbox.raisedAt), 'inbox.kind': target.inbox.kind } : {}),
|
|
66
85
|
});
|
|
67
86
|
const targetOf = (event, worker) => ({
|
|
@@ -110,7 +129,11 @@ export function ruleActions(deps) {
|
|
|
110
129
|
return null;
|
|
111
130
|
const target = { ...targetOf(event, worker(data.worker)), wait };
|
|
112
131
|
const comment = /^pr:.+:comment$/.test(data.condition);
|
|
113
|
-
return {
|
|
132
|
+
return {
|
|
133
|
+
events: comment ? ['wait.resolved', 'pr.comment'] : ['wait.resolved'],
|
|
134
|
+
fields: base(target, facts),
|
|
135
|
+
target,
|
|
136
|
+
};
|
|
114
137
|
}
|
|
115
138
|
case 'worker.launch-failed':
|
|
116
139
|
case 'worker.retired':
|
|
@@ -120,10 +143,14 @@ export function ruleActions(deps) {
|
|
|
120
143
|
const target = targetOf(event, worker(data?.worker));
|
|
121
144
|
if (!data || !target.worker)
|
|
122
145
|
return null;
|
|
123
|
-
const events = event.kind === 'worker.launch-failed'
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
146
|
+
const events = event.kind === 'worker.launch-failed'
|
|
147
|
+
? ['run.failed']
|
|
148
|
+
: event.kind === 'worker.retired'
|
|
149
|
+
? ['worker.exited']
|
|
150
|
+
: event.kind === 'worker.stopped-unexpectedly'
|
|
151
|
+
? ['run.failed', 'worker.exited']
|
|
152
|
+
: data.kind === 'permission'
|
|
153
|
+
? ['worker.permission']
|
|
127
154
|
: ['worker.idle'];
|
|
128
155
|
return { events, fields: base(target, facts), target };
|
|
129
156
|
}
|
|
@@ -136,7 +163,14 @@ export function ruleActions(deps) {
|
|
|
136
163
|
// fired it (none for a state rule).
|
|
137
164
|
const run = async (rule, action, target, trigger, cause) => {
|
|
138
165
|
const fired = store.appendEvent({
|
|
139
|
-
data: {
|
|
166
|
+
data: {
|
|
167
|
+
action: describeAction(action),
|
|
168
|
+
...(cause === null ? {} : { cause }),
|
|
169
|
+
do: rule.text.do,
|
|
170
|
+
outcome: 'acting',
|
|
171
|
+
trigger,
|
|
172
|
+
when: rule.text.when,
|
|
173
|
+
},
|
|
140
174
|
kind: 'rule.fired',
|
|
141
175
|
project: target.project,
|
|
142
176
|
rule: rule.ref,
|
|
@@ -144,12 +178,28 @@ export function ruleActions(deps) {
|
|
|
144
178
|
});
|
|
145
179
|
try {
|
|
146
180
|
const outcome = await act(rule, action, target, fired);
|
|
147
|
-
store.appendEvent({
|
|
181
|
+
store.appendEvent({
|
|
182
|
+
data: { cause: fired.id, outcome },
|
|
183
|
+
kind: 'rule.done',
|
|
184
|
+
project: target.project,
|
|
185
|
+
rule: rule.ref,
|
|
186
|
+
subject: target.item,
|
|
187
|
+
});
|
|
148
188
|
return true;
|
|
149
189
|
}
|
|
150
190
|
catch (error) {
|
|
151
|
-
const message = error instanceof ConductorError
|
|
152
|
-
|
|
191
|
+
const message = error instanceof ConductorError
|
|
192
|
+
? [error.message, ...error.details].join(': ')
|
|
193
|
+
: error instanceof Error
|
|
194
|
+
? error.message
|
|
195
|
+
: String(error);
|
|
196
|
+
store.appendEvent({
|
|
197
|
+
data: { cause: fired.id, error: message },
|
|
198
|
+
kind: 'rule.failed',
|
|
199
|
+
project: target.project,
|
|
200
|
+
rule: rule.ref,
|
|
201
|
+
subject: target.item,
|
|
202
|
+
});
|
|
153
203
|
log.log('warn', 'a rule action failed', { error: message, rule: rule.ref });
|
|
154
204
|
return false;
|
|
155
205
|
}
|
|
@@ -168,13 +218,28 @@ export function ruleActions(deps) {
|
|
|
168
218
|
if (!plan || target.item === null)
|
|
169
219
|
return 'no plan waits in the inbox';
|
|
170
220
|
const at = new Date(now().getTime() + action.afterMinutes * 60_000);
|
|
171
|
-
store.addTodo({
|
|
221
|
+
store.addTodo({
|
|
222
|
+
action: JSON.stringify({ kind: 'auto-approve', plan: plan.id, rule: by }),
|
|
223
|
+
after: at.toISOString(),
|
|
224
|
+
item: target.item,
|
|
225
|
+
project: target.project,
|
|
226
|
+
});
|
|
172
227
|
const when = clock(at);
|
|
173
|
-
const pushed = await notifier.announce({ kind: 'plan' }, {
|
|
228
|
+
const pushed = await notifier.announce({ kind: 'plan' }, {
|
|
229
|
+
item: target.item,
|
|
230
|
+
project: target.project,
|
|
231
|
+
text: `${target.item} auto-approves at ${when} unless you revise it`,
|
|
232
|
+
}, by);
|
|
174
233
|
return `auto-approves ${target.item}'s plan at ${when}${pushed === null ? '' : ` (not pushed: ${pushed})`}`;
|
|
175
234
|
}
|
|
176
235
|
case 'escalate':
|
|
177
|
-
store.appendEvent({
|
|
236
|
+
store.appendEvent({
|
|
237
|
+
data: { cause: fired.id, text: action.text },
|
|
238
|
+
kind: 'console.escalated',
|
|
239
|
+
project: target.project,
|
|
240
|
+
rule: by,
|
|
241
|
+
subject: target.item,
|
|
242
|
+
});
|
|
178
243
|
return 'escalated to the console';
|
|
179
244
|
case 'focus': {
|
|
180
245
|
const project = projectOf(action.project);
|
|
@@ -185,14 +250,32 @@ export function ruleActions(deps) {
|
|
|
185
250
|
// A runaway is the session manager's kind of item: the inbox words it and raises it once.
|
|
186
251
|
if (action.kind === 'runaway' && target.worker) {
|
|
187
252
|
const tokens = store.spendSummary(localDay(now())).byWorker.get(target.worker.id) ?? 0;
|
|
188
|
-
store.appendEvent({
|
|
253
|
+
store.appendEvent({
|
|
254
|
+
data: { name: target.worker.name, tokens, worker: target.worker.id },
|
|
255
|
+
kind: 'worker.runaway',
|
|
256
|
+
project: target.project,
|
|
257
|
+
rule: by,
|
|
258
|
+
subject: target.item,
|
|
259
|
+
});
|
|
189
260
|
return `runaway for ${target.worker.name}`;
|
|
190
261
|
}
|
|
191
|
-
const text = action.text ??
|
|
192
|
-
|
|
262
|
+
const text = action.text ??
|
|
263
|
+
`${target.item ?? target.project ?? 'the conductor'}: ${rule.text.when ?? describeAction(action)} (rule ${by})`;
|
|
264
|
+
const open = inbox
|
|
265
|
+
.open()
|
|
266
|
+
.find((i) => i.kind === action.kind && i.item === target.item && i.project === target.project && i.text === text);
|
|
193
267
|
if (open)
|
|
194
268
|
return `already in the inbox (#${open.id})`;
|
|
195
|
-
const raised = inbox.raise({
|
|
269
|
+
const raised = inbox.raise({
|
|
270
|
+
commands: [`conduct why ${fired.id}`],
|
|
271
|
+
condition: null,
|
|
272
|
+
item: target.item,
|
|
273
|
+
kind: action.kind,
|
|
274
|
+
links: [],
|
|
275
|
+
project: target.project,
|
|
276
|
+
text,
|
|
277
|
+
worker: target.worker?.id ?? null,
|
|
278
|
+
});
|
|
196
279
|
return `raised inbox item ${raised.id}`;
|
|
197
280
|
}
|
|
198
281
|
case 'label': {
|
|
@@ -216,7 +299,11 @@ export function ruleActions(deps) {
|
|
|
216
299
|
case 'retire':
|
|
217
300
|
return `${action.verb} is the scheduler's and the session manager's`;
|
|
218
301
|
case 'notify': {
|
|
219
|
-
const why = await notifier.announce(action.channel, {
|
|
302
|
+
const why = await notifier.announce(action.channel, {
|
|
303
|
+
item: target.item,
|
|
304
|
+
project: target.project,
|
|
305
|
+
text: action.text ?? `${target.item ?? target.project ?? 'conductor'}: ${rule.text.when ?? ''}`,
|
|
306
|
+
}, by);
|
|
220
307
|
return why === null ? `pushed on ${action.channel}` : `not pushed: ${why}`;
|
|
221
308
|
}
|
|
222
309
|
case 'notify-profile':
|
|
@@ -257,7 +344,11 @@ export function ruleActions(deps) {
|
|
|
257
344
|
if (worker.status === 'failed') {
|
|
258
345
|
for (const open of inbox.open().filter((i) => i.kind === 'failed' && i.worker === worker.id))
|
|
259
346
|
store.resolveInbox(open.id, `retried by ${by}`);
|
|
260
|
-
const again = manager.launch({
|
|
347
|
+
const again = manager.launch({
|
|
348
|
+
item: worker.item,
|
|
349
|
+
project: worker.project,
|
|
350
|
+
...(worker.probe ? { probe: true } : {}),
|
|
351
|
+
});
|
|
261
352
|
return `launching ${again.name} again (worker ${again.id})`;
|
|
262
353
|
}
|
|
263
354
|
if (worker.status === 'stopped-unexpectedly') {
|
|
@@ -269,8 +360,12 @@ export function ruleActions(deps) {
|
|
|
269
360
|
// Label edits a rule made on the item today: a cap, so two rules can't flip a label all day.
|
|
270
361
|
const labelEdits = (item) => store
|
|
271
362
|
.ruleEvents(item, 100)
|
|
272
|
-
.filter((e) => e.kind === 'rule.done' &&
|
|
273
|
-
|
|
363
|
+
.filter((e) => e.kind === 'rule.done' &&
|
|
364
|
+
localDay(new Date(e.at)) === localDay(now()) &&
|
|
365
|
+
/\s(added|removed)$/.test(String(e.data.outcome ?? ''))).length;
|
|
366
|
+
const openPlan = (target) => inbox
|
|
367
|
+
.open()
|
|
368
|
+
.find((i) => i.kind === 'plan' && i.project === target.project && i.item?.toUpperCase() === target.item?.toUpperCase());
|
|
274
369
|
// The inbox item a wait holds: its gate (plan, merge, npm-otp) or any open item of the worker.
|
|
275
370
|
const openGate = (target) => {
|
|
276
371
|
const open = inbox.open();
|
|
@@ -283,9 +378,15 @@ export function ruleActions(deps) {
|
|
|
283
378
|
const found = fromEvent(event, factsNow());
|
|
284
379
|
if (!found)
|
|
285
380
|
return;
|
|
286
|
-
const { fired } = selectRules(deps.rules(), {
|
|
381
|
+
const { fired } = selectRules(deps.rules(), {
|
|
382
|
+
events: found.events,
|
|
383
|
+
fields: found.fields,
|
|
384
|
+
project: found.target.project,
|
|
385
|
+
scope: null,
|
|
386
|
+
});
|
|
287
387
|
for (const { action, rule } of fired) {
|
|
288
|
-
if (['launch', 'none', 'park', 'resume', 'retire'].includes(action.verb) &&
|
|
388
|
+
if (['launch', 'none', 'park', 'resume', 'retire'].includes(action.verb) &&
|
|
389
|
+
!(action.verb === 'launch' && found.events.includes('item.unblocked')))
|
|
289
390
|
continue;
|
|
290
391
|
await run(rule, action, found.target, found.events.join(', '), event.id);
|
|
291
392
|
}
|
|
@@ -294,7 +395,11 @@ export function ruleActions(deps) {
|
|
|
294
395
|
const stateSubjects = (facts) => {
|
|
295
396
|
const subjects = [];
|
|
296
397
|
const add = (key, scope, target, extra = {}) => {
|
|
297
|
-
subjects.push({
|
|
398
|
+
subjects.push({
|
|
399
|
+
key,
|
|
400
|
+
subject: { events: [], fields: { ...base(target, facts), ...extra }, project: target.project, scope },
|
|
401
|
+
target,
|
|
402
|
+
});
|
|
298
403
|
};
|
|
299
404
|
const { spend } = facts;
|
|
300
405
|
const none = { inbox: null, item: null, project: null, wait: null, worker: null };
|
|
@@ -311,7 +416,13 @@ export function ruleActions(deps) {
|
|
|
311
416
|
add(`wait:${wait.id}`, 'wait', { ...none, item: w.item, project: w.project, wait, worker: w });
|
|
312
417
|
}
|
|
313
418
|
for (const i of facts.open)
|
|
314
|
-
add(`inbox:${i.id}`, 'inbox', {
|
|
419
|
+
add(`inbox:${i.id}`, 'inbox', {
|
|
420
|
+
...none,
|
|
421
|
+
inbox: i,
|
|
422
|
+
item: i.item,
|
|
423
|
+
project: i.project,
|
|
424
|
+
worker: i.worker === null ? null : store.getWorker(i.worker),
|
|
425
|
+
});
|
|
315
426
|
return subjects;
|
|
316
427
|
};
|
|
317
428
|
const tickOnce = async () => {
|
|
@@ -356,7 +467,12 @@ export function ruleActions(deps) {
|
|
|
356
467
|
if (o.project === null ? still.length > 0 : projects.has(o.project))
|
|
357
468
|
continue;
|
|
358
469
|
overrides.unpause(o.project, ref);
|
|
359
|
-
store.appendEvent({
|
|
470
|
+
store.appendEvent({
|
|
471
|
+
data: { reason: `${ref} no longer holds` },
|
|
472
|
+
kind: 'rule.released',
|
|
473
|
+
project: o.project,
|
|
474
|
+
rule: ref,
|
|
475
|
+
});
|
|
360
476
|
}
|
|
361
477
|
};
|
|
362
478
|
// The project a state rule's subject belongs to: its own, its worker's, its wait's worker's.
|
|
@@ -387,17 +503,38 @@ export function ruleActions(deps) {
|
|
|
387
503
|
const plan = inbox.open().find((i) => i.id === parsed.data.plan);
|
|
388
504
|
const target = { inbox: plan ?? null, item: todo.item, project: todo.project, wait: null, worker: null };
|
|
389
505
|
if (!plan) {
|
|
390
|
-
store.appendEvent({
|
|
506
|
+
store.appendEvent({
|
|
507
|
+
data: { outcome: 'the plan was answered or replaced first: not approved' },
|
|
508
|
+
kind: 'rule.done',
|
|
509
|
+
project: todo.project,
|
|
510
|
+
rule: parsed.data.rule,
|
|
511
|
+
subject: todo.item,
|
|
512
|
+
});
|
|
391
513
|
continue;
|
|
392
514
|
}
|
|
393
515
|
const deadline = clock(new Date(todo.after));
|
|
394
516
|
try {
|
|
395
|
-
await inbox.answer(plan.id, {
|
|
396
|
-
|
|
517
|
+
await inbox.answer(plan.id, {
|
|
518
|
+
action: 'approve',
|
|
519
|
+
text: `auto-approved by the conductor: rule "${parsed.data.rule}", no revise by ${deadline}`,
|
|
520
|
+
});
|
|
521
|
+
store.appendEvent({
|
|
522
|
+
data: { outcome: `approved ${todo.item ?? ''}'s plan` },
|
|
523
|
+
kind: 'rule.done',
|
|
524
|
+
project: target.project,
|
|
525
|
+
rule: parsed.data.rule,
|
|
526
|
+
subject: target.item,
|
|
527
|
+
});
|
|
397
528
|
}
|
|
398
529
|
catch (error) {
|
|
399
530
|
const message = error instanceof Error ? error.message : String(error);
|
|
400
|
-
store.appendEvent({
|
|
531
|
+
store.appendEvent({
|
|
532
|
+
data: { error: message },
|
|
533
|
+
kind: 'rule.failed',
|
|
534
|
+
project: target.project,
|
|
535
|
+
rule: parsed.data.rule,
|
|
536
|
+
subject: target.item,
|
|
537
|
+
});
|
|
401
538
|
}
|
|
402
539
|
}
|
|
403
540
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-actions.js","sourceRoot":"","sources":["../src/rule-actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule-actions.js","sourceRoot":"","sources":["../src/rule-actions.ts"],"names":[],"mappings":"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"}
|
package/build/rule-input.js
CHANGED
|
@@ -2,7 +2,9 @@ import { z } from 'zod';
|
|
|
2
2
|
// A rule as written in ~/.conductor/rules.json or a profile's `rules` (design note, section 9):
|
|
3
3
|
// `when` and `do` in the fixed vocabulary that rules.ts reads. Its own module, so profile.ts can
|
|
4
4
|
// take rules without importing the engine (which imports the store, which imports profile.ts).
|
|
5
|
-
export const ruleIdSchema = z
|
|
5
|
+
export const ruleIdSchema = z
|
|
6
|
+
.string()
|
|
7
|
+
.regex(/^[a-z][a-z0-9-]*$/, 'lowercase letters, digits and dashes, starting with a letter');
|
|
6
8
|
export const ruleInputSchema = z.strictObject({
|
|
7
9
|
// One action, or several that fire together.
|
|
8
10
|
do: z.union([z.string().trim().min(1), z.array(z.string().trim().min(1)).min(1)]),
|
package/build/rule-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-input.js","sourceRoot":"","sources":["../src/rule-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gGAAgG;AAChG,iGAAiG;AACjG,+FAA+F;AAC/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"rule-input.js","sourceRoot":"","sources":["../src/rule-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gGAAgG;AAChG,iGAAiG;AACjG,+FAA+F;AAC/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,EAAE,8DAA8D,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5C,6CAA6C;IAC7C,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,6FAA6F;IAC7F,4FAA4F;IAC5F,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC"}
|
package/build/rules-service.js
CHANGED
|
@@ -59,7 +59,9 @@ export const rulesTestResultSchema = z.object({
|
|
|
59
59
|
// `conduct rules`: the rules in force by source, what replaces what, and any file refused.
|
|
60
60
|
export function rulesLines(view) {
|
|
61
61
|
const width = Math.max(0, ...view.rules.map((r) => r.ref.length));
|
|
62
|
-
const lines = [
|
|
62
|
+
const lines = [
|
|
63
|
+
`rules in force (loaded ${new Date(view.loadedAt).toLocaleString()}; scheduler.mode ${view.mode}; machine rules in ${view.file})`,
|
|
64
|
+
];
|
|
63
65
|
for (const r of view.rules) {
|
|
64
66
|
const when = r.when === null ? '' : `when ${r.when} → `;
|
|
65
67
|
const replaced = r.replacedBy.length > 0 ? ` [replaced by ${r.replacedBy.join(', ')}]` : '';
|
|
@@ -104,7 +106,12 @@ export function rulesService(deps) {
|
|
|
104
106
|
const problems = [error.message, ...error.details];
|
|
105
107
|
if (previous?.rejected?.problems.join('\n') === problems.join('\n'))
|
|
106
108
|
return;
|
|
107
|
-
sources.set(key, {
|
|
109
|
+
sources.set(key, {
|
|
110
|
+
file,
|
|
111
|
+
key: previous?.key ?? '',
|
|
112
|
+
rejected: { at: now().toISOString(), file, problems },
|
|
113
|
+
rules: previous?.rules ?? [],
|
|
114
|
+
});
|
|
108
115
|
emit({ data: { file, problems, project }, kind: 'rules.rejected', project });
|
|
109
116
|
deps.log?.log('warn', 'a rules source was refused; its last good rules stay', { file, problems });
|
|
110
117
|
};
|
|
@@ -137,7 +144,11 @@ export function rulesService(deps) {
|
|
|
137
144
|
sources.set(key, { file, key: text, rejected: null, rules });
|
|
138
145
|
// A first load says so only when there are rules; after that, any change or a cleared refusal.
|
|
139
146
|
if (previous === undefined ? rules.length > 0 : previous.key !== text || refused !== null) {
|
|
140
|
-
emit({
|
|
147
|
+
emit({
|
|
148
|
+
data: { count: rules.length, file, project: origin.project },
|
|
149
|
+
kind: 'rules.loaded',
|
|
150
|
+
project: origin.project,
|
|
151
|
+
});
|
|
141
152
|
}
|
|
142
153
|
};
|
|
143
154
|
const loadMachine = () => {
|
|
@@ -201,7 +212,11 @@ export function rulesService(deps) {
|
|
|
201
212
|
load(key, project.profilePath, origin, () => rules, true);
|
|
202
213
|
return;
|
|
203
214
|
}
|
|
204
|
-
deps.updateProject?.({
|
|
215
|
+
deps.updateProject?.({
|
|
216
|
+
profile: { ...project.profile, rules },
|
|
217
|
+
profilePath: project.profilePath,
|
|
218
|
+
root: project.root,
|
|
219
|
+
});
|
|
205
220
|
};
|
|
206
221
|
const checkProfile = (profile, file) => {
|
|
207
222
|
compileRules(profile.rules, { file, project: profile.name, source: 'project' }, limits);
|
|
@@ -237,7 +252,10 @@ export function rulesService(deps) {
|
|
|
237
252
|
// Watches each enabled project's profile once, by name and path: a project that goes, or moves to
|
|
238
253
|
// another checkout, loses its old watch.
|
|
239
254
|
const rewatchProjects = () => {
|
|
240
|
-
const wanted = new Map(deps
|
|
255
|
+
const wanted = new Map(deps
|
|
256
|
+
.listProjects()
|
|
257
|
+
.filter((p) => p.enabled)
|
|
258
|
+
.map((p) => [`project:${p.name}|${p.profilePath}`, p]));
|
|
241
259
|
for (const [key, watcher] of watchers) {
|
|
242
260
|
if (key.startsWith('project:') && !wanted.has(key)) {
|
|
243
261
|
watcher.close();
|
|
@@ -255,7 +273,9 @@ export function rulesService(deps) {
|
|
|
255
273
|
if (rule.id === null || rule.source === 'project')
|
|
256
274
|
return [];
|
|
257
275
|
return rules
|
|
258
|
-
.filter((r) => r.id === rule.id &&
|
|
276
|
+
.filter((r) => r.id === rule.id &&
|
|
277
|
+
r !== rule &&
|
|
278
|
+
(r.source === 'project' || (r.source === 'machine' && rule.source === 'default')))
|
|
259
279
|
.map((r) => r.ref);
|
|
260
280
|
};
|
|
261
281
|
const rank = { default: 2, machine: 1, project: 0 };
|
|
@@ -291,9 +311,15 @@ export function rulesService(deps) {
|
|
|
291
311
|
const byRef = new Map(rules.map((r) => [r.ref, r]));
|
|
292
312
|
const relevant = (t) => t.outcome !== 'other trigger';
|
|
293
313
|
return {
|
|
294
|
-
fired: fired.map((f) => ({
|
|
314
|
+
fired: fired.map((f) => ({
|
|
315
|
+
action: describeAction(f.action),
|
|
316
|
+
guardrail: guardrailOf(f.action, config),
|
|
317
|
+
ref: f.rule.ref,
|
|
318
|
+
})),
|
|
295
319
|
subject: { events: [...subject.events], project: subject.project, scope: subject.scope },
|
|
296
|
-
trace: trace
|
|
320
|
+
trace: trace
|
|
321
|
+
.filter(relevant)
|
|
322
|
+
.map((t) => ({ ...t, do: byRef.get(t.ref)?.text.do ?? [], when: byRef.get(t.ref)?.text.when ?? null })),
|
|
297
323
|
};
|
|
298
324
|
};
|
|
299
325
|
return {
|
|
@@ -329,7 +355,9 @@ export function rulesService(deps) {
|
|
|
329
355
|
case 'auto-approve':
|
|
330
356
|
return 'a revise: before the deadline stops it';
|
|
331
357
|
case 'focus':
|
|
332
|
-
return action.setting === 'slots'
|
|
358
|
+
return action.setting === 'slots'
|
|
359
|
+
? `never more than scheduler.slots (${settings.scheduler.slots}) in all`
|
|
360
|
+
: null;
|
|
333
361
|
case 'label':
|
|
334
362
|
return 'labels only: never state, priority or the description';
|
|
335
363
|
case 'launch':
|
|
@@ -353,8 +381,10 @@ export function testLines(result) {
|
|
|
353
381
|
if (others.length > 0)
|
|
354
382
|
lines.push('the others:');
|
|
355
383
|
for (const t of others) {
|
|
356
|
-
const why = t.outcome === 'no match'
|
|
357
|
-
|
|
384
|
+
const why = t.outcome === 'no match'
|
|
385
|
+
? `when ${t.when ?? ''}${t.missing.length > 0 ? ` (no ${t.missing.join(', ')} in the sample)` : ''}`
|
|
386
|
+
: t.outcome === 'shadowed'
|
|
387
|
+
? `replaced by ${t.over ?? '?'}`
|
|
358
388
|
: `${t.do.join('; ')} already fired from ${t.over ?? '?'}`;
|
|
359
389
|
lines.push(` ${t.outcome} ${t.ref}: ${why}`);
|
|
360
390
|
}
|