skillsauth 3.0.1 → 3.0.3

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/README.md +63 -53
  2. package/dist/__tests__/add.unsigned.test.d.ts +2 -0
  3. package/dist/__tests__/add.unsigned.test.d.ts.map +1 -0
  4. package/dist/__tests__/add.unsigned.test.js +112 -0
  5. package/dist/__tests__/add.unsigned.test.js.map +1 -0
  6. package/dist/__tests__/agents.test.js +2 -2
  7. package/dist/__tests__/agents.test.js.map +1 -1
  8. package/dist/__tests__/installer.test.js +9 -8
  9. package/dist/__tests__/installer.test.js.map +1 -1
  10. package/dist/__tests__/slug.test.js +5 -1
  11. package/dist/__tests__/slug.test.js.map +1 -1
  12. package/dist/__tests__/verify.test.d.ts +9 -0
  13. package/dist/__tests__/verify.test.d.ts.map +1 -0
  14. package/dist/__tests__/verify.test.js +206 -0
  15. package/dist/__tests__/verify.test.js.map +1 -0
  16. package/dist/commands/add-local.d.ts.map +1 -1
  17. package/dist/commands/add-local.js +1 -0
  18. package/dist/commands/add-local.js.map +1 -1
  19. package/dist/commands/add.d.ts +2 -0
  20. package/dist/commands/add.d.ts.map +1 -1
  21. package/dist/commands/add.js +49 -3
  22. package/dist/commands/add.js.map +1 -1
  23. package/dist/commands/plugins.d.ts +8 -0
  24. package/dist/commands/plugins.d.ts.map +1 -0
  25. package/dist/commands/plugins.js +96 -0
  26. package/dist/commands/plugins.js.map +1 -0
  27. package/dist/index.js +2 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/agent-registry.d.ts +19 -0
  30. package/dist/lib/agent-registry.d.ts.map +1 -0
  31. package/dist/lib/agent-registry.js +408 -0
  32. package/dist/lib/agent-registry.js.map +1 -0
  33. package/dist/lib/agents.d.ts +1 -1
  34. package/dist/lib/agents.d.ts.map +1 -1
  35. package/dist/lib/agents.js +7 -50
  36. package/dist/lib/agents.js.map +1 -1
  37. package/dist/lib/api.d.ts +11 -0
  38. package/dist/lib/api.d.ts.map +1 -1
  39. package/dist/lib/api.js +43 -0
  40. package/dist/lib/api.js.map +1 -1
  41. package/dist/lib/installer.d.ts.map +1 -1
  42. package/dist/lib/installer.js +10 -2
  43. package/dist/lib/installer.js.map +1 -1
  44. package/dist/lib/verify.d.ts +26 -0
  45. package/dist/lib/verify.d.ts.map +1 -0
  46. package/dist/lib/verify.js +91 -0
  47. package/dist/lib/verify.js.map +1 -0
  48. package/dist/types.d.ts +4 -2
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js +1 -40
  51. package/dist/types.js.map +1 -1
  52. package/dist/utils/constants.d.ts +1 -7
  53. package/dist/utils/constants.d.ts.map +1 -1
  54. package/dist/utils/constants.js +1 -52
  55. package/dist/utils/constants.js.map +1 -1
  56. package/dist/utils/slug.d.ts +2 -0
  57. package/dist/utils/slug.d.ts.map +1 -1
  58. package/dist/utils/slug.js +3 -1
  59. package/dist/utils/slug.js.map +1 -1
  60. package/package.json +10 -8
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Agent IDs, install paths, and detection aligned
3
+ * with SkillsAuth platform.
4
+ */
5
+ import { existsSync } from 'fs';
6
+ import { homedir } from 'os';
7
+ import { join } from 'path';
8
+ const home = homedir();
9
+ function configHome() {
10
+ return process.env['XDG_CONFIG_HOME']?.trim() || join(home, '.config');
11
+ }
12
+ function claudeHome() {
13
+ return process.env['CLAUDE_CONFIG_DIR']?.trim() || join(home, '.claude');
14
+ }
15
+ function codexHome() {
16
+ return process.env['CODEX_HOME']?.trim() || join(home, '.codex');
17
+ }
18
+ function getOpenClawGlobalSkillsDir() {
19
+ if (existsSync(join(home, '.openclaw')))
20
+ return join(home, '.openclaw/skills');
21
+ if (existsSync(join(home, '.clawdbot')))
22
+ return join(home, '.clawdbot/skills');
23
+ if (existsSync(join(home, '.moltbot')))
24
+ return join(home, '.moltbot/skills');
25
+ return join(home, '.openclaw/skills');
26
+ }
27
+ const cfg = configHome();
28
+ const ch = () => claudeHome();
29
+ const cx = () => codexHome();
30
+ /** Sorted; must match every key in `AGENT_REGISTRY`. */
31
+ export const AGENT_IDS = [
32
+ 'adal',
33
+ 'amp',
34
+ 'antigravity',
35
+ 'augment',
36
+ 'claude-code',
37
+ 'cline',
38
+ 'codebuddy',
39
+ 'codex',
40
+ 'command-code',
41
+ 'continue',
42
+ 'cortex',
43
+ 'crush',
44
+ 'cursor',
45
+ 'deepagents',
46
+ 'droid',
47
+ 'firebender',
48
+ 'gemini-cli',
49
+ 'github-copilot',
50
+ 'goose',
51
+ 'iflow-cli',
52
+ 'junie',
53
+ 'kilo',
54
+ 'kimi-cli',
55
+ 'kiro-cli',
56
+ 'kode',
57
+ 'mcpjam',
58
+ 'mistral-vibe',
59
+ 'mux',
60
+ 'neovate',
61
+ 'opencode',
62
+ 'openclaw',
63
+ 'openhands',
64
+ 'pi',
65
+ 'pochi',
66
+ 'qoder',
67
+ 'qwen-code',
68
+ 'replit',
69
+ 'roo',
70
+ 'trae',
71
+ 'trae-cn',
72
+ 'universal',
73
+ 'warp',
74
+ 'windsurf',
75
+ 'zencoder',
76
+ ];
77
+ export const AGENT_REGISTRY = {
78
+ adal: {
79
+ displayName: 'AdaL',
80
+ skillsDirRel: '.adal/skills',
81
+ globalSkillsRoot: () => join(home, '.adal/skills'),
82
+ metaDotDir: '.adal',
83
+ detect: () => existsSync(join(home, '.adal')),
84
+ },
85
+ amp: {
86
+ displayName: 'Amp',
87
+ skillsDirRel: '.agents/skills',
88
+ globalSkillsRoot: () => join(cfg, 'agents/skills'),
89
+ metaDotDir: '.config',
90
+ detect: () => existsSync(join(cfg, 'amp')),
91
+ },
92
+ antigravity: {
93
+ displayName: 'Antigravity',
94
+ skillsDirRel: '.agents/skills',
95
+ globalSkillsRoot: () => join(home, '.gemini/antigravity/skills'),
96
+ metaDotDir: '.gemini',
97
+ detect: () => existsSync(join(home, '.gemini/antigravity')),
98
+ },
99
+ augment: {
100
+ displayName: 'Augment',
101
+ skillsDirRel: '.augment/skills',
102
+ globalSkillsRoot: () => join(home, '.augment/skills'),
103
+ metaDotDir: '.augment',
104
+ detect: () => existsSync(join(home, '.augment')),
105
+ },
106
+ 'claude-code': {
107
+ displayName: 'Claude Code',
108
+ skillsDirRel: '.claude/skills',
109
+ globalSkillsRoot: () => join(ch(), 'skills'),
110
+ metaDotDir: '.claude',
111
+ detect: () => existsSync(ch()),
112
+ },
113
+ cline: {
114
+ displayName: 'Cline',
115
+ skillsDirRel: '.agents/skills',
116
+ globalSkillsRoot: () => join(home, '.agents/skills'),
117
+ metaDotDir: '.cline',
118
+ detect: () => existsSync(join(home, '.cline')),
119
+ },
120
+ codebuddy: {
121
+ displayName: 'CodeBuddy',
122
+ skillsDirRel: '.codebuddy/skills',
123
+ globalSkillsRoot: () => join(home, '.codebuddy/skills'),
124
+ metaDotDir: '.codebuddy',
125
+ detect: () => existsSync(join(process.cwd(), '.codebuddy')) || existsSync(join(home, '.codebuddy')),
126
+ },
127
+ codex: {
128
+ displayName: 'Codex',
129
+ skillsDirRel: '.agents/skills',
130
+ globalSkillsRoot: () => join(cx(), 'skills'),
131
+ metaDotDir: '.codex',
132
+ detect: () => existsSync(cx()) || existsSync('/etc/codex'),
133
+ },
134
+ 'command-code': {
135
+ displayName: 'Command Code',
136
+ skillsDirRel: '.commandcode/skills',
137
+ globalSkillsRoot: () => join(home, '.commandcode/skills'),
138
+ metaDotDir: '.commandcode',
139
+ detect: () => existsSync(join(home, '.commandcode')),
140
+ },
141
+ continue: {
142
+ displayName: 'Continue',
143
+ skillsDirRel: '.continue/skills',
144
+ globalSkillsRoot: () => join(home, '.continue/skills'),
145
+ metaDotDir: '.continue',
146
+ detect: () => existsSync(join(process.cwd(), '.continue')) || existsSync(join(home, '.continue')),
147
+ },
148
+ cortex: {
149
+ displayName: 'Cortex Code',
150
+ skillsDirRel: '.cortex/skills',
151
+ globalSkillsRoot: () => join(home, '.snowflake/cortex/skills'),
152
+ metaDotDir: '.snowflake',
153
+ detect: () => existsSync(join(home, '.snowflake/cortex')),
154
+ },
155
+ crush: {
156
+ displayName: 'Crush',
157
+ skillsDirRel: '.crush/skills',
158
+ globalSkillsRoot: () => join(home, '.config/crush/skills'),
159
+ metaDotDir: '.config',
160
+ detect: () => existsSync(join(home, '.config/crush')),
161
+ },
162
+ cursor: {
163
+ displayName: 'Cursor',
164
+ skillsDirRel: '.agents/skills',
165
+ globalSkillsRoot: () => join(home, '.cursor/skills'),
166
+ metaDotDir: '.cursor',
167
+ detect: () => existsSync(join(home, '.cursor')),
168
+ },
169
+ deepagents: {
170
+ displayName: 'Deep Agents',
171
+ skillsDirRel: '.agents/skills',
172
+ globalSkillsRoot: () => join(home, '.deepagents/agent/skills'),
173
+ metaDotDir: '.deepagents',
174
+ detect: () => existsSync(join(home, '.deepagents')),
175
+ },
176
+ droid: {
177
+ displayName: 'Droid',
178
+ skillsDirRel: '.factory/skills',
179
+ globalSkillsRoot: () => join(home, '.factory/skills'),
180
+ metaDotDir: '.factory',
181
+ detect: () => existsSync(join(home, '.factory')),
182
+ },
183
+ firebender: {
184
+ displayName: 'Firebender',
185
+ skillsDirRel: '.agents/skills',
186
+ globalSkillsRoot: () => join(home, '.firebender/skills'),
187
+ metaDotDir: '.firebender',
188
+ detect: () => existsSync(join(home, '.firebender')),
189
+ },
190
+ 'gemini-cli': {
191
+ displayName: 'Gemini CLI',
192
+ skillsDirRel: '.agents/skills',
193
+ globalSkillsRoot: () => join(home, '.gemini/skills'),
194
+ metaDotDir: '.gemini',
195
+ detect: () => existsSync(join(home, '.gemini')),
196
+ },
197
+ 'github-copilot': {
198
+ displayName: 'GitHub Copilot',
199
+ skillsDirRel: '.agents/skills',
200
+ globalSkillsRoot: () => join(home, '.copilot/skills'),
201
+ metaDotDir: '.copilot',
202
+ detect: () => existsSync(join(home, '.copilot')),
203
+ },
204
+ goose: {
205
+ displayName: 'Goose',
206
+ skillsDirRel: '.goose/skills',
207
+ globalSkillsRoot: () => join(cfg, 'goose/skills'),
208
+ metaDotDir: '.goose',
209
+ detect: () => existsSync(join(cfg, 'goose')),
210
+ },
211
+ 'iflow-cli': {
212
+ displayName: 'iFlow CLI',
213
+ skillsDirRel: '.iflow/skills',
214
+ globalSkillsRoot: () => join(home, '.iflow/skills'),
215
+ metaDotDir: '.iflow',
216
+ detect: () => existsSync(join(home, '.iflow')),
217
+ },
218
+ junie: {
219
+ displayName: 'Junie',
220
+ skillsDirRel: '.junie/skills',
221
+ globalSkillsRoot: () => join(home, '.junie/skills'),
222
+ metaDotDir: '.junie',
223
+ detect: () => existsSync(join(home, '.junie')),
224
+ },
225
+ kilo: {
226
+ displayName: 'Kilo Code',
227
+ skillsDirRel: '.kilocode/skills',
228
+ globalSkillsRoot: () => join(home, '.kilocode/skills'),
229
+ metaDotDir: '.kilocode',
230
+ detect: () => existsSync(join(home, '.kilocode')),
231
+ },
232
+ 'kimi-cli': {
233
+ displayName: 'Kimi Code CLI',
234
+ skillsDirRel: '.agents/skills',
235
+ globalSkillsRoot: () => join(home, '.config/agents/skills'),
236
+ metaDotDir: '.kimi',
237
+ detect: () => existsSync(join(home, '.kimi')),
238
+ },
239
+ 'kiro-cli': {
240
+ displayName: 'Kiro CLI',
241
+ skillsDirRel: '.kiro/skills',
242
+ globalSkillsRoot: () => join(home, '.kiro/skills'),
243
+ metaDotDir: '.kiro',
244
+ detect: () => existsSync(join(home, '.kiro')),
245
+ },
246
+ kode: {
247
+ displayName: 'Kode',
248
+ skillsDirRel: '.kode/skills',
249
+ globalSkillsRoot: () => join(home, '.kode/skills'),
250
+ metaDotDir: '.kode',
251
+ detect: () => existsSync(join(home, '.kode')),
252
+ },
253
+ mcpjam: {
254
+ displayName: 'MCPJam',
255
+ skillsDirRel: '.mcpjam/skills',
256
+ globalSkillsRoot: () => join(home, '.mcpjam/skills'),
257
+ metaDotDir: '.mcpjam',
258
+ detect: () => existsSync(join(home, '.mcpjam')),
259
+ },
260
+ 'mistral-vibe': {
261
+ displayName: 'Mistral Vibe',
262
+ skillsDirRel: '.vibe/skills',
263
+ globalSkillsRoot: () => join(home, '.vibe/skills'),
264
+ metaDotDir: '.vibe',
265
+ detect: () => existsSync(join(home, '.vibe')),
266
+ },
267
+ mux: {
268
+ displayName: 'Mux',
269
+ skillsDirRel: '.mux/skills',
270
+ globalSkillsRoot: () => join(home, '.mux/skills'),
271
+ metaDotDir: '.mux',
272
+ detect: () => existsSync(join(home, '.mux')),
273
+ },
274
+ neovate: {
275
+ displayName: 'Neovate',
276
+ skillsDirRel: '.neovate/skills',
277
+ globalSkillsRoot: () => join(home, '.neovate/skills'),
278
+ metaDotDir: '.neovate',
279
+ detect: () => existsSync(join(home, '.neovate')),
280
+ },
281
+ opencode: {
282
+ displayName: 'OpenCode',
283
+ skillsDirRel: '.agents/skills',
284
+ globalSkillsRoot: () => join(cfg, 'opencode/skills'),
285
+ metaDotDir: '.config',
286
+ detect: () => existsSync(join(cfg, 'opencode')),
287
+ },
288
+ openclaw: {
289
+ displayName: 'OpenClaw',
290
+ skillsDirRel: 'skills',
291
+ globalSkillsRoot: () => getOpenClawGlobalSkillsDir(),
292
+ metaDotDir: '.openclaw',
293
+ detect: () => existsSync(join(home, '.openclaw')) ||
294
+ existsSync(join(home, '.clawdbot')) ||
295
+ existsSync(join(home, '.moltbot')),
296
+ },
297
+ openhands: {
298
+ displayName: 'OpenHands',
299
+ skillsDirRel: '.openhands/skills',
300
+ globalSkillsRoot: () => join(home, '.openhands/skills'),
301
+ metaDotDir: '.openhands',
302
+ detect: () => existsSync(join(home, '.openhands')),
303
+ },
304
+ pi: {
305
+ displayName: 'Pi',
306
+ skillsDirRel: '.pi/skills',
307
+ globalSkillsRoot: () => join(home, '.pi/agent/skills'),
308
+ metaDotDir: '.pi',
309
+ detect: () => existsSync(join(home, '.pi/agent')),
310
+ },
311
+ pochi: {
312
+ displayName: 'Pochi',
313
+ skillsDirRel: '.pochi/skills',
314
+ globalSkillsRoot: () => join(home, '.pochi/skills'),
315
+ metaDotDir: '.pochi',
316
+ detect: () => existsSync(join(home, '.pochi')),
317
+ },
318
+ qoder: {
319
+ displayName: 'Qoder',
320
+ skillsDirRel: '.qoder/skills',
321
+ globalSkillsRoot: () => join(home, '.qoder/skills'),
322
+ metaDotDir: '.qoder',
323
+ detect: () => existsSync(join(home, '.qoder')),
324
+ },
325
+ 'qwen-code': {
326
+ displayName: 'Qwen Code',
327
+ skillsDirRel: '.qwen/skills',
328
+ globalSkillsRoot: () => join(home, '.qwen/skills'),
329
+ metaDotDir: '.qwen',
330
+ detect: () => existsSync(join(home, '.qwen')),
331
+ },
332
+ replit: {
333
+ displayName: 'Replit',
334
+ skillsDirRel: '.agents/skills',
335
+ globalSkillsRoot: () => join(cfg, 'agents/skills'),
336
+ metaDotDir: '.replit',
337
+ detect: () => existsSync(join(process.cwd(), '.replit')),
338
+ },
339
+ roo: {
340
+ displayName: 'Roo Code',
341
+ skillsDirRel: '.roo/skills',
342
+ globalSkillsRoot: () => join(home, '.roo/skills'),
343
+ metaDotDir: '.roo',
344
+ detect: () => existsSync(join(home, '.roo')),
345
+ },
346
+ trae: {
347
+ displayName: 'Trae',
348
+ skillsDirRel: '.trae/skills',
349
+ globalSkillsRoot: () => join(home, '.trae/skills'),
350
+ metaDotDir: '.trae',
351
+ detect: () => existsSync(join(home, '.trae')),
352
+ },
353
+ 'trae-cn': {
354
+ displayName: 'Trae CN',
355
+ skillsDirRel: '.trae/skills',
356
+ globalSkillsRoot: () => join(home, '.trae-cn/skills'),
357
+ metaDotDir: '.trae-cn',
358
+ detect: () => existsSync(join(home, '.trae-cn')),
359
+ },
360
+ universal: {
361
+ displayName: 'Universal',
362
+ skillsDirRel: '.agents/skills',
363
+ globalSkillsRoot: () => join(cfg, 'agents/skills'),
364
+ metaDotDir: '.agents',
365
+ detect: () => false,
366
+ },
367
+ warp: {
368
+ displayName: 'Warp',
369
+ skillsDirRel: '.agents/skills',
370
+ globalSkillsRoot: () => join(home, '.agents/skills'),
371
+ metaDotDir: '.warp',
372
+ detect: () => existsSync(join(home, '.warp')),
373
+ },
374
+ windsurf: {
375
+ displayName: 'Windsurf',
376
+ skillsDirRel: '.windsurf/skills',
377
+ globalSkillsRoot: () => join(home, '.codeium/windsurf/skills'),
378
+ metaDotDir: '.codeium',
379
+ detect: () => existsSync(join(home, '.codeium/windsurf')),
380
+ },
381
+ zencoder: {
382
+ displayName: 'Zencoder',
383
+ skillsDirRel: '.zencoder/skills',
384
+ globalSkillsRoot: () => join(home, '.zencoder/skills'),
385
+ metaDotDir: '.zencoder',
386
+ detect: () => existsSync(join(home, '.zencoder')),
387
+ },
388
+ };
389
+ function skillMdRel(skillsDirRel, slug) {
390
+ const base = skillsDirRel.replace(/\/$/, '');
391
+ return `${base}/${slug}/SKILL.md`;
392
+ }
393
+ function buildAgentPaths() {
394
+ const o = {};
395
+ for (const id of AGENT_IDS) {
396
+ const e = AGENT_REGISTRY[id];
397
+ o[id] = {
398
+ local: (slug) => skillMdRel(e.skillsDirRel, slug),
399
+ global: (slug) => join(e.globalSkillsRoot(), slug, 'SKILL.md'),
400
+ };
401
+ }
402
+ return o;
403
+ }
404
+ export const AGENT_PATHS = buildAgentPaths();
405
+ export function isAgentDetected(id) {
406
+ return AGENT_REGISTRY[id].detect();
407
+ }
408
+ //# sourceMappingURL=agent-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../src/lib/agent-registry.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,6 @@ export interface AgentDetection {
11
11
  name: string;
