@wjarka/cezarion 0.14.9-dev.913 → 0.14.9-dev.933
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.
- package/dist/core/provider-auth.d.ts +99 -1
- package/dist/core/provider-auth.js +203 -2
- package/dist/core/provider-auth.js.map +1 -1
- package/dist/server/provider-auth-runtime.d.ts +30 -4
- package/dist/server/provider-auth-runtime.js +71 -6
- package/dist/server/provider-auth-runtime.js.map +1 -1
- package/dist/workspace/agent-profiles.d.ts +22 -0
- package/dist/workspace/agent-profiles.js +15 -0
- package/dist/workspace/agent-profiles.js.map +1 -1
- package/package.json +3 -3
|
@@ -44,6 +44,10 @@ export interface RuntimeAuthFailureReport {
|
|
|
44
44
|
status: 'disconnected';
|
|
45
45
|
authFailureId: string;
|
|
46
46
|
};
|
|
47
|
+
/** The incident's generation at report time. A self-check that starts asynchronously (the
|
|
48
|
+
* runtime watcher resolves the failing account first) carries it through so the check can
|
|
49
|
+
* stand down when a newer failure replaced the incident it was triggered by. */
|
|
50
|
+
generation: number;
|
|
47
51
|
/** True only for the global latch edge, so callers can fan out one coarse
|
|
48
52
|
* status update while every affected task still records its own callout. */
|
|
49
53
|
transitioned: boolean;
|
|
@@ -53,14 +57,26 @@ export declare class ProviderAuthService {
|
|
|
53
57
|
private readonly now;
|
|
54
58
|
private readonly platform;
|
|
55
59
|
private readonly createAuthFailureId;
|
|
60
|
+
private readonly scheduleRuntimeRetry;
|
|
56
61
|
private readonly runtimeFailures;
|
|
62
|
+
/** One self-check at a time per provider, and not more often than the cooldown. Both guard the
|
|
63
|
+
* same thing — a CLI spawn per auth-shaped error line — from the two directions it can arrive
|
|
64
|
+
* from: concurrently, and in quick succession. */
|
|
65
|
+
private readonly verifyingRuntimeFailures;
|
|
66
|
+
private readonly lastRuntimeVerification;
|
|
67
|
+
/** One pending cooldown-expiry re-check per provider, cancellable. See
|
|
68
|
+
* {@link ProviderAuthService.scheduleRuntimeVerification}. */
|
|
69
|
+
private readonly deferredRuntimeVerifications;
|
|
57
70
|
private nextRuntimeFailureGeneration;
|
|
58
71
|
private nextProbeGeneration;
|
|
59
72
|
private completed?;
|
|
60
73
|
private inFlight?;
|
|
61
74
|
/** Per-account probe results, keyed by `profileCacheKey` (spec 2026-07-29-agent-profiles).
|
|
62
75
|
* Separate from `completed` because a second Claude login is a different answer to the same
|
|
63
|
-
* question, and sharing one slot would let whichever probe ran last speak for both.
|
|
76
|
+
* question, and sharing one slot would let whichever probe ran last speak for both. Each
|
|
77
|
+
* entry carries the generation of the probe that wrote it, so an older probe landing after a
|
|
78
|
+
* newer verification cannot overwrite the correction — the fence `completed` gets from
|
|
79
|
+
* `startFreshProbe`/`rememberProbedRow`, on this cache's own key. */
|
|
64
80
|
private readonly completedProfiles;
|
|
65
81
|
private readonly inFlightProfiles;
|
|
66
82
|
constructor(options?: {
|
|
@@ -68,6 +84,7 @@ export declare class ProviderAuthService {
|
|
|
68
84
|
now?: () => number;
|
|
69
85
|
platform?: NodeJS.Platform;
|
|
70
86
|
createAuthFailureId?: () => string;
|
|
87
|
+
scheduleRuntimeRetry?: (fn: () => void, delayMs: number) => () => void;
|
|
71
88
|
});
|
|
72
89
|
/**
|
|
73
90
|
* Every provider's authentication state — STALE-WHILE-REVALIDATE, the same policy the health
|
|
@@ -90,6 +107,87 @@ export declare class ProviderAuthService {
|
|
|
90
107
|
/** Clear only the incident the caller actually observed. A stale retry must
|
|
91
108
|
* never erase a rejection that arrived after the user began recovery. */
|
|
92
109
|
clearRuntimeAuthFailure(provider: ProviderId, authFailureId: string): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Ask the provider's OWN CLI whether a runtime rejection was real, and drop the incident when it
|
|
112
|
+
* was not. Resolves to the recovered row when it cleared one, `null` otherwise.
|
|
113
|
+
*
|
|
114
|
+
* `profile` aims the self-check at the account the failing step actually ran under (spec
|
|
115
|
+
* 2026-07-29-agent-profiles). Probing the bare default instead would answer a question nobody
|
|
116
|
+
* asked: a named account can be rejected while the default login is fine, and clearing the latch
|
|
117
|
+
* on the default's answer lets every future run on the broken account fail again. A named
|
|
118
|
+
* verification writes the per-account cache and stamps its row `profileId`; the default
|
|
119
|
+
* verification keeps folding into the whole-response cache exactly as before. The CALLER decides
|
|
120
|
+
* what to do when the recorded account cannot be resolved — for the runtime watcher that is
|
|
121
|
+
* "keep the latch" (an unverifiable incident is not a recovered one).
|
|
122
|
+
*
|
|
123
|
+
* A latch is raised by matching a runner's error text against
|
|
124
|
+
* {@link isRuntimeProviderAuthFailure} — a heuristic over vendor prose — and it then outranks every
|
|
125
|
+
* probe (`withRuntimeFailures`). Before this existed, `clearRuntimeAuthFailure` had exactly one
|
|
126
|
+
* caller, `POST /providers/:provider/retry`, so the only way out of a latch was a human opening
|
|
127
|
+
* Settings and pressing "Try again". That button clears the incident and re-probes, and it works,
|
|
128
|
+
* which is the whole diagnosis: the credentials were still there. A transient 401 and a false
|
|
129
|
+
* positive of the text match were both indistinguishable from a real logout, and both parked the
|
|
130
|
+
* cockpit until someone clicked.
|
|
131
|
+
*
|
|
132
|
+
* So the latch stays authoritative — it is raised instantly, and `provider-action-gate` keeps
|
|
133
|
+
* refusing to start runs against it — but it no longer stands unexamined. This is deliberately the
|
|
134
|
+
* same two steps the retry route performs, minus the human: probe, then clear.
|
|
135
|
+
*
|
|
136
|
+
* What it will NOT do:
|
|
137
|
+
* - clear an incident it did not observe. The id is captured before the probe and handed to
|
|
138
|
+
* `clearRuntimeAuthFailure`, so a rejection that arrives mid-probe survives the answer to an
|
|
139
|
+
* older question.
|
|
140
|
+
* - clear on anything but `connected`. `disconnected`, `not-installed` and `unknown` all leave the
|
|
141
|
+
* latch alone; an inconclusive probe is not evidence of health.
|
|
142
|
+
* - spawn more than one probe per provider per {@link RUNTIME_AUTH_VERIFY_COOLDOWN_MS}. A
|
|
143
|
+
* verification skipped by that cooldown returns `null`, leaves the latch standing, and arms ONE
|
|
144
|
+
* deferred re-verification at cooldown expiry
|
|
145
|
+
* ({@link ProviderAuthService.scheduleRuntimeVerification}) — the runtime watcher fires only on
|
|
146
|
+
* the latch edge, so without it a re-latch inside the window could never be re-checked.
|
|
147
|
+
*
|
|
148
|
+
* `observed` names the incident generation the CALLER saw when it decided to check. The runtime
|
|
149
|
+
* watcher resolves the failing account asynchronously before calling this, and a newer failure
|
|
150
|
+
* can replace the incident during that wait — a check for the older question then stands down
|
|
151
|
+
* at the door (no probe) instead of answering the newer one with the older aim.
|
|
152
|
+
*/
|
|
153
|
+
verifyRuntimeAuthFailure(provider: ProviderId, profile?: {
|
|
154
|
+
id: string;
|
|
155
|
+
configDir: string | null;
|
|
156
|
+
}, observed?: {
|
|
157
|
+
generation: number;
|
|
158
|
+
}): Promise<ProviderStatus | null>;
|
|
159
|
+
/**
|
|
160
|
+
* A verification declined by the cooldown must not become a dead end. The runtime watcher fires
|
|
161
|
+
* only on the latch edge — a rejection that re-latches right after a successful check gets its
|
|
162
|
+
* check declined here, and nothing would ever re-ask the CLI: later error lines see a latch that
|
|
163
|
+
* already stands, and only Settings' Try again could clear it. So the declined request arms ONE
|
|
164
|
+
* deferred re-verification at cooldown expiry; later declined requests re-arm it (never stack
|
|
165
|
+
* it), the newest aim and generation winning. The retry is bound to the incident it was
|
|
166
|
+
* scheduled against: a newer failure that arrived meanwhile (a non-transition line the watcher
|
|
167
|
+
* skips) stands when it fires, because the queued aim may no longer be the account that failed
|
|
168
|
+
* and its answer must not clear what it was never asked about. Firing after the latch is gone
|
|
169
|
+
* is equally a no-op — {@link ProviderAuthService.verifyRuntimeAuthFailure} returns before
|
|
170
|
+
* probing — so the chain ends the moment the incident is answered.
|
|
171
|
+
*/
|
|
172
|
+
private scheduleRuntimeVerification;
|
|
173
|
+
/**
|
|
174
|
+
* Fold ONE freshly probed row into the cached response.
|
|
175
|
+
*
|
|
176
|
+
* Without this, dropping a latch would uncover whatever the last full probe happened to say about
|
|
177
|
+
* that provider — which can be older than the answer we just got, and on a cold-ish cache can be
|
|
178
|
+
* `unknown`. Clearing an incident only to reveal a stale contradiction would trade a red banner for
|
|
179
|
+
* a grey one. The cache TIMESTAMP is deliberately untouched: this corrects one row, it is not a
|
|
180
|
+
* full probe, and it must not extend the whole response's lifetime.
|
|
181
|
+
*
|
|
182
|
+
* The row also carries a FRESH generation, and a generation alone is not enough when the cache is
|
|
183
|
+
* cold: a full probe already in flight would land afterwards and, being a complete response, would
|
|
184
|
+
* replace the correction with rows gathered before the recovery was known (or discard it outright
|
|
185
|
+
* when `completed` is still unset). So when nothing is cached yet, the merge waits for the
|
|
186
|
+
* in-flight probe to land and folds over ITS answer — still generation-stamped, so a probe that
|
|
187
|
+
* started even later wins on its own merits.
|
|
188
|
+
*/
|
|
189
|
+
private rememberProbedRow;
|
|
190
|
+
private mergeProbedRow;
|
|
93
191
|
/**
|
|
94
192
|
* The command that logs `provider` in, as a copyable one-liner.
|
|
95
193
|
*
|
|
@@ -47,6 +47,18 @@ const COMMAND_TIMEOUT_MS = 10_000;
|
|
|
47
47
|
*/
|
|
48
48
|
const CONNECTED_TTL_MS = 10 * 60_000;
|
|
49
49
|
const UNSETTLED_TTL_MS = 60_000;
|
|
50
|
+
/**
|
|
51
|
+
* How long before the same provider may be self-checked again after a runtime rejection
|
|
52
|
+
* (`verifyRuntimeAuthFailure`).
|
|
53
|
+
*
|
|
54
|
+
* A latch is raised from a PATTERN MATCH on a runner's error text, and a single failing run can emit
|
|
55
|
+
* several auth-shaped lines in a row. Without a floor, each line that re-latches after a successful
|
|
56
|
+
* self-check would buy its own CLI spawn. One self-check a minute is plenty for the case this exists
|
|
57
|
+
* for — a rejection that was transient against credentials that are still valid — and it bounds the
|
|
58
|
+
* pathological case (a CLI that reports logged in while the vendor keeps rejecting the token) to one
|
|
59
|
+
* probe per minute instead of one per error line.
|
|
60
|
+
*/
|
|
61
|
+
const RUNTIME_AUTH_VERIFY_COOLDOWN_MS = 60_000;
|
|
50
62
|
/** The lifetime for a set of rows: minutes only when EVERY row is connected. A mixed answer takes
|
|
51
63
|
* the short window, because the not-connected row in it is the one that might self-heal.
|
|
52
64
|
*
|
|
@@ -274,19 +286,38 @@ function descriptorFor(provider) {
|
|
|
274
286
|
throw new Error(`Unknown provider: ${provider}`);
|
|
275
287
|
return descriptor;
|
|
276
288
|
}
|
|
289
|
+
/** One deferred re-verification when the cooldown declines a check. Detached and unref'd by
|
|
290
|
+
* default; tests capture the retry instead of waiting out the window. */
|
|
291
|
+
function defaultScheduleRuntimeRetry(fn, delayMs) {
|
|
292
|
+
const timer = setTimeout(fn, delayMs);
|
|
293
|
+
timer.unref();
|
|
294
|
+
return () => clearTimeout(timer);
|
|
295
|
+
}
|
|
277
296
|
export class ProviderAuthService {
|
|
278
297
|
runCommand;
|
|
279
298
|
now;
|
|
280
299
|
platform;
|
|
281
300
|
createAuthFailureId;
|
|
301
|
+
scheduleRuntimeRetry;
|
|
282
302
|
runtimeFailures = new Map();
|
|
303
|
+
/** One self-check at a time per provider, and not more often than the cooldown. Both guard the
|
|
304
|
+
* same thing — a CLI spawn per auth-shaped error line — from the two directions it can arrive
|
|
305
|
+
* from: concurrently, and in quick succession. */
|
|
306
|
+
verifyingRuntimeFailures = new Set();
|
|
307
|
+
lastRuntimeVerification = new Map();
|
|
308
|
+
/** One pending cooldown-expiry re-check per provider, cancellable. See
|
|
309
|
+
* {@link ProviderAuthService.scheduleRuntimeVerification}. */
|
|
310
|
+
deferredRuntimeVerifications = new Map();
|
|
283
311
|
nextRuntimeFailureGeneration = 0;
|
|
284
312
|
nextProbeGeneration = 0;
|
|
285
313
|
completed;
|
|
286
314
|
inFlight;
|
|
287
315
|
/** Per-account probe results, keyed by `profileCacheKey` (spec 2026-07-29-agent-profiles).
|
|
288
316
|
* Separate from `completed` because a second Claude login is a different answer to the same
|
|
289
|
-
* question, and sharing one slot would let whichever probe ran last speak for both.
|
|
317
|
+
* question, and sharing one slot would let whichever probe ran last speak for both. Each
|
|
318
|
+
* entry carries the generation of the probe that wrote it, so an older probe landing after a
|
|
319
|
+
* newer verification cannot overwrite the correction — the fence `completed` gets from
|
|
320
|
+
* `startFreshProbe`/`rememberProbedRow`, on this cache's own key. */
|
|
290
321
|
completedProfiles = new Map();
|
|
291
322
|
inFlightProfiles = new Map();
|
|
292
323
|
constructor(options) {
|
|
@@ -294,6 +325,7 @@ export class ProviderAuthService {
|
|
|
294
325
|
this.now = options?.now ?? Date.now;
|
|
295
326
|
this.platform = options?.platform ?? process.platform;
|
|
296
327
|
this.createAuthFailureId = options?.createAuthFailureId ?? randomUUID;
|
|
328
|
+
this.scheduleRuntimeRetry = options?.scheduleRuntimeRetry ?? defaultScheduleRuntimeRetry;
|
|
297
329
|
}
|
|
298
330
|
/**
|
|
299
331
|
* Every provider's authentication state — STALE-WHILE-REVALIDATE, the same policy the health
|
|
@@ -349,6 +381,7 @@ export class ProviderAuthService {
|
|
|
349
381
|
hint: RUNTIME_AUTH_HINT,
|
|
350
382
|
authFailureId: failure.authFailureId,
|
|
351
383
|
},
|
|
384
|
+
generation: failure.generation,
|
|
352
385
|
transitioned: current === undefined,
|
|
353
386
|
};
|
|
354
387
|
}
|
|
@@ -361,6 +394,167 @@ export class ProviderAuthService {
|
|
|
361
394
|
this.runtimeFailures.delete(provider);
|
|
362
395
|
return true;
|
|
363
396
|
}
|
|
397
|
+
/**
|
|
398
|
+
* Ask the provider's OWN CLI whether a runtime rejection was real, and drop the incident when it
|
|
399
|
+
* was not. Resolves to the recovered row when it cleared one, `null` otherwise.
|
|
400
|
+
*
|
|
401
|
+
* `profile` aims the self-check at the account the failing step actually ran under (spec
|
|
402
|
+
* 2026-07-29-agent-profiles). Probing the bare default instead would answer a question nobody
|
|
403
|
+
* asked: a named account can be rejected while the default login is fine, and clearing the latch
|
|
404
|
+
* on the default's answer lets every future run on the broken account fail again. A named
|
|
405
|
+
* verification writes the per-account cache and stamps its row `profileId`; the default
|
|
406
|
+
* verification keeps folding into the whole-response cache exactly as before. The CALLER decides
|
|
407
|
+
* what to do when the recorded account cannot be resolved — for the runtime watcher that is
|
|
408
|
+
* "keep the latch" (an unverifiable incident is not a recovered one).
|
|
409
|
+
*
|
|
410
|
+
* A latch is raised by matching a runner's error text against
|
|
411
|
+
* {@link isRuntimeProviderAuthFailure} — a heuristic over vendor prose — and it then outranks every
|
|
412
|
+
* probe (`withRuntimeFailures`). Before this existed, `clearRuntimeAuthFailure` had exactly one
|
|
413
|
+
* caller, `POST /providers/:provider/retry`, so the only way out of a latch was a human opening
|
|
414
|
+
* Settings and pressing "Try again". That button clears the incident and re-probes, and it works,
|
|
415
|
+
* which is the whole diagnosis: the credentials were still there. A transient 401 and a false
|
|
416
|
+
* positive of the text match were both indistinguishable from a real logout, and both parked the
|
|
417
|
+
* cockpit until someone clicked.
|
|
418
|
+
*
|
|
419
|
+
* So the latch stays authoritative — it is raised instantly, and `provider-action-gate` keeps
|
|
420
|
+
* refusing to start runs against it — but it no longer stands unexamined. This is deliberately the
|
|
421
|
+
* same two steps the retry route performs, minus the human: probe, then clear.
|
|
422
|
+
*
|
|
423
|
+
* What it will NOT do:
|
|
424
|
+
* - clear an incident it did not observe. The id is captured before the probe and handed to
|
|
425
|
+
* `clearRuntimeAuthFailure`, so a rejection that arrives mid-probe survives the answer to an
|
|
426
|
+
* older question.
|
|
427
|
+
* - clear on anything but `connected`. `disconnected`, `not-installed` and `unknown` all leave the
|
|
428
|
+
* latch alone; an inconclusive probe is not evidence of health.
|
|
429
|
+
* - spawn more than one probe per provider per {@link RUNTIME_AUTH_VERIFY_COOLDOWN_MS}. A
|
|
430
|
+
* verification skipped by that cooldown returns `null`, leaves the latch standing, and arms ONE
|
|
431
|
+
* deferred re-verification at cooldown expiry
|
|
432
|
+
* ({@link ProviderAuthService.scheduleRuntimeVerification}) — the runtime watcher fires only on
|
|
433
|
+
* the latch edge, so without it a re-latch inside the window could never be re-checked.
|
|
434
|
+
*
|
|
435
|
+
* `observed` names the incident generation the CALLER saw when it decided to check. The runtime
|
|
436
|
+
* watcher resolves the failing account asynchronously before calling this, and a newer failure
|
|
437
|
+
* can replace the incident during that wait — a check for the older question then stands down
|
|
438
|
+
* at the door (no probe) instead of answering the newer one with the older aim.
|
|
439
|
+
*/
|
|
440
|
+
async verifyRuntimeAuthFailure(provider, profile, observed) {
|
|
441
|
+
if (process.env.CEZ_DRY_RUN === '1' || providerAuthChecksDisabled())
|
|
442
|
+
return null;
|
|
443
|
+
const failure = this.runtimeFailures.get(provider);
|
|
444
|
+
if (!failure)
|
|
445
|
+
return null;
|
|
446
|
+
const expectedGeneration = observed?.generation ?? failure.generation;
|
|
447
|
+
if (failure.generation !== expectedGeneration)
|
|
448
|
+
return null;
|
|
449
|
+
if (this.verifyingRuntimeFailures.has(provider))
|
|
450
|
+
return null;
|
|
451
|
+
const lastVerifiedAt = this.lastRuntimeVerification.get(provider);
|
|
452
|
+
if (lastVerifiedAt !== undefined && this.now() - lastVerifiedAt < RUNTIME_AUTH_VERIFY_COOLDOWN_MS) {
|
|
453
|
+
this.scheduleRuntimeVerification(provider, profile, RUNTIME_AUTH_VERIFY_COOLDOWN_MS - (this.now() - lastVerifiedAt), expectedGeneration);
|
|
454
|
+
return null;
|
|
455
|
+
}
|
|
456
|
+
this.verifyingRuntimeFailures.add(provider);
|
|
457
|
+
let probed;
|
|
458
|
+
try {
|
|
459
|
+
this.lastRuntimeVerification.set(provider, this.now());
|
|
460
|
+
probed = await this.probe(descriptorFor(provider), profile?.configDir);
|
|
461
|
+
}
|
|
462
|
+
finally {
|
|
463
|
+
this.verifyingRuntimeFailures.delete(provider);
|
|
464
|
+
}
|
|
465
|
+
if (probed.status !== 'connected')
|
|
466
|
+
return null;
|
|
467
|
+
// Fence the clear against the captured GENERATION, not just the id: while the latch stands a
|
|
468
|
+
// new failure report keeps the same `authFailureId`, so an id comparison alone would let this
|
|
469
|
+
// answer — gathered for the incident as it was — clear a newer failure reported mid-probe,
|
|
470
|
+
// one the latch-edge watcher will never re-check. Generations are unique per report.
|
|
471
|
+
const current = this.runtimeFailures.get(provider);
|
|
472
|
+
if (!current || current.generation !== expectedGeneration)
|
|
473
|
+
return null;
|
|
474
|
+
if (!this.clearRuntimeAuthFailure(provider, failure.authFailureId))
|
|
475
|
+
return null;
|
|
476
|
+
if (profile) {
|
|
477
|
+
// Per-account knowledge goes to the per-account cache. Folding it into the whole-response
|
|
478
|
+
// cache would let a named account's answer speak for the default row for the TTL that
|
|
479
|
+
// follows — the same sharing bug the `(provider, profileId)` key was introduced to prevent.
|
|
480
|
+
// The FRESH generation fences the write against an older per-account probe that is still in
|
|
481
|
+
// flight and lands afterwards.
|
|
482
|
+
const stamped = { ...probed, profileId: profile.id };
|
|
483
|
+
this.completedProfiles.set(profileCacheKey(provider, profile.id), {
|
|
484
|
+
status: stamped,
|
|
485
|
+
timestamp: this.now(),
|
|
486
|
+
generation: ++this.nextProbeGeneration,
|
|
487
|
+
});
|
|
488
|
+
return stamped;
|
|
489
|
+
}
|
|
490
|
+
this.rememberProbedRow(probed);
|
|
491
|
+
return probed;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* A verification declined by the cooldown must not become a dead end. The runtime watcher fires
|
|
495
|
+
* only on the latch edge — a rejection that re-latches right after a successful check gets its
|
|
496
|
+
* check declined here, and nothing would ever re-ask the CLI: later error lines see a latch that
|
|
497
|
+
* already stands, and only Settings' Try again could clear it. So the declined request arms ONE
|
|
498
|
+
* deferred re-verification at cooldown expiry; later declined requests re-arm it (never stack
|
|
499
|
+
* it), the newest aim and generation winning. The retry is bound to the incident it was
|
|
500
|
+
* scheduled against: a newer failure that arrived meanwhile (a non-transition line the watcher
|
|
501
|
+
* skips) stands when it fires, because the queued aim may no longer be the account that failed
|
|
502
|
+
* and its answer must not clear what it was never asked about. Firing after the latch is gone
|
|
503
|
+
* is equally a no-op — {@link ProviderAuthService.verifyRuntimeAuthFailure} returns before
|
|
504
|
+
* probing — so the chain ends the moment the incident is answered.
|
|
505
|
+
*/
|
|
506
|
+
scheduleRuntimeVerification(provider, profile, delayMs, generation) {
|
|
507
|
+
this.deferredRuntimeVerifications.get(provider)?.();
|
|
508
|
+
const cancel = this.scheduleRuntimeRetry(() => {
|
|
509
|
+
this.deferredRuntimeVerifications.delete(provider);
|
|
510
|
+
void this.verifyRuntimeAuthFailure(provider, profile, { generation }).catch(() => { });
|
|
511
|
+
}, Math.max(delayMs, 0));
|
|
512
|
+
this.deferredRuntimeVerifications.set(provider, cancel);
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Fold ONE freshly probed row into the cached response.
|
|
516
|
+
*
|
|
517
|
+
* Without this, dropping a latch would uncover whatever the last full probe happened to say about
|
|
518
|
+
* that provider — which can be older than the answer we just got, and on a cold-ish cache can be
|
|
519
|
+
* `unknown`. Clearing an incident only to reveal a stale contradiction would trade a red banner for
|
|
520
|
+
* a grey one. The cache TIMESTAMP is deliberately untouched: this corrects one row, it is not a
|
|
521
|
+
* full probe, and it must not extend the whole response's lifetime.
|
|
522
|
+
*
|
|
523
|
+
* The row also carries a FRESH generation, and a generation alone is not enough when the cache is
|
|
524
|
+
* cold: a full probe already in flight would land afterwards and, being a complete response, would
|
|
525
|
+
* replace the correction with rows gathered before the recovery was known (or discard it outright
|
|
526
|
+
* when `completed` is still unset). So when nothing is cached yet, the merge waits for the
|
|
527
|
+
* in-flight probe to land and folds over ITS answer — still generation-stamped, so a probe that
|
|
528
|
+
* started even later wins on its own merits.
|
|
529
|
+
*/
|
|
530
|
+
rememberProbedRow(status) {
|
|
531
|
+
const generation = ++this.nextProbeGeneration;
|
|
532
|
+
if (this.completed) {
|
|
533
|
+
this.mergeProbedRow(status, generation);
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
const inFlight = this.inFlight;
|
|
537
|
+
if (!inFlight)
|
|
538
|
+
return;
|
|
539
|
+
void inFlight.raw.catch(() => { }).then(() => {
|
|
540
|
+
// A newer full probe landing first (its generation outranks ours) makes this a no-op: its
|
|
541
|
+
// rows are the fresher answer and must not be patched by an older correction.
|
|
542
|
+
if (!this.completed || this.completed.generation >= generation)
|
|
543
|
+
return;
|
|
544
|
+
this.mergeProbedRow(status, generation);
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
mergeProbedRow(status, generation) {
|
|
548
|
+
if (!this.completed)
|
|
549
|
+
return;
|
|
550
|
+
this.completed = {
|
|
551
|
+
...this.completed,
|
|
552
|
+
generation,
|
|
553
|
+
response: {
|
|
554
|
+
providers: this.completed.response.providers.map((row) => (row.provider === status.provider ? status : row)),
|
|
555
|
+
},
|
|
556
|
+
};
|
|
557
|
+
}
|
|
364
558
|
/**
|
|
365
559
|
* The command that logs `provider` in, as a copyable one-liner.
|
|
366
560
|
*
|
|
@@ -444,10 +638,17 @@ export class ProviderAuthService {
|
|
|
444
638
|
const pending = this.inFlightProfiles.get(key);
|
|
445
639
|
if (pending)
|
|
446
640
|
return pending;
|
|
641
|
+
const generation = ++this.nextProbeGeneration;
|
|
447
642
|
const probe = this.probe(descriptorFor(provider), profile.configDir)
|
|
448
643
|
.then((status) => {
|
|
449
644
|
const stamped = { ...status, profileId: profile.id };
|
|
450
|
-
this.completedProfiles.
|
|
645
|
+
const current = this.completedProfiles.get(key);
|
|
646
|
+
// A verification (or newer probe) that wrote while this probe was in flight keeps its
|
|
647
|
+
// place: an older answer must not overwrite a fresher row, the same fence the default
|
|
648
|
+
// cache's generation guard provides. The caller still gets this probe's own answer.
|
|
649
|
+
if (current === undefined || generation >= current.generation) {
|
|
650
|
+
this.completedProfiles.set(key, { status: stamped, timestamp: this.now(), generation });
|
|
651
|
+
}
|
|
451
652
|
return stamped;
|
|
452
653
|
})
|
|
453
654
|
.finally(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-auth.js","sourceRoot":"","sources":["../../src/core/provider-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAU,CAAC;AA0CrF;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,GAAG,CAAC,uBAAuB,CAAC,KAAK,GAAG,CAAC;AAC9C,CAAC;AAWD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC;AACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC;;;;;;oDAMoD;AACpD,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC/F,CAAC;AACD,MAAM,YAAY,GAAG,kDAAkD,CAAC;AACxE,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAClE,MAAM,iBAAiB,GACrB,sEAAsE,CAAC;AACzE,MAAM,aAAa,GAAG,4BAA4B,CAAC;AACnD,MAAM,6BAA6B,GAAG;IACpC,oFAAoF;IACpF,wBAAwB;IACxB,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;CACpE,CAAC;AACX,MAAM,gCAAgC,GAAG;IACvC,oEAAoE;IACpE,gEAAgE;IAChE,8OAA8O;IAC9O,sEAAsE;IACtE,2EAA2E;IAC3E,uEAAuE;IACvE,kDAAkD;IAClD,kOAAkO;CAC1N,CAAC;AAEX,MAAM,UAAU,4BAA4B,CAAC,OAAe;IAC1D,OAAO,CAAC,GAAG,6BAA6B,EAAE,GAAG,gCAAgC,CAAC;SAC3E,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,GAAG,OAAiB;IAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACxE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA6B;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAA2B,CAAC;QAClE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QACzE,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,cAAc,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA6B;IACrD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;SAC1D,GAAG,CAAC,CAAC,IAAI,EAAkC,EAAE;QAC5C,IACE,IAAI,KAAK,yBAAyB;eAC/B,IAAI,KAAK,4BAA4B;eACrC,IAAI,KAAK,gCAAgC;eACzC,IAAI,KAAK,8BAA8B;eACvC,IAAI,KAAK,uCAAuC;eAChD,IAAI,KAAK,wCAAwC;eACjD,0DAA0D,CAAC,IAAI,CAAC,IAAI,CAAC,EACxE,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,iCAAiC,EAAE,CAAC;YAC3E,OAAO,cAAc,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,MAAM,EAAqC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAC5E,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAClF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA6B;IACxD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,KAAK;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC3D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpD,MAAM,oBAAoB,GAAG,KAAK;SAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9E,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC3D,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,mBAAmB,KAAK,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,KAAK,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,OAAO,WAAW,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;AAChF,CAAC;AAED,SAAS,aAAa,CAAC,MAA6B;IAClD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,4DAA4D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClG,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IACE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;WACvD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAChD,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CAAC,MAA6B;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAoD,CAAC;QAC3F,6EAA6E;QAC7E,2EAA2E;QAC3E,iFAAiF;QACjF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3G,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAChF,IAAI,KAAK,CAAC,eAAe,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;eACvD,CAAC,KAAK,CAAC,MAAM,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC;YAAE,OAAO,cAAc,CAAC;QAC/G,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAkC;IACjD;QACE,EAAE,EAAE,QAAQ;QACZ,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ;QACxD,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACxC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC5B,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,iBAAiB;KACzB;IACD;QACE,EAAE,EAAE,OAAO;QACX,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO;QACtD,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/B,SAAS,EAAE,CAAC,OAAO,CAAC;QACpB,WAAW,EAAE,gDAAgD;QAC7D,KAAK,EAAE,gBAAgB;KACxB;IACD;QACE,EAAE,EAAE,UAAU;QACd,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,UAAU;QAC5D,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC5B,WAAW,EAAE,mDAAmD;QAChE,KAAK,EAAE,mBAAmB;KAC3B;IACD;QACE,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI;QAChD,UAAU,EAAE,CAAC,eAAe,CAAC;QAC7B,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,aAAa;KACrB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO;QACvD,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;QAC1C,SAAS,EAAE,CAAC,OAAO,CAAC;QACpB,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,iBAAiB;KACzB;CACF,CAAC;AAEF,SAAS,yBAAyB,CAChC,UAAkB,EAClB,IAAuB,EACvB,SAAiB,EACjB,GAA4B;IAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,QAAQ,CACN,UAAU,EACV,IAAI,EACJ;YACE,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,GAAG,GAAG,IAAI;YACrB,qFAAqF;YACrF,yFAAyF;YACzF,0FAA0F;YAC1F,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,EACD,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,YAAY,GAAG,KAGZ,CAAC;YACV,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC;YAChC,OAAO,CAAC;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,QAAQ,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5D,SAAS,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACtD,QAAQ,EAAE,YAAY,EAAE,IAAI,KAAK,WAAW;uBACvC,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC;aAC1E,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,QAAyB;IACpE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AACpD,CAAC;AAED;mGACmG;AACnG,SAAS,eAAe,CAAC,QAAoB,EAAE,SAAiB;IAC9D,OAAO,GAAG,QAAQ,SAAS,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,QAAoB;IACzC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAClE,OAAO,UAAU,CAAC;AACpB,CAAC;AAmBD,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAqB;IAC/B,GAAG,CAAe;IAClB,QAAQ,CAAkB;IAC1B,mBAAmB,CAAe;IAClC,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IACrE,4BAA4B,GAAG,CAAC,CAAC;IACjC,mBAAmB,GAAG,CAAC,CAAC;IACxB,SAAS,CAIf;IACM,QAAQ,CAGd;IACF;;4FAEwF;IACvE,iBAAiB,GAAG,IAAI,GAAG,EAAyD,CAAC;IACrF,gBAAgB,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE/E,YAAY,OAKX;QACC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,yBAAyB,CAAC;QACnE,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,OAAO,EAAE,mBAAmB,IAAI,UAAU,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAA+B;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,IAAI,0BAA0B,EAAE,EAAE,CAAC;YACpE,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;aAC/E,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,4FAA4F;YAC5F,wDAAwD;YACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC;QAChF,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,2FAA2F;YAC3F,8EAA8E;YAC9E,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5F,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,wBAAwB,CAAC,QAAoB;QAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,IAAI,0BAA0B,EAAE;YAAE,OAAO,IAAI,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,OAAO,GAAuB;YAClC,UAAU,EAAE,EAAE,IAAI,CAAC,4BAA4B;YAC/C,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,mBAAmB,EAAE;SACpE,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO;YACL,MAAM,EAAE;gBACN,QAAQ;gBACR,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,iBAAiB;gBACvB,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC;YACD,YAAY,EAAE,OAAO,KAAK,SAAS;SACpC,CAAC;IACJ,CAAC;IAED;6EACyE;IACzE,uBAAuB,CAAC,QAAoB,EAAE,aAAqB;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,QAAoB,EAAE,SAAyB;QAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7G,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,WAAW,CAAC,QAAoB;QAC9B,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC;IAC7C,CAAC;IAEO,mBAAmB,CAAC,QAAgC;QAC1D,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,OAAO;oBACZ,CAAC,CAAC;wBACA,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,MAAM,EAAE,cAAc;wBACtB,IAAI,EAAE,iBAAiB;wBACvB,aAAa,EAAE,OAAO,CAAC,aAAa;qBACrC;oBACD,CAAC,CAAC,GAAG,CAAC;YACV,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,eAAe;QAIrB,MAAM,UAAU,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;aAC7E,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAClB,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC/D,IAAI,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC;YACnE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;QACL,qEAAqE;QACrE,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,KAAK,GAAG;YACZ,GAAG;YACH,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;SACpE,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,aAAa,CACjB,QAAoB,EACpB,OAAiD;QAEjD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;QAClE,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;aACjE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,OAAO,GAAmB,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5E,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK;gBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CAAC,QAAqB,EAAE,SAAkB;QAC3D,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,QAAoB,EAAE,SAAiB;QACvD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC;IAClF,CAAC;IAED;0DACsD;IACtD,UAAU;QACR,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YACpC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,UAA8B,EAAE,SAAyB;QAC3E,IAAI,MAA6B,CAAC;QAClC,qFAAqF;QACrF,qFAAqF;QACrF,2FAA2F;QAC3F,oBAAoB;QACpB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS;gBAC/B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,kBAAkB,CAAC;gBACrF,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5F,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAC5E,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;QAChE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC5E,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"provider-auth.js","sourceRoot":"","sources":["../../src/core/provider-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,31 @@
|
|
|
1
|
-
import { type ProviderAuthService, type ProviderStatus } from '../core/provider-auth.ts';
|
|
1
|
+
import { type ProviderAuthService, type ProviderId, type ProviderStatus } from '../core/provider-auth.ts';
|
|
2
2
|
import type { RunStore } from '../runs/store.ts';
|
|
3
|
-
|
|
3
|
+
import { type RuntimeAuthVerificationTarget } from '../workspace/agent-profiles.ts';
|
|
4
|
+
/** Where the self-check's probe is aimed. Injectable so tests can pin the account resolution;
|
|
5
|
+
* the default reads `~/.cezar/agent-accounts.json` (see {@link resolveRuntimeAuthVerificationTarget}).
|
|
6
|
+
* Resolving to `null` means "this incident cannot be checked" — the latch then stands. */
|
|
7
|
+
export type RuntimeAuthProfileResolver = (provider: ProviderId, profileId: string | undefined) => Promise<RuntimeAuthVerificationTarget | null>;
|
|
8
|
+
/**
|
|
9
|
+
* Watch a run store for the vendor errors that mean "your credentials were rejected", latch the
|
|
10
|
+
* provider, and — because the latch is only ever as good as the pattern match that raised it —
|
|
11
|
+
* immediately ask the provider's own CLI whether it was true.
|
|
12
|
+
*
|
|
13
|
+
* The self-check is aimed at the account the failing step actually ran under (`step.profileId`,
|
|
14
|
+
* falling back to the run's `agentProfile` for step-less errors): a named account can be rejected
|
|
15
|
+
* while the default login is fine, and verifying the default would clear the latch and let every
|
|
16
|
+
* future run on the broken account fail again. When the recorded account cannot be resolved at
|
|
17
|
+
* all, the incident stays latched — an unverifiable rejection is not a recovered one.
|
|
18
|
+
*
|
|
19
|
+
* `onProviderStatus` carries BOTH edges: the invalidation, and the recovery when the self-check
|
|
20
|
+
* finds the credentials were never gone. One callback rather than two on purpose — every caller
|
|
21
|
+
* wires it to the same `provider-status` fan-out, and the cockpit already folds a `connected` row
|
|
22
|
+
* over a latched one (`applyProviderStatusRow` drops the stale incident id), so recovery needs no
|
|
23
|
+
* new wiring at any of the observer's construction sites. The channel speaks DEFAULT rows (the
|
|
24
|
+
* cockpit's parser drops `profileId`), so a DEFAULT recovery publishes its verified row while a
|
|
25
|
+
* NAMED recovery publishes the provider's current cached default row — the account's own answer
|
|
26
|
+
* stays under the account, and a disconnected default is never shown connected.
|
|
27
|
+
*/
|
|
28
|
+
export declare function watchProviderRuntimeAuthFailures(store: RunStore, providerAuth: ProviderAuthService, onProviderStatus: (status: ProviderStatus) => void, resolveProfile?: RuntimeAuthProfileResolver): () => void;
|
|
4
29
|
/**
|
|
5
30
|
* Process-wide dedupe for store observation. The same boot store is wired
|
|
6
31
|
* before recovery and again when the HTTP app is constructed; lazy stores are
|
|
@@ -9,9 +34,10 @@ export declare function watchProviderRuntimeAuthFailures(store: RunStore, provid
|
|
|
9
34
|
*/
|
|
10
35
|
export declare class ProviderRuntimeAuthObserver {
|
|
11
36
|
private readonly providerAuth;
|
|
12
|
-
private readonly
|
|
37
|
+
private readonly onProviderStatus;
|
|
38
|
+
private readonly resolveProfile;
|
|
13
39
|
private readonly watched;
|
|
14
|
-
constructor(providerAuth: ProviderAuthService,
|
|
40
|
+
constructor(providerAuth: ProviderAuthService, onProviderStatus: (status: ProviderStatus) => void, resolveProfile?: RuntimeAuthProfileResolver);
|
|
15
41
|
watch(store: RunStore): void;
|
|
16
42
|
}
|
|
17
43
|
/**
|
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
import { isRuntimeProviderAuthFailure, } from '../core/provider-auth.js';
|
|
2
|
+
import { resolveRuntimeAuthVerificationTarget, } from '../workspace/agent-profiles.js';
|
|
2
3
|
const AUTH_ERROR_EVENT_TYPES = new Set(['error', 'session.error', 'note']);
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Watch a run store for the vendor errors that mean "your credentials were rejected", latch the
|
|
6
|
+
* provider, and — because the latch is only ever as good as the pattern match that raised it —
|
|
7
|
+
* immediately ask the provider's own CLI whether it was true.
|
|
8
|
+
*
|
|
9
|
+
* The self-check is aimed at the account the failing step actually ran under (`step.profileId`,
|
|
10
|
+
* falling back to the run's `agentProfile` for step-less errors): a named account can be rejected
|
|
11
|
+
* while the default login is fine, and verifying the default would clear the latch and let every
|
|
12
|
+
* future run on the broken account fail again. When the recorded account cannot be resolved at
|
|
13
|
+
* all, the incident stays latched — an unverifiable rejection is not a recovered one.
|
|
14
|
+
*
|
|
15
|
+
* `onProviderStatus` carries BOTH edges: the invalidation, and the recovery when the self-check
|
|
16
|
+
* finds the credentials were never gone. One callback rather than two on purpose — every caller
|
|
17
|
+
* wires it to the same `provider-status` fan-out, and the cockpit already folds a `connected` row
|
|
18
|
+
* over a latched one (`applyProviderStatusRow` drops the stale incident id), so recovery needs no
|
|
19
|
+
* new wiring at any of the observer's construction sites. The channel speaks DEFAULT rows (the
|
|
20
|
+
* cockpit's parser drops `profileId`), so a DEFAULT recovery publishes its verified row while a
|
|
21
|
+
* NAMED recovery publishes the provider's current cached default row — the account's own answer
|
|
22
|
+
* stays under the account, and a disconnected default is never shown connected.
|
|
23
|
+
*/
|
|
24
|
+
export function watchProviderRuntimeAuthFailures(store, providerAuth, onProviderStatus, resolveProfile = resolveRuntimeAuthVerificationTarget) {
|
|
4
25
|
const onEvent = ({ runId, event }) => {
|
|
5
26
|
if (!AUTH_ERROR_EVENT_TYPES.has(event.type))
|
|
6
27
|
return;
|
|
@@ -14,11 +35,16 @@ export function watchProviderRuntimeAuthFailures(store, providerAuth, onInvalida
|
|
|
14
35
|
? run.steps.find(({ id }) => id === event.stepId)
|
|
15
36
|
: undefined;
|
|
16
37
|
const provider = step?.backend ?? run.runner ?? 'claude';
|
|
38
|
+
// The run-level profile belongs to the run's RUNNER: a mixed-backend step failing on another
|
|
39
|
+
// backend ran under THAT backend's own default login, and asking the resolver for the runner's
|
|
40
|
+
// profile under the wrong provider can only mis-answer the check or stall it unresolved.
|
|
41
|
+
const profileId = step?.profileId
|
|
42
|
+
?? (provider === (run.runner ?? 'claude') ? run.agentProfile : undefined);
|
|
17
43
|
const report = providerAuth.reportRuntimeAuthFailure(provider);
|
|
18
44
|
if (!report)
|
|
19
45
|
return;
|
|
20
46
|
if (report.transitioned)
|
|
21
|
-
|
|
47
|
+
onProviderStatus(report.status);
|
|
22
48
|
const duplicate = store.readEvents(runId).some((candidate) => candidate.type === 'provider-auth-required'
|
|
23
49
|
&& candidate.provider === provider
|
|
24
50
|
&& candidate.authFailureId === report.status.authFailureId);
|
|
@@ -30,6 +56,43 @@ export function watchProviderRuntimeAuthFailures(store, providerAuth, onInvalida
|
|
|
30
56
|
...(event.stepId ? { stepId: event.stepId } : {}),
|
|
31
57
|
});
|
|
32
58
|
}
|
|
59
|
+
// The self-check rides the LATCH EDGE, not every matching line: the second and third auth-shaped
|
|
60
|
+
// error of one failing run describe the incident already standing, and re-asking the CLI about it
|
|
61
|
+
// would only spend spawns on an answer we have. The service's own cooldown backstops the case the
|
|
62
|
+
// edge cannot see — a rejection that re-latches right after a successful recovery.
|
|
63
|
+
if (!report.transitioned)
|
|
64
|
+
return;
|
|
65
|
+
// The check carries the incident's generation THROUGH the account-resolution wait: while the
|
|
66
|
+
// resolver is pending a newer failure can replace the incident, and an older question must
|
|
67
|
+
// then stand down rather than answer for it.
|
|
68
|
+
const observed = { generation: report.generation };
|
|
69
|
+
void (async () => {
|
|
70
|
+
const target = await resolveProfile(provider, profileId);
|
|
71
|
+
// An account we cannot name cannot be verified: leave the latch exactly as it stands and let
|
|
72
|
+
// Settings' Try again — which asks no such question — stay the way out.
|
|
73
|
+
if (!target)
|
|
74
|
+
return;
|
|
75
|
+
const recovered = target.kind === 'profile'
|
|
76
|
+
? await providerAuth.verifyRuntimeAuthFailure(provider, {
|
|
77
|
+
id: target.id,
|
|
78
|
+
configDir: target.configDir,
|
|
79
|
+
}, observed)
|
|
80
|
+
: await providerAuth.verifyRuntimeAuthFailure(provider, undefined, observed);
|
|
81
|
+
if (!recovered)
|
|
82
|
+
return;
|
|
83
|
+
if (target.kind !== 'profile') {
|
|
84
|
+
onProviderStatus(recovered);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// A NAMED recovery answers for one account, not for the provider's default login, and this
|
|
88
|
+
// channel carries default rows — the cockpit's parser drops `profileId`, so publishing the
|
|
89
|
+
// account row would mark a disconnected default connected. Publish the provider's CURRENT
|
|
90
|
+
// default row (cache only, no spawn) so observers see the latch lift with the default's own
|
|
91
|
+
// answer; with nothing cached there is no default row to reconcile on this channel.
|
|
92
|
+
const defaultRow = providerAuth.peekStatus()?.providers.find(({ provider: id }) => id === provider);
|
|
93
|
+
if (defaultRow)
|
|
94
|
+
onProviderStatus(defaultRow);
|
|
95
|
+
})().catch(() => { });
|
|
33
96
|
};
|
|
34
97
|
store.on('event', onEvent);
|
|
35
98
|
return () => store.off('event', onEvent);
|
|
@@ -42,17 +105,19 @@ export function watchProviderRuntimeAuthFailures(store, providerAuth, onInvalida
|
|
|
42
105
|
*/
|
|
43
106
|
export class ProviderRuntimeAuthObserver {
|
|
44
107
|
providerAuth;
|
|
45
|
-
|
|
108
|
+
onProviderStatus;
|
|
109
|
+
resolveProfile;
|
|
46
110
|
watched = new WeakSet();
|
|
47
|
-
constructor(providerAuth,
|
|
111
|
+
constructor(providerAuth, onProviderStatus, resolveProfile = resolveRuntimeAuthVerificationTarget) {
|
|
48
112
|
this.providerAuth = providerAuth;
|
|
49
|
-
this.
|
|
113
|
+
this.onProviderStatus = onProviderStatus;
|
|
114
|
+
this.resolveProfile = resolveProfile;
|
|
50
115
|
}
|
|
51
116
|
watch(store) {
|
|
52
117
|
if (this.watched.has(store))
|
|
53
118
|
return;
|
|
54
119
|
this.watched.add(store);
|
|
55
|
-
watchProviderRuntimeAuthFailures(store, this.providerAuth, this.
|
|
120
|
+
watchProviderRuntimeAuthFailures(store, this.providerAuth, this.onProviderStatus, this.resolveProfile);
|
|
56
121
|
}
|
|
57
122
|
}
|
|
58
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-auth-runtime.js","sourceRoot":"","sources":["../../src/server/provider-auth-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAI7B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-auth-runtime.js","sourceRoot":"","sources":["../../src/server/provider-auth-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAI7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oCAAoC,GAErC,MAAM,gCAAgC,CAAC;AAExC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;AAU3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gCAAgC,CAC9C,KAAe,EACf,YAAiC,EACjC,gBAAkD,EAClD,cAAc,GAA+B,oCAAoC;IAEjF,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAsC,EAAQ,EAAE;QAC7E,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC;YAAE,OAAO;QAElF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAC3C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAe,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;QACrE,6FAA6F;QAC7F,+FAA+F;QAC/F,yFAAyF;QACzF,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS;eAC5B,CAAC,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,MAAM,CAAC,YAAY;YAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC3D,SAAS,CAAC,IAAI,KAAK,wBAAwB;eACxC,SAAS,CAAC,QAAQ,KAAK,QAAQ;eAC/B,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE;gBACvB,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ;gBACR,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;gBAC1C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAED,iGAAiG;QACjG,kGAAkG;QAClG,kGAAkG;QAClG,mFAAmF;QACnF,IAAI,CAAC,MAAM,CAAC,YAAY;YAAE,OAAO;QACjC,6FAA6F;QAC7F,2FAA2F;QAC3F,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACnD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACzD,6FAA6F;YAC7F,wEAAwE;YACxE,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzC,CAAC,CAAC,MAAM,YAAY,CAAC,wBAAwB,CAAC,QAAQ,EAAE;oBACtD,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,EAAE,QAAQ,CAAC;gBACZ,CAAC,CAAC,MAAM,YAAY,CAAC,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,2FAA2F;YAC3F,2FAA2F;YAC3F,0FAA0F;YAC1F,4FAA4F;YAC5F,oFAAoF;YACpF,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YACpG,IAAI,UAAU;gBAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IAInB,YAAY;IACZ,gBAAgB;IAChB,cAAc;IALhB,OAAO,GAAG,IAAI,OAAO,EAAY,CAAC;IAEnD,YACmB,YAAiC,EACjC,gBAAkD,EAClD,cAAc,GAA+B,oCAAoC;4BAFjF,YAAY;gCACZ,gBAAgB;8BAChB,cAAc;IAC9B,CAAC;IAEJ,KAAK,CAAC,KAAe;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,gCAAgC,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACzG,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yCAAyC,CAC7D,KAAe,EACf,OAA4B,EAC5B,QAAqC;IAErC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -68,6 +68,28 @@ export declare function profileDirState(provider: ProviderId, path: string): Pro
|
|
|
68
68
|
exists: boolean;
|
|
69
69
|
looksValid: boolean;
|
|
70
70
|
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Which login a runtime-auth self-check must interrogate for a recorded `profileId`.
|
|
73
|
+
*
|
|
74
|
+
* Three answers, deliberately distinct because they demand different behavior from the caller:
|
|
75
|
+
*
|
|
76
|
+
* - `{ kind: 'default' }` — the step ran on the discovered account (no id, or the reserved
|
|
77
|
+
* `default`), so probing bare is correct and is the whole zero-config path.
|
|
78
|
+
* - `{ kind: 'profile', … }` — a stored account; verify THAT login, not whichever one happens to
|
|
79
|
+
* be default. A named account can be rejected while the default is fine, and clearing the
|
|
80
|
+
* incident on the default's answer would let every future run on the broken account fail again.
|
|
81
|
+
* - `null` — the id names no account we can see (dangling reference, unreadable store). The caller
|
|
82
|
+
* must KEEP the incident latched: an unverifiable rejection is not a recovered one, and
|
|
83
|
+
* `selectProfile`'s silent degrade-to-default is exactly the wrong policy here.
|
|
84
|
+
*/
|
|
85
|
+
export type RuntimeAuthVerificationTarget = {
|
|
86
|
+
kind: 'default';
|
|
87
|
+
} | {
|
|
88
|
+
kind: 'profile';
|
|
89
|
+
id: string;
|
|
90
|
+
configDir: string;
|
|
91
|
+
};
|
|
92
|
+
export declare function resolveRuntimeAuthVerificationTarget(provider: ProviderId, profileId: string | undefined): Promise<RuntimeAuthVerificationTarget | null>;
|
|
71
93
|
/**
|
|
72
94
|
* Is `path` the same directory as an existing account's (or the default's)?
|
|
73
95
|
*
|
|
@@ -95,6 +95,21 @@ export async function profileDirState(provider, path) {
|
|
|
95
95
|
}
|
|
96
96
|
return { exists: true, looksValid: looksLikeProfileDir(provider, entries) };
|
|
97
97
|
}
|
|
98
|
+
export async function resolveRuntimeAuthVerificationTarget(provider, profileId) {
|
|
99
|
+
if (profileId === undefined || profileId === DEFAULT_AGENT_ACCOUNT_ID)
|
|
100
|
+
return { kind: 'default' };
|
|
101
|
+
let store;
|
|
102
|
+
try {
|
|
103
|
+
store = await loadAgentAccounts();
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const account = store.accounts.find((a) => a.id === profileId && a.provider === provider);
|
|
109
|
+
return account
|
|
110
|
+
? { kind: 'profile', id: account.id, configDir: resolveStoredProfile(account).path }
|
|
111
|
+
: null;
|
|
112
|
+
}
|
|
98
113
|
/**
|
|
99
114
|
* Is `path` the same directory as an existing account's (or the default's)?
|
|
100
115
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-profiles.js","sourceRoot":"","sources":["../../src/workspace/agent-profiles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-profiles.js","sourceRoot":"","sources":["../../src/workspace/agent-profiles.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wjarka/cezarion",
|
|
3
|
-
"version": "0.14.9-dev.
|
|
3
|
+
"version": "0.14.9-dev.933",
|
|
4
4
|
"description": "Local cockpit for running and tracking AI agent tasks in your repo. Uses your logged-in `claude` CLI and `gh` — zero config, zero database.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"zod": "^4.4.3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@open-mercato/cezar-api-client": "0.14.9-dev.
|
|
55
|
-
"@open-mercato/cezar-contract": "0.14.9-dev.
|
|
54
|
+
"@open-mercato/cezar-api-client": "0.14.9-dev.933",
|
|
55
|
+
"@open-mercato/cezar-contract": "0.14.9-dev.933",
|
|
56
56
|
"@types/node": "^20.14.0",
|
|
57
57
|
"@types/ws": "^8.18.1",
|
|
58
58
|
"esbuild": "^0.28.1",
|