@sentropic/h2a-runtime 0.91.1 → 0.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/config.d.ts +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +16 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/conv-guard.d.ts +6 -1
  6. package/dist/conv-guard.d.ts.map +1 -1
  7. package/dist/conv-guard.js +33 -8
  8. package/dist/conv-guard.js.map +1 -1
  9. package/dist/enroll.d.ts.map +1 -1
  10. package/dist/enroll.js +12 -2
  11. package/dist/enroll.js.map +1 -1
  12. package/dist/index.d.ts +3 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +819 -155
  15. package/dist/index.js.map +1 -1
  16. package/dist/launch-layout.d.ts +74 -0
  17. package/dist/launch-layout.d.ts.map +1 -0
  18. package/dist/launch-layout.js +324 -0
  19. package/dist/launch-layout.js.map +1 -0
  20. package/dist/llm-gateway-runtime/index.d.ts +6 -0
  21. package/dist/llm-gateway-runtime/index.d.ts.map +1 -1
  22. package/dist/llm-gateway-runtime/index.js +134 -60
  23. package/dist/llm-gateway-runtime/index.js.map +1 -1
  24. package/dist/llm-gateway-runtime/session-ledger.d.ts +38 -55
  25. package/dist/llm-gateway-runtime/session-ledger.d.ts.map +1 -1
  26. package/dist/llm-gateway-runtime/session-ledger.js +102 -250
  27. package/dist/llm-gateway-runtime/session-ledger.js.map +1 -1
  28. package/dist/llm-gateway-runtime/sticky.d.ts +25 -52
  29. package/dist/llm-gateway-runtime/sticky.d.ts.map +1 -1
  30. package/dist/llm-gateway-runtime/sticky.js +36 -605
  31. package/dist/llm-gateway-runtime/sticky.js.map +1 -1
  32. package/dist/llm-mesh.d.ts +19 -72
  33. package/dist/llm-mesh.d.ts.map +1 -1
  34. package/dist/llm-mesh.js +42 -399
  35. package/dist/llm-mesh.js.map +1 -1
  36. package/dist/llm-routing-config.d.ts +28 -0
  37. package/dist/llm-routing-config.d.ts.map +1 -0
  38. package/dist/llm-routing-config.js +100 -0
  39. package/dist/llm-routing-config.js.map +1 -0
  40. package/dist/native-host.d.ts +146 -0
  41. package/dist/native-host.d.ts.map +1 -0
  42. package/dist/native-host.js +456 -0
  43. package/dist/native-host.js.map +1 -0
  44. package/dist/native-terminal/host.d.ts +317 -1
  45. package/dist/native-terminal/host.d.ts.map +1 -1
  46. package/dist/native-terminal/host.js +696 -3
  47. package/dist/native-terminal/host.js.map +1 -1
  48. package/dist/native-terminal/op.d.ts +5 -0
  49. package/dist/native-terminal/op.d.ts.map +1 -0
  50. package/dist/native-terminal/op.js +408 -0
  51. package/dist/native-terminal/op.js.map +1 -0
  52. package/dist/native-terminal/process.d.ts +2 -0
  53. package/dist/native-terminal/process.d.ts.map +1 -1
  54. package/dist/native-terminal/process.js +16 -2
  55. package/dist/native-terminal/process.js.map +1 -1
  56. package/dist/native-terminal/server.d.ts.map +1 -1
  57. package/dist/native-terminal/server.js +6 -2
  58. package/dist/native-terminal/server.js.map +1 -1
  59. package/dist/native-terminal/socket-path.d.ts +8 -0
  60. package/dist/native-terminal/socket-path.d.ts.map +1 -1
  61. package/dist/native-terminal/socket-path.js +31 -1
  62. package/dist/native-terminal/socket-path.js.map +1 -1
  63. package/dist/native-terminal/supervisor.d.ts +13 -0
  64. package/dist/native-terminal/supervisor.d.ts.map +1 -1
  65. package/dist/native-terminal/supervisor.js +45 -0
  66. package/dist/native-terminal/supervisor.js.map +1 -1
  67. package/dist/pty.d.ts +23 -0
  68. package/dist/pty.d.ts.map +1 -1
  69. package/dist/pty.js +35 -0
  70. package/dist/pty.js.map +1 -1
  71. package/dist/readiness.d.ts +7 -0
  72. package/dist/readiness.d.ts.map +1 -1
  73. package/dist/readiness.js +12 -9
  74. package/dist/readiness.js.map +1 -1
  75. package/dist/registry.d.ts +324 -2
  76. package/dist/registry.d.ts.map +1 -1
  77. package/dist/registry.js +659 -20
  78. package/dist/registry.js.map +1 -1
  79. package/dist/restore.d.ts +91 -32
  80. package/dist/restore.d.ts.map +1 -1
  81. package/dist/restore.js +226 -186
  82. package/dist/restore.js.map +1 -1
  83. package/dist/status-projection.d.ts.map +1 -1
  84. package/dist/tmux.d.ts +9 -6
  85. package/dist/tmux.d.ts.map +1 -1
  86. package/dist/tmux.js +34 -8
  87. package/dist/tmux.js.map +1 -1
  88. package/package.json +3 -3
  89. package/dist/llm-gateway-runtime/accounts.d.ts +0 -62
  90. package/dist/llm-gateway-runtime/accounts.d.ts.map +0 -1
  91. package/dist/llm-gateway-runtime/accounts.js +0 -323
  92. package/dist/llm-gateway-runtime/accounts.js.map +0 -1
  93. package/dist/llm-gateway-runtime/model-catalog.d.ts +0 -44
  94. package/dist/llm-gateway-runtime/model-catalog.d.ts.map +0 -1
  95. package/dist/llm-gateway-runtime/model-catalog.js +0 -191
  96. package/dist/llm-gateway-runtime/model-catalog.js.map +0 -1
  97. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts +0 -3
  98. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts.map +0 -1
  99. package/dist/llm-gateway-runtime/proxy-anthropic.js +0 -318
  100. package/dist/llm-gateway-runtime/proxy-anthropic.js.map +0 -1
  101. package/dist/llm-gateway-runtime/proxy-cloud-code.d.ts +0 -11
  102. package/dist/llm-gateway-runtime/proxy-cloud-code.d.ts.map +0 -1
  103. package/dist/llm-gateway-runtime/proxy-cloud-code.js +0 -215
  104. package/dist/llm-gateway-runtime/proxy-cloud-code.js.map +0 -1
  105. package/dist/llm-gateway-runtime/proxy-openai.d.ts +0 -118
  106. package/dist/llm-gateway-runtime/proxy-openai.d.ts.map +0 -1
  107. package/dist/llm-gateway-runtime/proxy-openai.js +0 -1305
  108. package/dist/llm-gateway-runtime/proxy-openai.js.map +0 -1
