@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.
Files changed (112) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +11 -0
  3. package/build/brief-cli.js.map +1 -1
  4. package/build/brief.js +24 -9
  5. package/build/brief.js.map +1 -1
  6. package/build/broker-cli.js +5 -1
  7. package/build/broker-cli.js.map +1 -1
  8. package/build/broker.js +19 -5
  9. package/build/broker.js.map +1 -1
  10. package/build/checkout-sync.js +265 -0
  11. package/build/checkout-sync.js.map +1 -0
  12. package/build/claude.js +3 -1
  13. package/build/claude.js.map +1 -1
  14. package/build/cli.js +119 -32
  15. package/build/cli.js.map +1 -1
  16. package/build/client.js +3 -1
  17. package/build/client.js.map +1 -1
  18. package/build/conditions.js +4 -2
  19. package/build/conditions.js.map +1 -1
  20. package/build/config.js +13 -1
  21. package/build/config.js.map +1 -1
  22. package/build/console.js +94 -8
  23. package/build/console.js.map +1 -1
  24. package/build/credential.js +4 -1
  25. package/build/credential.js.map +1 -1
  26. package/build/daemon.js +56 -7
  27. package/build/daemon.js.map +1 -1
  28. package/build/events.js +4 -1
  29. package/build/events.js.map +1 -1
  30. package/build/help.js +87 -43
  31. package/build/help.js.map +1 -1
  32. package/build/history.js +216 -52
  33. package/build/history.js.map +1 -1
  34. package/build/inbox.js +23 -10
  35. package/build/inbox.js.map +1 -1
  36. package/build/manager.js +84 -18
  37. package/build/manager.js.map +1 -1
  38. package/build/mod.js +3 -1
  39. package/build/mod.js.map +1 -1
  40. package/build/note.js +12 -5
  41. package/build/note.js.map +1 -1
  42. package/build/notes.js +8 -5
  43. package/build/notes.js.map +1 -1
  44. package/build/notify.js +111 -24
  45. package/build/notify.js.map +1 -1
  46. package/build/overrides.js +24 -6
  47. package/build/overrides.js.map +1 -1
  48. package/build/profile.js.map +1 -1
  49. package/build/pushover.js +4 -1
  50. package/build/pushover.js.map +1 -1
  51. package/build/queue.js +18 -3
  52. package/build/queue.js.map +1 -1
  53. package/build/registry.js.map +1 -1
  54. package/build/rule-actions.js +173 -36
  55. package/build/rule-actions.js.map +1 -1
  56. package/build/rule-input.js +3 -1
  57. package/build/rule-input.js.map +1 -1
  58. package/build/rules-service.js +41 -11
  59. package/build/rules-service.js.map +1 -1
  60. package/build/rules.js +86 -14
  61. package/build/rules.js.map +1 -1
  62. package/build/scheduler.js +48 -8
  63. package/build/scheduler.js.map +1 -1
  64. package/build/server.js +56 -12
  65. package/build/server.js.map +1 -1
  66. package/build/spend.js.map +1 -1
  67. package/build/store.js +71 -16
  68. package/build/store.js.map +1 -1
  69. package/build/token.js +3 -1
  70. package/build/token.js.map +1 -1
  71. package/build/trackers.js +3 -1
  72. package/build/trackers.js.map +1 -1
  73. package/build/upgrade.js.map +1 -1
  74. package/build/wait.js +3 -1
  75. package/build/wait.js.map +1 -1
  76. package/build/watchers/ado-api.js +5 -2
  77. package/build/watchers/ado-api.js.map +1 -1
  78. package/build/watchers/ado.js +18 -6
  79. package/build/watchers/ado.js.map +1 -1
  80. package/build/watchers/boards-brief.js +9 -3
  81. package/build/watchers/boards-brief.js.map +1 -1
  82. package/build/watchers/boards-queue.js +10 -5
  83. package/build/watchers/boards-queue.js.map +1 -1
  84. package/build/watchers/boards-writes.js +11 -3
  85. package/build/watchers/boards-writes.js.map +1 -1
  86. package/build/watchers/boards.js +12 -3
  87. package/build/watchers/boards.js.map +1 -1
  88. package/build/watchers/conflicts.js +11 -3
  89. package/build/watchers/conflicts.js.map +1 -1
  90. package/build/watchers/github.js +6 -2
  91. package/build/watchers/github.js.map +1 -1
  92. package/build/watchers/health.js.map +1 -1
  93. package/build/watchers/index.js +22 -4
  94. package/build/watchers/index.js.map +1 -1
  95. package/build/watchers/linear-api.js +1 -1
  96. package/build/watchers/linear-api.js.map +1 -1
  97. package/build/watchers/linear-labels.js +3 -1
  98. package/build/watchers/linear-labels.js.map +1 -1
  99. package/build/watchers/linear-queue.js +10 -4
  100. package/build/watchers/linear-queue.js.map +1 -1
  101. package/build/watchers/linear.js +13 -4
  102. package/build/watchers/linear.js.map +1 -1
  103. package/build/watchers/npm.js.map +1 -1
  104. package/build/watchers/source.js +1 -1
  105. package/build/watchers/source.js.map +1 -1
  106. package/build/why.js +7 -3
  107. package/build/why.js.map +1 -1
  108. package/build/worktrees.js +2 -1
  109. package/build/worktrees.js.map +1 -1
  110. package/mod/hooks/model.ts +90 -25
  111. package/mod/hooks/register.tsx +172 -62
  112. package/package.json +11 -12
