staff-mcp 1.0.26 → 1.0.28

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.
@@ -3,3 +3,26 @@ export declare const DEFAULT_TIMEOUT = 10000;
3
3
  export declare const SEARCH_MAX_COLUMNS = 200;
4
4
  export declare const SEARCH_MAX_MATCHES = 200;
5
5
  export declare const SEARCH_EXEC_MAX_BUFFER: number;
6
+ /** Maximum image file size (10MB). Base64 encoding adds ~33% overhead. */
7
+ export declare const IMAGE_SIZE_LIMIT: number;
8
+ /** Number of leading bytes to read for magic-byte sniffing and binary detection. */
9
+ export declare const FILE_SNIFF_SIZE = 4096;
10
+ /** MIME types that are returned as image content blocks (not including SVG). */
11
+ export declare const SUPPORTED_IMAGE_MIMES: Set<string>;
12
+ /** Fallback: extension → MIME type mapping (used when sniffing fails, e.g. for SVG). */
13
+ export declare const IMAGE_MIME_BY_EXTENSION: Record<string, string>;
14
+ /**
15
+ * Sniff the MIME type of a file from its leading bytes (magic bytes).
16
+ * Returns null if the bytes don't match any known image signature.
17
+ */
18
+ export declare function sniffImageMime(bytes: Uint8Array): string | null;
19
+ /**
20
+ * Determine whether a file is binary (should not be read as text).
21
+ * Uses content-based detection only (no extension reliance):
22
+ * 1. Contains a null byte (0x00) → true
23
+ * 2. Ratio of non-printable bytes > 30% → true
24
+ *
25
+ * @param filepath - File path (reserved for future use, not currently used)
26
+ * @param bytes - Leading bytes of the file (recommend 4096 bytes)
27
+ */
28
+ export declare function isBinaryFile(filepath: string, bytes: Uint8Array): boolean;
@@ -3,4 +3,79 @@ export const DEFAULT_TIMEOUT = 10000;
3
3
  export const SEARCH_MAX_COLUMNS = 200;
4
4
  export const SEARCH_MAX_MATCHES = 200;
5
5
  export const SEARCH_EXEC_MAX_BUFFER = 50 * 1024 * 1024; // 50MB
6
+ // --- Image reading support ---
7
+ /** Maximum image file size (10MB). Base64 encoding adds ~33% overhead. */
8
+ export const IMAGE_SIZE_LIMIT = 10 * 1024 * 1024;
9
+ /** Number of leading bytes to read for magic-byte sniffing and binary detection. */
10
+ export const FILE_SNIFF_SIZE = 4096;
11
+ /** MIME types that are returned as image content blocks (not including SVG). */
12
+ export const SUPPORTED_IMAGE_MIMES = new Set([
13
+ "image/jpeg",
14
+ "image/png",
15
+ "image/gif",
16
+ "image/webp",
17
+ ]);
18
+ /** Fallback: extension → MIME type mapping (used when sniffing fails, e.g. for SVG). */
19
+ export const IMAGE_MIME_BY_EXTENSION = {
20
+ ".png": "image/png",
21
+ ".jpg": "image/jpeg",
22
+ ".jpeg": "image/jpeg",
23
+ ".gif": "image/gif",
24
+ ".webp": "image/webp",
25
+ ".svg": "image/svg+xml",
26
+ ".bmp": "image/bmp",
27
+ ".tiff": "image/tiff",
28
+ ".ico": "image/x-icon",
29
+ };
30
+ /**
31
+ * Sniff the MIME type of a file from its leading bytes (magic bytes).
32
+ * Returns null if the bytes don't match any known image signature.
33
+ */
34
+ export function sniffImageMime(bytes) {
35
+ if (bytes.length >= 4 && bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47) {
36
+ return "image/png";
37
+ }
38
+ if (bytes.length >= 3 && bytes[0] === 0xff && bytes[1] === 0xd8 && bytes[2] === 0xff) {
39
+ return "image/jpeg";
40
+ }
41
+ if (bytes.length >= 6 && bytes[0] === 0x47 && bytes[1] === 0x49 && bytes[2] === 0x46 && bytes[3] === 0x38) {
42
+ return "image/gif";
43
+ }
44
+ // WebP: RIFF....WEBP
45
+ if (bytes.length >= 12 &&
46
+ bytes[0] === 0x52 && bytes[1] === 0x49 && bytes[2] === 0x46 && bytes[3] === 0x46 &&
47
+ bytes[8] === 0x57 && bytes[9] === 0x45 && bytes[10] === 0x42 && bytes[11] === 0x50) {
48
+ return "image/webp";
49
+ }
50
+ return null;
51
+ }
52
+ // --- Binary file detection ---
53
+ /**
54
+ * Determine whether a file is binary (should not be read as text).
55
+ * Uses content-based detection only (no extension reliance):
56
+ * 1. Contains a null byte (0x00) → true
57
+ * 2. Ratio of non-printable bytes > 30% → true
58
+ *
59
+ * @param filepath - File path (reserved for future use, not currently used)
60
+ * @param bytes - Leading bytes of the file (recommend 4096 bytes)
61
+ */
62
+ export function isBinaryFile(filepath, bytes) {
63
+ if (bytes.length === 0) {
64
+ return false;
65
+ }
66
+ // 1. Null byte detection - text files almost never contain 0x00
67
+ let nonPrintableCount = 0;
68
+ for (let i = 0; i < bytes.length; i++) {
69
+ const b = bytes[i];
70
+ if (b === 0x00) {
71
+ return true;
72
+ }
73
+ // Count non-printable bytes (excluding common whitespace: \t=9, \n=10, \r=13)
74
+ if (b < 9 || (b > 13 && b < 32)) {
75
+ nonPrintableCount++;
76
+ }
77
+ }
78
+ // 2. Non-printable ratio threshold
79
+ return nonPrintableCount / bytes.length > 0.3;
80
+ }
6
81
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { promisify } from "util";
5
5
  import * as readline from "readline";
