agent-skills-cli 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +85 -13
  2. package/dist/__tests__/git-auth.test.d.ts +11 -0
  3. package/dist/__tests__/git-auth.test.d.ts.map +1 -0
  4. package/dist/__tests__/git-auth.test.js +160 -0
  5. package/dist/__tests__/git-auth.test.js.map +1 -0
  6. package/dist/__tests__/skill-lock.test.d.ts +8 -0
  7. package/dist/__tests__/skill-lock.test.d.ts.map +1 -0
  8. package/dist/__tests__/skill-lock.test.js +104 -0
  9. package/dist/__tests__/skill-lock.test.js.map +1 -0
  10. package/dist/__tests__/skillsrc.test.d.ts +11 -0
  11. package/dist/__tests__/skillsrc.test.d.ts.map +1 -0
  12. package/dist/__tests__/skillsrc.test.js +185 -0
  13. package/dist/__tests__/skillsrc.test.js.map +1 -0
  14. package/dist/__tests__/source-parser.test.d.ts +16 -0
  15. package/dist/__tests__/source-parser.test.d.ts.map +1 -0
  16. package/dist/__tests__/source-parser.test.js +231 -0
  17. package/dist/__tests__/source-parser.test.js.map +1 -0
  18. package/dist/cli/commands/install.d.ts +8 -0
  19. package/dist/cli/commands/install.d.ts.map +1 -1
  20. package/dist/cli/commands/install.js +203 -90
  21. package/dist/cli/commands/install.js.map +1 -1
  22. package/dist/core/git-auth.d.ts +74 -0
  23. package/dist/core/git-auth.d.ts.map +1 -0
  24. package/dist/core/git-auth.js +299 -0
  25. package/dist/core/git-auth.js.map +1 -0
  26. package/dist/core/index.d.ts +4 -0
  27. package/dist/core/index.d.ts.map +1 -1
  28. package/dist/core/index.js +5 -1
  29. package/dist/core/index.js.map +1 -1
  30. package/dist/core/skill-lock.d.ts +1 -1
  31. package/dist/core/skill-lock.d.ts.map +1 -1
  32. package/dist/core/skillsrc.d.ts +65 -0
  33. package/dist/core/skillsrc.d.ts.map +1 -0
  34. package/dist/core/skillsrc.js +161 -0
  35. package/dist/core/skillsrc.js.map +1 -0
  36. package/dist/core/source-parser.d.ts +9 -1
  37. package/dist/core/source-parser.d.ts.map +1 -1
  38. package/dist/core/source-parser.js +85 -6
  39. package/dist/core/source-parser.js.map +1 -1
  40. package/package.json +9 -3
@@ -3,7 +3,7 @@ import ora from 'ora';
3
3
  import inquirer from 'inquirer';
4
4
  import * as p from '@clack/prompts';
5
5
  import { AGENTS } from '../agents.js';
6
- import { addSkillToLock, createLockEntry, installFromGitHubUrl, getSkillByScoped, fetchSkillsForCLI, } from '../../core/index.js';
6
+ import { addSkillToLock, createLockEntry, installFromGitHubUrl, getSkillByScoped, fetchSkillsForCLI, parseSource, cloneWithAuth, sanitizeUrl, } from '../../core/index.js';
7
7
  import { trackCommand } from '../../core/telemetry.js';
8
8
  /** Install a skill from its database record into a target directory */