package/dist/llm-mesh.js CHANGED
@@ -1,25 +1,25 @@
1
1
  /**
2
2
  * llm-mesh — local LLM gateway management for solo-dev mode.
3
3
  *
4
- * Enrollment: `h2a llm-mesh enroll cloud-code|codex` delegates OAuth to the
5
- * sentropic-owned facade and records only public account metadata locally.
4
+ * Enrollment: `h2a llm-mesh enroll cloud-code|codex` delegates OAuth and
5
+ * account persistence entirely to the sentropic-owned facade.
6
6
  *
7
- * Startup: `remote llm-mesh start` reads the config, starts the embedded
8
- * gateway runtime as a background process, and prints the env vars to
9
- * configure Claude Code.
7
+ * Startup: `h2a llm-mesh start` reads public host config and starts the
8
+ * embedded gateway runtime as a background process. Callers acquire an
9
+ * opaque process-local bearer without printing it.
10
10
  *
11
11
  * Config path: ~/.sentropic/llm-mesh.json (0600, public metadata only)
12
12
  * PID file: ~/.sentropic/llm-mesh.pid
13
- * Token file: ~/.sentropic/llm-mesh-token.json (0600, runtime metadata + derived gw-token)
14
- * Seed file: ~/.sentropic/llm-mesh-seed (0600, sole durable gateway-token secret)
13
+ * Runtime file: ~/.sentropic/llm-mesh-token.json (0600, base URL + PID only)
15
14
  */
16
- import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
15
+ import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
17
16
  import { homedir, hostname } from "node:os";
18
17
  import { dirname, join } from "node:path";
19
18
  import { fileURLToPath } from "node:url";
20
19
  import { spawn } from "node:child_process";
21
20
  import { randomBytes } from "node:crypto";
22
21
  import { createLlmMeshFacade, } from "@sentropic/llm-mesh/facade";
