@detergent-software/conductor 1.3.0-dev.1 → 1.3.0-dev.3

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 (71) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +34 -5
  3. package/build/brief.js +5 -6
  4. package/build/brief.js.map +1 -1
  5. package/build/claude.js +23 -2
  6. package/build/claude.js.map +1 -1
  7. package/build/cli.js +4 -2
  8. package/build/cli.js.map +1 -1
  9. package/build/conditions.js +28 -3
  10. package/build/conditions.js.map +1 -1
  11. package/build/config.js +23 -1
  12. package/build/config.js.map +1 -1
  13. package/build/credentials.js +240 -0
  14. package/build/credentials.js.map +1 -0
  15. package/build/daemon.js +21 -10
  16. package/build/daemon.js.map +1 -1
  17. package/build/errors.js +3 -0
  18. package/build/errors.js.map +1 -1
  19. package/build/help.js +5 -0
  20. package/build/help.js.map +1 -1
  21. package/build/inbox.js +47 -3
  22. package/build/inbox.js.map +1 -1
  23. package/build/logins.js +50 -0
  24. package/build/logins.js.map +1 -0
  25. package/build/manager.js +11 -2
  26. package/build/manager.js.map +1 -1
  27. package/build/notes.js +7 -6
  28. package/build/notes.js.map +1 -1
  29. package/build/rule-actions.js +4 -0
  30. package/build/rule-actions.js.map +1 -1
  31. package/build/rules.js +2 -0
  32. package/build/rules.js.map +1 -1
  33. package/build/store.js +3 -1
  34. package/build/store.js.map +1 -1
  35. package/build/train-cli.js +4 -2
  36. package/build/train-cli.js.map +1 -1
  37. package/build/train.js +2 -4
  38. package/build/train.js.map +1 -1
  39. package/build/wait.js +15 -6
  40. package/build/wait.js.map +1 -1
  41. package/build/watchers/ado-api.js +1 -27
  42. package/build/watchers/ado-api.js.map +1 -1
  43. package/build/watchers/ado.js +25 -12
  44. package/build/watchers/ado.js.map +1 -1
  45. package/build/watchers/boards-brief.js +5 -4
  46. package/build/watchers/boards-brief.js.map +1 -1
  47. package/build/watchers/boards-queue.js +1 -1
  48. package/build/watchers/boards-queue.js.map +1 -1
  49. package/build/watchers/boards-writes.js +2 -2
  50. package/build/watchers/boards-writes.js.map +1 -1
  51. package/build/watchers/boards.js +15 -9
  52. package/build/watchers/boards.js.map +1 -1
  53. package/build/watchers/github.js +9 -16
  54. package/build/watchers/github.js.map +1 -1
  55. package/build/watchers/index.js +13 -6
  56. package/build/watchers/index.js.map +1 -1
  57. package/build/watchers/linear-api.js +49 -36
  58. package/build/watchers/linear-api.js.map +1 -1
  59. package/build/watchers/linear-labels.js +4 -3
  60. package/build/watchers/linear-labels.js.map +1 -1
  61. package/build/watchers/linear-queue.js +5 -5
  62. package/build/watchers/linear-queue.js.map +1 -1
  63. package/build/watchers/linear.js +67 -47
  64. package/build/watchers/linear.js.map +1 -1
  65. package/build/watchers/login.js +32 -0
  66. package/build/watchers/login.js.map +1 -0
  67. package/build/watchers/source.js +6 -4
  68. package/build/watchers/source.js.map +1 -1
  69. package/package.json +1 -1
  70. package/build/watchers/linear-key.js +0 -17
  71. package/build/watchers/linear-key.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { parseLocalTime } from "./clock.js";
2
+ import { PROVIDERS } from "./credentials.js";
2
3
  import { ConductorError } from "./errors.js";
3
4
  export const PR_EVENTS = ['merged', 'checks', 'comment'];
4
5
  const ITEM_FIELDS = ['state', 'label', 'note'];
