agent-skills-cli 1.0.9 → 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.
- package/README.md +110 -14
- package/dist/__tests__/git-auth.test.d.ts +11 -0
- package/dist/__tests__/git-auth.test.d.ts.map +1 -0
- package/dist/__tests__/git-auth.test.js +160 -0
- package/dist/__tests__/git-auth.test.js.map +1 -0
- package/dist/__tests__/skill-lock.test.d.ts +8 -0
- package/dist/__tests__/skill-lock.test.d.ts.map +1 -0
- package/dist/__tests__/skill-lock.test.js +104 -0
- package/dist/__tests__/skill-lock.test.js.map +1 -0
- package/dist/__tests__/skillsrc.test.d.ts +11 -0
- package/dist/__tests__/skillsrc.test.d.ts.map +1 -0
- package/dist/__tests__/skillsrc.test.js +185 -0
- package/dist/__tests__/skillsrc.test.js.map +1 -0
- package/dist/__tests__/source-parser.test.d.ts +16 -0
- package/dist/__tests__/source-parser.test.d.ts.map +1 -0
- package/dist/__tests__/source-parser.test.js +231 -0
- package/dist/__tests__/source-parser.test.js.map +1 -0
- package/dist/adapters/adapter.d.ts +51 -0
- package/dist/adapters/adapter.d.ts.map +1 -0
- package/dist/adapters/adapter.js +51 -0
- package/dist/adapters/adapter.js.map +1 -0
- package/dist/adapters/claude.d.ts +16 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/claude.js +30 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/copilot.d.ts +16 -0
- package/dist/adapters/copilot.d.ts.map +1 -0
- package/dist/adapters/copilot.js +32 -0
- package/dist/adapters/copilot.js.map +1 -0
- package/dist/adapters/cursor.d.ts +17 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +34 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +10 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/universal.d.ts +12 -0
- package/dist/adapters/universal.d.ts.map +1 -0
- package/dist/adapters/universal.js +16 -0
- package/dist/adapters/universal.js.map +1 -0
- package/dist/cli/agents.d.ts +11 -0
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +47 -0
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/commands/convert.d.ts.map +1 -1
- package/dist/cli/commands/convert.js +16 -65
- package/dist/cli/commands/convert.js.map +1 -1
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +15 -7
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/install.d.ts +8 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +203 -90
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/score.d.ts +10 -0
- package/dist/cli/commands/score.d.ts.map +1 -0
- package/dist/cli/commands/score.js +91 -0
- package/dist/cli/commands/score.js.map +1 -0
- package/dist/cli/commands/show.d.ts.map +1 -1
- package/dist/cli/commands/show.js +8 -0
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/submit-repo.d.ts +11 -0
- package/dist/cli/commands/submit-repo.d.ts.map +1 -0
- package/dist/cli/commands/submit-repo.js +133 -0
- package/dist/cli/commands/submit-repo.js.map +1 -0
- package/dist/cli/commands/submit.d.ts.map +1 -1
- package/dist/cli/commands/submit.js +10 -0
- package/dist/cli/commands/submit.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/git-auth.d.ts +74 -0
- package/dist/core/git-auth.d.ts.map +1 -0
- package/dist/core/git-auth.js +299 -0
- package/dist/core/git-auth.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/quality.d.ts +48 -0
- package/dist/core/quality.d.ts.map +1 -0
- package/dist/core/quality.js +241 -0
- package/dist/core/quality.js.map +1 -0
- package/dist/core/skill-lock.d.ts +1 -1
- package/dist/core/skill-lock.d.ts.map +1 -1
- package/dist/core/skillsrc.d.ts +65 -0
- package/dist/core/skillsrc.d.ts.map +1 -0
- package/dist/core/skillsrc.js +161 -0
- package/dist/core/skillsrc.js.map +1 -0
- package/dist/core/source-parser.d.ts +9 -1
- package/dist/core/source-parser.d.ts.map +1 -1
- package/dist/core/source-parser.js +85 -6
- package/dist/core/source-parser.js.map +1 -1
- package/package.json +9 -3
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* .skillsrc Configuration File Module
|
|
3
|
+
*
|
|
4
|
+
* Supports project-level and user-level configuration for skill sources,
|
|
5
|
+
* registries, and installation defaults.
|
|
6
|
+
*
|
|
7
|
+
* Search order:
|
|
8
|
+
* 1. cwd/.skillsrc (YAML/JSON)
|
|
9
|
+
* 2. cwd/.skillsrc.json
|
|
10
|
+
* 3. ~/.skillsrc
|
|
11
|
+
* 4. ~/.skillsrc.json
|
|
12
|
+
*/
|
|
13
|
+
import { readFile } from 'fs/promises';
|
|
14
|
+
import { existsSync } from 'fs';
|
|
15
|
+
import { join } from 'path';
|
|
16
|
+
import { homedir } from 'os';
|
|
17
|
+
// ─── Config File Loading ─────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Try to parse a file as JSON or simple YAML-like key-value format
|
|
20
|
+
*/
|
|
21
|
+
async function parseConfigFile(filePath) {
|
|
22
|
+
try {
|
|
23
|
+
const content = await readFile(filePath, 'utf-8');
|
|
24
|
+
const trimmed = content.trim();
|
|
25
|
+
// Try JSON first
|
|
26
|
+
if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
|
|
27
|
+
return JSON.parse(trimmed);
|
|
28
|
+
}
|
|
29
|
+
// Try JSON (sometimes files don't start with { if they have comments)
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(trimmed);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Not JSON — try simple YAML-like format
|
|
35
|
+
}
|
|
36
|
+
// Simple YAML-like parsing (handles common cases)
|
|
37
|
+
return parseSimpleYaml(trimmed);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse a simple YAML-like format for .skillsrc files
|
|
45
|
+
* Handles nested objects and arrays with basic indentation
|
|
46
|
+
*/
|
|
47
|
+
function parseSimpleYaml(content) {
|
|
48
|
+
try {
|
|
49
|
+
const result = {};
|
|
50
|
+
const lines = content.split('\n').filter(l => l.trim() && !l.trim().startsWith('#'));
|
|
51
|
+
let currentSection = null;
|
|
52
|
+
let currentSource = null;
|
|
53
|
+
for (const line of lines) {
|
|
54
|
+
const trimmed = line.trim();
|
|
55
|
+
const indent = line.length - line.trimStart().length;
|
|
56
|
+
// Top-level section
|
|
57
|
+
if (indent === 0 && trimmed.endsWith(':')) {
|
|
58
|
+
currentSection = trimmed.slice(0, -1);
|
|
59
|
+
if (currentSection === 'sources') {
|
|
60
|
+
result.sources = result.sources || [];
|
|
61
|
+
}
|
|
62
|
+
else if (currentSection === 'defaults') {
|
|
63
|
+
result.defaults = result.defaults || {};
|
|
64
|
+
}
|
|
65
|
+
currentSource = null;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// Array item (- prefix)
|
|
69
|
+
if (trimmed.startsWith('- ') && currentSection === 'sources') {
|
|
70
|
+
if (currentSource && Object.keys(currentSource).length > 0) {
|
|
71
|
+
result.sources.push(currentSource);
|
|
72
|
+
}
|
|
73
|
+
currentSource = {};
|
|
74
|
+
const kv = trimmed.slice(2).trim();
|
|
75
|
+
if (kv.includes(':')) {
|
|
76
|
+
const [key, ...rest] = kv.split(':');
|
|
77
|
+
const value = rest.join(':').trim();
|
|
78
|
+
currentSource[key.trim()] = value;
|
|
79
|
+
}
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
// Key-value pair within current context
|
|
83
|
+
if (trimmed.includes(':') && !trimmed.startsWith('#')) {
|
|
84
|
+
const [key, ...rest] = trimmed.split(':');
|
|
85
|
+
const value = rest.join(':').trim();
|
|
86
|
+
if (currentSource && indent >= 4) {
|
|
87
|
+
currentSource[key.trim()] = value === 'true' ? true : value === 'false' ? false : value;
|
|
88
|
+
}
|
|
89
|
+
else if (currentSection === 'defaults' && result.defaults) {
|
|
90
|
+
const k = key.trim();
|
|
91
|
+
if (k === 'global') {
|
|
92
|
+
result.defaults.global = value === 'true';
|
|
93
|
+
}
|
|
94
|
+
else if (k === 'agents') {
|
|
95
|
+
result.defaults.agents = value.split(',').map(a => a.trim()).filter(Boolean);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Push last source
|
|
101
|
+
if (currentSource && Object.keys(currentSource).length > 0) {
|
|
102
|
+
result.sources = result.sources || [];
|
|
103
|
+
result.sources.push(currentSource);
|
|
104
|
+
}
|
|
105
|
+
return Object.keys(result).length > 0 ? result : null;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// ─── Main API ────────────────────────────────────────────────────────
|
|
112
|
+
/**
|
|
113
|
+
* Load .skillsrc configuration from project or user directory
|
|
114
|
+
*
|
|
115
|
+
* Searches in order:
|
|
116
|
+
* 1. cwd/.skillsrc
|
|
117
|
+
* 2. cwd/.skillsrc.json
|
|
118
|
+
* 3. ~/.skillsrc
|
|
119
|
+
* 4. ~/.skillsrc.json
|
|
120
|
+
*
|
|
121
|
+
* Returns the first valid config found, or null if none exist.
|
|
122
|
+
*/
|
|
123
|
+
export async function loadSkillsRC(cwd) {
|
|
124
|
+
const searchDirs = [
|
|
125
|
+
cwd || process.cwd(),
|
|
126
|
+
homedir(),
|
|
127
|
+
];
|
|
128
|
+
const fileNames = ['.skillsrc', '.skillsrc.json'];
|
|
129
|
+
for (const dir of searchDirs) {
|
|
130
|
+
for (const fileName of fileNames) {
|
|
131
|
+
const filePath = join(dir, fileName);
|
|
132
|
+
if (existsSync(filePath)) {
|
|
133
|
+
const config = await parseConfigFile(filePath);
|
|
134
|
+
if (config)
|
|
135
|
+
return config;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get all configured sources from .skillsrc, optionally filtered by type
|
|
143
|
+
*/
|
|
144
|
+
export function getSourcesByType(config, type) {
|
|
145
|
+
return (config.sources || []).filter(s => s.type === type);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get the npm registry URL for a given scope from .skillsrc
|
|
149
|
+
*/
|
|
150
|
+
export function getRegistryForScope(config, scope) {
|
|
151
|
+
const source = (config.sources || []).find(s => s.type === 'npm' && s.scope === scope);
|
|
152
|
+
return source?.registry;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get the auth env var for a given source URL
|
|
156
|
+
*/
|
|
157
|
+
export function getAuthEnvVar(config, url) {
|
|
158
|
+
const source = (config.sources || []).find(s => s.url && url.includes(s.url));
|
|
159
|
+
return source?.envVar;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=skillsrc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillsrc.js","sourceRoot":"","sources":["../../src/core/skillsrc.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,23 @@
|
|
|
7
7
|
* - GitHub URLs: https://github.com/owner/repo
|
|
8
8
|
* - GitHub shorthand: owner/repo
|
|
9
9
|
* - GitLab URLs: https://gitlab.com/owner/repo
|
|
10
|
+
* - Bitbucket URLs: https://bitbucket.org/owner/repo
|
|
11
|
+
* - SSH URLs: git@host:owner/repo.git
|
|
12
|
+
* - npm packages: npm:@scope/package
|
|
13
|
+
* - Custom/self-hosted Git: https://git.company.com/team/repo
|
|
10
14
|
* - Direct SKILL.md URLs
|
|
11
15
|
* - Generic git URLs
|
|
12
16
|
*/
|
|
13
17
|
export interface ParsedSource {
|
|
14
|
-
type: 'local' | 'github' | 'gitlab' | 'git' | 'direct-url' | 'well-known';
|
|
18
|
+
type: 'local' | 'github' | 'gitlab' | 'bitbucket' | 'npm' | 'private-git' | 'direct-url' | 'well-known';
|
|
15
19
|
url: string;
|
|
16
20
|
localPath?: string;
|
|
17
21
|
ref?: string;
|
|
18
22
|
subpath?: string;
|
|
23
|
+
/** npm registry URL (for npm sources) */
|
|
24
|
+
registry?: string;
|
|
25
|
+
/** SSH host (for SSH URLs) */
|
|
26
|
+
sshHost?: string;
|
|
19
27
|
}
|
|
20
28
|
/**
|
|
21
29
|
* Parse a source string into a structured format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-parser.d.ts","sourceRoot":"","sources":["../../src/core/source-parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"source-parser.d.ts","sourceRoot":"","sources":["../../src/core/source-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;IACxG,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AA2CD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAiLvD;AAkDD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAkBhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAYvE"}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
* - GitHub URLs: https://github.com/owner/repo
|
|
8
8
|
* - GitHub shorthand: owner/repo
|
|
9
9
|
* - GitLab URLs: https://gitlab.com/owner/repo
|
|
10
|
+
* - Bitbucket URLs: https://bitbucket.org/owner/repo
|
|
11
|
+
* - SSH URLs: git@host:owner/repo.git
|
|
12
|
+
* - npm packages: npm:@scope/package
|
|
13
|
+
* - Custom/self-hosted Git: https://git.company.com/team/repo
|
|
10
14
|
* - Direct SKILL.md URLs
|
|
11
15
|
* - Generic git URLs
|
|
12
16
|
*/
|
|
@@ -49,6 +53,26 @@ function isDirectSkillUrl(input) {
|
|
|
49
53
|
* Parse a source string into a structured format
|
|
50
54
|
*/
|
|
51
55
|
export function parseSource(input) {
|
|
56
|
+
// npm package: npm:@scope/package or npm:package-name
|
|
57
|
+
const npmMatch = input.match(/^npm:(.+)$/);
|
|
58
|
+
if (npmMatch) {
|
|
59
|
+
return {
|
|
60
|
+
type: 'npm',
|
|
61
|
+
url: npmMatch[1],
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// SSH URL: git@hostname:owner/repo.git
|
|
65
|
+
const sshMatch = input.match(/^git@([^:]+):(.+?)(?:\.git)?$/);
|
|
66
|
+
if (sshMatch) {
|
|
67
|
+
const [, host, path] = sshMatch;
|
|
68
|
+
const parts = path.split('/');
|
|
69
|
+
return {
|
|
70
|
+
type: 'private-git',
|
|
71
|
+
url: input,
|
|
72
|
+
sshHost: host,
|
|
73
|
+
subpath: parts.length > 2 ? parts.slice(2).join('/') : undefined,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
52
76
|
// Local path: absolute, relative, or current directory
|
|
53
77
|
if (isLocalPath(input)) {
|
|
54
78
|
const resolvedPath = resolve(input);
|
|
@@ -127,6 +151,37 @@ export function parseSource(input) {
|
|
|
127
151
|
url: `https://gitlab.com/${owner}/${cleanRepo}.git`,
|
|
128
152
|
};
|
|
129
153
|
}
|
|
154
|
+
// Bitbucket URL with path: https://bitbucket.org/owner/repo/src/branch/path
|
|
155
|
+
const bitbucketSrcMatch = input.match(/bitbucket\.org\/([^/]+)\/([^/]+)\/src\/([^/]+)\/(.+)/);
|
|
156
|
+
if (bitbucketSrcMatch) {
|
|
157
|
+
const [, owner, repo, ref, subpath] = bitbucketSrcMatch;
|
|
158
|
+
return {
|
|
159
|
+
type: 'bitbucket',
|
|
160
|
+
url: `https://bitbucket.org/${owner}/${repo}.git`,
|
|
161
|
+
ref,
|
|
162
|
+
subpath,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
// Bitbucket URL with branch: https://bitbucket.org/owner/repo/src/branch
|
|
166
|
+
const bitbucketBranchMatch = input.match(/bitbucket\.org\/([^/]+)\/([^/]+)\/src\/([^/]+)$/);
|
|
167
|
+
if (bitbucketBranchMatch) {
|
|
168
|
+
const [, owner, repo, ref] = bitbucketBranchMatch;
|
|
169
|
+
return {
|
|
170
|
+
type: 'bitbucket',
|
|
171
|
+
url: `https://bitbucket.org/${owner}/${repo}.git`,
|
|
172
|
+
ref,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
// Bitbucket URL: https://bitbucket.org/owner/repo
|
|
176
|
+
const bitbucketRepoMatch = input.match(/bitbucket\.org\/([^/]+)\/([^/]+)/);
|
|
177
|
+
if (bitbucketRepoMatch) {
|
|
178
|
+
const [, owner, repo] = bitbucketRepoMatch;
|
|
179
|
+
const cleanRepo = repo.replace(/\.git$/, '');
|
|
180
|
+
return {
|
|
181
|
+
type: 'bitbucket',
|
|
182
|
+
url: `https://bitbucket.org/${owner}/${cleanRepo}.git`,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
130
185
|
// GitHub shorthand: owner/repo or owner/repo/path/to/skill
|
|
131
186
|
const shorthandMatch = input.match(/^([^/]+)\/([^/]+)(?:\/(.+))?$/);
|
|
132
187
|
if (shorthandMatch && !input.includes(':') && !input.startsWith('.') && !input.startsWith('/')) {
|
|
@@ -137,16 +192,23 @@ export function parseSource(input) {
|
|
|
137
192
|
subpath,
|
|
138
193
|
};
|
|
139
194
|
}
|
|
140
|
-
// Well-known skills: arbitrary HTTP(S) URLs that aren't GitHub/GitLab
|
|
195
|
+
// Well-known skills: arbitrary HTTP(S) URLs that aren't GitHub/GitLab/Bitbucket
|
|
141
196
|
if (isWellKnownUrl(input)) {
|
|
142
197
|
return {
|
|
143
198
|
type: 'well-known',
|
|
144
199
|
url: input,
|
|
145
200
|
};
|
|
146
201
|
}
|
|
147
|
-
//
|
|
202
|
+
// Custom/self-hosted Git HTTPS URL (not a known host)
|
|
203
|
+
if (input.startsWith('http://') || input.startsWith('https://')) {
|
|
204
|
+
return {
|
|
205
|
+
type: 'private-git',
|
|
206
|
+
url: input,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// Fallback: treat as generic git URL
|
|
148
210
|
return {
|
|
149
|
-
type: 'git',
|
|
211
|
+
type: 'private-git',
|
|
150
212
|
url: input,
|
|
151
213
|
};
|
|
152
214
|
}
|
|
@@ -163,6 +225,7 @@ function isWellKnownUrl(input) {
|
|
|
163
225
|
const excludedHosts = [
|
|
164
226
|
'github.com',
|
|
165
227
|
'gitlab.com',
|
|
228
|
+
'bitbucket.org',
|
|
166
229
|
'huggingface.co',
|
|
167
230
|
'raw.githubusercontent.com',
|
|
168
231
|
];
|
|
@@ -177,7 +240,16 @@ function isWellKnownUrl(input) {
|
|
|
177
240
|
if (input.endsWith('.git')) {
|
|
178
241
|
return false;
|
|
179
242
|
}
|
|
180
|
-
|
|
243
|
+
// Only match if the URL explicitly has a well-known or skills path
|
|
244
|
+
// This prevents arbitrary HTTPS URLs from being classified as well-known
|
|
245
|
+
// instead of private-git
|
|
246
|
+
const wellKnownPatterns = [
|
|
247
|
+
'/.well-known/skills',
|
|
248
|
+
'/.well-known/agent-skills',
|
|
249
|
+
'/skills.json',
|
|
250
|
+
'/skill-registry',
|
|
251
|
+
];
|
|
252
|
+
return wellKnownPatterns.some(pattern => parsed.pathname.includes(pattern));
|
|
181
253
|
}
|
|
182
254
|
catch {
|
|
183
255
|
return false;
|
|
@@ -191,10 +263,15 @@ export function getOwnerRepo(parsed) {
|
|
|
191
263
|
return null;
|
|
192
264
|
}
|
|
193
265
|
// Extract from git URL: https://github.com/owner/repo.git or similar
|
|
194
|
-
const match = parsed.url.match(/(?:github|gitlab)\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
266
|
+
const match = parsed.url.match(/(?:github|gitlab|bitbucket)\.(?:com|org)\/([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
195
267
|
if (match) {
|
|
196
268
|
return `${match[1]}/${match[2]}`;
|
|
197
269
|
}
|
|
270
|
+
// Extract from SSH URL: git@host:owner/repo.git
|
|
271
|
+
const sshOwnerRepo = parsed.url.match(/^git@[^:]+:([^/]+)\/([^/]+?)(?:\.git)?$/);
|
|
272
|
+
if (sshOwnerRepo) {
|
|
273
|
+
return `${sshOwnerRepo[1]}/${sshOwnerRepo[2]}`;
|
|
274
|
+
}
|
|
198
275
|
return null;
|
|
199
276
|
}
|
|
200
277
|
/**
|
|
@@ -205,9 +282,11 @@ export function getSourceTypeDisplay(type) {
|
|
|
205
282
|
case 'local': return 'Local';
|
|
206
283
|
case 'github': return 'GitHub';
|
|
207
284
|
case 'gitlab': return 'GitLab';
|
|
285
|
+
case 'bitbucket': return 'Bitbucket';
|
|
286
|
+
case 'npm': return 'npm';
|
|
287
|
+
case 'private-git': return 'Private Git';
|
|
208
288
|
case 'direct-url': return 'Direct URL';
|
|
209
289
|
case 'well-known': return 'Well-Known';
|
|
210
|
-
case 'git': return 'Git';
|
|
211
290
|
default: return 'Unknown';
|
|
212
291
|
}
|
|
213
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-parser.js","sourceRoot":"","sources":["../../src/core/source-parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"source-parser.js","sourceRoot":"","sources":["../../src/core/source-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAc3C;;GAEG;AACH,SAAS,WAAW,CAAC,KAAa;IAC9B,OAAO,CACH,UAAU,CAAC,KAAK,CAAC;QACjB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QACtB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACvB,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI;QACd,yCAAyC;QACzC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAChC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACnC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,2EAA2E;IAC3E,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,sDAAsD;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO;YACH,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;SACnB,CAAC;IACN,CAAC;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO;YACH,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC;IACN,CAAC;IAED,uDAAuD;IACvD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO;YACH,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,YAAY;YACjB,SAAS,EAAE,YAAY;SAC1B,CAAC;IACN,CAAC;IAED,0CAA0C;IAC1C,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACH,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,KAAK;SACb,CAAC;IACN,CAAC;IAED,gFAAgF;IAChF,MAAM,uBAAuB,GAAG,KAAK,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAClG,IAAI,uBAAuB,EAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,uBAAuB,CAAC;QAC9D,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,IAAI,MAAM;YAC9C,GAAG;YACH,OAAO;SACV,CAAC;IACN,CAAC;IAED,yEAAyE;IACzE,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrF,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC;QAC7C,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,IAAI,MAAM;YAC9C,GAAG;SACN,CAAC;IACN,CAAC;IAED,4CAA4C;IAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC;QACxC,MAAM,SAAS,GAAG,IAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,SAAS,MAAM;SACtD,CAAC;IACN,CAAC;IAED,yEAAyE;IACzE,MAAM,uBAAuB,GAAG,KAAK,CAAC,KAAK,CACvC,uDAAuD,CAC1D,CAAC;IACF,IAAI,uBAAuB,EAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,uBAAuB,CAAC;QAC9D,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,IAAI,MAAM;YAC9C,GAAG;YACH,OAAO;SACV,CAAC;IACN,CAAC;IAED,2EAA2E;IAC3E,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxF,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC;QAC7C,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,IAAI,MAAM;YAC9C,GAAG;SACN,CAAC;IACN,CAAC;IAED,4CAA4C;IAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC;QACxC,MAAM,SAAS,GAAG,IAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,SAAS,MAAM;SACtD,CAAC;IACN,CAAC;IAED,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC9F,IAAI,iBAAiB,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC;QACxD,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,yBAAyB,KAAK,IAAI,IAAI,MAAM;YACjD,GAAG;YACH,OAAO;SACV,CAAC;IACN,CAAC;IAED,yEAAyE;IACzE,MAAM,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC5F,IAAI,oBAAoB,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,oBAAoB,CAAC;QAClD,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,yBAAyB,KAAK,IAAI,IAAI,MAAM;YACjD,GAAG;SACN,CAAC;IACN,CAAC;IAED,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC3E,IAAI,kBAAkB,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,kBAAkB,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,yBAAyB,KAAK,IAAI,SAAS,MAAM;SACzD,CAAC;IACN,CAAC;IAED,2DAA2D;IAC3D,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACpE,IAAI,cAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7F,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC;QAChD,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,sBAAsB,KAAK,IAAI,IAAI,MAAM;YAC9C,OAAO;SACV,CAAC;IACN,CAAC;IAED,gFAAgF;IAChF,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACH,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,KAAK;SACb,CAAC;IACN,CAAC;IAED,sDAAsD;IACtD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,OAAO;YACH,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,KAAK;SACb,CAAC;IACN,CAAC;IAED,qCAAqC;IACrC,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,KAAK;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAE9B,uDAAuD;QACvD,MAAM,aAAa,GAAG;YAClB,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,gBAAgB;YAChB,2BAA2B;SAC9B,CAAC;QACF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,wDAAwD;QACxD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,4CAA4C;QAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,mEAAmE;QACnE,yEAAyE;QACzE,yBAAyB;QACzB,MAAM,iBAAiB,GAAG;YACtB,qBAAqB;YACrB,2BAA2B;YAC3B,cAAc;YACd,iBAAiB;SACpB,CAAC;QACF,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qEAAqE;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACzG,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC;IAED,gDAAgD;IAChD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACjF,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA0B;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;QACzC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC9B,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-skills-cli",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Universal CLI for Agent Skills - works with 42 AI agents including Cursor, Claude Code, GitHub Copilot, Windsurf, Cline, Zed, and more",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"description": "Universal CLI for Agent Skills - works with 42 AI agents including Cursor, Claude Code, GitHub Copilot, Windsurf, Cline, Zed, and more. Supports private Git repos, npm packages, and enterprise configurations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -26,7 +26,13 @@
|
|
|
26
26
|
"github-copilot",
|
|
27
27
|
"openai-codex",
|
|
28
28
|
"skills",
|
|
29
|
-
"marketplace"
|
|
29
|
+
"marketplace",
|
|
30
|
+
"private-git",
|
|
31
|
+
"npm-packages",
|
|
32
|
+
"bitbucket",
|
|
33
|
+
"ssh",
|
|
34
|
+
"enterprise",
|
|
35
|
+
"skillsrc"
|
|
30
36
|
],
|
|
31
37
|
"author": "Karanjot786",
|
|
32
38
|
"license": "MIT",
|