sync-agents-settings 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.claude-plugin/plugin.json +11 -0
  2. package/README.md +168 -23
  3. package/bin/sync-agents.cjs +0 -0
  4. package/commands/report-schema.md +25 -0
  5. package/commands/sync-diff.md +32 -0
  6. package/commands/sync-doctor.md +43 -0
  7. package/commands/sync-instructions.md +50 -0
  8. package/commands/sync-list.md +19 -0
  9. package/commands/sync-reconcile.md +41 -0
  10. package/commands/sync-validate.md +42 -0
  11. package/commands/sync.md +44 -0
  12. package/dist/backup.d.ts +1 -1
  13. package/dist/backup.js +4 -1
  14. package/dist/backup.js.map +1 -1
  15. package/dist/cli.js +542 -55
  16. package/dist/cli.js.map +1 -1
  17. package/dist/diff.d.ts +6 -0
  18. package/dist/diff.js +7 -0
  19. package/dist/diff.js.map +1 -0
  20. package/dist/doctor.d.ts +23 -0
  21. package/dist/doctor.js +140 -0
  22. package/dist/doctor.js.map +1 -0
  23. package/dist/fix.d.ts +19 -0
  24. package/dist/fix.js +71 -0
  25. package/dist/fix.js.map +1 -0
  26. package/dist/instructions.d.ts +8 -1
  27. package/dist/instructions.js +370 -11
  28. package/dist/instructions.js.map +1 -1
  29. package/dist/oauth.d.ts +2 -0
  30. package/dist/oauth.js +7 -0
  31. package/dist/oauth.js.map +1 -0
  32. package/dist/paths.d.ts +4 -0
  33. package/dist/paths.js +5 -0
  34. package/dist/paths.js.map +1 -1
  35. package/dist/reconcile.d.ts +27 -0
  36. package/dist/reconcile.js +122 -0
  37. package/dist/reconcile.js.map +1 -0
  38. package/dist/report-parser.d.ts +81 -0
  39. package/dist/report-parser.js +129 -0
  40. package/dist/report-parser.js.map +1 -0
  41. package/dist/report-schema-renderer.d.ts +2 -0
  42. package/dist/report-schema-renderer.js +129 -0
  43. package/dist/report-schema-renderer.js.map +1 -0
  44. package/dist/report-schema-sync.d.ts +9 -0
  45. package/dist/report-schema-sync.js +28 -0
  46. package/dist/report-schema-sync.js.map +1 -0
  47. package/dist/report.d.ts +47 -0
  48. package/dist/report.js +55 -0
  49. package/dist/report.js.map +1 -0
  50. package/dist/types.d.ts +1 -1
  51. package/dist/validation.d.ts +18 -0
  52. package/dist/validation.js +62 -0
  53. package/dist/validation.js.map +1 -0
  54. package/dist/writers/codex.js +12 -2
  55. package/dist/writers/codex.js.map +1 -1
  56. package/dist/writers/kimi.d.ts +7 -0
  57. package/dist/writers/kimi.js +25 -0
  58. package/dist/writers/kimi.js.map +1 -0
  59. package/package.json +7 -3
  60. package/skills/sync-awareness/SKILL.md +37 -0
@@ -1,7 +1,12 @@
1
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
2
- import { dirname, resolve } from "node:path";
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, realpathSync, } from "node:fs";
2
+ import { basename, dirname, resolve, relative } from "node:path";
3
+ import { homedir } from "node:os";
3
4
  import { PATHS } from "./paths.js";
4
5
  import { askConflictAction } from "./prompt.js";
