@onepointfour-packs/flaredeck-agent 0.2.38 → 0.2.39

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 (84) hide show
  1. package/dist/agent.d.ts +42 -3
  2. package/dist/agent.js +84 -6
  3. package/dist/agent.js.map +1 -1
  4. package/dist/automode.js +43 -3
  5. package/dist/automode.js.map +1 -1
  6. package/dist/branches.d.ts +12 -1
  7. package/dist/branches.js +13 -3
  8. package/dist/branches.js.map +1 -1
  9. package/dist/browser.d.ts +52 -0
  10. package/dist/browser.js +185 -17
  11. package/dist/browser.js.map +1 -1
  12. package/dist/config.d.ts +6 -0
  13. package/dist/config.js +36 -2
  14. package/dist/config.js.map +1 -1
  15. package/dist/credentials.d.ts +217 -0
  16. package/dist/credentials.js +332 -0
  17. package/dist/credentials.js.map +1 -0
  18. package/dist/engine-antigravity.js +2 -0
  19. package/dist/engine-antigravity.js.map +1 -1
  20. package/dist/engine-claude.js +14 -2
  21. package/dist/engine-claude.js.map +1 -1
  22. package/dist/engine.d.ts +19 -0
  23. package/dist/engine.js.map +1 -1
  24. package/dist/environment.d.ts +13 -1
  25. package/dist/environment.js +35 -2
  26. package/dist/environment.js.map +1 -1
  27. package/dist/envtools.d.ts +58 -0
  28. package/dist/envtools.js +151 -0
  29. package/dist/envtools.js.map +1 -0
  30. package/dist/flaredeck.d.ts +24 -0
  31. package/dist/flaredeck.js +20 -0
  32. package/dist/flaredeck.js.map +1 -1
  33. package/dist/github.d.ts +2 -0
  34. package/dist/github.js +4 -0
  35. package/dist/github.js.map +1 -1
  36. package/dist/githubauth.d.ts +11 -1
  37. package/dist/githubauth.js +82 -16
  38. package/dist/githubauth.js.map +1 -1
  39. package/dist/hydrate.d.ts +76 -0
  40. package/dist/hydrate.js +77 -0
  41. package/dist/hydrate.js.map +1 -0
  42. package/dist/limits.d.ts +184 -0
  43. package/dist/limits.js +251 -0
  44. package/dist/limits.js.map +1 -0
  45. package/dist/main.js +121 -18
  46. package/dist/main.js.map +1 -1
  47. package/dist/picker.js +50 -4
  48. package/dist/picker.js.map +1 -1
  49. package/dist/preflight.d.ts +43 -0
  50. package/dist/preflight.js +133 -19
  51. package/dist/preflight.js.map +1 -1
  52. package/dist/runs.d.ts +11 -3
  53. package/dist/runs.js +41 -4
  54. package/dist/runs.js.map +1 -1
  55. package/dist/serve.js +956 -113
  56. package/dist/serve.js.map +1 -1
  57. package/dist/session.d.ts +51 -0
  58. package/dist/session.js +145 -0
  59. package/dist/session.js.map +1 -0
  60. package/dist/settle.d.ts +18 -0
  61. package/dist/settle.js +39 -0
  62. package/dist/settle.js.map +1 -0
  63. package/dist/signin.d.ts +47 -0
  64. package/dist/signin.js +331 -0
  65. package/dist/signin.js.map +1 -0
  66. package/dist/stream.d.ts +6 -0
  67. package/dist/stream.js +44 -3
  68. package/dist/stream.js.map +1 -1
  69. package/dist/subscriptions.d.ts +115 -0
  70. package/dist/subscriptions.js +140 -0
  71. package/dist/subscriptions.js.map +1 -0
  72. package/dist/ui.d.ts +11 -0
  73. package/dist/ui.js +6 -1
  74. package/dist/ui.js.map +1 -1
  75. package/dist/usage.d.ts +105 -0
  76. package/dist/usage.js +348 -0
  77. package/dist/usage.js.map +1 -0
  78. package/dist/wall.d.ts +35 -0
  79. package/dist/wall.js +94 -0
  80. package/dist/wall.js.map +1 -0
  81. package/dist/worktree.d.ts +19 -0
  82. package/dist/worktree.js +179 -4
  83. package/dist/worktree.js.map +1 -1
  84. package/package.json +1 -1