12
12
  detected: boolean;
13
13
  }
14
- export declare function detectAgents(scope: 'local' | 'global', cwd: string): AgentDetection[];
14
+ export declare function detectAgents(_scope: 'local' | 'global', _cwd: string): AgentDetection[];
15
15
  export declare function detectAutoAgents(scope: 'local' | 'global', cwd: string): AgentType[];
16
16
  //# sourceMappingURL=agents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AA2CD,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAErD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAOrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAIpF"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAGrD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAMvF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAIpF"}
@@ -1,59 +1,16 @@
1
- import { existsSync } from 'fs';
2
- import { join } from 'path';
3
- import { homedir } from 'os';
4
- import { AGENT_IDS } from '../types.js';
5
- const META = {
6
- 'claude-code': { displayName: 'Claude Code', dotDir: '.claude' },
7
- 'cursor': { displayName: 'Cursor', dotDir: '.cursor' },
8
- 'windsurf': { displayName: 'Windsurf', dotDir: '.windsurf' },
9
- 'codex': { displayName: 'Codex', dotDir: '.codex' },
10
- 'copilot': { displayName: 'GitHub Copilot', dotDir: '.github' },
11
- 'cline': { displayName: 'Cline', dotDir: '.cline' },
12
- 'roo': { displayName: 'Roo Code', dotDir: '.roo' },
13
- 'aider': { displayName: 'Aider', dotDir: '.aider' },
14
- 'continue': { displayName: 'Continue', dotDir: '.continue' },
15
- 'amp': { displayName: 'Amp', dotDir: '.amp' },
16
- 'zed': { displayName: 'Zed', dotDir: '.zed' },
17
- 'void': { displayName: 'Void', dotDir: '.void' },
18
- 'pear': { displayName: 'PearAI', dotDir: '.pear' },
19
- 'trae': { displayName: 'Trae', dotDir: '.trae' },
20
- 'aide': { displayName: 'Aide', dotDir: '.aide' },
21
- 'augment': { displayName: 'Augment', dotDir: '.augment' },
22
- 'supermaven': { displayName: 'Supermaven', dotDir: '.supermaven' },
23
- 'tabnine': { displayName: 'Tabnine', dotDir: '.tabnine' },
24
- 'cody': { displayName: 'Sourcegraph Cody', dotDir: '.cody' },
25
- 'qodo': { displayName: 'Qodo', dotDir: '.qodo' },
26
- 'bito': { displayName: 'Bito', dotDir: '.bito' },
27
- 'double': { displayName: 'Double', dotDir: '.double' },
28
- 'codestory': { displayName: 'CodeStory', dotDir: '.codestory' },
29
- 'mentat': { displayName: 'Mentat', dotDir: '.mentat' },
30
- 'goose': { displayName: 'Goose', dotDir: '.goose' },
31
- 'otto': { displayName: 'Otto', dotDir: '.otto' },
32
- 'sweep': { displayName: 'Sweep', dotDir: '.sweep' },
33
- 'devin': { displayName: 'Devin', dotDir: '.devin' },
34
- 'replit': { displayName: 'Replit Agent', dotDir: '.replit' },
35
- 'bolt': { displayName: 'Bolt', dotDir: '.bolt' },
36
- 'v0': { displayName: 'v0', dotDir: '.v0' },
37
- 'lovable': { displayName: 'Lovable', dotDir: '.lovable' },
38
- 'same': { displayName: 'Same.dev', dotDir: '.same' },
39
- 'manus': { displayName: 'Manus', dotDir: '.manus' },
40
- 'opencode': { displayName: 'OpenCode', dotDir: '.opencode' },
41
- 'kilo-code': { displayName: 'Kilo Code', dotDir: '.kilo-code' },
42
- 'gemini-cli': { displayName: 'Gemini CLI', dotDir: '.gemini' },
43
- 'agents': { displayName: 'Universal (.agents)', dotDir: '.agents' },
44
- };
1
+ import { AGENT_IDS, AGENT_REGISTRY, isAgentDetected } from './agent-registry.js';
45
2
  export function getAgentMeta(id) {
46
- return { id, ...META[id] };
3
+ const e = AGENT_REGISTRY[id];
4
+ return { id, displayName: e.displayName, dotDir: e.metaDotDir };
47
5
  }