6
+ const STANDALONE_IMPORT_LINE = /^@(\S+)\s*$/;
7
+ const FRONTMATTER_BLOCK = /^---\n([\s\S]*?)\n---\n?/;
8
+ const MAX_IMPORT_DEPTH = 20;
9
+ const MAX_IMPORT_FILES = 200;
5
10
  /**
6
11
  * Strip existing YAML frontmatter (--- ... ---) from content.
7
12
  * Returns the body without the frontmatter block.
@@ -28,6 +33,70 @@ export function wrapForCursor(content) {
28
33
  return ('---\ndescription: "Project instructions synced from CLAUDE.md"\nalwaysApply: true\n---\n\n' +
29
34
  stripExistingFrontmatter(content));
30
35
  }
36
+ function normalizeYamlScalar(value) {
37
+ const trimmed = value.trim();
38
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
39
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
40
+ return trimmed.slice(1, -1);
41
+ }
42
+ return trimmed;
43
+ }
44
+ function upsertReadListEntry(configBody, entry) {
45
+ const lines = configBody.split("\n");
46
+ const blockIndex = lines.findIndex((line) => /^(\s*)read:\s*$/.test(line));
47
+ if (blockIndex >= 0) {
48
+ const baseIndent = lines[blockIndex]?.match(/^(\s*)read:\s*$/)?.[1] ?? "";
49
+ let end = blockIndex + 1;
50
+ while (end < lines.length) {
51
+ const current = lines[end] ?? "";
52
+ if (current.trim() === "") {
53
+ end += 1;
54
+ continue;
55
+ }
56
+ const leading = current.match(/^(\s*)/)?.[1] ?? "";
57
+ if (leading.length <= baseIndent.length) {
58
+ break;
59
+ }
60
+ end += 1;
61
+ }
62
+ const hasEntry = lines
63
+ .slice(blockIndex + 1, end)
64
+ .some((line) => normalizeYamlScalar(line.trim().replace(/^-\s*/, "")) === entry);
65
+ if (hasEntry)
66
+ return configBody;
67
+ lines.splice(end, 0, `${baseIndent} - ${entry}`);
68
+ return lines.join("\n");
69
+ }
70
+ const inlineIndex = lines.findIndex((line) => /^(\s*)read:\s*\[(.*)\]\s*$/.test(line));
71
+ if (inlineIndex >= 0) {
72
+ const match = lines[inlineIndex]?.match(/^(\s*)read:\s*\[(.*)\]\s*$/);
73
+ const baseIndent = match?.[1] ?? "";
74
+ const body = match?.[2] ?? "";
75
+ const existing = body
76
+ .split(",")
77
+ .map((part) => normalizeYamlScalar(part))
78
+ .filter(Boolean);
79
+ if (existing.includes(entry))
80
+ return configBody;
81
+ const merged = [...existing, entry];
82
+ const replacement = [`${baseIndent}read:`, ...merged.map((item) => `${baseIndent} - ${item}`)];
83
+ lines.splice(inlineIndex, 1, ...replacement);
84
+ return lines.join("\n");
85
+ }
86
+ if (configBody.trim() === "") {
87
+ return `read:\n - ${entry}\n`;
88
+ }
89
+ const suffix = configBody.endsWith("\n") ? "" : "\n";
90
+ return `${configBody}${suffix}\nread:\n - ${entry}\n`;
91
+ }
92
+ function ensureAiderReadEntry(configPath, rulePath, dryRun) {
93
+ const current = existsSync(configPath) ? readFileSync(configPath, "utf-8") : "";
94
+ const updated = upsertReadListEntry(current, rulePath);
95
+ if (updated === current || dryRun)
96
+ return;
97
+ mkdirSync(dirname(configPath), { recursive: true });
98
+ writeFileSync(configPath, updated);
99
+ }
31
100
  /**
32
101
  * Build source→target pairs for global instruction sync.
33
102
  * Note: Cursor global rules are stored in SQLite — not supported.
@@ -64,6 +133,23 @@ export function getGlobalSyncPairs(targets) {
64
133
  transform: wrapForKiro,
65
134
  });
66
135
  }
136
+ else if (target === "kimi") {
137
+ pairs.push({
138
+ source: PATHS.claudeMdGlobal,
139
+ target: PATHS.kimiMdGlobal,
140
+ targetLabel: "Kimi CLI (~/.kimi/AGENTS.md)",
141
+ });
142
+ }
143
+ else if (target === "aider") {
144
+ pairs.push({
145
+ source: PATHS.claudeMdGlobal,
146
+ target: PATHS.aiderConventionsGlobal,
147
+ targetLabel: "Aider CLI (~/.aider/CONVENTIONS.md)",
148
+ postWrite: ({ dryRun }) => {
149
+ ensureAiderReadEntry(PATHS.aiderConfigGlobal, PATHS.aiderConventionsGlobal, dryRun);
150
+ },
151
+ });
152
+ }
67
153
  // Cursor global rules are stored in SQLite, not supported for global sync
68
154
  }
69
155
  return pairs;
@@ -84,7 +170,9 @@ export function getUnsupportedGlobalTargets(targets) {
84
170
  */