22
+ import { validateLlmMeshRoutingConfig, } from "./llm-routing-config.js";
23
23
  const ANTHROPIC_GATEWAY_ENV_KEYS = [
24
24
  "ANTHROPIC_BASE_URL",
25
25
  "ANTHROPIC_AUTH_TOKEN",
@@ -66,8 +66,13 @@ export function createCliLlmMeshFacade() {
66
66
  return createLlmMeshFacade({
67
67
  configResolver: facadeConfigResolver(),
68
68
  mode: "cli",
69
+ legacyAccountOwnerScopeRef: llmMeshOwnerScopeRef(),
69
70
  });
70
71
  }
72
+ /** Stable local owner used both at enrollment and by gateway-authenticated routing. */
73
+ export function llmMeshOwnerScopeRef() {
74
+ return process.env.H2A_LLM_MESH_OWNER_SCOPE?.trim() || `cli:${hostname()}`;
75
+ }
71
76
  function openEnrollmentBrowser(url) {
72
77
  const command = process.platform === "darwin"
73
78
  ? "open"
@@ -85,8 +90,8 @@ function openEnrollmentBrowser(url) {
85
90
  }
86
91
  /**
87
92
  * Enroll through the sentropic-owned OAuth state machine. H2A never receives
88
- * an authorization code or a provider token; only the public account record is
89
- * retained locally for CLI status.
93
+ * an authorization code or a provider token. Account records remain owned by
94
+ * the facade/keyring and are not copied into h2a config.
90
95
  */
91
96
  export async function enrollViaFacade(provider, options = {}) {
92
97
  const facade = options.facade ?? createCliLlmMeshFacade();
@@ -94,7 +99,7 @@ export async function enrollViaFacade(provider, options = {}) {
94
99
  configRef: options.configRef ?? process.env.H2A_LLM_MESH_CONFIG_REF ?? "default",
95
100
  mode: "cli",
96
101
  redirectUri: options.redirectUri ?? "http://127.0.0.1",
97
- ownerScope: options.ownerScope ?? `cli:${hostname()}`,
102
+ ownerScope: options.ownerScope ?? llmMeshOwnerScopeRef(),
98
103
  });
99
104
  const completed = provider === "cloud-code"
100
105
  ? await (async () => {
@@ -114,12 +119,6 @@ export async function enrollViaFacade(provider, options = {}) {
114
119
  })();
115
120
  return { accountId: completed.accountId, provider, label: completed.label };
116
121
  }
117
- export function recordFacadeEnrollment(account, dir) {
118
- const config = readLlmMeshConfig(dir) ?? { accounts: [] };
119
- const meshAccounts = (config.meshAccounts ?? []).filter((existing) => existing.accountId !== account.accountId);
120
- meshAccounts.push(account);
121
- writeLlmMeshConfig({ ...config, meshAccounts }, dir);
122
- }
123
122
  // ---------------------------------------------------------------------------
124
123
  // Capitalized LlmMeshManager API
125
124
  // ---------------------------------------------------------------------------
@@ -130,22 +129,6 @@ export class LlmMeshManager {
130
129
  SaveConfig(config, dir) {
131
130
  writeLlmMeshConfig(config, dir);
132
131
  }
133
- EnrollAccount(provider, customDir) {
134
- const p = provider.toLowerCase();
135
- if (p === "codex" || p === "openai") {
136
- return enrollCodexAccount(customDir);
137
- }
138
- if (p === "google" || p === "gemini") {
139
- return enrollGeminiAccount(customDir);
140
- }
141
- if (p === "anthropic") {
142
- return enrollClaudeAccount(customDir);
143
- }
144
- throw new Error(`Unsupported provider for enrollment: ${provider}`);
145
- }
146
- async RefreshToken(account) {
147
- return refreshAccountToken(account);
148
- }
149
132
  async StartGateway(config, opts = {}) {
150
133
  return startGateway(config, opts);
151
134
  }
@@ -171,12 +154,6 @@ export function llmMeshPidPath(dir) {
171
154
  export function llmMeshTokenPath(dir) {
172
155
  return join(dir ?? sentropicDir(), "llm-mesh-token.json");
173
156
  }
174
- export function llmMeshSeedPath(dir) {
175
- return join(dir ?? sentropicDir(), "llm-mesh-seed");
176
- }
177
- export function llmMeshStickyPath(dir) {
178
- return join(dir ?? sentropicDir(), "llm-mesh-sticky.json");
179
- }
180
157
  export function llmMeshLogPath(config, dir) {
181
158
  return config?.logFile ?? join(dir ?? sentropicDir(), "llm-mesh.log");
182
159
  }
@@ -198,304 +175,32 @@ function writeSecret(path, value) {
198
175
  chmodSync(tmp, 0o600);
199
176
  renameSync(tmp, path);
200
177
  }
201
- function writeSecretString(path, value) {
202
- mkdirSync(dirname(path), { recursive: true });
203
- const tmp = `${path}.tmp.${process.pid}`;
204
- writeFileSync(tmp, value + "\n", { mode: 0o600 });
205
- chmodSync(tmp, 0o600);
206
- renameSync(tmp, path);
207
- }
208
178
  export function readLlmMeshConfig(dir) {
209
179
  const config = readJson(llmMeshConfigPath(dir));
210
180
  if (!config)
211
181
  return null;
212
- // `accounts` used to hold provider credentials. Ignore it on read so a
213
- // pre-facade file cannot put a token back into the gateway process.
214
- return { ...config, accounts: [] };
182
+ const { accounts: _legacyAccounts, meshAccounts: _legacyPublicIds, ...publicConfig } = config;
183
+ return publicConfig;
215
184
  }
216
185
  export function writeLlmMeshConfig(config, dir) {
217
186
  // The facade/keyring own credentials. Keep only public enrollment metadata
218
187
  // in llm-mesh.json, including when migrating a pre-facade configuration.
219
- const { accounts: _legacyCredentialRecords, ...publicConfig } = config;
188
+ const { accounts: _legacyCredentialRecords, meshAccounts: _legacyPublicIds, ...publicConfig } = config;
189
+ if (publicConfig.routing)
190
+ validateLlmMeshRoutingConfig(publicConfig.routing);
220
191
  writeSecret(llmMeshConfigPath(dir), publicConfig);
221
192
  }
222
- export function readOrCreateLlmMeshSeed(dir) {
223
- const path = llmMeshSeedPath(dir);
224
- try {
225
- const seed = readFileSync(path, "utf8").trim();
226
- if (seed) {
227
- try {
228
- const mode = statSync(path).mode & 0o777;
229
- if (mode !== 0o600)
230
- chmodSync(path, 0o600);
231
- }
232
- catch {
233
- // best effort only
234
- }
235
- return seed;
236
- }
237
- }
238
- catch {
239
- // create below
240
- }
241
- const seed = randomBytes(32).toString("base64url");
242
- writeSecretString(path, seed);
243
- return seed;
244
- }
245
- // ---------------------------------------------------------------------------
246
- // JWT helpers (no signature verification — expiry check only)
247
- // ---------------------------------------------------------------------------
248
- export function jwtExpiry(token) {
249
- try {
250
- const parts = token.split(".");
251
- if (parts.length < 2)
252
- return null;
253
- const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
254
- if (typeof payload.exp !== "number")
255
- return null;
256
- return new Date(payload.exp * 1000);
257
- }
258
- catch {
259
- return null;
260
- }
261
- }
262
- export function isTokenExpired(token, graceSeconds = 300) {
263
- const exp = jwtExpiry(token);
264
- if (!exp)
265
- return false; // non-JWT token — assume valid
266
- return exp.getTime() - graceSeconds * 1000 < Date.now();
267
- }
268
- function isAccountTokenExpired(account, graceSeconds = 300) {
269
- if (account.expiresAt) {
270
- const expiresAtMs = Date.parse(account.expiresAt);
271
- if (Number.isFinite(expiresAtMs)) {
272
- return expiresAtMs - graceSeconds * 1000 < Date.now();
273
- }
274
- }
275
- return isTokenExpired(account.token, graceSeconds);
276
- }
277
- /**
278
- * Read Codex credentials from ~/.codex/auth.json and produce an LlmMeshAccount.
279
- * Supports:
280
- * - OPENAI_API_KEY (raw sk-... key, pay-per-token tier)
281
- * - tokens.access_token (ChatGPT Pro OAuth JWT, subscription flat-rate tier)
282
- */
283
- export function enrollCodexAccount(codexDir) {
284
- const authPath = join(codexDir ?? join(homedir(), ".codex"), "auth.json");
285
- const auth = readJson(authPath);
286
- if (!auth) {
287
- throw new Error(`Codex auth file not found or unreadable: ${authPath}`);
288
- }
289
- // Raw API key path (standard pay-per-token)
290
- if (typeof auth.OPENAI_API_KEY === "string" && auth.OPENAI_API_KEY.trim()) {
291
- return {
292
- id: "codex-api",
293
- provider: "openai",
294
- label: "Codex (API key)",
295
- token: auth.OPENAI_API_KEY.trim(),
296
- };
297
- }
298
- // OAuth path (ChatGPT Pro / subscription)
299
- const accessToken = auth.tokens?.access_token;
300
- if (!accessToken || !accessToken.trim()) {
301
- throw new Error(`No usable credential in ${authPath}: OPENAI_API_KEY is null/absent ` +
302
- `and tokens.access_token is missing. Run \`codex auth login\` first.`);
303
- }
304
- const expiresAt = jwtExpiry(accessToken);
305
- const refreshToken = auth.tokens?.refresh_token;
306
- const account = {
307
- id: "codex-oauth",
308
- provider: "openai",
309
- label: "Codex (ChatGPT Pro OAuth)",
310
- token: accessToken.trim(),
311
- };
312
- if (refreshToken)
313
- account.refreshToken = refreshToken;
314
- if (expiresAt)
315
- account.expiresAt = expiresAt.toISOString();
316
- return account;
317
- }
318
- /**
319
- * Read the Google Code Assist OAuth login from ~/.gemini/oauth_creds.json and produce a gateway
320
- * account.
321
- */
322
- export function enrollGeminiAccount(geminiDir) {
323
- const baseDir = geminiDir ?? join(homedir(), ".gemini");
324
- // ── Try AGY (Antigravity) token — access_token only (refresh_token is
325
- // bound to AGY's own OAuth client and cannot be refreshed by h2a) ──
326
- const agyPath = join(baseDir, "antigravity-cli", "antigravity-oauth-token");
327
- const agyRaw = readJson(agyPath);
328
- const agyToken = agyRaw?.token?.access_token?.trim();
329
- const agyExpiry = agyRaw?.token?.expiry ? Date.parse(agyRaw.token.expiry) : NaN;
330
- // Only use AGY token if it's still valid (not expired).
331
- const agyStillValid = Number.isFinite(agyExpiry) && agyExpiry > Date.now();
332
- if (agyToken && agyStillValid) {
333
- return {
334
- id: "gemini-code",
335
- provider: "google",
336
- authType: "bearer",
337
- label: "Antigravity (Google OAuth)",
338
- token: agyToken,
339
- expiresAt: new Date(agyExpiry).toISOString(),
340
- // No refreshToken — AGY's refresh_token is bound to its own OAuth client.
341
- };
342
- }
343
- // ── Fallback: legacy Gemini CLI oauth_creds.json ──
344
- const path = join(baseDir, "oauth_creds.json");
345
- const oauth = readJson(path);
346
- const accessToken = oauth?.access_token;
347
- if (!accessToken || !accessToken.trim()) {
348
- throw new Error(`No usable Google OAuth found.\n` +
349
- ` Tried AGY token: ${agyPath} (missing or empty)\n` +
350
- ` Tried Gemini CLI: ${path} (missing or empty)\n` +
351
- `Log in with the Antigravity CLI (agy) or Gemini CLI first.`);
352
- }
353
- const account = {
354
- id: "gemini-code",
355
- provider: "google",
356
- authType: "bearer",
357
- label: "Gemini Code Assist (OAuth)",
358
- token: accessToken.trim(),
359
- };
360
- if (oauth?.refresh_token)
361
- account.refreshToken = oauth.refresh_token;
362
- if (typeof oauth?.expiry_date === "number") {
363
- account.expiresAt = new Date(oauth.expiry_date).toISOString();
364
- }
365
- return account;
366
- }
367
- /**
368
- * Read the local Claude Code OAuth login from ~/.claude/.credentials.json and produce a gateway
369
- * account that upstreams via the Claude-code transport (Anthropic /v1/messages with a Bearer OAuth
370
- * token + the oauth beta, NOT an sk-ant-api key). Mirrors enrollCodexAccount. The proxy uses the
371
- * `sk-ant-oat` token prefix (and authType:"bearer") to pick the Bearer + anthropic-beta path.
372
- */
373
- export function enrollClaudeAccount(claudeDir) {
374
- const path = join(claudeDir ?? join(homedir(), ".claude"), ".credentials.json");
375
- const raw = readJson(path);
376
- const oauth = raw?.claudeAiOauth;
377
- const accessToken = oauth?.accessToken;
378
- if (!accessToken || !accessToken.trim()) {
379
- throw new Error(`No usable Claude Code OAuth in ${path}: claudeAiOauth.accessToken is missing. ` +
380
- `Log in with the Claude Code CLI first.`);
381
- }
382
- const label = oauth?.subscriptionType
383
- ? `Claude Code (${oauth.subscriptionType} OAuth)`
384
- : "Claude Code (OAuth)";
385
- const account = {
386
- id: "claude-code",
387
- provider: "anthropic",
388
- authType: "bearer",
389
- label,
390
- token: accessToken.trim(),
391
- };
392
- if (oauth?.refreshToken)
393
- account.refreshToken = oauth.refreshToken;
394
- if (typeof oauth?.expiresAt === "number") {
395
- account.expiresAt = new Date(oauth.expiresAt).toISOString();
396
- }
397
- return account;
398
- }
399
- // Google OAuth client credentials for token refresh.
400
- // AGY (Antigravity CLI) and Gemini CLI use different OAuth installed-app clients.
401
- // Both are public credentials shipped in open-source binaries (not server secrets).
402
- // We try AGY first (since enrollGeminiAccount prefers AGY tokens), then Gemini CLI.
403
- const AGY_CLIENT_ID = Buffer.from("MTA3MTAwNjA2MDU5MS10" + "bWhzc2luMmgyMWxjcmUy" + "MzV2dG9sb2poNGc0MDNl" + "cC5hcHBzLmdvb2dsZXVz" + "ZXJjb250ZW50LmNvbQ==", "base64").toString();
404
- const AGY_CLIENT_SECRET = Buffer.from("R09DU1BYLTlZUVdwRjdS" + "V0RDMFFUZGotWXhLTXdSMFp0c1g=", "base64").toString();
405
- const GEMINI_CLI_CLIENT_ID = Buffer.from("NjgxMjU1ODA5Mzk1LW9v" + "OGZ0Mm9wcmRybnA5ZTNh" + "cWY2YXYzaG1kaWIxMzVq" + "LmFwcHMuZ29vZ2xldXNl" + "cmNvbnRlbnQuY29t", "base64").toString();
406
- const GEMINI_CLI_CLIENT_SECRET = Buffer.from("R09DU1BYLTR1SGdNUG0t" + "MW83U2stZ2VWNkN1NWNsWEZzeGw=", "base64").toString();
407
- /**
408
- * Attempt to refresh an account's OAuth access token using its refresh_token.
409
- * Returns the updated account, or the original if refresh is not applicable
410
- * (no refresh_token, or already a raw API key).
411
- */
412
- export async function refreshAccountToken(account, dir) {
413
- if (account.provider === "google" ||
414
- account.provider === "gemini" ||
415
- account.provider === "gcp") {
416
- if (!account.refreshToken) {
417
- const baseDir = dir ?? homedir();
418
- const agyPath = join(baseDir, ".gemini", "antigravity-cli", "antigravity-oauth-token");
419
- const agyRaw = readJson(agyPath);
420
- const agyToken = agyRaw?.token?.access_token?.trim();
421
- if (agyToken) {
422
- const agyExpiry = agyRaw?.token?.expiry ? Date.parse(agyRaw.token.expiry) : NaN;
423
- return {
424
- ...account,
425
- token: agyToken,
426
- ...(Number.isFinite(agyExpiry) ? { expiresAt: new Date(agyExpiry).toISOString() } : {}),
427
- };
428
- }
429
- return account;
430
- }
431
- if (!isAccountTokenExpired(account))
432
- return account;
433
- const clientId = process.env["GOOGLE_OAUTH_CLIENT_ID"] ?? AGY_CLIENT_ID;
434
- const clientSecret = process.env["GOOGLE_OAUTH_CLIENT_SECRET"] ?? AGY_CLIENT_SECRET;
435
- const doRefresh = async (cId, cSecret) => {
436
- return fetch("https://oauth2.googleapis.com/token", {
437
- method: "POST",
438
- headers: { "content-type": "application/x-www-form-urlencoded" },
439
- body: new URLSearchParams({
440
- grant_type: "refresh_token",
441
- refresh_token: account.refreshToken,
442
- client_id: cId,
443
- client_secret: cSecret,
444
- }),
445
- });
446
- };
447
- let resp = await doRefresh(clientId, clientSecret);
448
- if (resp.status === 401 && !process.env["GOOGLE_OAUTH_CLIENT_ID"]) {
449
- resp = await doRefresh(GEMINI_CLI_CLIENT_ID, GEMINI_CLI_CLIENT_SECRET);
450
- }
451
- if (!resp.ok) {
452
- throw new Error(`Google token refresh failed (${resp.status}): ${await resp.text()}`);
453
- }
454
- const data = (await resp.json());
455
- if (!data.access_token) {
456
- throw new Error("Google token refresh: no access_token in response");
457
- }
458
- const refreshedAccount = {
459
- ...account,
460
- token: data.access_token,
461
- };
462
- if (typeof data.expires_in === "number" && data.expires_in > 0) {
463
- refreshedAccount.expiresAt = new Date(Date.now() + data.expires_in * 1000).toISOString();
464
- }
465
- else {
466
- delete refreshedAccount.expiresAt;
467
- }
468
- return refreshedAccount;
469
- }
470
- if (!account.refreshToken)
471
- return account;
472
- if (!isAccountTokenExpired(account))
473
- return account;
474
- // Never send a non-OpenAI provider's refresh token across provider
475
- // boundaries. In particular, Claude OAuth accounts are not refreshable here.
476
- if (account.provider !== "openai")
477
- return account;
478
- const resp = await fetch("https://auth.openai.com/oauth/token", {
479
- method: "POST",
480
- headers: { "content-type": "application/x-www-form-urlencoded" },
481
- body: new URLSearchParams({
482
- grant_type: "refresh_token",
483
- refresh_token: account.refreshToken,
484
- client_id: "app_EMoamEEZ73f0CkXaXp7hrann",
485
- }),
486
- });
487
- if (!resp.ok) {
488
- throw new Error(`Token refresh failed (${resp.status}): ${await resp.text()}`);
489
- }
490
- const data = (await resp.json());
491
- if (!data.access_token)
492
- throw new Error("Token refresh: no access_token in response");
493
- const expiresAt = jwtExpiry(data.access_token);
494
- return {
495
- ...account,
496
- token: data.access_token,
497
- ...(expiresAt ? { expiresAt: expiresAt.toISOString() } : {}),
498
- };
193
+ export function updateLlmMeshRoutingConfig(routing, dir) {
194
+ const config = readLlmMeshConfig(dir) ?? {};
195
+ const next = routing
196
+ ? { ...config, routing: validateLlmMeshRoutingConfig(routing) }
197
+ : (() => {
198
+ const copy = { ...config };
199
+ delete copy.routing;
200
+ return copy;
201
+ })();
202
+ writeLlmMeshConfig(next, dir);
203
+ return next;
499
204
  }
500
205
  // ---------------------------------------------------------------------------
501
206
  // Gateway process management
@@ -505,11 +210,6 @@ export function gatewayScriptPath() {
505
210
  const thisFile = fileURLToPath(import.meta.url);
506
211
  return join(dirname(thisFile), "llm-gateway-runtime", "index.js");
507
212
  }
508
- export function localGatewaySessionProvider(accounts) {
509
- return accounts.some((account) => account.provider === "cloud-code")
510
- ? "cloud-code"
511
- : undefined;
512
- }
513
213
  /**
514
214
  * A gateway session is an account-affinity boundary, so a local CLI session
515
215
  * must never inherit a process-wide static identifier. Callers provide the
@@ -533,15 +233,13 @@ export async function startGateway(config, opts = {}) {
533
233
  `Run \`npm run build -w @sentropic/remote-cli\` first.`);
534
234
  }
535
235
  mkdirSync(sentropicDir(), { recursive: true });
536
- const sessionProvider = localGatewaySessionProvider(config.meshAccounts ?? []);
537
- if (!sessionProvider) {
538
- throw new Error("llm-mesh has no Cloud Code enrollment. Run `h2a llm-mesh enroll cloud-code` first.");
539
- }
540
236
  const gatewayEnv = {
541
237
  ...process.env,
542
- LLM_GATEWAY_TOKEN_SEED: readOrCreateLlmMeshSeed(),
543
- LLM_GATEWAY_STICKY_FILE: llmMeshStickyPath(),
544
238
  PORT: String(port),
239
+ H2A_LLM_MESH_OWNER_SCOPE: llmMeshOwnerScopeRef(),
240
+ ...(config.routing
241
+ ? { H2A_LLM_MESH_ROUTING_JSON: JSON.stringify(config.routing) }
242
+ : {}),
545
243
  };
546
244
  // Start detached, piping stdout+stderr to logFile
547
245
  const { openSync } = await import("node:fs");
@@ -564,9 +262,8 @@ export async function startGateway(config, opts = {}) {
564
262
  headers: { "content-type": "application/json" },
565
263
  body: JSON.stringify({
566
264
  sessionId: gatewayClientSessionId(opts.clientSessionId),
265
+ clientSessionId: opts.clientSessionId,
567
266
  workspaceId: process.cwd(),
568
- provider: sessionProvider,
569
- requiredTransport: "cloud-code",
570
267
  }),
571
268
  });
572
269
  if (!sessionResp.ok) {
@@ -576,12 +273,11 @@ export async function startGateway(config, opts = {}) {
576
273
  const gatewayToken = session.gatewayToken;
577
274
  if (!gatewayToken)
578
275
  throw new Error("No gatewayToken in session response");
579
- // Persist the token (secret)
276
+ // Persist only process metadata. The opaque bearer remains process-local and
277
+ // is reacquired for each caller affinity.
580
278
  writeSecret(llmMeshTokenPath(), {
581
- gatewayToken,
582
279
  baseUrl,
583
280
  pid,
584
- provider: sessionProvider,
585
281
  });
586
282
  return { pid, port, gatewayToken };
587
283
  }
@@ -621,57 +317,20 @@ function configuredGatewayBaseUrl(dir) {
621
317
  return null;
622
318
  return `http://localhost:${config.port ?? 3002}`;
623
319
  }
624
- /**
625
- * Returns {ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN} for the running local
626
- * gateway, or null if not running or token file absent.
627
- *
628
- * Used by `remote run` to auto-inject the gateway env into every tmux session
629
- * (interactive + headless) so all Claude sessions + their subagents use the gateway.
630
- */
631
- export function readLlmMeshSessionEnv(dir) {
632
- try {
633
- const raw = readFileSync(llmMeshTokenPath(dir), "utf8");
634
- const { gatewayToken, baseUrl, pid } = JSON.parse(raw);
635
- if (!gatewayToken || !baseUrl)
636
- return null;
637
- // Verify the gateway process is still alive
638
- try {
639
- process.kill(pid, 0);
640
- }
641
- catch {
642
- return null;
643
- }
644
- return {
645
- ANTHROPIC_BASE_URL: baseUrl,
646
- ANTHROPIC_AUTH_TOKEN: gatewayToken,
647
- // Claude Code subagents may re-read API-key style env instead of the
648
- // auth-token env used by the parent process. Keep both pointed at the
649
- // same opaque gateway token; do not write Claude config.
650
- ANTHROPIC_API_KEY: gatewayToken,
651
- };
652
- }
653
- catch {
654
- return null;
655
- }
656
- }
657
320
  /**
658
321
  * Acquire a fresh in-memory gateway token from the running local gateway.
659
- * Gateway tokens are intentionally not durable; after a gateway restart,
660
- * llm-mesh-token.json may point at a token the new process does not know.
322
+ * Gateway tokens are intentionally not durable. The runtime metadata file
323
+ * contains only the base URL and PID; every caller reacquires its own bearer.
661
324
  */
662
325
  export async function acquireLlmMeshSessionEnv(dir, clientSessionId) {
663
326
  try {
664
327
  let baseUrl;
665
328
  let pid;
666
- let provider;
667
329
  try {
668
330
  const raw = readFileSync(llmMeshTokenPath(dir), "utf8");
669
331
  const tokenFile = JSON.parse(raw);
670
332
  baseUrl = tokenFile.baseUrl;
671
333
  pid = tokenFile.pid;
672
- provider = tokenFile.provider === "cloud-code"
673
- ? tokenFile.provider
674
- : undefined;
675
334
  }
676
335
  catch {
677
336
  baseUrl = configuredGatewayBaseUrl(dir) ?? undefined;
@@ -679,14 +338,6 @@ export async function acquireLlmMeshSessionEnv(dir, clientSessionId) {
679
338
  }
680
339
  if (!baseUrl || !pid)
681
340
  return null;
682
- if (!provider) {
683
- const config = readLlmMeshConfig(dir);
684
- provider = config
685
- ? localGatewaySessionProvider(config.meshAccounts ?? [])
686
- : undefined;
687
- }
688
- if (!provider)
689
- return null;
690
341
  try {
691
342
  process.kill(pid, 0);
692
343
  }
@@ -699,9 +350,8 @@ export async function acquireLlmMeshSessionEnv(dir, clientSessionId) {
699
350
  headers: { "content-type": "application/json" },
700
351
  body: JSON.stringify({
701
352
  sessionId: gatewayClientSessionId(clientSessionId),
353
+ clientSessionId,
702
354
  workspaceId,
703
- provider,
704
- requiredTransport: "cloud-code",
705
355
  }),
706
356
  });
707
357
  if (!sessionResp.ok)
@@ -709,16 +359,9 @@ export async function acquireLlmMeshSessionEnv(dir, clientSessionId) {
709
359
  const session = (await sessionResp.json());
710
360
  if (!session.gatewayToken)
711
361
  return null;
712
- writeSecret(llmMeshTokenPath(dir), {
713
- gatewayToken: session.gatewayToken,
714
- baseUrl,
715
- pid,
716
- provider,
717
- });
718
362
  return {
719
363
  ANTHROPIC_BASE_URL: baseUrl,
720
364
  ANTHROPIC_AUTH_TOKEN: session.gatewayToken,
721
- ANTHROPIC_API_KEY: session.gatewayToken,
722
365
  };
723
366
  }
724
367
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"llm-mesh.js","sourceRoot":"","sources":["../src/llm-mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-mesh.js","sourceRoot":"","sources":["../src/llm-mesh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,mBAAmB,GAEpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,4BAA4B,GAE7B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,0BAA0B,GAAG;IACjC,oBAAoB;IACpB,sBAAsB;IACtB,mBAAmB;CACX,CAAC;AAEX,mFAAmF;AACnF,MAAM,UAAU,kCAAkC,CAChD,GAAsB,EACtB,WAAkF;IAElF,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,0BAA0B,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAU,CAAC,CAClE,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,0BAA0B;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;;gBACpC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAkCD,SAAS,oBAAoB;IAC3B,OAAO;QACL,KAAK,CAAC,aAAa,CAAC,SAAiB;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACjD,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;gBAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBACnE,CAAC,CAAE,MAAkC;oBACrC,CAAC,CAAC,MAAM,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,mBAAmB,CAAC;QACzB,cAAc,EAAE,oBAAoB,EAAE;QACtC,IAAI,EAAE,KAAK;QACX,0BAA0B,EAAE,oBAAoB,EAAE;KACnD,CAAC,CAAC;AACL,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,OAAO,QAAQ,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3C,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,UAAU,CAAC;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgC,EAChC,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,SAAS;QAChF,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,kBAAkB;QACtD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,oBAAoB,EAAE;KACzD,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,QAAQ,KAAK,YAAY;QACzC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9D,CAAC,OAAO,CAAC,WAAW,IAAI,qBAAqB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8BAA8B,OAAO,CAAC,QAAQ,OAAO,OAAO,CAAC,eAAe,IAAI,CACjF,CAAC;YACF,OAAO,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;AAC9E,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,MAAM,OAAO,cAAc;IAClB,eAAe,CAAC,GAAY;QACjC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEM,UAAU,CAAC,MAAqB,EAAE,GAAY;QACnD,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,MAAqB,EACrB,OAAuC,EAAE;QAEzC,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,WAAW,CAAC,GAAY;QAC7B,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,GAAY;QACtC,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;CACF;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,IAAI,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,IAAI,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,IAAI,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAsB,EAAE,GAAY;IACjE,OAAO,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,YAAY,EAAE,EAAE,cAAc,CAAC,CAAC;AACxE,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAS,QAAQ,CAAI,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,KAAc;IAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAGpB,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAC9F,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAqB,EAAE,GAAY;IACpE,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,EACJ,QAAQ,EAAE,wBAAwB,EAClC,YAAY,EAAE,gBAAgB,EAC9B,GAAG,YAAY,EAChB,GAAG,MAAM,CAAC;IACX,IAAI,YAAY,CAAC,OAAO;QAAE,4BAA4B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7E,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAAyC,EACzC,GAAY;IAEZ,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO;QAClB,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAE;QAC/D,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,OAAO,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;IACT,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAAwB;IAC7D,MAAM,QAAQ,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC;IACzC,OAAO,QAAQ,IAAI,SAAS,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAGI,EAAE;IAEN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,6BAA6B,aAAa,IAAI;YAC5C,uDAAuD,CAC1D,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAsB;QACpC,GAAG,OAAO,CAAC,GAAG;QACd,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,wBAAwB,EAAE,oBAAoB,EAAE;QAChD,GAAG,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC/D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,kDAAkD;IAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE;QAC3C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;QAC/B,GAAG,EAAE,UAAU;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,MAAM,GAAG,GAAG,KAAK,CAAC,GAAI,CAAC;IAEvB,iBAAiB;IACjB,aAAa,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpD,mCAAmC;IACnC,MAAM,OAAO,GAAG,oBAAoB,IAAI,EAAE,CAAC;IAC3C,MAAM,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAErC,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,aAAa,EAAE;QACvD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC;YACvD,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;SAC3B,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAA8B,CAAC;IACxE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1E,6EAA6E;IAC7E,0CAA0C;IAC1C,WAAW,CAAC,gBAAgB,EAAE,EAAE;QAC9B,OAAO;QACP,GAAG;KACJ,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,SAAiB;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,EAAE;gBAAE,OAAO;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,SAAS,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD,SAAS,wBAAwB,CAAC,GAAY;IAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,oBAAoB,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAY,EACZ,eAAwB;IAKxB,IAAI,CAAC;QACH,IAAI,OAA2B,CAAC;QAChC,IAAI,GAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;YACtD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5B,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;YACrD,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,aAAa,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,sBAAsB,CAAC,eAAe,CAAC;gBAClD,eAAe;gBACf,WAAW;aACZ,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAA8B,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO;YACL,kBAAkB,EAAE,OAAO;YAC3B,oBAAoB,EAAE,OAAO,CAAC,YAAY;SAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,IAAI,CAAC;QACH,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChC,CAAC"}