@vibe-agent-toolkit/agent-skills 0.1.13 → 0.1.15-rc.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 +28 -28
- package/dist/builder.d.ts +3 -3
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +3 -3
- package/dist/builder.js.map +1 -1
- package/dist/import.d.ts +1 -1
- package/dist/import.js +7 -7
- package/dist/import.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/schemas/agent-skill-frontmatter.d.ts +140 -0
- package/dist/schemas/agent-skill-frontmatter.d.ts.map +1 -0
- package/dist/schemas/agent-skill-frontmatter.js +95 -0
- package/dist/schemas/agent-skill-frontmatter.js.map +1 -0
- package/dist/schemas/claude-plugin.d.ts +60 -109
- package/dist/schemas/claude-plugin.d.ts.map +1 -1
- package/dist/schemas/claude-plugin.js +26 -34
- package/dist/schemas/claude-plugin.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/marketplace.d.ts +1224 -202
- package/dist/schemas/marketplace.d.ts.map +1 -1
- package/dist/schemas/marketplace.js +51 -13
- package/dist/schemas/marketplace.js.map +1 -1
- package/dist/skill-packager.d.ts +42 -0
- package/dist/skill-packager.d.ts.map +1 -1
- package/dist/skill-packager.js +269 -238
- package/dist/skill-packager.js.map +1 -1
- package/dist/validators/format-detection.js +7 -7
- package/dist/validators/format-detection.js.map +1 -1
- package/dist/validators/frontmatter-validation.d.ts +30 -0
- package/dist/validators/frontmatter-validation.d.ts.map +1 -0
- package/dist/validators/frontmatter-validation.js +132 -0
- package/dist/validators/frontmatter-validation.js.map +1 -0
- package/dist/validators/marketplace-validator.d.ts +1 -0
- package/dist/validators/marketplace-validator.d.ts.map +1 -1
- package/dist/validators/marketplace-validator.js +1 -0
- package/dist/validators/marketplace-validator.js.map +1 -1
- package/dist/validators/packaging-validator.d.ts +1 -1
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +53 -11
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/plugin-validator.d.ts +2 -1
- package/dist/validators/plugin-validator.d.ts.map +1 -1
- package/dist/validators/plugin-validator.js +2 -1
- package/dist/validators/plugin-validator.js.map +1 -1
- package/dist/validators/skill-validator.d.ts +2 -1
- package/dist/validators/skill-validator.d.ts.map +1 -1
- package/dist/validators/skill-validator.js +7 -108
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/types.d.ts +2 -2
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/validators/validation-rules.d.ts +1 -1
- package/dist/validators/validation-rules.js +5 -5
- package/dist/validators/validation-rules.js.map +1 -1
- package/dist/walk-link-graph.d.ts +88 -0
- package/dist/walk-link-graph.d.ts.map +1 -0
- package/dist/walk-link-graph.js +190 -0
- package/dist/walk-link-graph.js.map +1 -0
- package/package.json +5 -4
- package/schemas/skill-frontmatter.json +32 -7
- package/schemas/vat-skill-frontmatter.json +32 -3
- package/dist/link-collector.d.ts +0 -86
- package/dist/link-collector.d.ts.map +0 -1
- package/dist/link-collector.js +0 -206
- package/dist/link-collector.js.map +0 -1
- package/dist/schemas/claude-skill-frontmatter.d.ts +0 -75
- package/dist/schemas/claude-skill-frontmatter.d.ts.map +0 -1
- package/dist/schemas/claude-skill-frontmatter.js +0 -48
- package/dist/schemas/claude-skill-frontmatter.js.map +0 -1
package/dist/skill-packager.js
CHANGED
|
@@ -10,16 +10,54 @@
|
|
|
10
10
|
* - zip: Single file archive (preferred for Windows compatibility)
|
|
11
11
|
* - npm: Standard npm package with package.json
|
|
12
12
|
* - marketplace: JSON manifest for plugin registries
|
|
13
|
+
*
|
|
14
|
+
* Uses ResourceRegistry + transformContent() from @vibe-agent-toolkit/resources
|
|
15
|
+
* for link resolution and rewriting (replacing the previous inline regex approach).
|
|
13
16
|
*/
|
|
14
17
|
import { existsSync } from 'node:fs';
|
|
15
|
-
import { copyFile, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
18
|
+
import { copyFile, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
16
19
|
import { basename, dirname, join, relative, resolve } from 'node:path';
|
|
17
|
-
import { parseMarkdown } from '@vibe-agent-toolkit/resources';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
+
import { ResourceRegistry, transformContent, parseMarkdown, } from '@vibe-agent-toolkit/resources';
|
|
21
|
+
import { findProjectRoot, toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
22
|
+
import { walkLinkGraph } from './walk-link-graph.js';
|
|
20
23
|
const PACKAGE_JSON_FILENAME = 'package.json';
|
|
24
|
+
/** Default template for excluded links when no explicit template is configured — renders just the link text */
|
|
21
25
|
const DEFAULT_STRIP_TEMPLATE = '{{link.text}}';
|
|
22
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Package multiple skills with a shared ResourceRegistry.
|
|
28
|
+
*
|
|
29
|
+
* Creates one registry for the entire project (crawling all .md files once),
|
|
30
|
+
* then packages each skill against the shared registry. This eliminates
|
|
31
|
+
* redundant I/O when building multiple skills from the same project.
|
|
32
|
+
*
|
|
33
|
+
* @param skills - Array of skill build specifications
|
|
34
|
+
* @param projectRoot - Absolute path to the project root directory
|
|
35
|
+
* @returns Array of package results (one per skill)
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const specs: SkillBuildSpec[] = [
|
|
40
|
+
* { skillPath: '/project/skills/SKILL.md', options: { outputPath: '/out/skill-a' } },
|
|
41
|
+
* { skillPath: '/project/skills/SKILL2.md', options: { outputPath: '/out/skill-b' } },
|
|
42
|
+
* ];
|
|
43
|
+
* const results = await packageSkills(specs, '/project');
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export async function packageSkills(skills, projectRoot) {
|
|
47
|
+
// 1. Create one registry for the entire project
|
|
48
|
+
const registry = await ResourceRegistry.fromCrawl({
|
|
49
|
+
baseDir: projectRoot,
|
|
50
|
+
include: ['**/*.md'],
|
|
51
|
+
});
|
|
52
|
+
registry.resolveLinks();
|
|
53
|
+
// 2. Package each skill against the shared registry
|
|
54
|
+
const results = [];
|
|
55
|
+
for (const { skillPath, options } of skills) {
|
|
56
|
+
const result = await packageSkill(skillPath, { ...options, registry });
|
|
57
|
+
results.push(result);
|
|
58
|
+
}
|
|
59
|
+
return results;
|
|
60
|
+
}
|
|
23
61
|
/**
|
|
24
62
|
* Package a skill with all its dependencies
|
|
25
63
|
*
|
|
@@ -43,48 +81,91 @@ export async function packageSkill(skillPath, options = {}) {
|
|
|
43
81
|
// 1. Parse SKILL.md frontmatter and links
|
|
44
82
|
const parseResult = await parseMarkdown(skillPath);
|
|
45
83
|
const skillMetadata = extractSkillMetadata(parseResult, skillPath);
|
|
46
|
-
// 2. Find
|
|
47
|
-
|
|
48
|
-
const packageRoot = findPackageRootOrFallback(skillPath);
|
|
84
|
+
// 2. Find project boundary (workspace root -> git root -> skill dir)
|
|
85
|
+
const projectRoot = findProjectRoot(dirname(skillPath));
|
|
49
86
|
const skillRoot = dirname(skillPath);
|
|
50
|
-
// 3.
|
|
87
|
+
// 3. Get or create the resource registry
|
|
88
|
+
const registry = options.registry ?? await createStandaloneRegistry(projectRoot);
|
|
89
|
+
// 4. Walk the link graph using registry data
|
|
51
90
|
const linkFollowDepth = options.linkFollowDepth ?? 2;
|
|
52
91
|
const excludeConfig = options.excludeReferencesFromBundle;
|
|
92
|
+
const excludeNavigationFiles = options.excludeNavigationFiles ?? true;
|
|
53
93
|
const maxDepth = linkFollowDepth === 'full' ? Infinity : linkFollowDepth;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const {
|
|
94
|
+
// Find the skill resource in the registry
|
|
95
|
+
const skillResource = registry.getResource(resolve(skillPath));
|
|
96
|
+
const skillResourceId = skillResource?.id ?? '';
|
|
97
|
+
const { bundledResources, bundledAssets, excludedReferences } = walkLinkGraph(skillResourceId, registry, {
|
|
58
98
|
maxDepth,
|
|
59
99
|
excludeRules: excludeConfig?.rules ?? [],
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
packageRoot,
|
|
100
|
+
projectRoot,
|
|
101
|
+
excludeNavigationFiles,
|
|
63
102
|
});
|
|
64
|
-
//
|
|
103
|
+
// Combine bundled file paths: markdown resources + non-markdown assets
|
|
104
|
+
const bundledFiles = [
|
|
105
|
+
...bundledResources.map(r => r.filePath),
|
|
106
|
+
...bundledAssets,
|
|
107
|
+
];
|
|
108
|
+
// 5. Calculate common ancestor of all files (for proper relative path calculation)
|
|
65
109
|
const allFiles = [skillPath, ...bundledFiles];
|
|
66
110
|
const effectiveBasePath = findCommonAncestor(allFiles);
|
|
67
|
-
//
|
|
111
|
+
// 6. Determine output path
|
|
68
112
|
const outputPath = options.outputPath ??
|
|
69
113
|
getDefaultSkillOutputPath(skillPath, skillMetadata.name);
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
114
|
+
// 7. Clean stale output (skip when source SKILL.md lives inside the output, e.g. builder flow)
|
|
115
|
+
const resolvedOutput = toForwardSlash(resolve(outputPath));
|
|
116
|
+
const sourceInOutput = toForwardSlash(resolve(skillPath)).startsWith(resolvedOutput + '/');
|
|
117
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- outputPath is validated
|
|
118
|
+
if (!sourceInOutput && existsSync(resolvedOutput)) {
|
|
119
|
+
await rm(resolvedOutput, { recursive: true });
|
|
120
|
+
}
|
|
121
|
+
// 8. Build path map for file copying and link rewriting
|
|
122
|
+
const namingBasePath = projectRoot;
|
|
123
|
+
const pathMap = buildPathMap(skillPath, bundledFiles, outputPath, resourceNaming, namingBasePath, stripPrefix);
|
|
124
|
+
// 9. Build "to" registry for link rewriting (maps same resource IDs to output paths)
|
|
125
|
+
const outputResources = bundledResources.map(resource => ({
|
|
126
|
+
...resource,
|
|
127
|
+
filePath: pathMap.get(toForwardSlash(resource.filePath)) ?? resource.filePath,
|
|
128
|
+
}));
|
|
129
|
+
// Include the skill resource itself in the "to" registry
|
|
130
|
+
if (skillResource) {
|
|
131
|
+
outputResources.push({
|
|
132
|
+
...skillResource,
|
|
133
|
+
filePath: join(outputPath, 'SKILL.md'),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// Include excluded resources (with source paths) for pattern-based rule matching
|
|
137
|
+
for (const excl of excludedReferences) {
|
|
138
|
+
if (excl.excludeReason === 'directory-target' || excl.excludeReason === 'outside-project') {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const exclResource = registry.getResource(resolve(excl.path));
|
|
142
|
+
if (exclResource && !outputResources.some(r => r.id === exclResource.id)) {
|
|
143
|
+
outputResources.push(exclResource);
|
|
80
144
|
}
|
|
81
145
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
146
|
+
const outputRegistry = ResourceRegistry.fromResources(outputPath, outputResources);
|
|
147
|
+
// 10. Build excluded resource IDs for rule matching
|
|
148
|
+
const excludedIds = [...new Set(excludedReferences
|
|
149
|
+
.filter(r => r.excludeReason !== 'directory-target' && r.excludeReason !== 'outside-project')
|
|
150
|
+
.map(r => {
|
|
151
|
+
const res = registry.getResource(resolve(r.path));
|
|
152
|
+
return res?.id;
|
|
153
|
+
})
|
|
154
|
+
.filter((id) => id !== undefined))];
|
|
155
|
+
// 11. Build unified rewrite rules (bundled + excluded, all via transformContent)
|
|
156
|
+
const rewriteRules = buildRewriteRules(excludedIds, excludeConfig?.rules ?? [], excludeConfig?.defaultTemplate);
|
|
157
|
+
// 12. Copy and rewrite files
|
|
158
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- outputPath is validated
|
|
159
|
+
await mkdir(outputPath, { recursive: true });
|
|
160
|
+
await copyAndRewriteFiles(skillPath, bundledFiles, {
|
|
161
|
+
pathMap,
|
|
162
|
+
rewriteLinks,
|
|
163
|
+
fromRegistry: registry,
|
|
164
|
+
toRegistry: outputRegistry,
|
|
165
|
+
rewriteRules,
|
|
166
|
+
templateContext: { skill: { name: skillMetadata.name } },
|
|
167
|
+
});
|
|
168
|
+
// 13. Generate distribution artifacts
|
|
88
169
|
const artifacts = await generatePackageArtifacts(outputPath, skillMetadata, formats);
|
|
89
170
|
// Get relative paths for result
|
|
90
171
|
const relativeLinkedFiles = bundledFiles.map(f => toForwardSlash(relative(effectiveBasePath, f)));
|
|
@@ -105,6 +186,154 @@ export async function packageSkill(skillPath, options = {}) {
|
|
|
105
186
|
}
|
|
106
187
|
return result;
|
|
107
188
|
}
|
|
189
|
+
// ============================================================================
|
|
190
|
+
// Registry Creation
|
|
191
|
+
// ============================================================================
|
|
192
|
+
/**
|
|
193
|
+
* Create a standalone registry for a single skill (when no shared registry is provided).
|
|
194
|
+
*/
|
|
195
|
+
async function createStandaloneRegistry(projectRoot) {
|
|
196
|
+
const registry = await ResourceRegistry.fromCrawl({
|
|
197
|
+
baseDir: projectRoot,
|
|
198
|
+
include: ['**/*.md'],
|
|
199
|
+
});
|
|
200
|
+
registry.resolveLinks();
|
|
201
|
+
return registry;
|
|
202
|
+
}
|
|
203
|
+
// ============================================================================
|
|
204
|
+
// Path Map Building
|
|
205
|
+
// ============================================================================
|
|
206
|
+
/**
|
|
207
|
+
* Build a map of source paths (forward-slash normalized) to output paths.
|
|
208
|
+
* Checks for filename collisions.
|
|
209
|
+
*/
|
|
210
|
+
function buildPathMap(skillPath, bundledFiles, outputPath, resourceNaming, namingBasePath, stripPrefix) {
|
|
211
|
+
const pathMap = new Map();
|
|
212
|
+
pathMap.set(toForwardSlash(skillPath), join(outputPath, 'SKILL.md'));
|
|
213
|
+
for (const linkedFile of bundledFiles) {
|
|
214
|
+
const targetRelPath = generateTargetPath(linkedFile, namingBasePath, resourceNaming, stripPrefix);
|
|
215
|
+
const targetPath = join(outputPath, 'resources', targetRelPath);
|
|
216
|
+
// Check for filename collisions
|
|
217
|
+
const existingSource = [...pathMap.entries()].find(([_src, target]) => target === targetPath)?.[0];
|
|
218
|
+
if (existingSource !== undefined && existingSource !== toForwardSlash(linkedFile)) {
|
|
219
|
+
throw new Error(`Filename collision detected when packaging skill:\n` +
|
|
220
|
+
` File 1: ${existingSource}\n` +
|
|
221
|
+
` File 2: ${linkedFile}\n` +
|
|
222
|
+
` Both would be packaged as: ${targetRelPath}\n` +
|
|
223
|
+
`\n` +
|
|
224
|
+
` To resolve: Use a different resourceNaming strategy or ensure unique filenames.\n` +
|
|
225
|
+
` Current strategy: ${resourceNaming}\n` +
|
|
226
|
+
` Try 'resource-id' or 'preserve-path' for path-based naming.`);
|
|
227
|
+
}
|
|
228
|
+
pathMap.set(toForwardSlash(linkedFile), targetPath);
|
|
229
|
+
}
|
|
230
|
+
return pathMap;
|
|
231
|
+
}
|
|
232
|
+
// ============================================================================
|
|
233
|
+
// Rewrite Rules
|
|
234
|
+
// ============================================================================
|
|
235
|
+
/**
|
|
236
|
+
* Build unified link rewrite rules for transformContent().
|
|
237
|
+
*
|
|
238
|
+
* Rules are ordered for first-match-wins semantics:
|
|
239
|
+
* 1. Bundled links: local_file links minus excluded IDs → rewrite to output path
|
|
240
|
+
* 2. Per-pattern excludes: local_file links matching specific patterns → custom template
|
|
241
|
+
* 3. Catch-all excludes: remaining local_file links (depth-exceeded, navigation) → strip
|
|
242
|
+
*
|
|
243
|
+
* External, anchor, and email links match no rule and are left untouched.
|
|
244
|
+
*/
|
|
245
|
+
function buildRewriteRules(excludedIds, excludeRules, defaultExcludeTemplate) {
|
|
246
|
+
const rules = [];
|
|
247
|
+
// Rule 1: Bundled links — match local_file, skip excluded IDs
|
|
248
|
+
rules.push({
|
|
249
|
+
match: {
|
|
250
|
+
type: 'local_file',
|
|
251
|
+
...(excludedIds.length > 0 ? { excludeResourceIds: excludedIds } : {}),
|
|
252
|
+
},
|
|
253
|
+
template: '[{{link.text}}]({{link.resource.relativePath}}{{link.fragment}})',
|
|
254
|
+
});
|
|
255
|
+
// Rules 2+: Per-pattern exclude rules (if any)
|
|
256
|
+
for (const rule of excludeRules) {
|
|
257
|
+
rules.push({
|
|
258
|
+
match: { type: 'local_file', pattern: rule.patterns },
|
|
259
|
+
template: rule.template ?? defaultExcludeTemplate ?? DEFAULT_STRIP_TEMPLATE,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
// Final catch-all: remaining local_file links (depth-exceeded, navigation, etc.)
|
|
263
|
+
if (excludedIds.length > 0) {
|
|
264
|
+
rules.push({
|
|
265
|
+
match: { type: 'local_file' },
|
|
266
|
+
template: defaultExcludeTemplate ?? DEFAULT_STRIP_TEMPLATE,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return rules;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Copy SKILL.md and all linked files to the output directory,
|
|
273
|
+
* rewriting links using transformContent().
|
|
274
|
+
*/
|
|
275
|
+
async function copyAndRewriteFiles(skillPath, bundledFiles, ctx) {
|
|
276
|
+
// Copy SKILL.md
|
|
277
|
+
const skillTargetPath = ctx.pathMap.get(toForwardSlash(skillPath));
|
|
278
|
+
if (skillTargetPath) {
|
|
279
|
+
await copyAndRewriteFile(skillPath, skillTargetPath, ctx);
|
|
280
|
+
}
|
|
281
|
+
// Copy all linked files
|
|
282
|
+
for (const linkedFile of bundledFiles) {
|
|
283
|
+
const targetPath = ctx.pathMap.get(toForwardSlash(linkedFile));
|
|
284
|
+
if (targetPath === undefined) {
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
await copyAndRewriteFile(linkedFile, targetPath, ctx);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Copy a single file, optionally rewriting markdown links using transformContent().
|
|
292
|
+
*
|
|
293
|
+
* For markdown files with rewriteLinks enabled:
|
|
294
|
+
* 1. Reads the source file
|
|
295
|
+
* 2. Finds the corresponding resource in the "from" registry
|
|
296
|
+
* 3. Calls transformContent() with the resource's links, unified rules, and "to" registry
|
|
297
|
+
* 4. Writes the result
|
|
298
|
+
*
|
|
299
|
+
* All link rewriting (bundled, excluded, inline, reference-style definitions)
|
|
300
|
+
* is handled by a single transformContent() call with ordered rules.
|
|
301
|
+
*
|
|
302
|
+
* For non-markdown files, performs a plain binary copy.
|
|
303
|
+
*/
|
|
304
|
+
async function copyAndRewriteFile(sourcePath, targetPath, ctx) {
|
|
305
|
+
// Ensure target directory exists
|
|
306
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- targetPath is constructed from validated paths
|
|
307
|
+
await mkdir(dirname(targetPath), { recursive: true });
|
|
308
|
+
// Non-markdown files or rewriting disabled: plain binary copy
|
|
309
|
+
if (!sourcePath.endsWith('.md') || !ctx.rewriteLinks) {
|
|
310
|
+
await copyFile(sourcePath, targetPath);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// Read source file
|
|
314
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- sourcePath is validated
|
|
315
|
+
const content = await readFile(sourcePath, 'utf-8');
|
|
316
|
+
// Look up the resource in the "from" registry
|
|
317
|
+
const resource = ctx.fromRegistry.getResource(resolve(sourcePath));
|
|
318
|
+
if (!resource) {
|
|
319
|
+
// Resource not in registry — write content as-is
|
|
320
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- targetPath is constructed from validated paths
|
|
321
|
+
await writeFile(targetPath, content, 'utf-8');
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
// Unified link rewriting: bundled + excluded, inline + definitions
|
|
325
|
+
const transformed = transformContent(content, resource.links, {
|
|
326
|
+
linkRewriteRules: ctx.rewriteRules,
|
|
327
|
+
resourceRegistry: ctx.toRegistry,
|
|
328
|
+
sourceFilePath: targetPath, // Output path so relativePath is computed from output location
|
|
329
|
+
...(ctx.templateContext === undefined ? {} : { context: ctx.templateContext }),
|
|
330
|
+
});
|
|
331
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- targetPath is constructed from validated paths
|
|
332
|
+
await writeFile(targetPath, transformed, 'utf-8');
|
|
333
|
+
}
|
|
334
|
+
// ============================================================================
|
|
335
|
+
// Metadata Extraction
|
|
336
|
+
// ============================================================================
|
|
108
337
|
/**
|
|
109
338
|
* Extract skill metadata from SKILL.md frontmatter or content
|
|
110
339
|
*/
|
|
@@ -158,6 +387,9 @@ export function extractH1Title(content) {
|
|
|
158
387
|
}
|
|
159
388
|
return undefined;
|
|
160
389
|
}
|
|
390
|
+
// ============================================================================
|
|
391
|
+
// Path Utilities
|
|
392
|
+
// ============================================================================
|
|
161
393
|
/**
|
|
162
394
|
* Find the common ancestor directory of all file paths
|
|
163
395
|
*
|
|
@@ -244,198 +476,9 @@ function generateTargetPath(filePath, basePath, strategy = 'basename', stripPref
|
|
|
244
476
|
.replace(/-$/, ''); // Trim trailing hyphen
|
|
245
477
|
return resourceId + ext;
|
|
246
478
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
* Creates a FLAT structure with all files at the root level.
|
|
251
|
-
* Rewrites links to work in the flattened structure.
|
|
252
|
-
*
|
|
253
|
-
* @param skillPath - Path to SKILL.md
|
|
254
|
-
* @param linkedFiles - All linked files to copy
|
|
255
|
-
* @param outputPath - Destination directory
|
|
256
|
-
* @param options - Copy options including rewrite settings and exclude context
|
|
257
|
-
*/
|
|
258
|
-
async function copySkillResources(skillPath, linkedFiles, outputPath, options) {
|
|
259
|
-
const { rewriteLinks, resourceNaming = 'basename', stripPrefix, packageRoot, excludeCtx, } = options;
|
|
260
|
-
// Ensure output directory exists
|
|
261
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Output path is validated
|
|
262
|
-
await mkdir(outputPath, { recursive: true });
|
|
263
|
-
// Build a map of original paths to flattened paths
|
|
264
|
-
// Normalize all keys for consistent lookup (handles path separator differences)
|
|
265
|
-
const pathMap = new Map();
|
|
266
|
-
pathMap.set(toForwardSlash(skillPath), join(outputPath, 'SKILL.md'));
|
|
267
|
-
// Determine base path for resource naming (fallback to skill directory)
|
|
268
|
-
const namingBasePath = packageRoot ?? dirname(skillPath);
|
|
269
|
-
// Map all linked files (using naming strategy - may create subdirectories)
|
|
270
|
-
// Check for collisions
|
|
271
|
-
for (const linkedFile of linkedFiles) {
|
|
272
|
-
const targetRelPath = generateTargetPath(linkedFile, namingBasePath, resourceNaming, stripPrefix);
|
|
273
|
-
const targetPath = join(outputPath, targetRelPath);
|
|
274
|
-
// Check for filename collisions
|
|
275
|
-
const existingSource = [...pathMap.entries()].find(([_src, target]) => target === targetPath)?.[0];
|
|
276
|
-
// Normalize paths for comparison (handles Windows backslash vs forward slash)
|
|
277
|
-
if (existingSource !== undefined && existingSource !== toForwardSlash(linkedFile)) {
|
|
278
|
-
throw new Error(`Filename collision detected when packaging skill:\n` +
|
|
279
|
-
` File 1: ${existingSource}\n` +
|
|
280
|
-
` File 2: ${linkedFile}\n` +
|
|
281
|
-
` Both would be packaged as: ${targetRelPath}\n` +
|
|
282
|
-
`\n` +
|
|
283
|
-
` To resolve: Use a different resourceNaming strategy or ensure unique filenames.\n` +
|
|
284
|
-
` Current strategy: ${resourceNaming}\n` +
|
|
285
|
-
` Try 'resource-id' or 'preserve-path' for path-based naming.`);
|
|
286
|
-
}
|
|
287
|
-
pathMap.set(toForwardSlash(linkedFile), targetPath);
|
|
288
|
-
}
|
|
289
|
-
// Copy SKILL.md
|
|
290
|
-
await copyAndRewriteFile(skillPath, join(outputPath, 'SKILL.md'), pathMap, rewriteLinks, excludeCtx);
|
|
291
|
-
// Copy all linked files (structure depends on naming strategy)
|
|
292
|
-
for (const linkedFile of linkedFiles) {
|
|
293
|
-
const targetPath = pathMap.get(toForwardSlash(linkedFile));
|
|
294
|
-
if (targetPath === undefined) {
|
|
295
|
-
continue; // Should never happen, but satisfy type checker
|
|
296
|
-
}
|
|
297
|
-
await copyAndRewriteFile(linkedFile, targetPath, pathMap, rewriteLinks, excludeCtx);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Copy a file, optionally rewriting markdown links
|
|
302
|
-
*
|
|
303
|
-
* For markdown files with rewriteLinks enabled, adjusts relative links to work
|
|
304
|
-
* from the new location and replaces links to excluded files using templates.
|
|
305
|
-
* For non-markdown files, performs a plain binary copy.
|
|
306
|
-
*
|
|
307
|
-
* @param sourcePath - Source file absolute path
|
|
308
|
-
* @param targetPath - Target file absolute path
|
|
309
|
-
* @param pathMap - Map of source paths to target paths (for flat structure)
|
|
310
|
-
* @param rewriteLinks - Whether to rewrite links
|
|
311
|
-
* @param excludeCtx - Context for excluded file link rewriting
|
|
312
|
-
*/
|
|
313
|
-
async function copyAndRewriteFile(sourcePath, targetPath, pathMap, rewriteLinks, excludeCtx) {
|
|
314
|
-
// Ensure target directory exists
|
|
315
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- targetPath is constructed from validated paths
|
|
316
|
-
await mkdir(dirname(targetPath), { recursive: true });
|
|
317
|
-
// Non-markdown files: plain binary copy (no link rewriting)
|
|
318
|
-
if (!sourcePath.endsWith('.md')) {
|
|
319
|
-
await copyFile(sourcePath, targetPath);
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
if (!rewriteLinks) {
|
|
323
|
-
// Simple copy
|
|
324
|
-
await copyFile(sourcePath, targetPath);
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
// Read, rewrite links, write
|
|
328
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- sourcePath is validated
|
|
329
|
-
let content = await readFile(sourcePath, 'utf-8');
|
|
330
|
-
// Rewrite markdown links to work in flat structure
|
|
331
|
-
content = rewriteMarkdownLinks(content, (href, text) => {
|
|
332
|
-
// Keep external URLs and anchors unchanged
|
|
333
|
-
if (href.startsWith('http://') || href.startsWith('https://') || href.startsWith('mailto:') || href.startsWith('#')) {
|
|
334
|
-
return rewriteHref(href);
|
|
335
|
-
}
|
|
336
|
-
// Split anchor from path
|
|
337
|
-
const [linkPath, anchor] = href.split('#');
|
|
338
|
-
if (!linkPath || linkPath === '') {
|
|
339
|
-
// Pure anchor link - keep as is
|
|
340
|
-
return rewriteHref(href);
|
|
341
|
-
}
|
|
342
|
-
// Resolve old link target (where it currently is)
|
|
343
|
-
// Normalize to handle path separator differences
|
|
344
|
-
const resolvedTarget = resolve(dirname(sourcePath), linkPath);
|
|
345
|
-
const normalizedTarget = toForwardSlash(resolvedTarget);
|
|
346
|
-
// Check if this link targets an excluded file
|
|
347
|
-
if (excludeCtx?.excludedFiles.has(normalizedTarget)) {
|
|
348
|
-
const info = excludeCtx.ruleMap.get(normalizedTarget);
|
|
349
|
-
const rule = info?.rule ?? info?.defaultRule ?? {};
|
|
350
|
-
const template = rule.template ?? DEFAULT_STRIP_TEMPLATE;
|
|
351
|
-
const context = {
|
|
352
|
-
link: {
|
|
353
|
-
text,
|
|
354
|
-
uri: href,
|
|
355
|
-
fileName: basename(resolvedTarget),
|
|
356
|
-
filePath: toForwardSlash(relative(excludeCtx.skillRoot, resolvedTarget)),
|
|
357
|
-
},
|
|
358
|
-
skill: { name: excludeCtx.skillName },
|
|
359
|
-
};
|
|
360
|
-
return replaceEntire(renderTemplate(template, context));
|
|
361
|
-
}
|
|
362
|
-
// Look up where this file will be in the flat structure
|
|
363
|
-
// pathMap keys are also normalized, so this should match
|
|
364
|
-
const newLinkTarget = pathMap.get(normalizedTarget);
|
|
365
|
-
if (newLinkTarget === undefined) {
|
|
366
|
-
// Link points to file not in package (external link already warned about)
|
|
367
|
-
// Keep original href (will be broken, but user was warned)
|
|
368
|
-
return rewriteHref(href);
|
|
369
|
-
}
|
|
370
|
-
// In flat structure, all files are at same level, so just use basename
|
|
371
|
-
let relativePath = relative(dirname(targetPath), newLinkTarget);
|
|
372
|
-
// Clean up ./ prefix (relative() returns ./file when in same directory)
|
|
373
|
-
const normalizedRelPath = toForwardSlash(relativePath);
|
|
374
|
-
if (normalizedRelPath.startsWith('./')) {
|
|
375
|
-
relativePath = normalizedRelPath.slice(2);
|
|
376
|
-
}
|
|
377
|
-
else if (normalizedRelPath === '.') {
|
|
378
|
-
// Same file (shouldn't happen but handle gracefully)
|
|
379
|
-
relativePath = basename(newLinkTarget);
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
relativePath = normalizedRelPath;
|
|
383
|
-
}
|
|
384
|
-
// Reconstruct with anchor if present
|
|
385
|
-
const newHref = anchor ? `${relativePath}#${anchor}` : relativePath;
|
|
386
|
-
// Use forward slashes for consistency
|
|
387
|
-
return rewriteHref(toForwardSlash(newHref));
|
|
388
|
-
});
|
|
389
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Target path is constructed from validated paths
|
|
390
|
-
await writeFile(targetPath, content, 'utf-8');
|
|
391
|
-
}
|
|
392
|
-
/** Create a rewrite-href transform result */
|
|
393
|
-
function rewriteHref(href) {
|
|
394
|
-
return { type: 'rewrite-href', href };
|
|
395
|
-
}
|
|
396
|
-
/** Create a replace-entire transform result */
|
|
397
|
-
function replaceEntire(replacement) {
|
|
398
|
-
return { type: REPLACE_ENTIRE, replacement };
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* Rewrite markdown links using a transform function
|
|
402
|
-
*
|
|
403
|
-
* Handles both inline links [text](href) and reference links [ref]: href.
|
|
404
|
-
* The transform can either rewrite the href or replace the entire link.
|
|
405
|
-
*
|
|
406
|
-
* @param content - Markdown content
|
|
407
|
-
* @param transform - Function to transform each link
|
|
408
|
-
* @returns Modified markdown content
|
|
409
|
-
*/
|
|
410
|
-
function rewriteMarkdownLinks(content, transform) {
|
|
411
|
-
// Rewrite inline links: [text](href)
|
|
412
|
-
// Input is from controlled markdown files, not untrusted user input
|
|
413
|
-
let result = content.replaceAll(
|
|
414
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Controlled markdown input
|
|
415
|
-
/\[((?:[^\]])*?)\]\(((?:[^)])*?)\)/g, (_match, ...args) => {
|
|
416
|
-
const text = String(args[0]);
|
|
417
|
-
const href = String(args[1]);
|
|
418
|
-
const transformResult = transform(href, text);
|
|
419
|
-
if (transformResult.type === REPLACE_ENTIRE) {
|
|
420
|
-
return transformResult.replacement;
|
|
421
|
-
}
|
|
422
|
-
return `[${text}](${transformResult.href})`;
|
|
423
|
-
});
|
|
424
|
-
// Rewrite reference-style link definitions: [ref]: href
|
|
425
|
-
// Input is from controlled markdown files, not untrusted user input
|
|
426
|
-
result = result.replaceAll(
|
|
427
|
-
// eslint-disable-next-line sonarjs/slow-regex -- Controlled markdown input
|
|
428
|
-
/^\[((?:[^\]])*?)\]:\s*(.+)$/gm, (_match, ...args) => {
|
|
429
|
-
const ref = String(args[0]);
|
|
430
|
-
const href = String(args[1]);
|
|
431
|
-
const transformResult = transform(href.trim(), ref);
|
|
432
|
-
if (transformResult.type === REPLACE_ENTIRE) {
|
|
433
|
-
return transformResult.replacement;
|
|
434
|
-
}
|
|
435
|
-
return `[${ref}]: ${transformResult.href}`;
|
|
436
|
-
});
|
|
437
|
-
return result;
|
|
438
|
-
}
|
|
479
|
+
// ============================================================================
|
|
480
|
+
// Artifact Generation
|
|
481
|
+
// ============================================================================
|
|
439
482
|
/**
|
|
440
483
|
* Generate package artifacts in requested formats
|
|
441
484
|
*
|
|
@@ -571,16 +614,4 @@ function findPackageRoot(skillPath, fallbackToSkillDir = false) {
|
|
|
571
614
|
throw new Error(`Could not find package.json for skill at ${skillPath}. ` +
|
|
572
615
|
`Skill must be within an npm package to generate default output path.`);
|
|
573
616
|
}
|
|
574
|
-
/**
|
|
575
|
-
* Find the package root or fall back to skill's directory
|
|
576
|
-
*
|
|
577
|
-
* Used for package boundary detection - if no package.json found,
|
|
578
|
-
* uses skill's directory as the boundary (useful for tests).
|
|
579
|
-
*
|
|
580
|
-
* @param skillPath - Path to SKILL.md
|
|
581
|
-
* @returns Package root directory or skill's directory
|
|
582
|
-
*/
|
|
583
|
-
function findPackageRootOrFallback(skillPath) {
|
|
584
|
-
return findPackageRoot(skillPath, true);
|
|
585
|
-
}
|
|
586
617
|
//# sourceMappingURL=skill-packager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-packager.js","sourceRoot":"","sources":["../src/skill-packager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-packager.js","sourceRoot":"","sources":["../src/skill-packager.ts"],"names":[],"mappings":"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"}
|