@detergent-software/conductor 3.0.0-dev.4 → 3.0.0-dev.41

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 (214) hide show
  1. package/CHANGELOG.md +352 -0
  2. package/README.md +274 -124
  3. package/build/brief-cli.js +5 -12
  4. package/build/brief-cli.js.map +1 -1
  5. package/build/brief.js +4 -3
  6. package/build/brief.js.map +1 -1
  7. package/build/broker-cli.js +15 -10
  8. package/build/broker-cli.js.map +1 -1
  9. package/build/broker.js +1 -1
  10. package/build/broker.js.map +1 -1
  11. package/build/claude.js +48 -2
  12. package/build/claude.js.map +1 -1
  13. package/build/cli.js +225 -71
  14. package/build/cli.js.map +1 -1
  15. package/build/clones.js +92 -0
  16. package/build/clones.js.map +1 -0
  17. package/build/code-host-cli.js +172 -40
  18. package/build/code-host-cli.js.map +1 -1
  19. package/build/code-host-service.js +35 -2
  20. package/build/code-host-service.js.map +1 -1
  21. package/build/code-host.js +140 -16
  22. package/build/code-host.js.map +1 -1
  23. package/build/conditions.js +33 -16
  24. package/build/conditions.js.map +1 -1
  25. package/build/config.js +58 -28
  26. package/build/config.js.map +1 -1
  27. package/build/console.js +43 -27
  28. package/build/console.js.map +1 -1
  29. package/build/credentials.js +86 -54
  30. package/build/credentials.js.map +1 -1
  31. package/build/daemon.js +57 -66
  32. package/build/daemon.js.map +1 -1
  33. package/build/file-lock.js +155 -40
  34. package/build/file-lock.js.map +1 -1
  35. package/build/follow-ups.js +2 -2
  36. package/build/follow-ups.js.map +1 -1
  37. package/build/help.js +237 -82
  38. package/build/help.js.map +1 -1
  39. package/build/history.js +10 -4
  40. package/build/history.js.map +1 -1
  41. package/build/host/credential-manager.js +109 -0
  42. package/build/host/credential-manager.js.map +1 -0
  43. package/build/host/keychain.js +44 -0
  44. package/build/host/keychain.js.map +1 -0
  45. package/build/host/launchd.js +118 -0
  46. package/build/host/launchd.js.map +1 -0
  47. package/build/host/libsecret.js +40 -0
  48. package/build/host/libsecret.js.map +1 -0
  49. package/build/host/macos-terminal.js +63 -0
  50. package/build/host/macos-terminal.js.map +1 -0
  51. package/build/host/platform.js +4 -0
  52. package/build/host/platform.js.map +1 -0
  53. package/build/host/secrets.js +46 -0
  54. package/build/host/secrets.js.map +1 -0
  55. package/build/host/shell.js +26 -0
  56. package/build/host/shell.js.map +1 -0
  57. package/build/host/startup.js +26 -0
  58. package/build/host/startup.js.map +1 -0
  59. package/build/host/systemd.js +91 -0
  60. package/build/host/systemd.js.map +1 -0
  61. package/build/host/task-scheduler.js +78 -0
  62. package/build/host/task-scheduler.js.map +1 -0
  63. package/build/host/terminal.js +46 -0
  64. package/build/host/terminal.js.map +1 -0
  65. package/build/host/tmux.js +39 -0
  66. package/build/host/tmux.js.map +1 -0
  67. package/build/host/windows-terminal.js +46 -0
  68. package/build/host/windows-terminal.js.map +1 -0
  69. package/build/in-process.js +6 -5
  70. package/build/in-process.js.map +1 -1
  71. package/build/inbox.js +57 -39
  72. package/build/inbox.js.map +1 -1
  73. package/build/init.js +509 -0
  74. package/build/init.js.map +1 -0
  75. package/build/landing.js +107 -10
  76. package/build/landing.js.map +1 -1
  77. package/build/lib/providers/ado/code-host.js +5 -1
  78. package/build/lib/providers/ado/code-host.js.map +1 -1
  79. package/build/lib/providers/ado/pipelines.js +138 -26
  80. package/build/lib/providers/ado/pipelines.js.map +1 -1
  81. package/build/lib/providers/ado/trigger.js +5 -0
  82. package/build/lib/providers/ado/trigger.js.map +1 -1
  83. package/build/lib/providers/ado/writes.js +17 -2
  84. package/build/lib/providers/ado/writes.js.map +1 -1
  85. package/build/lib/providers/github/actions.js +90 -3
  86. package/build/lib/providers/github/actions.js.map +1 -1
  87. package/build/lib/providers/github/code-host.js +2 -0
  88. package/build/lib/providers/github/code-host.js.map +1 -1
  89. package/build/lib/providers/github/writes.js +25 -2
  90. package/build/lib/providers/github/writes.js.map +1 -1
  91. package/build/lib/providers/index.js +4 -3
  92. package/build/lib/providers/index.js.map +1 -1
  93. package/build/lib/providers/npm/stage.js +28 -5
  94. package/build/lib/providers/npm/stage.js.map +1 -1
  95. package/build/lib/providers/timing.js +10 -0
  96. package/build/lib/providers/timing.js.map +1 -0
  97. package/build/lib/providers/verdicts/pr.js +47 -6
  98. package/build/lib/providers/verdicts/pr.js.map +1 -1
  99. package/build/lib/providers/verdicts/runs.js +12 -2
  100. package/build/lib/providers/verdicts/runs.js.map +1 -1
  101. package/build/logins.js +13 -6
  102. package/build/logins.js.map +1 -1
  103. package/build/manager.js +131 -55
  104. package/build/manager.js.map +1 -1
  105. package/build/note.js +5 -15
  106. package/build/note.js.map +1 -1
  107. package/build/notes.js +130 -23
  108. package/build/notes.js.map +1 -1
  109. package/build/notify.js +104 -42
  110. package/build/notify.js.map +1 -1
  111. package/build/npm-reads.js +323 -0
  112. package/build/npm-reads.js.map +1 -0
  113. package/build/ownership.js +2 -2
  114. package/build/paths.js +44 -1
  115. package/build/paths.js.map +1 -1
  116. package/build/plugin.js +4 -2
  117. package/build/plugin.js.map +1 -1
  118. package/build/profile-fields.js +153 -0
  119. package/build/profile-fields.js.map +1 -0
  120. package/build/profile-layers.js +264 -0
  121. package/build/profile-layers.js.map +1 -0
  122. package/build/profile.js +107 -51
  123. package/build/profile.js.map +1 -1
  124. package/build/project-check-cli.js +19 -19
  125. package/build/project-check-cli.js.map +1 -1
  126. package/build/project-check.js +194 -108
  127. package/build/project-check.js.map +1 -1
  128. package/build/protocol.js +5 -21
  129. package/build/protocol.js.map +1 -1
  130. package/build/pushover.js +5 -5
  131. package/build/pushover.js.map +1 -1
  132. package/build/queue.js +4 -4
  133. package/build/queue.js.map +1 -1
  134. package/build/registry.js +195 -36
  135. package/build/registry.js.map +1 -1
  136. package/build/release-kinds.js +34 -0
  137. package/build/release-kinds.js.map +1 -0
  138. package/build/rule-actions.js +8 -6
  139. package/build/rule-actions.js.map +1 -1
  140. package/build/rules-service.js +104 -47
  141. package/build/rules-service.js.map +1 -1
  142. package/build/rules.js +23 -23
  143. package/build/rules.js.map +1 -1
  144. package/build/run.js +20 -7
  145. package/build/run.js.map +1 -1
  146. package/build/runs.js +218 -68
  147. package/build/runs.js.map +1 -1
  148. package/build/scheduler.js +89 -13
  149. package/build/scheduler.js.map +1 -1
  150. package/build/search.js +2 -1
  151. package/build/search.js.map +1 -1
  152. package/build/server.js +51 -14
  153. package/build/server.js.map +1 -1
  154. package/build/spend.js +1 -1
  155. package/build/spend.js.map +1 -1
  156. package/build/store.js +79 -20
  157. package/build/store.js.map +1 -1
  158. package/build/supervise.js +1 -1
  159. package/build/supervise.js.map +1 -1
  160. package/build/timeline.js +104 -0
  161. package/build/timeline.js.map +1 -0
  162. package/build/tracker-reads-cli.js +4 -5
  163. package/build/tracker-reads-cli.js.map +1 -1
  164. package/build/trackers.js +56 -10
  165. package/build/trackers.js.map +1 -1
  166. package/build/train-cli.js +6 -5
  167. package/build/train-cli.js.map +1 -1
  168. package/build/train.js +2 -2
  169. package/build/train.js.map +1 -1
  170. package/build/upgrade.js +8 -9
  171. package/build/upgrade.js.map +1 -1
  172. package/build/wait.js +10 -10
  173. package/build/wait.js.map +1 -1
  174. package/build/watchers/ado.js +44 -20
  175. package/build/watchers/ado.js.map +1 -1
  176. package/build/watchers/github.js +21 -6
  177. package/build/watchers/github.js.map +1 -1
  178. package/build/watchers/index.js +2 -2
  179. package/build/watchers/index.js.map +1 -1
  180. package/build/watchers/linear-queue.js +47 -14
  181. package/build/watchers/linear-queue.js.map +1 -1
  182. package/build/watchers/linear-writes.js +26 -12
  183. package/build/watchers/linear-writes.js.map +1 -1
  184. package/build/watchers/linear.js +2 -2
  185. package/build/watchers/linear.js.map +1 -1
  186. package/build/watchers/npm.js +6 -4
  187. package/build/watchers/npm.js.map +1 -1
  188. package/build/watchers/source.js +5 -1
  189. package/build/watchers/source.js.map +1 -1
  190. package/build/webhook.js +80 -0
  191. package/build/webhook.js.map +1 -0
  192. package/build/why.js +1 -1
  193. package/build/why.js.map +1 -1
  194. package/build/worktrees.js +56 -93
  195. package/build/worktrees.js.map +1 -1
  196. package/package.json +61 -61
  197. package/plugin/.claude-plugin/plugin.json +1 -1
  198. package/plugin/hooks/model.ts +46 -6
  199. package/plugin/hooks/register.tsx +41 -2
  200. package/plugin/skills/conductor-console/SKILL.md +26 -27
  201. package/plugin/skills/work-item/SKILL.md +58 -54
  202. package/plugin/skills/work-item/trackers/ado-boards.md +2 -2
  203. package/plugin/skills/work-item/trackers/github-issues.md +1 -1
  204. package/plugin/skills/work-item/trackers/linear.md +2 -2
  205. package/plugin/types/index.d.ts +1 -1
  206. package/protocol/PROTOCOL.md +3 -9
  207. package/build/checkout-sync.js +0 -249
  208. package/build/checkout-sync.js.map +0 -1
  209. package/build/credential.js +0 -66
  210. package/build/credential.js.map +0 -1
  211. package/build/startup.js +0 -92
  212. package/build/startup.js.map +0 -1
  213. package/build/tab.js +0 -32
  214. package/build/tab.js.map +0 -1
