@stratusagent/tool-fs 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,7 +49,7 @@ tools: [fs.read, fs.search] # or fs.* for the whole toolset
49
49
  | --- | --- | --- |
50
50
  | `fs.read` | `safe` | Runs unattended. Nothing outside the agent's roots is readable, which is what makes reading safe rather than merely convenient. |
51
51
  | `fs.list` | `safe` | Runs unattended. Symlinks are listed as symlinks and never followed. |
52
- | `fs.search` | `safe` | Runs unattended. Matches **literal text** (optionally `wholeWord`), never a regular expression — see below. Given a directory it walks it without following symlinks, skipping `.git`, `node_modules`, and files over 1 MB; given a file it searches that file and no others. |
52
+ | `fs.search` | `safe` | Runs unattended. Matches **literal text** (optionally `wholeWord`), never a regular expression — see below. Given a directory it walks it without following symlinks, skipping `.git`, `node_modules`, and files over 1 MB — each skipped file is named in the result's `skipped` list (the first fifty; `skippedTotal` counts them all), never silently passed over; given a file it searches that file and no others, streamed a line at a time, whatever its size — a single line longer than a million characters (Unicode code points, whatever their encoding) is searched in its first million only, and a file that reports no size (a `/proc` file) is searched in its first 1 MB only; the result says so either way. |
53
53
  | `fs.write` | `gated` | `interactive` asks at the terminal, `remote` asks in Slack, `headless` refuses. Writing where other people read is the thing worth a person's attention. |
54
54
 
55
55
  ## Settings
@@ -57,8 +57,8 @@ tools: [fs.read, fs.search] # or fs.* for the whole toolset
57
57
  | Key | Default | What |
58
58
  | --- | --- | --- |
59
59
  | `roots` | none | Directories this agent may reach. **No roots means no filesystem** — nothing is readable, rather than everything. |
60
- | `maxBytes` | `64000` | Cap on one `fs.read`, before the `truncated` marker. |
61
- | `maxMatches` | `100` | Cap on `fs.search` matches. |
60
+ | `maxBytes` | `64000` | Cap on one `fs.read`, before the `truncated` marker. A call's own `maxBytes` may ask for less, never more. |
61
+ | `maxMatches` | `100` | Cap on `fs.search` matches. A call's own `maxMatches` may ask for fewer, never more. |
62
62
  | `maxEntries` | `500` | Cap on `fs.list` entries. |
63
63
 
64
64
  Every key can be set per agent in the `agents` sub-block, over the defaults
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAUvF,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA+XD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,SAAQ,UAAe,KAAG,MAQvD,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YAXc,UAAU,KAAQ,MAWf,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAUvF,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAQpB,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8pBD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,SAAQ,UAAe,KAAG,MAQvD,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YAXc,UAAU,KAAQ,MAWf,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { constants } from 'node:fs';
2
2
  import { mkdir, readdir, readFile, stat } from 'node:fs/promises';
3
+ import { StringDecoder } from 'node:string_decoder';
3
4
  import os from 'node:os';
4
5
  import path from 'node:path';
5
6
  import { resolvePluginAgentConfig } from '@stratusagent/plugins';
@@ -12,6 +13,14 @@ const DEFAULT_MAX_SEARCH_FILE_BYTES = 1_000_000;
12
13
  const DEFAULT_MAX_ENTRIES = 500;
13
14
  const asStrings = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === 'string') : [];
14
15
  const asNumber = (value, fallback) => typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : fallback;