6
6
  import { createReadStream } from "fs";
7
7
  import { z } from "zod";
8
- import { CHARACTER_LIMIT, SEARCH_MAX_COLUMNS, SEARCH_MAX_MATCHES, SEARCH_EXEC_MAX_BUFFER } from "../constants.js";
8
+ import { CHARACTER_LIMIT, SEARCH_MAX_COLUMNS, SEARCH_MAX_MATCHES, SEARCH_EXEC_MAX_BUFFER, IMAGE_SIZE_LIMIT, FILE_SNIFF_SIZE, SUPPORTED_IMAGE_MIMES, IMAGE_MIME_BY_EXTENSION, sniffImageMime, isBinaryFile } from "../constants.js";
9
9
  import { ensureRipgrep } from "../utils/tool-utils.js";
10
10
  const execAsync = promisify(exec);
11
11
  /**
@@ -33,7 +33,9 @@ function truncateContext(context, colNum, maxLen) {
33
33
  export function registerFileTools(server, security) {
34
34
  // read_file
35
35
  server.registerTool("read_file", {
36
- description: "Read the content of a file from the allowed workspace.",
36
+ description: "Read the content of a file from the allowed workspace. " +
37
+ "Supports line range selection via startLine/endLine. " +
38
+ "This tool can read image files and return them for visual analysis.",
37
39
  inputSchema: z.object({
38
40
  path: z.string().describe("Relative path from the workspace to the file to read."),
39
41
  startLine: z.number().optional().describe("1-based line number to start reading from."),
@@ -42,6 +44,57 @@ export function registerFileTools(server, security) {
42
44
  }, async ({ path: filePath, startLine, endLine }) => {
43
45
  try {
44
46
  const validatedPath = security.resolveAndValidatePath(filePath);
47
+ // --- Image detection: magic-byte sniff + extension fallback ---
48
+ const ext = path.extname(validatedPath).toLowerCase();
49
+ const extMime = IMAGE_MIME_BY_EXTENSION[ext];
50
+ // Read first few bytes for magic-byte sniffing + binary detection
51
+ let sniffedMime = null;
52
+ let fileStat = await fs.stat(validatedPath);
53
+ let sampleBytes = new Uint8Array(0);
54
+ if (fileStat.size > 0) {
55
+ const fd = await fs.open(validatedPath, "r");
56
+ const sample = Buffer.alloc(FILE_SNIFF_SIZE);
57
+ const { bytesRead } = await fd.read(sample, 0, FILE_SNIFF_SIZE, 0);
58
+ await fd.close();
59
+ if (bytesRead > 0) {
60
+ sampleBytes = sample.subarray(0, bytesRead);
61
+ sniffedMime = sniffImageMime(sampleBytes);
62
+ }
63
+ }
64
+ const mime = sniffedMime || extMime || null;
65
+ const isImage = mime !== null && SUPPORTED_IMAGE_MIMES.has(mime);
66
+ if (isImage) {
67
+ // --- Image path: return as ImageContent, ignore startLine/endLine ---
68
+ if (fileStat.size > IMAGE_SIZE_LIMIT) {
69
+ return {
70
+ content: [{ type: "text", text: `Error: Image file is too large (${(fileStat.size / 1024 / 1024).toFixed(1)}MB). Maximum allowed size is ${IMAGE_SIZE_LIMIT / 1024 / 1024}MB.` }],
71
+ isError: true,
72
+ };
73
+ }
74
+ const imageBuffer = await fs.readFile(validatedPath);
75
+ const base64Data = imageBuffer.toString("base64");
76
+ return {
77
+ content: [
78
+ {
79
+ type: "image",
80
+ data: base64Data,
81
+ mimeType: mime,
82
+ },
83
+ {
84
+ type: "text",
85
+ text: `Image file: ${filePath} (${fileStat.size} bytes, ${mime})`,
86
+ },
87
+ ],
88
+ };
89
+ }
90
+ // --- Binary file detection: reject non-text files ---
91
+ if (isBinaryFile(validatedPath, sampleBytes)) {
92
+ return {
93
+ content: [{ type: "text", text: `Error: Cannot read binary file: ${filePath}. This file type is not supported for text reading.` }],
94
+ isError: true,
95
+ };
96
+ }
97
+ // --- Text path: original logic ---
45
98
  const fullContent = await fs.readFile(validatedPath, "utf-8");
46
99
  const lines = fullContent.split(/\r?\n/);
47
100
  let contentLines = lines;
@@ -206,6 +259,7 @@ export function registerFileTools(server, security) {
206
259
  let args = ["--color", "never", "--hidden"];
207
260
  if (search_type === "content") {
208
261
  args.push("--line-number", "--column", "--no-heading");
262
+ args.push("--max-count", "5");
209
263
  if (!caseSensitive)
210
264
  args.push("--ignore-case");
211
265
  if (wholeWord)
@@ -259,24 +313,93 @@ export function registerFileTools(server, security) {
259
313
  return line;
260
314
  });
261
315
  }
262
- if (lines.length > SEARCH_MAX_MATCHES) {
316
+ const wasTruncated = lines.length > SEARCH_MAX_MATCHES;
317
+ if (wasTruncated) {
263
318
  lines = lines.slice(0, SEARCH_MAX_MATCHES);
264
- lines.push("... [Search results truncated after 200 matches]");
319
+ }
320
+ // If truncated, try to get total match count for better feedback
321
+ let truncationNote = "";
322
+ if (wasTruncated) {
323
+ try {
324
+ const countArgs = ["--color", "never", "--hidden", "--count"];
325
+ if (!caseSensitive)
326
+ countArgs.push("--ignore-case");
327
+ if (wholeWord)
328
+ countArgs.push("--word-regexp");
329
+ countArgs.push("--glob", "!.git/**");
330
+ countArgs.push("--glob", "!node_modules/**");
331
+ if (includeGlob) {
332
+ countArgs.push("--glob", includeGlob);
333
+ }
334
+ if (excludeGlob) {
335
+ countArgs.push("--glob", `!${excludeGlob}`);
336
+ }
337
+ if (noIgnore) {
338
+ countArgs.push("--no-ignore");
339
+ }
340
+ countArgs.push("--");
341
+ countArgs.push(query);
342
+ countArgs.push(baseDir);
343
+ const countCmd = `"${rgPath}" ${countArgs.map(a => `"${a.replace(/"/g, '\\"')}"`).join(" ")}`;
344
+ const { stdout: countOut } = await execAsync(countCmd, { maxBuffer: 1024 * 1024 });
345
+ const countLines = countOut.trim().split("\n").filter((l) => l.length > 0);
346
+ const totalMatches = countLines.reduce((sum, line) => {
347
+ const parts = line.split(":");
348
+ return sum + parseInt(parts[parts.length - 1] || "0", 10);
349
+ }, 0);
350
+ const fileCount = countLines.length;
351
+ truncationNote = `\n... [Search results truncated. Showing ${SEARCH_MAX_MATCHES} of ${totalMatches} matches across ${fileCount} files. Use includeGlob/excludeGlob to narrow results.]`;
352
+ }
353
+ catch {
354
+ truncationNote = `\n... [Search results truncated at ${SEARCH_MAX_MATCHES} matches. More results exist — use includeGlob/excludeGlob to narrow your search.]`;
355
+ }
265
356
  }
266
357
  return {
267
- content: [{ type: "text", text: lines.join("\n") || "No matches found." }],
358
+ content: [{ type: "text", text: (lines.join("\n") || "No matches found.") + truncationNote }],
268
359
  };
269
360
  }
270
361
  catch (rgError) {
271
362
  if (rgError.code === 1) {
272
363
  return { content: [{ type: "text", text: "No matches found." }] };
273
364
  }
365
+ // Handle maxBuffer or other errors: use partial stdout if available
366
+ if (rgError.stdout && rgError.stdout.trim().length > 0) {
367
+ let partialLines = rgError.stdout.trim().split("\n").filter((l) => l.length > 0);
368
+ if (search_type === "path") {
369
+ partialLines = partialLines.map((line) => {
370
+ const relPath = path.relative(baseDir, line.trim());
371
+ return relPath.replace(/\\/g, '/');
372
+ });
373
+ }
374
+ else {
375
+ partialLines = partialLines.map((line) => {
376
+ const match = line.match(/^((?:[a-zA-Z]:)?[^:]+):(\d+):(\d+):(.*)$/);
377
+ if (match) {
378
+ const [_, absPath, lineNum, colNum, context] = match;
379
+ const relPath = path.relative(baseDir, absPath);
380
+ const truncated = truncateContext(context, parseInt(colNum, 10), SEARCH_MAX_COLUMNS);
381
+ return `${relPath.replace(/\\/g, '/')}:${lineNum} - ${truncated}`;
382
+ }
383
+ return line;
384
+ });
385
+ }
386
+ if (partialLines.length > SEARCH_MAX_MATCHES) {
387
+ partialLines = partialLines.slice(0, SEARCH_MAX_MATCHES);
388
+ }
389
+ const note = `\n... [Search results truncated at ${SEARCH_MAX_MATCHES} matches (ripgrep output exceeded buffer). More results exist — use includeGlob/excludeGlob to narrow your search.]`;
390
+ return {
391
+ content: [{ type: "text", text: (partialLines.join("\n") || "No matches found.") + note }],
392
+ };
393
+ }
394
+ // Other errors: fall through to JS fallback
395
+ console.error("[staff-mcp] ripgrep failed, falling back to JS:", rgError.message);
274
396
  }
275
397
  }
276
398
  // JS Fallback
277
399
  const results = [];
400
+ let jsHitLimit = false;
278
401
  function globToRegex(glob) {
279
- const escaped = glob.replace(/[.+^${()|[\]\\]/g, '\\$&');
402
+ const escaped = glob.replace(/[.+^${()|[\]\\*?]/g, '\\$&');
280
403
  const replaced = escaped.replace(/\\\*\\\*/g, '.*').replace(/\\\*/g, '[^/]*').replace(/\\\?/g, '.');
