skillsauth 2.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +256 -79
  2. package/dist/__tests__/agents.test.d.ts +2 -0
  3. package/dist/__tests__/agents.test.d.ts.map +1 -0
  4. package/dist/__tests__/agents.test.js +48 -0
  5. package/dist/__tests__/agents.test.js.map +1 -0
  6. package/dist/__tests__/installer.test.d.ts +2 -0
  7. package/dist/__tests__/installer.test.d.ts.map +1 -0
  8. package/dist/__tests__/installer.test.js +126 -0
  9. package/dist/__tests__/installer.test.js.map +1 -0
  10. package/dist/__tests__/lockfile.test.d.ts +2 -0
  11. package/dist/__tests__/lockfile.test.d.ts.map +1 -0
  12. package/dist/__tests__/lockfile.test.js +76 -0
  13. package/dist/__tests__/lockfile.test.js.map +1 -0
  14. package/dist/__tests__/plugin-manifest.test.d.ts +2 -0
  15. package/dist/__tests__/plugin-manifest.test.d.ts.map +1 -0
  16. package/dist/__tests__/plugin-manifest.test.js +150 -0
  17. package/dist/__tests__/plugin-manifest.test.js.map +1 -0
  18. package/dist/__tests__/slug.test.d.ts +2 -0
  19. package/dist/__tests__/slug.test.d.ts.map +1 -0
  20. package/dist/__tests__/slug.test.js +34 -0
  21. package/dist/__tests__/slug.test.js.map +1 -0
  22. package/dist/commands/add-local.d.ts +14 -0
  23. package/dist/commands/add-local.d.ts.map +1 -0
  24. package/dist/commands/add-local.js +234 -0
  25. package/dist/commands/add-local.js.map +1 -0
  26. package/dist/commands/add.d.ts +7 -2
  27. package/dist/commands/add.d.ts.map +1 -1
  28. package/dist/commands/add.js +69 -33
  29. package/dist/commands/add.js.map +1 -1
  30. package/dist/commands/check.d.ts +7 -0
  31. package/dist/commands/check.d.ts.map +1 -0
  32. package/dist/commands/check.js +57 -0
  33. package/dist/commands/check.js.map +1 -0
  34. package/dist/commands/find.d.ts +7 -0
  35. package/dist/commands/find.d.ts.map +1 -0
  36. package/dist/commands/find.js +60 -0
  37. package/dist/commands/find.js.map +1 -0
  38. package/dist/commands/init.d.ts +7 -0
  39. package/dist/commands/init.d.ts.map +1 -0
  40. package/dist/commands/init.js +146 -0
  41. package/dist/commands/init.js.map +1 -0
  42. package/dist/commands/installed.d.ts +1 -0
  43. package/dist/commands/installed.d.ts.map +1 -1
  44. package/dist/commands/installed.js +4 -0
  45. package/dist/commands/installed.js.map +1 -1
  46. package/dist/commands/plugins.d.ts +8 -0
  47. package/dist/commands/plugins.d.ts.map +1 -0
  48. package/dist/commands/plugins.js +96 -0
  49. package/dist/commands/plugins.js.map +1 -0
  50. package/dist/commands/remove.d.ts.map +1 -1
  51. package/dist/commands/remove.js +5 -0
  52. package/dist/commands/remove.js.map +1 -1
  53. package/dist/index.js +91 -12
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/agent-registry.d.ts +19 -0
  56. package/dist/lib/agent-registry.d.ts.map +1 -0
  57. package/dist/lib/agent-registry.js +408 -0
  58. package/dist/lib/agent-registry.js.map +1 -0
  59. package/dist/lib/agents.d.ts +9 -1
  60. package/dist/lib/agents.d.ts.map +1 -1
  61. package/dist/lib/agents.js +19 -10
  62. package/dist/lib/agents.js.map +1 -1
  63. package/dist/lib/api.js +2 -2
  64. package/dist/lib/installer.d.ts +12 -1
  65. package/dist/lib/installer.d.ts.map +1 -1
  66. package/dist/lib/installer.js +159 -27
  67. package/dist/lib/installer.js.map +1 -1
  68. package/dist/lib/plugin-manifest.d.ts +21 -0
  69. package/dist/lib/plugin-manifest.d.ts.map +1 -0
  70. package/dist/lib/plugin-manifest.js +144 -0
  71. package/dist/lib/plugin-manifest.js.map +1 -0
  72. package/dist/types.d.ts +3 -1
  73. package/dist/types.d.ts.map +1 -1
  74. package/dist/types.js +1 -1
  75. package/dist/types.js.map +1 -1
  76. package/dist/utils/constants.d.ts +1 -14
  77. package/dist/utils/constants.d.ts.map +1 -1
  78. package/dist/utils/constants.js +1 -15
  79. package/dist/utils/constants.js.map +1 -1
  80. package/dist/utils/display.d.ts.map +1 -1
  81. package/dist/utils/display.js +2 -6
  82. package/dist/utils/display.js.map +1 -1
  83. package/dist/utils/slug.d.ts +6 -0
  84. package/dist/utils/slug.d.ts.map +1 -0
  85. package/dist/utils/slug.js +8 -0
  86. package/dist/utils/slug.js.map +1 -0
  87. package/package.json +59 -37