85
171
  export function getLocalSyncPairs(targets, cwd) {
86
172
  const pairs = [];
87
- const source = resolve(cwd, "CLAUDE.md");
173
+ const modernSource = resolve(cwd, ".claude", "CLAUDE.md");
174
+ const legacySource = resolve(cwd, "CLAUDE.md");
175
+ const source = existsSync(modernSource) ? modernSource : legacySource;
88
176
  // Track targets that share the same output path to avoid duplicate writes
89
177
  const seenPaths = new Set();
90
178
  for (const target of targets) {
@@ -108,6 +196,14 @@ export function getLocalSyncPairs(targets, cwd) {
108
196
  seenPaths.add(targetPath);
109
197
  }
110
198
  }
199
+ else if (target === "kimi") {
200
+ // Kimi reads ./AGENTS.md — shared path with Codex/OpenCode
201
+ const targetPath = resolve(cwd, "AGENTS.md");
202
+ if (!seenPaths.has(targetPath)) {
203
+ pairs.push({ source, target: targetPath, targetLabel: "Kimi CLI (./AGENTS.md)" });
204
+ seenPaths.add(targetPath);
205
+ }
206
+ }
111
207
  else if (target === "kiro") {
112
208
  pairs.push({
113
209
  source,
@@ -124,6 +220,17 @@ export function getLocalSyncPairs(targets, cwd) {
124
220
  transform: wrapForCursor,
125
221
  });
126
222
  }
223
+ else if (target === "aider") {
224
+ const conventionsPath = resolve(cwd, ".aider", "CONVENTIONS.md");
225
+ pairs.push({
226
+ source,
227
+ target: conventionsPath,
228
+ targetLabel: "Aider CLI (.aider/CONVENTIONS.md)",
229
+ postWrite: ({ dryRun }) => {
230
+ ensureAiderReadEntry(resolve(cwd, ".aider.conf.yml"), ".aider/CONVENTIONS.md", dryRun);
231
+ },
232
+ });
233
+ }
127
234
  }
128
235
  return pairs;
129
236
  }
