@detergent-software/conductor 3.0.0-dev.3 → 3.0.0-dev.31

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 (175) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/README.md +203 -64
  3. package/build/brief-cli.js +1 -1
  4. package/build/brief-cli.js.map +1 -1
  5. package/build/broker-cli.js +24 -25
  6. package/build/broker-cli.js.map +1 -1
  7. package/build/broker.js +66 -92
  8. package/build/broker.js.map +1 -1
  9. package/build/claude.js +50 -7
  10. package/build/claude.js.map +1 -1
  11. package/build/cli.js +143 -63
  12. package/build/cli.js.map +1 -1
  13. package/build/clones.js +92 -0
  14. package/build/clones.js.map +1 -0
  15. package/build/code-host-cli.js +126 -37
  16. package/build/code-host-cli.js.map +1 -1
  17. package/build/code-host-service.js +13 -1
  18. package/build/code-host-service.js.map +1 -1
  19. package/build/code-host.js +82 -16
  20. package/build/code-host.js.map +1 -1
  21. package/build/conditions.js +27 -10
  22. package/build/conditions.js.map +1 -1
  23. package/build/config.js +58 -14
  24. package/build/config.js.map +1 -1
  25. package/build/console.js +40 -24
  26. package/build/console.js.map +1 -1
  27. package/build/credentials.js +47 -34
  28. package/build/credentials.js.map +1 -1
  29. package/build/daemon.js +45 -25
  30. package/build/daemon.js.map +1 -1
  31. package/build/help.js +179 -42
  32. package/build/help.js.map +1 -1
  33. package/build/history.js +4 -2
  34. package/build/history.js.map +1 -1
  35. package/build/host/credential-manager.js +109 -0
  36. package/build/host/credential-manager.js.map +1 -0
  37. package/build/host/keychain.js +44 -0
  38. package/build/host/keychain.js.map +1 -0
  39. package/build/host/launchd.js +118 -0
  40. package/build/host/launchd.js.map +1 -0
  41. package/build/host/libsecret.js +40 -0
  42. package/build/host/libsecret.js.map +1 -0
  43. package/build/host/macos-terminal.js +63 -0
  44. package/build/host/macos-terminal.js.map +1 -0
  45. package/build/host/platform.js +4 -0
  46. package/build/host/platform.js.map +1 -0
  47. package/build/host/secrets.js +46 -0
  48. package/build/host/secrets.js.map +1 -0
  49. package/build/host/shell.js +26 -0
  50. package/build/host/shell.js.map +1 -0
  51. package/build/host/startup.js +26 -0
  52. package/build/host/startup.js.map +1 -0
  53. package/build/host/systemd.js +91 -0
  54. package/build/host/systemd.js.map +1 -0
  55. package/build/host/task-scheduler.js +78 -0
  56. package/build/host/task-scheduler.js.map +1 -0
  57. package/build/host/terminal.js +46 -0
  58. package/build/host/terminal.js.map +1 -0
  59. package/build/host/tmux.js +39 -0
  60. package/build/host/tmux.js.map +1 -0
  61. package/build/host/windows-terminal.js +46 -0
  62. package/build/host/windows-terminal.js.map +1 -0
  63. package/build/in-process.js +6 -5
  64. package/build/in-process.js.map +1 -1
  65. package/build/inbox.js +63 -17
  66. package/build/inbox.js.map +1 -1
  67. package/build/init.js +510 -0
  68. package/build/init.js.map +1 -0
  69. package/build/landing.js +86 -7
  70. package/build/landing.js.map +1 -1
  71. package/build/lib/providers/ado/code-host.js +5 -1
  72. package/build/lib/providers/ado/code-host.js.map +1 -1
  73. package/build/lib/providers/ado/pipelines.js +138 -26
  74. package/build/lib/providers/ado/pipelines.js.map +1 -1
  75. package/build/lib/providers/ado/trigger.js +5 -0
  76. package/build/lib/providers/ado/trigger.js.map +1 -1
  77. package/build/lib/providers/ado/writes.js +10 -1
  78. package/build/lib/providers/ado/writes.js.map +1 -1
  79. package/build/lib/providers/github/actions.js +90 -3
  80. package/build/lib/providers/github/actions.js.map +1 -1
  81. package/build/lib/providers/github/code-host.js +2 -0
  82. package/build/lib/providers/github/code-host.js.map +1 -1
  83. package/build/lib/providers/github/writes.js +24 -2
  84. package/build/lib/providers/github/writes.js.map +1 -1
  85. package/build/lib/providers/index.js +4 -3
  86. package/build/lib/providers/index.js.map +1 -1
  87. package/build/lib/providers/npm/stage.js +28 -5
  88. package/build/lib/providers/npm/stage.js.map +1 -1
  89. package/build/lib/providers/timing.js +10 -0
  90. package/build/lib/providers/timing.js.map +1 -0
  91. package/build/lib/providers/verdicts/pr.js +47 -6
  92. package/build/lib/providers/verdicts/pr.js.map +1 -1
  93. package/build/lib/providers/verdicts/runs.js +12 -2
  94. package/build/lib/providers/verdicts/runs.js.map +1 -1
  95. package/build/local-files.js +95 -0
  96. package/build/local-files.js.map +1 -0
  97. package/build/manager.js +171 -47
  98. package/build/manager.js.map +1 -1
  99. package/build/note.js +1 -1
  100. package/build/note.js.map +1 -1
  101. package/build/notify.js +101 -39
  102. package/build/notify.js.map +1 -1
  103. package/build/npm-reads.js +323 -0
  104. package/build/npm-reads.js.map +1 -0
  105. package/build/paths.js +44 -1
  106. package/build/paths.js.map +1 -1
  107. package/build/plugin.js +10 -0
  108. package/build/plugin.js.map +1 -1
  109. package/build/profile-fields.js +151 -0
  110. package/build/profile-fields.js.map +1 -0
  111. package/build/profile-layers.js +264 -0
  112. package/build/profile-layers.js.map +1 -0
  113. package/build/profile.js +93 -50
  114. package/build/profile.js.map +1 -1
  115. package/build/project-check-cli.js +19 -11
  116. package/build/project-check-cli.js.map +1 -1
  117. package/build/project-check.js +206 -108
  118. package/build/project-check.js.map +1 -1
  119. package/build/pushover.js +5 -5
  120. package/build/pushover.js.map +1 -1
  121. package/build/registry.js +195 -36
  122. package/build/registry.js.map +1 -1
  123. package/build/release-kinds.js +34 -0
  124. package/build/release-kinds.js.map +1 -0
  125. package/build/rule-actions.js +4 -2
  126. package/build/rule-actions.js.map +1 -1
  127. package/build/rules-service.js +101 -44
  128. package/build/rules-service.js.map +1 -1
  129. package/build/rules.js +15 -15
  130. package/build/rules.js.map +1 -1
  131. package/build/run.js +20 -7
  132. package/build/run.js.map +1 -1
  133. package/build/runs.js +217 -67
  134. package/build/runs.js.map +1 -1
  135. package/build/scheduler.js +11 -1
  136. package/build/scheduler.js.map +1 -1
  137. package/build/server.js +6 -25
  138. package/build/server.js.map +1 -1
  139. package/build/spend.js +4 -0
  140. package/build/spend.js.map +1 -1
  141. package/build/store.js +86 -25
  142. package/build/store.js.map +1 -1
  143. package/build/timeline.js +104 -0
  144. package/build/timeline.js.map +1 -0
  145. package/build/tracker-reads-cli.js +4 -5
  146. package/build/tracker-reads-cli.js.map +1 -1
  147. package/build/train-cli.js +6 -5
  148. package/build/train-cli.js.map +1 -1
  149. package/build/upgrade.js +8 -9
  150. package/build/upgrade.js.map +1 -1
  151. package/build/wait.js +9 -9
  152. package/build/wait.js.map +1 -1
  153. package/build/watchers/ado.js +42 -18
  154. package/build/watchers/ado.js.map +1 -1
  155. package/build/watchers/github.js +19 -4
  156. package/build/watchers/github.js.map +1 -1
  157. package/build/watchers/index.js +2 -2
  158. package/build/watchers/index.js.map +1 -1
  159. package/build/watchers/npm.js +6 -4
  160. package/build/watchers/npm.js.map +1 -1
  161. package/build/webhook.js +80 -0
  162. package/build/webhook.js.map +1 -0
  163. package/build/worktrees.js +199 -92
  164. package/build/worktrees.js.map +1 -1
  165. package/package.json +61 -61
  166. package/plugin/skills/conductor-console/SKILL.md +4 -4
  167. package/plugin/skills/work-item/SKILL.md +13 -11
  168. package/build/checkout-sync.js +0 -249
  169. package/build/checkout-sync.js.map +0 -1
  170. package/build/credential.js +0 -66
  171. package/build/credential.js.map +0 -1
  172. package/build/startup.js +0 -92
  173. package/build/startup.js.map +0 -1
  174. package/build/tab.js +0 -32
  175. package/build/tab.js.map +0 -1