@@ -0,0 +1,96 @@
1
+ import * as p from '@clack/prompts';
2
+ import chalk from 'chalk';
3
+ import { searchPlugins, fetchPlugins } from '../lib/api.js';
4
+ import { printError } from '../utils/display.js';
5
+ export async function pluginsSearchCommand(query, opts) {
6
+ const spinner = p.spinner();
7
+ spinner.start(`Searching plugins for "${chalk.cyan(query)}"...`);
8
+ try {
9
+ const { results, total } = await searchPlugins(query, opts.limit ?? 10);
10
+ spinner.stop(`${total} plugin(s) for "${query}"`);
11
+ if (opts.json) {
12
+ console.log(JSON.stringify(results, null, 2));
13
+ return;
14
+ }
15
+ if (!results.length) {
16
+ console.log(chalk.dim('\n No plugins found.\n'));
17
+ return;
18
+ }
19
+ console.log('');
20
+ for (const plugin of results) {
21
+ const stars = plugin.stars ? chalk.yellow(`★ ${plugin.stars.toLocaleString()}`) : '';
22
+ const version = plugin.version ? chalk.dim(`v${plugin.version}`) : '';
23
+ console.log(` ${chalk.bold.white(plugin.name)} ${version} ${stars}`);
24
+ console.log(` ${chalk.dim(`by ${plugin.author}`)} ${chalk.dim(`${plugin.skillCount} skills`)} ${chalk.dim(`${plugin.commandCount} cmds`)}`);
25
+ if (plugin.description) {
26
+ console.log(` ${chalk.gray(plugin.description.substring(0, 100))}`);
27
+ }
28
+ if (plugin.connectors.length > 0) {
29
+ console.log(` ${chalk.dim('Connectors:')} ${plugin.connectors.join(', ')}`);
30
+ }
31
+ if (plugin.installCommand) {
32
+ console.log(` ${chalk.dim('Install:')} ${chalk.cyan(plugin.installCommand)}`);
33
+ }
34
+ console.log('');
35
+ }
36
+ }
37
+ catch (e) {
38
+ const error = e;
39
+ spinner.stop('Failed');
40
+ printError(error.message);
41
+ process.exit(1);
42
+ }
43
+ }
44
+ export async function pluginsListCommand(source, opts) {
45
+ const parts = source.split('/');
46
+ if (parts.length !== 2) {
47
+ printError('Source must be in format owner/repo');
48
+ process.exit(1);
49
+ }
50
+ const [owner, repo] = parts;
51
+ const spinner = p.spinner();
52
+ spinner.start(`Fetching plugins from ${chalk.cyan(source)}...`);
53
+ try {
54
+ const data = await fetchPlugins(owner, repo);
55
+ spinner.stop(`${data.pluginCount} plugin(s) in ${source}`);
56
+ if (opts.json) {
57
+ console.log(JSON.stringify(data.plugins, null, 2));
58
+ return;
59
+ }
60
+ if (!data.plugins.length) {
61
+ console.log(chalk.dim('\n No plugins found.\n'));
62
+ return;
63
+ }
64
+ console.log('');
65
+ for (const plugin of data.plugins) {
66
+ console.log(` ${chalk.bold.white(plugin.name)} ${plugin.version ? chalk.dim(`v${plugin.version}`) : ''}`);
67
+ console.log(` ${chalk.dim(`${plugin.skillCount} skills, ${plugin.commandCount} commands, ${plugin.connectorCount} connectors`)}`);
68
+ if (plugin.description) {
69
+ console.log(` ${chalk.gray(plugin.description.substring(0, 100))}`);
70
+ }
71
+ if (plugin.skills.length > 0) {
72
+ console.log(` ${chalk.dim('Skills:')}`);
73
+ for (const skill of plugin.skills.slice(0, 5)) {
74
+ console.log(` ${chalk.white(skill.name)} ${chalk.dim(skill.category ?? '')}`);
75
+ }
76
+ if (plugin.skills.length > 5) {
77
+ console.log(chalk.dim(` ...and ${plugin.skills.length - 5} more`));
78
+ }
79
+ }
80
+ if (plugin.connectors.length > 0) {
81
+ console.log(` ${chalk.dim('Connectors:')} ${plugin.connectors.map((c) => c.name).join(', ')}`);
82
+ }
83
+ if (plugin.installCommand) {
84
+ console.log(` ${chalk.dim('Install:')} ${chalk.cyan(plugin.installCommand)}`);
85
+ }
86
+ console.log('');
87
+ }
88
+ }
89
+ catch (e) {
90
+ const error = e;
91
+ spinner.stop('Failed');
92
+ printError(error.message);
93
+ process.exit(1);
94
+ }
95
+ }
96
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAOA,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -3,8 +3,13 @@ import chalk from 'chalk';
3
3
  import { getInstalledSkill, removeSkillFromLockfile } from '../lib/lockfile.js';
