@dsiloed/silo-link 1.13.7 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/dsiloed-client.d.ts +5 -1
- package/dist/api/dsiloed-client.d.ts.map +1 -1
- package/dist/api/dsiloed-client.js +11 -6
- package/dist/api/dsiloed-client.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +21 -5
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/file-log.d.ts +21 -0
- package/dist/cli/file-log.d.ts.map +1 -0
- package/dist/cli/file-log.js +52 -0
- package/dist/cli/file-log.js.map +1 -0
- package/dist/core/agent-launcher.d.ts +24 -0
- package/dist/core/agent-launcher.d.ts.map +1 -1
- package/dist/core/auto-updater.d.ts +9 -2
- package/dist/core/auto-updater.d.ts.map +1 -1
- package/dist/core/auto-updater.js +57 -36
- package/dist/core/auto-updater.js.map +1 -1
- package/dist/core/base-tmux-launcher.d.ts +73 -3
- package/dist/core/base-tmux-launcher.d.ts.map +1 -1
- package/dist/core/base-tmux-launcher.js +212 -14
- package/dist/core/base-tmux-launcher.js.map +1 -1
- package/dist/core/bridge.d.ts +38 -0
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +226 -7
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/claude-launcher.d.ts +8 -2
- package/dist/core/claude-launcher.d.ts.map +1 -1
- package/dist/core/claude-launcher.js +19 -4
- package/dist/core/claude-launcher.js.map +1 -1
- package/dist/core/codex-launcher.d.ts +4 -2
- package/dist/core/codex-launcher.d.ts.map +1 -1
- package/dist/core/codex-launcher.js +7 -4
- package/dist/core/codex-launcher.js.map +1 -1
- package/dist/core/gemini-launcher.d.ts +4 -2
- package/dist/core/gemini-launcher.d.ts.map +1 -1
- package/dist/core/gemini-launcher.js +7 -4
- package/dist/core/gemini-launcher.js.map +1 -1
- package/dist/core/launcher-factory.d.ts +2 -1
- package/dist/core/launcher-factory.d.ts.map +1 -1
- package/dist/core/launcher-factory.js +5 -5
- package/dist/core/launcher-factory.js.map +1 -1
- package/dist/core/usage-ledger.d.ts +55 -0
- package/dist/core/usage-ledger.d.ts.map +1 -0
- package/dist/core/usage-ledger.js +82 -0
- package/dist/core/usage-ledger.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +50 -0
- package/dist/mcp/server.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/baseline-verify.d.ts +0 -54
- package/dist/core/baseline-verify.d.ts.map +0 -1
- package/dist/core/baseline-verify.js +0 -164
- package/dist/core/baseline-verify.js.map +0 -1
package/dist/core/bridge.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
|
+
import { existsSync as fsExistsSync } from 'node:fs';
|
|
2
3
|
import { execSync, execFileSync } from 'node:child_process';
|
|
3
4
|
import { loadConfig, getMachineId } from '../config/config-manager.js';
|
|
4
|
-
import { AutoUpdater } from '../core/auto-updater.js';
|
|
5
|
+
import { AutoUpdater, scheduleDetachedRestart } from '../core/auto-updater.js';
|
|
5
6
|
import { PACKAGE_VERSION } from '../core/version.js';
|
|
6
7
|
import { JwtGenerator } from '../config/jwt-generator.js';
|
|
7
8
|
import { DSiloedClient } from '../api/dsiloed-client.js';
|
|
@@ -11,6 +12,7 @@ import { SessionManager } from '../core/session-manager.js';
|
|
|
11
12
|
import { MessageQueue } from '../core/message-queue.js';
|
|
12
13
|
import { SiloLinkMcpServer } from '../mcp/server.js';
|
|
13
14
|
import { WorkspaceManager } from '../core/workspace-manager.js';
|
|
15
|
+
import { UsageLedger } from '../core/usage-ledger.js';
|
|
14
16
|
import { createLauncher } from '../core/launcher-factory.js';
|
|
15
17
|
/**
|
|
16
18
|
* Decode an HS256 JWT payload without signature verification. Used to read
|
|
@@ -41,10 +43,18 @@ export class Bridge {
|
|
|
41
43
|
launchers = new Map();
|
|
42
44
|
defaultProvider;
|
|
43
45
|
workspaceManager;
|
|
46
|
+
usageLedger;
|
|
44
47
|
mcpServer;
|
|
45
48
|
autoUpdater = null;
|
|
46
49
|
shuttingDown = false;
|
|
47
50
|
startedAt = null;
|
|
51
|
+
// Verdict of the last POST /probe self-check (see startSelfProbe): proves the
|
|
52
|
+
// MCP body-parse path works, which GET /health cannot. Reported in /health
|
|
53
|
+
// and the fleet heartbeat.
|
|
54
|
+
probeStatus = 'unknown';
|
|
55
|
+
probeTimer = null;
|
|
56
|
+
// One-shot guard: a broken-install self-heal must only schedule one restart.
|
|
57
|
+
selfHealing = false;
|
|
48
58
|
// The env this daemon was started with (e.g. 'lead-tester'), or null for the
|
|
49
59
|
// default env. Reported to the fleet dashboard and used by the auto-updater's
|
|
50
60
|
// self-respawn command so the new process keeps the same env.
|
|
@@ -73,6 +83,15 @@ export class Bridge {
|
|
|
73
83
|
// Reached only when the tmux is already gone (shouldEvict returned true),
|
|
74
84
|
// so completing + broadcasting stop is safe — there's nothing to kill.
|
|
75
85
|
if (session.agentSessionId) {
|
|
86
|
+
// Report final usage FIRST — the tmux is gone but the transcript is on
|
|
87
|
+
// disk, and this path previously completed the row without ever
|
|
88
|
+
// capturing usage (one of the exec-110 cost=0 loss paths).
|
|
89
|
+
try {
|
|
90
|
+
this.getLauncher(session.agentProvider).captureUsageForConversation(session.conversationId);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
console.error(`[SiloLink] Usage capture failed for idle-cleaned conv ${session.conversationId}:`, err);
|
|
94
|
+
}
|
|
76
95
|
this.dsiloedClient.completeAgentSession(session.agentSessionId)
|
|
77
96
|
.catch(err => console.error(`[SiloLink] Failed to complete idle agent session ${session.agentSessionId}:`, err));
|
|
78
97
|
}
|
|
@@ -91,15 +110,16 @@ export class Bridge {
|
|
|
91
110
|
});
|
|
92
111
|
this.messageQueue = new MessageQueue();
|
|
93
112
|
this.workspaceManager = new WorkspaceManager();
|
|
113
|
+
this.usageLedger = new UsageLedger();
|
|
94
114
|
// Normalize the legacy 'openai' alias to 'codex'.
|
|
95
115
|
const configuredProvider = this.config.agent_provider || 'claude';
|
|
96
116
|
this.defaultProvider = configuredProvider === 'openai' ? 'codex' : configuredProvider;
|
|
97
117
|
// Create launchers for all supported providers
|
|
98
|
-
const claudeLauncher = createLauncher('claude', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager);
|
|
118
|
+
const claudeLauncher = createLauncher('claude', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager, this.usageLedger);
|
|
99
119
|
this.launchers.set('claude', claudeLauncher);
|
|
100
|
-
const geminiLauncher = createLauncher('gemini', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager);
|
|
120
|
+
const geminiLauncher = createLauncher('gemini', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager, this.usageLedger);
|
|
101
121
|
this.launchers.set('gemini', geminiLauncher);
|
|
102
|
-
const codexLauncher = createLauncher('codex', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager);
|
|
122
|
+
const codexLauncher = createLauncher('codex', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager, this.usageLedger);
|
|
103
123
|
this.launchers.set('codex', codexLauncher);
|
|
104
124
|
this.launchers.set('openai', codexLauncher); // alias
|
|
105
125
|
// Default launcher is used for auto-launch on inbound messages
|
|
@@ -118,8 +138,101 @@ export class Bridge {
|
|
|
118
138
|
workspaceManager: this.workspaceManager,
|
|
119
139
|
launcher: defaultLauncher,
|
|
120
140
|
startedAt: () => this.startedAt,
|
|
141
|
+
onModuleLoadFailure: (err) => this.selfHealBrokenInstall(err),
|
|
142
|
+
probeStatus: () => this.probeStatus,
|
|
121
143
|
});
|
|
122
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* The installed package's files were replaced/deleted under this running
|
|
147
|
+
* process (npm install/link while the daemon was up — see 2026-07-03 outage:
|
|
148
|
+
* every MCP POST 400'd for 14h while /health stayed green). The process can
|
|
149
|
+
* never serve MCP again; restart onto whatever is now on disk. The detached
|
|
150
|
+
* restarter inherits this process's env, so PATH/credentials survive.
|
|
151
|
+
*/
|
|
152
|
+
selfHealBrokenInstall(err) {
|
|
153
|
+
this.probeStatus = 'failing';
|
|
154
|
+
if (this.selfHealing || this.shuttingDown)
|
|
155
|
+
return;
|
|
156
|
+
this.selfHealing = true;
|
|
157
|
+
console.error('[SiloLink] ══════════════════════════════════════════════════');
|
|
158
|
+
console.error(`[SiloLink] Install swapped under running daemon (${err.message}).`);
|
|
159
|
+
console.error('[SiloLink] MCP request path is permanently broken in this process — restarting onto the on-disk install.');
|
|
160
|
+
console.error('[SiloLink] ══════════════════════════════════════════════════');
|
|
161
|
+
scheduleDetachedRestart(this.env ?? undefined, 'Self-heal');
|
|
162
|
+
// Same safety net as the auto-updater: never let a wedged drain leave the
|
|
163
|
+
// broken process running.
|
|
164
|
+
const hardExit = setTimeout(() => {
|
|
165
|
+
console.error('[SiloLink] Self-heal: graceful stop timed out after 60s — forcing exit.');
|
|
166
|
+
process.exit(0);
|
|
167
|
+
}, 60_000);
|
|
168
|
+
hardExit.unref?.();
|
|
169
|
+
void this.stop();
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* POST a tiny JSON body to our own /probe endpoint. First call doubles as a
|
|
173
|
+
* warm-up (forces body-parser/iconv-lite to load lazy modules while the
|
|
174
|
+
* install is intact); later calls are a canary that catches an install swap
|
|
175
|
+
* within minutes instead of on the next real session's registration attempt.
|
|
176
|
+
* A failing probe routes through the MCP error middleware, which invokes
|
|
177
|
+
* selfHealBrokenInstall.
|
|
178
|
+
*/
|
|
179
|
+
async selfProbe(label) {
|
|
180
|
+
try {
|
|
181
|
+
const res = await fetch(`http://127.0.0.1:${this.config.mcp_port}/probe`, {
|
|
182
|
+
method: 'POST',
|
|
183
|
+
headers: { 'Content-Type': 'application/json' },
|
|
184
|
+
body: JSON.stringify({ probe: label }),
|
|
185
|
+
signal: AbortSignal.timeout(10_000),
|
|
186
|
+
});
|
|
187
|
+
this.probeStatus = res.ok ? 'ok' : 'failing';
|
|
188
|
+
if (!res.ok) {
|
|
189
|
+
console.error(`[SiloLink] Self-probe (${label}) failed: HTTP ${res.status} — MCP POST path is broken.`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
// Network-level failure to reach our own port — don't self-heal on this
|
|
194
|
+
// alone (could be transient during startup); just report it.
|
|
195
|
+
this.probeStatus = 'failing';
|
|
196
|
+
console.error(`[SiloLink] Self-probe (${label}) could not reach own MCP port: ${err.message}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
startSelfProbe() {
|
|
200
|
+
void this.selfProbe('startup-warmup');
|
|
201
|
+
this.probeTimer = setInterval(() => { void this.selfProbe('periodic'); }, 300_000);
|
|
202
|
+
if (this.probeTimer.unref)
|
|
203
|
+
this.probeTimer.unref();
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Boot-time preflight of the things a session launch needs but that only
|
|
207
|
+
* fail (silently, inside a dead tmux pane) at launch time: the agent CLI
|
|
208
|
+
* binary being resolvable, and — for Claude — credentials being present.
|
|
209
|
+
* Warnings only; never blocks startup.
|
|
210
|
+
*/
|
|
211
|
+
startupLaunchSanityCheck() {
|
|
212
|
+
const launcher = this.getLauncher();
|
|
213
|
+
const preflight = launcher.preflightLaunchCheck?.();
|
|
214
|
+
if (preflight && !preflight.resolvedPath) {
|
|
215
|
+
console.error(` ⚠️ Agent CLI "${preflight.command}" was NOT found on this daemon's PATH or in known install locations.`);
|
|
216
|
+
console.error(' Session launches WILL fail. Start the daemon from a shell where the CLI resolves,');
|
|
217
|
+
console.error(' or set the command to an absolute path in the config (claude_command / gemini_command / codex_command).');
|
|
218
|
+
}
|
|
219
|
+
if (this.defaultProvider === 'claude') {
|
|
220
|
+
const hasEnvAuth = !!process.env.CLAUDE_CODE_OAUTH_TOKEN || !!process.env.ANTHROPIC_API_KEY;
|
|
221
|
+
const credFile = `${os.homedir()}/.claude/.credentials.json`;
|
|
222
|
+
const hasCredFile = (() => { try {
|
|
223
|
+
return fsExistsSync(credFile);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return false;
|
|
227
|
+
} })();
|
|
228
|
+
if (!hasEnvAuth && !hasCredFile) {
|
|
229
|
+
console.error(' ⚠️ No Claude Code credentials visible to this daemon (no CLAUDE_CODE_OAUTH_TOKEN /');
|
|
230
|
+
console.error(' ANTHROPIC_API_KEY in the environment, no ~/.claude/.credentials.json).');
|
|
231
|
+
console.error(' Spawned sessions may sit at "Not logged in · Please run /login" forever.');
|
|
232
|
+
console.error(' Start the daemon from a login shell that exports the credential, or log in once with `claude /login`.');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
123
236
|
/**
|
|
124
237
|
* Get a launcher by provider, falling back to the default.
|
|
125
238
|
*/
|
|
@@ -193,6 +306,16 @@ export class Bridge {
|
|
|
193
306
|
if (boundPort !== this.config.mcp_port) {
|
|
194
307
|
this.config.mcp_port = boundPort;
|
|
195
308
|
}
|
|
309
|
+
// Warm the JSON body-parse path now and re-verify it periodically — see
|
|
310
|
+
// selfProbe. Without this, a daemon whose install is swapped underneath it
|
|
311
|
+
// looks healthy on every existing signal while every MCP POST fails.
|
|
312
|
+
this.startSelfProbe();
|
|
313
|
+
// Fail loudly at boot if the agent CLI can't launch. Both halves of the
|
|
314
|
+
// 2026-07-04 relaunch failure were invisible until a session silently
|
|
315
|
+
// stalled: `claude` missing from a non-interactive PATH, and missing CC
|
|
316
|
+
// credentials. Neither stops the daemon (config may point elsewhere, other
|
|
317
|
+
// providers may work) — but the operator sees it at startup, not mid-run.
|
|
318
|
+
this.startupLaunchSanityCheck();
|
|
196
319
|
// Start JWT auto-refresh
|
|
197
320
|
this.jwt.startAutoRefresh((token) => {
|
|
198
321
|
console.log(' JWT refreshed, reconnecting ActionCable...');
|
|
@@ -276,6 +399,9 @@ export class Bridge {
|
|
|
276
399
|
agent_provider: this.defaultProvider,
|
|
277
400
|
llm_agent_id: this.daemonLlmAgentId,
|
|
278
401
|
idle: activeIds.length === 0,
|
|
402
|
+
// Whether the MCP POST path (what spawned sessions register through)
|
|
403
|
+
// actually works — 'failing' means daemon-up-but-broken (install swap).
|
|
404
|
+
mcp_post: this.probeStatus,
|
|
279
405
|
timestamp: Date.now(),
|
|
280
406
|
});
|
|
281
407
|
}
|
|
@@ -312,8 +438,12 @@ export class Bridge {
|
|
|
312
438
|
return;
|
|
313
439
|
this.shuttingDown = true;
|
|
314
440
|
console.log('\nSiloLink shutting down...');
|
|
315
|
-
// Stop heartbeat, auto-updater, and notify frontend
|
|
441
|
+
// Stop heartbeat, self-probe, auto-updater, and notify frontend
|
|
316
442
|
this.stopHeartbeat();
|
|
443
|
+
if (this.probeTimer) {
|
|
444
|
+
clearInterval(this.probeTimer);
|
|
445
|
+
this.probeTimer = null;
|
|
446
|
+
}
|
|
317
447
|
this.autoUpdater?.stop();
|
|
318
448
|
if (this.cableClient.getState() === 'connected') {
|
|
319
449
|
this.cableClient.sendCommand('SilolinkControlChannel', {
|
|
@@ -327,6 +457,11 @@ export class Bridge {
|
|
|
327
457
|
for (const launcher of this.launchers.values()) {
|
|
328
458
|
launcher.destroy();
|
|
329
459
|
}
|
|
460
|
+
// Wait (bounded) for the final usage reports destroy() just fired —
|
|
461
|
+
// process.exit() below would otherwise kill the POSTs mid-flight. (Their
|
|
462
|
+
// ledger entries would survive for the next startup's reconciliation
|
|
463
|
+
// sweep, but flushing now is cheaper than re-deriving later.)
|
|
464
|
+
await Promise.all(Array.from(new Set(this.launchers.values())).map(l => l.flushUsageReports()));
|
|
330
465
|
// Then unregister all sessions and complete their agent sessions
|
|
331
466
|
const sessions = this.sessionManager.getAll();
|
|
332
467
|
for (const session of sessions) {
|
|
@@ -366,9 +501,16 @@ export class Bridge {
|
|
|
366
501
|
// an older or misconfigured server can't tempt us into completing another
|
|
367
502
|
// agent's active work. Keep null-id sessions (legacy / agent-less) as-is so
|
|
368
503
|
// the daemon's startup cleanup of orphan sessions still works on those.
|
|
504
|
+
//
|
|
505
|
+
// Identity-less (personal) daemons get the MIRROR rule: only sessions with
|
|
506
|
+
// no llm_agent_id. Completing everything the server returned meant a
|
|
507
|
+
// personal-daemon restart mid-orchestration completed OTHER daemons' live
|
|
508
|
+
// sessions, and the server's agent_session_complete broadcast then killed
|
|
509
|
+
// their tmux (2026-07-04: personal restart killed orch-118's review
|
|
510
|
+
// session 19s after launch). Agent-owned rows are their own daemon's job.
|
|
369
511
|
const eligible = this.daemonLlmAgentId
|
|
370
512
|
? response.filter(s => s.llm_agent_id == null || s.llm_agent_id === this.daemonLlmAgentId)
|
|
371
|
-
: response;
|
|
513
|
+
: response.filter(s => s.llm_agent_id == null);
|
|
372
514
|
const skipped = response.length - eligible.length;
|
|
373
515
|
if (skipped > 0) {
|
|
374
516
|
console.log(` Skipping ${skipped} active session(s) belonging to other agents (own agent_id=${this.daemonLlmAgentId})`);
|
|
@@ -390,6 +532,16 @@ export class Bridge {
|
|
|
390
532
|
if (storedResumeId) {
|
|
391
533
|
this.getLauncher().setLastResumeId(storedResumeId);
|
|
392
534
|
}
|
|
535
|
+
// Recover usage BEFORE completing: the previous daemon may have died
|
|
536
|
+
// without its final report (the exec-110 cost=0 failure mode). The
|
|
537
|
+
// transcript is still on disk; the ledger entry (or Rails metadata's
|
|
538
|
+
// resume id) locates it, and the report is idempotent server-side.
|
|
539
|
+
await this.reconcileSessionUsage({
|
|
540
|
+
conversationId: session.llm_conversation_id ?? 0,
|
|
541
|
+
agentSessionId: session.id,
|
|
542
|
+
codingAgent: meta?.coding_agent,
|
|
543
|
+
cliSessionId: storedResumeId,
|
|
544
|
+
});
|
|
393
545
|
try {
|
|
394
546
|
await this.dsiloedClient.completeAgentSession(session.id);
|
|
395
547
|
console.log(` Completed stale session ${session.id} (${session.session_name || 'unnamed'})`);
|
|
@@ -403,6 +555,19 @@ export class Bridge {
|
|
|
403
555
|
catch (err) {
|
|
404
556
|
console.warn(' Could not clean up stale sessions (non-fatal):', err);
|
|
405
557
|
}
|
|
558
|
+
// Settle any REMAINING ledger entries — sessions whose Rails row was already
|
|
559
|
+
// completed elsewhere (orchestration engine, another path) while the daemon
|
|
560
|
+
// was down, so they never show up in the active-sessions sweep above but
|
|
561
|
+
// still have unreported usage. report_usage accepts ended sessions when
|
|
562
|
+
// addressed by agent_session_id.
|
|
563
|
+
for (const entry of this.usageLedger.getAll()) {
|
|
564
|
+
await this.reconcileSessionUsage({
|
|
565
|
+
conversationId: entry.conversationId,
|
|
566
|
+
agentSessionId: entry.agentSessionId,
|
|
567
|
+
codingAgent: entry.cliType,
|
|
568
|
+
cliSessionId: entry.cliSessionId,
|
|
569
|
+
});
|
|
570
|
+
}
|
|
406
571
|
// Subscribe to ALL SiloLink conversations so inbound messages trigger auto-launch
|
|
407
572
|
try {
|
|
408
573
|
const allConversations = await this.dsiloedClient.getSiloLinkConversations();
|
|
@@ -426,6 +591,39 @@ export class Bridge {
|
|
|
426
591
|
}
|
|
427
592
|
// resyncWorkspaceAgentSessions removed — agent sessions are only created
|
|
428
593
|
// when a real Claude session launches and registers, not as placeholders on startup.
|
|
594
|
+
/**
|
|
595
|
+
* Startup-sweep usage recovery for ONE session from a prior daemon run.
|
|
596
|
+
* Enriches the target with the persisted ledger entry (cwd, CLI session id),
|
|
597
|
+
* routes to the launcher whose transcript locator understands the session's
|
|
598
|
+
* CLI, and settles the ledger entry unless the report FAILED (a failed
|
|
599
|
+
* report keeps the entry so the next startup retries). Never throws — usage
|
|
600
|
+
* recovery must not block daemon startup.
|
|
601
|
+
*/
|
|
602
|
+
async reconcileSessionUsage(target) {
|
|
603
|
+
const ledgerEntry = target.conversationId ? this.usageLedger.get(target.conversationId) : undefined;
|
|
604
|
+
// Trust the ledger's agent-session binding only when it matches — a
|
|
605
|
+
// relaunched conversation may have a newer entry than the stale session
|
|
606
|
+
// being swept, and cross-reporting would misattribute the usage.
|
|
607
|
+
const entryMatches = ledgerEntry?.agentSessionId === target.agentSessionId;
|
|
608
|
+
const launcher = this.getLauncher(target.codingAgent ?? ledgerEntry?.cliType);
|
|
609
|
+
try {
|
|
610
|
+
const outcome = await launcher.reconcileUsage({
|
|
611
|
+
conversationId: target.conversationId,
|
|
612
|
+
agentSessionId: target.agentSessionId,
|
|
613
|
+
cwd: entryMatches ? ledgerEntry?.cwd : undefined,
|
|
614
|
+
cliSessionId: target.cliSessionId ?? (entryMatches ? ledgerEntry?.cliSessionId : undefined),
|
|
615
|
+
});
|
|
616
|
+
if (outcome === 'reported') {
|
|
617
|
+
console.log(` Recovered unreported usage for agent session ${target.agentSessionId} (conv ${target.conversationId})`);
|
|
618
|
+
}
|
|
619
|
+
if (outcome !== 'failed' && entryMatches) {
|
|
620
|
+
this.usageLedger.remove(target.conversationId);
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
catch (err) {
|
|
624
|
+
console.warn(` Usage reconciliation failed for agent session ${target.agentSessionId} (non-fatal):`, err);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
429
627
|
/**
|
|
430
628
|
* Handle commands received from the SiloLink control channel.
|
|
431
629
|
* These are broadcast by the PortableMind UI via the API.
|
|
@@ -544,7 +742,28 @@ export class Bridge {
|
|
|
544
742
|
this.sessionManager.setPendingProvider(convId, providerName);
|
|
545
743
|
}
|
|
546
744
|
const launched = await launcher.launchInternal('control-channel', convId);
|
|
547
|
-
console.log(`[SiloLink] Launch command result: ${launched ? 'started' : '
|
|
745
|
+
console.log(`[SiloLink] Launch command result: ${launched ? 'started' : 'FAILED (or already running)'}`);
|
|
746
|
+
// A failed launch used to be invisible to the platform: the daemon had
|
|
747
|
+
// already posted "Starting session...", so the conversation (and any
|
|
748
|
+
// orchestration stage waiting on it) just went silent until a watchdog
|
|
749
|
+
// timed out hours later. Tell the conversation AND the control channel.
|
|
750
|
+
if (!launched && convId) {
|
|
751
|
+
this.dsiloedClient.postMessage(convId, '**[SiloLink]** ⚠️ Session launch FAILED on this machine (agent CLI missing/unlaunchable, tmux failure, or a duplicate in-flight launch). Check the daemon log. The daemon is healthy; retry by sending another message.').catch(err => console.error('[SiloLink] Failed to post launch-failure message:', err));
|
|
752
|
+
const failPayload = {
|
|
753
|
+
type: 'session_launch_failed',
|
|
754
|
+
conversation_id: convId,
|
|
755
|
+
machine_id: this.machineId,
|
|
756
|
+
env: this.env,
|
|
757
|
+
timestamp: Date.now(),
|
|
758
|
+
};
|
|
759
|
+
if (cmd.orchestration_stage_execution_id) {
|
|
760
|
+
failPayload.orchestration_stage_execution_id = cmd.orchestration_stage_execution_id;
|
|
761
|
+
}
|
|
762
|
+
if (cmd.orchestration_execution_id) {
|
|
763
|
+
failPayload.orchestration_execution_id = cmd.orchestration_execution_id;
|
|
764
|
+
}
|
|
765
|
+
this.cableClient.sendCommand('SilolinkControlChannel', failPayload);
|
|
766
|
+
}
|
|
548
767
|
// Report tmux session name back for EVERY successful launch, not
|
|
549
768
|
// only orchestration-driven ones. The server-side handler stores
|
|
550
769
|
// it on the AgentSession metadata so peek / UI tooling has a
|
package/dist/core/bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/core/bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/core/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAIjF;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAA8B;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAO,MAAM;IACT,MAAM,CAAiB;IACvB,GAAG,CAAe;IAClB,aAAa,CAAgB;IAC7B,WAAW,CAAoB;IAC/B,mBAAmB,CAAsB;IACzC,cAAc,CAAiB;IAC/B,YAAY,CAAe;IAC3B,SAAS,GAAsC,IAAI,GAAG,EAAE,CAAC;IACzD,eAAe,CAAgB;IAC/B,gBAAgB,CAAmB;IACnC,WAAW,CAAc;IACzB,SAAS,CAAoB;IAC7B,WAAW,GAAuB,IAAI,CAAC;IACvC,YAAY,GAAG,KAAK,CAAC;IACrB,SAAS,GAAgB,IAAI,CAAC;IACtC,8EAA8E;IAC9E,2EAA2E;IAC3E,2BAA2B;IACnB,WAAW,GAAiC,SAAS,CAAC;IACtD,UAAU,GAA0C,IAAI,CAAC;IACjE,6EAA6E;IACrE,WAAW,GAAG,KAAK,CAAC;IAC5B,6EAA6E;IAC7E,8EAA8E;IAC9E,8DAA8D;IAC7C,GAAG,CAAgB;IACpC,yEAAyE;IACzE,gEAAgE;IAC/C,SAAS,CAAS;IACnC,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,gEAAgE;IACxD,gBAAgB,CAAgB;IAExC,YAAY,GAAY;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,OAAO,UAAU,EAAE,YAAY,KAAK,QAAQ;YAClE,CAAC,CAAC,UAAU,CAAC,YAAY;YACzB,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,CAAC,OAAO,EAAE,EAAE;YACV,oEAAoE;YACpE,0EAA0E;YAC1E,uEAAuE;YACvE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,uEAAuE;gBACvE,gEAAgE;gBAChE,2DAA2D;gBAC3D,IAAI,CAAC;oBACH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC9F,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,yDAAyD,OAAO,CAAC,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzG,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC;qBAC5D,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,CAAC,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,CAAC,SAAS,WAAW,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QAC5G,CAAC,EACD,CAAC,OAAO,EAAE,EAAE;YACV,sEAAsE;YACtE,mEAAmE;YACnE,8DAA8D;YAC9D,uEAAuE;YACvE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/C,IAAI,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC;oBAAE,OAAO,KAAK,CAAC;YACvE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CACF,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,kDAAkD;QAClD,MAAM,kBAAkB,GAAI,IAAI,CAAC,MAAM,CAAC,cAAgC,IAAI,QAAQ,CAAC;QACrF,IAAI,CAAC,eAAe,GAAG,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAEtF,+CAA+C;QAC/C,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ;QAErD,+DAA+D;QAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAChD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,cAAc,EACnB,eAAe,EACf,IAAI,CAAC,aAAa;QAClB,0EAA0E;QAC1E,mEAAmE;QACnE,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAClD,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;YAC/B,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;YAC7D,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CAAC,GAAU;QACtC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAClD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;QAC1H,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,uBAAuB,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5D,0EAA0E;QAC1E,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,SAAS,CAAC,KAAa;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,QAAQ,EAAE;gBACxE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACtC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,kBAAkB,GAAG,CAAC,MAAM,6BAA6B,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,6DAA6D;YAC7D,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,mCAAoC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,KAAK,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACK,wBAAwB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,CAAC;QACpD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,oBAAoB,SAAS,CAAC,OAAO,sEAAsE,CAAC,CAAC;YAC3H,OAAO,CAAC,KAAK,CAAC,yFAAyF,CAAC,CAAC;YACzG,OAAO,CAAC,KAAK,CAAC,+GAA+G,CAAC,CAAC;QACjI,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC5F,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,4BAA4B,CAAC;YAC7D,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBAAC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;gBACvG,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;gBAC9F,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;gBAChG,OAAO,CAAC,KAAK,CAAC,6GAA6G,CAAC,CAAC;YAC/H,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,QAAiC;QACnD,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAyB,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAyB,CAAE,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,0BAA0B,CAAC,cAAsB;QACvD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC;gBAAE,OAAO,QAAQ,CAAC;QAClE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,+DAA+D;QAC/D,IAAI,CAAC;YACH,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACjG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,8EAA8E;QAC9E,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,CAAC;YAAC,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;QAAC,CAAC;QACrD,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;QAE5E,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEnD,uBAAuB;QACvB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/B,mCAAmC;QACnC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAsB,EAAE,EAAE;YAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAC1C,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACtD,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAE3B,qEAAqE;QACrE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAwB,EAAE,EAAE;YAC1D,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,yEAAyE;QACzE,yEAAyE;QACzE,qEAAqE;QACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;QACnC,CAAC;QAED,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,wEAAwE;QACxE,sEAAsE;QACtE,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEvC,sFAAsF;QACtF,qFAAqF;QAErF,gDAAgD;QAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAC9B,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE/B,8DAA8D;QAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,SAAS;YAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC;YAC3E,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;IAEO,cAAc,GAA0C,IAAI,CAAC;IACrE,8EAA8E;IAC9E,6EAA6E;IAC7E,gFAAgF;IAChF,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,6BAA6B;IACrB,UAAU,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEjD,cAAc;QACpB,wCAAwC;QACxC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,wBAAwB;QACxB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW;YAAE,OAAO;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QACjD,6EAA6E;QAC7E,6EAA6E;QAC7E,yEAAyE;QACzE,6EAA6E;QAC7E,gFAAgF;QAChF,8EAA8E;QAC9E,+EAA+E;QAC/E,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE;YACrD,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,WAAW,CAAC,MAAM;YAC5B,wBAAwB,EAAE,SAAS;YACnC,wEAAwE;YACxE,yEAAyE;YACzE,sEAAsE;YACtE,gBAAgB,EAAE,eAAe;YACjC,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;YAC/C,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,YAAY,EAAE,IAAI,CAAC,gBAAgB;YACnC,IAAI,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC;YAC5B,qEAAqE;YACrE,wEAAwE;YACxE,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACK,mBAAmB;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;aACxG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAe,CAAC,CAAC;IACjC,CAAC;IAED,2EAA2E;IACnE,oBAAoB;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,qDAAqD,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACnG,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,oCAAoC;QACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,gEAAgE;QAChE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE;gBACrD,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAE3B,uEAAuE;QACvE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;QAED,oEAAoE;QACpE,yEAAyE;QACzE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAC7E,CAAC;QAEF,iEAAiE;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;gBACrE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QAED,kBAAkB;QAClB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE5B,yBAAyB;QACzB,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAE9B,2BAA2B;QAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAE9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,yBAAyB;QACrC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAC7E,2EAA2E;YAC3E,4EAA4E;YAC5E,0EAA0E;YAC1E,4EAA4E;YAC5E,wEAAwE;YACxE,EAAE;YACF,2EAA2E;YAC3E,qEAAqE;YACrE,0EAA0E;YAC1E,0EAA0E;YAC1E,oEAAoE;YACpE,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB;gBACpC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,gBAAgB,CAAC;gBAC1F,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,8DAA8D,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC3H,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,MAAM,4BAA4B,CAAC,CAAC;gBAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,6CAA6C;oBAC7C,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;wBAChC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBACnD,CAAC;oBACD,oEAAoE;oBACpE,uEAAuE;oBACvE,qEAAqE;oBACrE,yEAAyE;oBACzE,uEAAuE;oBACvE,MAAM,IAAI,GAAG,OAAO,CAAC,QAA+C,CAAC;oBACrE,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,aAAa,IAAI,IAAI,EAAE,gBAAgB,CAAuB,CAAC;oBAC7F,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBACrD,CAAC;oBACD,qEAAqE;oBACrE,mEAAmE;oBACnE,qEAAqE;oBACrE,mEAAmE;oBACnE,MAAM,IAAI,CAAC,qBAAqB,CAAC;wBAC/B,cAAc,EAAE,OAAO,CAAC,mBAAmB,IAAI,CAAC;wBAChD,cAAc,EAAE,OAAO,CAAC,EAAE;wBAC1B,WAAW,EAAE,IAAI,EAAE,YAAkC;wBACrD,YAAY,EAAE,cAAc;qBAC7B,CAAC,CAAC;oBACH,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,6BAA6B,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,YAAY,IAAI,SAAS,GAAG,CAAC,CAAC;oBAChG,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QAED,6EAA6E;QAC7E,4EAA4E;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,iCAAiC;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,qBAAqB,CAAC;gBAC/B,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,WAAW,EAAE,KAAK,CAAC,OAAO;gBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;aACjC,CAAC,CAAC;QACL,CAAC;QAED,kFAAkF;QAClF,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;YAC7E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,gBAAgB,CAAC,MAAM,8BAA8B,CAAC,CAAC;gBACvF,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;oBACpC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;YAC1E,iDAAiD;YACjD,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,eAAe,CAAC,IAAI,yCAAyC,CAAC,CAAC;gBAChG,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;oBACrC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,qFAAqF;IAErF;;;;;;;OAOG;IACK,KAAK,CAAC,qBAAqB,CAAC,MAKnC;QACC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpG,oEAAoE;QACpE,wEAAwE;QACxE,iEAAiE;QACjE,MAAM,YAAY,GAAG,WAAW,EAAE,cAAc,KAAK,MAAM,CAAC,cAAc,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;gBAC5C,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;gBAChD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;aAC5F,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,kDAAkD,MAAM,CAAC,cAAc,UAAU,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;YACzH,CAAC;YACD,IAAI,OAAO,KAAK,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,cAAc,eAAe,EAAE,GAAG,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB,CAAC,IAAa;QAC9C,MAAM,GAAG,GAAG,IA4BX,CAAC;QAEF,mEAAmE;QACnE,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO;QAEtC,OAAO,CAAC,GAAG,CAAC,wCAAwC,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,YAAY,IAAI,SAAS,GAAG,CAAC,CAAC;QAEzG,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,sEAAsE;gBACtE,yEAAyE;gBACzE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,IAAI,aAAa,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM,UAAU,CAAC;gBACjB,IAAI,CAAC;oBACL,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,cAAc,CAAC;oBACxC,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC;oBAEnC,iEAAiE;oBACjE,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;oBAED,qEAAqE;oBACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACpD,0EAA0E;oBAC1E,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;oBAC1G,MAAM,QAAQ,GAAG,YAAY,KAAK,QAAQ,CAAC;oBAC3C,MAAM,OAAO,GAAG,YAAY,KAAK,OAAO,CAAC;oBAEzC,2EAA2E;oBAC3E,8DAA8D;oBAC9D,sEAAsE;oBACtE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBACvF,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;oBAE7E,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrF,MAAM,cAAc,GAAG,MAAM;wBAC3B,CAAC,CAAC,wBAAwB,MAAM,GAAG,YAAY,IAAI;wBACnD,CAAC,CAAC,sBAAsB,IAAI,IAAI,YAAY,IAAI,CAAC;oBACnD,MAAM,gBAAgB,GAAG,yCAAyC,UAAU,yHAAyH,CAAC;oBACtM,MAAM,mBAAmB,GAAG,8GAA8G,UAAU,2IAA2I,CAAC;oBAChS,8DAA8D;oBAC9D,MAAM,mBAAmB,GAAG,GAAG,CAAC,0BAA0B,IAAI,GAAG,CAAC,gCAAgC;wBAChG,CAAC,CAAC,4HAA4H,UAAU,8EAA8E,GAAG,CAAC,gCAAgC,2MAA2M,GAAG,CAAC,0BAA0B,GAAG;wBACte,CAAC,CAAC,EAAE,CAAC;oBAEP,MAAM,qBAAqB,GAAG,yYAAyY,CAAC;oBAExa,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM;wBAC9B,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,mBAAmB,GAAG,qBAAqB,6BAA6B,UAAU,gDAAgD,cAAc,KAAK,gBAAgB,IAAI,mBAAmB,QAAQ,OAAO,6BAA6B;wBAC1P,CAAC,CAAC,QAAQ,UAAU,gDAAgD,cAAc,KAAK,gBAAgB,QAAQ,OAAO,6BAA6B,CAAC;oBAEtJ,uEAAuE;oBACvE,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,aAAa,CAAC;oBACpD,CAAC;yBAAM,IAAI,OAAO,EAAE,CAAC;wBACnB,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,aAAa,CAAC;oBACnD,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,aAAa,CAAC;oBACpD,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,uBAAuB,CAAC,CAAC;oBAErE,+CAA+C;oBAC/C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;wBACrB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC3C,CAAC;oBAED,8DAA8D;oBAC9D,6DAA6D;oBAC7D,EAAE;oBACF,kEAAkE;oBAClE,6BAA6B;oBAC7B,EAAE;oBACF,4DAA4D;oBAC5D,kEAAkE;oBAClE,+DAA+D;oBAC/D,+CAA+C;oBAC/C,EAAE;oBACF,0DAA0D;oBAC1D,qDAAqD;oBACrD,+DAA+D;oBAC/D,iEAAiE;oBACjE,6DAA6D;oBAC7D,6DAA6D;oBAC7D,0DAA0D;oBAC1D,EAAE;oBACF,iEAAiE;oBACjE,qDAAqD;oBACrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,OAAO,CAAC;oBACtD,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS;wBACpC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC;wBAC1C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC,CAAC;oBACrE,IAAI,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACnC,QAAQ,CAAC,kBAAkB,CAAC;4BAC1B,QAAQ,EAAE,gBAAgB;4BAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,UAAU,EAAE,GAAG,CAAC,WAAW;yBAC5B,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;wBACxC,wDAAwD;wBACxD,4DAA4D;wBAC5D,aAAa;wBACb,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;oBACxC,CAAC;oBAED,2DAA2D;oBAC3D,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;wBAC3B,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBACvD,CAAC;oBAED,oEAAoE;oBACpE,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;wBACjF,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,gBAAgB,2BAA2B,gBAAgB,6CAA6C,CAAC;6BACnJ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC,CAAC;oBACpF,CAAC;oBAED,4DAA4D;oBAC5D,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;oBAC/D,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;oBAC1E,OAAO,CAAC,GAAG,CAAC,qCAAqC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAC,CAAC;oBAEzG,uEAAuE;oBACvE,qEAAqE;oBACrE,uEAAuE;oBACvE,wEAAwE;oBACxE,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;wBACxB,IAAI,CAAC,aAAa,CAAC,WAAW,CAC5B,MAAM,EACN,yNAAyN,CAC1N,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC,CAAC;wBACxF,MAAM,WAAW,GAA4B;4BAC3C,IAAI,EAAE,uBAAuB;4BAC7B,eAAe,EAAE,MAAM;4BACvB,UAAU,EAAE,IAAI,CAAC,SAAS;4BAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB,CAAC;wBACF,IAAI,GAAG,CAAC,gCAAgC,EAAE,CAAC;4BACzC,WAAW,CAAC,gCAAgC,GAAG,GAAG,CAAC,gCAAgC,CAAC;wBACtF,CAAC;wBACD,IAAI,GAAG,CAAC,0BAA0B,EAAE,CAAC;4BACnC,WAAW,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,CAAC;wBAC1E,CAAC;wBACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;oBACtE,CAAC;oBAED,iEAAiE;oBACjE,iEAAiE;oBACjE,6DAA6D;oBAC7D,iEAAiE;oBACjE,2DAA2D;oBAC3D,oCAAoC;oBACpC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;wBACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;wBAChE,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,OAAO,GAA4B;gCACvC,IAAI,EAAE,sBAAsB;gCAC5B,eAAe,EAAE,MAAM;gCACvB,iBAAiB,EAAE,QAAQ;6BAC5B,CAAC;4BACF,IAAI,GAAG,CAAC,gCAAgC,EAAE,CAAC;gCACzC,OAAO,CAAC,gCAAgC,GAAG,GAAG,CAAC,gCAAgC,CAAC;4BAClF,CAAC;4BACD,IAAI,GAAG,CAAC,0BAA0B,EAAE,CAAC;gCACnC,OAAO,CAAC,0BAA0B,GAAG,GAAG,CAAC,0BAA0B,CAAC;4BACtE,CAAC;4BACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;wBAClE,CAAC;oBACH,CAAC;gBACD,CAAC;wBAAS,CAAC;oBACT,aAAa,EAAE,CAAC;gBAClB,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAChG,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,eAAe,EAAE,gBAAgB,GAAG,CAAC,YAAY,IAAI,SAAS,EAAE,CAAC,CAAC;oBACtG,uEAAuE;oBACvE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBACpF,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBACzD,kEAAkE;wBAClE,+DAA+D;wBAC/D,iEAAiE;wBACjE,yDAAyD;wBACzD,IAAI,cAAc,CAAC,cAAc,IAAI,GAAG,CAAC,YAAY,KAAK,wBAAwB,EAAE,CAAC;4BACnF,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,CAAC,cAAc,CAAC;iCACnE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,uDAAuD,cAAc,CAAC,cAAc,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC/H,CAAC;wBACD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;wBACzD,6EAA6E;wBAC7E,2EAA2E;wBAC3E,4EAA4E;wBAC5E,0EAA0E;wBAC1E,qEAAqE;wBACrE,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;oBACnE,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,sEAAsE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC3G,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;wBAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC;oBACH,wEAAwE;oBACxE,IAAI,YAAsB,CAAC;oBAC3B,IAAI,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;wBAChD,IAAI,MAA0B,CAAC;wBAC/B,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;4BACxB,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACN,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC,gBAAgB,CAC/C,CAAC;4BACF,MAAM,GAAG,OAAO,EAAE,cAAc,CAAC;wBACnC,CAAC;wBACD,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;4BACnF,MAAM,IAAI,GAAG,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;4BACpD,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,YAAY,GAAG,EAAE,CAAC;wBACpB,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,gCAAgC;wBAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,qDAAqD,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;wBACjH,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACtF,CAAC;oBAED,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACtC,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,IAAI,WAAW,SAAS,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;4BAC/G,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;wBACrD,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;wBAC1D,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,kDAAkD;oBAClD,4DAA4D;oBAC5D,0DAA0D;oBAC1D,qDAAqD;oBACrD,yDAAyD;oBACzD,oDAAoD;oBACpD,4DAA4D;oBAC5D,4DAA4D;oBAC5D,wDAAwD;oBACxD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE;wBACrD,IAAI,EAAE,aAAa;wBACnB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;wBACtC,eAAe,EAAE,GAAG,CAAC,eAAe;wBACpC,QAAQ,EAAE,OAAO;wBACjB,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;wBAC9C,cAAc,EAAE,GAAG,CAAC,cAAc;qBACnC,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,gCAAgC,YAAY,CAAC,MAAM,gBAAgB,SAAS,SAAS,CAAC,CAAC;gBACrG,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE;wBACrD,IAAI,EAAE,aAAa;wBACnB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;wBACtC,QAAQ,EAAE,EAAE;wBACZ,KAAK,EAAE,wBAAwB;wBAC/B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;wBAC9C,cAAc,EAAE,GAAG,CAAC,cAAc;qBACnC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC;gBACtC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBACnG,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,IAAI,cAAc,GAAG,CAAC,CAAC;oBACvB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;wBACxC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC;4BACpC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;4BACvC,cAAc,EAAE,CAAC;wBACnB,CAAC;oBACH,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,cAAc,aAAa,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,qFAAqF;gBACrF,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,CAAC;gBACxC,MAAM,YAAY,GAAG,+KAA+K,CAAC;gBAErM,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;oBACrE,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;4BAC3C,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,YAAY;4BACrB,UAAU,EAAE,GAAG,CAAC,YAAY,IAAI,UAAU;4BAC1C,UAAU,EAAE,IAAI,IAAI,EAAE;yBACvB,CAAC,CAAC;wBACH,wDAAwD;wBACxD,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACzF,aAAa,CAAC,KAAK,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,SAAS,kBAAkB,WAAW,GAAG,CAAC,CAAC;oBACrG,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,uDAAuD,WAAW,EAAE,CAAC,CAAC;oBACpF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,qBAAqB;oBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;wBAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;4BAC3C,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,YAAY;4BACrB,UAAU,EAAE,GAAG,CAAC,YAAY,IAAI,UAAU;4BAC1C,UAAU,EAAE,IAAI,IAAI,EAAE;yBACvB,CAAC,CAAC;oBACL,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;wBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,iEAAiE;gBACjE,gEAAgE;gBAChE,+DAA+D;gBAC/D,iEAAiE;gBACjE,gDAAgD;gBAChD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC;gBACvC,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;gBAEvC,MAAM,KAAK,GAAG,CAAC,KAA8B,EAAE,EAAE;oBAC/C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,EAAE;wBACrD,IAAI,EAAE,kBAAkB;wBACxB,eAAe,EAAE,UAAU;wBAC3B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;wBAC9C,cAAc,EAAE,GAAG,CAAC,cAAc;wBAClC,GAAG,KAAK;qBACT,CAAC,CAAC;gBACL,CAAC,CAAC;gBAEF,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;oBAC7D,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;oBAC5D,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;oBAC1E,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;oBAClD,MAAM;gBACR,CAAC;gBAED,gEAAgE;gBAChE,4DAA4D;gBAC5D,qEAAqE;gBACrE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;oBAC9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;oBAC3C,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;oBAC7B,KAAK,EAAE,KAAK,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;oBAC3E,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kDAAkD,EAAE,CAAC,CAAC;oBACrF,MAAM;gBACR,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvF,MAAM,IAAI,GAAG,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,MAAM,GAAG,sCAAsC,UAAU,EAAE,CAAC;oBAClE,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;oBAC/C,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBAED,MAAM,QAAQ,GAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACrE,IAAI,OAAO;oBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,WAAW;oBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAExC,IAAI,CAAC;oBACH,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,YAAY,IAAI,SAAS,GAAG,CAAC,CAAC;oBAC7J,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBACvF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5F,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;oBAChD,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,yDAAyD;gBACzD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,UAAkB;QAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,iBAAiB;YAAE,OAAO,UAAU,CAAC;QAE1C,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QAEjC,MAAM,QAAQ,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvE,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,MAAM,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS;QAOP,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI;YAChD,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1F,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC3B;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@ import type { SessionManager } from './session-manager.js';
|
|
|
3
3
|
import type { MessageQueue } from './message-queue.js';
|
|
4
4
|
import type { DSiloedClient } from '../api/dsiloed-client.js';
|
|
5
5
|
import type { WorkspaceManager } from './workspace-manager.js';
|
|
6
|
+
import type { UsageLedger } from './usage-ledger.js';
|
|
6
7
|
import { BaseTmuxLauncher } from './base-tmux-launcher.js';
|
|
7
8
|
import { type UsageEntry } from './transcript-usage.js';
|
|
8
9
|
/**
|
|
@@ -17,10 +18,14 @@ import { type UsageEntry } from './transcript-usage.js';
|
|
|
17
18
|
*/
|
|
18
19
|
export declare class ClaudeLauncher extends BaseTmuxLauncher {
|
|
19
20
|
private childProcess;
|
|
20
|
-
constructor(config: SiloLinkConfig, sessionManager: SessionManager, dsiloedClient?: DSiloedClient, messageQueue?: MessageQueue, workspaceManager?: WorkspaceManager);
|
|
21
|
+
constructor(config: SiloLinkConfig, sessionManager: SessionManager, dsiloedClient?: DSiloedClient, messageQueue?: MessageQueue, workspaceManager?: WorkspaceManager, usageLedger?: UsageLedger);
|
|
21
22
|
protected getCommand(): string;
|
|
22
23
|
protected getArgs(): string[];
|
|
23
24
|
protected getReadyIndicator(): string[];
|
|
25
|
+
/** Claude installer's shim location, tried when `claude` isn't on PATH. */
|
|
26
|
+
protected getExtraCommandDirs(): string[];
|
|
27
|
+
/** Claude Code's unauthenticated banner (sits at this prompt forever). */
|
|
28
|
+
protected getAuthFailurePattern(): RegExp | null;
|
|
24
29
|
/** Wait 5s before checking — Claude Code shows ❯ in its welcome screen before it's ready */
|
|
25
30
|
protected getMinReadyWaitMs(): number;
|
|
26
31
|
/** Wait 3s after ready for npx mcp-remote servers to finish connecting */
|
|
@@ -102,9 +107,10 @@ export declare class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
102
107
|
protected getSessionPrompt(): string | undefined;
|
|
103
108
|
protected getAgentEnv(): Record<string, string>;
|
|
104
109
|
protected getTmuxPrefix(): string;
|
|
110
|
+
protected getCliType(): string;
|
|
105
111
|
protected getLogTag(): string;
|
|
106
112
|
protected getCostMetadataKey(): string;
|
|
107
|
-
protected extractTranscriptUsage(cwd: string): {
|
|
113
|
+
protected extractTranscriptUsage(cwd: string, cliSessionId?: string | null): {
|
|
108
114
|
cli_type: string;
|
|
109
115
|
cost_basis: 'real' | 'imputed';
|
|
110
116
|
usage: UsageEntry[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-launcher.d.ts","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-launcher.d.ts","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ import { locateClaudeTranscript, parseClaudeTranscript, claudeCostBasis, isResum
|
|
|
16
16
|
*/
|
|
17
17
|
export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
18
18
|
childProcess = null;
|
|
19
|
-
constructor(config, sessionManager, dsiloedClient, messageQueue, workspaceManager) {
|
|
20
|
-
super(config, sessionManager, dsiloedClient, messageQueue, workspaceManager);
|
|
19
|
+
constructor(config, sessionManager, dsiloedClient, messageQueue, workspaceManager, usageLedger) {
|
|
20
|
+
super(config, sessionManager, dsiloedClient, messageQueue, workspaceManager, usageLedger);
|
|
21
21
|
}
|
|
22
22
|
// --- Abstract implementation ---
|
|
23
23
|
getCommand() {
|
|
@@ -38,6 +38,14 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
38
38
|
getReadyIndicator() {
|
|
39
39
|
return ['❯'];
|
|
40
40
|
}
|
|
41
|
+
/** Claude installer's shim location, tried when `claude` isn't on PATH. */
|
|
42
|
+
getExtraCommandDirs() {
|
|
43
|
+
return [join(homedir(), '.claude', 'local')];
|
|
44
|
+
}
|
|
45
|
+
/** Claude Code's unauthenticated banner (sits at this prompt forever). */
|
|
46
|
+
getAuthFailurePattern() {
|
|
47
|
+
return /Not logged in|Please run \/login|\/login to continue/i;
|
|
48
|
+
}
|
|
41
49
|
/** Wait 5s before checking — Claude Code shows ❯ in its welcome screen before it's ready */
|
|
42
50
|
getMinReadyWaitMs() { return 5000; }
|
|
43
51
|
/** Wait 3s after ready for npx mcp-remote servers to finish connecting */
|
|
@@ -447,6 +455,9 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
447
455
|
getTmuxPrefix() {
|
|
448
456
|
return 'silolink-claude';
|
|
449
457
|
}
|
|
458
|
+
getCliType() {
|
|
459
|
+
return 'claude';
|
|
460
|
+
}
|
|
450
461
|
getLogTag() {
|
|
451
462
|
return '[ClaudeLauncher]';
|
|
452
463
|
}
|
|
@@ -456,8 +467,8 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
456
467
|
// Token-level usage from the Claude Code transcript on disk, located by the
|
|
457
468
|
// resumed session id (filename is <sessionId>.jsonl) or the launch cwd.
|
|
458
469
|
// cost_basis reflects auth mode (API key = real $, subscription = imputed).
|
|
459
|
-
extractTranscriptUsage(cwd) {
|
|
460
|
-
const transcriptPath = locateClaudeTranscript(cwd, this.lastSessionId);
|
|
470
|
+
extractTranscriptUsage(cwd, cliSessionId) {
|
|
471
|
+
const transcriptPath = locateClaudeTranscript(cwd, cliSessionId ?? this.lastSessionId);
|
|
461
472
|
if (!transcriptPath)
|
|
462
473
|
return null;
|
|
463
474
|
const usage = parseClaudeTranscript(readFileSync(transcriptPath, 'utf-8'));
|
|
@@ -667,6 +678,10 @@ export class ClaudeLauncher extends BaseTmuxLauncher {
|
|
|
667
678
|
if (!this.lastSessionId && rid) {
|
|
668
679
|
this.setLastResumeId(rid);
|
|
669
680
|
}
|
|
681
|
+
// Report final usage before completing the row — the process is dead but
|
|
682
|
+
// its transcript is on disk (cwd/ids resolved via the usage ledger since
|
|
683
|
+
// the tmux map is empty on this path).
|
|
684
|
+
this.captureUsageFromTranscript(s.conversationId, true);
|
|
670
685
|
this.completeAgentSessionRow(s, 'process-dead');
|
|
671
686
|
this.sessionManager.unregister(s.sessionId);
|
|
672
687
|
}
|