@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.
Files changed (74) hide show
  1. package/README.md +28 -28
  2. package/dist/builder.d.ts +3 -3
  3. package/dist/builder.d.ts.map +1 -1
  4. package/dist/builder.js +3 -3
  5. package/dist/builder.js.map +1 -1
  6. package/dist/import.d.ts +1 -1
  7. package/dist/import.js +7 -7
  8. package/dist/import.js.map +1 -1
  9. package/dist/index.d.ts +4 -4
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -4
  12. package/dist/index.js.map +1 -1
  13. package/dist/schemas/agent-skill-frontmatter.d.ts +140 -0
  14. package/dist/schemas/agent-skill-frontmatter.d.ts.map +1 -0
  15. package/dist/schemas/agent-skill-frontmatter.js +95 -0
  16. package/dist/schemas/agent-skill-frontmatter.js.map +1 -0
  17. package/dist/schemas/claude-plugin.d.ts +60 -109
  18. package/dist/schemas/claude-plugin.d.ts.map +1 -1
  19. package/dist/schemas/claude-plugin.js +26 -34
  20. package/dist/schemas/claude-plugin.js.map +1 -1
  21. package/dist/schemas/index.d.ts +1 -1
  22. package/dist/schemas/index.d.ts.map +1 -1
  23. package/dist/schemas/index.js +1 -1
  24. package/dist/schemas/index.js.map +1 -1
  25. package/dist/schemas/marketplace.d.ts +1224 -202
  26. package/dist/schemas/marketplace.d.ts.map +1 -1
  27. package/dist/schemas/marketplace.js +51 -13
  28. package/dist/schemas/marketplace.js.map +1 -1
  29. package/dist/skill-packager.d.ts +42 -0
  30. package/dist/skill-packager.d.ts.map +1 -1
  31. package/dist/skill-packager.js +269 -238
  32. package/dist/skill-packager.js.map +1 -1
  33. package/dist/validators/format-detection.js +7 -7
  34. package/dist/validators/format-detection.js.map +1 -1
  35. package/dist/validators/frontmatter-validation.d.ts +30 -0
  36. package/dist/validators/frontmatter-validation.d.ts.map +1 -0
  37. package/dist/validators/frontmatter-validation.js +132 -0
  38. package/dist/validators/frontmatter-validation.js.map +1 -0
  39. package/dist/validators/marketplace-validator.d.ts +1 -0
  40. package/dist/validators/marketplace-validator.d.ts.map +1 -1
  41. package/dist/validators/marketplace-validator.js +1 -0
  42. package/dist/validators/marketplace-validator.js.map +1 -1
  43. package/dist/validators/packaging-validator.d.ts +1 -1
  44. package/dist/validators/packaging-validator.d.ts.map +1 -1
  45. package/dist/validators/packaging-validator.js +53 -11
  46. package/dist/validators/packaging-validator.js.map +1 -1
  47. package/dist/validators/plugin-validator.d.ts +2 -1
  48. package/dist/validators/plugin-validator.d.ts.map +1 -1
  49. package/dist/validators/plugin-validator.js +2 -1
  50. package/dist/validators/plugin-validator.js.map +1 -1
  51. package/dist/validators/skill-validator.d.ts +2 -1
  52. package/dist/validators/skill-validator.d.ts.map +1 -1
  53. package/dist/validators/skill-validator.js +7 -108
  54. package/dist/validators/skill-validator.js.map +1 -1
  55. package/dist/validators/types.d.ts +2 -2
  56. package/dist/validators/types.d.ts.map +1 -1
  57. package/dist/validators/validation-rules.d.ts +1 -1
  58. package/dist/validators/validation-rules.js +5 -5
  59. package/dist/validators/validation-rules.js.map +1 -1
  60. package/dist/walk-link-graph.d.ts +88 -0
  61. package/dist/walk-link-graph.d.ts.map +1 -0
  62. package/dist/walk-link-graph.js +190 -0
  63. package/dist/walk-link-graph.js.map +1 -0
  64. package/package.json +5 -4
  65. package/schemas/skill-frontmatter.json +32 -7
  66. package/schemas/vat-skill-frontmatter.json +32 -3
  67. package/dist/link-collector.d.ts +0 -86
  68. package/dist/link-collector.d.ts.map +0 -1
  69. package/dist/link-collector.js +0 -206
  70. package/dist/link-collector.js.map +0 -1
  71. package/dist/schemas/claude-skill-frontmatter.d.ts +0 -75
  72. package/dist/schemas/claude-skill-frontmatter.d.ts.map +0 -1
  73. package/dist/schemas/claude-skill-frontmatter.js +0 -48
  74. package/dist/schemas/claude-skill-frontmatter.js.map +0 -1
@@ -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 { renderTemplate, toForwardSlash } from '@vibe-agent-toolkit/utils';
19
- import { collectLinks } from './link-collector.js';
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
- const REPLACE_ENTIRE = 'replace-entire';
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 package boundary (to prevent collecting files from other packages)
47
- // If no package.json found, use skill's directory as boundary (for tests)
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. Collect all linked resources using unified link collector
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
- const defaultRule = {
55
- ...(excludeConfig?.defaultTemplate ? { template: excludeConfig.defaultTemplate } : {}),
56
- };
57
- const { bundledFiles, excludedReferences } = await collectLinks(skillPath, {
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
- defaultRule,
61
- skillRoot,
62
- packageRoot,
100
+ projectRoot,
101
+ excludeNavigationFiles,
63
102
  });
64
- // 4. Calculate common ancestor of all files (for proper relative path calculation)
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
- // 5. Determine output path
111
+ // 6. Determine output path
68
112
  const outputPath = options.outputPath ??
69
113
  getDefaultSkillOutputPath(skillPath, skillMetadata.name);
70
- // 6. Build excluded file maps for link rewriting
71
- const excludedFileSet = new Set(excludedReferences.map(r => toForwardSlash(r.path)));
72
- const excludeRuleMap = new Map();
73
- for (const ref of excludedReferences) {
74
- const normalizedRefPath = toForwardSlash(ref.path);
75
- if (!excludeRuleMap.has(normalizedRefPath)) {
76
- excludeRuleMap.set(normalizedRefPath, {
77
- rule: ref.matchedRule,
78
- defaultRule,
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
- // 7. Copy SKILL.md and all linked files (flat structure with configurable naming)
83
- const excludeCtx = excludedFileSet.size > 0
84
- ? { excludedFiles: excludedFileSet, ruleMap: excludeRuleMap, skillName: skillMetadata.name, skillRoot }
85
- : undefined;
86
- await copySkillResources(skillPath, bundledFiles, outputPath, { rewriteLinks, resourceNaming, stripPrefix, packageRoot, excludeCtx });
87
- // 8. Generate distribution artifacts
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
- * Copy SKILL.md and linked files to output directory
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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"}