16
+ /**
17
+ * A per-call limit may narrow the operator's cap, never raise it. The
18
+ * README calls `maxBytes` and `maxMatches` caps, and a cap the model can
19
+ * lift by naming a bigger number is a suggestion: one `fs.read` of a log
20
+ * file asked for `maxBytes: 1e10` and got the whole 6.7 MB of it into the
21
+ * transcript.
22
+ */
23
+ const narrowed = (requested, cap) => Math.min(asNumber(requested, cap), cap);
15
24
  const requireString = (input, key) => {
16
25
  const value = input[key];
17
26
  if (typeof value !== 'string' || value.length === 0) {
@@ -99,7 +108,7 @@ const createReadTool = (config) => ({
99
108
  const settings = settingsFor(config, session);
100
109
  const requested = requireString(input, 'path');
101
110
  const resolved = await resolveWithinRoots(settings.roots, requested, { home: settings.home });
102
- const maxBytes = asNumber(input.maxBytes, settings.maxBytes);
111
+ const maxBytes = narrowed(input.maxBytes, settings.maxBytes);
103
112
  const result = await readContained(resolved, maxBytes);
104
113
  return {
105
114
  path: relativeTo(resolved.root, resolved.path),
@@ -193,6 +202,175 @@ const matcherFor = (query, options) => {
193
202
  const literal = escapeRegExp(query);
194
203
  return new RegExp(options.wholeWord ? `\\b${literal}\\b` : literal, options.caseSensitive ? '' : 'i');
195
204
  };
205
+ /**
206
+ * A text file a line at a time, or `undefined` once when it turns out to be
207
+ * binary — decided on every chunk as it streams, since a file that starts
208
+ * as text and turns binary later was read whole and judged whole before
209
+ * it was streamed. Streamed in chunks so a file named outright can be any
210
+ * size, and so can a line: a minified file or a base64 log is one line for
211
+ * megabytes, and a reader that accumulates a whole line before yielding it
212
+ * holds the whole file after all. A line past `MAX_LINE_CHARS` is yielded
213
+ * as its first `MAX_LINE_CHARS` characters and the rest is discarded to the
214
+ * next newline; the line says so through `clipped` — said there rather
215
+ * than inferred from its length, because a line of exactly
216
+ * `MAX_LINE_CHARS` was searched whole. Characters are Unicode code points,
217
+ * not UTF-16 code units: counted by `length`, a line of half a million
218
+ * emoji would have been clipped at a "million characters" it never
219
+ * reached, and the cut could land between the halves of a pair.
220
+ *
221
+ * Opened through `openContained`, like `fs.read`: the containment check
222
+ * captured the file's identity, and a name repointed between that check
223
+ * and this open is refused here rather than read. The size comes from the
224
+ * open descriptor for the same reason — a `stat` of the name afterwards is
225
+ * fresh evidence about whatever the name points at by then, which after a
226
+ * log rotation is a different file or none.
227
+ */
228
+ const MAX_LINE_CHARS = 1_000_000;
229
+ /**
230
+ * How much of a file that reports no size is read. A virtual file
231
+ * (`/proc/version`, a sysfs attribute) has content its size does not admit
232
+ * to, so it cannot be bounded by its size; a regular file that was empty
233
+ * when opened and is being appended to cannot be bounded by it either,
234
+ * and an unbounded read would run for as long as the writer stays ahead.
235
+ * The walk limit is the bound the tool already lives with.
236
+ */
237
+ const MAX_UNSIZED_FILE_BYTES = DEFAULT_MAX_SEARCH_FILE_BYTES;
238
+ const isHighSurrogate = (code) => code >= 0xd800 && code <= 0xdbff;
239
+ const isLowSurrogate = (code) => code >= 0xdc00 && code <= 0xdfff;
240
+ /** Code points, not code units — only ever asked of text that might be over the limit. */
241
+ const codePointLength = (text) => {
242
+ let pairs = 0;
243
+ for (let index = 0; index < text.length - 1; index += 1) {
244
+ if (isHighSurrogate(text.charCodeAt(index)) && isLowSurrogate(text.charCodeAt(index + 1))) {
245
+ pairs += 1;
246
+ index += 1;
247
+ }
248
+ }
249
+ return text.length - pairs;
250
+ };
251
+ /** The first `count` code points of `text`, never ending inside a pair. */
252
+ const firstCodePoints = (text, count) => {
253
+ let units = 0;
254
+ for (let seen = 0; seen < count && units < text.length; seen += 1) {
255
+ units += isHighSurrogate(text.charCodeAt(units)) && units + 1 < text.length && isLowSurrogate(text.charCodeAt(units + 1)) ? 2 : 1;
256
+ }
257
+ return text.slice(0, units);
258
+ };
259
+ /**
260
+ * A line clipped to the limit when it is over it, in code points. `length`
261
+ * is a ceiling on code points, so a line within it in code units is within
262
+ * it and is not counted.
263
+ */
264
+ const bounded = (text) => {
265
+ if (text.length <= MAX_LINE_CHARS || codePointLength(text) <= MAX_LINE_CHARS) {
266
+ return { text, clipped: false, next: '' };
267
+ }
268
+ const kept = firstCodePoints(text, MAX_LINE_CHARS);
269
+ return { text: kept, clipped: true, next: firstCodePoints(text.slice(kept.length), 1) };
270
+ };
271
+ /**
272
+ * Whether the query occurs inside the part of this line that was searched.
273
+ *
274
+ * A clipped line ends where the tool stopped reading, not where the file's
275
+ * line ends, and `\b` at that artificial end would call a word cut in half
276
+ * a whole word. The code point that came next is kept for exactly this: the
277
+ * match runs against it too, and counts only if it ends before it.
278
+ */
279
+ const matchesWithin = (pattern, line) => {
280
+ if (!line.clipped || line.next.length === 0) {
281
+ return pattern.test(line.text);
282
+ }
283
+ const found = pattern.exec(line.text + line.next);
284
+ return found !== null && found.index + found[0].length <= line.text.length;
285
+ };
286
+ const openLines = async (resolved) => {
287
+ const handle = await openContained(resolved, constants.O_RDONLY | (constants.O_NONBLOCK ?? 0));
288
+ try {
289
+ const { size } = await handle.stat();
290
+ const capped = { capped: false };
291
+ return { size, lines: linesOf(handle, size, capped), get capped() { return capped.capped; } };
292
+ }
293
+ catch (error) {
294
+ await handle.close();
295
+ throw error;
296
+ }
297
+ };
298
+ /** Owns `handle`: closes it when the lines run out, or when the caller stops early. */
299
+ const linesOf = async function* (handle, size, opened) {
300
+ try {
301
+ const decoder = new StringDecoder('utf8');
302
+ let carry = '';
303
+ let discarding = false;
304
+ let discardedNext = '';
305
+ // Bounded to the size the file had when it was opened: a log being
306
+ // appended to would otherwise be read for as long as its writer stays
307
+ // ahead, and the result's `bytes` would name a size the search had
308
+ // long passed. One call searches one finite snapshot. A file that
309
+ // reports no size is bounded by `MAX_UNSIZED_FILE_BYTES` instead (see
310
+ // there); a file that is really empty ends its stream at once either way.
311
+ // The unsized bound reads one byte past the cap on purpose: that byte
312
+ // arriving is the only proof there was more, so a file of exactly the
313
+ // cap is reported as searched whole rather than as clipped.
314
+ const end = size > 0 ? size - 1 : MAX_UNSIZED_FILE_BYTES;
315
+ let read = 0;
316
+ for await (const raw of handle.createReadStream({ start: 0, end, highWaterMark: 64 * 1024 })) {
317
+ // Whatever came past the cap is the probe and nothing more: it says
318
+ // there was more to read, and is not itself searched, decoded, or
319
+ // weighed in the binary verdict — the file's first
320
+ // `MAX_UNSIZED_FILE_BYTES` bytes are what this call reports on.
321
+ const over = size === 0 ? Math.max(0, read + raw.length - MAX_UNSIZED_FILE_BYTES) : 0;
322
+ read += raw.length;
323
+ if (over > 0) {
324
+ opened.capped = true;
325
+ }
326
+ const chunk = over > 0 ? raw.subarray(0, raw.length - over) : raw;
327
+ if (chunk.length === 0) {
328
+ break;
329
+ }
330
+ if (looksBinary(chunk)) {
331
+ yield undefined;
332
+ return;
333
+ }
334
+ const text = decoder.write(chunk);
335
+ let from = 0;
336
+ for (;;) {
337
+ const newline = text.indexOf('\n', from);
338
+ if (newline === -1) {
339
+ if (!discarding) {
340
+ carry += text.slice(from);
341
+ // Decoded chunks end on whole code points (the decoder holds a
342
+ // partial sequence back), so a pair is never split across them.
343
+ const clipped = bounded(carry);
344
+ if (clipped.clipped) {
345
+ carry = clipped.text;
346
+ discarding = true;
347
+ discardedNext = clipped.next;
348
+ }
349
+ }
350
+ break;
351
+ }
352
+ yield discarding
353
+ ? { text: carry, clipped: true, next: discardedNext }
354
+ : bounded(carry + text.slice(from, newline));
355
+ carry = '';
356
+ discarding = false;
357
+ discardedNext = '';
358
+ from = newline + 1;
359
+ }
360
+ }
361
+ const tail = discarding
362
+ ? { text: carry, clipped: true, next: discardedNext }
363
+ : bounded(carry + decoder.end());
364
+ if (tail.text.length > 0) {
365
+ yield tail;
366
+ }
367
+ }
368
+ finally {
369
+ await handle.close();
370
+ }
371
+ };
372
+ /** How many skipped files a result names outright; the rest are a count. */
373
+ const MAX_SKIPPED_REPORTED = 50;
196
374
  const walkFiles = async function* (directory, depth = 0) {
197
375
  if (depth > 12) {
198
376
  return;
@@ -243,12 +421,34 @@ const createSearchTool = (config) => ({
243
421
  const query = requireString(input, 'query');
244
422
  const requested = typeof input.path === 'string' && input.path.length > 0 ? input.path : '.';
245
423
  const resolved = await resolveWithinRoots(settings.roots, requested, { home: settings.home });
246
- const limit = asNumber(input.maxMatches, settings.maxMatches);
424
+ const limit = narrowed(input.maxMatches, settings.maxMatches);
247
425
  const pattern = matcherFor(query, {
248
426
  caseSensitive: input.caseSensitive === true,
249
427
  wholeWord: input.wholeWord === true,
250
428
  });
251
429
  const matches = [];
430
+ // What the walk looked past, said outright. A file over the size
431
+ // limit used to vanish from the result: a search of a directory holding
432
+ // one 6.7 MB log came back with no matches and no hint that the log
433
+ // was never opened, and a summary written from that is confidently
434
+ // wrong in the way a silently clipped read is.
435
+ const skipped = [];
436
+ // Bounded like the matches: a directory of large files would otherwise
437
+ // put one record per file into a result the search limit was meant
438
+ // to keep small. Past the cap, they are a count.
439
+ let skippedTotal = 0;
440
+ const skip = (entry) => {
441
+ skippedTotal += 1;
442
+ if (skipped.length < MAX_SKIPPED_REPORTED) {
443
+ skipped.push(entry);
444
+ }
445
+ };
446
+ const report = () => ({
447
+ query,
448
+ matches,
449
+ truncated,
450
+ ...(skippedTotal > 0 ? { skipped, skippedTotal } : {}),
451
+ });
252
452
  let truncated = false;
253
453
  // A file is searched as itself. Falling back to its parent would answer
254
454
  // a question nobody asked — `{ path: 'notes/today.md' }` coming back
@@ -261,12 +461,68 @@ const createSearchTool = (config) => ({
261
461
  // us directly can.
262
462
  throw new Error(`${resolved.path} is not a regular file.`);
263
463
  }
264
- const files = resolved.kind === 'directory'
265
- ? walkFiles(resolved.path)
266
- : (async function* single() {
267
- yield resolved.path;
268
- })();
269
- for await (const file of files) {
464
+ const record = (file, index, line) => {
465
+ if (matches.length >= limit) {
466
+ truncated = true;
467
+ return false;
468
+ }
469
+ matches.push({
470
+ path: relativeTo(resolved.root, file),
471
+ line: index + 1,
472
+ text: line.length > 400 ? `${line.slice(0, 400)}…` : line,
473
+ });
474
+ return true;
475
+ };
476
+ if (resolved.kind === 'file') {
477
+ // A file named outright is searched whatever its size — the caller
478
+ // asked about this file, not about a limit meant for a walk — and
479
+ // streamed a line at a time, so the size limit's reason (a directory
480
+ // full of large files read whole) does not apply.
481
+ let index = 0;
482
+ let clipped = false;
483
+ const opened = await openLines(resolved);
484
+ const { size, lines } = opened;
485
+ const before = matches.length;
486
+ const truncatedBefore = truncated;
487
+ // Past the match cap the file is still read to its end, no longer
488
+ // matched: the binary verdict is decided on every chunk, and a NUL
489
+ // after the cap would otherwise go unseen, leaving matches from a
490
+ // file that is not text standing as results.
491
+ let capped = false;
492
+ for await (const line of lines) {
493
+ if (line === undefined) {
494
+ // Binary after all: what matched in the text before the first
495
+ // NUL is not a search result of a text file, because this is
496
+ // not one.
497
+ matches.splice(before);
498
+ truncated = truncatedBefore;
499
+ clipped = false;
500
+ skip({ path: relativeTo(resolved.root, resolved.path), bytes: size, reason: 'binary' });
501
+ break;
502
+ }
503
+ clipped ||= line.clipped;
504
+ if (!capped && matchesWithin(pattern, line) && !record(resolved.path, index, line.text)) {
505
+ capped = true;
506
+ }
507
+ index += 1;
508
+ }
509
+ if (clipped) {
510
+ skip({
511
+ path: relativeTo(resolved.root, resolved.path),
512
+ bytes: size,
513
+ reason: `a line longer than ${MAX_LINE_CHARS / 1_000_000} million characters was searched in its first ${MAX_LINE_CHARS / 1_000_000} million only`,
514
+ });
515
+ }
516
+ if (opened.capped) {
517
+ skip({
518
+ path: relativeTo(resolved.root, resolved.path),
519
+ bytes: size,
520
+ reason: `reports no size, and was searched in its first ${MAX_UNSIZED_FILE_BYTES / 1_000_000} MB only`,
521
+ });
522
+ }
523
+ return report();
524
+ }
525
+ for await (const file of walkFiles(resolved.path)) {
270
526
  if (matches.length >= limit) {
271
527
  truncated = true;
272
528
  break;
@@ -275,6 +531,11 @@ const createSearchTool = (config) => ({
275
531
  try {
276
532
  const info = await stat(file);
277
533
  if (info.size > DEFAULT_MAX_SEARCH_FILE_BYTES) {
534
+ skip({
535
+ path: relativeTo(resolved.root, file),
536
+ bytes: info.size,
537
+ reason: `over the ${DEFAULT_MAX_SEARCH_FILE_BYTES / 1_000_000} MB walk limit — search it by name to read it whole`,
538
+ });
278
539
  continue;
279
540
  }
280
541
  contents = await readFile(file);
@@ -287,21 +548,12 @@ const createSearchTool = (config) => ({
287
548
  }
288
549
  const lines = contents.toString('utf8').split('\n');
289
550
  for (const [index, line] of lines.entries()) {
290
- if (!pattern.test(line)) {
291
- continue;
292
- }
293
- if (matches.length >= limit) {
294
- truncated = true;
551
+ if (pattern.test(line) && !record(file, index, line)) {
295
552
  break;
296
553
  }
297
- matches.push({
298
- path: relativeTo(resolved.root, file),
299
- line: index + 1,
300
- text: line.length > 400 ? `${line.slice(0, 400)}…` : line,
301
- });
302
554
  }
303
555
  }
304
- return { query, matches, truncated };
556
+ return report();
305
557
  },
306
558
  });
307
559
  const createWriteTool = (config) => ({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,GAEnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAahC,MAAM,SAAS,GAAG,CAAC,KAA4B,EAAY,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAElG,MAAM,QAAQ,GAAG,CAAC,KAA4B,EAAE,QAAgB,EAAU,EAAE,CAC1E,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEtF,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,GAAW,EAAU,EAAE;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oCAAoC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAAC,MAAkB,EAAE,OAAgB,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACxD,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAC9D,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAC9D,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;KACvE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEpE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;AAEhG,MAAM,aAAa,GAAG,KAAK,EACzB,QAAsB,EACtB,QAAgB,EACgF,EAAE;IAClG,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,+BAA+B,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC5F,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS;YAChC,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAQ,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,0DAA0D;IACvE,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YACzF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;SACzE;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,GAAG,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACtC,CAAC,CAAC;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,4DAA4D;oBAC5D,+DAA+D;oBAC/D,qDAAqD;oBACrD,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC;SACP,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,KAA+E,EAAU,EAAE;IAC5G,IAAI,KAAK,CAAC,cAAc,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,WAAW,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAQ,EAAE,CAAC,CAAC;IACpD,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,oDAAoD;IACjE,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;SAC7E;KACF;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,IAAwB,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,GAAG,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,+DAA+D;gBAC/D,mEAAmE;gBACnE,6BAA6B;gBAC7B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;gBACtB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;SAC1C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAQH,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,OAAyD,EAAU,EAAE;IACtG,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,IAAI,MAAM,CACf,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,EAChD,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,SAAS,CAAC,EAAE,SAAiB,EAAE,KAAK,GAAG,CAAC;IAC7D,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YACD,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAkB,EAAQ,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;YACzF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;YAC7F,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACtE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE;YAChC,aAAa,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI;YAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI;SACpC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,qEAAqE;YACrE,mBAAmB;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,WAAW;YACzC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM;gBACrB,MAAM,QAAQ,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5B,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR,CAAC;YACD,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,IAAI,GAAG,6BAA6B,EAAE,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBACD,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC5B,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;oBACrC,IAAI,EAAE,KAAK,GAAG,CAAC;oBACf,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACvC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAQ,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2DAA2D;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC5B;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC9B;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE;YACnE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,sEAAsE;YACtE,mEAAmE;YACnE,oEAAoE;YACpE,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,sEAAsE;YACtE,oEAAoE;YACpE,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,IAAI,KAAK,WAAW;gBAC3B,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,kBAAkB;gBACpC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,yBAAyB,CAC9C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI;YACjC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ;YAC7D,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAC/D,mEAAmE;QACnE,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI;SAChC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAE,EAAU,EAAE,CAAC,CAAC;IAClE,IAAI,EAAE,uBAAuB;IAC7B,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratusagent/tool-fs",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,8 +18,8 @@
18
18
  "node": ">=22.13 <23 || >=23.4"
19
19
  },
20
20
  "dependencies": {
21
- "@stratusagent/core": "0.10.0",
22
- "@stratusagent/plugins": "0.10.0"
21
+ "@stratusagent/core": "0.11.0",
22
+ "@stratusagent/plugins": "0.11.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^24.6.0",