@@ -1 +1 @@
1
- {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/watchers/npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAgB,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5G,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAEzD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAElD,oGAAoG;AACpG,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,EAAE,GAAG,EAAE;IAC3F,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAyB,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAmC,EAAE,CAC9D,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE;oBAC5G,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE;iBACrE,CAAC,CAAC;gBACH,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,WAAW,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;gBACvE,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC;gBACrF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACL,MAAM,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;oBACzB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;wBAAE,SAAS;oBAC/B,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAC1C,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CACpG,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/watchers/npm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,OAAO,EAAgB,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5G,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAEzD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAElD,oGAAoG;AACpG,6FAA6F;AAC7F,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,EAAE,GAAG,EAAE;IAC3F,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAyB,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAmC,EAAE,CAC9D,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CACpC,OAAO,EACP,GAAG,QAAQ,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAC5D;oBACE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE;iBACrE,CACF,CAAC;gBACF,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,WAAW,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;gBACvE,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC;gBACrF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACL,MAAM,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;oBACzB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;wBAAE,SAAS;oBAC/B,MAAM,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAC1C,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CACpG,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC"}
@@ -17,7 +17,7 @@ export class WaitProblem extends Error {
17
17
  export async function getJson(fetcher, url, { headers = {}, timeoutMs = 20_000 } = {}) {
18
18
  const response = await fetcher(url, { cache: 'no-store', headers, signal: AbortSignal.timeout(timeoutMs) });
19
19
  const text = await response.text();
20
- let body = null;
20
+ let body;
21
21
  try {
22
22
  body = text ? JSON.parse(text) : null;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/watchers/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/watchers/source.ts"],"names":[],"mappings":"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"}
package/build/why.js CHANGED
@@ -64,9 +64,13 @@ export function explain(store, id, rules) {
64
64
  // `conduct why`: the rule first, then the chain of events from the one asked about back to its cause.
65
65
  export function whyLines(why) {
66
66
  const { rule } = why;
67
- const lines = rule === null ? ['no rule: nothing in its chain was caused by a rule (a worker, a command, an outside event)']
68
- : rule.from === 'a command' ? [`set by \`${rule.ref}\``]
69
- : [`${rule.ref}: ${rule.when === null ? '' : `when ${rule.when} → `}${rule.do?.join('; ') ?? '(its text is gone)'} (from ${rule.from})`];
67
+ const lines = rule === null
68
+ ? ['no rule: nothing in its chain was caused by a rule (a worker, a command, an outside event)']
69
+ : rule.from === 'a command'
70
+ ? [`set by \`${rule.ref}\``]
71
+ : [
72
+ `${rule.ref}: ${rule.when === null ? '' : `when ${rule.when} → `}${rule.do?.join('; ') ?? '(its text is gone)'} (from ${rule.from})`,
73
+ ];
70
74
  for (const [i, e] of why.chain.entries()) {
71
75
  const detail = ['outcome', 'action', 'error', 'reason', 'by']
72
76
  .flatMap((k) => (typeof e.data[k] === 'string' ? [`${k}: ${String(e.data[k])}`] : []))
package/build/why.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"why.js","sourceRoot":"","sources":["../src/why.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"why.js","sourceRoot":"","sources":["../src/why.ts"],"names":[],"mappings":"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"}
@@ -124,7 +124,8 @@ export function gitWorktrees() {
124
124
  for (const entry of parsePorcelain(status)) {
125
125
  // A checkout with core.autocrlf can show a file as modified when only its line endings differ.
126
126
  const onlyModified = /^[ M][ M]$/.test(entry.code);
127
- const same = onlyModified && (await git(['diff', '--quiet', '--ignore-cr-at-eol', 'HEAD', '--', entry.path], path)) !== null;
127
+ const same = onlyModified &&
128
+ (await git(['diff', '--quiet', '--ignore-cr-at-eol', 'HEAD', '--', entry.path], path)) !== null;
128
129
  if (!same)
129
130
  dirty.push(entry.path);
130
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../src/worktrees.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../src/worktrees.ts"],"names":[],"mappings":"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"}
@@ -70,7 +70,8 @@ export type IdleAction = { kind: 'clear'; reason: string } | { kind: 'warm' };
70
70
  // `contextTokens` is the context the last response was answered over (absent before the first);
71
71
  // `warms` the pings since the last real turn.
72
72
  export function idleAction({ contextTokens, warms }: { contextTokens: number | undefined; warms: number }): IdleAction {
73
- if (contextTokens !== undefined && contextTokens >= FRESH_AT_TOKENS) return { kind: 'clear', reason: `context ${tokens(contextTokens)} ≥ ${tokens(FRESH_AT_TOKENS)}` };
73
+ if (contextTokens !== undefined && contextTokens >= FRESH_AT_TOKENS)
74
+ return { kind: 'clear', reason: `context ${tokens(contextTokens)} ≥ ${tokens(FRESH_AT_TOKENS)}` };
74
75
  if (warms >= MAX_WARMS) return { kind: 'clear', reason: `${warms} pings since the last turn` };
75
76
  return { kind: 'warm' };
76
77
  }
@@ -134,9 +135,11 @@ export function bandEntries(inbox: readonly ConductorInboxItem[]): BandEntry[] {
134
135
  return inbox.slice(0, BAND_LIMIT).map((item, i) => {
135
136
  const key = item.item ?? `#${item.id}`;
136
137
  const hotkey = String(i + 1);
137
- if (item.kind === 'plan' && item.item !== null) return { act: 'approve', hotkey, id: item.id, label: `approve ${key}`, text: item.text };
138
+ if (item.kind === 'plan' && item.item !== null)
139
+ return { act: 'approve', hotkey, id: item.id, label: `approve ${key}`, text: item.text };
138
140
  const command = item.commands[0];
139
- if (item.kind === 'npm-otp' && command !== undefined) return { act: 'copy', hotkey, id: item.id, label: `copy OTP line ${key}`, text: command };
141
+ if (item.kind === 'npm-otp' && command !== undefined)
142
+ return { act: 'copy', hotkey, id: item.id, label: `copy OTP line ${key}`, text: command };
140
143
  return { act: 'pane', hotkey, id: item.id, label: `${item.kind} ${key}`, text: item.text };
141
144
  });
142
145
  }
@@ -149,7 +152,9 @@ export function projectGroups(workers: readonly ConductorWorker[]): ProjectGroup
149
152
  .sort(([a], [b]) => a.localeCompare(b))
150
153
  .map(([project, rows]) => ({
151
154
  project,
152
- rows: [...rows].sort((a, b) => Number(b.status === 'running') - Number(a.status === 'running') || a.name.localeCompare(b.name)),
155
+ rows: [...rows].sort(
156
+ (a, b) => Number(b.status === 'running') - Number(a.status === 'running') || a.name.localeCompare(b.name),
157
+ ),
153
158
  running: rows.filter((w) => w.status === 'running').length,
154
159
  }));
155
160
  }
@@ -174,7 +179,10 @@ export function findPlan(inbox: readonly ConductorInboxItem[], ref: string): Fou
174
179
  const item = inbox.find((i) => i.id === Number(byId[1]));
175
180
  return item ? { found: item } : { error: `no open inbox item ${ref}` };
176
181
  }
177
- if (/^\d+$/.test(ref.trim())) return { error: `"${ref}" is ambiguous: name the item, such as ATK-${ref.trim()}, or the inbox id as #${ref.trim()}` };
182
+ if (/^\d+$/.test(ref.trim()))
183
+ return {
184
+ error: `"${ref}" is ambiguous: name the item, such as ATK-${ref.trim()}, or the inbox id as #${ref.trim()}`,
185
+ };
178
186
  const plans = inbox.filter((i) => i.kind === 'plan' && i.item?.toUpperCase() === ref.trim().toUpperCase());
179
187
  if (plans.length === 1 && plans[0]) return { found: plans[0] };
180
188
  if (plans.length === 0) return { error: `no plan of ${ref} waits in the inbox` };
@@ -266,11 +274,17 @@ export function reaction(line: StreamLine): Reaction {
266
274
  // The id is what the console reports back on (`conduct escalations done <id>`).
267
275
  return ask === null
268
276
  ? { kind: 'ignore' }
269
- : { kind: 'escalate', text: `[conductor] escalation${line.id === null ? '' : ` #${line.id}`}${line.subject ? ` on ${line.subject}` : ''}: ${ask}` };
277
+ : {
278
+ kind: 'escalate',
279
+ text: `[conductor] escalation${line.id === null ? '' : ` #${line.id}`}${line.subject ? ` on ${line.subject}` : ''}: ${ask}`,
280
+ };
270
281
  }
271
282
  case 'inbox.raised': {
272
283
  const ask = text('text');
273
- return { kind: 'refresh', toast: ask === null ? null : `conductor: ${line.subject ? `${line.subject} · ` : ''}${ask}` };
284
+ return {
285
+ kind: 'refresh',
286
+ toast: ask === null ? null : `conductor: ${line.subject ? `${line.subject} · ` : ''}${ask}`,
287
+ };
274
288
  }
275
289
  case 'notify.failed':
276
290
  case 'notify.routed':
@@ -279,7 +293,9 @@ export function reaction(line: StreamLine): Reaction {
279
293
  return { kind: 'ignore' };
280
294
  case 'notify.requested': {
281
295
  const message = text('message');
282
- return line.data.channel === 'remote-control' && message !== null ? { kind: 'push', message } : { kind: 'ignore' };
296
+ return line.data.channel === 'remote-control' && message !== null
297
+ ? { kind: 'push', message }
298
+ : { kind: 'ignore' };
283
299
  }
284
300
  case 'console.cache':
285
301
  case 'watcher.stats':
@@ -298,10 +314,13 @@ export function reaction(line: StreamLine): Reaction {
298
314
  export function parseFleet(body: unknown): ConductorWorker[] | null {
299
315
  if (!isRecord(body) || !Array.isArray(body.workers)) return null;
300
316
  return body.workers.flatMap((w): ConductorWorker[] => {
301
- if (!isRecord(w) || typeof w.id !== 'number' || typeof w.name !== 'string' || typeof w.status !== 'string') return [];
317
+ if (!isRecord(w) || typeof w.id !== 'number' || typeof w.name !== 'string' || typeof w.status !== 'string')
318
+ return [];
302
319
  const spend = isRecord(w.spend) && typeof w.spend.today === 'number' ? w.spend.today : 0;
303
320
  const waits = Array.isArray(w.waits)
304
- ? w.waits.flatMap((x) => (isRecord(x) && typeof x.condition === 'string' && x.resolvedAt === null ? [x.condition] : []))
321
+ ? w.waits.flatMap((x) =>
322
+ isRecord(x) && typeof x.condition === 'string' && x.resolvedAt === null ? [x.condition] : [],
323
+ )
305
324
  : [];
306
325
  return [
307
326
  {
@@ -354,7 +373,8 @@ export function answerText(action: 'approve' | 'done' | 'revise', id: number, an
354
373
  const key = isRecord(body.item) && typeof body.item.item === 'string' ? body.item.item : `#${id}`;
355
374
  if (action === 'done') return `done: ${key}`;
356
375
  const comment = isRecord(body.comment) ? body.comment : {};
357
- const where = typeof comment.url === 'string' ? comment.url : typeof comment.id === 'string' ? comment.id : 'comment posted';
376
+ const where =
377
+ typeof comment.url === 'string' ? comment.url : typeof comment.id === 'string' ? comment.id : 'comment posted';
358
378
  return `${action === 'approve' ? 'approved' : 'asked for a revision of'} ${key}: ${where}`;
359
379
  }
360
380
 
@@ -380,7 +400,13 @@ export function snapshotOf(fleet: ApiAnswer, inbox: ApiAnswer, readAt: number, n
380
400
  if (workers === null) return { error: errorOf(fleet), inbox: [], notify: null, readAt, workers: [] };
381
401
  const items = inbox.status === 200 ? parseInbox(inbox.body) : null;
382
402
  if (items === null) return { error: errorOf(inbox), inbox: [], notify: null, readAt, workers: [] };
383
- return { error: null, inbox: items, notify: notify?.status === 200 ? parseNotify(notify.body) : null, readAt, workers };
403
+ return {
404
+ error: null,
405
+ inbox: items,
406
+ notify: notify?.status === 200 ? parseNotify(notify.body) : null,
407
+ readAt,
408
+ workers,
409
+ };
384
410
  }
385
411
 
386
412
  // GET /notify's body, kept to what the mod draws; null when it isn't one.
@@ -405,14 +431,21 @@ export function pushOutcome(answer: unknown): PushOutcome {
405
431
  const call = isRecord(answer) ? answer : {};
406
432
  if (typeof call.deny === 'string') return { detail: `refused: ${call.deny}`, state: 'failed' };
407
433
  const result = isRecord(call.result) ? call.result : {};
408
- const detail = typeof call.text === 'string' && call.text.trim() !== '' ? call.text.trim() : typeof result.message === 'string' ? result.message : '';
434
+ const detail =
435
+ typeof call.text === 'string' && call.text.trim() !== ''
436
+ ? call.text.trim()
437
+ : typeof result.message === 'string'
438
+ ? result.message
439
+ : '';
409
440
  if (call.isError === true) return { detail: detail || 'PushNotification answered an error', state: 'failed' };
410
441
  if (result.pushSent === true) return { detail, state: 'ok' };
411
- if (result.disabledReason === 'config_off') return { detail: "Mobile push not sent (off in Claude Code's config)", state: 'disabled' };
442
+ if (result.disabledReason === 'config_off')
443
+ return { detail: "Mobile push not sent (off in Claude Code's config)", state: 'disabled' };
412
444
  if (result.disabledReason === 'no_transport' || /remote control inactive/i.test(detail)) {
413
445
  return { detail: detail || 'Mobile push not sent (Remote Control inactive)', state: 'inactive' };
414
446
  }
415
- if (result.disabledReason === 'user_present') return { detail: 'Mobile push not sent: you were at the terminal (user_present)', state: 'skipped' };
447
+ if (result.disabledReason === 'user_present')
448
+ return { detail: 'Mobile push not sent: you were at the terminal (user_present)', state: 'skipped' };
416
449
  return { detail: detail || 'PushNotification said nothing about the phone', state: 'skipped' };
417
450
  }
418
451
 
@@ -446,7 +479,9 @@ export function untilOf(when: string, now: number): string | { error: string } {
446
479
  at.setTime(new Date(/^\d{4}-\d{2}-\d{2}$/.test(when) ? `${when}T00:00` : when).getTime());
447
480
  }
448
481
  if (Number.isNaN(at.getTime())) {
449
- return { error: `--until "${when}" is not a time: 17:00, tomorrow, a day such as monday, or a date and time such as 2026-10-12T09:00` };
482
+ return {
483
+ error: `--until "${when}" is not a time: 17:00, tomorrow, a day such as monday, or a date and time such as 2026-10-12T09:00`,
484
+ };
450
485
  }
451
486
  return at.toISOString();
452
487
  }
@@ -454,24 +489,49 @@ export function untilOf(when: string, now: number): string | { error: string } {
454
489
  // `/pause [<project>] [--until <when>]`, `/unpause [<project>]` and `/focus-project <project> [--until
455
490
  // <when>]` as POST /overrides' body. A focus with no end lasts until midnight, and puts the
456
491
  // project's items first (weight 100).
457
- export function overrideArgs(command: 'focus' | 'pause' | 'unpause', args: string, now: number): { body: Record<string, unknown> } | { error: string } {
492
+ export function overrideArgs(
493
+ command: 'focus' | 'pause' | 'unpause',
494
+ args: string,
495
+ now: number,
496
+ ): { body: Record<string, unknown> } | { error: string } {
458
497
  const typed = /^(?:([a-z][a-z0-9-]*))?(?:\s*--until\s+(\S+))?$/.exec(args.trim());
459
- const usage = { error: command === 'focus' ? 'usage: /focus-project <project> [--until <when>]' : `usage: /${command} [<project>]${command === 'pause' ? ' [--until <when>]' : ''}` };
498
+ const usage = {
499
+ error:
500
+ command === 'focus'
501
+ ? 'usage: /focus-project <project> [--until <when>]'
502
+ : `usage: /${command} [<project>]${command === 'pause' ? ' [--until <when>]' : ''}`,
503
+ };
460
504
  if (!typed) return usage;
461
505
  const [, project, when] = typed;
462
- if (command === 'unpause') return when === undefined ? { body: { action: 'unpause', by: 'conductor mod /unpause', ...(project ? { project } : {}) } } : usage;
506
+ if (command === 'unpause')
507
+ return when === undefined
508
+ ? { body: { action: 'unpause', by: 'conductor mod /unpause', ...(project ? { project } : {}) } }
509
+ : usage;
463
510
  const until = when === undefined ? (command === 'focus' ? untilOf('tomorrow', now) : null) : untilOf(when, now);
464
511
  if (until !== null && typeof until !== 'string') return until;
465
512
  if (command === 'focus') {
466
513
  if (!project) return usage;
467
514
  return { body: { action: 'focus', by: 'conductor mod /focus-project', project, until, weight: 100 } };
468
515
  }
469
- return { body: { action: 'pause', by: 'conductor mod /pause', ...(project ? { project } : {}), ...(until === null ? {} : { until }) } };
516
+ return {
517
+ body: {
518
+ action: 'pause',
519
+ by: 'conductor mod /pause',
520
+ ...(project ? { project } : {}),
521
+ ...(until === null ? {} : { until }),
522
+ },
523
+ };
470
524
  }
471
525
 
472
526
  // POST /overrides' answer as the line to show.
473
- export function overrideText(command: 'focus' | 'pause' | 'unpause', project: null | string, answer: ApiAnswer, now: number): string {
474
- if (answer.status === 404) return 'the running conductor has no overrides: restart it on this build (conduct upgrade)';
527
+ export function overrideText(
528
+ command: 'focus' | 'pause' | 'unpause',
529
+ project: null | string,
530
+ answer: ApiAnswer,
531
+ now: number,
532
+ ): string {
533
+ if (answer.status === 404)
534
+ return 'the running conductor has no overrides: restart it on this build (conduct upgrade)';
475
535
  if (answer.status !== 201) return `not ${command === 'focus' ? 'focused' : `${command}d`}: ${errorOf(answer)}`;
476
536
  const set = isRecord(answer.body) && Array.isArray(answer.body.set) ? answer.body.set.filter(isRecord) : [];
477
537
  const until = typeof set[0]?.until === 'string' ? ` for ${remaining(set[0].until, now)}` : '';
@@ -483,15 +543,20 @@ export function overrideText(command: 'focus' | 'pause' | 'unpause', project: nu
483
543
 
484
544
  // GET /why?item=…'s answer: the rule behind the item's newest action, in one line.
485
545
  export function whyText(item: string, answer: ApiAnswer): string {
486
- if (answer.status === 404) return 'the running conductor has no conduct why: restart it on this build (conduct upgrade)';
546
+ if (answer.status === 404)
547
+ return 'the running conductor has no conduct why: restart it on this build (conduct upgrade)';
487
548
  if (answer.status !== 200) return `why ${item}: ${errorOf(answer)}`;
488
- const first = isRecord(answer.body) && Array.isArray(answer.body.items) ? answer.body.items.find(isRecord) : undefined;
549
+ const first =
550
+ isRecord(answer.body) && Array.isArray(answer.body.items) ? answer.body.items.find(isRecord) : undefined;
489
551
  if (!first) return `no action on ${item} was caused by a rule`;
490
552
  const rule = isRecord(first.rule) ? first.rule : null;
491
553
  const latest = Array.isArray(first.chain) && isRecord(first.chain[0]) ? first.chain[0] : null;
492
554
  const what = latest && typeof latest.kind === 'string' ? `${latest.kind}: ` : '';
493
555
  if (!rule || typeof rule.ref !== 'string') return `${item}: ${what}no rule`;
494
- const text = typeof rule.when === 'string' && Array.isArray(rule.do) ? ` (when ${rule.when} → ${strings(rule.do).join('; ')})` : '';
556
+ const text =
557
+ typeof rule.when === 'string' && Array.isArray(rule.do)
558
+ ? ` (when ${rule.when} → ${strings(rule.do).join('; ')})`
559
+ : '';
495
560
  return `${item}: ${what}${rule.ref}${text}`;
496
561
  }
497
562