devchain-cli 0.9.1 → 0.9.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.
- package/dist/drizzle/0042_nice_flatman.sql +10 -0
- package/dist/drizzle/0043_majestic_starhawk.sql +10 -0
- package/dist/drizzle/meta/0042_snapshot.json +4171 -0
- package/dist/drizzle/meta/0043_snapshot.json +4231 -0
- package/dist/drizzle/meta/_journal.json +15 -1
- package/dist/server/modules/skills/adapters/github-skill-source.base.d.ts +2 -5
- package/dist/server/modules/skills/adapters/github-skill-source.base.js +31 -100
- package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.d.ts +16 -0
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +265 -0
- package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -0
- package/dist/server/modules/skills/adapters/skill-parsing.utils.d.ts +32 -0
- package/dist/server/modules/skills/adapters/skill-parsing.utils.js +169 -0
- package/dist/server/modules/skills/adapters/skill-parsing.utils.js.map +1 -0
- package/dist/server/modules/skills/controllers/local-sources.controller.d.ts +12 -0
- package/dist/server/modules/skills/controllers/local-sources.controller.js +71 -0
- package/dist/server/modules/skills/controllers/local-sources.controller.js.map +1 -0
- package/dist/server/modules/skills/controllers/skills.controller.d.ts +11 -1
- package/dist/server/modules/skills/controllers/skills.controller.js +35 -3
- package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
- package/dist/server/modules/skills/dtos/local-sources.dto.d.ts +42 -0
- package/dist/server/modules/skills/dtos/local-sources.dto.js +30 -0
- package/dist/server/modules/skills/dtos/local-sources.dto.js.map +1 -0
- package/dist/server/modules/skills/dtos/skill.dto.d.ts +16 -0
- package/dist/server/modules/skills/dtos/skill.dto.js +7 -1
- package/dist/server/modules/skills/dtos/skill.dto.js.map +1 -1
- package/dist/server/modules/skills/services/community-sources.service.d.ts +8 -1
- package/dist/server/modules/skills/services/community-sources.service.js +62 -3
- package/dist/server/modules/skills/services/community-sources.service.js.map +1 -1
- package/dist/server/modules/skills/services/local-sources.service.d.ts +20 -0
- package/dist/server/modules/skills/services/local-sources.service.js +206 -0
- package/dist/server/modules/skills/services/local-sources.service.js.map +1 -0
- package/dist/server/modules/skills/services/skill-source-registry.service.d.ts +11 -0
- package/dist/server/modules/skills/services/skill-source-registry.service.js +99 -3
- package/dist/server/modules/skills/services/skill-source-registry.service.js.map +1 -1
- package/dist/server/modules/skills/services/skill-sync.service.d.ts +4 -0
- package/dist/server/modules/skills/services/skill-sync.service.js +93 -0
- package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
- package/dist/server/modules/skills/services/skills.service.d.ts +14 -2
- package/dist/server/modules/skills/services/skills.service.js +125 -23
- package/dist/server/modules/skills/services/skills.service.js.map +1 -1
- package/dist/server/modules/skills/skills.module.js +4 -1
- package/dist/server/modules/skills/skills.module.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +202 -0
- package/dist/server/modules/storage/db/schema.js +19 -1
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/storage.interface.d.ts +13 -1
- package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
- package/dist/server/modules/storage/local/local-storage.service.d.ts +18 -1
- package/dist/server/modules/storage/local/local-storage.service.js +294 -3
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +8 -0
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-D13dH7Wh.js → ReviewDetailPage-BvSckWKj.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-C98ST0lf.js → ReviewsPage-MKT-vv59.js} +1 -1
- package/dist/server/ui/assets/index-BtUq-Qxb.css +32 -0
- package/dist/server/ui/assets/{index-C8Dc1yQf.js → index-kTb634Zp.js} +194 -194
- package/dist/server/ui/assets/{useReviewSubscription-CmLuF45Z.js → useReviewSubscription-Dc58i6Bk.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/package.json +5 -1
- package/dist/server/ui/assets/index-DZkJ40z9.css +0 -32
|
@@ -295,6 +295,20 @@
|
|
|
295
295
|
"when": 1770857026437,
|
|
296
296
|
"tag": "0041_community_skill_sources",
|
|
297
297
|
"breakpoints": true
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"idx": 42,
|
|
301
|
+
"version": "6",
|
|
302
|
+
"when": 1770939323627,
|
|
303
|
+
"tag": "0042_nice_flatman",
|
|
304
|
+
"breakpoints": true
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"idx": 43,
|
|
308
|
+
"version": "6",
|
|
309
|
+
"when": 1770941755877,
|
|
310
|
+
"tag": "0043_majestic_starhawk",
|
|
311
|
+
"breakpoints": true
|
|
298
312
|
}
|
|
299
313
|
]
|
|
300
|
-
}
|
|
314
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ParsedSkillMarkdown } from './skill-parsing.utils';
|
|
1
2
|
export interface GitHubSkillSourceBaseConfig {
|
|
2
3
|
sourceName?: string;
|
|
3
4
|
repoOwner?: string;
|
|
@@ -8,10 +9,7 @@ export interface GitHubSkillSourceBaseConfig {
|
|
|
8
9
|
storageRootDir?: string;
|
|
9
10
|
githubToken?: string;
|
|
10
11
|
}
|
|
11
|
-
export
|
|
12
|
-
frontmatter: Record<string, unknown>;
|
|
13
|
-
instructionContent: string;
|
|
14
|
-
}
|
|
12
|
+
export type { ParsedSkillMarkdown } from './skill-parsing.utils';
|
|
15
13
|
export interface ExtractedRepositoryContext {
|
|
16
14
|
extractedRepoRoot: string;
|
|
17
15
|
dispose(): Promise<void>;
|
|
@@ -34,7 +32,6 @@ export declare abstract class GitHubSkillSourceBase {
|
|
|
34
32
|
protected validatePathSegment(segment: string, fieldName: string): string;
|
|
35
33
|
protected pickString(frontmatter: Record<string, unknown>, keys: readonly string[]): string | undefined;
|
|
36
34
|
protected pickStringArray(frontmatter: Record<string, unknown>, keys: readonly string[]): string[];
|
|
37
|
-
protected toStringValue(value: unknown): string | undefined;
|
|
38
35
|
protected resolveSkillDirectory(extractedRepoRoot: string, skillName: string): Promise<string>;
|
|
39
36
|
protected prepareExtractedRepository(): Promise<ExtractedRepositoryContext>;
|
|
40
37
|
protected downloadSkillFromExtractedRepo(skillName: string, targetPath: string, extractedRepoRoot: string): Promise<string>;
|
|
@@ -32,9 +32,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.GitHubSkillSourceBase = void 0;
|
|
40
37
|
const node_fs_1 = require("node:fs");
|
|
@@ -43,17 +40,15 @@ const node_os_1 = require("node:os");
|
|
|
43
40
|
const node_path_1 = require("node:path");
|
|
44
41
|
const node_stream_1 = require("node:stream");
|
|
45
42
|
const promises_1 = require("node:stream/promises");
|
|
46
|
-
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
47
43
|
const tar = __importStar(require("tar"));
|
|
48
44
|
const error_types_1 = require("../../../common/errors/error-types");
|
|
49
45
|
const logger_1 = require("../../../common/logging/logger");
|
|
46
|
+
const skill_parsing_utils_1 = require("./skill-parsing.utils");
|
|
50
47
|
const logger = (0, logger_1.createLogger)('GitHubSkillSourceBase');
|
|
51
48
|
const DEFAULT_BRANCH = 'main';
|
|
52
49
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
53
50
|
const DEFAULT_USER_AGENT = 'devchain-skills-sync';
|
|
54
51
|
const DEFAULT_SKILLS_ROOT = (0, node_path_1.join)((0, node_os_1.homedir)(), '.devchain', 'skills');
|
|
55
|
-
const CONTROL_CHAR_REGEX = /[\u0000-\u001f\u007f]/;
|
|
56
|
-
const SAFE_SKILL_SEGMENT_REGEX = /^[A-Za-z0-9_-]+$/;
|
|
57
52
|
class GitHubSkillSourceBase {
|
|
58
53
|
constructor(config = {}) {
|
|
59
54
|
this.sourceName = config.sourceName ?? 'unknown';
|
|
@@ -105,126 +100,62 @@ class GitHubSkillSourceBase {
|
|
|
105
100
|
async parseSkillMarkdown(skillDirectory) {
|
|
106
101
|
const safeSkillDirectory = (0, node_path_1.resolve)(skillDirectory);
|
|
107
102
|
const skillMdPath = (0, node_path_1.join)(safeSkillDirectory, 'SKILL.md');
|
|
108
|
-
let markdown;
|
|
109
103
|
try {
|
|
110
|
-
|
|
104
|
+
return await (0, skill_parsing_utils_1.parseSkillMarkdown)(safeSkillDirectory, {
|
|
105
|
+
onMissingFile: ({ skillMdPath: missingSkillMdPath }) => {
|
|
106
|
+
logger.warn({ sourceName: this.sourceName, skillMdPath: missingSkillMdPath }, 'SKILL.md not found for skill');
|
|
107
|
+
},
|
|
108
|
+
onParseError: ({ skillMdPath: malformedSkillMdPath, error }) => {
|
|
109
|
+
logger.warn({
|
|
110
|
+
sourceName: this.sourceName,
|
|
111
|
+
skillMdPath: malformedSkillMdPath,
|
|
112
|
+
error: error instanceof Error ? error.message : String(error),
|
|
113
|
+
}, 'Failed to parse SKILL.md frontmatter for skill. Skipping malformed file.');
|
|
114
|
+
},
|
|
115
|
+
});
|
|
111
116
|
}
|
|
112
117
|
catch (error) {
|
|
113
|
-
if (error.code === 'ENOENT') {
|
|
114
|
-
logger.warn({ sourceName: this.sourceName, skillMdPath }, 'SKILL.md not found for skill');
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
118
|
throw this.wrapStorageError('Failed reading SKILL.md for skill.', error, {
|
|
118
119
|
sourceName: this.sourceName,
|
|
119
120
|
skillMdPath,
|
|
120
121
|
});
|
|
121
122
|
}
|
|
122
|
-
try {
|
|
123
|
-
const parsed = (0, gray_matter_1.default)(markdown);
|
|
124
|
-
const frontmatter = parsed.data && typeof parsed.data === 'object'
|
|
125
|
-
? parsed.data
|
|
126
|
-
: {};
|
|
127
|
-
return {
|
|
128
|
-
frontmatter,
|
|
129
|
-
instructionContent: parsed.content,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
logger.warn({
|
|
134
|
-
sourceName: this.sourceName,
|
|
135
|
-
skillMdPath,
|
|
136
|
-
error: error instanceof Error ? error.message : String(error),
|
|
137
|
-
}, 'Failed to parse SKILL.md frontmatter for skill. Skipping malformed file.');
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
123
|
}
|
|
141
124
|
getSkillStorageRoot() {
|
|
142
125
|
return (0, node_path_1.resolve)(this.storageRootDir);
|
|
143
126
|
}
|
|
144
127
|
validatePathSegment(segment, fieldName) {
|
|
145
|
-
|
|
146
|
-
if (!trimmed) {
|
|
147
|
-
throw new error_types_1.ValidationError(`Invalid ${fieldName}: value cannot be empty.`, { fieldName });
|
|
148
|
-
}
|
|
149
|
-
if (trimmed.includes('..') ||
|
|
150
|
-
trimmed.includes('/') ||
|
|
151
|
-
trimmed.includes('\\') ||
|
|
152
|
-
CONTROL_CHAR_REGEX.test(trimmed)) {
|
|
153
|
-
throw new error_types_1.ValidationError(`Invalid ${fieldName}: path traversal or control characters are not allowed.`, { fieldName, segment: trimmed });
|
|
154
|
-
}
|
|
155
|
-
if (!SAFE_SKILL_SEGMENT_REGEX.test(trimmed)) {
|
|
156
|
-
throw new error_types_1.ValidationError(`Invalid ${fieldName}: only alphanumeric characters, underscores, and hyphens are allowed.`, { fieldName, segment: trimmed });
|
|
157
|
-
}
|
|
158
|
-
return trimmed;
|
|
128
|
+
return (0, skill_parsing_utils_1.validatePathSegment)(segment, fieldName);
|
|
159
129
|
}
|
|
160
130
|
pickString(frontmatter, keys) {
|
|
161
|
-
|
|
162
|
-
const value = this.toStringValue(frontmatter[key]);
|
|
163
|
-
if (value) {
|
|
164
|
-
return value;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return undefined;
|
|
131
|
+
return (0, skill_parsing_utils_1.pickString)(frontmatter, keys);
|
|
168
132
|
}
|
|
169
133
|
pickStringArray(frontmatter, keys) {
|
|
170
|
-
|
|
171
|
-
const value = frontmatter[key];
|
|
172
|
-
if (!Array.isArray(value)) {
|
|
173
|
-
continue;
|
|
174
|
-
}
|
|
175
|
-
const items = value
|
|
176
|
-
.filter((item) => typeof item === 'string')
|
|
177
|
-
.map((item) => item.trim())
|
|
178
|
-
.filter((item) => item.length > 0);
|
|
179
|
-
if (items.length > 0) {
|
|
180
|
-
return items;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return [];
|
|
184
|
-
}
|
|
185
|
-
toStringValue(value) {
|
|
186
|
-
if (typeof value === 'string' && value.trim().length > 0) {
|
|
187
|
-
return value.trim();
|
|
188
|
-
}
|
|
189
|
-
if (Array.isArray(value)) {
|
|
190
|
-
const items = value
|
|
191
|
-
.filter((item) => typeof item === 'string')
|
|
192
|
-
.map((item) => item.trim())
|
|
193
|
-
.filter((item) => item.length > 0);
|
|
194
|
-
if (items.length > 0) {
|
|
195
|
-
return items.join(', ');
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
return undefined;
|
|
134
|
+
return (0, skill_parsing_utils_1.pickStringArray)(frontmatter, keys);
|
|
199
135
|
}
|
|
200
136
|
async resolveSkillDirectory(extractedRepoRoot, skillName) {
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
(0,
|
|
204
|
-
|
|
205
|
-
];
|
|
206
|
-
for (const candidate of candidates) {
|
|
207
|
-
try {
|
|
208
|
-
const stats = await fs.stat(candidate);
|
|
209
|
-
if (stats.isDirectory()) {
|
|
210
|
-
return candidate;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
if (error.code !== 'ENOENT') {
|
|
137
|
+
const safeExtractedRepoRoot = (0, node_path_1.resolve)(extractedRepoRoot);
|
|
138
|
+
try {
|
|
139
|
+
return await (0, skill_parsing_utils_1.resolveSkillDirectory)(safeExtractedRepoRoot, skillName, {
|
|
140
|
+
onCandidateError: ({ candidate, error }) => {
|
|
215
141
|
throw this.wrapStorageError('Failed checking extracted skill directory.', error, {
|
|
216
142
|
candidate,
|
|
217
143
|
sourceName: this.sourceName,
|
|
218
144
|
skillName,
|
|
219
145
|
});
|
|
220
|
-
}
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
if (error instanceof skill_parsing_utils_1.SkillDirectoryNotFoundError) {
|
|
151
|
+
throw new error_types_1.StorageError('Skill directory was not found in extracted repository tarball.', {
|
|
152
|
+
sourceName: this.sourceName,
|
|
153
|
+
skillName,
|
|
154
|
+
extractedRepoRoot: safeExtractedRepoRoot,
|
|
155
|
+
});
|
|
221
156
|
}
|
|
157
|
+
throw error;
|
|
222
158
|
}
|
|
223
|
-
throw new error_types_1.StorageError('Skill directory was not found in extracted repository tarball.', {
|
|
224
|
-
sourceName: this.sourceName,
|
|
225
|
-
skillName,
|
|
226
|
-
extractedRepoRoot,
|
|
227
|
-
});
|
|
228
159
|
}
|
|
229
160
|
async prepareExtractedRepository() {
|
|
230
161
|
this.ensureRepoConfigured();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-skill-source.base.js","sourceRoot":"","sources":["../../../../src/modules/skills/adapters/github-skill-source.base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-skill-source.base.js","sourceRoot":"","sources":["../../../../src/modules/skills/adapters/github-skill-source.base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LocalSkillSource } from '../../storage/models/domain.models';
|
|
2
|
+
import type { SkillManifest, SkillSourceAdapter, SkillSourceSyncContext } from './skill-source.adapter';
|
|
3
|
+
export declare class LocalSkillSourceAdapter implements SkillSourceAdapter {
|
|
4
|
+
readonly sourceName: string;
|
|
5
|
+
readonly repoUrl: string;
|
|
6
|
+
private readonly folderPath;
|
|
7
|
+
constructor(source: LocalSkillSource);
|
|
8
|
+
listSkills(): Promise<Map<string, SkillManifest>>;
|
|
9
|
+
createSyncContext(): Promise<SkillSourceSyncContext>;
|
|
10
|
+
downloadSkill(skillName: string, targetPath: string): Promise<string>;
|
|
11
|
+
getLatestCommit(): Promise<string>;
|
|
12
|
+
private listSkillNamesFromLocalFolder;
|
|
13
|
+
private resolveStrictLocalSkillDirectory;
|
|
14
|
+
private toSkillManifest;
|
|
15
|
+
private wrapStorageError;
|
|
16
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.LocalSkillSourceAdapter = void 0;
|
|
37
|
+
const node_crypto_1 = require("node:crypto");
|
|
38
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
39
|
+
const node_os_1 = require("node:os");
|
|
40
|
+
const node_path_1 = require("node:path");
|
|
41
|
+
const node_url_1 = require("node:url");
|
|
42
|
+
const error_types_1 = require("../../../common/errors/error-types");
|
|
43
|
+
const logger_1 = require("../../../common/logging/logger");
|
|
44
|
+
const skill_parsing_utils_1 = require("./skill-parsing.utils");
|
|
45
|
+
const logger = (0, logger_1.createLogger)('LocalSkillSourceAdapter');
|
|
46
|
+
const SKILLS_DIRECTORY = 'skills';
|
|
47
|
+
const DEFAULT_SKILLS_ROOT = (0, node_path_1.join)((0, node_os_1.homedir)(), '.devchain', 'skills');
|
|
48
|
+
class LocalSkillSourceAdapter {
|
|
49
|
+
constructor(source) {
|
|
50
|
+
this.sourceName = source.name.trim().toLowerCase();
|
|
51
|
+
this.folderPath = (0, node_path_1.resolve)(source.folderPath);
|
|
52
|
+
this.repoUrl = (0, node_url_1.pathToFileURL)(this.folderPath).toString();
|
|
53
|
+
}
|
|
54
|
+
async listSkills() {
|
|
55
|
+
const context = await this.createSyncContext();
|
|
56
|
+
try {
|
|
57
|
+
return new Map(context.manifests);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
await context.dispose();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async createSyncContext() {
|
|
64
|
+
const manifests = new Map();
|
|
65
|
+
const skillNames = await this.listSkillNamesFromLocalFolder();
|
|
66
|
+
for (const skillName of skillNames) {
|
|
67
|
+
try {
|
|
68
|
+
const skillDirectory = await this.resolveStrictLocalSkillDirectory(skillName);
|
|
69
|
+
const parsedSkill = await (0, skill_parsing_utils_1.parseSkillMarkdown)(skillDirectory, {
|
|
70
|
+
onMissingFile: ({ skillMdPath }) => {
|
|
71
|
+
logger.warn({ sourceName: this.sourceName, skillMdPath }, 'SKILL.md not found for skill');
|
|
72
|
+
},
|
|
73
|
+
onParseError: ({ skillMdPath, error }) => {
|
|
74
|
+
logger.warn({
|
|
75
|
+
sourceName: this.sourceName,
|
|
76
|
+
skillMdPath,
|
|
77
|
+
error: error instanceof Error ? error.message : String(error),
|
|
78
|
+
}, 'Failed to parse SKILL.md frontmatter for skill. Skipping malformed file.');
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
if (!parsedSkill) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
manifests.set(skillName, this.toSkillManifest(skillName, parsedSkill));
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
logger.warn({
|
|
88
|
+
sourceName: this.sourceName,
|
|
89
|
+
skillName,
|
|
90
|
+
error: error instanceof Error ? error.message : String(error),
|
|
91
|
+
}, 'Failed processing local skill. Skipping.');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
manifests,
|
|
96
|
+
downloadSkill: (skillName, targetPath) => this.downloadSkill(skillName, targetPath),
|
|
97
|
+
dispose: async () => undefined,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
async downloadSkill(skillName, targetPath) {
|
|
101
|
+
const safeSourceName = (0, skill_parsing_utils_1.validatePathSegment)(this.sourceName, 'sourceName');
|
|
102
|
+
const safeSkillName = (0, skill_parsing_utils_1.validatePathSegment)(skillName, 'skillName');
|
|
103
|
+
const storageRoot = typeof targetPath === 'string' && targetPath.trim().length > 0
|
|
104
|
+
? (0, node_path_1.resolve)(targetPath)
|
|
105
|
+
: DEFAULT_SKILLS_ROOT;
|
|
106
|
+
const sourceRoot = (0, node_path_1.resolve)(storageRoot, safeSourceName);
|
|
107
|
+
const destinationPath = (0, node_path_1.resolve)(sourceRoot, safeSkillName);
|
|
108
|
+
if (!destinationPath.startsWith(`${sourceRoot}${node_path_1.sep}`)) {
|
|
109
|
+
throw new error_types_1.ValidationError('Resolved skill destination path is outside the source directory.', { sourceRoot, destinationPath });
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const resolvedSkillPath = await this.resolveStrictLocalSkillDirectory(safeSkillName);
|
|
113
|
+
await fs.mkdir(sourceRoot, { recursive: true });
|
|
114
|
+
await fs.rm(destinationPath, { recursive: true, force: true });
|
|
115
|
+
await fs.cp(resolvedSkillPath, destinationPath, { recursive: true, force: true });
|
|
116
|
+
return destinationPath;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
throw this.wrapStorageError('Failed to copy skill from local source.', error, {
|
|
120
|
+
sourceName: safeSourceName,
|
|
121
|
+
skillName: safeSkillName,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async getLatestCommit() {
|
|
126
|
+
const skillsRoot = (0, node_path_1.join)(this.folderPath, SKILLS_DIRECTORY);
|
|
127
|
+
let rootStats;
|
|
128
|
+
try {
|
|
129
|
+
rootStats = await fs.stat(skillsRoot);
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (error.code === 'ENOENT') {
|
|
133
|
+
throw new error_types_1.StorageError('Local skills directory not found in source folder.', {
|
|
134
|
+
sourceName: this.sourceName,
|
|
135
|
+
folderPath: this.folderPath,
|
|
136
|
+
skillsRoot,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
throw this.wrapStorageError('Failed to read local skills directory metadata.', error, {
|
|
140
|
+
sourceName: this.sourceName,
|
|
141
|
+
skillsRoot,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (!rootStats.isDirectory()) {
|
|
145
|
+
throw new error_types_1.StorageError('Local skills path is not a directory.', {
|
|
146
|
+
sourceName: this.sourceName,
|
|
147
|
+
folderPath: this.folderPath,
|
|
148
|
+
skillsRoot,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const hashParts = [`root:${skillsRoot}`];
|
|
152
|
+
const skillNames = await this.listSkillNamesFromLocalFolder();
|
|
153
|
+
for (const skillName of skillNames) {
|
|
154
|
+
hashParts.push(`dir:${skillName}`);
|
|
155
|
+
const skillMdPath = (0, node_path_1.join)(skillsRoot, skillName, 'SKILL.md');
|
|
156
|
+
try {
|
|
157
|
+
const skillMdStats = await fs.stat(skillMdPath);
|
|
158
|
+
hashParts.push(`skill:${skillName}:${skillMdStats.mtimeMs}`);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
if (error.code === 'ENOENT') {
|
|
162
|
+
hashParts.push(`skill:${skillName}:missing`);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
throw this.wrapStorageError('Failed to read local skill metadata for commit hash.', error, {
|
|
166
|
+
sourceName: this.sourceName,
|
|
167
|
+
skillsRoot,
|
|
168
|
+
skillName,
|
|
169
|
+
skillMdPath,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return (0, node_crypto_1.createHash)('sha1').update(hashParts.join('|')).digest('hex');
|
|
174
|
+
}
|
|
175
|
+
async listSkillNamesFromLocalFolder() {
|
|
176
|
+
const skillsRoot = (0, node_path_1.join)(this.folderPath, SKILLS_DIRECTORY);
|
|
177
|
+
let entries;
|
|
178
|
+
try {
|
|
179
|
+
entries = await fs.readdir(skillsRoot, { withFileTypes: true });
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
if (error.code === 'ENOENT') {
|
|
183
|
+
throw new error_types_1.StorageError('Local skills directory not found in source folder.', {
|
|
184
|
+
sourceName: this.sourceName,
|
|
185
|
+
folderPath: this.folderPath,
|
|
186
|
+
skillsRoot,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
throw this.wrapStorageError('Failed reading local skills directory.', error, {
|
|
190
|
+
sourceName: this.sourceName,
|
|
191
|
+
skillsRoot,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
return entries
|
|
195
|
+
.filter((entry) => entry.isDirectory() && !entry.name.startsWith('.'))
|
|
196
|
+
.map((entry) => entry.name)
|
|
197
|
+
.sort((left, right) => left.localeCompare(right));
|
|
198
|
+
}
|
|
199
|
+
async resolveStrictLocalSkillDirectory(skillName) {
|
|
200
|
+
try {
|
|
201
|
+
return await (0, skill_parsing_utils_1.resolveSkillDirectory)(this.folderPath, skillName, {
|
|
202
|
+
candidates: [SKILLS_DIRECTORY],
|
|
203
|
+
onCandidateError: ({ candidate, error }) => {
|
|
204
|
+
throw this.wrapStorageError('Failed checking local skill directory.', error, {
|
|
205
|
+
sourceName: this.sourceName,
|
|
206
|
+
skillName,
|
|
207
|
+
candidate,
|
|
208
|
+
});
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
if (error instanceof skill_parsing_utils_1.SkillDirectoryNotFoundError) {
|
|
214
|
+
throw new error_types_1.StorageError('Skill directory was not found in local source folder.', {
|
|
215
|
+
sourceName: this.sourceName,
|
|
216
|
+
skillName,
|
|
217
|
+
folderPath: this.folderPath,
|
|
218
|
+
skillsRoot: (0, node_path_1.join)(this.folderPath, SKILLS_DIRECTORY),
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
throw error;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
toSkillManifest(skillName, parsedSkill) {
|
|
225
|
+
const frontmatter = parsedSkill.frontmatter;
|
|
226
|
+
const manifestName = (0, skill_parsing_utils_1.pickString)(frontmatter, ['name']) ?? skillName;
|
|
227
|
+
const displayName = (0, skill_parsing_utils_1.pickString)(frontmatter, ['displayName', 'display_name', 'title']);
|
|
228
|
+
const description = (0, skill_parsing_utils_1.pickString)(frontmatter, ['description', 'summary', 'shortDescription']) ??
|
|
229
|
+
`Skill instructions for ${skillName}`;
|
|
230
|
+
const shortDescription = (0, skill_parsing_utils_1.pickString)(frontmatter, [
|
|
231
|
+
'shortDescription',
|
|
232
|
+
'short_description',
|
|
233
|
+
'summary',
|
|
234
|
+
]);
|
|
235
|
+
const license = (0, skill_parsing_utils_1.pickString)(frontmatter, ['license']);
|
|
236
|
+
const compatibility = (0, skill_parsing_utils_1.pickString)(frontmatter, ['compatibility']);
|
|
237
|
+
const resources = (0, skill_parsing_utils_1.pickStringArray)(frontmatter, ['resources', 'references']);
|
|
238
|
+
return {
|
|
239
|
+
name: manifestName,
|
|
240
|
+
displayName,
|
|
241
|
+
description,
|
|
242
|
+
shortDescription,
|
|
243
|
+
license,
|
|
244
|
+
compatibility,
|
|
245
|
+
frontmatter,
|
|
246
|
+
instructionContent: parsedSkill.instructionContent,
|
|
247
|
+
resources,
|
|
248
|
+
sourceUrl: (0, node_url_1.pathToFileURL)((0, node_path_1.join)(this.folderPath, SKILLS_DIRECTORY, skillName)).toString(),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
wrapStorageError(message, error, details) {
|
|
252
|
+
if (error instanceof error_types_1.StorageError) {
|
|
253
|
+
return error;
|
|
254
|
+
}
|
|
255
|
+
if (error instanceof error_types_1.ValidationError) {
|
|
256
|
+
throw error;
|
|
257
|
+
}
|
|
258
|
+
return new error_types_1.StorageError(message, {
|
|
259
|
+
...details,
|
|
260
|
+
cause: error instanceof Error ? error.message : String(error),
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
exports.LocalSkillSourceAdapter = LocalSkillSourceAdapter;
|
|
265
|
+
//# sourceMappingURL=local-skill-source.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-skill-source.adapter.js","sourceRoot":"","sources":["../../../../src/modules/skills/adapters/local-skill-source.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyC;AAEzC,qDAAuC;AACvC,qCAAkC;AAClC,yCAA+C;AAC/C,uCAAyC;AACzC,oEAAmF;AACnF,2DAA8D;AAE9D,+DAQ+B;AAO/B,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,yBAAyB,CAAC,CAAC;AACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,mBAAmB,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEnE,MAAa,uBAAuB;IAMlC,YAAY,MAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAA,mBAAO,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAE9D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;gBAC9E,MAAM,WAAW,GAAG,MAAM,IAAA,wCAAkB,EAAC,cAAc,EAAE;oBAC3D,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;wBACjC,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAC5C,8BAA8B,CAC/B,CAAC;oBACJ,CAAC;oBACD,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;wBACvC,MAAM,CAAC,IAAI,CACT;4BACE,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,WAAW;4BACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC9D,EACD,0EAA0E,CAC3E,CAAC;oBACJ,CAAC;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,SAAS;gBACX,CAAC;gBAED,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CACT;oBACE,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS;oBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,EACD,0CAA0C,CAC3C,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS;YACT,aAAa,EAAE,CAAC,SAAiB,EAAE,UAAkB,EAAE,EAAE,CACvD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC;YAC3C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,UAAkB;QACvD,MAAM,cAAc,GAAG,IAAA,yCAAmB,EAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,IAAA,yCAAmB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,WAAW,GACf,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAC5D,CAAC,CAAC,IAAA,mBAAO,EAAC,UAAU,CAAC;YACrB,CAAC,CAAC,mBAAmB,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAA,mBAAO,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,IAAA,mBAAO,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAE3D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,eAAG,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,6BAAe,CACvB,kEAAkE,EAClE,EAAE,UAAU,EAAE,eAAe,EAAE,CAChC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC;YACrF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO,eAAe,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,gBAAgB,CAAC,yCAAyC,EAAE,KAAK,EAAE;gBAC5E,UAAU,EAAE,cAAc;gBAC1B,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC3D,IAAI,SAA8C,CAAC;QACnD,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,IAAI,0BAAY,CAAC,oDAAoD,EAAE;oBAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,iDAAiD,EAAE,KAAK,EAAE;gBACpF,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,0BAAY,CAAC,uCAAuC,EAAE;gBAC9D,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAa,CAAC,QAAQ,UAAU,EAAE,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAE9D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChD,SAAS,CAAC,IAAI,CAAC,SAAS,SAAS,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvD,SAAS,CAAC,IAAI,CAAC,SAAS,SAAS,UAAU,CAAC,CAAC;oBAC7C,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,sDAAsD,EAAE,KAAK,EAAE;oBACzF,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU;oBACV,SAAS;oBACT,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,6BAA6B;QACzC,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC3D,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,IAAI,0BAAY,CAAC,oDAAoD,EAAE;oBAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,wCAAwC,EAAE,KAAK,EAAE;gBAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAAC,SAAiB;QAC9D,IAAI,CAAC;YACH,OAAO,MAAM,IAAA,2CAAqB,EAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE;gBAC7D,UAAU,EAAE,CAAC,gBAAgB,CAAC;gBAC9B,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;oBACzC,MAAM,IAAI,CAAC,gBAAgB,CAAC,wCAAwC,EAAE,KAAK,EAAE;wBAC3E,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,SAAS;wBACT,SAAS;qBACV,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iDAA2B,EAAE,CAAC;gBACjD,MAAM,IAAI,0BAAY,CAAC,uDAAuD,EAAE;oBAC9E,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS;oBACT,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU,EAAE,IAAA,gBAAI,EAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,SAAiB,EAAE,WAAgC;QACzE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAA,gCAAU,EAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC;QACpE,MAAM,WAAW,GAAG,IAAA,gCAAU,EAAC,WAAW,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QACtF,MAAM,WAAW,GACf,IAAA,gCAAU,EAAC,WAAW,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;YACvE,0BAA0B,SAAS,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAA,gCAAU,EAAC,WAAW,EAAE;YAC/C,kBAAkB;YAClB,mBAAmB;YACnB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,gCAAU,EAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,IAAA,gCAAU,EAAC,WAAW,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,IAAA,qCAAe,EAAC,WAAW,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;QAE5E,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,WAAW;YACX,WAAW;YACX,gBAAgB;YAChB,OAAO;YACP,aAAa;YACb,WAAW;YACX,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;YAClD,SAAS;YACT,SAAS,EAAE,IAAA,wBAAa,EAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;SACxF,CAAC;IACJ,CAAC;IAEO,gBAAgB,CACtB,OAAe,EACf,KAAc,EACd,OAAgC;QAEhC,IAAI,KAAK,YAAY,0BAAY,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,YAAY,6BAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,0BAAY,CAAC,OAAO,EAAE;YAC/B,GAAG,OAAO;YACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;CACF;AA7PD,0DA6PC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface ParsedSkillMarkdown {
|
|
2
|
+
frontmatter: Record<string, unknown>;
|
|
3
|
+
instructionContent: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ParseSkillMarkdownOptions {
|
|
6
|
+
skillMarkdownFileName?: string;
|
|
7
|
+
onMissingFile?: (context: {
|
|
8
|
+
skillMdPath: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
onParseError?: (context: {
|
|
11
|
+
skillMdPath: string;
|
|
12
|
+
error: unknown;
|
|
13
|
+
}) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolveSkillDirectoryOptions {
|
|
16
|
+
candidates?: readonly string[];
|
|
17
|
+
onCandidateError?: (context: {
|
|
18
|
+
candidate: string;
|
|
19
|
+
error: unknown;
|
|
20
|
+
}) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare class SkillDirectoryNotFoundError extends Error {
|
|
23
|
+
readonly skillName: string;
|
|
24
|
+
readonly extractedRepoRoot: string;
|
|
25
|
+
readonly candidates: readonly string[];
|
|
26
|
+
constructor(skillName: string, extractedRepoRoot: string, candidates: readonly string[], message?: string);
|
|
27
|
+
}
|
|
28
|
+
export declare function parseSkillMarkdown(skillDirectory: string, options?: ParseSkillMarkdownOptions): Promise<ParsedSkillMarkdown | null>;
|
|
29
|
+
export declare function resolveSkillDirectory(extractedRepoRoot: string, skillName: string, options?: ResolveSkillDirectoryOptions): Promise<string>;
|
|
30
|
+
export declare function validatePathSegment(segment: string, fieldName: string): string;
|
|
31
|
+
export declare function pickString(frontmatter: Record<string, unknown>, keys: readonly string[]): string | undefined;
|
|
32
|
+
export declare function pickStringArray(frontmatter: Record<string, unknown>, keys: readonly string[]): string[];
|