@@ -12,6 +13,8 @@ export function formatCondition(c) {
12
13
  return `health:${c.env}:${c.field}=${c.value}`;
13
14
  case 'item':
14
15
  return `item:${c.tracker}:${c.item}:${c.field}=${c.value}`;
16
+ case 'login':
17
+ return `login:${c.provider}:${c.project}`;
15
18
  case 'npm':
16
19
  return `npm:${c.package}@${c.version}:${c.tag}`;
17
20
  case 'pr':
@@ -26,7 +29,7 @@ export function formatCondition(c) {
26
29
  // pr <n> merged|checks|comment [--repo owner/name] run <pipeline> <id> [done]
27
30
  // npm <version> [--tag <t>] [--package <p>] health <env> --version <x> | --commit <sha>
28
31
  // approval [<item>] item <item> <state> | state|label|note <value…>
29
- // time <when>
32
+ // login ado|github|linear time <when>
30
33
  export function fromVerbs(args, { item, now = new Date(), options, profile }) {
31
34
  const [verb, ...rest] = args;
32
35
  const usage = (line) => {
@@ -61,6 +64,16 @@ export function fromVerbs(args, { item, now = new Date(), options, profile }) {
61
64
  const value = named && more.length > 0 ? more.join(' ') : [first, ...more].join(' ');
62
65
  return parseCondition(`item:${trackerOf(profile)}:${target}:${field}=${value}`);
63
66
  }
67
+ case 'login': {
68
+ const [provider] = rest;
69
+ if (!provider || rest.length > 1)
70
+ return usage(`login ${PROVIDERS.join('|')}`);
71
+ if (!profile)
72
+ throw new ConductorError("which project's login? run it in a worktree with .claude/conductor.json", [
73
+ `or give the full form, such as login:${provider}:atk`,
74
+ ]);
75
+ return parseCondition(`login:${provider}:${profile.name}`);
76
+ }
64
77
  case 'npm': {
65
78
  const [version] = rest;
66
79
  const pkg = options.package ?? profile?.npm?.package;
@@ -96,7 +109,7 @@ export function fromVerbs(args, { item, now = new Date(), options, profile }) {
96
109
  if (verb !== undefined && rest.length === 0 && verb.includes(':'))
97
110
  return parseCondition(verb);
98
111
  throw new ConductorError(`unknown wait "${args.join(' ')}"`, [
99
- 'verbs: pr, run, npm, health, approval, item, time; or a full form such as pr:ado:<repo>#<n>:merged',
112
+ 'verbs: pr, run, npm, health, approval, item, login, time; or a full form such as pr:ado:<repo>#<n>:merged',
100
113
  ]);
101
114
  }
102
115
  }
@@ -132,6 +145,13 @@ export function parseCondition(text) {
132
145
  }
133
146
  return { field, item: match[2].toUpperCase(), kind, tracker: trackerKind(match[1]), value: match[4].trim() };
134
147
  }
148
+ case 'login': {
149
+ const match = /^([a-z]+):([a-z][a-z0-9-]*)$/.exec(rest);
150
+ const provider = PROVIDERS.find((p) => p === match?.[1]);
151
+ if (!provider || !match?.[2])
152
+ return fail(`login:<${PROVIDERS.join('|')}>:<project>, such as login:ado:atk`);
153
+ return { kind, project: match[2], provider };
154
+ }
135
155
  case 'npm': {
136
156
  // A scoped package starts with @, so the version is after the last @.
137
157
  const match = /^(@?[^@:\s]+)@([^@:\s]+):([^:\s]+)$/.exec(rest);
@@ -160,7 +180,7 @@ export function parseCondition(text) {
160
180
  return { at: at.toISOString(), kind };
161
181
  }
162
182
  default:
163
- return fail('<kind>:<details>; kinds: pr, run, npm, health, approval, item, time');
183
+ return fail('<kind>:<details>; kinds: pr, run, npm, health, approval, item, login, time');
164
184
  }
165
185
  }
166
186
  // A PR's link as a worker's PR (prRef), or null when it isn't one: an Azure DevOps
@@ -191,6 +211,8 @@ export function sourceOf(c) {
191
211
  return c.tracker === 'linear' ? 'linear' : 'ado';
192
212
  case 'health':
193
213
  return 'health';
214
+ case 'login':
215
+ return 'login';
194
216
  case 'npm':
195
217
  return 'npm';
196
218
  case 'pr':
@@ -210,6 +232,9 @@ export function uncheckable(c, profile) {
210
232
  }
211
233
  if (c.kind === 'health' && !profile?.health?.[c.env])
212
234
  return `the project's profile has no health URL for "${c.env}"`;
235
+ if (c.kind === 'login' && profile && c.project !== profile.name) {
236
+ return `the wait is on ${c.project}'s login, and the worker's project is ${profile.name}`;
237
+ }
213
238
  if ((c.kind === 'approval' || c.kind === 'item') &&
214
239
  c.tracker === 'ado-boards' &&
215
240
  profile?.tracker.kind !== 'ado-boards') {
@@ -1 +1 @@
1
- {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditions.js","sourceRoot":"","sources":["../src/conditions.ts"],"names":[],"mappings":"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"}
package/build/config.js CHANGED
@@ -36,8 +36,23 @@ export const notifyRuleSchema = z.strictObject({
36
36
  export const BUILT_IN_PROFILES = {
37
37
  away: [{ to: ['pushover'] }],
38
38
  default: [{ to: ['remote-control', 'pushover'] }],
39
- focus: [{ kinds: ['npm-otp', 'permission', 'failed', 'conflict', 'jason'], to: ['remote-control', 'pushover'] }],
39
+ focus: [
40
+ { kinds: ['npm-otp', 'permission', 'failed', 'conflict', 'jason', 'login'], to: ['remote-control', 'pushover'] },
41
+ ],
40
42
  };
43
+ // The accounts one project's provider calls use (credentials.ts). Each is optional: without it,
44
+ // the machine's own login (az's default account, gh's active account, the machine's Linear key).
45
+ // The tenant reaches `az` through a shell on Windows, so it is a tenant id or domain and nothing else.
46
+ const projectAccountsSchema = z.strictObject({
47
+ ado: z
48
+ .strictObject({ tenant: z.string().regex(/^[\w-]+(\.[\w-]+)*$/, 'a tenant id or domain, such as contoso.com') })
49
+ .optional(),
50
+ github: z
51
+ .strictObject({ user: z.string().regex(/^[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$/, 'a GitHub user name') })
52
+ .optional(),
53
+ // The generic credential (Credential Manager) whose password is the project's Linear key.
54
+ linear: z.strictObject({ credential: z.string().trim().min(1) }).optional(),
55
+ });
41
56
  // ~/.conductor/config.json: machine settings. Strict, so a misspelt key fails startup instead of
42
57
  // being ignored. Rules live beside it, in rules.json (rules-service.ts).
43
58
  export const configSchema = z.strictObject({
@@ -101,6 +116,11 @@ export const configSchema = z.strictObject({
101
116
  }),
102
117
  // The API's port on 127.0.0.1. 0 lets the OS pick one; clients find it in the port file.
103
118
  port: z.int().min(0).max(65535).default(0),
119
+ // Each project's accounts, by its profile's name (providers design note, section 6). They are
120
+ // the machine's, not the repo's, so they live here and not in .claude/conductor.json.
121
+ projects: z
122
+ .record(z.string().regex(/^[a-z][a-z0-9-]*$/, "a project's name, as its profile gives it"), projectAccountsSchema)
123
+ .default({}),
104
124
  // Local quiet hours (design note, section 8): pushes are held and sent as one summary when they
105
125
  // end. The scheduler (ATK-315) also starts no worker in them. Null: none.
106
126
  quietHours: z
@@ -150,6 +170,8 @@ export const configSchema = z.strictObject({
150
170
  health: watcher(30, 30),
151
171
  // Linear allows a key 1500 requests an hour, and conduct-atk reads with the same key.
152
172
  linear: watcher(30, 10),
173
+ // A lost login's re-probe, and `conduct wait login`: each probe asks its provider once or twice.
174
+ login: watcher(60, 30),
153
175
  npm: watcher(20, 30),
154
176
  // How often a `watcher.stats` event records each API's passes and requests.
155
177
  statsMinutes: z.number().min(1).max(1440).default(10),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ import { readCredential as readWindowsCredential } from "./credential.js";
2
+ import { ConductorError } from "./errors.js";
3
+ import { NotFound } from "./lib/providers/index.js";
4
+ import { outputOf, run as runCommand } from "./run.js";
5
+ // Each project's accounts (providers design note, section 6): which az tenant, gh account and
6
+ // Linear key its provider calls use, from machine config (`projects.<name>`), else the machine's
7
+ // own logins. A login that stops working is a spell: one `lost` change when it starts, one
8
+ // `restored` when a call or a probe works again.
9
+ export const PROVIDERS = ['ado', 'github', 'linear'];
10
+ // Azure DevOps' resource id, for `az account get-access-token`.
11
+ const ADO_RESOURCE = '499b84ac-1321-427f-aa17-267ca6975798';
12
+ // An az token lasts about an hour, a gh token until it is revoked; both are asked again well before.
13
+ const TOKEN_MAX_AGE_MS = 20 * 60_000;
14
+ export const LINEAR_CREDENTIAL = 'atk-conductor-linear';
15
+ // The id of the machine's own login. No tenant, gh user or credential target in config can be it:
16
+ // the schema allows no parentheses in the first two, and a target that spelt it would be odd.
17
+ export const MACHINE = '(machine)';
18
+ const LINEAR_API = 'https://api.linear.app/graphql';
19
+ const TIMEOUT_MS = 20_000;
20
+ // A provider call that needs a login it doesn't have. It names the provider, the account and the
21
+ // command that signs in again. `conduct` reserves exit code 5 (LOGIN_NEEDED_EXIT) for worker verbs
22
+ // that hit it; protocol 1's verbs exit 1 for it, as for any ConductorError.
23
+ export class LoginNeeded extends ConductorError {
24
+ account;
25
+ // The message and the command in one line, for a wait's problem (`wait.check-failed`, a local
26
+ // wait's exit), which keeps no details.
27
+ get line() {
28
+ return `${this.message}; to sign in: ${this.account.command}`;
29
+ }
30
+ constructor(account, project, error) {
31
+ super(`${loginText(account, project)}: ${error}`, [`run ${account.command}`]);
32
+ this.name = 'LoginNeeded';
33
+ this.account = account;
34
+ }
35
+ }
36
+ // "github login lost for atk (gh account JasonPaff)".
37
+ export function loginText(account, project) {
38
+ return `${account.provider} login lost${project === null ? '' : ` for ${project}`} (${account.label})`;
39
+ }
40
+ export function providerCredentials(deps) {
41
+ const env = deps.env ?? process.env;
42
+ const fetcher = deps.fetch ?? globalThis.fetch;
43
+ const now = deps.now ?? Date.now;
44
+ const exec = deps.run ?? runCommand;
45
+ const read = deps.readCredential ?? readWindowsCredential;
46
+ const lostNow = new Map();
47
+ // Each account's token or key, shared by every project on it. The calls that read them name
48
+ // their own project, so a lost login is put on the project whose call found it.
49
+ const adoTokens = new Map();
50
+ const ghTokens = new Map();
51
+ const linearKeys = new Map();
52
+ const spell = (account) => `${account.provider}:${account.id}`;
53
+ const failed = (account, project, error) => {
54
+ if (!lostNow.has(spell(account))) {
55
+ lostNow.set(spell(account), { account, error, project });
56
+ deps.onChange?.({ account, error, kind: 'lost', project });
57
+ }
58
+ return new LoginNeeded(account, project, error);
59
+ };
60
+ const worked = (account, project) => {
61
+ if (!lostNow.delete(spell(account)))
62
+ return;
63
+ deps.onChange?.({ account, error: null, kind: 'restored', project });
64
+ };
65
+ // While an account's login is lost, only a probe asks the provider again (the daemon's re-probe,
66
+ // a login wait): every other call fails at once, so a pass with many waits on the account runs
67
+ // no `az`, `gh` or Linear request for it. The re-probe is the spell's back-off.
68
+ const refuseWhileLost = (account, project, probing) => {
69
+ const lost = probing ? undefined : lostNow.get(spell(account));
70
+ if (lost)
71
+ throw new LoginNeeded(account, project, lost.error);
72
+ };
73
+ const account = (provider, project) => {
74
+ const entry = project === null ? undefined : deps.projects[project];
75
+ switch (provider) {
76
+ case 'ado': {
77
+ const tenant = entry?.ado?.tenant ?? null;
78
+ return tenant === null
79
+ ? { command: 'az login', id: MACHINE, label: "az's default account", provider }
80
+ : { command: `az login --tenant ${tenant}`, id: tenant, label: `az tenant ${tenant}`, provider };
81
+ }
82
+ case 'github': {
83
+ const user = entry?.github?.user ?? null;
84
+ return user === null
85
+ ? { command: 'gh auth login', id: MACHINE, label: "gh's active account", provider }
86
+ : { command: 'gh auth login', id: user, label: `gh account ${user}`, provider };
87
+ }
88
+ case 'linear': {
89
+ const target = entry?.linear?.credential ?? null;
90
+ const shown = target ?? defaultLinearTarget(env);
91
+ return {
92
+ command: `cmdkey /generic:${shown} /user:linear /pass`,
93
+ id: target ?? MACHINE,
94
+ label: target === null ? `LINEAR_API_KEY or credential ${shown}` : `credential ${target}`,
95
+ provider,
96
+ };
97
+ }
98
+ }
99
+ };
100
+ // The az token for the project's tenant, kept 20 minutes.
101
+ const adoToken = async (project, fresh, probing) => {
102
+ const which = account('ado', project);
103
+ refuseWhileLost(which, project, probing);
104
+ const cached = adoTokens.get(which.id);
105
+ if (!fresh && cached && now() - cached.at < TOKEN_MAX_AGE_MS)
106
+ return cached.value;
107
+ const tenant = which.id === MACHINE ? [] : ['--tenant', which.id];
108
+ // `az` is a .cmd on Windows, so it runs through a shell; its arguments are constants and
109
+ // the tenant id from machine config, which the config schema keeps to an id or a domain.
110
+ const result = await exec('az', ['account', 'get-access-token', '--resource', ADO_RESOURCE, ...tenant, '--query', 'accessToken', '-o', 'tsv'], { shell: process.platform === 'win32', timeoutMs: 60_000 });
111
+ const value = result.stdout.trim();
112
+ if (result.code !== 0 || !value) {
113
+ throw failed(which, project, `az account get-access-token failed: ${outputOf(result, 300)}`);
114
+ }
115
+ worked(which, project);
116
+ adoTokens.set(which.id, { at: now(), value });
117
+ return value;
118
+ };
119
+ const ado = (project) => (fresh) => adoToken(project, fresh, false);
120
+ const ghToken = async (which, project, fresh) => {
121
+ const cached = ghTokens.get(which.id);
122
+ if (!fresh && cached && now() - cached.at < TOKEN_MAX_AGE_MS)
123
+ return cached.value;
124
+ const user = which.id === MACHINE ? [] : ['--user', which.id];
125
+ const result = await exec('gh', ['auth', 'token', ...user], { env, timeoutMs: 30_000 });
126
+ const value = result.stdout.trim();
127
+ if (result.code !== 0 || !value)
128
+ throw failed(which, project, `gh auth token failed: ${outputOf(result, 300)}`);
129
+ ghTokens.set(which.id, { at: now(), value });
130
+ return value;
131
+ };
132
+ // Each call runs `gh api` with the account's token in GH_TOKEN, so a project's gh user needs no
133
+ // `gh auth switch`. A 401 asks gh for the token again once; a second is a lost login. Only an
134
+ // answer from GitHub (success, or an HTTP status other than 401) says the token works: a
135
+ // timeout or a network error says nothing about the login.
136
+ const ghApi = async (project, path, probing) => {
137
+ const which = account('github', project);
138
+ refuseWhileLost(which, project, probing);
139
+ for (let fresh = probing;; fresh = true) {
140
+ const result = await exec('gh', ['api', path], {
141
+ env: { ...env, GH_TOKEN: await ghToken(which, project, fresh) },
142
+ timeoutMs: 60_000,
143
+ });
144
+ const said = result.code === 0 ? '' : outputOf(result, 300);
145
+ if (/HTTP 401|Bad credentials/i.test(said)) {
146
+ if (!fresh)
147
+ continue;
148
+ throw failed(which, project, `GitHub refused the token: ${said}`);
149
+ }
150
+ if (result.code === 0 || /HTTP \d{3}/.test(said))
151
+ worked(which, project);
152
+ if (result.code === 0)
153
+ return JSON.parse(result.stdout);
154
+ if (/HTTP 404|Not Found/i.test(said))
155
+ throw new NotFound(`GitHub answered 404 for ${path}`);
156
+ throw new Error(`gh api ${path} failed: ${said}`);
157
+ }
158
+ };
159
+ const gh = (project) => (path) => ghApi(project, path, false);
160
+ // The project's Linear key, kept per credential target. The key is only returned: never logged,
161
+ // stored or put on a command line.
162
+ const linear = (project, probing = false) => {
163
+ const which = account('linear', project);
164
+ return {
165
+ account: which,
166
+ key: async (fresh = false) => {
167
+ refuseWhileLost(which, project, probing);
168
+ const cached = linearKeys.get(which.id);
169
+ if (!fresh && cached !== undefined)
170
+ return cached;
171
+ const found = await readLinearKey(which, env, read);
172
+ if (found.key === null)
173
+ throw failed(which, project, found.reason);
174
+ linearKeys.set(which.id, found.key);
175
+ return found.key;
176
+ },
177
+ refused: (detail) => {
178
+ linearKeys.delete(which.id);
179
+ return failed(which, project, detail);
180
+ },
181
+ worked: () => worked(which, project),
182
+ };
183
+ };
184
+ const probe = async (provider, project) => {
185
+ const which = account(provider, project);
186
+ try {
187
+ if (provider === 'ado')
188
+ await adoToken(project, true, true);
189
+ else if (provider === 'github')
190
+ await ghApi(project, 'user', true);
191
+ else
192
+ await probeLinear(linear(project, true));
193
+ return { account: which, error: null };
194
+ }
195
+ catch (error) {
196
+ return { account: which, error: error instanceof Error ? error.message : String(error) };
197
+ }
198
+ };
199
+ const probeLinear = async (auth) => {
200
+ const secret = await auth.key(true);
201
+ const response = await fetcher(deps.linearUrl ?? LINEAR_API, {
202
+ body: JSON.stringify({ query: '{ viewer { id } }' }),
203
+ headers: { authorization: secret, 'content-type': 'application/json' },
204
+ method: 'POST',
205
+ signal: AbortSignal.timeout(TIMEOUT_MS),
206
+ });
207
+ if (response.status === 401)
208
+ throw auth.refused('Linear refused the key (HTTP 401)');
209
+ if (!response.ok)
210
+ throw new Error(`Linear answered ${response.status}`);
211
+ auth.worked();
212
+ };
213
+ return {
214
+ account,
215
+ ado,
216
+ gh,
217
+ linear: (project) => linear(project),
218
+ lost: () => [...lostNow.values()],
219
+ probe,
220
+ };
221
+ }
222
+ // The target the machine's own Linear key is saved under: ATK_CONDUCT_LINEAR_CREDENTIAL names
223
+ // another, as in conduct-atk.
224
+ function defaultLinearTarget(env) {
225
+ return env.ATK_CONDUCT_LINEAR_CREDENTIAL?.trim() || LINEAR_CREDENTIAL;
226
+ }
227
+ // A project's own credential target, else LINEAR_API_KEY, then the machine's target (ATK-272).
228
+ async function readLinearKey(which, env, read) {
229
+ if (which.id === MACHINE) {
230
+ const fromEnv = env.LINEAR_API_KEY?.trim();
231
+ if (fromEnv)
232
+ return { key: fromEnv };
233
+ }
234
+ const target = which.id === MACHINE ? defaultLinearTarget(env) : which.id;
235
+ const found = await read(target, env);
236
+ if (found.found)
237
+ return { key: found.credential.secret };
238
+ return { key: null, reason: which.id === MACHINE ? `no LINEAR_API_KEY, and ${found.reason}` : found.reason };
239
+ }
240
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
package/build/daemon.js CHANGED
@@ -6,10 +6,12 @@ import { claudeCli } from "./claude.js";
6
6
  import { ping } from "./client.js";
7
7
  import { loadConfig } from "./config.js";
8
8
  import { consoleEscalations, unattendedEscalations } from "./console.js";
9
+ import { providerCredentials } from "./credentials.js";
9
10
  import { ConductorError } from "./errors.js";
10
11
  import { inboxService } from "./inbox.js";
11
12
  import { acquirePidLock, processAlive } from "./lock.js";
12
13
  import { rotatingLog } from "./log.js";
14
+ import { loginEvents, loginReprobe } from "./logins.js";
13
15
  import { sessionManager } from "./manager.js";
14
16
  import { linearNotes, noteService } from "./notes.js";
15
17
  import { notifierService } from "./notify.js";
@@ -28,11 +30,10 @@ import { windowsTerminalTab } from "./tab.js";
28
30
  import { ensureToken } from "./token.js";
29
31
  import { routedBriefs, routedLabels, routedNotes, routedQueue } from "./trackers.js";
30
32
  import { trainWatch } from "./train.js";
31
- import { azToken } from "./watchers/ado-api.js";
32
33
  import { boardsBriefs } from "./watchers/boards-brief.js";
33
34
  import { boardsQueue } from "./watchers/boards-queue.js";
34
35
  import { boardsLabels, boardsNotes } from "./watchers/boards-writes.js";
35
- import { startWatchers } from "./watchers/index.js";
36
+ import { defaultSources, startWatchers } from "./watchers/index.js";
36
37
  import { linearLabels } from "./watchers/linear-labels.js";
37
38
  import { linearQueue } from "./watchers/linear-queue.js";
38
39
  import { rateBudget } from "./watchers/source.js";
@@ -173,9 +174,17 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
173
174
  store: opened,
174
175
  worktrees,
175
176
  });
176
- // One az token for the Boards reads and writes outside the watchers.
177
- const boards = { token: azToken() };
178
- const tracker = ports.noteTracker ?? routedNotes({ 'ado-boards': boardsNotes(boards), linear: linearNotes() });
177
+ // One set of accounts for every provider call: the watchers' and the tracker reads and writes
178
+ // outside them. Each lost login is an event, and a re-probe ends its spell.
179
+ const credentials = ports.credentials ??
180
+ providerCredentials({
181
+ onChange: loginEvents({ log, stopped: () => stopping !== undefined, store: opened }),
182
+ projects: config.projects,
183
+ });
184
+ const reprobe = loginReprobe({ credentials, intervalMs: config.watchers.login.intervalSeconds * 1000, log });
185
+ const boards = { credentials };
186
+ const linear = { credentials };
187
+ const tracker = ports.noteTracker ?? routedNotes({ 'ado-boards': boardsNotes(boards), linear: linearNotes(linear) });
179
188
  const inbox = inboxService({ onWaitResolved: () => void manager.sweep(), store: opened, tracker });
180
189
  const escalations = consoleEscalations({ inbox, store: opened });
181
190
  const unattended = unattendedEscalations({ escalations, graceMs: consoleGraceMs, inbox });
@@ -193,7 +202,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
193
202
  ports: { checkSkills: (root, names) => plain.checkSkills(root, names), git: gitPort() },
194
203
  store: opened,
195
204
  });
196
- const trains = trainWatch({ inbox, log, store: opened });
205
+ const trains = trainWatch({ credentials, inbox, log, store: opened });
197
206
  const scheduler = schedulerService({
198
207
  budget: (profile) => {
199
208
  const api = profile.tracker.kind === 'linear' ? 'linear' : 'ado';
@@ -204,7 +213,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
204
213
  log,
205
214
  manager,
206
215
  overrides,
207
- reader: ports.queueReader ?? routedQueue({ 'ado-boards': boardsQueue(boards), linear: linearQueue() }),
216
+ reader: ports.queueReader ?? routedQueue({ 'ado-boards': boardsQueue(boards), linear: linearQueue(linear) }),
208
217
  rules: () => rules.rules(),
209
218
  store: opened,
210
219
  });
@@ -216,7 +225,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
216
225
  });
217
226
  const actions = ruleActions({
218
227
  inbox,
219
- labels: ports.labels ?? routedLabels({ 'ado-boards': boardsLabels(boards), linear: linearLabels() }),
228
+ labels: ports.labels ?? routedLabels({ 'ado-boards': boardsLabels(boards), linear: linearLabels(linear) }),
220
229
  log,
221
230
  manager,
222
231
  mode: config.scheduler.mode,
@@ -272,11 +281,11 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
272
281
  log,
273
282
  // A resolved wait wakes its worker on the next sweep; run that sweep now.
274
283
  onResolved: () => void manager.sweep(),
275
- sources: ports.sources,
284
+ sources: ports.sources ?? defaultSources(credentials),
276
285
  store: opened,
277
286
  });
278
287
  const briefs = briefService({
279
- reader: ports.briefReader ?? routedBriefs({ 'ado-boards': boardsBriefs(boards), linear: linearBriefs() }),
288
+ reader: ports.briefReader ?? routedBriefs({ 'ado-boards': boardsBriefs(boards), linear: linearBriefs(linear) }),
280
289
  store: opened,
281
290
  });
282
291
  const notes = noteService({ briefs, planApproval: (plan) => actions.planApproval(plan), store: opened, tracker });
@@ -311,6 +320,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
311
320
  await scheduler.stop();
312
321
  await checkout.stop();
313
322
  await trains.stop();
323
+ await reprobe.stop();
314
324
  await watchers.stop();
315
325
  await manager.stop();
316
326
  stopObserving();
@@ -347,6 +357,7 @@ export async function startDaemon(paths, { consoleGraceMs, keepaliveMs, ports =
347
357
  notifier.start();
348
358
  manager.start();
349
359
  watchers.start();
360
+ reprobe.start();
350
361
  scheduler.start();
351
362
  checkout.start();
352
363
  trains.start();