281
404
  return new RegExp(`^${replaced}$`);
282
405
  }
@@ -290,14 +413,20 @@ export function registerFileTools(server, security) {
290
413
  }
291
414
  const excludeRegex = excludeGlob ? globToRegex(excludeGlob) : null;
292
415
  async function searchRecursively(currentDir) {
416
+ if (results.length >= SEARCH_MAX_MATCHES)
417
+ return;
293
418
  const entries = await fs.readdir(currentDir, { withFileTypes: true });
294
419
  for (const entry of entries) {
420
+ if (results.length >= SEARCH_MAX_MATCHES)
421
+ return;
295
422
  const fullPath = path.join(currentDir, entry.name);
296
423
  const relPath = path.relative(baseDir, fullPath).replace(/\\/g, '/');
297
424
  if (entry.name === "node_modules" || entry.name === ".git")
298
425
  continue;
299
426
  if (entry.isDirectory()) {
300
427
  await searchRecursively(fullPath);
428
+ if (results.length >= SEARCH_MAX_MATCHES)
429
+ return;
301
430
  }
302
431
  else if (entry.isFile()) {
303
432
  if (search_type === "path") {
@@ -306,8 +435,10 @@ export function registerFileTools(server, security) {
306
435
  if (excludeRegex && excludeRegex.test(relPath))
307
436
  continue;
308
437
  results.push(relPath);
309
- if (results.length > SEARCH_MAX_MATCHES)
438
+ if (results.length >= SEARCH_MAX_MATCHES) {
439
+ jsHitLimit = true;
310
440
  return;
441
+ }
311
442
  }
312
443
  else {
313
444
  if (includeRegex && !includeRegex.test(relPath))
@@ -321,29 +452,27 @@ export function registerFileTools(server, security) {
321
452
  crlfDelay: Infinity,
322
453
  });
323
454
  let lineNum = 0;
324
- let hitLimit = false;
455
+ let shouldStop = false;
325
456
  for await (const line of rl) {
326
457
  lineNum++;
327
458
  if (line.includes("\0"))
328
459
  break; // Skip binary files
329
460
  searchRegex.lastIndex = 0;
330
- let match;
331
- while ((match = searchRegex.exec(line)) !== null) {
461
+ const match = searchRegex.exec(line);
462
+ if (match) {
332
463
  const colNum = match.index + 1; // 1-based
333
464
  const truncated = truncateContext(line, colNum, SEARCH_MAX_COLUMNS);
334
465
  results.push(`${relPath}:${lineNum} - ${truncated}`);
335
466
  if (results.length >= SEARCH_MAX_MATCHES) {
336
- results.push("... [Search results truncated after 200 matches]");
337
- hitLimit = true;
467
+ jsHitLimit = true;
468
+ shouldStop = true;
338
469
  break;
339
470
  }
340
471
  }
341
- if (hitLimit)
342
- break;
343
472
  }
344
473
  rl.close();
345
474
  fileStream.destroy();
346
- if (hitLimit)
475
+ if (shouldStop)
347
476
  return;
348
477
  }
349
478
  catch (e) { }
@@ -353,6 +482,9 @@ export function registerFileTools(server, security) {
353
482
  }
354
483
  await searchRecursively(baseDir);
355
484
  let outputText = results.join("\n") || "No matches found.";
485
+ if (jsHitLimit) {
486
+ outputText += `\n... [Search results truncated at ${SEARCH_MAX_MATCHES} matches. More results exist — use includeGlob/excludeGlob to narrow your search.]`;
487
+ }
356
488
  // Let the LLM know it fell back to JS search, so it can decide if it wants to install ripgrep.
357
489
  if (!rgPath) {
358
490
  const installCmd = process.platform === "win32" ? "scoop install ripgrep (or winget install ripgrep)" : "apt-get install ripgrep (or apk add ripgrep)";
@@ -1 +1 @@
1
- {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../../src/tools/file-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../../src/tools/file-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnO,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,MAAc;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,OAAO,CAAC;IAE7C,yEAAyE;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IACnD,+CAA+C;IAC/C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,OAAO,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,QAAyB;IAC5E,YAAY;IACZ,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,yDAAyD;YACzD,uDAAuD;YACvD,qEAAqE;QACvE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YAClF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACvF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SAC9F,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAEhE,iEAAiE;YACjE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAE7C,kEAAkE;YAClE,IAAI,WAAW,GAAkB,IAAI,CAAC;YACtC,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,WAAW,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;gBACnE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC5C,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,WAAW,IAAI,OAAO,IAAI,IAAI,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEjE,IAAI,OAAO,EAAE,CAAC;gBACZ,uEAAuE;gBACvE,IAAI,QAAQ,CAAC,IAAI,GAAG,gBAAgB,EAAE,CAAC;oBACrC,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,gBAAgB,GAAG,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;wBACjL,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAElD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,OAAgB;4BACtB,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE,IAAI;yBACf;wBACD;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,eAAe,QAAQ,KAAK,QAAQ,CAAC,IAAI,WAAW,IAAI,GAAG;yBAClE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,uDAAuD;YACvD,IAAI,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC7C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,QAAQ,qDAAqD,EAAE,CAAC;oBACnI,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEzC,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBACrE,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvC,MAAM,GAAG,iBAAiB,KAAK,GAAG,CAAC,IAAI,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;YACrE,CAAC;YAED,IAAI,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtC,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBACrC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,wCAAwC,CAAC;YAC7F,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,0FAA0F;QACvG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yFAAyF,CAAC;YACvH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;SACtE,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAE1D,IAAI,OAAO,GAAG,eAAe,CAAC;YAC9B,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAErC,6EAA6E;YAC7E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;gBAC1E,gEAAgE;gBAChE,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBACvE,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAM,CAAC;oBAC1B,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C;gBAC1E,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wHAAwH,EAAE,CAAC;wBAC3J,OAAO,EAAE,IAAI;qBACd,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sDAAsD,QAAQ,+FAA+F,EAAE,CAAC;oBAChM,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACjG,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAE3D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,QAAQ,EAAE,EAAE,CAAC;aACtE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,aAAa;IACb,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACvD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAChE,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAEpD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,QAAQ,EAAE,EAAE,CAAC;aAC1E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,cAAc;IACd,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SACzD,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAE/B,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,QAAQ,EAAE,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,WAAW;IACX,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACrF,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEzE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjC,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACrE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,sBAAsB,EAAE,CAAC;aACpE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC9E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mBAAmB;IACnB,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,WAAW,EAAE,6IAA6I;QAC1J,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACnF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iHAAiH,CAAC;YAC7I,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACrG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YAChH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;YAC1I,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;YAC5H,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sHAAsH,CAAC;SAClK,CAAC,CAAC,MAAM,EAAE;KACZ,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE;QACrH,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;YAErC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;oBAE5C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;wBACvD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,aAAa;4BAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC/C,IAAI,SAAS;4BAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,CAAC;oBAED,IAAI,QAAQ,EAAE,CAAC;wBACZ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC5B,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAEnD,IAAI,WAAW,EAAE,CAAC;wBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1B,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;oBAChC,CAAC;oBAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAEnB,MAAM,OAAO,GAAG,IAAI,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;wBAC1C,SAAS,EAAE,sBAAsB;qBAClC,CAAC,CAAC;oBAEH,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAEhE,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;wBAC3B,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;4BACpD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACrC,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;4BACrE,IAAI,KAAK,EAAE,CAAC;gCACT,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;gCACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCAChD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;gCACrF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,MAAM,SAAS,EAAE,CAAC;4BACrE,CAAC;4BACD,OAAO,IAAI,CAAC;wBACf,CAAC,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC;oBACvD,IAAI,YAAY,EAAE,CAAC;wBACjB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;oBAC7C,CAAC;oBAED,iEAAiE;oBACjE,IAAI,cAAc,GAAG,EAAE,CAAC;oBACxB,IAAI,YAAY,EAAE,CAAC;wBACjB,IAAI,CAAC;4BACH,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;4BAC9D,IAAI,CAAC,aAAa;gCAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BACpD,IAAI,SAAS;gCAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;4BACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;4BAC7C,IAAI,WAAW,EAAE,CAAC;gCAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;4BAAC,CAAC;4BAC3D,IAAI,WAAW,EAAE,CAAC;gCAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;4BAAC,CAAC;4BACjE,IAAI,QAAQ,EAAE,CAAC;gCAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAAC,CAAC;4BAChD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACtB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACxB,MAAM,QAAQ,GAAG,IAAI,MAAM,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC9F,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;4BACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACnF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;gCACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAC9B,OAAO,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;4BAC5D,CAAC,EAAE,CAAC,CAAC,CAAC;4BACN,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;4BACpC,cAAc,GAAG,4CAA4C,kBAAkB,OAAO,YAAY,mBAAmB,SAAS,yDAAyD,CAAC;wBAC1L,CAAC;wBAAC,MAAM,CAAC;4BACP,cAAc,GAAG,sCAAsC,kBAAkB,oFAAoF,CAAC;wBAChK,CAAC;oBACH,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,GAAG,cAAc,EAAE,CAAC;qBAC9F,CAAC;gBACJ,CAAC;gBAAC,OAAO,OAAY,EAAE,CAAC;oBACtB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;oBACpE,CAAC;oBACD,oEAAoE;oBACpE,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvD,IAAI,YAAY,GAAa,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACnG,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;4BAC3B,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;gCAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gCACpD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BACrC,CAAC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;gCAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gCACrE,IAAI,KAAK,EAAE,CAAC;oCACV,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;oCACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oCAChD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;oCACrF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,MAAM,SAAS,EAAE,CAAC;gCACpE,CAAC;gCACD,OAAO,IAAI,CAAC;4BACd,CAAC,CAAC,CAAC;wBACL,CAAC;wBACD,IAAI,YAAY,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;4BAC7C,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;wBAC3D,CAAC;wBACD,MAAM,IAAI,GAAG,sCAAsC,kBAAkB,qHAAqH,CAAC;wBAC3L,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,GAAG,IAAI,EAAE,CAAC;yBAC3F,CAAC;oBACJ,CAAC;oBACD,4CAA4C;oBAC5C,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;YAED,cAAc;YACd,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,SAAS,WAAW,CAAC,IAAY;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACpG,OAAO,IAAI,MAAM,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,WAAW,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpI,IAAI,YAAY,GAAkB,IAAI,CAAC;YACvC,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEnE,KAAK,UAAU,iBAAiB,CAAC,UAAkB;gBACjD,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB;oBAAE,OAAO;gBAEjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEtE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB;wBAAE,OAAO;oBAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAErE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;wBAAE,SAAS;oBAErE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;wBAClC,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB;4BAAE,OAAO;oBACnD,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC1B,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;4BAC1B,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gCAAE,SAAS;4BAC1D,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gCAAE,SAAS;4BACzD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACtB,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;gCACzC,UAAU,GAAG,IAAI,CAAC;gCAClB,OAAO;4BACT,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACL,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gCAAE,SAAS;4BAC1D,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gCAAE,SAAS;4BAEzD,IAAI,CAAC;gCACH,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gCACrE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;oCAClC,KAAK,EAAE,UAAU;oCACjB,SAAS,EAAE,QAAQ;iCACpB,CAAC,CAAC;gCAEH,IAAI,OAAO,GAAG,CAAC,CAAC;gCAChB,IAAI,UAAU,GAAG,KAAK,CAAC;gCAEvB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;oCAC5B,OAAO,EAAE,CAAC;oCACV,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wCAAE,MAAM,CAAC,oBAAoB;oCAEpD,WAAY,CAAC,SAAS,GAAG,CAAC,CAAC;oCAC3B,MAAM,KAAK,GAAG,WAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCACtC,IAAI,KAAK,EAAE,CAAC;wCACV,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU;wCAC1C,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;wCACpE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,OAAO,MAAM,SAAS,EAAE,CAAC,CAAC;wCAErD,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;4CACzC,UAAU,GAAG,IAAI,CAAC;4CAClB,UAAU,GAAG,IAAI,CAAC;4CAClB,MAAM;wCACR,CAAC;oCACH,CAAC;gCACH,CAAC;gCACD,EAAE,CAAC,KAAK,EAAE,CAAC;gCACX,UAAU,CAAC,OAAO,EAAE,CAAC;gCACrB,IAAI,UAAU;oCAAE,OAAO;4BACzB,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;wBACjB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;YAE3D,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,IAAI,sCAAsC,kBAAkB,oFAAoF,CAAC;YAC7J,CAAC;YAED,+FAA+F;YAC/F,IAAI,CAAC,MAAM,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,8CAA8C,CAAC;gBACvJ,UAAU,IAAI,uSAAuS,UAAU,GAAG,CAAC;YACtU,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AAEJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "staff-mcp",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ChineseAStar/staff-mcp.git"