skillpkg-core 0.5.2 → 0.5.4

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.
@@ -0,0 +1,26 @@
1
+ import type { Skill } from '../types.js';
2
+ import type { FetchResult, FetcherOptions } from './types.js';
3
+ import type { SkillFetcher, SkillMetadata } from '../resolver/types.js';
4
+ import type { SkillFetcherAdapter } from '../installer/types.js';
5
+ /**
6
+ * Fetch a skill from any supported source
7
+ */
8
+ export declare function fetchSkill(source: string, options?: FetcherOptions): Promise<FetchResult>;
9
+ /**
10
+ * Parse SKILL.md content into Skill object
11
+ */
12
+ export declare function parseSkillMd(content: string): Skill | null;
13
+ /**
14
+ * Fetch only metadata (for dependency resolution)
15
+ */
16
+ export declare function fetchMetadata(source: string, options?: FetcherOptions): Promise<SkillMetadata | null>;
17
+ /**
18
+ * Create a SkillFetcher adapter for use with DependencyResolver
19
+ */
20
+ export declare function createSkillFetcher(options?: FetcherOptions): SkillFetcher;
21
+ /**
22
+ * Create a SkillFetcherAdapter for use with Installer
23
+ * This is the recommended adapter for full installation workflows
24
+ */
25
+ export declare function createSkillFetcherAdapter(options?: FetcherOptions): SkillFetcherAdapter;
26
+ //# sourceMappingURL=fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/fetcher/fetcher.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAG5E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAuBtB;AAgLD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAsB1D;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAW/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAU7E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,cAAmB,GAAG,mBAAmB,CAiB3F"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Unified skill fetcher
3
+ *
4
+ * Fetches skills from various sources (GitHub, Gist, URL, local, pack)
5
+ */
6
+ import { readFile, stat } from 'fs/promises';
7
+ import { existsSync } from 'fs';
8
+ import { join, resolve } from 'path';
9
+ import matter from 'gray-matter';
10
+ import { parseSource, normalizeSource } from './source-parser.js';
11
+ import { detectSkillMd } from '../github/search.js';
12
+ /**
13
+ * Fetch a skill from any supported source
14
+ */
15
+ export async function fetchSkill(source, options = {}) {
16
+ try {
17
+ const parsed = parseSource(source);
18
+ const skill = await fetchByType(parsed, options);
19
+ if (!skill) {
20
+ return {
21
+ success: false,
22
+ error: `Failed to fetch skill from: ${source}`,
23
+ };
24
+ }
25
+ return {
26
+ success: true,
27
+ skill,
28
+ sourceUrl: normalizeSource(source),
29
+ };
30
+ }
31
+ catch (error) {
32
+ return {
33
+ success: false,
34
+ error: error instanceof Error ? error.message : String(error),
35
+ };
36
+ }
37
+ }
38
+ /**
39
+ * Fetch skill by parsed source type
40
+ */
41
+ async function fetchByType(parsed, options) {
42
+ switch (parsed.type) {
43
+ case 'github':
44
+ return fetchFromGitHub(parsed.value, options);
45
+ case 'gist':
46
+ return fetchFromGist(parsed.value, options);
47
+ case 'url':
48
+ return fetchFromUrl(parsed.value, options);
49
+ case 'local':
50
+ return fetchFromLocal(parsed.value);
51
+ case 'pack':
52
+ return fetchFromPack(parsed.value);
53
+ default:
54
+ return null;
55
+ }
56
+ }
57
+ /**
58
+ * Fetch skill from GitHub repository
59
+ */
60
+ async function fetchFromGitHub(repo, options) {
61
+ const token = options.githubToken || process.env.GITHUB_TOKEN;
62
+ // Detect SKILL.md location
63
+ const detection = await detectSkillMd(repo, token);
64
+ if (!detection.hasSkill || !detection.skillFile) {
65
+ return null;
66
+ }
67
+ // Fetch raw content
68
+ const rawUrl = `https://raw.githubusercontent.com/${repo}/HEAD/${detection.skillFile}`;
69
+ const headers = {
70
+ 'User-Agent': 'skillpkg',
71
+ };
72
+ if (token) {
73
+ headers['Authorization'] = `token ${token}`;
74
+ }
75
+ try {
76
+ const response = await fetch(rawUrl, { headers });
77
+ if (!response.ok) {
78
+ return null;
79
+ }
80
+ const content = await response.text();
81
+ return parseSkillMd(content);
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ /**
88
+ * Fetch skill from GitHub Gist
89
+ */
90
+ async function fetchFromGist(gistId, options) {
91
+ const token = options.githubToken || process.env.GITHUB_TOKEN;
92
+ const headers = {
93
+ Accept: 'application/vnd.github.v3+json',
94
+ 'User-Agent': 'skillpkg',
95
+ };
96
+ if (token) {
97
+ headers.Authorization = `token ${token}`;
98
+ }
99
+ const response = await fetch(`https://api.github.com/gists/${gistId}`, {
100
+ headers,
101
+ });
102
+ if (!response.ok) {
103
+ return null;
104
+ }
105
+ const data = await response.json();
106
+ // Find SKILL.md file
107
+ const files = data.files || {};
108
+ const skillFile = Object.values(files).find((f) => {
109
+ const filename = f.filename?.toLowerCase() || '';
110
+ return filename === 'skill.md' || filename.endsWith('/skill.md');
111
+ });
112
+ if (!skillFile?.content) {
113
+ return null;
114
+ }
115
+ return parseSkillMd(skillFile.content);
116
+ }
117
+ /**
118
+ * Fetch skill from URL
119
+ */
120
+ async function fetchFromUrl(url, options) {
121
+ const controller = new AbortController();
122
+ const timeoutId = options.timeout
123
+ ? setTimeout(() => controller.abort(), options.timeout)
124
+ : undefined;
125
+ try {
126
+ const response = await fetch(url, {
127
+ redirect: 'follow',
128
+ signal: controller.signal,
129
+ });
130
+ if (!response.ok) {
131
+ return null;
132
+ }
133
+ const content = await response.text();
134
+ return parseSkillMd(content);
135
+ }
136
+ finally {
137
+ if (timeoutId) {
138
+ clearTimeout(timeoutId);
139
+ }
140
+ }
141
+ }
142
+ /**
143
+ * Fetch skill from local path
144
+ */
145
+ async function fetchFromLocal(path) {
146
+ const resolvedPath = resolve(path);
147
+ // Check for SKILL.md in directory
148
+ const skillMdPaths = [
149
+ join(resolvedPath, 'SKILL.md'),
150
+ join(resolvedPath, 'skill.md'),
151
+ resolvedPath, // Maybe it's the file itself
152
+ ];
153
+ for (const skillPath of skillMdPaths) {
154
+ if (existsSync(skillPath)) {
155
+ try {
156
+ const fileStat = await stat(skillPath);
157
+ if (fileStat.isDirectory()) {
158
+ continue;
159
+ }
160
+ const content = await readFile(skillPath, 'utf-8');
161
+ return parseSkillMd(content);
162
+ }
163
+ catch {
164
+ continue;
165
+ }
166
+ }
167
+ }
168
+ return null;
169
+ }
170
+ /**
171
+ * Fetch skill from .skillpkg pack file
172
+ */
173
+ async function fetchFromPack(_packPath) {
174
+ // Pack format is a tarball with SKILL.md inside
175
+ // For now, return null - implement when needed
176
+ // TODO: Implement pack file parsing
177
+ return null;
178
+ }
179
+ /**
180
+ * Parse SKILL.md content into Skill object
181
+ */
182
+ export function parseSkillMd(content) {
183
+ try {
184
+ const { data, content: body } = matter(content);
185
+ // Validate required fields
186
+ if (!data.name || typeof data.name !== 'string') {
187
+ return null;
188
+ }
189
+ return {
190
+ schema: data.schema || '1.0',
191
+ name: data.name,
192
+ version: data.version || '1.0.0',
193
+ description: data.description || '',
194
+ author: data.author,
195
+ keywords: data.keywords || data.tags,
196
+ dependencies: data.dependencies,
197
+ instructions: body.trim(),
198
+ };
199
+ }
200
+ catch {
201
+ return null;
202
+ }
203
+ }
204
+ /**
205
+ * Fetch only metadata (for dependency resolution)
206
+ */
207
+ export async function fetchMetadata(source, options = {}) {
208
+ const result = await fetchSkill(source, options);
209
+ if (!result.success || !result.skill) {
210
+ return null;
211
+ }
212
+ return {
213
+ name: result.skill.name,
214
+ version: result.skill.version,
215
+ dependencies: result.skill.dependencies,
216
+ };
217
+ }
218
+ /**
219
+ * Create a SkillFetcher adapter for use with DependencyResolver
220
+ */
221
+ export function createSkillFetcher(options = {}) {
222
+ return {
223
+ async fetchMetadata(source) {
224
+ return fetchMetadata(source, options);
225
+ },
226
+ async fetchSkill(source) {
227
+ const result = await fetchSkill(source, options);
228
+ return result.success ? result.skill || null : null;
229
+ },
230
+ };
231
+ }
232
+ /**
233
+ * Create a SkillFetcherAdapter for use with Installer
234
+ * This is the recommended adapter for full installation workflows
235
+ */
236
+ export function createSkillFetcherAdapter(options = {}) {
237
+ return {
238
+ async fetchMetadata(source) {
239
+ const meta = await fetchMetadata(source, options);
240
+ if (!meta)
241
+ return null;
242
+ return {
243
+ name: meta.name,
244
+ version: meta.version,
245
+ dependencies: meta.dependencies,
246
+ };
247
+ },
248
+ async fetchSkill(source) {
249
+ const result = await fetchSkill(source, options);
250
+ return result.success ? result.skill || null : null;
251
+ },
252
+ };
253
+ }
254
+ //# sourceMappingURL=fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/fetcher/fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Fetcher module - Unified skill fetching from various sources
3
+ *
4
+ * Supports:
5
+ * - GitHub: github:user/repo or user/repo
6
+ * - Gist: gist:id
7
+ * - URL: https://... or http://...
8
+ * - Local: ./path, ../path, /absolute/path
9
+ * - Pack: *.skillpkg files
10
+ */
11
+ export * from './types.js';
12
+ export * from './source-parser.js';
13
+ export * from './fetcher.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Fetcher module - Unified skill fetching from various sources
3
+ *
4
+ * Supports:
5
+ * - GitHub: github:user/repo or user/repo
6
+ * - Gist: gist:id
7
+ * - URL: https://... or http://...
8
+ * - Local: ./path, ../path, /absolute/path
9
+ * - Pack: *.skillpkg files
10
+ */
11
+ export * from './types.js';
12
+ export * from './source-parser.js';
13
+ export * from './fetcher.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ParsedSource } from './types.js';
2
+ /**
3
+ * Parse a source string to determine its type and value
4
+ *
5
+ * @param source - Source string (github:user/repo, gist:id, URL, or path)
6
+ * @returns Parsed source with type and normalized value
7
+ * @throws InvalidSourceError if source format is not recognized
8
+ *
9
+ * @example
10
+ * parseSource('github:user/repo') // { type: 'github', value: 'user/repo', original: 'github:user/repo' }
11
+ * parseSource('user/repo') // { type: 'github', value: 'user/repo', original: 'user/repo' }
12
+ * parseSource('gist:abc123') // { type: 'gist', value: 'abc123', original: 'gist:abc123' }
13
+ * parseSource('https://...') // { type: 'url', value: 'https://...', original: 'https://...' }
14
+ * parseSource('./path') // { type: 'local', value: './path', original: './path' }
15
+ * parseSource('file.skillpkg') // { type: 'pack', value: 'file.skillpkg', original: 'file.skillpkg' }
16
+ */
17
+ export declare function parseSource(source: string): ParsedSource;
18
+ /**
19
+ * Normalize source to canonical format
20
+ *
21
+ * @example
22
+ * normalizeSource('user/repo') // 'github:user/repo'
23
+ * normalizeSource('github:u/r') // 'github:u/r'
24
+ * normalizeSource('./path') // './path'
25
+ */
26
+ export declare function normalizeSource(source: string): string;
27
+ /**
28
+ * Check if source is a remote source (requires network)
29
+ */
30
+ export declare function isRemoteSource(source: string): boolean;
31
+ /**
32
+ * Check if source is a local source (no network needed)
33
+ */
34
+ export declare function isLocalSource(source: string): boolean;
35
+ //# sourceMappingURL=source-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-parser.d.ts","sourceRoot":"","sources":["../../src/fetcher/source-parser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAwDxD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOrD"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Source parser - Parse source strings into typed objects
3
+ */
4
+ import { existsSync } from 'fs';
5
+ import { InvalidSourceError } from './types.js';
6
+ /**
7
+ * GitHub repo pattern: user/repo or user/repo-name
8
+ */
9
+ const GITHUB_REPO_PATTERN = /^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/;
10
+ /**
11
+ * Parse a source string to determine its type and value
12
+ *
13
+ * @param source - Source string (github:user/repo, gist:id, URL, or path)
14
+ * @returns Parsed source with type and normalized value
15
+ * @throws InvalidSourceError if source format is not recognized
16
+ *
17
+ * @example
18
+ * parseSource('github:user/repo') // { type: 'github', value: 'user/repo', original: 'github:user/repo' }
19
+ * parseSource('user/repo') // { type: 'github', value: 'user/repo', original: 'user/repo' }
20
+ * parseSource('gist:abc123') // { type: 'gist', value: 'abc123', original: 'gist:abc123' }
21
+ * parseSource('https://...') // { type: 'url', value: 'https://...', original: 'https://...' }
22
+ * parseSource('./path') // { type: 'local', value: './path', original: './path' }
23
+ * parseSource('file.skillpkg') // { type: 'pack', value: 'file.skillpkg', original: 'file.skillpkg' }
24
+ */
25
+ export function parseSource(source) {
26
+ const trimmed = source.trim();
27
+ if (!trimmed) {
28
+ throw new InvalidSourceError(source, 'Source cannot be empty');
29
+ }
30
+ // GitHub: github:user/repo
31
+ if (trimmed.startsWith('github:')) {
32
+ const value = trimmed.slice(7);
33
+ if (!GITHUB_REPO_PATTERN.test(value)) {
34
+ throw new InvalidSourceError(source, 'Invalid GitHub repo format. Use github:user/repo');
35
+ }
36
+ return { type: 'github', value, original: source };
37
+ }
38
+ // Gist: gist:id
39
+ if (trimmed.startsWith('gist:')) {
40
+ const value = trimmed.slice(5);
41
+ if (!value) {
42
+ throw new InvalidSourceError(source, 'Gist ID cannot be empty');
43
+ }
44
+ return { type: 'gist', value, original: source };
45
+ }
46
+ // URL: http:// or https://
47
+ if (trimmed.startsWith('https://') || trimmed.startsWith('http://')) {
48
+ return { type: 'url', value: trimmed, original: source };
49
+ }
50
+ // Pack file: *.skillpkg
51
+ if (trimmed.endsWith('.skillpkg')) {
52
+ return { type: 'pack', value: trimmed, original: source };
53
+ }
54
+ // Local path: starts with ./ or ../ or / or exists on filesystem
55
+ if (trimmed.startsWith('./') ||
56
+ trimmed.startsWith('../') ||
57
+ trimmed.startsWith('/')) {
58
+ return { type: 'local', value: trimmed, original: source };
59
+ }
60
+ // GitHub shorthand: user/repo (if matches pattern and doesn't exist locally)
61
+ if (GITHUB_REPO_PATTERN.test(trimmed) && !existsSync(trimmed)) {
62
+ return { type: 'github', value: trimmed, original: source };
63
+ }
64
+ // If it exists as a local path, treat as local
65
+ if (existsSync(trimmed)) {
66
+ return { type: 'local', value: trimmed, original: source };
67
+ }
68
+ // Unknown format
69
+ throw new InvalidSourceError(source);
70
+ }
71
+ /**
72
+ * Normalize source to canonical format
73
+ *
74
+ * @example
75
+ * normalizeSource('user/repo') // 'github:user/repo'
76
+ * normalizeSource('github:u/r') // 'github:u/r'
77
+ * normalizeSource('./path') // './path'
78
+ */
79
+ export function normalizeSource(source) {
80
+ const parsed = parseSource(source);
81
+ switch (parsed.type) {
82
+ case 'github':
83
+ return `github:${parsed.value}`;
84
+ case 'gist':
85
+ return `gist:${parsed.value}`;
86
+ default:
87
+ return parsed.value;
88
+ }
89
+ }
90
+ /**
91
+ * Check if source is a remote source (requires network)
92
+ */
93
+ export function isRemoteSource(source) {
94
+ try {
95
+ const parsed = parseSource(source);
96
+ return ['github', 'gist', 'url'].includes(parsed.type);
97
+ }
98
+ catch {
99
+ return false;
100
+ }
101
+ }
102
+ /**
103
+ * Check if source is a local source (no network needed)
104
+ */
105
+ export function isLocalSource(source) {
106
+ try {
107
+ const parsed = parseSource(source);
108
+ return ['local', 'pack'].includes(parsed.type);
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ //# sourceMappingURL=source-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-parser.js","sourceRoot":"","sources":["../../src/fetcher/source-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Fetcher types
3
+ */
4
+ import type { Skill } from '../types.js';
5
+ /**
6
+ * Supported source types
7
+ */
8
+ export type SourceType = 'github' | 'gist' | 'url' | 'local' | 'pack';
9
+ /**
10
+ * Parsed source information
11
+ */
12
+ export interface ParsedSource {
13
+ type: SourceType;
14
+ value: string;
15
+ /** Original source string */
16
+ original: string;
17
+ }
18
+ /**
19
+ * Fetch result
20
+ */
21
+ export interface FetchResult {
22
+ success: boolean;
23
+ skill?: Skill;
24
+ error?: string;
25
+ /** Source URL for tracking */
26
+ sourceUrl?: string;
27
+ }
28
+ /**
29
+ * Fetcher options
30
+ */
31
+ export interface FetcherOptions {
32
+ /** GitHub token for API requests */
33
+ githubToken?: string;
34
+ /** Timeout in milliseconds */
35
+ timeout?: number;
36
+ }
37
+ /**
38
+ * Error thrown when source format is invalid
39
+ */
40
+ export declare class InvalidSourceError extends Error {
41
+ constructor(source: string, hint?: string);
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fetcher/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAO1C"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Error thrown when source format is invalid
3
+ */
4
+ export class InvalidSourceError extends Error {
5
+ constructor(source, hint) {
6
+ const message = hint
7
+ ? `Invalid source "${source}": ${hint}`
8
+ : `Invalid source "${source}". Supported formats: github:user/repo, user/repo, gist:id, https://url, ./local/path, or file.skillpkg`;
9
+ super(message);
10
+ this.name = 'InvalidSourceError';
11
+ }
12
+ }
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fetcher/types.ts"],"names":[],"mappings":"AAyCA;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,MAAc,EAAE,IAAa;QACvC,MAAM,OAAO,GAAG,IAAI;YAClB,CAAC,CAAC,mBAAmB,MAAM,MAAM,IAAI,EAAE;YACvC,CAAC,CAAC,mBAAmB,MAAM,yGAAyG,CAAC;QACvI,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Core library for skillpkg - Agent Skills Package Manager
5
5
  */
6
- export declare const VERSION = "0.2.1";
6
+ export declare const VERSION = "0.5.4";
7
7
  export * from './types.js';
8
8
  export * from './parser/index.js';
9
9
  export * from './store/index.js';
@@ -18,4 +18,5 @@ export * from './resolver/index.js';
18
18
  export * from './syncer/index.js';
19
19
  export * from './installer/index.js';
20
20
  export * from './skill/index.js';
21
+ export * from './fetcher/index.js';
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Core library for skillpkg - Agent Skills Package Manager
5
5
  */
6
- export const VERSION = '0.2.1';
6
+ export const VERSION = '0.5.4';
7
7
  // Types
8
8
  export * from './types.js';
9
9
  // Parser module
@@ -32,4 +32,6 @@ export * from './syncer/index.js';
32
32
  export * from './installer/index.js';
33
33
  // Skill module - Read and create SKILL.md files
34
34
  export * from './skill/index.js';
35
+ // Fetcher module - Unified skill fetching from various sources
36
+ export * from './fetcher/index.js';
35
37
  //# 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":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,2DAA2D;AAC3D,cAAc,qBAAqB,CAAC;AAEpC,0CAA0C;AAC1C,cAAc,mBAAmB,CAAC;AAElC,wDAAwD;AACxD,cAAc,mBAAmB,CAAC;AAElC,oEAAoE;AACpE,cAAc,kBAAkB,CAAC;AAEjC,0CAA0C;AAC1C,cAAc,qBAAqB,CAAC;AAEpC,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAElC,mDAAmD;AACnD,cAAc,sBAAsB,CAAC;AAErC,gDAAgD;AAChD,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,2DAA2D;AAC3D,cAAc,qBAAqB,CAAC;AAEpC,0CAA0C;AAC1C,cAAc,mBAAmB,CAAC;AAElC,wDAAwD;AACxD,cAAc,mBAAmB,CAAC;AAElC,oEAAoE;AACpE,cAAc,kBAAkB,CAAC;AAEjC,0CAA0C;AAC1C,cAAc,qBAAqB,CAAC;AAEpC,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAElC,mDAAmD;AACnD,cAAc,sBAAsB,CAAC;AAErC,gDAAgD;AAChD,cAAc,kBAAkB,CAAC;AAEjC,+DAA+D;AAC/D,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../src/resolver/dependency-resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5E;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAIjC;;;OAGG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,GAAG,CAAC,MAAM,CAAa,GACjC,OAAO,CAAC,gBAAgB,CAAC;IAwC5B;;OAEG;YACW,gBAAgB;IA+E9B;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,GAAG,CAAC,MAAM,CAAa,GACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKjC;;OAEG;YACW,kBAAkB;IAuChC;;;OAGG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAKnE;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ5E;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAqBzB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEb,KAAK,EAAE,MAAM,EAAE;CAK5B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,kBAAkB,CAElF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACjC,YAAY,CAkBd"}
1
+ {"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../src/resolver/dependency-resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5E;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,YAAY;IAIjC;;;OAGG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,GAAG,CAAC,MAAM,CAAa,GACjC,OAAO,CAAC,gBAAgB,CAAC;IAwC5B;;OAEG;YACW,gBAAgB;IAiF9B;;OAEG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,GAAG,CAAC,MAAM,CAAa,GACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKjC;;OAEG;YACW,kBAAkB;IAuChC;;;OAGG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAKnE;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ5E;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAqBzB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEb,KAAK,EAAE,MAAM,EAAE;CAK5B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,kBAAkB,CAElF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACjC,YAAY,CAkBd"}
@@ -80,8 +80,10 @@ export class DependencyResolver {
80
80
  }
81
81
  }
82
82
  // Add this skill to resolved list
83
+ // Use actual skill name from metadata, not extracted from source URL
84
+ const actualSkillName = metadata.name || skillName;
83
85
  resolved.push({
84
- name: skillName,
86
+ name: actualSkillName,
85
87
  source,
86
88
  type: 'skill',
87
89
  transitive: requiredBy !== null,
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../src/resolver/dependency-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../src/resolver/dependency-resolver.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,8 @@ export interface McpResolutionResult {
61
61
  export interface SkillFetcher {
62
62
  /** Fetch skill metadata from source */
63
63
  fetchMetadata(source: string): Promise<SkillMetadata | null>;
64
+ /** Fetch full skill from source (optional, for full installation) */
65
+ fetchSkill?(source: string): Promise<import('../types.js').Skill | null>;
64
66
  }
65
67
  /**
66
68
  * Minimal skill metadata for dependency resolution
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolver/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,uBAAuB;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,qCAAqC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/resolver/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,uBAAuB;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,qCAAqC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC7D,qEAAqE;IACrE,UAAU,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillpkg-core",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "Core library for skillpkg - Agent Skills Package Manager",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",