package/dist/browser.js CHANGED
@@ -23,11 +23,15 @@
23
23
  * and hands, and remembers.
24
24
  */
25
25
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
26
+ import { captureSession, contextFor, restoreIndexedDb } from './session.js';
27
+ import { settle } from './settle.js';
28
+ import { signInWall, wallBrief } from './wall.js';
26
29
  import { dirname, join } from 'node:path';
27
30
  import { z } from 'zod';
28
31
  import { tool } from '@anthropic-ai/claude-agent-sdk';
29
32
  import { sdkServer } from './localmcp.js';
30
33
  import { configDir } from './config.js';
34
+ import { credentialsFor, getJson, putInsistently, sessionOrigin, siteCredentialId, } from './credentials.js';
31
35
  export const BROWSER_TOOL_NAMES = [
32
36
  'mcp__browser__open_page',
33
37
  'mcp__browser__look',
@@ -49,6 +53,35 @@ const memoryDir = () => {
49
53
  const safe = (s) => s.replace(/[^A-Za-z0-9._-]/g, '_');
50
54
  const memoryFile = (site) => join(memoryDir(), `${safe(site)}.json`);
51
55
  const sessionFile = (site) => join(memoryDir(), `${safe(site)}.session.json`);
56
+ /**
57
+ * Sessions live in the FlareDeck vault and nowhere else — not on this disk, not as a cache.
58
+ *
59
+ * That is the whole point of moving them: one sign-in by one person serves every agent in the
60
+ * workspace, and twenty machines each holding a copy of a credential is the situation being
61
+ * escaped rather than the design. It also makes revocation honest, since there is no stale copy
62
+ * anywhere to keep working after the fact. See credentials.ts.
63
+ */
64
+ const sessionStore = (repo, onNote = () => { }) => credentialsFor(repo, onNote);
65
+ /**
66
+ * The stored session, or an explanation.
67
+ *
68
+ * `{ ok: true, value: null }` and `{ ok: false }` must not be collapsed: no session means ask for
69
+ * a sign-in (the wall machinery does that), while a vault that could not be reached means stop
70
+ * and say so. There is nothing local to fall back to.
71
+ */
72
+ async function loadSession(repo, id, onNote) {
73
+ return getJson(sessionStore(repo, onNote), id);
74
+ }
75
+ /**
76
+ * Keep a captured session, with retries.
77
+ *
78
+ * It has nowhere else to go, so one network blip must not cost a person another trip through a
79
+ * sign-in form. If it is lost anyway, the card hits the wall again on its next look and the
80
+ * existing machinery asks for a fresh one — the same path an expired session takes.
81
+ */
82
+ async function saveSession(repo, id, s, onNote = () => { }) {
83
+ return putInsistently(sessionStore(repo, onNote), id, Buffer.from(JSON.stringify(s), 'utf8'), { kind: 'browser-session', label: id.replace(/^session:(host|repo):/, '') }, onNote);
84
+ }
52
85
  function loadMemory(site) {
53
86
  try {
54
87
  return JSON.parse(readFileSync(memoryFile(site), 'utf8'));
@@ -63,14 +96,101 @@ function saveMemory(site, m) {
63
96
  }
64
97
  catch { /* not worth failing for */ }
65
98
  }
99
+ /**
100
+ * Keep a session a person just signed in with, where the browser tools will find it: FlareDeck.
101
+ *
102
+ * Exported because the sign-in happens OUTSIDE a card — a person runs it when an agent asks —
103
+ * and it has to land under the same identity `open_page` reads. It is keyed centrally, by the
104
+ * HOST when the session is for a real site, so one sign-in serves every agent in the workspace
105
+ * that needs that site. The session is asked where it came from rather than the caller being made
106
+ * to say, which is why this needs no new argument.
107
+ *
108
+ * STILL SYNCHRONOUS, and that is now a compromise rather than a free win. The vault write is
109
+ * necessarily asynchronous, so this starts it and returns the id for the caller to print; if the
110
+ * write ultimately fails, nothing is saved anywhere, because there is no longer a local copy by
111
+ * design. The card then meets the sign-in wall again on its next look and the existing machinery
112
+ * asks for a fresh one — the same path an expired session takes, so the failure degrades into a
113
+ * case that is already handled rather than a new one.
114
+ *
115
+ * `rememberSignInNow` is the same thing awaited, for a caller that wants to report the outcome.
116
+ * Both of this function's callers (main.ts, serve.ts) belong to other work; switching them over
117
+ * is a one-line change each and would turn "Signed in." into the truth rather than a hope.
118
+ */
119
+ export function rememberSignIn(repo, part, session) {
120
+ const id = siteCredentialId(repo, part, sessionOrigin(session));
121
+ void rememberSignInNow(repo, part, session);
122
+ return id;
123
+ }
124
+ /** `rememberSignIn`, awaited: the credential id and whether it actually reached FlareDeck. */
125
+ export async function rememberSignInNow(repo, part, session, onNote = () => { }) {
126
+ const id = siteCredentialId(repo, part, sessionOrigin(session));
127
+ const r = await saveSession(repo, id, session, onNote);
128
+ if (!r.ok) {
129
+ onNote(`the sign-in could NOT be saved to FlareDeck (${r.message}). Nothing was kept on this ` +
130
+ `machine — credentials live only in FlareDeck — so a sign-in will be requested again.`);
131
+ }
132
+ return { id, ...r };
133
+ }
66
134
  /** What this page is, independent of where it happens to be today. See the note on this module. */
67
135
  export function siteIdentity(repo, part) {
68
136
  return `${repo.split('/').pop() || repo}/${part || 'ui'}`;
69
137
  }
138
+ /**
139
+ * How every browser here is launched.
140
+ *
141
+ * `headless: true` on its own picks `chromium-headless-shell` whenever that build is present,
142
+ * and a Google sign-in cannot be completed in it — see installChromium. `channel: 'chromium'`
143
+ * asks for the full browser and still runs it with no window, which is the combination measured
144
+ * to work. Without this line the installer change below fixes nothing on any machine that
145
+ * already has the shell.
146
+ */
147
+ export const HEADLESS_FULL = { headless: true, channel: 'chromium' };
70
148
  /**
71
149
  * Fetch the browser Playwright expects. Once per machine, and never asked of the agent: an
72
150
  * instruction to run an installer is setup, and the point of this is that there is none.
151
+ *
152
+ * The FULL chromium, not `chromium-headless-shell`. The shell is smaller and reads pages
153
+ * perfectly well, and it was what this installed — but it is a stripped build, and a Google
154
+ * sign-in cannot be completed in it: the opener-to-popup channel Firebase needs does not
155
+ * survive, so the login runs to the end and then fails with "the popup has been closed by the
156
+ * user", which is false. Measured on 2026-10-09 across three configurations:
157
+ *
158
+ * full chromium, headed sign-in completed
159
+ * full chromium, HEADLESS sign-in completed
160
+ * headless shell, headless auth/popup-closed-by-user
161
+ *
162
+ * So headless is fine and the shell is not. One build for everything, because two means a
163
+ * machine where ordinary page reading works and signing in mysteriously does not. It also means
164
+ * no Xvfb and no virtual display anywhere: the full build runs headless like any other.
165
+ */
166
+ let installing = null;
167
+ /**
168
+ * Make sure the browser is on this machine, once.
169
+ *
170
+ * Called at startup so the download happens while the agent is idle rather than in the middle of
171
+ * the first card that needs eyes — 186MB is a long pause to take with a card in hand. Memoised,
172
+ * because the lazy path still calls it: a card arriving mid-download must wait for the download
173
+ * in flight, not start a second one.
73
174
  */
175
+ export function ensureBrowser(onNote = () => { }) {
176
+ if (!installing) {
177
+ installing = (async () => {
178
+ const { chromium } = await import('playwright-core');
179
+ // Already there: nothing to say and nothing to fetch.
180
+ try {
181
+ const b = await chromium.launch(HEADLESS_FULL);
182
+ await b.close();
183
+ return true;
184
+ }
185
+ catch { /* fetch it */ }
186
+ onNote('fetching Chromium (first use on this machine, ~186MB)');
187
+ const ok = await installChromium();
188
+ onNote(ok ? 'Chromium ready' : 'could not fetch Chromium — a card needing a browser will say so');
189
+ return ok;
190
+ })();
191
+ }
192
+ return installing;
193
+ }
74
194
  async function installChromium() {
75
195
  const { execFile } = await import('node:child_process');
76
196
  const { fileURLToPath } = await import('node:url');
@@ -78,7 +198,7 @@ async function installChromium() {
78
198
  if (!existsSync(cli))
79
199
  return false;
80
200
  return new Promise((resolve) => {
81
- execFile(process.execPath, [cli, 'install', 'chromium-headless-shell'], { timeout: 10 * 60_000 }, (err) => resolve(!err));
201
+ execFile(process.execPath, [cli, 'install', 'chromium'], { timeout: 15 * 60_000 }, (err) => resolve(!err));
82
202
  });
83
203
  }
84
204
  /**
@@ -121,6 +241,9 @@ function addressable(url, declared) {
121
241
  (declared.length ? `, or one of the sites the board named: ${declared.join(', ')}.` : '.'));
122
242
  }
123
243
  export function browserTools(deps) {
244
+ // `site` names the project's page and keys the local notes; `credential` is the central
245
+ // identity the SESSION is stored under, which is the host for a real site. They differ on
246
+ // purpose — see siteCredentialId in credentials.ts.
124
247
  let live = null;
125
248
  const closeQuietly = async () => {
126
249
  try {
@@ -159,7 +282,7 @@ export function browserTools(deps) {
159
282
  'example "ui") rather than a port — several worktrees run at once and the ports differ. ' +
160
283
  'A deployed site the board declared can be named the same way. Returns what is on the ' +
161
284
  'page, and anything earlier sessions learned about this project.', {
162
- part: z.string().optional().describe('Which part, e.g. "ui". Defaults to the first one.'),
285
+ part: z.string().optional().describe('Which part, e.g. "ui". Defaults to the app\'s own page when the harness found it, else the first one.'),
163
286
  path: z.string().optional().describe('A path on that part, e.g. "/admin/learning".'),
164
287
  url: z.string().optional().describe('A full address, for something you started yourself that no part names yet. ' +
165
288
  'This machine, a private network, or a site the board declared.'),
@@ -170,7 +293,7 @@ export function browserTools(deps) {
170
293
  // Both sources answer to a name. A part the environment started wins a name collision,
171
294
  // because that is this card's own code and the deployed one is not.
172
295
  const all = { ...declared, ...ends };
173
- let name = part || (all['ui'] ? 'ui' : Object.keys(all)[0] ?? '');
296
+ let name = part || deps.defaultPart?.() || (all['ui'] ? 'ui' : Object.keys(all)[0] ?? '');
174
297
  let base = all[name];
175
298
  if (asked) {
176
299
  const no = addressable(asked, Object.values(declared));
@@ -193,12 +316,13 @@ export function browserTools(deps) {
193
316
  `\`name=url\` lines gives every future card on this board a browser.`, true);
194
317
  }
195
318
  const site = siteIdentity(deps.repo, name);
319
+ const credential = siteCredentialId(deps.repo, name, base);
196
320
  const memory = loadMemory(site);
197
321
  await closeQuietly();
198
322
  const { chromium } = await import('playwright-core');
199
323
  let browser;
200
324
  try {
201
- browser = await chromium.launch({ headless: true });
325
+ browser = await chromium.launch(HEADLESS_FULL);
202
326
  }
203
327
  catch (first) {
204
328
  // No browser on this machine yet, or Playwright moved to a newer build than the one
@@ -207,22 +331,35 @@ export function browserTools(deps) {
207
331
  if (!/executable doesn't exist|please run.*install/i.test(String(first))) {
208
332
  return say(`Could not start a browser: ${first instanceof Error ? first.message : String(first)}`, true);
209
333
  }
210
- deps.onNote('browser: fetching Chromium (first use on this machine)');
211
- const ok = await installChromium();
334
+ const ok = await ensureBrowser((t) => deps.onNote(`browser: ${t}`));
212
335
  if (!ok) {
213
336
  return say('This machine has no browser and it could not be fetched. Say so on the card — ' +
214
337
  'do not try to install anything yourself.', true);
215
338
  }
216
339
  try {
217
- browser = await chromium.launch({ headless: true });
340
+ browser = await chromium.launch(HEADLESS_FULL);
218
341
  }
219
342
  catch (e) {
220
343
  return say(`Browser still will not start: ${e instanceof Error ? e.message : String(e)}`, true);
221
344
  }
222
345
  }
223
- // A session saved by an earlier card, so this one does not sign in again.
224
- const saved = existsSync(sessionFile(site)) ? sessionFile(site) : undefined;
225
- const context = await browser.newContext(saved ? { storageState: saved } : {});
346
+ // A session signed in by an earlier card, on this machine or on any OTHER agent's — it
347
+ // comes from FlareDeck, so one sign-in serves the whole workspace. Read whole, because
348
+ // being signed in is not only cookies: see session.ts.
349
+ const got = await loadSession(deps.repo, credential, (t) => deps.onNote(`browser: ${t}`));
350
+ if (!got.ok) {
351
+ // Sessions are in FlareDeck and nowhere else, so there is nothing to fall back to and
352
+ // nothing to be gained by opening the page anyway: it would come up signed out, the
353
+ // sign-in wall would be detected, and the request for a sign-in would then fail for
354
+ // the same reason. Stopping here says the true thing once.
355
+ await closeQuietly();
356
+ return say(`FlareDeck could not be reached, so the sign-in for this site is not available: ${got.why}\n\n` +
357
+ `Sign-in sessions are kept in FlareDeck and nowhere else, so there is no local copy ` +
358
+ `to fall back to. Nothing is wrong with the card — say so on it and try again once ` +
359
+ `FlareDeck is reachable.`, true);
360
+ }
361
+ const stored = got.value;
362
+ const context = await contextFor(browser, stored);
226
363
  const page = await context.newPage();
227
364
  const url = `${base.replace(/\/+$/, '')}${path ? (path.startsWith('/') ? path : `/${path}`) : ''}`;
228
365
  try {
@@ -232,19 +369,43 @@ export function browserTools(deps) {
232
369
  await closeQuietly();
233
370
  return say(`Could not open ${url}: ${e instanceof Error ? e.message : String(e)}`, true);
234
371
  }
235
- live = { browser, context, page, site };
236
- deps.onNote(`browser: ${url}${saved ? ' (signed in from an earlier session)' : ''}`);
372
+ // IndexedDB can only be written once the databases exist, so it goes back AFTER the
373
+ // first navigation, and the reload inside is what lets the app read it on init.
374
+ // Without this a Firebase app restores silently as nobody — measured, not assumed.
375
+ if (await restoreIndexedDb(page, stored)) {
376
+ await page.waitForLoadState('domcontentloaded', { timeout: 10_000 }).catch(() => { });
377
+ }
378
+ await settle(page);
379
+ live = { browser, context, page, site, credential };
380
+ deps.onNote(`browser: ${url}${stored ? ' (signed in from an earlier session)' : ''}`);
237
381
  const creds = Object.entries(deps.contract()?.credentials ?? {})
238
382
  .map(([who, v]) => typeof v === 'string' ? ` · ${who}: ${v}` : ` · ${who}: ${v.username ?? ''} / ${v.password ?? ''}`)
239
383
  .join('\n');
240
384
  const learned = Object.entries(memory.recipes)
241
385
  .map(([about, how]) => ` · ${about}: ${how}`).join('\n');
242
- return say(`Open at ${url}${saved ? ', already signed in from an earlier session' : ''}.\n\n` +
386
+ // A login page looks, from inside a snapshot, exactly like "the thing I was sent to
387
+ // find is not here". Saying so outright is what stops the next twenty minutes being
388
+ // spent on it. Leads the answer, because it changes what the whole turn should do.
389
+ const wall = await signInWall(page);
390
+ if (wall.wall) {
391
+ deps.onNote(`browser: ${url} is a sign-in wall (${wall.how})`);
392
+ return say(`${wallBrief(wall, url)}\n\nWhat is on it:\n${await describe(page)}`);
393
+ }
394
+ return say(`Open at ${url}${stored ? ', already signed in from an earlier session' : ''}.\n\n` +
243
395
  `${await describe(page)}\n` +
244
396
  (learned ? `\nWhat earlier sessions learned about ${site}:\n${learned}\n` : '') +
245
- (!saved && creds ? `\nSign-ins this project published:\n${creds}\n` : ''));
397
+ (!stored && creds ? `\nSign-ins this project published:\n${creds}\n` : ''));
398
+ }),
399
+ tool('look', 'What is on the page now. Use after an action to see what changed.', {}, async () => {
400
+ const { page } = needPage();
401
+ await settle(page);
402
+ // A session can die mid-turn as easily as before it — a revoked token, an expiry, a
403
+ // sign-out elsewhere. An agent that walked into a wall between two clicks would
404
+ // otherwise carry on reading a login form as though it were the app.
405
+ const wall = await signInWall(page);
406
+ const seen = await describe(page);
407
+ return say(wall.wall ? `${wallBrief(wall, page.url())}\n\nWhat is on it:\n${seen}` : seen);
246
408
  }),
247
- tool('look', 'What is on the page now. Use after an action to see what changed.', {}, async () => say(await describe(needPage().page))),
248
409
  tool('click', 'Click something by what it IS, as the page describes it — a role and its name, taken ' +
249
410
  'from the snapshot you were given. Never a CSS selector.', {
250
411
  role: z.string().describe('The role, e.g. "button", "link", "checkbox".'),
@@ -260,6 +421,8 @@ export function browserTools(deps) {
260
421
  `What is actually on the page:\n${await describe(page)}`, true);
261
422
  }
262
423
  await page.waitForLoadState('domcontentloaded', { timeout: 10_000 }).catch(() => { });
424
+ // What a click DID is usually drawn after the navigation settles, not with it.
425
+ await settle(page);
263
426
  return say(`Clicked ${role} "${name}".\n\n${await describe(page)}`);
264
427
  }),
265
428
  tool('fill', 'Type into a field, named the way the page describes it.', {
@@ -305,10 +468,15 @@ export function browserTools(deps) {
305
468
  const memory = loadMemory(site);
306
469
  memory.recipes[about.trim().toLowerCase()] = how.trim();
307
470
  saveMemory(site, memory);
308
- // Signed in once, signed in for every card after this.
471
+ // Signed in once, signed in for every card after this — and, since the session goes to
472
+ // FlareDeck rather than this disk, for every other agent in the workspace that needs
473
+ // the same site. Awaited so a failure is reported rather than lost: there is no local
474
+ // copy behind it any more.
309
475
  if (live) {
310
476
  try {
311
- await live.context.storageState({ path: sessionFile(site) });
477
+ const kept = await saveSession(deps.repo, live.credential, await captureSession(live.context, live.page), (t) => deps.onNote(`browser: ${t}`));
478
+ if (!kept.ok)
479
+ deps.onNote(`browser: the signed-in session was NOT saved (${kept.message})`);
312
480
  }
313
481
  catch { /* best effort */ }
314
482
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -149,8 +149,14 @@ export declare const configDir: () => string;
149
149
  export declare const configPath: (repo: string) => string;
150
150
  export declare function loadConfig(repo?: string): Config | null;
151
151
  export declare function saveConfig(config: Config): string;
152
+ type GitHubLogin = NonNullable<Config['github']>;
153
+ export declare function loadGitHub(): GitHubLogin | null;
154
+ export declare function saveGitHub(login: GitHubLogin): void;
155
+ /** Forget the machine's GitHub login, so the next one is a fresh sign-in rather than a reuse. */
156
+ export declare function forgetGitHub(): void;
152
157
  export declare function loadMe(): Tokens | null;
153
158
  export declare function saveMe(tokens: Tokens): string;
154
159
  export declare function forgetConfig(repo: string): boolean;
155
160
  /** Config with defaults filled in — for commands that can run before `login` has written one. */
156
161
  export declare function configOrDefaults(repo?: string): Config;
162
+ export {};
package/dist/config.js CHANGED
@@ -35,7 +35,8 @@ export function loadConfig(repo = process.cwd()) {
35
35
  ...(raw.tenantId ? { tenantId: raw.tenantId } : {}),
36
36
  ...(raw.apiKey ? { apiKey: raw.apiKey } : {}),
37
37
  ...(raw.oauth ? { oauth: raw.oauth } : {}),
38
- ...(raw.github ? { github: raw.github } : {}),
38
+ // The machine's login wins; a repo's own is only what was stored before there was one.
39
+ ...((github) => (github ? { github } : {}))(loadGitHub() ?? raw.github),
39
40
  ...(raw.baseBranch ? { baseBranch: raw.baseBranch } : {}),
40
41
  ...(raw.runs ? { runs: raw.runs } : {}),
41
42
  agentServiceUrl: raw.agentServiceUrl ?? DEFAULTS.agentServiceUrl,
@@ -64,13 +65,46 @@ function readableConfig(repo) {
64
65
  export function saveConfig(config) {
65
66
  const path = configPath(config.repo);
66
67
  mkdirSync(dirname(path), { recursive: true });
68
+ // The GitHub login is the machine's, not the repo's — see githubPath.
69
+ const { github, ...rest } = config;
70
+ if (github)
71
+ saveGitHub(github);
67
72
  // 0600: the file holds an API key that can comment on and move cards across the whole tenant.
68
73
  // `mode` on writeFileSync only applies when the file is CREATED, so an existing one keeps
69
74
  // whatever it had — chmod every time instead of trusting the first write.
70
- writeFileSync(path, `${JSON.stringify(config, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
75
+ writeFileSync(path, `${JSON.stringify(rest, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
71
76
  chmodSync(path, 0o600);
72
77
  return path;
73
78
  }
79
+ /**
80
+ * ONE GitHub login per machine, shared by every repo's agent.
81
+ *
82
+ * It used to be one per repo, and that is what killed them: GitHub keeps ten tokens per person
83
+ * per OAuth app and cancels the oldest when another is issued. Eleven repos meant eleven logins,
84
+ * so every new login silently revoked some other agent's token, which then found out at
85
+ * push_branch with "Invalid username or token" after doing the card's work. One login here
86
+ * uses one slot, and signing in again replaces it for every agent at once.
87
+ */
88
+ const githubPath = () => join(configDir(), 'github.json');
89
+ export function loadGitHub() {
90
+ try {
91
+ const raw = JSON.parse(readFileSync(githubPath(), 'utf8'));
92
+ return raw?.accessToken ? raw : null;
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
98
+ export function saveGitHub(login) {
99
+ const path = githubPath();
100
+ mkdirSync(dirname(path), { recursive: true });
101
+ writeFileSync(path, `${JSON.stringify(login, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
102
+ chmodSync(path, 0o600);
103
+ }
104
+ /** Forget the machine's GitHub login, so the next one is a fresh sign-in rather than a reuse. */
105
+ export function forgetGitHub() {
106
+ rmSync(githubPath(), { force: true });
107
+ }
74
108
  /** Forget this repo's agent, so the next login is a clean choice of account. */
75
109
  /**
76
110
  * A PERSON's FlareDeck login on this machine — not any agent's. Kept apart from the repo
@@ -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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"}