4
4
  import { uninstallSkill } from '../lib/installer.js';
5
5
  import { printError, printSuccess } from '../utils/display.js';
6
+ import { isSafeSkillSlug } from '../utils/slug.js';
6
7
  export async function removeCommand(slug, opts) {
7
8
  const scope = opts.global ? 'global' : 'local';
9
+ if (!isSafeSkillSlug(slug)) {
10
+ printError('Invalid skill slug (use letters, numbers, and hyphens only)');
11
+ process.exit(1);
12
+ }
8
13
  const skill = getInstalledSkill(scope, slug);
9
14
  if (!skill) {
10
15
  printError(`"${slug}" is not installed (${scope})`);
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG/D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAyC;IAEzC,MAAM,KAAK,GAAiB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,IAAI,uBAAuB,KAAK,GAAG,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACvE,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrC,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAyC;IAEzC,MAAM,KAAK,GAAiB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,6DAA6D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,IAAI,uBAAuB,KAAK,GAAG,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACvE,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrC,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC"}
package/dist/index.js CHANGED
@@ -3,47 +3,126 @@ import { Command } from 'commander';
3
3
  import { readFileSync } from 'fs';
4
4
  import { fileURLToPath } from 'url';
5
5
  import { dirname, join } from 'path';
6
+ import { existsSync } from 'fs';
6
7
  import { addCommand } from './commands/add.js';
8
+ import { addLocalCommand } from './commands/add-local.js';
7
9
  import { listCommand } from './commands/list.js';
8
10
  import { searchCommand } from './commands/search.js';
11
+ import { findCommand } from './commands/find.js';
9
12
  import { installedCommand } from './commands/installed.js';
10
13
  import { updateCommand } from './commands/update.js';
11
14
  import { removeCommand } from './commands/remove.js';
15
+ import { initCommand } from './commands/init.js';
16
+ import { checkCommand } from './commands/check.js';
17
+ import { AGENT_IDS } from './types.js';
12
18
  const pkg = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), '../package.json'), 'utf8'));