package/build/console.js CHANGED
@@ -67,6 +67,32 @@ export async function claimConsole(paths, force) {
67
67
  export function consoleArgs(pluginDir) {
68
68
  return ['--plugin-dir', pluginDir, '-n', 'conductor', '--permission-mode', 'auto', '--', `/${CONSOLE_SKILL}`];
69
69
  }
70
+ // What a Claude Code session gives its tool shells. A `claude` that inherits them runs as that
71
+ // session on the peer network whatever its -n says, so a `! conduct console` typed in a worker's tab
72
+ // made a console ListAgents named after the worker (ATK-559). User settings such as
73
+ // CLAUDE_CONFIG_DIR aren't in it.
74
+ const CLAUDE_SESSION_ENV = [
75
+ 'AI_AGENT',
76
+ 'CLAUDE_CODE_CHILD_SESSION',
77
+ 'CLAUDE_CODE_ENTRYPOINT',
78
+ 'CLAUDE_CODE_EXECPATH',
79
+ 'CLAUDE_CODE_MESSAGING_SOCKET',
80
+ 'CLAUDE_CODE_MESSAGING_TOKEN',
81
+ 'CLAUDE_CODE_SESSION_ATTENDED',
82
+ 'CLAUDE_CODE_SESSION_ID',
83
+ 'CLAUDE_EFFORT',
84
+ 'CLAUDE_JOB_DIR',
85
+ 'CLAUDE_PID',
86
+ 'CLAUDECODE',
87
+ ];
88
+ // The console's environment: the caller's, without another session's identity, and with
89
+ // CONDUCTOR_CONSOLE=1, which the conductor mod needs.
90
+ export function consoleEnv(env) {
91
+ const own = { ...env };
92
+ for (const key of CLAUDE_SESSION_ENV)
93
+ delete own[key];
94
+ return { ...own, CONDUCTOR_CONSOLE: '1' };
95
+ }
70
96
  export function consoleEscalations({ inbox, now = () => new Date(), store, }) {
71
97
  const since = () => new Date(now().getTime() - ESCALATION_DAYS * 24 * 60 * 60_000).toISOString();
72
98
  const open = () => store.openEscalations(since()).map(toEscalation);
@@ -127,30 +153,20 @@ export function consoleGate({ graceMs = CONSOLE_START_GRACE_MS, now = () => Date
127
153
  },
128
154
  };
129
155
  }
130
- // wt.exe's arguments for the console's tab: in the console's folder, running this CLI's
131
- // `console --here`, which starts `claude` with CONDUCTOR_CONSOLE=1 (wt.exe splits a command on `;`,
132
- // so the tab can't set the variable itself). --force: the command that opens the tab has claimed
133
- // the start already.
134
- export function consoleTabArgs(dir, nodePath, cliPath) {
135
- const split = [dir, nodePath, cliPath].find((part) => part.includes(';'));
136
- if (split !== undefined)
137
- throw new ConductorError(`a console tab can't take a path with ";": ${split}`, [
138
- 'run `conduct console --here` in a terminal instead',
139
- ]);
140
- return [
141
- '-w',
142
- CONSOLE_WINDOW,
143
- 'new-tab',
144
- '--title',
145
- 'conductor console',
146
- '-d',
147
- dir,
148
- nodePath,
149
- cliPath,
150
- 'console',
151
- '--here',
152
- '--force',
153
- ];
156
+ // The console's tab: in the console's folder, running this CLI's `console --here`, which starts
157
+ // `claude` with CONDUCTOR_CONSOLE=1. --force: the command that opens the tab has claimed the start
158
+ // already. A terminal that starts tabs in an environment of its own (macOS, tmux) gets
159
+ // CONDUCTOR_HOME, so the console serves the same daemon as the command that opened it.
160
+ export function consoleTab(dir, nodePath, cliPath, env) {
161
+ const home = env.CONDUCTOR_HOME;
162
+ return {
163
+ command: [nodePath, cliPath, 'console', '--here', '--force'],
164
+ cwd: dir,
165
+ env: home ? { CONDUCTOR_HOME: home } : {},
166
+ hold: false,
167
+ title: 'conductor console',
168
+ window: CONSOLE_WINDOW,
169
+ };
154
170
  }
155
171
  // `conduct escalations`: each open one with its age, item and rule, then the ask.
156
172
  export function escalationLines(escalations, now) {
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { credentialSaved, readCredential as readWindowsCredential, } from "./credential.js";
2
1
  import { ConductorError } from "./errors.js";
3
- import { adoBasic, adoOrgUrl, NotFound } from "./lib/providers/index.js";
2
+ import { secretStore } from "./host/secrets.js";
3
+ import { adoBasic, adoOrgUrl, NotFound, ProviderError } from "./lib/providers/index.js";
4
4
  import { outputOf, run as runCommand } from "./run.js";
5
5
  // Each project's credentials (design note v2, section 8): every provider takes the first credential
6
6
  // it finds, least privilege first.
7
- // 1. project-token: a token scoped to the project, in the generic credential that machine config
8
- // names (`projects.<name>.ado.token`, `github.token`, `linear.credential`);
9
- // 2. machine-token: the machine's own token, from a conductor-only env var or generic credential
7
+ // 1. project-token: a token scoped to the project, in the machine's secret store (host/secrets.ts)
8
+ // under the credential that machine config names (`projects.<name>.ado.token`, `github.token`,
9
+ // `linear.credential`);
10
+ // 2. machine-token: the machine's own token, from a conductor-only env var or the store
10
11
  // (MACHINE_TOKENS), so another tool's env never changes what the conductor signs in as;
11
12
  // 3. cli-login: `az` (the project's tenant, else the default account) or `gh` (the project's user,
12
13
  // else the active account), last because it usually carries the widest permissions. Linear has
@@ -21,8 +22,8 @@ const ADO_RESOURCE = '499b84ac-1321-427f-aa17-267ca6975798';
21
22
  // An az token lasts about an hour, a gh token until it is revoked; both are asked again well before,
22
23
  // and a token's credential is read again as often, so a replaced or removed one is seen.
23
24
  const TOKEN_MAX_AGE_MS = 20 * 60_000;
24
- export const LINEAR_CREDENTIAL = 'atk-conductor-linear';
25
- // The machine's own token for each provider: the env vars in order, then the generic credential.
25
+ export const LINEAR_CREDENTIAL = 'conductor-linear';
26
+ // The machine's own token for each provider: the env vars in order, then the store's credential.
26
27
  export const MACHINE_TOKENS = {
27
28
  ado: { credential: 'conductor-ado', env: ['CONDUCTOR_ADO_TOKEN'] },
28
29
  github: { credential: 'conductor-github', env: ['CONDUCTOR_GITHUB_TOKEN'] },
@@ -53,11 +54,11 @@ export class LoginNeeded extends ConductorError {
53
54
  export function loginText(account, project) {
54
55
  return `${account.provider} login lost${project === null ? '' : ` for ${project}`} (${account.label})`;
55
56
  }
56
- // The generic credential the machine's own token is saved under. For Linear,
57
- // ATK_CONDUCT_LINEAR_CREDENTIAL names another, as in conduct-atk.
57
+ // The credential the machine's own token is saved under. For Linear, CONDUCTOR_LINEAR_CREDENTIAL
58
+ // names another.
58
59
  export function machineTarget(provider, env) {
59
60
  if (provider === 'linear')
60
- return env.ATK_CONDUCT_LINEAR_CREDENTIAL?.trim() || LINEAR_CREDENTIAL;
61
+ return env.CONDUCTOR_LINEAR_CREDENTIAL?.trim() || LINEAR_CREDENTIAL;
61
62
  return MACHINE_TOKENS[provider].credential;
62
63
  }
63
64
  export function providerCredentials(deps) {
@@ -65,9 +66,7 @@ export function providerCredentials(deps) {
65
66
  const fetcher = deps.fetch ?? globalThis.fetch;
66
67
  const now = deps.now ?? Date.now;
67
68
  const exec = deps.run ?? runCommand;
68
- const read = deps.readCredential ?? readWindowsCredential;
69
- // A seam that reads credentials but checks none is asked for every target.
70
- const isSaved = deps.credentialSaved ?? (deps.readCredential ? async () => 'unknown' : credentialSaved);
69
+ const secrets = deps.secrets ?? secretStore();
71
70
  const lostNow = new Map();
72
71
  // Each identity's authorization (ADO's header value, gh's token, Linear's key) and the source it
73
72
  // came from, shared by every project with that identity. The calls that read them name their own
@@ -103,7 +102,7 @@ export function providerCredentials(deps) {
103
102
  const entry = project === null ? undefined : deps.projects[project];
104
103
  const target = provider === 'linear' ? entry?.linear?.credential : entry?.[provider]?.token;
105
104
  if (target !== undefined)
106
- return tokenAccount(provider, target, target, 'project-token');
105
+ return tokenAccount(secrets, provider, target, target, 'project-token');
107
106
  switch (provider) {
108
107
  case 'ado': {
109
108
  const tenant = entry?.ado?.tenant ?? null;
@@ -126,7 +125,7 @@ export function providerCredentials(deps) {
126
125
  case 'linear': {
127
126
  const shown = machineTarget('linear', env);
128
127
  return {
129
- command: `cmdkey /generic:${shown} /user:linear /pass`,
128
+ command: secrets.saveCommand(shown, 'linear'),
130
129
  id: MACHINE,
131
130
  label: `${MACHINE_TOKENS.linear.env.join(', ')} or credential ${shown}`,
132
131
  provider,
@@ -146,7 +145,7 @@ export function providerCredentials(deps) {
146
145
  const base = configured(provider, project);
147
146
  const as = (found) => ({ ...found, id: base.id });
148
147
  if (base.source === 'project-token') {
149
- const got = await read(base.id, env);
148
+ const got = await secrets.read(base.id, env);
150
149
  if (!got.found)
151
150
  throw failed(base, project, got.reason);
152
151
  return { account: base, token: got.credential.secret };
@@ -165,12 +164,11 @@ export function providerCredentials(deps) {
165
164
  }
166
165
  }
167
166
  // The machine's credential is optional: one that isn't saved, or can't be read, is passed over
168
- // (the cheap cmdkey check first, so the usual case starts no PowerShell). Linear has nothing
169
- // after it.
167
+ // (the cheap check first: on Windows it starts no PowerShell). Linear has nothing after it.
170
168
  const target = machineTarget(provider, env);
171
- const stored = as(tokenAccount(provider, target, MACHINE, 'machine-token'));
172
- const saved = await isSaved(target, env);
173
- const got = saved === 'missing' ? null : await read(target, env);
169
+ const stored = as(tokenAccount(secrets, provider, target, MACHINE, 'machine-token'));
170
+ const saved = await secrets.saved(target, env);
171
+ const got = saved === 'missing' ? null : await secrets.read(target, env);
174
172
  if (got?.found)
175
173
  return { account: stored, token: got.credential.secret };
176
174
  if (provider === 'linear') {
@@ -284,12 +282,23 @@ export function providerCredentials(deps) {
284
282
  };
285
283
  const gh = (project) => (path) => ghApi(project, path);
286
284
  const ghWrite = (project) => (method, path, body) => ghApi(project, path, { body, method });
287
- // Another gh command as the project's credential, such as `run view --log-failed`; its output.
285
+ // Another gh command as the project's credential, such as `run view --log-failed`; its output. A
286
+ // 404 is NotFound. Any other failure is a ProviderError, transient when asking again may help (a
287
+ // timeout or kill, a 5xx, a rate limit, the network), so a caller can tell a log GitHub won't give
288
+ // yet ("still in progress") from one worth asking for again. A gh that didn't start is lasting.
288
289
  const ghRun = (project) => async (args) => {
289
290
  const { result, said } = await ghExec(project, args, { timeoutMs: 120_000 });
290
- if (result.code !== 0)
291
- throw new Error(`gh ${args.join(' ')} failed: ${said}`);
292
- return result.stdout;
291
+ if (result.code === 0)
292
+ return result.stdout;
293
+ const asked = `gh ${args.join(' ')}`;
294
+ if (/HTTP 404/.test(said))
295
+ throw new NotFound(`${asked} failed: ${said}`);
296
+ const http = /HTTP (\d{3})/.exec(said)?.[1];
297
+ const status = http === undefined ? null : Number(http);
298
+ const transient = (result.code === null && !/ENOENT/.test(result.error ?? '')) ||
299
+ (status !== null && (status >= 500 || status === 429)) ||
300
+ /rate limit|abuse detection|error connecting|connection (?:reset|refused)|no such host|timeout|deadline exceeded|unexpected EOF/i.test(said);
301
+ throw new ProviderError(`${asked} failed: ${said}`, { status, transient });
293
302
  };
294
303
  // The project's Linear key, kept per identity. The key is only returned: never logged, stored or
295
304
  // put on a command line.
@@ -318,10 +327,10 @@ export function providerCredentials(deps) {
318
327
  },
319
328
  worked: () => worked(account('linear', project), project),
320
329
  });
321
- const probe = async (provider, project) => {
330
+ const probe = async (provider, project, { organization } = {}) => {
322
331
  try {
323
332
  if (provider === 'ado')
324
- await probeAdo(project);
333
+ await probeAdo(project, organization);
325
334
  else if (provider === 'github')
326
335
  await ghApi(project, 'user', { probing: true });
327
336
  else
@@ -337,14 +346,14 @@ export function providerCredentials(deps) {
337
346
  };
338
347
  // A fresh ADO credential. az vouches for its own token; a token is asked who it is on the project's
339
348
  // organization, which is the only way to learn ADO takes it (it answers 401, or 203 with its
340
- // sign-in page, when it doesn't).
341
- const probeAdo = async (project) => {
349
+ // sign-in page, when it doesn't). A check of a profile not stored yet names its organization.
350
+ const probeAdo = async (project, named) => {
342
351
  adoTokens.delete(account('ado', project).id);
343
352
  const value = await adoToken(project, true, true);
344
353
  const which = account('ado', project);
345
354
  if (which.source === 'cli-login')
346
355
  return;
347
- const organization = deps.adoOrganization?.(project) ?? null;
356
+ const organization = named ?? deps.adoOrganization?.(project) ?? null;
348
357
  if (organization === null)
349
358
  throw new Error('no Azure DevOps organization to ask whether it takes the token');
350
359
  const response = await fetcher(adoOrgUrl({ organization }, 'connectionData', '7.1-preview'), {
@@ -383,18 +392,22 @@ export function providerCredentials(deps) {
383
392
  linear: (project) => linear(project),
384
393
  lost: () => [...lostNow.values()],
385
394
  probe,
395
+ saveCommand: (provider, target) => secrets.saveCommand(target, tokenUser(provider)),
386
396
  };
387
397
  }
388
- // The account of a token in the generic credential `target`.
389
- function tokenAccount(provider, target, id, source) {
390
- const user = provider === 'linear' ? 'linear' : 'pat';
398
+ // The account of a token in the store's credential `target`.
399
+ function tokenAccount(secrets, provider, target, id, source) {
391
400
  const whose = source === 'project-token' ? 'project token' : 'machine token';
392
401
  return {
393
- command: `cmdkey /generic:${target} /user:${user} /pass`,
402
+ command: secrets.saveCommand(target, tokenUser(provider)),
394
403
  id,
395
404
  label: `${whose} in credential ${target}`,
396
405
  provider,
397
406
  source,
398
407
  };
399
408
  }
409
+ // The user name a token's credential is saved with.
410
+ function tokenUser(provider) {
411
+ return provider === 'linear' ? 'linear' : 'pat';
412
+ }
400
413
  //# sourceMappingURL=credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
package/build/daemon.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
2
2
  import { briefPrs, briefService, linearBriefs } from "./brief.js";
3
3
  import { broker } from "./broker.js";
4
- import { checkoutSync, gitPort } from "./checkout-sync.js";
5
4
  import { claudeCli } from "./claude.js";
6
5
  import { ping } from "./client.js";
6
+ import { clones } from "./clones.js";
7
7
  import { codeHostService } from "./code-host-service.js";
8
8
  import { projectHosts, prStatus } from "./code-host.js";
9
9
  import { TRACKER_API } from "./conditions.js";
@@ -12,6 +12,7 @@ import { consoleEscalations, unattendedEscalations } from "./console.js";
12
12
  import { providerCredentials } from "./credentials.js";
13
13
  import { ConductorError } from "./errors.js";
14
14
  import { followUpService } from "./follow-ups.js";
15
+ import { terminal, workerTabs } from "./host/terminal.js";
15
16
  import { storeOrganizations } from "./in-process.js";
16
17
  import { inboxService } from "./inbox.js";
17
18
  import { acquirePidLock, processAlive } from "./lock.js";
@@ -36,7 +37,6 @@ import { createApi } from "./server.js";
36
37
  import { claudeProjectsDir } from "./spend.js";
37
38
  import { openStore } from "./store.js";
38
39
  import {} from "./supervise.js";
39
- import { windowsTerminalTab } from "./tab.js";
40
40
  import { ensureToken } from "./token.js";
41
41
  import { routedBriefs, routedLabels, routedNotes, routedQueue, trackerWrites } from "./trackers.js";
42
42
  import { trainWatch } from "./train.js";
@@ -50,6 +50,7 @@ import { issuesLabels, issuesNotes } from "./watchers/issues-writes.js";
50
50
  import { linearLabels } from "./watchers/linear-labels.js";
51
51
  import { linearQueue } from "./watchers/linear-queue.js";
52
52
  import { rateBudget } from "./watchers/source.js";
53
+ import { webhookFor } from "./webhook.js";
53
54
  import { gitWorktrees } from "./worktrees.js";
54
55
  // A pid file younger than this belongs to a daemon that may still be starting (it writes the pid
55
56
  // file before the port file), so a second start refuses even though nothing answers yet.
@@ -82,7 +83,7 @@ export class AlreadyRunningError extends ConductorError {
82
83
  export function daemonRunning(paths) {
83
84
  return async ({ ageMs, pid }) => processAlive(pid) && (ageMs < STARTUP_GRACE_MS || (await ping(paths, pid)));
84
85
  }
85
- // Under the logon task nobody sees stderr, so a crash goes to the log before the process exits. The
86
+ // Under the logon startup nobody sees stderr, so a crash goes to the log before the process exits. The
86
87
  // next start records the exit (daemon.exited-uncleanly).
87
88
  export function logCrashes(log, source = process) {
88
89
  for (const event of ['uncaughtException', 'unhandledRejection']) {
@@ -150,24 +151,25 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
150
151
  updateProject: (project) => void opened.upsertProject(project),
151
152
  });
152
153
  const plain = ports.worktrees ?? gitWorktrees();
153
- // A worktree create copies the main checkout's skills, so it waits out a check that may be
154
- // pulling and installing there (checkout-sync.ts).
154
+ // A worktree create fetches and adds in the project's clone, so it waits out a fetch of the
155
+ // clone that may be running, and none starts there until it ends (clones.ts).
155
156
  const worktrees = {
156
- auditSkills: (checkout, skills) => plain.auditSkills(checkout, skills),
157
157
  branchOf: (path) => plain.branchOf(path),
158
- checkSkills: (worktree, skills) => plain.checkSkills(worktree, skills),
159
- create: async (root, name) => {
160
- await checkout.settled();
161
- return plain.create(root, name);
162
- },
163
- remove: (root, path) => plain.remove(root, path),
158
+ create: (request) => fetches.using(request.clone, () => plain.create(request)),
159
+ missingSkills: (worktree, skills) => plain.missingSkills(worktree, skills),
160
+ // A remove prunes and deletes a branch in the clone: no fetch writes its refs meanwhile either.
161
+ remove: (path, options) => fetches.using(options.repo, () => plain.remove(path, options)),
162
+ repoOf: (path) => plain.repoOf(path),
164
163
  unfinishedWork: (path) => plain.unfinishedWork(path),
165
164
  };
165
+ const portBroker = broker({ free: ports.portFree, pool: config.ports, store: opened });
166
+ const claude = ports.claude ?? claudeCli();
166
167
  const manager = sessionManager({
167
- claude: ports.claude ?? claudeCli(),
168
+ broker: portBroker,
169
+ claude,
168
170
  config: config.sessions,
169
171
  log,
170
- openTab: ports.openTab ?? windowsTerminalTab(),
172
+ paths,
171
173
  pluginDir: paths.plugin,
172
174
  // Park, resume and compact as the rules say (the defaults park-on-wait, resume-on-wait and
173
175
  // compact-on-park). A resume for a review comment is also a `pr.comment`, so a rule on that
@@ -196,7 +198,10 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
196
198
  },
197
199
  processAlive: ports.processAlive,
198
200
  projectsDir: ports.projectsDir ?? claudeProjectsDir(),
201
+ // The code hosts are set up below, before anything retires.
202
+ prs: (profile, ref) => prStatus(hosts)(profile, ref),
199
203
  store: opened,
204
+ tabs: workerTabsFor(config.workers, ports.openTab),
200
205
  worktrees,
201
206
  });
202
207
  // One set of accounts for every provider call: the watchers' and the tracker reads and writes
@@ -228,11 +233,11 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
228
233
  github: rateBudget(config.watchers.github.perMinute),
229
234
  linear: rateBudget(config.watchers.linear.perMinute),
230
235
  };
231
- const checkout = checkoutSync({
236
+ const fetches = clones({
232
237
  config,
233
- inbox,
234
238
  log,
235
- ports: { checkSkills: (root, names) => plain.checkSkills(root, names), git: gitPort() },
239
+ paths,
240
+ refresh: (project) => rules.refresh(project),
236
241
  store: opened,
237
242
  });
238
243
  const trains = trainWatch({ credentials, inbox, log, store: opened });
@@ -248,8 +253,11 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
248
253
  return watchers.budget(api) ?? ownBudgets[api];
249
254
  };
250
255
  // The projects' code hosts, as their accounts: the worker verbs' writes, the briefs' PR reads and
251
- // the scheduler's.
252
- const hosts = ports.codeHosts ?? ((project) => projectHosts(credentials, project));
256
+ // the scheduler's. Each repo's CI is the one the project's stored profile names.
257
+ const hosts = ports.codeHosts ??
258
+ ((project) => projectHosts(credentials, project, {
259
+ profile: opened.getProject(project)?.profile ?? null,
260
+ }));
253
261
  const scheduler = schedulerService({
254
262
  budget: trackerBudget,
255
263
  config,
@@ -257,6 +265,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
257
265
  log,
258
266
  manager,
259
267
  overrides,
268
+ profileRefusal: (project) => rules.profileRefusal(project),
260
269
  prs: prStatus(hosts),
261
270
  reader: queueReader,
262
271
  rules: () => rules.rules(),
@@ -268,6 +277,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
268
277
  pushover: ports.pushover ??
269
278
  pushoverSender({ credential: pushoverCredential(config.notify.pushover.credential, paths.home) }),
270
279
  store: opened,
280
+ webhook: ports.webhook ?? webhookFor(config.notify.webhook),
271
281
  });
272
282
  const actions = ruleActions({
273
283
  inbox,
@@ -356,16 +366,18 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
356
366
  writes,
357
367
  });
358
368
  const revisions = reviseSweeper(notes, log, REVISE_SWEEP_MS);
359
- const portBroker = broker({ listening: ports.listening, store: opened });
360
369
  const api = createApi({
361
370
  briefs,
362
371
  broker: portBroker,
363
- // The throwaway worktree goes through the same create as a launch, after the checkout sync.
372
+ // The throwaway worktree goes through the same create as a launch, after a clone's fetch.
364
373
  checkProject: (project, options) => checkProject({
365
374
  budget: trackerBudget,
375
+ claude,
366
376
  credentials,
367
377
  fetch: ports.fetch,
368
- hosts,
378
+ // The profile being checked, which may not be the stored one yet.
379
+ hosts: (profile) => ports.codeHosts?.(profile.name) ?? projectHosts(credentials, profile.name, { profile }),
380
+ paths,
369
381
  // The copy workers load, as the launch checks it.
370
382
  pluginDir: paths.plugin,
371
383
  ports: portBroker,
@@ -383,7 +395,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
383
395
  notes,
384
396
  notifier,
385
397
  overrides,
386
- registerProject: (path) => registerProject(opened, path, rules.checkProfile),
398
+ registerProject: (name) => registerProject(opened, paths, name, rules.checkProfile),
387
399
  requestShutdown: () => void stop('api'),
388
400
  rules,
389
401
  scheduler,
@@ -399,7 +411,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
399
411
  await revisions.stop();
400
412
  await actions.stop();
401
413
  await scheduler.stop();
402
- await checkout.stop();
414
+ await fetches.stop();
403
415
  await trains.stop();
404
416
  await reprobe.stop();
405
417
  await watchers.stop();
@@ -445,7 +457,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
445
457
  watchers.start();
446
458
  reprobe.start();
447
459
  scheduler.start();
448
- checkout.start();
460
+ fetches.start();
449
461
  trains.start();
450
462
  actions.start();
451
463
  revisions.start();
@@ -461,6 +473,14 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
461
473
  throw error;
462
474
  }
463
475
  }
476
+ // The workers' tabs, in config.json's terminal and on each launch when it says so. `open` replaces
477
+ // the terminal (tests record the tabs instead), with no hint: the host's terminal isn't the one
478
+ // that opened them.
479
+ export function workerTabsFor(workers, open) {
480
+ return open === undefined
481
+ ? workerTabs(terminal({ choice: workers.terminal }), workers.tab)
482
+ : { hint: () => null, onLaunch: workers.tab, open };
483
+ }
464
484
  function addressOf(address) {
465
485
  if (address === null || typeof address === 'string')
466
486
  throw new Error('the API is not listening on TCP');