@@ -1,17 +1,24 @@
1
- import { readFileSync } from 'node:fs';
2
1
  import { join } from 'node:path';
2
+ import { gt } from 'semver';
3
3
  import { z } from 'zod';
4
4
  import { portEnv } from "./broker.js";
5
5
  import { runGit } from "./checkout.js";
6
+ import { trustStep } from "./claude.js";
6
7
  import { repoKey, repoOf } from "./code-host.js";
7
8
  import { TRACKER_API } from "./conditions.js";
8
9
  import { ConductorError } from "./errors.js";
9
10
  import { answersTo, NotFound } from "./lib/providers/index.js";
11
+ import { projectPaths } from "./paths.js";
10
12
  import { pluginSkill, pluginSource, projectSkills, readPluginSkill } from "./plugin.js";
11
- import { PROFILE_FILE, readProfile } from "./profile.js";
13
+ import { minimumCheck } from "./profile-fields.js";
14
+ import { projectProfile } from "./profile-layers.js";
15
+ import { adoOrganization } from "./profile.js";
12
16
  import { PROTOCOL } from "./protocol.js";
17
+ import { registeredByCheckout } from "./registry.js";
18
+ import { RELEASE_KINDS } from "./release-kinds.js";
13
19
  import { ciRefusal } from "./runs.js";