48
6
  export function getDisplayName(id) {
49
- return META[id].displayName;
7
+ return AGENT_REGISTRY[id].displayName;
50
8
  }
51
- export function detectAgents(scope, cwd) {
52
- const base = scope === 'local' ? cwd : homedir();
9
+ export function detectAgents(_scope, _cwd) {
53
10
  return AGENT_IDS.map((id) => ({
54
11
  id,
55
- name: META[id].displayName,
56
- detected: existsSync(join(base, META[id].dotDir)),
12
+ name: AGENT_REGISTRY[id].displayName,
13
+ detected: isAgentDetected(id),
57
14
  }));
58
15
  }
59
16
  export function detectAutoAgents(scope, cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQjF,MAAM,UAAU,YAAY,CAAC,EAAa;IACxC,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAC7B,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAa;IAC1C,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;AACxC,CAAC;AAQD,MAAM,UAAU,YAAY,CAAC,MAA0B,EAAE,IAAY;IACnE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE;QACF,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,WAAW;QACpC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,GAAW;IACrE,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC"}
package/dist/lib/api.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { CRLResponse } from '@skillsai/crypto-sign';
1
2
  import type { CLISkill, RepoResponse, SearchResponse } from '../types.js';
2
3
  export declare class APIError extends Error {
3
4
  status: number;
@@ -6,5 +7,15 @@ export declare class APIError extends Error {
6
7
  export declare function fetchRepo(owner: string, repo: string): Promise<RepoResponse>;
7
8
  export declare function fetchSkill(owner: string, repo: string, slug: string): Promise<CLISkill>;
8
9
  export declare function searchSkills(query: string, limit?: number): Promise<SearchResponse>;
10
+ export interface ManifestResponse {
11
+ fqn: string;
12
+ version: string;
13
+ bundle: string;
14
+ manifestDigest: string | null;
15
+ manifestSignedAt: string | null;
16
+ rekorLogIndex: number | null;
17
+ }
18
+ export declare function fetchManifest(slug: string): Promise<ManifestResponse | null>;
19
+ export declare function fetchCRL(): Promise<CRLResponse | null>;
9
20
  export declare function recordDownload(skillId: string, agentType: string): void;
10
21
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E,qBAAa,QAAS,SAAQ,KAAK;IACd,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAmCD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAElF;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE7F;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAErF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQvE"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE1E,qBAAa,QAAS,SAAQ,KAAK;IACd,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAmCD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAElF;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE7F;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAErF;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAID,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAgBlF;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkB5D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQvE"}
package/dist/lib/api.js CHANGED
@@ -47,6 +47,49 @@ export async function fetchSkill(owner, repo, slug) {
47
47
  export async function searchSkills(query, limit = 10) {
48
48
  return apiFetch(`/search?${new URLSearchParams({ q: query, limit: String(limit) })}`);
49
49
  }
50
+ let crlCache = null;
51
+ export async function fetchManifest(slug) {
52
+ // API_BASE_URL = https://skillsauth.com/api/cli — strip the /api/cli suffix for the manifest endpoint
53
+ const origin = API_BASE_URL.replace(/\/api\/cli\/?$/, '');
54
+ const url = `${origin}/api/skills/${slug}/manifest`;
55
+ if (DEBUG)
56
+ console.error(`[debug] GET ${url}`);
57
+ try {
58
+ const res = await fetch(url, {
59
+ headers: { 'User-Agent': 'skillsauth-cli/3.0.1' },
60
+ signal: AbortSignal.timeout(10000),
61
+ });
62
+ if (res.status === 404 || res.status === 409)
63
+ return null;
64
+ if (!res.ok)
65
+ return null;
66
+ return res.json();
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ export async function fetchCRL() {
73
+ if (crlCache)
74
+ return crlCache;
75
+ const origin = API_BASE_URL.replace(/\/api\/cli\/?$/, '');
76
+ const url = `${origin}/api/crl`;
77
+ if (DEBUG)
78
+ console.error(`[debug] GET ${url}`);
79
+ try {
80
+ const res = await fetch(url, {
81
+ headers: { 'User-Agent': 'skillsauth-cli/3.0.1' },
82
+ signal: AbortSignal.timeout(5000),
83
+ });
84
+ if (!res.ok)
85
+ return null;
86
+ crlCache = (await res.json());
87
+ return crlCache;
88
+ }
89
+ catch {
90
+ return null;
91
+ }
92
+ }
50
93
  export function recordDownload(skillId, agentType) {
51
94
  if (NO_ANALYTICS)
52
95
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIrE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAO1F;AAwDD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,SAAS,EAAE,EACnB,KAAK,EAAE,YAAY,EACnB,KAAK,UAAQ,EACb,QAAQ,UAAQ,GACf,aAAa,EAAE,CAsDjB;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CA4B3F"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIrE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAO1F;AAuED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,SAAS,EAAE,EACnB,KAAK,EAAE,YAAY,EACnB,KAAK,UAAQ,EACb,QAAQ,UAAQ,GACf,aAAa,EAAE,CAsDjB;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CA4B3F"}