@newrelic/preflight 1.59.0 → 1.59.2
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/hooks/collector-script.d.ts.map +1 -1
- package/dist/hooks/collector-script.js.map +1 -1
- package/dist/hooks/event-processor.d.ts +2 -0
- package/dist/hooks/event-processor.d.ts.map +1 -1
- package/dist/hooks/event-processor.js +8 -2
- package/dist/hooks/event-processor.js.map +1 -1
- package/dist/hooks/subagent-watcher.d.ts +81 -2
- package/dist/hooks/subagent-watcher.d.ts.map +1 -1
- package/dist/hooks/subagent-watcher.js +300 -21
- package/dist/hooks/subagent-watcher.js.map +1 -1
- package/dist/index.js +25 -32
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-id.d.ts +10 -0
- package/dist/lib/agent-id.d.ts.map +1 -1
- package/dist/lib/agent-id.js +21 -0
- package/dist/lib/agent-id.js.map +1 -1
- package/dist/lib/bounded-map.d.ts +37 -0
- package/dist/lib/bounded-map.d.ts.map +1 -0
- package/dist/lib/bounded-map.js +77 -0
- package/dist/lib/bounded-map.js.map +1 -0
- package/dist/metrics/agent-partition.d.ts +25 -4
- package/dist/metrics/agent-partition.d.ts.map +1 -1
- package/dist/metrics/agent-partition.js +24 -3
- package/dist/metrics/agent-partition.js.map +1 -1
- package/dist/metrics/cost-tracker.d.ts +8 -9
- package/dist/metrics/cost-tracker.d.ts.map +1 -1
- package/dist/metrics/cost-tracker.js.map +1 -1
- package/dist/metrics/subagent-attribution.d.ts +110 -0
- package/dist/metrics/subagent-attribution.d.ts.map +1 -0
- package/dist/metrics/subagent-attribution.js +143 -0
- package/dist/metrics/subagent-attribution.js.map +1 -0
- package/dist/storage/types.d.ts +30 -10
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js.map +1 -1
- package/dist/transport/nr-ingest.d.ts +2 -4
- package/dist/transport/nr-ingest.d.ts.map +1 -1
- package/dist/transport/nr-ingest.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,8 +15,10 @@
|
|
|
15
15
|
*
|
|
16
16
|
* Cursor durability: byte cursors persisted to
|
|
17
17
|
* `~/.newrelic-preflight/.subagent-pos-<parentSessionId>-<agentId>` survive restart.
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* A read takes effect only once its advanced cursor is written: a read whose
|
|
19
|
+
* cursor write fails emits nothing and is redone from the old cursor, the same
|
|
20
|
+
* as a failed read. A crash between the cursor write and the buffer appends
|
|
21
|
+
* loses those turns instead.
|
|
20
22
|
*
|
|
21
23
|
* Startup-discovery budget: only files with mtime in the last 24h are eligible
|
|
22
24
|
* for cold scan (configurable via `NR_AI_WATCHER_DISCOVERY_HOURS`); older
|
|
@@ -32,7 +34,7 @@ import { homedir } from 'node:os';
|
|
|
32
34
|
import { dirname, join, resolve } from 'node:path';
|
|
33
35
|
import { StringDecoder } from 'node:string_decoder';
|
|
34
36
|
import { createLogger } from '../shared/index.js';
|
|
35
|
-
import { AGENT_ID_RE } from '../lib/agent-id.js';
|
|
37
|
+
import { AGENT_ID_RE, normalizeAgentType } from '../lib/agent-id.js';
|
|
36
38
|
import { parseAssistantTurnLine } from '../lib/subagent-transcript-parser.js';
|
|
37
39
|
const logger = createLogger('subagent-watcher');
|
|
38
40
|
// ---------------------------------------------------------------------------
|
|
@@ -66,6 +68,19 @@ const MAX_BYTES_PER_POLL = 64 * 1024;
|
|
|
66
68
|
* to MAX_PARTIAL_LINE_BYTES + one chunk and guarantees forward progress.
|
|
67
69
|
*/
|
|
68
70
|
const MAX_PARTIAL_LINE_BYTES = 1024 * 1024; // 1 MiB
|
|
71
|
+
/**
|
|
72
|
+
* Read ceiling for a subagent's `agent-<id>.meta.json` sidecar. Real sidecars
|
|
73
|
+
* are a few hundred bytes; the cap keeps an oversized one from costing a full
|
|
74
|
+
* read on every poll, since a failed read is not cached.
|
|
75
|
+
*/
|
|
76
|
+
export const MAX_META_SIDECAR_BYTES = 16 * 1024;
|
|
77
|
+
/**
|
|
78
|
+
* Most transcripts one `readLiveTails()` call stats: those spawned since the
|
|
79
|
+
* last poll first, then tracked ones, most recently modified first.
|
|
80
|
+
*/
|
|
81
|
+
export const MAX_ON_DEMAND_FILES = 32;
|
|
82
|
+
/** Most transcript bytes one `readLiveTails()` call reads in total; the poll reads the rest. */
|
|
83
|
+
export const MAX_ON_DEMAND_BYTES = 1024 * 1024;
|
|
69
84
|
const HEALTH_INTERVAL_MS = 60_000;
|
|
70
85
|
const SCHEMA_FINGERPRINT_REEMIT_MS = 60 * 60 * 1000; // 1h
|
|
71
86
|
const COST_SELF_CHECK_MS = 60 * 60 * 1000; // 1h
|
|
@@ -81,9 +96,11 @@ export class SubagentWatcher {
|
|
|
81
96
|
parentSessionFilter;
|
|
82
97
|
costSelfCheck;
|
|
83
98
|
localStore;
|
|
99
|
+
onTurnRead;
|
|
84
100
|
intervalId = null;
|
|
85
101
|
healthIntervalId = null;
|
|
86
102
|
running = false;
|
|
103
|
+
stopped = false;
|
|
87
104
|
// Per-file in-memory partial-line retention. The persisted byte cursor
|
|
88
105
|
// points to the start of the next un-read byte; this map carries any trailing
|
|
89
106
|
// content past the last newline that didn't form a complete line yet. It is
|
|
@@ -96,13 +113,37 @@ export class SubagentWatcher {
|
|
|
96
113
|
// internally and transparently prepends it on the next write() call on the
|
|
97
114
|
// same instance, so a split character reconstructs correctly across polls
|
|
98
115
|
// without us tracking raw tail bytes ourselves. This state is in-memory
|
|
99
|
-
// only, not persisted to the byte cursor: a process restart
|
|
100
|
-
//
|
|
101
|
-
// corrupts that one character, same as before
|
|
102
|
-
// the bug being fixed (a restart is rare; every
|
|
116
|
+
// only, not persisted to the byte cursor: a process restart (or a failed
|
|
117
|
+
// cursor write, which resets it) landing exactly between the splitting poll
|
|
118
|
+
// and the completing poll still corrupts that one character, same as before
|
|
119
|
+
// this fix — narrower than the bug being fixed (a restart is rare; every
|
|
120
|
+
// poll boundary is not).
|
|
103
121
|
// Evicted alongside
|
|
104
122
|
// partialByPath in evictStalePartials() — see that method's comment.
|
|
105
123
|
decoderByPath = new Map();
|
|
124
|
+
// Transcript path -> agentType read from its `.meta.json` sidecar. Only
|
|
125
|
+
// successful reads are cached (a sidecar that is missing now may appear
|
|
126
|
+
// later); bounded by the live file set via evictStalePartials().
|
|
127
|
+
agentTypeByPath = new Map();
|
|
128
|
+
// Transcript path -> bytes consumed so far, mirroring the persisted cursor so
|
|
129
|
+
// readLiveTails() can compare a stat against it without reading the cursor
|
|
130
|
+
// file. Absent until a read has committed, and dropped when a read fails, so
|
|
131
|
+
// an unreadable file is left to the poll instead of being retried on every
|
|
132
|
+
// hook record. Bounded by the live file set via evictStalePartials().
|
|
133
|
+
consumedBytesByPath = new Map();
|
|
134
|
+
// The transcripts readLiveTails() stats: any it found since the last poll,
|
|
135
|
+
// then every one that poll discovered, most recently modified first. No
|
|
136
|
+
// mtime window applies, since a subagent's transcript stays unmodified for
|
|
137
|
+
// the whole of a long tool call; MAX_ON_DEMAND_FILES and the size check bound
|
|
138
|
+
// the cost.
|
|
139
|
+
trackedFiles = [];
|
|
140
|
+
// For finding transcripts spawned since the last poll: each session's ad-hoc
|
|
141
|
+
// `subagents/` directory the last poll listed (the newest-mtime one when a
|
|
142
|
+
// repo rename left two), and every transcript path in those directories the
|
|
143
|
+
// poll or readLiveTails() has seen, tracked or skipped as stale, so a stale
|
|
144
|
+
// one costs no stat. Rebuilt by every poll.
|
|
145
|
+
subagentsDirBySession = new Map();
|
|
146
|
+
listedTranscripts = new Set();
|
|
106
147
|
// Health counters
|
|
107
148
|
filesWatched = 0;
|
|
108
149
|
linesRead = 0;
|
|
@@ -137,6 +178,7 @@ export class SubagentWatcher {
|
|
|
137
178
|
(Number.isFinite(envHours) && envHours > 0 ? envHours : DEFAULT_DISCOVERY_HOURS);
|
|
138
179
|
this.costSelfCheck = options.costSelfCheck;
|
|
139
180
|
this.localStore = options.localStore;
|
|
181
|
+
this.onTurnRead = options.onTurnRead;
|
|
140
182
|
this.loadFingerprints();
|
|
141
183
|
}
|
|
142
184
|
start() {
|
|
@@ -145,6 +187,7 @@ export class SubagentWatcher {
|
|
|
145
187
|
return;
|
|
146
188
|
}
|
|
147
189
|
this.running = true;
|
|
190
|
+
this.stopped = false;
|
|
148
191
|
if (!existsSync(this.storagePath)) {
|
|
149
192
|
mkdirSync(this.storagePath, { recursive: true, mode: 0o700 });
|
|
150
193
|
}
|
|
@@ -159,6 +202,10 @@ export class SubagentWatcher {
|
|
|
159
202
|
});
|
|
160
203
|
}
|
|
161
204
|
stop() {
|
|
205
|
+
this.stopped = true;
|
|
206
|
+
this.trackedFiles = [];
|
|
207
|
+
this.subagentsDirBySession.clear();
|
|
208
|
+
this.listedTranscripts.clear();
|
|
162
209
|
if (!this.running)
|
|
163
210
|
return;
|
|
164
211
|
this.running = false;
|
|
@@ -181,6 +228,7 @@ export class SubagentWatcher {
|
|
|
181
228
|
try {
|
|
182
229
|
const files = this.discoverFiles();
|
|
183
230
|
this.filesWatched = files.length;
|
|
231
|
+
this.trackedFiles = [...files].sort((a, b) => b.stat.mtimeMs - a.stat.mtimeMs);
|
|
184
232
|
for (const file of files) {
|
|
185
233
|
this.processFile(file);
|
|
186
234
|
}
|
|
@@ -191,6 +239,131 @@ export class SubagentWatcher {
|
|
|
191
239
|
this.recordError(err);
|
|
192
240
|
}
|
|
193
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Reads what subagent transcripts gained since they were last read, through
|
|
244
|
+
* the same path as `poll()` (cursor, parent buffer, `onTurnRead`), and
|
|
245
|
+
* returns how many turns it read. Hook intake calls this for every record the
|
|
246
|
+
* `toolUseId` join cannot attribute yet, parent calls included, so the
|
|
247
|
+
* subagent's tool_use line for that call is read before the record is audited
|
|
248
|
+
* instead of on the next poll.
|
|
249
|
+
*
|
|
250
|
+
* A session whose subagents directory the last poll did not list, and that
|
|
251
|
+
* has no tracked transcript, costs no syscall. Otherwise this lists the
|
|
252
|
+
* session's `subagents/` directory once for transcripts spawned since the
|
|
253
|
+
* poll, then stats the tracked transcripts of `sessionId` (of every session
|
|
254
|
+
* when undefined), at most MAX_ON_DEMAND_FILES stats in all, and reads only
|
|
255
|
+
* from one that has grown past what was already consumed, up to
|
|
256
|
+
* MAX_ON_DEMAND_BYTES in total. Not found before the next poll: a session's
|
|
257
|
+
* first subagent, whose transcript creates that directory, and a workflow's
|
|
258
|
+
* subagents, whose transcripts sit in per-run directories below it. Never
|
|
259
|
+
* throws.
|
|
260
|
+
*/
|
|
261
|
+
readLiveTails(sessionId) {
|
|
262
|
+
if (this.stopped)
|
|
263
|
+
return 0;
|
|
264
|
+
let turns = 0;
|
|
265
|
+
let byteBudget = MAX_ON_DEMAND_BYTES;
|
|
266
|
+
let statsLeft = MAX_ON_DEMAND_FILES;
|
|
267
|
+
try {
|
|
268
|
+
const spawned = this.findSpawnedSincePoll(sessionId ?? this.parentSessionFilter ?? undefined, statsLeft);
|
|
269
|
+
statsLeft -= spawned.stats;
|
|
270
|
+
if (spawned.files.length > 0)
|
|
271
|
+
this.trackedFiles = [...spawned.files, ...this.trackedFiles];
|
|
272
|
+
for (const file of spawned.files) {
|
|
273
|
+
if (byteBudget <= 0)
|
|
274
|
+
break;
|
|
275
|
+
const read = this.readToSize(file, byteBudget);
|
|
276
|
+
turns += read.turns;
|
|
277
|
+
byteBudget -= read.bytes;
|
|
278
|
+
}
|
|
279
|
+
for (let i = spawned.files.length; i < this.trackedFiles.length; i++) {
|
|
280
|
+
if (statsLeft <= 0 || byteBudget <= 0)
|
|
281
|
+
break;
|
|
282
|
+
const tracked = this.trackedFiles[i];
|
|
283
|
+
if (tracked === undefined)
|
|
284
|
+
break;
|
|
285
|
+
if (sessionId !== undefined && tracked.parentSessionId !== sessionId)
|
|
286
|
+
continue;
|
|
287
|
+
const consumed = this.consumedBytesByPath.get(tracked.path);
|
|
288
|
+
if (consumed === undefined)
|
|
289
|
+
continue;
|
|
290
|
+
statsLeft -= 1;
|
|
291
|
+
let stat;
|
|
292
|
+
try {
|
|
293
|
+
stat = statSync(tracked.path);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
continue; // removed since the poll, which will drop it
|
|
297
|
+
}
|
|
298
|
+
if (stat.size <= consumed)
|
|
299
|
+
continue;
|
|
300
|
+
const file = { ...tracked, stat };
|
|
301
|
+
this.trackedFiles[i] = file;
|
|
302
|
+
const read = this.readToSize(file, byteBudget);
|
|
303
|
+
turns += read.turns;
|
|
304
|
+
byteBudget -= read.bytes;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch (err) {
|
|
308
|
+
this.recordError(err);
|
|
309
|
+
}
|
|
310
|
+
return turns;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Transcripts in `sessionId`'s known `subagents/` directory that the last
|
|
314
|
+
* poll did not list: subagents spawned since. One readdir, and at most
|
|
315
|
+
* `maxStats` stats of names not seen before.
|
|
316
|
+
*/
|
|
317
|
+
findSpawnedSincePoll(sessionId, maxStats) {
|
|
318
|
+
const files = [];
|
|
319
|
+
const subDir = sessionId === undefined ? undefined : this.subagentsDirBySession.get(sessionId);
|
|
320
|
+
if (sessionId === undefined || subDir === undefined)
|
|
321
|
+
return { files, stats: 0 };
|
|
322
|
+
let names;
|
|
323
|
+
try {
|
|
324
|
+
names = readdirSync(subDir);
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
return { files, stats: 0 };
|
|
328
|
+
}
|
|
329
|
+
let stats = 0;
|
|
330
|
+
for (const name of names) {
|
|
331
|
+
if (stats >= maxStats)
|
|
332
|
+
break;
|
|
333
|
+
if (!name.startsWith('agent-') || !name.endsWith('.jsonl'))
|
|
334
|
+
continue;
|
|
335
|
+
const agentId = name.slice('agent-'.length, -'.jsonl'.length);
|
|
336
|
+
if (!AGENT_ID_RE.test(agentId))
|
|
337
|
+
continue; // the poll announces these
|
|
338
|
+
const path = join(subDir, name);
|
|
339
|
+
if (this.listedTranscripts.has(path))
|
|
340
|
+
continue;
|
|
341
|
+
this.listedTranscripts.add(path);
|
|
342
|
+
stats += 1;
|
|
343
|
+
try {
|
|
344
|
+
const stat = statSync(path);
|
|
345
|
+
files.push({ path, parentSessionId: sessionId, agentId, workflowRunId: null, stat });
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
/* removed again; the poll decides */
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
return { files, stats };
|
|
352
|
+
}
|
|
353
|
+
/** Reads `file` from its cursor until it reaches `file.stat.size` or reads `byteBudget` bytes. */
|
|
354
|
+
readToSize(file, byteBudget) {
|
|
355
|
+
let bytes = 0;
|
|
356
|
+
let turns = 0;
|
|
357
|
+
while (bytes < byteBudget) {
|
|
358
|
+
const read = this.processFile(file, Math.min(byteBudget - bytes, MAX_BYTES_PER_POLL));
|
|
359
|
+
bytes += read.bytes;
|
|
360
|
+
turns += read.turns;
|
|
361
|
+
const consumed = this.consumedBytesByPath.get(file.path);
|
|
362
|
+
if (read.bytes === 0 || consumed === undefined || consumed >= file.stat.size)
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
return { bytes, turns };
|
|
366
|
+
}
|
|
194
367
|
/** Reset counters; for tests. */
|
|
195
368
|
resetHealth() {
|
|
196
369
|
this.filesWatched = 0;
|
|
@@ -216,6 +389,9 @@ export class SubagentWatcher {
|
|
|
216
389
|
// -------------------------------------------------------------------------
|
|
217
390
|
discoverFiles() {
|
|
218
391
|
const out = [];
|
|
392
|
+
this.subagentsDirBySession.clear();
|
|
393
|
+
this.listedTranscripts.clear();
|
|
394
|
+
const subagentsDirMtime = new Map();
|
|
219
395
|
if (!existsSync(this.projectsDir))
|
|
220
396
|
return out;
|
|
221
397
|
const cutoffMs = Date.now() - this.discoveryHours * 60 * 60 * 1000;
|
|
@@ -300,6 +476,10 @@ export class SubagentWatcher {
|
|
|
300
476
|
if (wfDirStat === null || wfDirStat.mtimeMs < cutoffMs)
|
|
301
477
|
continue;
|
|
302
478
|
}
|
|
479
|
+
if (subStat.mtimeMs > (subagentsDirMtime.get(sessionId) ?? -Infinity)) {
|
|
480
|
+
subagentsDirMtime.set(sessionId, subStat.mtimeMs);
|
|
481
|
+
this.subagentsDirBySession.set(sessionId, subDir);
|
|
482
|
+
}
|
|
303
483
|
// Ad-hoc: subagents/agent-*.jsonl
|
|
304
484
|
try {
|
|
305
485
|
for (const name of readdirSync(subDir)) {
|
|
@@ -311,6 +491,7 @@ export class SubagentWatcher {
|
|
|
311
491
|
continue;
|
|
312
492
|
}
|
|
313
493
|
const path = join(subDir, name);
|
|
494
|
+
this.listedTranscripts.add(path);
|
|
314
495
|
const stat = this.filterByMtime(path, cutoffMs);
|
|
315
496
|
if (stat) {
|
|
316
497
|
out.push({ path, parentSessionId: sessionId, agentId, workflowRunId: null, stat });
|
|
@@ -474,7 +655,12 @@ export class SubagentWatcher {
|
|
|
474
655
|
// -------------------------------------------------------------------------
|
|
475
656
|
// Per-file processing
|
|
476
657
|
// -------------------------------------------------------------------------
|
|
477
|
-
|
|
658
|
+
/**
|
|
659
|
+
* Reads up to `maxBytes` past the file's cursor, emits its complete turns and
|
|
660
|
+
* advances the cursor. Returns the bytes read and turns emitted.
|
|
661
|
+
*/
|
|
662
|
+
processFile(file, maxBytes = MAX_BYTES_PER_POLL) {
|
|
663
|
+
const nothingRead = { bytes: 0, turns: 0 };
|
|
478
664
|
const st = file.stat;
|
|
479
665
|
const cursorPath = this.cursorPath(file.parentSessionId, file.agentId);
|
|
480
666
|
const persisted = this.readCursor(cursorPath);
|
|
@@ -489,10 +675,12 @@ export class SubagentWatcher {
|
|
|
489
675
|
: persisted;
|
|
490
676
|
if (switchedFile)
|
|
491
677
|
this.partialByPath.delete(file.path);
|
|
492
|
-
if (startCursor.bytePos >= st.size)
|
|
493
|
-
|
|
678
|
+
if (startCursor.bytePos >= st.size) {
|
|
679
|
+
this.consumedBytesByPath.set(file.path, startCursor.bytePos);
|
|
680
|
+
return nothingRead;
|
|
681
|
+
}
|
|
494
682
|
const remaining = st.size - startCursor.bytePos;
|
|
495
|
-
const toRead = Math.min(remaining,
|
|
683
|
+
const toRead = Math.min(remaining, maxBytes);
|
|
496
684
|
let buf;
|
|
497
685
|
let actuallyRead = 0;
|
|
498
686
|
let fd = null;
|
|
@@ -503,6 +691,7 @@ export class SubagentWatcher {
|
|
|
503
691
|
}
|
|
504
692
|
catch (err) {
|
|
505
693
|
this.recordError(err);
|
|
694
|
+
this.consumedBytesByPath.delete(file.path);
|
|
506
695
|
if (fd !== null) {
|
|
507
696
|
try {
|
|
508
697
|
closeSync(fd);
|
|
@@ -511,7 +700,7 @@ export class SubagentWatcher {
|
|
|
511
700
|
/* ignore */
|
|
512
701
|
}
|
|
513
702
|
}
|
|
514
|
-
return;
|
|
703
|
+
return nothingRead;
|
|
515
704
|
}
|
|
516
705
|
finally {
|
|
517
706
|
if (fd !== null) {
|
|
@@ -523,8 +712,10 @@ export class SubagentWatcher {
|
|
|
523
712
|
}
|
|
524
713
|
}
|
|
525
714
|
}
|
|
526
|
-
if (actuallyRead === 0)
|
|
527
|
-
|
|
715
|
+
if (actuallyRead === 0) {
|
|
716
|
+
this.consumedBytesByPath.set(file.path, startCursor.bytePos);
|
|
717
|
+
return nothingRead;
|
|
718
|
+
}
|
|
528
719
|
let decoder = this.decoderByPath.get(file.path);
|
|
529
720
|
if (decoder === undefined) {
|
|
530
721
|
decoder = new StringDecoder('utf-8');
|
|
@@ -564,7 +755,9 @@ export class SubagentWatcher {
|
|
|
564
755
|
newPartial = '';
|
|
565
756
|
this.parseErrors += 1;
|
|
566
757
|
}
|
|
567
|
-
//
|
|
758
|
+
// Token events for each parsed assistant turn, emitted once the cursor is written.
|
|
759
|
+
const agentType = lines.length > 0 ? this.readAgentType(file.path) : undefined;
|
|
760
|
+
const events = [];
|
|
568
761
|
for (const line of lines) {
|
|
569
762
|
if (!line)
|
|
570
763
|
continue;
|
|
@@ -592,14 +785,29 @@ export class SubagentWatcher {
|
|
|
592
785
|
stopReason: parsed.stopReason,
|
|
593
786
|
schemaFingerprint: parsed.usageKeysFingerprint,
|
|
594
787
|
toolUseIds: parsed.toolUseIds,
|
|
788
|
+
...(agentType !== undefined ? { agentType } : {}),
|
|
595
789
|
};
|
|
596
|
-
|
|
790
|
+
events.push(event);
|
|
597
791
|
}
|
|
598
792
|
// Persist the advanced cursor plus the (bounded) trailing partial so a
|
|
599
|
-
// restart resumes exactly where we left off.
|
|
600
|
-
//
|
|
601
|
-
//
|
|
602
|
-
|
|
793
|
+
// restart resumes exactly where we left off. If that fails, the next read
|
|
794
|
+
// starts from this read's start again, so nothing this read found takes
|
|
795
|
+
// effect: emitting now would repeat these turns, and keeping its partial
|
|
796
|
+
// would prepend it to the same bytes. The decoder, which holds this read's
|
|
797
|
+
// trailing bytes, is reset as on a restart, and the mirror is dropped as on
|
|
798
|
+
// a failed read, leaving the file to the next poll.
|
|
799
|
+
if (!this.writeCursor(cursorPath, nextBytePos, newPartial, file.path)) {
|
|
800
|
+
this.decoderByPath.delete(file.path);
|
|
801
|
+
this.consumedBytesByPath.delete(file.path);
|
|
802
|
+
return nothingRead;
|
|
803
|
+
}
|
|
804
|
+
for (const event of events) {
|
|
805
|
+
this.appendToParentBuffer(file.parentSessionId, event);
|
|
806
|
+
this.notifyTurnRead(event);
|
|
807
|
+
}
|
|
808
|
+
// Keep the in-memory mirror in sync; when the partial is empty, drop the
|
|
809
|
+
// key entirely so a fully-consumed file leaves no residual entry in the map.
|
|
810
|
+
this.consumedBytesByPath.set(file.path, nextBytePos);
|
|
603
811
|
if (newPartial.length > 0) {
|
|
604
812
|
this.partialByPath.set(file.path, newPartial);
|
|
605
813
|
}
|
|
@@ -621,6 +829,17 @@ export class SubagentWatcher {
|
|
|
621
829
|
event: 'oversized_line_dropped',
|
|
622
830
|
});
|
|
623
831
|
}
|
|
832
|
+
return { bytes: actuallyRead, turns: events.length };
|
|
833
|
+
}
|
|
834
|
+
notifyTurnRead(event) {
|
|
835
|
+
if (this.onTurnRead === undefined)
|
|
836
|
+
return;
|
|
837
|
+
try {
|
|
838
|
+
this.onTurnRead(event);
|
|
839
|
+
}
|
|
840
|
+
catch (err) {
|
|
841
|
+
this.recordError(err);
|
|
842
|
+
}
|
|
624
843
|
}
|
|
625
844
|
/**
|
|
626
845
|
* Drop in-memory partial-line state for files that are no longer discovered
|
|
@@ -630,8 +849,12 @@ export class SubagentWatcher {
|
|
|
630
849
|
* file reappears, we resume from it.
|
|
631
850
|
*/
|
|
632
851
|
evictStalePartials(files) {
|
|
633
|
-
if (this.partialByPath.size === 0 &&
|
|
852
|
+
if (this.partialByPath.size === 0 &&
|
|
853
|
+
this.decoderByPath.size === 0 &&
|
|
854
|
+
this.agentTypeByPath.size === 0 &&
|
|
855
|
+
this.consumedBytesByPath.size === 0) {
|
|
634
856
|
return;
|
|
857
|
+
}
|
|
635
858
|
const live = new Set();
|
|
636
859
|
for (const f of files)
|
|
637
860
|
live.add(f.path);
|
|
@@ -643,6 +866,59 @@ export class SubagentWatcher {
|
|
|
643
866
|
if (!live.has(path))
|
|
644
867
|
this.decoderByPath.delete(path);
|
|
645
868
|
}
|
|
869
|
+
for (const path of this.agentTypeByPath.keys()) {
|
|
870
|
+
if (!live.has(path))
|
|
871
|
+
this.agentTypeByPath.delete(path);
|
|
872
|
+
}
|
|
873
|
+
for (const path of this.consumedBytesByPath.keys()) {
|
|
874
|
+
if (!live.has(path))
|
|
875
|
+
this.consumedBytesByPath.delete(path);
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
/**
|
|
879
|
+
* Reads `agentType` from the transcript's `agent-<id>.meta.json` sidecar.
|
|
880
|
+
* Claude Code writes that sidecar when it spawns the subagent (its birth
|
|
881
|
+
* time matches the transcript's first line in observed 2.1.284 data), so the
|
|
882
|
+
* type is available while the subagent runs, well before the parent's
|
|
883
|
+
* `Agent` PostToolUse. Only `agentType` is taken; the sidecar's other fields
|
|
884
|
+
* (`description`, `name`, ...) are never read into events.
|
|
885
|
+
*/
|
|
886
|
+
readAgentType(transcriptPath) {
|
|
887
|
+
const cached = this.agentTypeByPath.get(transcriptPath);
|
|
888
|
+
if (cached !== undefined)
|
|
889
|
+
return cached;
|
|
890
|
+
const metaPath = transcriptPath.replace(/\.jsonl$/, '.meta.json');
|
|
891
|
+
let agentType;
|
|
892
|
+
let fd;
|
|
893
|
+
try {
|
|
894
|
+
fd = openSync(metaPath, 'r');
|
|
895
|
+
// One byte past the ceiling tells an oversized file apart from one
|
|
896
|
+
// exactly at it, without trusting a stat that could race a writer.
|
|
897
|
+
const buf = Buffer.alloc(MAX_META_SIDECAR_BYTES + 1);
|
|
898
|
+
const bytesRead = readSync(fd, buf, 0, buf.length, 0);
|
|
899
|
+
if (bytesRead > MAX_META_SIDECAR_BYTES)
|
|
900
|
+
return undefined;
|
|
901
|
+
const parsed = JSON.parse(buf.toString('utf-8', 0, bytesRead));
|
|
902
|
+
if (parsed !== null && typeof parsed === 'object') {
|
|
903
|
+
agentType = normalizeAgentType(parsed.agentType);
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
catch {
|
|
907
|
+
return undefined; // absent (older Claude Code or not yet written) or malformed
|
|
908
|
+
}
|
|
909
|
+
finally {
|
|
910
|
+
if (fd !== undefined) {
|
|
911
|
+
try {
|
|
912
|
+
closeSync(fd);
|
|
913
|
+
}
|
|
914
|
+
catch {
|
|
915
|
+
/* best-effort close */
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
if (agentType !== undefined)
|
|
920
|
+
this.agentTypeByPath.set(transcriptPath, agentType);
|
|
921
|
+
return agentType;
|
|
646
922
|
}
|
|
647
923
|
/**
|
|
648
924
|
* Parse a JSONL line, return non-null only when it's a valid assistant turn
|
|
@@ -702,6 +978,7 @@ export class SubagentWatcher {
|
|
|
702
978
|
return { bytePos: 0, partialLine: '' };
|
|
703
979
|
}
|
|
704
980
|
}
|
|
981
|
+
/** Returns whether the cursor was written; a failure is recorded, not thrown. */
|
|
705
982
|
writeCursor(cursorPath, bytePos, partialLine, sourcePath) {
|
|
706
983
|
try {
|
|
707
984
|
if (!existsSync(this.storagePath)) {
|
|
@@ -713,9 +990,11 @@ export class SubagentWatcher {
|
|
|
713
990
|
writeFileSync(cursorPath, JSON.stringify({ bytePos, partialLine, path: sourcePath }), {
|
|
714
991
|
mode: 0o600,
|
|
715
992
|
});
|
|
993
|
+
return true;
|
|
716
994
|
}
|
|
717
995
|
catch (err) {
|
|
718
996
|
this.recordError(err);
|
|
997
|
+
return false;
|
|
719
998
|
}
|
|
720
999
|
}
|
|
721
1000
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-watcher.js","sourceRoot":"","sources":["../../src/hooks/subagent-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,GAEd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAG9E,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAEhD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAC3C,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AACpD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK;AAC1D,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK;AAChD,MAAM,aAAa,GAAG,gEAAgE,CAAC;AACvF,6EAA6E;AAC7E,4BAA4B;AAC5B,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAmK7C,MAAM,OAAO,eAAe;IACT,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,cAAc,CAAS;IACvB,cAAc,CAAS;IACvB,mBAAmB,CAAgB;IACnC,aAAa,CAA0C;IACvD,UAAU,CAAyB;IAE5C,UAAU,GAA0C,IAAI,CAAC;IACzD,gBAAgB,GAA0C,IAAI,CAAC;IAC/D,OAAO,GAAG,KAAK,CAAC;IAExB,uEAAuE;IACvE,8EAA8E;IAC9E,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,wEAAwE;IACvD,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3D,0EAA0E;IAC1E,mEAAmE;IACnE,2EAA2E;IAC3E,0EAA0E;IAC1E,wEAAwE;IACxE,oEAAoE;IACpE,mEAAmE;IACnE,uEAAuE;IACvE,uEAAuE;IACvE,oBAAoB;IACpB,qEAAqE;IACpD,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IAElE,kBAAkB;IACV,YAAY,GAAG,CAAC,CAAC;IACjB,SAAS,GAAG,CAAC,CAAC;IACd,SAAS,GAAG,CAAC,CAAC;IACd,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IACjB,SAAS,GAA2C,IAAI,CAAC;IAEjE,sDAAsD;IACtD,8CAA8C;IACtC,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,wEAAwE;IACxE,wCAAwC;IACvB,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/D,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,kEAAkE;IAClE,4BAA4B;IACX,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;IACtD,kCAAkC,GAAG,KAAK,CAAC;IAC3C,mBAAmB,GAAG,CAAC,CAAC;IAEhC,YAAY,UAAkC,EAAE;QAC9C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC7E,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;QAC3D,IAAI,CAAC,cAAc;YACjB,OAAO,CAAC,cAAc;gBACtB,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,cAAc;YACjB,OAAO,CAAC,cAAc;gBACtB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACnF,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACjF,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACrC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,0EAA0E;IAC1E,cAAc;QACZ,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,qBAAqB,EAAE,KAAK;SAC7B,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAEpE,aAAa;QACnB,MAAM,GAAG,GAAqB,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,GAAG,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEnE,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;YAClD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,iCAAiC,EAAE,IAAI,IAAI,CAAC,CAAC;QAEnE,IAAI,cAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAS;YAElC,mEAAmE;YACnE,kDAAkD;YAClD,uEAAuE;YACvE,MAAM,cAAc,GAAa,IAAI,CAAC,mBAAmB;gBACvD,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBAC5B,CAAC,CAAC,CAAC,GAAG,EAAE;oBACJ,IAAI,CAAC;wBACH,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;oBAClC,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACT,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAC7C,IAAI,IAAI,CAAC,mBAAmB,IAAI,SAAS,KAAK,IAAI,CAAC,mBAAmB;oBAAE,SAAS;gBACjF,IAAI,mBAAmB,EAAE,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC7C,IAAI,OAAc,CAAC;gBACnB,IAAI,CAAC;oBACH,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,CAAC,0DAA0D;gBACtE,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBAAE,SAAS;gBACrC,6DAA6D;gBAC7D,sEAAsE;gBACtE,qEAAqE;gBACrE,8DAA8D;gBAC9D,mEAAmE;gBACnE,iEAAiE;gBACjE,gEAAgE;gBAChE,oEAAoE;gBACpE,mEAAmE;gBACnE,sCAAsC;gBACtC,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;oBACpE,IAAI,SAAuB,CAAC;oBAC5B,IAAI,CAAC;wBACH,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;oBAClD,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS,GAAG,IAAI,CAAC;oBACnB,CAAC;oBACD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,OAAO,GAAG,QAAQ;wBAAE,SAAS;gBACnE,CAAC;gBAED,kCAAkC;gBAClC,IAAI,CAAC;oBACH,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAAE,SAAS;wBACrE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC9D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC/B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;4BACjD,SAAS;wBACX,CAAC;wBACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBAChD,IAAI,IAAI,EAAE,CAAC;4BACT,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;wBACrF,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,iCAAiC;gBACnC,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACjC,IAAI,CAAC;oBACH,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;4BAAE,SAAS;wBACxC,MAAM,OAAO,GAAG,MAAM,CAAC;wBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBACrC,IAAI,KAAK,CAAC;wBACV,IAAI,CAAC;4BACH,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAC7B,CAAC;wBAAC,MAAM,CAAC;4BACP,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;4BAAE,SAAS;wBACnC,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,GAAG,QAAQ;4BAAE,SAAS;wBAC5E,IAAI,CAAC;4BACH,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gCACzC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oCAAE,SAAS;gCACrE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCAC9D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oCAC/B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;oCACnD,SAAS;gCACX,CAAC;gCACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gCAClC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gCAChD,IAAI,IAAI,EAAE,CAAC;oCACT,GAAG,CAAC,IAAI,CAAC;wCACP,IAAI;wCACJ,eAAe,EAAE,SAAS;wCAC1B,OAAO;wCACP,aAAa,EAAE,OAAO;wCACtB,IAAI;qCACL,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,UAAU;wBACZ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,iBAAiB,CAAC,KAAuB;QAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,uEAAuE;YACvE,iEAAiE;YACjE,qEAAqE;YACrE,iBAAiB;YACjB,IACE,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO;gBACtC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EACpE,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,0IAA0I;IAClI,aAAa,CAAC,IAAY,EAAE,QAAgB;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;gBAC1B,oEAAoE;gBACpE,iEAAiE;gBACjE,qDAAqD;gBACrD,kEAAkE;gBAClE,UAAU;gBACV,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnF,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,YAAY,CAAC;wBAChB,IAAI,EAAE,sBAAsB;wBAC5B,IAAI,EAAE,sBAAsB;wBAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,OAAO,EAAE,UAAU;wBACnB,YAAY,EAAE,CAAC;wBACf,SAAS,EAAE,CAAC;wBACZ,SAAS,EAAE,CAAC;wBACZ,WAAW,EAAE,CAAC;wBACd,YAAY,EAAE,CAAC;wBACf,SAAS,EAAE,IAAI;wBACf,KAAK,EAAE,mBAAmB;qBAC3B,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;4BAMwB;IAChB,uBAAuB,CAAC,IAAY;QAC1C,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,kCAAkC;gBAAE,OAAO;YACpD,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO;YACpD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAEpE,WAAW,CAAC,IAAoB;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,6EAA6E;QAC7E,wEAAwE;QACxE,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;QAClF,MAAM,WAAW,GAAgB,YAAY;YAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAClD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,YAAY;YAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI;YAAE,OAAO;QAE3C,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACvD,IAAI,GAAW,CAAC;QAChB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC9B,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,YAAY,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,SAAS,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY;gBACd,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,SAAS,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,YAAY,KAAK,CAAC;YAAE,OAAO;QAE/B,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC;QAE/B,4EAA4E;QAC5E,6EAA6E;QAC7E,mDAAmD;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC;QAC7E,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;QAEjC,4EAA4E;QAC5E,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,6EAA6E;QAC7E,0EAA0E;QAC1E,0BAA0B;QAC1B,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,GAAG,YAAY,CAAC;QAEvD,2EAA2E;QAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,UAAU,GAAG,QAAQ,CAAC;QAC1B,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,6EAA6E;QAC7E,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,0BAA0B;QAC1B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,UAAU,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YAC/C,gBAAgB,GAAG,IAAI,CAAC;YACxB,UAAU,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAC9B,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5F,IAAI,CAAC,uBAAuB,CAC1B,qBAAqB,EACrB,MAAM,CAAC,4BAA4B,EACnC,IAAI,CAAC,aAAa,CACnB,CAAC;YAEF,MAAM,KAAK,GAAuB;gBAChC,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,MAAM,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,iBAAiB,EAAE,MAAM,CAAC,oBAAoB;gBAC9C,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,6EAA6E;QAC7E,4CAA4C;QAC5C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC;gBAChB,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,sBAAsB;gBAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,wBAAwB;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,kBAAkB,CAAC,KAAuB;QAChD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,IAAY,EAAE,KAAqB;QACtD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,aAAa;YAAE,OAAO,IAAI,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAE/C,OAAO;YACL,WAAW;YACX,SAAS;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;YACjE,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAEpE,UAAU,CAAC,eAAuB,EAAE,OAAe;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,eAAe,IAAI,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAEO,UAAU,CAAC,UAAkB;QACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACpE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,WAAW,CACjB,UAAkB,EAClB,OAAe,EACf,WAAmB,EACnB,UAAkB;QAElB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;gBACpF,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,eAAuB,EAAE,KAAa;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,eAAe,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,KAA+B;QAClD,8DAA8D;QAC9D,yEAAyE;QACzE,0EAA0E;QAC1E,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC;QACvD,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,4EAA4E;IAC5E,yBAAyB;IACzB,4EAA4E;IAEpE,uBAAuB,CAC7B,SAAqE,EACrE,WAAmB,EACnB,aAA4B;QAE5B,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,WAAW,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,GAAG,QAAQ,GAAG,4BAA4B;YAAE,OAAO;QACpF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,cAAc;YACrB,SAAS;YACT,WAAW;YACX,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,iEAAiE;YACjE,2EAA2E;YAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,GAAG,GAA2B,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,IAAI,GAAG,GAAG,CAAC,GAAG,4BAA4B,GAAG,EAAE;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9D,CAAC;YACD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAEpE,UAAU;QAChB,MAAM,KAAK,GAA6B;YACtC,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,mBAAmB,GAAG,kBAAkB;YAAE,OAAO;QAChE,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC;QAC/B,IAAI,MAAsD,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,UAAU;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,iBAAiB;YACxB,qBAAqB,EAAE,QAAQ;SAChC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,GAAY;QAC9B,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,IAAI,SAAS,CAAC;QAC1D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,eAAuB,EACvB,OAAe;IAEf,OAAO,OAAO,CAAC,WAAW,EAAE,iBAAiB,eAAe,IAAI,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"subagent-watcher.js","sourceRoot":"","sources":["../../src/hooks/subagent-watcher.ts"],"names":[],"mappings":"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"}
|