@open-mercato/cezar 0.9.3 → 0.10.0-pr892.1298
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/README.md +165 -36
- package/dist/agent-config/account-identity.d.ts +44 -0
- package/dist/agent-config/account-identity.js +128 -0
- package/dist/agent-config/account-identity.js.map +1 -0
- package/dist/agent-config/catalog.d.ts +8 -0
- package/dist/agent-config/catalog.js +18 -0
- package/dist/agent-config/catalog.js.map +1 -1
- package/dist/agent-config/model-settings/claude.d.ts +2 -0
- package/dist/agent-config/model-settings/claude.js +11 -0
- package/dist/agent-config/model-settings/claude.js.map +1 -0
- package/dist/agent-config/model-settings/codex.d.ts +2 -0
- package/dist/agent-config/model-settings/codex.js +16 -0
- package/dist/agent-config/model-settings/codex.js.map +1 -0
- package/dist/agent-config/model-settings/opencode.d.ts +2 -0
- package/dist/agent-config/model-settings/opencode.js +8 -0
- package/dist/agent-config/model-settings/opencode.js.map +1 -0
- package/dist/agent-config/model-settings/pi.d.ts +12 -0
- package/dist/agent-config/model-settings/pi.js +18 -0
- package/dist/agent-config/model-settings/pi.js.map +1 -0
- package/dist/agent-config/model-settings/shared.d.ts +9 -0
- package/dist/agent-config/model-settings/shared.js +93 -0
- package/dist/agent-config/model-settings/shared.js.map +1 -0
- package/dist/agent-config/model-settings/types.d.ts +9 -0
- package/dist/agent-config/model-settings/types.js +2 -0
- package/dist/agent-config/model-settings/types.js.map +1 -0
- package/dist/agent-config/models.d.ts +9 -0
- package/dist/agent-config/models.js +32 -0
- package/dist/agent-config/models.js.map +1 -0
- package/dist/agent-config/service.js +4 -4
- package/dist/agent-config/service.js.map +1 -1
- package/dist/automations/types.d.ts +4 -0
- package/dist/automations/types.js +2 -1
- package/dist/automations/types.js.map +1 -1
- package/dist/config.d.ts +10 -1
- package/dist/config.js +48 -5
- package/dist/config.js.map +1 -1
- package/dist/contract/agent-config.d.ts +2 -0
- package/dist/contract/agent-profiles.d.ts +347 -0
- package/dist/contract/automations.d.ts +24 -0
- package/dist/contract/events.d.ts +59 -0
- package/dist/contract/github.d.ts +88 -0
- package/dist/contract/health.d.ts +5 -1
- package/dist/contract/index.d.ts +1 -0
- package/dist/contract/index.js +981 -544
- package/dist/contract/projects.d.ts +33 -5
- package/dist/contract/runs.d.ts +247 -0
- package/dist/contract/skills.d.ts +7 -0
- package/dist/contract/workflows.d.ts +6 -0
- package/dist/contract/workspace.d.ts +137 -2
- package/dist/core/agent-env.js +41 -16
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-model-policy.d.ts +10 -0
- package/dist/core/agent-model-policy.js +36 -0
- package/dist/core/agent-model-policy.js.map +1 -0
- package/dist/core/agent-profiles.d.ts +62 -0
- package/dist/core/agent-profiles.js +90 -0
- package/dist/core/agent-profiles.js.map +1 -0
- package/dist/core/agent-runner.d.ts +37 -6
- package/dist/core/agent-runner.js +35 -3
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/backend-detect.d.ts +5 -5
- package/dist/core/backend-detect.js +44 -7
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/claude-cli-runner.js +10 -5
- package/dist/core/claude-cli-runner.js.map +1 -1
- package/dist/core/codex-app-server-runner.js +13 -3
- package/dist/core/codex-app-server-runner.js.map +1 -1
- package/dist/core/codex-app-server-transport.js +7 -2
- package/dist/core/codex-app-server-transport.js.map +1 -1
- package/dist/core/model-identity.d.ts +23 -11
- package/dist/core/model-identity.js +41 -24
- package/dist/core/model-identity.js.map +1 -1
- package/dist/core/model-presets.d.ts +8 -2
- package/dist/core/model-presets.js +51 -8
- package/dist/core/model-presets.js.map +1 -1
- package/dist/core/opencode-model-catalog.d.ts +32 -0
- package/dist/core/opencode-model-catalog.js +153 -0
- package/dist/core/opencode-model-catalog.js.map +1 -0
- package/dist/core/opencode-server-runner.d.ts +2 -0
- package/dist/core/opencode-server-runner.js +42 -11
- package/dist/core/opencode-server-runner.js.map +1 -1
- package/dist/core/pi-runner.d.ts +24 -0
- package/dist/core/pi-runner.js +349 -0
- package/dist/core/pi-runner.js.map +1 -0
- package/dist/core/pi-ui-mapper.d.ts +34 -0
- package/dist/core/pi-ui-mapper.js +270 -0
- package/dist/core/pi-ui-mapper.js.map +1 -0
- package/dist/core/provider-auth.d.ts +95 -3
- package/dist/core/provider-auth.js +234 -15
- package/dist/core/provider-auth.js.map +1 -1
- package/dist/core/provider-availability.d.ts +1 -1
- package/dist/core/provider-availability.js +2 -1
- package/dist/core/provider-availability.js.map +1 -1
- package/dist/core/runner-factory.js +3 -0
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/shell-env.d.ts +28 -0
- package/dist/core/shell-env.js +56 -0
- package/dist/core/shell-env.js.map +1 -0
- package/dist/core/ui-events.d.ts +1 -1
- package/dist/core/usage-limit.d.ts +42 -0
- package/dist/core/usage-limit.js +209 -0
- package/dist/core/usage-limit.js.map +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +53 -5
- package/dist/paths.js +63 -9
- package/dist/paths.js.map +1 -1
- package/dist/planner.js +6 -0
- package/dist/planner.js.map +1 -1
- package/dist/release/snapshot.d.ts +13 -2
- package/dist/release/snapshot.js +25 -1
- package/dist/release/snapshot.js.map +1 -1
- package/dist/runs/agent-tmpdir.d.ts +41 -0
- package/dist/runs/agent-tmpdir.js +183 -0
- package/dist/runs/agent-tmpdir.js.map +1 -0
- package/dist/runs/auto-name.js +6 -1
- package/dist/runs/auto-name.js.map +1 -1
- package/dist/runs/event-history.d.ts +50 -0
- package/dist/runs/event-history.js +613 -0
- package/dist/runs/event-history.js.map +1 -0
- package/dist/runs/run-index.d.ts +19 -0
- package/dist/runs/run-index.js +43 -0
- package/dist/runs/run-index.js.map +1 -0
- package/dist/runs/store.d.ts +78 -19
- package/dist/runs/store.js +175 -43
- package/dist/runs/store.js.map +1 -1
- package/dist/server/forge/github.d.ts +169 -0
- package/dist/server/forge/github.js +511 -0
- package/dist/server/forge/github.js.map +1 -1
- package/dist/server/forge/index.d.ts +9 -0
- package/dist/server/forge/index.js +14 -0
- package/dist/server/forge/index.js.map +1 -1
- package/dist/server/github.d.ts +2 -2
- package/dist/server/github.js +1 -1
- package/dist/server/github.js.map +1 -1
- package/dist/server/open-in-app.d.ts +2 -1
- package/dist/server/open-in-app.js +3 -1
- package/dist/server/open-in-app.js.map +1 -1
- package/dist/server/open-in-terminal.d.ts +46 -1
- package/dist/server/open-in-terminal.js +72 -13
- package/dist/server/open-in-terminal.js.map +1 -1
- package/dist/server/provider-action-gate.js +3 -1
- package/dist/server/provider-action-gate.js.map +1 -1
- package/dist/server/server.d.ts +2199 -428
- package/dist/server/server.js +1171 -139
- package/dist/server/server.js.map +1 -1
- package/dist/server-install/engine.js +5 -18
- package/dist/server-install/engine.js.map +1 -1
- package/dist/server-install/steps.js +6 -2
- package/dist/server-install/steps.js.map +1 -1
- package/dist/skills.js +4 -0
- package/dist/skills.js.map +1 -1
- package/dist/workflows/run.d.ts +202 -2
- package/dist/workflows/run.js +782 -115
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/types.d.ts +3 -0
- package/dist/workflows/types.js +11 -2
- package/dist/workflows/types.js.map +1 -1
- package/dist/workspace/agent-accounts.d.ts +153 -0
- package/dist/workspace/agent-accounts.js +304 -0
- package/dist/workspace/agent-accounts.js.map +1 -0
- package/dist/workspace/agent-profiles.d.ts +78 -0
- package/dist/workspace/agent-profiles.js +115 -0
- package/dist/workspace/agent-profiles.js.map +1 -0
- package/dist/workspace/config.d.ts +19 -1
- package/dist/workspace/config.js +56 -2
- package/dist/workspace/config.js.map +1 -1
- package/dist/workspace/projects-cli.js +54 -4
- package/dist/workspace/projects-cli.js.map +1 -1
- package/dist/workspace/projects.d.ts +19 -1
- package/dist/workspace/projects.js +34 -1
- package/dist/workspace/projects.js.map +1 -1
- package/dist/workspace/semaphore.d.ts +39 -0
- package/dist/workspace/semaphore.js +31 -0
- package/dist/workspace/semaphore.js.map +1 -1
- package/package.json +3 -3
- package/scripts/mock-claude.mjs +20 -0
- package/scripts/mock-pi-rpc.mjs +83 -0
- package/web/dist/assets/{alert-dialog-V9cigyAO.js → alert-dialog-Byp42_IG.js} +1 -1
- package/web/dist/assets/arrow-down-CGDbDYKD.js +1 -0
- package/web/dist/assets/arrow-left-ESCjr1Hq.js +1 -0
- package/web/dist/assets/centered-state-LfAW-igm.js +43 -0
- package/web/dist/assets/chevron-right-Du-P1IUd.js +1 -0
- package/web/dist/assets/{collapsible-BlF-7CeC.js → collapsible-CBiiqDJM.js} +1 -1
- package/web/dist/assets/{commit-list-D2mKElUx.js → commit-list-6PPve7PE.js} +1 -1
- package/web/dist/assets/{compare-variants-CFBY16Rc.js → compare-variants-BDnp6mXJ.js} +1 -1
- package/web/dist/assets/{diff-DE6u5dTe.js → diff-_jK0OWpF.js} +2 -2
- package/web/dist/assets/{diff-stat-B1j6L7C6.js → diff-stat-CIrTu4Ym.js} +1 -1
- package/web/dist/assets/{diff-view-Gb2kk3Le.js → diff-view-COA_5IyY.js} +1 -1
- package/web/dist/assets/dropdown-menu-BofYpFFw.js +1 -0
- package/web/dist/assets/editable-title-_J0zFDl-.js +1 -0
- package/web/dist/assets/{ellipsis-vertical-BbxtXb6s.js → ellipsis-vertical-BeMR-l62.js} +1 -1
- package/web/dist/assets/{file-j5O4NryU.js → file-DY996Pee.js} +1 -1
- package/web/dist/assets/{folder-w9Lwj9x9.js → folder-NO3Ec-TY.js} +1 -1
- package/web/dist/assets/git-toolbar-BqJeUWcD.js +1 -0
- package/web/dist/assets/github-C96HPV9E.js +1 -0
- package/web/dist/assets/{image-preview-CcFdkZXW.js → image-preview-D9cCDfKQ.js} +1 -1
- package/web/dist/assets/index-Bx-grqa9.css +2 -0
- package/web/dist/assets/index-DoVvGDfW.js +7 -0
- package/web/dist/assets/{markdown-q9lm7kQ2.js → markdown-DDzk11zj.js} +1 -1
- package/web/dist/assets/new-task-form-BNLLgC6P.js +1 -0
- package/web/dist/assets/pill-CVM1EmV4.js +1 -0
- package/web/dist/assets/{project-router-DudOmkHf.js → project-router-LRCtP48W.js} +1 -1
- package/web/dist/assets/prompt-templates-DFOvYgtW.js +15 -0
- package/web/dist/assets/{refresh-cw-_C2EGJK5.js → refresh-cw-D1ys6QY2.js} +1 -1
- package/web/dist/assets/repo-git-CzUnsgWY.js +1 -0
- package/web/dist/assets/{run-diff-BLoKEnTx.js → run-diff-BlnqwfSS.js} +2 -2
- package/web/dist/assets/run-header-Bn7cN0Z1.js +1 -0
- package/web/dist/assets/{search-x-BgxaJgro.js → search-x-D6FSpxId.js} +1 -1
- package/web/dist/assets/{skill-empty-hint-D5MOmycv.js → skill-empty-hint-iwpCcqgI.js} +1 -1
- package/web/dist/assets/skills-CezbOaol.js +1 -0
- package/web/dist/assets/{sparkles-ANSka5bH.js → sparkles-MrQrgCI9.js} +1 -1
- package/web/dist/assets/{square-terminal-qojq20cH.js → square-terminal-TTH64lO7.js} +1 -1
- package/web/dist/assets/tab-link-FYksz037.js +1 -0
- package/web/dist/assets/task-changes-ClWlnzBL.js +1 -0
- package/web/dist/assets/{task-commits-yXmDrCoE.js → task-commits-Crbrl86b.js} +1 -1
- package/web/dist/assets/{task-files-BDRmCCPN.js → task-files-uSCWyD0-.js} +2 -2
- package/web/dist/assets/task-thread-DPmamBA1.js +9 -0
- package/web/dist/assets/{textarea-DVO7pg8Y.js → textarea-B9Ahj4E4.js} +1 -1
- package/web/dist/assets/thread-loading-BH_ypQoy.js +1 -0
- package/web/dist/assets/{trash-2-DKcnmg6e.js → trash-2-D8S3V3fu.js} +1 -1
- package/web/dist/assets/{triangle-alert-CPUEVSZ3.js → triangle-alert-bB7p9n5E.js} +1 -1
- package/web/dist/assets/{upload-D5Jrq7QK.js → upload-Bd5oRLPV.js} +1 -1
- package/web/dist/assets/{use-desktop-CXae6uyk.js → use-desktop-BNvbRBeZ.js} +1 -1
- package/web/dist/assets/{use-submit-shortcut-RKJLKdsW.js → use-submit-shortcut-B-xhu4Bf.js} +1 -1
- package/web/dist/assets/utils-BhpbVMwN.js +64 -0
- package/web/dist/assets/{workflows-CGyTdyds.js → workflows-RmfbM9Vy.js} +3 -3
- package/web/dist/assets/{zoomable-image-hcqwUIlQ.js → zoomable-image-BCW6ZBV0.js} +1 -1
- package/web/dist/index.html +24 -23
- package/web/dist/assets/arrow-down-DflHdNlN.js +0 -1
- package/web/dist/assets/arrow-left-IIL4uR-C.js +0 -1
- package/web/dist/assets/centered-state-BkAJVLJE.js +0 -43
- package/web/dist/assets/chevron-right-CxAoD1eD.js +0 -1
- package/web/dist/assets/circle-check-CdwcIbkx.js +0 -1
- package/web/dist/assets/circle-x-Cnc43xJ2.js +0 -1
- package/web/dist/assets/dropdown-menu-Ns-rY6sm.js +0 -1
- package/web/dist/assets/editable-title-BGuiDxFT.js +0 -1
- package/web/dist/assets/git-pull-request-DlSop3Ch.js +0 -1
- package/web/dist/assets/git-toolbar-BdJ8XSxI.js +0 -1
- package/web/dist/assets/github-CCLn2OAU.js +0 -1
- package/web/dist/assets/index-BmHHLbwc.js +0 -6
- package/web/dist/assets/index-u8OAnq0r.css +0 -2
- package/web/dist/assets/new-task-form-BuYxAWN7.js +0 -1
- package/web/dist/assets/pill-t97MvPW_.js +0 -1
- package/web/dist/assets/prompt-templates-C5iO3Lda.js +0 -15
- package/web/dist/assets/repo-git-DqQzj33d.js +0 -1
- package/web/dist/assets/run-header-Dho4eurS.js +0 -1
- package/web/dist/assets/skills-B5g064CC.js +0 -1
- package/web/dist/assets/tab-link-CIcwFJtC.js +0 -1
- package/web/dist/assets/task-changes-yRfsEsnh.js +0 -1
- package/web/dist/assets/task-thread-C9AnIz4Z.js +0 -9
- package/web/dist/assets/thread-loading-DJDl701Z.js +0 -1
- package/web/dist/assets/utils-Wtkd5E6j.js +0 -64
|
@@ -1,8 +1,62 @@
|
|
|
1
1
|
import { execFile } from 'node:child_process';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
|
|
3
|
+
import { AGENT_MODELS_LOCKED_ENV } from './agent-model-policy.js';
|
|
4
|
+
import { profileEnv } from './agent-profiles.js';
|
|
5
|
+
import { withEnvPrefix } from './shell-env.js';
|
|
6
|
+
export const PROVIDER_IDS = ['claude', 'codex', 'opencode', 'pi'];
|
|
7
|
+
/**
|
|
8
|
+
* The explicit environment lock delegates model and credential configuration
|
|
9
|
+
* to each native coding agent. In that mode Cezar must not second-guess the
|
|
10
|
+
* agent's own credentials through the provider checks introduced by #652.
|
|
11
|
+
*
|
|
12
|
+
* Config-file model locks intentionally do not disable the checks: this bypass
|
|
13
|
+
* is an operator-level process policy and only the exact documented `1` opts in.
|
|
14
|
+
*/
|
|
15
|
+
export function providerAuthChecksDisabled(env = process.env) {
|
|
16
|
+
return env[AGENT_MODELS_LOCKED_ENV] === '1';
|
|
17
|
+
}
|
|
4
18
|
const COMMAND_TIMEOUT_MS = 10_000;
|
|
5
|
-
|
|
19
|
+
/**
|
|
20
|
+
* How long a probe result stands before it is re-checked — deliberately ASYMMETRIC.
|
|
21
|
+
*
|
|
22
|
+
* Which login an agent is signed into is operating knowledge: it matters for every run, and it
|
|
23
|
+
* changes only when someone runs `claude auth login`. Re-probing it every few seconds cost a CLI
|
|
24
|
+
* shell-out per provider and per account on every page load, for an answer that had almost
|
|
25
|
+
* certainly not changed. So a CONNECTED answer is kept for minutes.
|
|
26
|
+
*
|
|
27
|
+
* A NOT-CONNECTED answer is re-checked sooner, for ONE reason: display self-healing. If you log in
|
|
28
|
+
* from a terminal, cezar cannot see it happen, so a card that says "disconnected" must eventually
|
|
29
|
+
* find out on its own. The window is a minute rather than seconds because reading is now
|
|
30
|
+
* stale-while-revalidate (see `status`): every expiry costs a background probe, and a cockpit
|
|
31
|
+
* polling this endpoint would turn a five-second window into a spawn every five seconds, forever,
|
|
32
|
+
* on any machine where one provider is logged out — which is most of them.
|
|
33
|
+
*
|
|
34
|
+
* What this window is NOT is a correctness mechanism for starting runs. `provider-action-gate.ts`
|
|
35
|
+
* refuses to start a run against a provider it believes disconnected, and it re-verifies before it
|
|
36
|
+
* refuses (`providerActionError` in `server.ts`) rather than trusting an aging negative. That
|
|
37
|
+
* inversion is what makes a long window safe here: the only reader that must not be wrong pays for
|
|
38
|
+
* its own certainty, on the rare path where it is about to say no.
|
|
39
|
+
*
|
|
40
|
+
* A stale CONNECTED answer needs no window at all: the run starts, and a credential that really has
|
|
41
|
+
* gone bad surfaces as a runtime auth failure, which is latched and overrides this cache on the spot
|
|
42
|
+
* (`withRuntimeFailures`).
|
|
43
|
+
*
|
|
44
|
+
* Anything cezar CAN observe invalidates explicitly instead of waiting for either window: opening a
|
|
45
|
+
* login (`POST /providers/connect`), repointing or removing an account (`forgetProfileStatus`), and
|
|
46
|
+
* a runtime rejection.
|
|
47
|
+
*/
|
|
48
|
+
const CONNECTED_TTL_MS = 10 * 60_000;
|
|
49
|
+
const UNSETTLED_TTL_MS = 60_000;
|
|
50
|
+
/** The lifetime for a set of rows: minutes only when EVERY row is connected. A mixed answer takes
|
|
51
|
+
* the short window, because the not-connected row in it is the one that might self-heal.
|
|
52
|
+
*
|
|
53
|
+
* KNOWN COARSENESS: the window applies to the whole three-provider response, so one logged-out
|
|
54
|
+
* provider drags the two connected ones into re-probing with it. That is wasted work rather than a
|
|
55
|
+
* wrong answer, and it is now paid in the background; fixing it properly means per-provider
|
|
56
|
+
* timestamps and merging partial probe results. */
|
|
57
|
+
function cacheTtlFor(rows) {
|
|
58
|
+
return rows.every((row) => row.status === 'connected') ? CONNECTED_TTL_MS : UNSETTLED_TTL_MS;
|
|
59
|
+
}
|
|
6
60
|
const UNKNOWN_HINT = 'Authentication could not be verified. Try again.';
|
|
7
61
|
const TIMEOUT_HINT = 'Authentication check timed out. Try again.';
|
|
8
62
|
const RUNTIME_AUTH_HINT = 'Authentication was rejected during a run. Reconnect, then try again.';
|
|
@@ -103,6 +157,19 @@ function parseOpenCodeStatus(result) {
|
|
|
103
157
|
return null;
|
|
104
158
|
return storedCount > 0 || environmentCount > 0 ? 'connected' : 'disconnected';
|
|
105
159
|
}
|
|
160
|
+
function parsePiStatus(result) {
|
|
161
|
+
if (result.exitCode !== 0)
|
|
162
|
+
return null;
|
|
163
|
+
const lines = normalizedLines(result.stdout);
|
|
164
|
+
if (lines.some((line) => /^provider\s+model\s+context\s+max-out\s+thinking\s+images$/.test(line))) {
|
|
165
|
+
return 'connected';
|
|
166
|
+
}
|
|
167
|
+
if (lines.some((line) => line.includes('no models available'))
|
|
168
|
+
&& lines.some((line) => line.includes('/login'))) {
|
|
169
|
+
return 'disconnected';
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
106
173
|
const DESCRIPTORS = [
|
|
107
174
|
{
|
|
108
175
|
id: 'claude',
|
|
@@ -128,10 +195,26 @@ const DESCRIPTORS = [
|
|
|
128
195
|
installHint: 'Install OpenCode, then run `opencode auth login`.',
|
|
129
196
|
parse: parseOpenCodeStatus,
|
|
130
197
|
},
|
|
198
|
+
{
|
|
199
|
+
id: 'pi',
|
|
200
|
+
executable: () => process.env.CEZ_PI_BIN ?? 'pi',
|
|
201
|
+
statusArgs: ['--list-models'],
|
|
202
|
+
loginArgs: ['/login'],
|
|
203
|
+
installHint: 'Install pi, then run `pi /login`.',
|
|
204
|
+
parse: parsePiStatus,
|
|
205
|
+
},
|
|
131
206
|
];
|
|
132
|
-
function defaultRunProviderCommand(executable, args, timeoutMs) {
|
|
207
|
+
function defaultRunProviderCommand(executable, args, timeoutMs, env) {
|
|
133
208
|
return new Promise((resolve) => {
|
|
134
|
-
execFile(executable, args, {
|
|
209
|
+
execFile(executable, args, {
|
|
210
|
+
timeout: timeoutMs,
|
|
211
|
+
windowsHide: true,
|
|
212
|
+
maxBuffer: 256 * 1024,
|
|
213
|
+
// Inherit, then override: an auth probe is a short read-only CLI call, not a spawned
|
|
214
|
+
// agent, so it does not go through `buildChildEnv`'s allowlist — the CLI still needs the
|
|
215
|
+
// host's PATH and HOME to run at all. `env` is only ever a profile's config-dir variable.
|
|
216
|
+
...(env && Object.keys(env).length > 0 ? { env: { ...process.env, ...env } } : {}),
|
|
217
|
+
}, (error, stdout, stderr) => {
|
|
135
218
|
const commandError = error;
|
|
136
219
|
const code = commandError?.code;
|
|
137
220
|
resolve({
|
|
@@ -151,6 +234,11 @@ function quoteExecutable(executable, platform) {
|
|
|
151
234
|
}
|
|
152
235
|
return `'${executable.replaceAll("'", "'\\''")}'`;
|
|
153
236
|
}
|
|
237
|
+
/** The per-account cache key. ONE definition: a probe that wrote under a different spelling than
|
|
238
|
+
* a peek reads would silently make every peek a miss, and every page load pay for a CLI spawn. */
|
|
239
|
+
function profileCacheKey(provider, profileId) {
|
|
240
|
+
return `${provider}\u0000${profileId}`;
|
|
241
|
+
}
|
|
154
242
|
function descriptorFor(provider) {
|
|
155
243
|
const descriptor = DESCRIPTORS.find(({ id }) => id === provider);
|
|
156
244
|
if (!descriptor)
|
|
@@ -167,29 +255,57 @@ export class ProviderAuthService {
|
|
|
167
255
|
nextProbeGeneration = 0;
|
|
168
256
|
completed;
|
|
169
257
|
inFlight;
|
|
258
|
+
/** Per-account probe results, keyed by `profileCacheKey` (spec 2026-07-29-agent-profiles).
|
|
259
|
+
* Separate from `completed` because a second Claude login is a different answer to the same
|
|
260
|
+
* question, and sharing one slot would let whichever probe ran last speak for both. */
|
|
261
|
+
completedProfiles = new Map();
|
|
262
|
+
inFlightProfiles = new Map();
|
|
170
263
|
constructor(options) {
|
|
171
264
|
this.runCommand = options?.runCommand ?? defaultRunProviderCommand;
|
|
172
265
|
this.now = options?.now ?? Date.now;
|
|
173
266
|
this.platform = options?.platform ?? process.platform;
|
|
174
267
|
this.createAuthFailureId = options?.createAuthFailureId ?? randomUUID;
|
|
175
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Every provider's authentication state — STALE-WHILE-REVALIDATE, the same policy the health
|
|
271
|
+
* snapshot uses.
|
|
272
|
+
*
|
|
273
|
+
* Once anything is known, a reader gets it immediately and an expired cache is refreshed BEHIND
|
|
274
|
+
* the answer instead of in front of it. Awaiting the refresh is what made `GET
|
|
275
|
+
* /providers/status` cost ~0.8s here (and ~3s on a slower box) every time the window lapsed:
|
|
276
|
+
* the endpoint is read by the cockpit on a poll, so "occasionally slow" means "slow in the UI,
|
|
277
|
+
* unpredictably". Only a genuinely cold cache waits, and after the boot warm there isn't one.
|
|
278
|
+
*
|
|
279
|
+
* `refresh: true` still blocks — it is what "Check again", `POST /providers/connect` and the
|
|
280
|
+
* action gate's verify-before-refuse use, and they are asking precisely because they need an
|
|
281
|
+
* answer that is true NOW.
|
|
282
|
+
*/
|
|
176
283
|
status(options) {
|
|
177
|
-
if (process.env.CEZ_DRY_RUN === '1') {
|
|
284
|
+
if (process.env.CEZ_DRY_RUN === '1' || providerAuthChecksDisabled()) {
|
|
178
285
|
return Promise.resolve({
|
|
179
286
|
providers: PROVIDER_IDS.map((provider) => ({ provider, status: 'connected' })),
|
|
180
287
|
});
|
|
181
288
|
}
|
|
182
|
-
if (
|
|
183
|
-
|
|
289
|
+
if (options?.refresh) {
|
|
290
|
+
// Joining a probe already running satisfies "true now" and preserves the in-flight identity
|
|
291
|
+
// contract (one shared promise for concurrent callers).
|
|
292
|
+
return this.inFlight ? this.inFlight.visible : this.startFreshProbe().visible;
|
|
184
293
|
}
|
|
185
|
-
if (
|
|
186
|
-
|
|
187
|
-
|
|
294
|
+
if (this.completed) {
|
|
295
|
+
// Checked BEFORE `inFlight` on purpose: a reader arriving during a background revalidation
|
|
296
|
+
// must be served from cache, not attached to the probe it was meant to avoid.
|
|
297
|
+
if (this.now() - this.completed.timestamp >= cacheTtlFor(this.completed.response.providers)) {
|
|
298
|
+
if (!this.inFlight)
|
|
299
|
+
void this.startFreshProbe().raw.catch(() => { });
|
|
300
|
+
}
|
|
301
|
+
return Promise.resolve(this.withRuntimeFailures(this.completed.response));
|
|
188
302
|
}
|
|
303
|
+
if (this.inFlight)
|
|
304
|
+
return this.inFlight.visible;
|
|
189
305
|
return this.startFreshProbe().visible;
|
|
190
306
|
}
|
|
191
307
|
reportRuntimeAuthFailure(provider) {
|
|
192
|
-
if (process.env.CEZ_DRY_RUN === '1')
|
|
308
|
+
if (process.env.CEZ_DRY_RUN === '1' || providerAuthChecksDisabled())
|
|
193
309
|
return null;
|
|
194
310
|
const current = this.runtimeFailures.get(provider);
|
|
195
311
|
const failure = {
|
|
@@ -216,9 +332,20 @@ export class ProviderAuthService {
|
|
|
216
332
|
this.runtimeFailures.delete(provider);
|
|
217
333
|
return true;
|
|
218
334
|
}
|
|
219
|
-
|
|
335
|
+
/**
|
|
336
|
+
* The command that logs `provider` in, as a copyable one-liner.
|
|
337
|
+
*
|
|
338
|
+
* `configDir` points the login at a specific agent account (spec 2026-07-29-agent-profiles) —
|
|
339
|
+
* without it, "Connect" on a second Claude account would sign the user into the FIRST one and
|
|
340
|
+
* report success. Returns `null` when the dir cannot be embedded safely on this platform, and
|
|
341
|
+
* the caller must then refuse rather than fall back to the bare command: a login aimed at the
|
|
342
|
+
* wrong account is the failure this whole path exists to prevent.
|
|
343
|
+
*/
|
|
344
|
+
loginCommand(provider, configDir) {
|
|
220
345
|
const descriptor = descriptorFor(provider);
|
|
221
|
-
|
|
346
|
+
const command = [quoteExecutable(descriptor.executable(), this.platform), ...descriptor.loginArgs].join(' ');
|
|
347
|
+
const env = configDir ? profileEnv(provider, configDir) : {};
|
|
348
|
+
return withEnvPrefix(command, env, this.platform);
|
|
222
349
|
}
|
|
223
350
|
installHint(provider) {
|
|
224
351
|
return descriptorFor(provider).installHint;
|
|
@@ -264,10 +391,102 @@ export class ProviderAuthService {
|
|
|
264
391
|
});
|
|
265
392
|
return probe;
|
|
266
393
|
}
|
|
267
|
-
|
|
394
|
+
/**
|
|
395
|
+
* One NON-default agent account's authentication state (spec 2026-07-29-agent-profiles).
|
|
396
|
+
*
|
|
397
|
+
* Deliberately a separate entry point from `status()`, which keeps answering exactly one row
|
|
398
|
+
* per provider — the discovered default — so `GET /api/v1/providers/status` is byte-identical
|
|
399
|
+
* for anyone with no extra accounts. Per-account rows are carried by the agent-profiles route.
|
|
400
|
+
*
|
|
401
|
+
* Cached on the same asymmetric lifetime as `status()` (`cacheTtlFor`: minutes for a connected
|
|
402
|
+
* answer, a minute for anything else), keyed by `(provider, profileId)` so two Claude accounts never read
|
|
403
|
+
* each other's answer. The runtime-auth latch is deliberately NOT applied: it is a coarse
|
|
404
|
+
* per-provider signal and stamping it onto every account of that provider would mark an
|
|
405
|
+
* untouched account as broken.
|
|
406
|
+
*/
|
|
407
|
+
async profileStatus(provider, profile) {
|
|
408
|
+
if (process.env.CEZ_DRY_RUN === '1') {
|
|
409
|
+
return { provider, status: 'connected', profileId: profile.id };
|
|
410
|
+
}
|
|
411
|
+
const key = profileCacheKey(provider, profile.id);
|
|
412
|
+
const cached = this.completedProfiles.get(key);
|
|
413
|
+
if (cached && this.now() - cached.timestamp < cacheTtlFor([cached.status]))
|
|
414
|
+
return cached.status;
|
|
415
|
+
const pending = this.inFlightProfiles.get(key);
|
|
416
|
+
if (pending)
|
|
417
|
+
return pending;
|
|
418
|
+
const probe = this.probe(descriptorFor(provider), profile.configDir)
|
|
419
|
+
.then((status) => {
|
|
420
|
+
const stamped = { ...status, profileId: profile.id };
|
|
421
|
+
this.completedProfiles.set(key, { status: stamped, timestamp: this.now() });
|
|
422
|
+
return stamped;
|
|
423
|
+
})
|
|
424
|
+
.finally(() => {
|
|
425
|
+
if (this.inFlightProfiles.get(key) === probe)
|
|
426
|
+
this.inFlightProfiles.delete(key);
|
|
427
|
+
});
|
|
428
|
+
this.inFlightProfiles.set(key, probe);
|
|
429
|
+
return probe;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Drop a cached per-account answer — used when an account's dir changes under us.
|
|
433
|
+
*
|
|
434
|
+
* TARGETED by default, because this cache is warmed at boot and is meant to survive: clearing
|
|
435
|
+
* every account because ONE was repointed would throw away knowledge that is still true and make
|
|
436
|
+
* the other accounts re-probe. Called with no argument it clears everything, which is what a
|
|
437
|
+
* shutdown or a whole-store reload wants.
|
|
438
|
+
*/
|
|
439
|
+
forgetProfileStatus(provider, profileId) {
|
|
440
|
+
if (provider === undefined || profileId === undefined) {
|
|
441
|
+
this.completedProfiles.clear();
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
this.completedProfiles.delete(profileCacheKey(provider, profileId));
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* The cached answer for one account, or `undefined` when nothing is known yet — WITHOUT
|
|
448
|
+
* spawning anything.
|
|
449
|
+
*
|
|
450
|
+
* Every probe shells out to an agent CLI, which costs hundreds of milliseconds per provider and
|
|
451
|
+
* per account. A route whose real job is "what exists" must not pay that: `GET /api/v1/health`
|
|
452
|
+
* already established this posture (it serves whatever the cache holds and never pays a `gh`
|
|
453
|
+
* shell-out), and this is the same rule for auth.
|
|
454
|
+
*
|
|
455
|
+
* The peeks deliberately ignore the TTLs below — they answer with the last thing known, however
|
|
456
|
+
* old. The short window exists to stop a stale NEGATIVE from blocking a run, and a peek blocks
|
|
457
|
+
* nothing: it fills in a dot on a settings page that offers Connect and a re-check right beside
|
|
458
|
+
* it. Applying the window here instead made the whole cache expire in five seconds on any machine
|
|
459
|
+
* where a single provider is logged out — which is most of them, since few people are signed into
|
|
460
|
+
* all three — and put the shell-out straight back on the page load this exists to protect.
|
|
461
|
+
* Callers that need a guaranteed-fresh answer call {@link status} or pass `refresh`.
|
|
462
|
+
*/
|
|
463
|
+
peekProfileStatus(provider, profileId) {
|
|
464
|
+
if (process.env.CEZ_DRY_RUN === '1') {
|
|
465
|
+
return { provider, status: 'connected', profileId };
|
|
466
|
+
}
|
|
467
|
+
return this.completedProfiles.get(profileCacheKey(provider, profileId))?.status;
|
|
468
|
+
}
|
|
469
|
+
/** The cached default-profile rows, or `undefined` when the probe has never completed. Same
|
|
470
|
+
* no-spawn contract as {@link peekProfileStatus}. */
|
|
471
|
+
peekStatus() {
|
|
472
|
+
if (process.env.CEZ_DRY_RUN === '1') {
|
|
473
|
+
return { providers: PROVIDER_IDS.map((provider) => ({ provider, status: 'connected' })) };
|
|
474
|
+
}
|
|
475
|
+
if (!this.completed)
|
|
476
|
+
return undefined;
|
|
477
|
+
return this.withRuntimeFailures(this.completed.response);
|
|
478
|
+
}
|
|
479
|
+
async probe(descriptor, configDir) {
|
|
268
480
|
let result;
|
|
481
|
+
// The default profile is probed with the SAME three-argument call it always was — no
|
|
482
|
+
// trailing `undefined`. `runCommand` is an injected seam, and handing every existing
|
|
483
|
+
// implementation an extra argument it never asked for would be a change in the zero-config
|
|
484
|
+
// path for no gain.
|
|
485
|
+
const env = configDir ? profileEnv(descriptor.id, configDir) : undefined;
|
|
269
486
|
try {
|
|
270
|
-
result = await
|
|
487
|
+
result = await (env === undefined
|
|
488
|
+
? this.runCommand(descriptor.executable(), descriptor.statusArgs, COMMAND_TIMEOUT_MS)
|
|
489
|
+
: this.runCommand(descriptor.executable(), descriptor.statusArgs, COMMAND_TIMEOUT_MS, env));
|
|
271
490
|
}
|
|
272
491
|
catch {
|
|
273
492
|
return { provider: descriptor.id, status: 'unknown', hint: UNKNOWN_HINT };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-auth.js","sourceRoot":"","sources":["../../src/core/provider-auth.ts"],"names":[],"mappings":"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"}
|
|
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,CAAU,CAAC;AA0C3E;;;;;;;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,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;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,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ProviderId, type ProviderStatus, type ProviderStatusResponse } from './provider-auth.ts';
|
|
2
2
|
export declare function applyProviderEnablement(response: ProviderStatusResponse, disabledProviders: readonly ProviderId[]): ProviderStatusResponse;
|
|
3
3
|
export declare function isProviderUsable(row: ProviderStatus): boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { providerAuthChecksDisabled, } from './provider-auth.js';
|
|
1
2
|
export function applyProviderEnablement(response, disabledProviders) {
|
|
2
|
-
const disabled = new Set(disabledProviders);
|
|
3
|
+
const disabled = new Set(providerAuthChecksDisabled() ? [] : disabledProviders);
|
|
3
4
|
return {
|
|
4
5
|
providers: response.providers.map((row) => ({
|
|
5
6
|
...row,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-availability.js","sourceRoot":"","sources":["../../src/core/provider-availability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-availability.js","sourceRoot":"","sources":["../../src/core/provider-availability.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAI3B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,uBAAuB,CACrC,QAAgC,EAChC,iBAAwC;IAExC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CACtD,CAAC;IACF,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,GAAG;YACN,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;SACrC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAmB;IAClD,OAAO,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC;AAC7D,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ClaudeCliRunner } from './claude-cli-runner.js';
|
|
2
2
|
import { CodexAppServerRunner } from './codex-app-server-runner.js';
|
|
3
3
|
import { OpencodeServerRunner } from './opencode-server-runner.js';
|
|
4
|
+
import { PiRunner } from './pi-runner.js';
|
|
4
5
|
/**
|
|
5
6
|
* The single place that maps a backend id onto a concrete runner. Everything
|
|
6
7
|
* that used to `new ClaudeCliRunner()` (the planner and the workflow engine)
|
|
@@ -13,6 +14,8 @@ export function createRunner(backend) {
|
|
|
13
14
|
return new CodexAppServerRunner();
|
|
14
15
|
case 'opencode':
|
|
15
16
|
return new OpencodeServerRunner();
|
|
17
|
+
case 'pi':
|
|
18
|
+
return new PiRunner();
|
|
16
19
|
case 'claude':
|
|
17
20
|
case 'claude-cli':
|
|
18
21
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/core/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/core/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4C;IACvE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,KAAK,IAAI;YACP,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB;YACE,OAAO,IAAI,eAAe,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering environment assignments into a shell command line — the CLI-handoff half of agent
|
|
3
|
+
* profiles (spec 2026-07-29-agent-profiles).
|
|
4
|
+
*
|
|
5
|
+
* A run executed under a second account only resumes under that same account: `claude --resume
|
|
6
|
+
* <id>` reads `<CLAUDE_CONFIG_DIR>/sessions`, so a handoff without the variable does not fail
|
|
7
|
+
* loudly — it silently starts a fresh conversation. The variable therefore has to travel with
|
|
8
|
+
* every command cezar hands to a terminal, and it has to SURVIVE the command, because the window
|
|
9
|
+
* stays open and the user types the next `claude` in it themselves. Hence `export` / `set` rather
|
|
10
|
+
* than a one-shot `VAR=v cmd` prefix.
|
|
11
|
+
*
|
|
12
|
+
* There is no portable spelling: `VAR=v cmd` is meaningless to `cmd.exe`, and `set "VAR=v"` is
|
|
13
|
+
* meaningless to a POSIX shell. So this renders per platform, and — the load-bearing part —
|
|
14
|
+
* refuses rather than guesses. `null` means "this value cannot be embedded safely here", and
|
|
15
|
+
* every caller must then fail closed: opening a terminal on the WRONG account is worse than not
|
|
16
|
+
* opening one, because the user cannot see which account a shell is pointed at.
|
|
17
|
+
*/
|
|
18
|
+
/** POSIX single-quoting — the `'\''` dance, so any character but a control one is inert. */
|
|
19
|
+
export declare function shellQuote(value: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Assignments that persist for the rest of the shell session, or `null` when any value cannot be
|
|
22
|
+
* embedded safely on `platform`. An empty `env` renders `''` — the zero-config path adds nothing.
|
|
23
|
+
*
|
|
24
|
+
* The result is a PREFIX ready to concatenate: it already ends with its own separator.
|
|
25
|
+
*/
|
|
26
|
+
export declare function renderEnvPrefix(env: Record<string, string>, platform: NodeJS.Platform): string | null;
|
|
27
|
+
/** `renderEnvPrefix` applied to a command, or `null` when the env cannot be rendered safely. */
|
|
28
|
+
export declare function withEnvPrefix(command: string, env: Record<string, string>, platform: NodeJS.Platform): string | null;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering environment assignments into a shell command line — the CLI-handoff half of agent
|
|
3
|
+
* profiles (spec 2026-07-29-agent-profiles).
|
|
4
|
+
*
|
|
5
|
+
* A run executed under a second account only resumes under that same account: `claude --resume
|
|
6
|
+
* <id>` reads `<CLAUDE_CONFIG_DIR>/sessions`, so a handoff without the variable does not fail
|
|
7
|
+
* loudly — it silently starts a fresh conversation. The variable therefore has to travel with
|
|
8
|
+
* every command cezar hands to a terminal, and it has to SURVIVE the command, because the window
|
|
9
|
+
* stays open and the user types the next `claude` in it themselves. Hence `export` / `set` rather
|
|
10
|
+
* than a one-shot `VAR=v cmd` prefix.
|
|
11
|
+
*
|
|
12
|
+
* There is no portable spelling: `VAR=v cmd` is meaningless to `cmd.exe`, and `set "VAR=v"` is
|
|
13
|
+
* meaningless to a POSIX shell. So this renders per platform, and — the load-bearing part —
|
|
14
|
+
* refuses rather than guesses. `null` means "this value cannot be embedded safely here", and
|
|
15
|
+
* every caller must then fail closed: opening a terminal on the WRONG account is worse than not
|
|
16
|
+
* opening one, because the user cannot see which account a shell is pointed at.
|
|
17
|
+
*/
|
|
18
|
+
/** Values that cannot be embedded safely, per platform. Control characters are rejected
|
|
19
|
+
* everywhere (they would break the line-based launch script and are never a real path). */
|
|
20
|
+
const CONTROL_CHARS_RE = /[\u0000-\u001f\u007f]/;
|
|
21
|
+
/** `cmd.exe` has no escape inside a quoted `set` argument: `"` ends the quote and `%`/`!` expand.
|
|
22
|
+
* A path containing one is pathological, so refusing is honest rather than limiting. */
|
|
23
|
+
const WIN32_UNSAFE_RE = /["%!]/;
|
|
24
|
+
/** POSIX single-quoting — the `'\''` dance, so any character but a control one is inert. */
|
|
25
|
+
export function shellQuote(value) {
|
|
26
|
+
return `'${value.replaceAll("'", `'\\''`)}'`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Assignments that persist for the rest of the shell session, or `null` when any value cannot be
|
|
30
|
+
* embedded safely on `platform`. An empty `env` renders `''` — the zero-config path adds nothing.
|
|
31
|
+
*
|
|
32
|
+
* The result is a PREFIX ready to concatenate: it already ends with its own separator.
|
|
33
|
+
*/
|
|
34
|
+
export function renderEnvPrefix(env, platform) {
|
|
35
|
+
const entries = Object.entries(env);
|
|
36
|
+
if (entries.length === 0)
|
|
37
|
+
return '';
|
|
38
|
+
for (const [name, value] of entries) {
|
|
39
|
+
if (CONTROL_CHARS_RE.test(name) || CONTROL_CHARS_RE.test(value))
|
|
40
|
+
return null;
|
|
41
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))
|
|
42
|
+
return null;
|
|
43
|
+
if (platform === 'win32' && (WIN32_UNSAFE_RE.test(name) || WIN32_UNSAFE_RE.test(value)))
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
if (platform === 'win32') {
|
|
47
|
+
return entries.map(([name, value]) => `set "${name}=${value}" && `).join('');
|
|
48
|
+
}
|
|
49
|
+
return entries.map(([name, value]) => `export ${name}=${shellQuote(value)}; `).join('');
|
|
50
|
+
}
|
|
51
|
+
/** `renderEnvPrefix` applied to a command, or `null` when the env cannot be rendered safely. */
|
|
52
|
+
export function withEnvPrefix(command, env, platform) {
|
|
53
|
+
const prefix = renderEnvPrefix(env, platform);
|
|
54
|
+
return prefix === null ? null : `${prefix}${command}`;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=shell-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-env.js","sourceRoot":"","sources":["../../src/core/shell-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;4FAC4F;AAC5F,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD;yFACyF;AACzF,MAAM,eAAe,GAAG,OAAO,CAAC;AAEhC,4FAA4F;AAC5F,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,GAA2B,EAC3B,QAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7E,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACvG,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,GAA2B,EAC3B,QAAyB;IAEzB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/core/ui-events.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
/** The backend that produced a session — mirrors `RunnerId` in
|
|
25
25
|
* `agent-runner.ts` (kept structurally identical; a type-level test
|
|
26
26
|
* guards against drift so this module stays dependency-free). */
|
|
27
|
-
export type UiBackend = 'claude' | 'codex' | 'opencode';
|
|
27
|
+
export type UiBackend = 'claude' | 'codex' | 'opencode' | 'pi';
|
|
28
28
|
/**
|
|
29
29
|
* Tool lifecycle status (ACP: pending/in_progress/completed/failed).
|
|
30
30
|
* `running` ≡ ACP `in_progress` (opencode's word — reads better in code);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider usage-limit detection (spec 2026-08-03-auto-resume-after-usage-limit).
|
|
3
|
+
*
|
|
4
|
+
* A subscription that runs out of its window does not fail like an agent bug does: the work is
|
|
5
|
+
* fine, the account is simply closed until a KNOWN instant. That instant is the whole feature —
|
|
6
|
+
* without it there is nothing to schedule, so this module answers exactly one question about a
|
|
7
|
+
* terminal error string: "is this a usage limit, and when does it lift?".
|
|
8
|
+
*
|
|
9
|
+
* The evidence differs per backend, so the shapes are recognized in order of how exact they are:
|
|
10
|
+
*
|
|
11
|
+
* 1. Claude Code's machine-readable envelope, `Claude AI usage limit reached|<epoch>` — the CLI
|
|
12
|
+
* puts it in an `is_error` result frame, which reaches cezar verbatim as the run's `error`.
|
|
13
|
+
* Exact, no locale, no parsing of prose. This is the one that matters in practice.
|
|
14
|
+
* 2. An explicit reset instant in the prose (`try again at 2026-08-03T18:00:00Z`) — how Codex and
|
|
15
|
+
* OpenCode phrase the same thing when they carry a timestamp at all.
|
|
16
|
+
* 3. A clock-only reset in prose (`resets 8:10pm (Europe/Warsaw)`) — how Claude Code phrases
|
|
17
|
+
* session windows in some interactive output.
|
|
18
|
+
* 4. A relative delay (`try again in 42 minutes`, `retry-after: 3600`).
|
|
19
|
+
*
|
|
20
|
+
* Nothing else counts. A limit message with no recoverable reset instant returns `null` on
|
|
21
|
+
* purpose: guessing a window would turn one interruption into a retry loop against a provider
|
|
22
|
+
* that is still refusing, and "we don't know when" is an honest answer the caller can surface.
|
|
23
|
+
*/
|
|
24
|
+
export interface UsageLimitHit {
|
|
25
|
+
/** When the provider says the limit lifts. Never in the past — a stale instant clamps to now. */
|
|
26
|
+
resetAt: Date;
|
|
27
|
+
/** Which shape carried it — the lifecycle note quotes this so the schedule is auditable. */
|
|
28
|
+
evidence: 'claude-marker' | 'timestamp' | 'clock' | 'delay';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The furthest ahead a reset may sit and still be believed. Claude's weekly window is the real
|
|
32
|
+
* ceiling; anything beyond a week is a corrupt or unit-confused number, and parking a task on it
|
|
33
|
+
* would be indistinguishable from losing the task.
|
|
34
|
+
*/
|
|
35
|
+
export declare const MAX_USAGE_LIMIT_WAIT_MS: number;
|
|
36
|
+
/**
|
|
37
|
+
* Read a usage limit out of a terminal error message, or `null` when it is not one (or carries no
|
|
38
|
+
* usable reset instant). `now` is injected so callers and tests share one clock.
|
|
39
|
+
*
|
|
40
|
+
* Never throws: this runs on the failure path of every run, where a second failure helps nobody.
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseUsageLimit(message: string | undefined, now?: number): UsageLimitHit | null;
|