@@ -138,30 +245,280 @@ export function filterClaudeSpecificSyntax(content) {
138
245
  .filter((line) => {
139
246
  const trimmed = line.trim();
140
247
  // Remove standalone @import lines: lines that are just "@path/to/file.md"
141
- if (/^@[\w.~\-/\\]+\.md\s*$/.test(trimmed)) {
248
+ if (STANDALONE_IMPORT_LINE.test(trimmed)) {
142
249
  return false;
143
250
  }
144
251
  return true;
145
252
  })
146
253
  .join("\n");
147
254
  }
255
+ function toRealPath(path) {
256
+ try {
257
+ return realpathSync(path);
258
+ }
259
+ catch {
260
+ return resolve(path);
261
+ }
262
+ }
263
+ function isPathInside(baseDir, candidatePath) {
264
+ const base = toRealPath(baseDir);
265
+ const candidate = toRealPath(candidatePath);
266
+ return candidate === base || candidate.startsWith(base + "/");
267
+ }
268
+ function resolveImportPath(importPath, currentFile, projectRoot, allowUnsafeImports) {
269
+ let resolved;
270
+ if (importPath.startsWith("~/")) {
271
+ resolved = resolve(homedir(), importPath.slice(2));
272
+ }
273
+ else if (importPath.startsWith("/")) {
274
+ resolved = resolve(importPath);
275
+ }
276
+ else {
277
+ resolved = resolve(dirname(currentFile), importPath);
278
+ }
279
+ if (!allowUnsafeImports && !isPathInside(projectRoot, resolved)) {
280
+ return null;
281
+ }
282
+ return resolved;
283
+ }
284
+ function expandStandaloneImports(filePath, ancestry, importedFiles, options) {
285
+ if (options.depth > MAX_IMPORT_DEPTH || importedFiles.size > MAX_IMPORT_FILES) {
286
+ return "";
287
+ }
288
+ const raw = readFileSync(filePath, "utf-8");
289
+ const out = [];
290
+ for (const line of raw.split("\n")) {
291
+ const trimmed = line.trim();
292
+ const match = trimmed.match(STANDALONE_IMPORT_LINE);
293
+ if (!match) {
294
+ out.push(line);
295
+ continue;
296
+ }
297
+ const importPath = resolveImportPath(match[1], filePath, options.projectRoot, options.allowUnsafeImports);
298
+ if (!importPath || !existsSync(importPath)) {
299
+ continue;
300
+ }
301
+ const canonicalImportPath = toRealPath(importPath);
302
+ if (ancestry.has(canonicalImportPath)) {
303
+ continue;
304
+ }
305
+ importedFiles.add(canonicalImportPath);
306
+ const nextAncestry = new Set(ancestry);
307
+ nextAncestry.add(canonicalImportPath);
308
+ const imported = expandStandaloneImports(importPath, nextAncestry, importedFiles, {
309
+ ...options,
310
+ depth: options.depth + 1,
311
+ }).trim();
312
+ if (imported) {
313
+ out.push(imported);
314
+ }
315
+ }
316
+ return out.join("\n");
317
+ }
318
+ function getClaudeRulesDir(sourcePath) {
319
+ const sourceDir = dirname(sourcePath);
320
+ if (basename(sourceDir) === ".claude") {
321
+ return resolve(sourceDir, "rules");
322
+ }
323
+ return resolve(sourceDir, ".claude", "rules");
324
+ }
325
+ function getProjectRootFromSource(sourcePath) {
326
+ const sourceDir = dirname(sourcePath);
327
+ if (basename(sourceDir) === ".claude") {
328
+ return dirname(sourceDir);
329
+ }
330
+ return sourceDir;
331
+ }
332
+ function normalizePathSlashes(path) {
333
+ return path.replace(/\\/g, "/");
334
+ }
335
+ function globToRegex(pattern) {
336
+ const normalized = normalizePathSlashes(pattern).replace(/^\.\//, "");
337
+ let out = "^";
338
+ for (let i = 0; i < normalized.length; i += 1) {
339
+ const ch = normalized[i];
340
+ const next = normalized[i + 1];
341
+ if (ch === "*" && next === "*") {
342
+ out += ".*";
343
+ i += 1;
344
+ continue;
345
+ }
346
+ if (ch === "*") {
347
+ out += "[^/]*";
348
+ continue;
349
+ }
350
+ if (ch === "?") {
351
+ out += "[^/]";
352
+ continue;
353
+ }
354
+ if (/[[\]{}()+.^$|\\]/.test(ch)) {
355
+ out += `\\${ch}`;
356
+ continue;
357
+ }
358
+ out += ch;
359
+ }
360
+ out += "$";
361
+ return new RegExp(out);
362
+ }
363
+ function parsePathsListValue(value) {
364
+ const trimmed = value.trim();
365
+ if (!trimmed)
366
+ return [];
367
+ if (trimmed.startsWith("[") && trimmed.endsWith("]")) {
368
+ return trimmed
369
+ .slice(1, -1)
370
+ .split(",")
371
+ .map((item) => item.trim().replace(/^['"]|['"]$/g, ""))
372
+ .filter(Boolean);
373
+ }
374
+ return [trimmed.replace(/^['"]|['"]$/g, "")];
375
+ }
376
+ function parseFrontmatterPaths(content) {
377
+ const matched = content.match(FRONTMATTER_BLOCK);
378
+ if (!matched)
379
+ return null;
380
+ const fm = matched[1].split("\n");
381
+ const paths = [];
382
+ for (let i = 0; i < fm.length; i += 1) {
383
+ const line = fm[i].trim();
384
+ if (!line.startsWith("paths:"))
385
+ continue;
386
+ const rest = line.slice("paths:".length).trim();
387
+ if (rest) {
388
+ paths.push(...parsePathsListValue(rest));
389
+ continue;
390
+ }
391
+ for (let j = i + 1; j < fm.length; j += 1) {
392
+ const item = fm[j].trim();
393
+ if (!item.startsWith("- "))
394
+ break;
395
+ const value = item
396
+ .slice(2)
397
+ .trim()
398
+ .replace(/^['"]|['"]$/g, "");
399
+ if (value)
400
+ paths.push(value);
401
+ i = j;
402
+ }
403
+ }
404
+ return paths.length > 0 ? paths : null;
405
+ }
406
+ function matchesAnyPathPattern(patterns, relativeFiles) {
407
+ const regexes = patterns.map(globToRegex);
408
+ return relativeFiles.some((file) => regexes.some((re) => re.test(normalizePathSlashes(file))));
409
+ }
410
+ function listMarkdownFilesRecursively(dirPath) {
411
+ const files = [];
412
+ let entries;
413
+ try {
414
+ entries = readdirSync(dirPath, { withFileTypes: true });
415
+ }
416
+ catch {
417
+ return files;
418
+ }
419
+ if (!Array.isArray(entries)) {
420
+ return files;
421
+ }
422
+ for (const entry of entries) {
423
+ const fullPath = resolve(dirPath, entry.name);
424
+ if (entry.isDirectory()) {
425
+ files.push(...listMarkdownFilesRecursively(fullPath));
426
+ continue;
427
+ }
428
+ if (entry.isFile() && entry.name.endsWith(".md")) {
429
+ files.push(fullPath);
430
+ }
431
+ }
432
+ return files.sort();
433
+ }
434
+ function listProjectFilesRecursively(rootPath) {
435
+ const results = [];
436
+ function walk(current) {
437
+ let entries;
438
+ try {
439
+ entries = readdirSync(current, { withFileTypes: true });
440
+ }
441
+ catch {
442
+ return;
443
+ }
444
+ if (!Array.isArray(entries))
445
+ return;
446
+ for (const entry of entries) {
447
+ const full = resolve(current, entry.name);
448
+ if (entry.isDirectory()) {
449
+ if (entry.name === ".git" || entry.name === "node_modules")
450
+ continue;
451
+ walk(full);
452
+ continue;
453
+ }
454
+ if (entry.isFile()) {
455
+ results.push(relative(rootPath, full));
456
+ }
457
+ }
458
+ }
459
+ walk(rootPath);
460
+ return results;
461
+ }
462
+ function loadSourceContentWithRules(sourcePath, importMode, allowUnsafeImports) {
463
+ const parts = [];
464
+ const importedFiles = new Set();
465
+ const projectRoot = getProjectRootFromSource(sourcePath);
466
+ const shouldFilterByPaths = resolve(sourcePath) !== resolve(PATHS.claudeMdGlobal);
467
+ const projectFiles = shouldFilterByPaths ? listProjectFilesRecursively(projectRoot) : [];
468
+ if (existsSync(sourcePath)) {
469
+ const sourceBody = importMode === "inline"
470
+ ? expandStandaloneImports(sourcePath, new Set([toRealPath(sourcePath)]), importedFiles, {
471
+ projectRoot,
472
+ allowUnsafeImports,
473
+ depth: 0,
474
+ }).trim()
475
+ : readFileSync(sourcePath, "utf-8").trim();
476
+ if (sourceBody) {
477
+ parts.push(sourceBody);
478
+ }
479
+ }
480
+ const rulesDir = getClaudeRulesDir(sourcePath);
481
+ if (existsSync(rulesDir)) {
482
+ const ruleFiles = listMarkdownFilesRecursively(rulesDir).filter((ruleFile) => ruleFile !== sourcePath && !importedFiles.has(ruleFile));
483
+ for (const ruleFile of ruleFiles) {
484
+ const ruleBody = importMode === "inline"
485
+ ? expandStandaloneImports(ruleFile, new Set([toRealPath(ruleFile)]), importedFiles, {
486
+ projectRoot,
487
+ allowUnsafeImports,
488
+ depth: 0,
489
+ }).trim()
490
+ : readFileSync(ruleFile, "utf-8").trim();
491
+ if (!ruleBody)
492
+ continue;
493
+ const pathPatterns = parseFrontmatterPaths(ruleBody);
494
+ if (shouldFilterByPaths &&
495
+ pathPatterns &&
496
+ pathPatterns.length > 0 &&
497
+ !matchesAnyPathPattern(pathPatterns, projectFiles)) {
498
+ continue;
499
+ }
500
+ const ruleLabel = relative(rulesDir, ruleFile);
501
+ parts.push(`<!-- Synced extra rule: ${ruleLabel} -->\n\n${stripExistingFrontmatter(ruleBody).trim()}`);
502
+ }
503
+ }
504
+ if (parts.length === 0) {
505
+ return null;
506
+ }
507
+ return filterClaudeSpecificSyntax(parts.join("\n\n"));
508
+ }
148
509
  const APPEND_SEPARATOR = "\n\n---\n\n<!-- Synced from CLAUDE.md by sync-agents-settings -->\n\n";
149
510
  /**
150
511
  * Sync instruction files from CLAUDE.md to target agent files.
151
512
  */
152
513
  export async function syncInstructions(pairs, options) {
153
514
  const result = { synced: [], skipped: [], appended: [] };
515
+ const importMode = options.importMode ?? "inline";
516
+ const allowUnsafeImports = options.allowUnsafeImports ?? false;
154
517
  // Cache filtered source content to avoid re-reading the same file per target
155
518
  const sourceCache = new Map();
156
519
  for (const pair of pairs) {
157
520
  if (!sourceCache.has(pair.source)) {
158
- if (!existsSync(pair.source)) {
159
- sourceCache.set(pair.source, null);
160
- }
161
- else {
162
- const raw = readFileSync(pair.source, "utf-8");
163
- sourceCache.set(pair.source, raw.trim() ? filterClaudeSpecificSyntax(raw) : null);
164
- }
521
+ sourceCache.set(pair.source, loadSourceContentWithRules(pair.source, importMode, allowUnsafeImports));
165
522
  }
166
523
  const filtered = sourceCache.get(pair.source);
167
524
  if (filtered === null || filtered === undefined) {
@@ -194,6 +551,7 @@ export async function syncInstructions(pairs, options) {
194
551
  writeFileSync(pair.target, content + "\n");
195
552
  result.synced.push(pair.targetLabel);
196
553
  }
554
+ pair.postWrite?.({ dryRun: false });
197
555
  }
198
556
  else {
199
557
  if (action === "append") {
@@ -202,6 +560,7 @@ export async function syncInstructions(pairs, options) {
202
560
  else {
203
561
  result.synced.push(pair.targetLabel);
204
562
  }
563
+ pair.postWrite?.({ dryRun: true });
205
564
  }
206
565
  }
207
566
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AAsBrE,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAC7C,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AACrD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;GAGG;AACH,SAAS,wBAAwB,CAAC,OAAe;IAC/C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK;iBACT,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjB,IAAI,CAAC,IAAI,CAAC;iBACV,SAAS,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,iCAAiC,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC/E,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,CACL,4FAA4F;QAC5F,wBAAwB,CAAC,OAAO,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IACE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAClD,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB,EAAE,KAAa;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1B,GAAG,IAAI,CAAC,CAAC;gBACT,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM;YACR,CAAC;YACD,GAAG,IAAI,CAAC,CAAC;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK;aACnB,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC;aAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QACnF,IAAI,QAAQ;YAAE,OAAO,UAAU,CAAC;QAEhC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,UAAU,OAAO,KAAK,EAAE,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI;aAClB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;aACxC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QAChD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAChG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,cAAc,KAAK,IAAI,CAAC;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,OAAO,GAAG,UAAU,GAAG,MAAM,gBAAgB,KAAK,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAE,QAAgB,EAAE,MAAe;IACjF,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,OAAO,IAAI,MAAM;QAAE,OAAO;IAC1C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC9D,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,WAAW,EAAE,kCAAkC;aAChD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,MAAM,EAAE,KAAK,CAAC,aAAa;gBAC3B,WAAW,EAAE,gCAAgC;aAC9C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,MAAM,EAAE,KAAK,CAAC,gBAAgB;gBAC9B,WAAW,EAAE,yCAAyC;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,MAAM,EAAE,KAAK,CAAC,kBAAkB;gBAChC,WAAW,EAAE,oDAAoD;gBACjE,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,MAAM,EAAE,KAAK,CAAC,YAAY;gBAC1B,WAAW,EAAE,8BAA8B;aAC5C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,KAAK,CAAC,cAAc;gBAC5B,MAAM,EAAE,KAAK,CAAC,sBAAsB;gBACpC,WAAW,EAAE,qCAAqC;gBAClD,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;oBACxB,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;gBACtF,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QACD,0EAA0E;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAA6B;IACvE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,WAAW,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA6B,EAAE,GAAW;IAC1E,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IACtE,0EAA0E;IAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACpF,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBACnF,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,yEAAyE;YACzE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAClF,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,2DAA2D;YAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAClF,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM;gBACN,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,wBAAwB,CAAC;gBACnE,WAAW,EAAE,kDAAkD;gBAC/D,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM;gBACN,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,yBAAyB,CAAC;gBACnE,WAAW,EAAE,gDAAgD;gBAC7D,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM;gBACN,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,mCAAmC;gBAChD,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;oBACxB,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;gBACzF,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,OAAO;SACX,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,aAAqB;IAC1D,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC5C,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,WAAmB,EACnB,WAAmB,EACnB,kBAA2B;IAE3B,IAAI,QAAgB,CAAC;IACrB,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAAgB,EAChB,QAAqB,EACrB,aAA0B,EAC1B,OAIC;IAED,IAAI,OAAO,CAAC,KAAK,GAAG,gBAAgB,IAAI,aAAa,CAAC,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAC9E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAClC,KAAK,CAAC,CAAC,CAAC,EACR,QAAQ,EACR,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QACF,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,MAAM,mBAAmB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE;YAChF,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;SACzB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,GAAG,IAAI,IAAI,CAAC;YACZ,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,IAAI,OAAO,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,IAAI,MAAM,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,GAAG,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,GAAG,IAAI,GAAG,CAAC;IACX,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,OAAO;aACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;aACtD,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM;YAClC,MAAM,KAAK,GAAG,IAAI;iBACf,KAAK,CAAC,CAAC,CAAC;iBACR,IAAI,EAAE;iBACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC,GAAG,CAAC,CAAC;QACR,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAkB,EAAE,aAAuB;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAA8E,CAAC;IACnF,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAInD,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAgB;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,SAAS,IAAI,CAAC,OAAe;QAC3B,IAAI,OAA8E,CAAC;QACnF,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAInD,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO;QAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBACrE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,0BAA0B,CACjC,UAAkB,EAClB,UAAsB,EACtB,kBAA2B;IAE3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,UAAU,GACd,UAAU,KAAK,QAAQ;YACrB,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE;gBACpF,WAAW;gBACX,kBAAkB;gBAClB,KAAK,EAAE,CAAC;aACT,CAAC,CAAC,IAAI,EAAE;YACX,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC7D,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CACtE,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GACZ,UAAU,KAAK,QAAQ;gBACrB,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE;oBAChF,WAAW;oBACX,kBAAkB;oBAClB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC,IAAI,EAAE;gBACX,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACrD,IACE,mBAAmB;gBACnB,YAAY;gBACZ,YAAY,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,qBAAqB,CAAC,YAAY,EAAE,YAAY,CAAC,EAClD,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CACR,2BAA2B,SAAS,WAAW,wBAAwB,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,gBAAgB,GAAG,uEAAuE,CAAC;AAQjG;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAiB,EACjB,OAKC;IAED,MAAM,MAAM,GAA2B,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC;IAClD,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;IAC/D,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,WAAW,CAAC,GAAG,CACb,IAAI,CAAC,MAAM,EACX,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACjF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAErE,IAAI,MAAM,GAAmB,WAAW,CAAC;QAEzC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,oBAAoB,CAAC,CAAC;gBAC7D,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAErD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,gBAAgB,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;gBACzE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { UnifiedMcpServer } from "./types.js";
2
+ export declare function isOAuthOnlyServer(server: UnifiedMcpServer): boolean;
package/dist/oauth.js ADDED
@@ -0,0 +1,7 @@
1
+ function hasText(value) {
2
+ return typeof value === "string" && value.trim().length > 0;
3
+ }
4
+ export function isOAuthOnlyServer(server) {
5
+ return Boolean(server.oauth && !hasText(server.command) && !hasText(server.url));
6
+ }
7
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAEA,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAwB;IACxD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC"}
package/dist/paths.d.ts CHANGED
@@ -7,11 +7,15 @@ export declare const PATHS: {
7
7
  readonly codexConfig: string;
8
8
  readonly openCodeConfig: string;
9
9
  readonly kiroMcpConfig: string;
10
+ readonly kimiMcpConfig: string;
10
11
  readonly cursorMcpConfig: string;
11
12
  readonly claudeMdGlobal: string;
12
13
  readonly geminiMdGlobal: string;
13
14
  readonly codexMdGlobal: string;
14
15
  readonly openCodeMdGlobal: string;
15
16
  readonly kiroSteeringGlobal: string;
17
+ readonly kimiMdGlobal: string;
18
+ readonly aiderConventionsGlobal: string;
19
+ readonly aiderConfigGlobal: string;
16
20
  readonly backupDir: string;
17
21
  };
package/dist/paths.js CHANGED
@@ -15,6 +15,8 @@ export const PATHS = {
15
15
  openCodeConfig: join(HOME, ".config", "opencode", "opencode.json"),
16
16
  // Kiro CLI
17
17
  kiroMcpConfig: join(HOME, ".kiro", "settings", "mcp.json"),
18
+ // Kimi CLI
19
+ kimiMcpConfig: join(HOME, ".kimi", "mcp.json"),
18
20
  // Cursor
19
21
  cursorMcpConfig: join(HOME, ".cursor", "mcp.json"),
20
22
  // Instructions (global)
@@ -23,6 +25,9 @@ export const PATHS = {
23
25
  codexMdGlobal: join(HOME, ".codex", "AGENTS.md"),
24
26
  openCodeMdGlobal: join(HOME, ".config", "opencode", "AGENTS.md"),
25
27
  kiroSteeringGlobal: join(HOME, ".kiro", "steering", "claude-instructions.md"),
28
+ kimiMdGlobal: join(HOME, ".kimi", "AGENTS.md"),
29
+ aiderConventionsGlobal: join(HOME, ".aider", "CONVENTIONS.md"),
30
+ aiderConfigGlobal: join(HOME, ".aider.conf.yml"),
26
31
  // Backups
27
32
  backupDir: join(HOME, ".sync-agents-backup"),
28
33
  };
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;IACtC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IACtD,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAE5D,aAAa;IACb,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IAEtD,YAAY;IACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;IAEhD,WAAW;IACX,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;IAElE,WAAW;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;IAE1D,SAAS;IACT,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;IAElD,wBAAwB;IACxB,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;IAClD,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;IAClD,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IAChD,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;IAChE,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,wBAAwB,CAAC;IAE7E,UAAU;IACV,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;IACtC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IACtD,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAE5D,aAAa;IACb,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IAEtD,YAAY;IACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;IAEhD,WAAW;IACX,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;IAElE,WAAW;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;IAE1D,WAAW;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;IAE9C,SAAS;IACT,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;IAElD,wBAAwB;IACxB,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;IAClD,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;IAClD,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IAChD,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;IAChE,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,wBAAwB,CAAC;IAC7E,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;IAC9C,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IAC9D,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAEhD,UAAU;IACV,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;CACpC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type DoctorReport } from "./doctor.js";
2
+ import { type ValidationIssue, type ValidationReport } from "./validation.js";
3
+ import type { SyncTarget } from "./types.js";
4
+ export interface ReconcileOptions {
5
+ dryRun?: boolean;
6
+ skipBackup?: boolean;
7
+ skipOAuth?: boolean;
8
+ codexHome?: string;
9
+ kimiHome?: string;
10
+ }
11
+ type ReconcileStatus = "validation_failed" | "doctor_failed" | "noop" | "reconciled";
12
+ export interface ReconcileTargetResult {
13
+ target: SyncTarget;
14
+ missing: string[];
15
+ added: string[];
16
+ skipped: string[];
17
+ }
18
+ export interface ReconcileResult {
19
+ status: ReconcileStatus;
20
+ validation: ValidationReport;
21
+ doctor?: DoctorReport;
22
+ syncResults: ReconcileTargetResult[];
23
+ backupDir?: string;
24
+ }
25
+ export declare function reconcileTargets(targets: SyncTarget[], options?: ReconcileOptions): ReconcileResult;
26
+ export declare function groupValidationByTarget(issues: ValidationIssue[], targets: SyncTarget[]): Record<SyncTarget, ValidationIssue[]>;
27
+ export {};