13
19
  const program = new Command()
14
20
  .name('skillsauth')
15
21
  .description('Install verified AI agent skills from the SkillsAuth marketplace')
16
22
  .version(pkg.version);
17
- program
18
- .command('add <repo> [skill]')
19
- .description('Install skills (format: owner/repo)')
23
+ // --- add / install ---
24
+ const addCmd = new Command('add')
25
+ .alias('install')
26
+ .alias('i')
27
+ .argument('<source>', 'Repository (owner/repo) or local path (./ or /path)')
28
+ .argument('[skill...]', 'Optional skill name or slug')
29
+ .description('Install skills from a repository or local directory (with plugin manifest support)')
20
30
  .option('-g, --global', 'Install globally')
21
31
  .option('-y, --yes', 'Skip all prompts')
22
- .action(addCommand);
23
- program
24
- .command('list <repo>')
25
- .description('List skills in a repo')
32
+ .option('--copy', 'Copy files instead of symlink')
33
+ .option('--agent <agents...>', 'Target specific agent(s)')
34
+ .option('--all', 'Install all skills without prompting')
35
+ .option('--json', 'Output results as JSON')
36
+ .action((source, skillArgs, opts) => {
37
+ const isLocal = source.startsWith('.') || source.startsWith('/') || source.startsWith('\\') || existsSync(source);
38
+ if (isLocal) {
39
+ return addLocalCommand(source, opts);
40
+ }
41
+ const skill = skillArgs?.length ? skillArgs.join(' ') : undefined;
42
+ return addCommand(source, skill, opts);
43
+ });
44
+ program.addCommand(addCmd);
45
+ // --- list / ls ---
46
+ const listCmd = new Command('list')
47
+ .alias('ls')
48
+ .argument('<repo>', 'Repository (owner/repo)')
49
+ .description('List skills in a repository')
26
50
  .action(listCommand);
51
+ program.addCommand(listCmd);
52
+ // --- search ---
27
53
  program
28
54
  .command('search <query>')
29
55
  .description('Search the marketplace')
30
56
  .option('-l, --limit <n>', 'Max results', '10')
31
- .action((q, o) => searchCommand(q, { limit: parseInt(o.limit) }));
57
+ .action((q, o) => {
58
+ const n = parseInt(o.limit, 10);
59
+ return searchCommand(q, { limit: Number.isFinite(n) && n > 0 ? n : 10 });
60
+ });
61
+ // --- find (interactive search) ---
32
62
  program
33
- .command('installed')
63
+ .command('find [query]')
64
+ .description('Interactive skill discovery')
65
+ .option('-l, --limit <n>', 'Max results', '20')
66
+ .option('--json', 'Output results as JSON')
67
+ .action((q, o) => {
68
+ const n = parseInt(o.limit, 10);
69
+ return findCommand(q, { limit: Number.isFinite(n) && n > 0 ? n : 20, json: o.json });
70
+ });
71
+ // --- installed / status ---
72
+ const installedCmd = new Command('installed')
73
+ .alias('status')
34
74
  .description('Show installed skills')
35
75
  .option('-g, --global', 'Show global installs')
76
+ .option('--json', 'Output as JSON')
36
77
  .action(installedCommand);
37
- program
38
- .command('update')
78
+ program.addCommand(installedCmd);
79
+ // --- update / upgrade ---
80
+ const updateCmd = new Command('update')
81
+ .alias('upgrade')
39
82
  .description('Update all installed skills')
40
83
  .option('-g, --global', 'Update global installs')
41
84
  .action(updateCommand);
85
+ program.addCommand(updateCmd);
86
+ // --- check ---
42
87
  program
43
- .command('remove <slug>')
88
+ .command('check')
89
+ .description('Check for available updates without installing')
90
+ .option('-g, --global', 'Check global installs')
91
+ .option('--json', 'Output as JSON')
92
+ .action(checkCommand);
93
+ // --- remove / uninstall / rm ---
94
+ const removeCmd = new Command('remove')
95
+ .alias('uninstall')
96
+ .alias('rm')
97
+ .argument('<slug>', 'Skill slug to remove')
44
98
  .description('Remove an installed skill')