9
9
  async function installSkillFromDatabase(skill, targetDir) {
@@ -25,6 +25,8 @@ export function registerInstallCommand(program) {
25
25
  .option('-a, --agent <agents...>', 'Specify agents to install to')
26
26
  .option('--all', 'Install to all agents')
27
27
  .option('-y, --yes', 'Skip confirmation prompts')
28
+ .option('--token <token>', 'Authentication token for private Git repos')
29
+ .option('--registry <url>', 'npm registry URL (for npm: sources)')
28
30
  .action(async (source, options) => {
29
31
  try {
30
32
  const { mkdir, cp, rm, readdir, readFile } = await import('fs/promises');
@@ -200,9 +202,9 @@ export function registerInstallCommand(program) {
200
202
  console.log(chalk.bold.green(`\n✨ Installed ${skillName}\n`));
201
203
  return;
202
204
  }
203
- // Install from GitHub URL or owner/repo
204
- let githubUrl = source;
205
- // Handle @scoped/name format — try marketplace first
205
+ // ── Parse source with the unified source parser ──
206
+ const parsed = parseSource(source);
207
+ // ── Handle @scoped/name — try marketplace first ──
206
208
  if (source.startsWith('@')) {
207
209
  const spinner = ora(`Looking up "${source}" in marketplace...`).start();
208
210
  try {
@@ -239,116 +241,227 @@ export function registerInstallCommand(program) {
239
241
  return;
240
242
  }
241
243
  }
242
- // Convert owner/repo to full URL
243
- if (source.match(/^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/)) {
244
- githubUrl = `https://github.com/${source}`;
245
- }
246
- // Validate it's a git URL
247
- if (!githubUrl.includes('github.com') && !githubUrl.includes('gitlab.com')) {
248
- // Maybe it's a marketplace ID?
249
- const spinner = ora(`Looking up "${source}" in marketplace...`).start();
244
+ // ── npm package: npm:@scope/package ──
245
+ if (parsed.type === 'npm') {
246
+ const spec = parsed.url; // e.g. "@company/skills"
247
+ const registry = options.registry;
248
+ console.log(chalk.bold(`\n📦 Installing from npm: ${spec}\n`));
249
+ const tempDir = join(tmpdir(), `skill-npm-${Date.now()}`);
250
+ await mkdir(tempDir, { recursive: true });
251
+ const packSpinner = ora('Downloading npm package...').start();
250
252
  try {
251
- let skill = await getSkillByScoped(source);
252
- if (!skill) {
253
- const result = await fetchSkillsForCLI({ search: source, limit: 1, sortBy: 'stars' });
254
- if (result.skills.length > 0) {
255
- skill = result.skills[0];
253
+ const packCmd = registry
254
+ ? `npm pack ${spec} --pack-destination ${tempDir} --registry ${registry}`
255
+ : `npm pack ${spec} --pack-destination ${tempDir}`;
256
+ const { stdout: packOutput } = await execAsync(packCmd, { timeout: 60000 });
257
+ // npm pack outputs the tarball filename
258
+ const tarballName = packOutput.trim().split('\n').pop();
259
+ const tarballPath = join(tempDir, tarballName);
260
+ // Extract tarball
261
+ await execAsync(`tar xzf "${tarballPath}" -C "${tempDir}"`, { timeout: 30000 });
262
+ packSpinner.succeed('Downloaded');
263
+ // npm pack extracts to a "package" directory
264
+ const extractedDir = join(tempDir, 'package');
265
+ // Detect skills in extracted package
266
+ const skillDirs = [];
267
+ if (existsSync(join(extractedDir, 'SKILL.md'))) {
268
+ skillDirs.push(extractedDir);
269
+ }
270
+ // Check subdirectories
271
+ const entries = await readdir(extractedDir, { withFileTypes: true });
272
+ for (const entry of entries) {
273
+ if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
274
+ if (existsSync(join(extractedDir, entry.name, 'SKILL.md'))) {
275
+ skillDirs.push(join(extractedDir, entry.name));
276
+ }
256
277
  }
257
278
  }
258
- if (skill) {
259
- spinner.text = `Installing ${skill.scoped_name || skill.name}...`;
279
+ if (skillDirs.length === 0) {
280
+ // Treat entire package as a skill
281
+ skillDirs.push(extractedDir);
282
+ }
283
+ const pkgName = spec.replace(/^@/, '').replace('/', '-');
284
+ for (const skillSourceDir of skillDirs) {
285
+ const skillName = skillSourceDir === extractedDir
286
+ ? pkgName
287
+ : basename(skillSourceDir);
260
288
  for (const agent of agents) {
261
289
  const config = AGENTS[agent];
262
290
  const targetDir = isGlobal ? config.globalDir : config.projectDir;
263
- await installSkillFromDatabase(skill, targetDir);
291
+ const skillDir = join(targetDir, skillName);
292
+ const installSpinner = ora(`Installing ${skillName} to ${config.displayName}...`).start();
293
+ await mkdir(skillDir, { recursive: true });
294
+ await cp(skillSourceDir, skillDir, { recursive: true });
295
+ installSpinner.succeed(`${config.displayName}: ${skillDir}`);
264
296
  }
297
+ // Get version from package.json
298
+ let version;
299
+ try {
300
+ const pkgJson = JSON.parse(await readFile(join(extractedDir, 'package.json'), 'utf-8'));
301
+ version = pkgJson.version;
302
+ }
303
+ catch { }
265
304
  const lockEntry = createLockEntry({
266
- name: skill.name,
267
- scopedName: skill.scoped_name || skill.name,
268
- source: skill.github_url || `database:${skill.name}`,
269
- sourceType: skill.github_url ? 'github' : 'database',
270
- version: skill.version,
305
+ name: skillName,
306
+ scopedName: `npm:${spec}/${skillName}`,
307
+ source: `npm:${spec}`,
308
+ sourceType: 'npm',
309
+ version,
271
310
  agents,
272
311
  canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
273
312
  isGlobal,
274
313
  });
275
314
  await addSkillToLock(lockEntry);
276
- spinner.succeed(`Installed ${skill.scoped_name || skill.name}`);
277
- console.log('');
278
- return;
279
315
  }
280
- else {
281
- spinner.fail(`Could not find "${source}" in marketplace or as a URL`);
282
- return;
316
+ // Cleanup
317
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
318
+ console.log(chalk.bold.green(`\n✨ Installed ${skillDirs.length} skill(s) from npm:${spec}\n`));
319
+ trackCommand('install', `source=npm:${spec} count=${skillDirs.length}`);
320
+ }
321
+ catch (err) {
322
+ packSpinner.fail(`npm error: ${err.message}`);
323
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
324
+ }
325
+ return;
326
+ }
327
+ // ── Git-based install (GitHub, GitLab, Bitbucket, Private Git, SSH) ──
328
+ if (parsed.type === 'github' ||
329
+ parsed.type === 'gitlab' ||
330
+ parsed.type === 'bitbucket' ||
331
+ parsed.type === 'private-git') {
332
+ // For owner/repo shorthand or full GitHub URLs, also try marketplace lookup
333
+ if (parsed.type === 'github' && !source.includes('://') && !source.startsWith('git@')) {
334
+ // owner/repo shorthand — try marketplace first
335
+ const spinner = ora(`Looking up "${source}" in marketplace...`).start();
336
+ try {
337
+ let skill = await getSkillByScoped(source);
338
+ if (!skill) {
339
+ const result = await fetchSkillsForCLI({ search: source, limit: 1, sortBy: 'stars' });
340
+ if (result.skills.length > 0) {
341
+ skill = result.skills[0];
342
+ }
343
+ }
344
+ if (skill) {
345
+ spinner.text = `Installing ${skill.scoped_name || skill.name}...`;
346
+ for (const agent of agents) {
347
+ const config = AGENTS[agent];
348
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
349
+ await installSkillFromDatabase(skill, targetDir);
350
+ }
351
+ const lockEntry = createLockEntry({
352
+ name: skill.name,
353
+ scopedName: skill.scoped_name || skill.name,
354
+ source: skill.github_url || `database:${skill.name}`,
355
+ sourceType: skill.github_url ? 'github' : 'database',
356
+ version: skill.version,
357
+ agents,
358
+ canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
359
+ isGlobal,
360
+ });
361
+ await addSkillToLock(lockEntry);
362
+ spinner.succeed(`Installed ${skill.scoped_name || skill.name}`);
363
+ console.log('');
364
+ return;
365
+ }
366
+ // Not found in marketplace — fall through to git clone
367
+ spinner.info('Not found in marketplace, cloning repository...');
283
368
  }
369
+ catch {
370
+ // Marketplace unavailable — fall through
371
+ spinner.info('Marketplace unavailable, cloning repository...');
372
+ }
373
+ }
374
+ // Git clone install with authentication
375
+ const displayUrl = sanitizeUrl(parsed.url);
376
+ console.log(chalk.bold(`\n📦 Installing from ${displayUrl}\n`));
377
+ const tempDir = join(tmpdir(), `skill-install-${Date.now()}`);
378
+ await mkdir(tempDir, { recursive: true });
379
+ const cloneSpinner = ora('Cloning repository...').start();
380
+ try {
381
+ await cloneWithAuth(parsed.url, tempDir, {
382
+ ref: parsed.ref,
383
+ depth: 1,
384
+ token: options.token,
385
+ });
386
+ cloneSpinner.succeed('Cloned');
284
387
  }
285
388
  catch (err) {
286
- spinner.fail(`Error: ${err.message}`);
389
+ cloneSpinner.fail(`Clone failed: ${err.message}`);
390
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
287
391
  return;
288
392
  }
289
- }
290
- // Git clone install
291
- console.log(chalk.bold(`\n📦 Installing from ${githubUrl}\n`));
292
- const tempDir = join(tmpdir(), `skill-install-${Date.now()}`);
293
- await mkdir(tempDir, { recursive: true });
294
- const cloneSpinner = ora('Cloning repository...').start();
295
- await execAsync(`git clone --depth 1 ${githubUrl} .`, { cwd: tempDir });
296
- cloneSpinner.succeed('Cloned');
297
- // Detect skills in repo
298
- const entries = await readdir(tempDir, { withFileTypes: true });
299
- let skillDirs = [];
300
- // Check if root is a skill
301
- if (existsSync(join(tempDir, 'SKILL.md'))) {
302
- skillDirs.push(tempDir);
303
- }
304
- // Check subdirectories
305
- for (const entry of entries) {
306
- if (entry.isDirectory() && !entry.name.startsWith('.')) {
307
- if (existsSync(join(tempDir, entry.name, 'SKILL.md'))) {
308
- skillDirs.push(join(tempDir, entry.name));
393
+ // Detect skills in repo
394
+ const entries = await readdir(tempDir, { withFileTypes: true });
395
+ let skillDirs = [];
396
+ // Check if root is a skill
397
+ if (existsSync(join(tempDir, 'SKILL.md'))) {
398
+ skillDirs.push(tempDir);
399
+ }
400
+ // Check subdirectories
401
+ for (const entry of entries) {
402
+ if (entry.isDirectory() && !entry.name.startsWith('.')) {
403
+ if (existsSync(join(tempDir, entry.name, 'SKILL.md'))) {
404
+ skillDirs.push(join(tempDir, entry.name));
405
+ }
309
406
  }
310
407
  }
311
- }
312
- if (skillDirs.length === 0) {
313
- // Treat entire repo as a skill
314
- skillDirs.push(tempDir);
315
- }
316
- const repoName = githubUrl.split('/').pop()?.replace('.git', '') || 'skill';
317
- for (const skillSourceDir of skillDirs) {
318
- const skillName = skillSourceDir === tempDir ? repoName : basename(skillSourceDir);
319
- for (const agent of agents) {
320
- const config = AGENTS[agent];
321
- const targetDir = isGlobal ? config.globalDir : config.projectDir;
322
- const skillDir = join(targetDir, skillName);
323
- const spinner = ora(`Installing ${skillName} to ${config.displayName}...`).start();
324
- await mkdir(skillDir, { recursive: true });
325
- await cp(skillSourceDir, skillDir, { recursive: true });
326
- spinner.succeed(`${config.displayName}: ${skillDir}`);
408
+ if (skillDirs.length === 0) {
409
+ // Treat entire repo as a skill
410
+ skillDirs.push(tempDir);
327
411
  }
328
- // Get version
329
- let version;
330
- try {
331
- const { stdout } = await execAsync('git rev-parse HEAD', { cwd: tempDir });
332
- version = stdout.trim();
412
+ const repoName = parsed.url.split('/').pop()?.replace('.git', '') || 'skill';
413
+ for (const skillSourceDir of skillDirs) {
414
+ const skillName = skillSourceDir === tempDir ? repoName : basename(skillSourceDir);
415
+ for (const agent of agents) {
416
+ const config = AGENTS[agent];
417
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
418
+ const skillDir = join(targetDir, skillName);
419
+ const spinner = ora(`Installing ${skillName} to ${config.displayName}...`).start();
420
+ await mkdir(skillDir, { recursive: true });
421
+ await cp(skillSourceDir, skillDir, { recursive: true });
422
+ spinner.succeed(`${config.displayName}: ${skillDir}`);
423
+ }
424
+ // Get version
425
+ let version;
426
+ try {
427
+ const { stdout } = await execAsync('git rev-parse HEAD', { cwd: tempDir });
428
+ version = stdout.trim();
429
+ }
430
+ catch { }
431
+ // Determine source type for lock
432
+ let sourceType = parsed.type;
433
+ if (sourceType === 'private-git')
434
+ sourceType = 'private-git';
435
+ // Add to lock
436
+ const lockEntry = createLockEntry({
437
+ name: skillName,
438
+ scopedName: `${parsed.url.split('/').slice(-2).join('/')}/${skillName}`,
439
+ source: sanitizeUrl(parsed.url),
440
+ sourceType: sourceType,
441
+ version,
442
+ agents,
443
+ canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
444
+ isGlobal,
445
+ });
446
+ await addSkillToLock(lockEntry);
333
447
  }
334
- catch { }
335
- // Add to lock
336
- const lockEntry = createLockEntry({
337
- name: skillName,
338
- scopedName: `${githubUrl.split('/').slice(-2).join('/')}/${skillName}`,
339
- source: githubUrl,
340
- sourceType: githubUrl.includes('gitlab') ? 'gitlab' : 'github',
341
- version,
342
- agents,
343
- canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
344
- isGlobal,
345
- });
346
- await addSkillToLock(lockEntry);
448
+ // Cleanup
449
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
450
+ console.log(chalk.bold.green(`\n✨ Installed ${skillDirs.length} skill(s)\n`));
451
+ trackCommand('install', `source=${sanitizeUrl(parsed.url)} count=${skillDirs.length}`);
452
+ return;
347
453
  }
348
- // Cleanup
349
- await rm(tempDir, { recursive: true, force: true }).catch(() => { });
350
- console.log(chalk.bold.green(`\n✨ Installed ${skillDirs.length} skill(s)\n`));
351
- trackCommand('install', `source=${githubUrl} count=${skillDirs.length}`);
454
+ // ── Fallback: well-known URL or unrecognized source ──
455
+ console.error(chalk.red(`Unrecognized source: ${source}`));
456
+ console.log(chalk.gray(' Supported formats:'));
457
+ console.log(chalk.gray(' skills install owner/repo'));
458
+ console.log(chalk.gray(' skills install https://github.com/owner/repo'));
459
+ console.log(chalk.gray(' skills install git@github.com:owner/repo.git'));
460
+ console.log(chalk.gray(' skills install https://gitlab.com/owner/repo'));
461
+ console.log(chalk.gray(' skills install https://bitbucket.org/owner/repo'));
462
+ console.log(chalk.gray(' skills install npm:@scope/package'));
463
+ console.log(chalk.gray(' skills install ./local/path'));
464
+ console.log(chalk.gray(' skills install -s skill-name'));
352
465
  }
353
466
  catch (error) {
354
467
  console.error(chalk.red('Error installing skill:'), error.message || error);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Git Authentication Module
3
+ * Resolves credentials for private Git repositories across platforms
4
+ *
5
+ * Supports:
6
+ * - Environment variables (GIT_TOKEN, GITLAB_TOKEN, BITBUCKET_TOKEN, GH_TOKEN)
7
+ * - SSH key detection
8
+ * - Git credential helper
9
+ * - Interactive token prompt (fallback)
10
+ */
11
+ export type GitHost = 'github' | 'gitlab' | 'bitbucket' | 'custom';
12
+ export interface GitAuthResult {
13
+ /** The authentication method that was resolved */
14
+ method: 'token' | 'ssh' | 'credential-helper' | 'netrc' | 'none';
15
+ /** Token value if method is 'token' */
16
+ token?: string;
17
+ /** Whether SSH keys are available */
18
+ sshAvailable?: boolean;
19
+ /** Detected host type */
20
+ host: GitHost;
21
+ }
22
+ export interface CloneOptions {
23
+ /** Branch or tag to checkout */
24
+ ref?: string;
25
+ /** Clone depth (default: 1 for shallow) */
26
+ depth?: number;
27
+ /** Subpath within the repo to sparse-checkout */
28
+ subpath?: string;
29
+ /** Explicit auth token to use (overrides auto-detection) */
30
+ token?: string;
31
+ }
32
+ /**
33
+ * Detect the Git hosting provider from a URL
34
+ */
35
+ export declare function detectGitHost(url: string): GitHost;
36
+ /**
37
+ * Resolve Git authentication for a given URL
38
+ *
39
+ * Resolution priority:
40
+ * 1. Environment variables (host-specific)
41
+ * 2. SSH key availability (for SSH URLs)
42
+ * 3. Git credential helper
43
+ * 4. .netrc file
44
+ * 5. None (public repo or will fail)
45
+ */
46
+ export declare function resolveGitAuth(url: string, explicitToken?: string): Promise<GitAuthResult>;
47
+ /**
48
+ * Build an authenticated HTTPS URL by injecting a token
49
+ *
50
+ * Input: https://gitlab.com/team/repo.git + token "abc123"
51
+ * Output: https://oauth2:abc123@gitlab.com/team/repo.git
52
+ */
53
+ export declare function buildAuthenticatedUrl(url: string, token: string): string;
54
+ /**
55
+ * Convert an SSH URL to HTTPS URL for token-based auth
56
+ * git@github.com:owner/repo.git → https://github.com/owner/repo.git
57
+ */
58
+ export declare function sshToHttps(url: string): string;
59
+ /**
60
+ * Normalize a Git URL for cloning
61
+ * Ensures URL has .git suffix and proper protocol
62
+ */
63
+ export declare function normalizeGitUrl(url: string): string;
64
+ /**
65
+ * Clone a Git repository with automatic authentication
66
+ *
67
+ * Handles SSH, HTTPS+token, and public repos transparently.
68
+ */
69
+ export declare function cloneWithAuth(url: string, destDir: string, options?: CloneOptions): Promise<void>;
70
+ /**
71
+ * Get the display-safe version of a URL (strips tokens)
72
+ */
73
+ export declare function sanitizeUrl(url: string): string;
74
+ //# sourceMappingURL=git-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-auth.d.ts","sourceRoot":"","sources":["../../src/core/git-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC1B,kDAAkD;IAClD,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,mBAAmB,GAAG,OAAO,GAAG,MAAM,CAAC;IACjE,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMlD;AA2HD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAsChG;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAID;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,IAAI,CAAC,CAuDf;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C"}