14
- import { BRANCH_PREFIX, SESSION_SETTINGS, worktreePath } from "./worktrees.js";
20
+ import { labelQueue } from "./watchers/linear-queue.js";
21
+ import { BRANCH_PREFIX, SESSION_SETTINGS } from "./worktrees.js";
15
22
  // `conduct project check <name>` (ATK-490): whether a registered project can be conducted, checked
16
23
  // before the first launch instead of found by a failed one. Each check reads what the launch and the
17
24
  // watchers would use, as the project's accounts; only the worktree check writes, and it removes what
@@ -28,6 +35,9 @@ export const CHECKS = [
28
35
  'health',
29
36
  ];
30
37
  const HEALTH_TIMEOUT_MS = 15_000;
38
+ // How the worktree check's summary starts when a skill the profile names is missing after setup:
39
+ // `conduct init` reads it to point at the verify skill's maker.
40
+ export const MISSING_SKILLS = "a new worktree's skills:";
31
41
  const SOURCE_WORDS = {
32
42
  'cli-login': 'CLI login',
33
43
  'machine-token': "the machine's token",
@@ -98,23 +108,26 @@ export async function checkProject(given, project, options) {
98
108
  const deps = {
99
109
  ...given,
100
110
  credentials: {
101
- probe: (provider, name) => {
111
+ ...given.credentials,
112
+ probe: (provider, name, options) => {
102
113
  const key = `${provider}:${name}`;
103
- const known = probes.get(key) ?? given.credentials.probe(provider, name);
114
+ const known = probes.get(key) ?? given.credentials.probe(provider, name, options);
104
115
  probes.set(key, known);
105
116
  return known;
106
117
  },
107
118
  },
108
119
  };
109
- const { profile, result } = profileCheck(project);
120
+ const resolve = deps.resolveProfile ?? ((name) => projectProfile(deps.paths, name));
121
+ const { profile, result } = profileCheck(project, deps.paths, () => resolve(project.name));
110
122
  const results = [{ check: 'profile', ...result }];
123
+ const { clone, worktrees: dir } = projectPaths(deps.paths, project.name);
111
124
  const steps = [
112
125
  ['auth', (p) => authCheck(deps, p)],
113
126
  ['tracker', (p) => trackerCheck(deps, p)],
114
127
  ['code-host', (p) => codeHostCheck(deps, p)],
115
128
  ['ci', (p) => ciCheck(deps, p)],
116
- ['worktree', (p) => worktreeCheck(deps, project.root, p, options)],
117
- ['skills', (p) => skillsCheck(deps, project.root, p)],
129
+ ['worktree', (p) => worktreeCheck(deps, { clone, dir }, p, options)],
130
+ ['skills', (p) => skillsCheck(deps, p, options)],
118
131
  ['ports', (p) => portsCheck(deps, p)],
119
132
  ['health', (p) => healthCheck(deps, p)],
120
133
  ];
@@ -154,50 +167,63 @@ export function differences(a, b, path = '') {
154
167
  // The check of a name no project is registered under.
155
168
  export function noProject(name, names) {
156
169
  return new ConductorError(`no project ${name}`, [
157
- names.length > 0 ? `registered: ${names.join(', ')}` : 'register one with `conduct project add <path>`',
170
+ names.length > 0 ? `registered: ${names.join(', ')}` : 'register one with `conduct project add <url | path>`',
158
171
  ]);
159
172
  }
160
- // The profile on disk against this build's schema and the stored copy the daemon works from. The
161
- // rest of the checks use the file when it reads (the daemon takes it on its next save or start),
162
- // else the stored copy, else nothing.
163
- export function profileCheck(project) {
164
- let disk;
173
+ // The profile as its layers give it now (the machine file over the repo's at origin/<base>) against
174
+ // this build's schema and the stored copy the daemon works from, and each file's `conductor` minimum
175
+ // against the fields it writes (ATK-580). The rest of the checks use the resolved profile when it
176
+ // reads (the daemon takes it on its next start, save or fetch), else the stored copy, else nothing.
177
+ export function profileCheck(project, paths, resolve) {
178
+ if (registeredByCheckout(paths, project)) {
179
+ return {
180
+ profile: null,
181
+ result: fail(`${project.name} is registered by the checkout ${project.clone}, which the conductor no longer works in`, `run \`conduct project add "${project.clone}"\`: it clones the checkout's origin into ${projectPaths(paths, project.name).clone} and keeps the registration`),
182
+ };
183
+ }
184
+ let layered;
165
185
  try {
166
- disk = readProfile(project.root).profile;
186
+ layered = resolve();
167
187
  }
168
188
  catch (error) {
169
189
  return {
170
190
  profile: project.profile,
171
- result: fail(messageOf(error), `fix ${project.profilePath} and check again; until then the daemon keeps its stored copy`, detailsOf(error)),
172
- };
173
- }
174
- if (disk.name !== project.name) {
175
- return {
176
- profile: project.profile ?? disk,
177
- result: fail(`${project.profilePath} renames the project to "${disk.name}"`, `put "name": "${project.name}" back: a project keeps the name it was registered under. Or rename it: \`conduct project remove ${project.name}\`, then \`conduct project add "${project.root}"\``),
191
+ result: fail(messageOf(error), `fix the profile (\`conduct profile ${project.name}\` names its files) and check again; until then the daemon keeps its stored copy`, detailsOf(error)),
178
192
  };
179
193
  }
194
+ const { layers, profile: now } = layered;
195
+ const minimum = combined([layers.machine, layers.repo].flatMap((layer) => layer === null ? [] : [minimumCheck(JSON.stringify(layer.raw), layer.label)]));
196
+ const files = [layers.machine, layers.repo].flatMap((l) => (l === null ? [] : [l.label])).join(' over ');
197
+ const moved = [layers.machine, layers.repo].flatMap((l) => l !== null && Object.hasOwn(l.raw, 'workers') ? [l.label] : []);
198
+ const checked = (outcome) => withMovedWorkers(withMinimum(outcome, minimum), moved);
180
199
  if (project.profile === null) {
181
200
  return {
182
- profile: disk,
183
- result: warn(`${PROFILE_FILE} is valid, but the daemon's stored copy is one this build can't read (${project.problem ?? 'unknown'})`, 'the daemon takes the file when it next starts, or on the next save of the file'),
201
+ profile: now,
202
+ result: checked(warn(`the profile (${files}) is valid, but the daemon's stored copy is one this build can't read (${project.problem ?? 'unknown'})`, 'the daemon takes the profile when it next starts, or after the next save or fetch')),
184
203
  };
185
204
  }
186
- const changed = differences(project.profile, disk);
205
+ const changed = differences(project.profile, now);
187
206
  if (changed.length > 0) {
188
207
  return {
189
- profile: disk,
190
- result: warn(`${PROFILE_FILE} is valid, but ${changed.length === 1 ? 'a field differs' : `${changed.length} fields differ`} from the daemon's stored copy`, 'the daemon takes the file on its next save, or when it next starts', changed),
208
+ profile: now,
209
+ result: checked(warn(`the profile (${files}) is valid, but ${changed.length === 1 ? 'a field differs' : `${changed.length} fields differ`} from the daemon's stored copy`, 'the daemon takes it after the next save of the machine profile or fetch of the clone, or when it next starts', changed)),
191
210
  };
192
211
  }
193
- return { profile: disk, result: ok(`${PROFILE_FILE} is valid (protocol ${PROTOCOL}) and matches the stored copy`) };
212
+ return {
213
+ profile: now,
214
+ result: checked(ok(`the profile (${files}) is valid (protocol ${PROTOCOL}) and matches the stored copy`)),
215
+ };
194
216
  }
195
217
  // Which credential each provider the project uses signs in with (credentials.ts: a project token,
196
218
  // then the machine's token, then the CLI login), and for each that isn't the project's own token, how
197
219
  // to give it one scoped to the project. Advice only: any source that works passes.
198
220
  async function authCheck(deps, profile) {
199
- const used = [...new Set([repoOf(profile).host, TRACKER_API[profile.tracker.kind]])];
200
- const probed = await Promise.all(used.map((provider) => deps.credentials.probe(provider, profile.name)));
221
+ // Azure Pipelines that build a GitHub repo sign in to Azure DevOps too.
222
+ const pipelines = profile.ci.kind === 'ado-pipelines' ? ['ado'] : [];
223
+ const used = [...new Set([repoOf(profile).host, ...pipelines, TRACKER_API[profile.tracker.kind]])];
224
+ // The checked profile's ADO organization, which the stored one may not have yet.
225
+ const organization = adoOrganization(profile);
226
+ const probed = await Promise.all(used.map((provider) => deps.credentials.probe(provider, profile.name, { organization })));
201
227
  const failing = probed.find((p) => p.error !== null);
202
228
  // No source: nothing was found at all (Linear with no key, which has no CLI login).
203
229
  const words = (source) => (source === null ? 'no credential' : SOURCE_WORDS[source]);
@@ -219,8 +245,7 @@ async function authCheck(deps, profile) {
219
245
  const scoped = wide.map((provider) => {
220
246
  const target = `conductor-${profile.name}-${provider}`;
221
247
  const key = provider === 'linear' ? 'linear.credential' : `${provider}.token`;
222
- const user = provider === 'linear' ? 'linear' : 'pat';
223
- return `for ${provider}, ${SCOPES[provider]}: cmdkey /generic:${target} /user:${user} /pass, then set projects.${profile.name}.${key} to "${target}" in config.json`;
248
+ return `for ${provider}, ${SCOPES[provider]}: ${deps.credentials.saveCommand(provider, target)}, then set projects.${profile.name}.${key} to "${target}" in config.json`;
224
249
  });
225
250
  return {
226
251
  details: [...details, ...scoped],
@@ -232,11 +257,12 @@ async function authCheck(deps, profile) {
232
257
  async function ciCheck(deps, profile) {
233
258
  const repo = repoOf(profile);
234
259
  const refusal = ciRefusal(profile, repo);
235
- if (refusal !== null)
236
- return fail(refusal, "set ci to the code host's own: ado-pipelines for Azure DevOps, github-actions for GitHub");
260
+ if (refusal !== null) {
261
+ return fail(refusal, 'set ci to ado-pipelines for an Azure DevOps repo; for a GitHub repo, github-actions, or ado-pipelines with the organization and project whose pipelines build it');
262
+ }
237
263
  let pipelines;
238
264
  try {
239
- pipelines = await deps.hosts(profile.name)(repo).ci.pipelines();
265
+ pipelines = await deps.hosts(profile)(repo).ci.pipelines();
240
266
  }
241
267
  catch (error) {
242
268
  return fail(`${profile.ci.kind} pipelines of ${repoKey(repo)} can't be listed: ${messageOf(error)}`, 'check that the account can read the pipelines', detailsOf(error));
@@ -258,16 +284,24 @@ async function ciCheck(deps, profile) {
258
284
  return fail(problems.join('; '), `name each release's pipeline by its YAML file name, path or name, once; ${repoKey(repo)} has ${known.length > 0 ? known.join(', ') : 'none'}`);
259
285
  }
260
286
  const releases = resolved.length > 0 ? `; releases: ${resolved.join(', ')}` : '; no release pipelines named';
261
- return ok(`${pipelines.length} ${profile.ci.kind} pipelines on ${repoKey(repo)}${releases}`);
287
+ const found = `${pipelines.length} ${profile.ci.kind} pipelines on ${repoKey(repo)}${releases}`;
288
+ // Each release waits on a person at its kind's gate (release-kinds.ts), which `gates` should name.
289
+ const ungated = profile.releases.filter((r) => !profile.gates.includes(RELEASE_KINDS[r.kind].gate));
290
+ if (ungated.length > 0) {
291
+ return warn(`${found}, but gates leaves out ${ungated.map((r) => `release ${r.key}'s ${RELEASE_KINDS[r.kind].gate}`).join(', ')}`, `add ${[...new Set(ungated.map((r) => RELEASE_KINDS[r.kind].gate))].join(', ')} to the profile's gates`);
292
+ }
293
+ return ok(found);
262
294
  }
263
295
  async function codeHostCheck(deps, profile) {
264
296
  const repo = repoOf(profile);
265
- const { account, error } = await deps.credentials.probe(repo.host, profile.name);
297
+ const { account, error } = await deps.credentials.probe(repo.host, profile.name, {
298
+ organization: adoOrganization(profile),
299
+ });
266
300
  if (error !== null)
267
301
  return fail(`${account.label} doesn't answer: ${error}`, `sign in: ${account.command}`);
268
302
  let tip;
269
303
  try {
270
- tip = await deps.hosts(profile.name)(repo).branchTip(profile.baseBranch);
304
+ tip = await deps.hosts(profile)(repo).branchTip(profile.baseBranch);
271
305
  }
272
306
  catch (caught) {
273
307
  if (caught instanceof NotFound) {
@@ -279,6 +313,14 @@ async function codeHostCheck(deps, profile) {
279
313
  return fail(`${repoKey(repo)} has no branch ${profile.baseBranch}`, "set baseBranch to the repo's base");
280
314
  return ok(`${repoKey(repo)} answers as ${account.label}; ${profile.baseBranch} is at ${tip.slice(0, 7)}`);
281
315
  }
316
+ // The layers' minimum checks as one: every file's problems, and the newest version that clears them.
317
+ function combined(checks) {
318
+ let needs = null;
319
+ for (const check of checks)
320
+ if (check.needs !== null && (needs === null || gt(check.needs, needs)))
321
+ needs = check.needs;
322
+ return { needs, problems: checks.flatMap((c) => c.problems) };
323
+ }
282
324
  function detailsOf(error) {
283
325
  return error instanceof ConductorError ? error.details : [];
284
326
  }
@@ -329,61 +371,38 @@ async function portsCheck(deps, profile) {
329
371
  return fail(error.message, error.details[0] ?? '`conduct ports` lists the assignments');
330
372
  }
331
373
  }
332
- function readInstalledSkill(root, name) {
333
- try {
334
- return readFileSync(join(root, '.claude', 'skills', name, 'SKILL.md'), 'utf8');
335
- }
336
- catch {
337
- return null;
338
- }
339
- }
340
- // The main checkout's skills, read-only: the worktree hooks copy them into each worker's worktree.
341
- async function skillsCheck(deps, root, profile) {
342
- const read = deps.readSkill ?? readInstalledSkill;
343
- const { aliases, verify, work } = profile.skills;
374
+ // The skills the profile names, read where a session finds them before any worktree exists: the
375
+ // conductor plugin's (conductor:<skill>), with the work skill's declared protocol. The project's
376
+ // own skills arrive through `setup` in each new worktree, so the worktree check looks for those.
377
+ async function skillsCheck(deps, profile, options) {
378
+ const { verify, work } = profile.skills;
344
379
  const problems = [];
345
- const installed = [];
346
- // The conductor plugin's skills (conductor:<skill>) come with the package, not the checkout: read
347
- // from its plugin and left out of the audit.
348
380
  const plugin = deps.pluginDir ?? pluginSource();
349
- const readAny = (name) => {
350
- const skill = pluginSkill(name);
351
- return skill === null ? read(root, name) : readPluginSkill(plugin, skill);
352
- };
353
- const absent = (name) => pluginSkill(name) === null ? "isn't installed" : "isn't in the conductor plugin";
354
- const workSkill = readAny(work);
355
- if (workSkill === null)
356
- problems.push(`the work skill ${work} ${absent(work)}`);
357
- else {
358
- if (pluginSkill(work) === null)
359
- installed.push(work);
360
- const declared = declaredProtocol(workSkill);
381
+ const fromPlugin = [work, verify].filter((name) => pluginSkill(name) !== null);
382
+ for (const name of fromPlugin) {
383
+ const text = readPluginSkill(plugin, pluginSkill(name) ?? name);
384
+ if (text === null) {
385
+ problems.push(`${name} isn't in the conductor plugin`);
386
+ continue;
387
+ }
388
+ if (name !== work)
389
+ continue;
390
+ const declared = declaredProtocol(text);
361
391
  if (declared === null)
362
392
  problems.push(`${work} declares no worker protocol (protocol: ${PROTOCOL} in its frontmatter)`);
363
393
  else if (declared !== PROTOCOL)
364
394
  problems.push(`${work} speaks worker protocol ${declared}; this conductor speaks ${PROTOCOL}`);
365
395
  }
366
- if (readAny(verify) === null)
367
- problems.push(`the verify skill ${verify} ${absent(verify)}`);
368
- else if (pluginSkill(verify) === null)
369
- installed.push(verify);
370
- // Beside a plugin work skill an alias only names older notes' headings: nothing installs it.
371
- const checkAliases = pluginSkill(work) === null;
372
- const missing = checkAliases ? aliases.filter((alias) => read(root, alias) === null) : [];
373
- // Only the installed ones: a missing one is said once, above.
374
- const stale = installed.length > 0 ? await deps.worktrees.auditSkills(root, installed) : null;
375
- // An audit that couldn't run carries atk's output, JSON over several lines: one line here.
376
- if (stale !== null && stale.length > 0)
377
- problems.push(`atk audit: ${stale.join(', ').replace(/\s+/g, ' ')}`);
378
- if (problems.length > 0) {
379
- return fail(problems.join('; '), `atk install in ${root}, or set skills.work and skills.verify to the installed skills' names`);
380
- }
381
- const audited = stale === null ? '' : ', matching .atk-lock.json';
382
- const summary = `${work} (worker protocol ${PROTOCOL}) and ${verify} are installed${audited}`;
383
- if (missing.length > 0) {
384
- return warn(`${summary}; the alias ${missing.join(', ')} isn't`, 'notes under an alias still count; install it only for launchers that call it (atk install), or drop it from skills.aliases once no item in flight uses it');
385
- }
386
- return ok(`${summary}${checkAliases && aliases.length > 0 ? `, as is ${aliases.join(', ')}` : ''}`);
396
+ if (problems.length > 0)
397
+ return fail(problems.join('; '), 'upgrade the conductor, or set skills.work and skills.verify to skills it has');
398
+ const own = [work, verify].filter((name) => pluginSkill(name) === null);
399
+ const plugged = fromPlugin.length > 0
400
+ ? `${fromPlugin.join(' and ')} ${fromPlugin.length === 1 ? 'comes' : 'come'} with the conductor plugin`
401
+ : '';
402
+ const theirs = own.length === 0
403
+ ? ''
404
+ : `${own.join(' and ')} ${own.length === 1 ? 'comes' : 'come'} from the project's setup: ${options.worktree ? 'the worktree check looked for' : '--no-worktree, so nothing looked for'} ${own.length === 1 ? 'it' : 'them'}`;
405
+ return ok([plugged, theirs].filter((s) => s !== '').join('; '));
387
406
  }
388
407
  // A timestamp safe in a worktree and branch name.
389
408
  // To the millisecond, so two checks started together get worktrees of their own.
@@ -392,7 +411,9 @@ function stamp(at) {
392
411
  }
393
412
  async function trackerCheck(deps, profile) {
394
413
  const { tracker } = profile;
395
- const { account, error } = await deps.credentials.probe(TRACKER_API[tracker.kind], profile.name);
414
+ const { account, error } = await deps.credentials.probe(TRACKER_API[tracker.kind], profile.name, {
415
+ organization: adoOrganization(profile),
416
+ });
396
417
  if (error !== null)
397
418
  return fail(`${account.label} doesn't answer: ${error}`, `sign in: ${account.command}`);
398
419
  const where = tracker.kind === 'linear'
@@ -416,37 +437,80 @@ async function trackerCheck(deps, profile) {
416
437
  const items = `${snapshot.issues.length} open ${snapshot.issues.length === 1 ? 'item' : 'items'}`;
417
438
  if (tracker.kind !== 'linear')
418
439
  return ok(`${where} lists ${items}, as ${account.label}`);
419
- // Linear filters by the team's key, so a key no team has reads as a team with nothing.
420
- if (snapshot.projects.length === 0 && snapshot.issues.length === 0) {
421
- return fail(`${where} has no projects and no open items`, `check tracker.team: "${tracker.team}" must be the key of a Linear team ${account.label} can see`);
422
- }
423
- if (snapshot.areaLabels.length === 0) {
424
- return warn(`${where} lists ${items}, but no label sits under the Area group "${tracker.areaLabelGroup}"`, "check tracker.areaLabelGroup: the scheduler keeps one item per Area, and with no Areas it can't tell them apart");
425
- }
440
+ const queue = labelQueue(tracker);
441
+ // Linear filters by the team's key, so a key no team has reads as a team with nothing. A label
442
+ // queue reads no projects.
443
+ if ((queue !== null || snapshot.projects.length === 0) && snapshot.issues.length === 0) {
444
+ return fail(`${where} has ${queue ? '' : 'no projects and '}no open items`, `check tracker.team: "${tracker.team}" must be the key of a Linear team ${account.label} can see`);
445
+ }
446
+ // Nothing conducted first: it matters more than the Areas.
447
+ const queued = queue ? snapshot.issues.filter((i) => i.trackerProject === queue.name).length : 0;
426
448
  const prioritized = snapshot.projects.filter((p) => p.priority !== null && p.priority > 0).length;
427
- if (prioritized === 0) {
449
+ if (queue && queued === 0) {
450
+ return warn(`${where} lists ${items}, but none carries the queue label ${queue.label}, so nothing is conducted`, `label the Linear issues to conduct ${queue.label}, or check tracker.queue.label`);
451
+ }
452
+ if (!queue && prioritized === 0) {
428
453
  return warn(`${where} lists ${items}, but none of its projects has a priority, so nothing is conducted`, 'give the Linear projects to conduct a priority');
429
454
  }
430
- return ok(`${where} lists ${items}, and ${prioritized} of its projects have a priority, as ${account.label}`);
455
+ // No Area group means the team has no Areas (tracker.areaLabelGroup: null).
456
+ if (tracker.areaLabelGroup !== null && snapshot.areaLabels.length === 0) {
457
+ return warn(`${where} lists ${items}, but no label sits under the Area group "${tracker.areaLabelGroup}"`, "check tracker.areaLabelGroup: the scheduler keeps one item per Area, and with no Areas it can't tell them apart (null if the team has none)");
458
+ }
459
+ return ok(queue
460
+ ? `${where} lists ${items}, and ${queued} carry the queue label ${queue.label}, as ${account.label}`
461
+ : `${where} lists ${items}, and ${prioritized} of its projects have a priority, as ${account.label}`);
462
+ }
463
+ // A profile that writes a field newer than its `conductor` minimum reads here, but an older conductor
464
+ // would refuse it with the fields it doesn't know instead of the one line that says to upgrade: a
465
+ // warn, beside whatever else the profile check found.
466
+ function withMinimum(outcome, { needs, problems }) {
467
+ if (problems.length === 0)
468
+ return outcome;
469
+ const below = `its "conductor" minimum is below ${problems.length === 1 ? 'a field' : `${problems.length} fields`} it writes`;
470
+ const fix = needs === null
471
+ ? "the conductor's profile-fields.ts records no version for these fields: file it against the conductor"
472
+ : `raise "conductor" to ${needs}, the oldest conductor that reads every field the file writes`;
473
+ return {
474
+ details: [...outcome.details, ...problems],
475
+ fix: outcome.fix === null ? fix : `${outcome.fix}; ${fix}`,
476
+ status: 'warn',
477
+ summary: outcome.status === 'ok' ? `${outcome.summary}, but ${below}` : `${outcome.summary}; ${below}`,
478
+ };
479
+ }
480
+ // A profile file that still sets `workers`, which moved to the machine's config.json (ATK-529): it
481
+ // is read and ignored, so a warn, beside whatever else the profile check found.
482
+ function withMovedWorkers(outcome, files) {
483
+ if (files.length === 0)
484
+ return outcome;
485
+ const moved = `${files.join(' and ')} ${files.length === 1 ? 'sets' : 'set'} "workers", which moved to the machine's config.json and is ignored here`;
486
+ const fix = 'set "workers": { "tab": true } in ~/.conductor/config.json on each machine that wants a tab per launch, and drop "workers" from the profile';
487
+ return {
488
+ details: outcome.details,
489
+ fix: outcome.fix === null ? fix : `${outcome.fix}; ${fix}`,
490
+ status: 'warn',
491
+ summary: outcome.status === 'ok' ? `${outcome.summary}, but ${moved}` : `${outcome.summary}; ${moved}`,
492
+ };
431
493
  }
432
494
  // The launch's worktree stages on a throwaway worktree (manager.ts launchWorker): `git worktree add`
433
495
  // from origin/<base>, the local files and setup, with ports as the broker would give them, then the
434
- // skills check. Whatever it made is removed, whichever way it went.
435
- async function worktreeCheck(deps, root, profile, options) {
496
+ // skills check and the trust probe a launch's `claude --bg` meets (ATK-571). Whatever it made is
497
+ // removed, whichever way it went.
498
+ async function worktreeCheck(deps, { clone, dir }, profile, options) {
436
499
  if (!options.worktree)
437
500
  return skip('--no-worktree');
438
501
  const name = `conduct-check-${stamp((deps.now ?? (() => new Date()))())}`;
439
- const left = worktreePath(root, name);
502
+ const left = join(dir, name);
440
503
  // The ports check reports a pool with too few free; setup then runs without them.
441
504
  const env = portEnv(await deps.ports.previewPorts(profile.ports).catch(() => ({})));
442
505
  let outcome;
443
506
  try {
444
507
  const path = await deps.worktrees.create({
445
508
  base: profile.baseBranch,
509
+ clone,
446
510
  env: { ...env, CONDUCTOR_ITEM: name, CONDUCTOR_PROJECT: profile.name, CONDUCTOR_WORKTREE: left },
447
511
  ...(profile.localFilesFrom === undefined ? {} : { localFilesFrom: profile.localFilesFrom }),
448
512
  name,
449
- root,
513
+ path: left,
450
514
  sessionEnv: env,
451
515
  setup: profile.setup,
452
516
  });
@@ -454,12 +518,29 @@ async function worktreeCheck(deps, root, profile, options) {
454
518
  const problem = deps.worktrees.missingSkills(path, projectSkills(skills));
455
519
  const ignored = await (deps.ignores ?? gitIgnores)(path, SESSION_SETTINGS);
456
520
  const made = `created ${name} from origin/${profile.baseBranch}${profile.setup.length > 0 ? ` and ran its ${profile.setup.length} setup ${profile.setup.length === 1 ? 'command' : 'commands'}` : ''}, then removed it`;
457
- outcome =
458
- problem !== null
459
- ? fail(`a new worktree's skills: ${problem}`, "add what installs them to the profile's setup (ATK's runs atk install), or install them in ~/.claude/skills")
460
- : !ignored && Object.keys(env).length > 0
461
- ? warn(`${made}, but git doesn't ignore ${SESSION_SETTINGS}, where a worker's ports go`, `add ${SESSION_SETTINGS.split('\\').join('/')} to .gitignore, so a worker doesn't take the file for work of its own`)
462
- : ok(`${made}; its skills are there`);
521
+ if (problem !== null) {
522
+ outcome = fail(`${MISSING_SKILLS} ${problem}`, "add what installs them to the profile's setup, or install them in ~/.claude/skills");
523
+ }
524
+ else {
525
+ // Before the remove below: the probe's session is gone before its directory is.
526
+ let trust;
527
+ try {
528
+ trust = await deps.claude.trusts(path, name);
529
+ }
530
+ catch (error) {
531
+ trust = { error };
532
+ }
533
+ outcome =
534
+ 'error' in trust
535
+ ? fail(`claude --bg couldn't start a session in a new worktree: ${messageOf(trust.error)}`, 'a launch fails the same way: run `claude --bg` in a worktree of the clone to see why', detailsOf(trust.error))
536
+ : !trust.trusted
537
+ ? fail(`Claude Code doesn't trust ${clone}, so no worker can start in its worktrees`, `${trustStep(clone)}, then check again`)
538
+ : trust.removeError !== null
539
+ ? warn(`${made}, but the trust probe's idle session ${trust.session} is still there`, `remove it: claude rm ${trust.session}`, [trust.removeError])
540
+ : !ignored && Object.keys(env).length > 0
541
+ ? warn(`${made}, but git doesn't ignore ${SESSION_SETTINGS}, where a worker's ports go`, `add ${SESSION_SETTINGS.split('\\').join('/')} to .gitignore, so a worker doesn't take the file for work of its own`)
542
+ : ok(`${made}; its skills are there, and Claude Code trusts it`);
543
+ }
463
544
  }
464
545
  catch (error) {
465
546
  outcome = fail(`a new worktree couldn't be made: ${messageOf(error)}`, "check the profile's baseBranch, localFilesFrom and setup; the failing step's output is above", detailsOf(error));
@@ -467,10 +548,15 @@ async function worktreeCheck(deps, root, profile, options) {
467
548
  // A create that failed part way can leave its directory or branch behind; with neither, this
468
549
  // removes nothing.
469
550
  try {
470
- await deps.worktrees.remove(root, left, { deleteBranch: true });
551
+ await deps.worktrees.remove(left, { deleteBranch: true, repo: clone });
471
552
  }
472
553
  catch (error) {
473
- return fail(`${left} is still there: ${messageOf(error)}`, `remove it by hand: delete the directory, then git -C ${root} worktree prune and git -C ${root} branch -D ${BRANCH_PREFIX}${name}`, [`before that: ${outcome.status} ${outcome.summary}`, ...detailsOf(error)]);
554
+ return fail(`${left} is still there: ${messageOf(error)}`, `remove it by hand: delete the directory, then git -C ${clone} worktree prune and git -C ${clone} branch -D ${BRANCH_PREFIX}${name}`, [
555
+ `before that: ${outcome.status} ${outcome.summary}`,
556
+ ...outcome.details,
557
+ ...(outcome.fix === null ? [] : [`its fix: ${outcome.fix}`]),
558
+ ...detailsOf(error),
559
+ ]);
474
560
  }
475
561
  return outcome;
476
562
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-check.js","sourceRoot":"","sources":["../src/project-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-check.js","sourceRoot":"","sources":["../src/project-check.ts"],"names":[],"mappings":"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"}