45
99
  .option('-g, --global', 'Remove from global install')
46
100
  .option('-y, --yes', 'Skip confirmation')
47
101
  .action(removeCommand);
102
+ program.addCommand(removeCmd);
103
+ // --- init ---
104
+ program
105
+ .command('init')
106
+ .description('Scaffold a new skill or plugin')
107
+ .option('--plugin', 'Scaffold a multi-skill plugin with manifests')
108
+ .option('-y, --yes', 'Skip prompts (use defaults)')
109
+ .action(initCommand);
110
+ // --- agents ---
111
+ program
112
+ .command('agents')
113
+ .description('List all supported agents')
114
+ .option('--json', 'Output as JSON')
115
+ .action((opts) => {
116
+ if (opts.json) {
117
+ console.log(JSON.stringify(Array.from(AGENT_IDS), null, 2));
118
+ }
119
+ else {
120
+ console.log(`\n Supported agents (${AGENT_IDS.length}):\n`);
121
+ for (const id of AGENT_IDS) {
122
+ console.log(` ${id}`);
123
+ }
124
+ console.log('');
125
+ }
126
+ });
48
127
  program.parse();
49
128
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAChE,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC;KACvC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC;KAC9C,MAAM,CAAC,CAAC,CAAS,EAAE,CAAoB,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/F,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC;KAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC;KAChD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface AgentPathDef {
2
+ local: (slug: string) => string;
3
+ global: (slug: string) => string;
4
+ }
5
+ interface AgentEntry {
6
+ displayName: string;
7
+ skillsDirRel: string;
8
+ globalSkillsRoot: () => string;
9
+ metaDotDir: string;
10
+ detect: () => boolean;
11
+ }
12
+ /** Sorted; must match every key in `AGENT_REGISTRY`. */
13
+ export declare const AGENT_IDS: readonly ["adal", "amp", "antigravity", "augment", "claude-code", "cline", "codebuddy", "codex", "command-code", "continue", "cortex", "crush", "cursor", "deepagents", "droid", "firebender", "gemini-cli", "github-copilot", "goose", "iflow-cli", "junie", "kilo", "kimi-cli", "kiro-cli", "kode", "mcpjam", "mistral-vibe", "mux", "neovate", "opencode", "openclaw", "openhands", "pi", "pochi", "qoder", "qwen-code", "replit", "roo", "trae", "trae-cn", "universal", "warp", "windsurf", "zencoder"];
14
+ export type AgentType = (typeof AGENT_IDS)[number];
15
+ export declare const AGENT_REGISTRY: Record<AgentType, AgentEntry>;
16
+ export declare const AGENT_PATHS: Record<"adal" | "amp" | "antigravity" | "augment" | "claude-code" | "cline" | "codebuddy" | "codex" | "command-code" | "continue" | "cortex" | "crush" | "cursor" | "deepagents" | "droid" | "firebender" | "gemini-cli" | "github-copilot" | "goose" | "iflow-cli" | "junie" | "kilo" | "kimi-cli" | "kiro-cli" | "kode" | "mcpjam" | "mistral-vibe" | "mux" | "neovate" | "opencode" | "openclaw" | "openhands" | "pi" | "pochi" | "qoder" | "qwen-code" | "replit" | "roo" | "trae" | "trae-cn" | "universal" | "warp" | "windsurf" | "zencoder", AgentPathDef>;
17
+ export declare function isAgentDetected(id: AgentType): boolean;
18
+ export {};
19
+ //# sourceMappingURL=agent-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../src/lib/agent-registry.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAClC;AAuBD,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,OAAO,CAAC;CACvB;AAMD,wDAAwD;AACxD,eAAO,MAAM,SAAS,8eA6CZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CA0TxD,CAAC;AAmBF,eAAO,MAAM,WAAW,oiBAAoB,CAAC;AAE7C,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEtD"}