@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
@@ -1,16 +1,13 @@
1
1
  import * as fs from 'node:fs';
2
2
  import { parseFrontmatter } from '../parsers/frontmatter-parser.js';
3
- import { ClaudeSkillFrontmatterSchema, VATClaudeSkillFrontmatterSchema } from '../schemas/claude-skill-frontmatter.js';
4
- // Location constants for validation messages
5
- const FRONTMATTER_LOC = 'frontmatter';
6
- const FRONTMATTER_NAME_LOC = 'frontmatter.name';
7
- const FRONTMATTER_DESC_LOC = 'frontmatter.description';
3
+ import { validateFrontmatterRules, validateFrontmatterSchema } from './frontmatter-validation.js';
8
4
  /**
9
- * Validate a Claude Skill (SKILL.md file)
5
+ * Validate an Agent Skill (SKILL.md file)
10
6
  *
11
7
  * Uses ResourceRegistry for markdown/link validation
12
8
  * Adds skill-specific validation (frontmatter schema, skill rules)
13
9
  *
10
+ * @see https://code.claude.com/docs/en/skills — Official Claude Code skill spec
14
11
  * @param options - Validation options
15
12
  * @returns Validation result with all validation issues
16
13
  */
@@ -22,7 +19,7 @@ export async function validateSkill(options) {
22
19
  if (!fs.existsSync(skillPath)) {
23
20
  return {
24
21
  path: skillPath,
25
- type: isVATGenerated ? 'vat-agent' : 'claude-skill',
22
+ type: isVATGenerated ? 'vat-agent' : 'agent-skill',
26
23
  status: 'error',
27
24
  summary: '1 error',
28
25
  issues: [{
@@ -50,10 +47,8 @@ export async function validateSkill(options) {
50
47
  return buildResult(skillPath, isVATGenerated, issues, { lineCount });
51
48
  }
52
49
  const { frontmatter } = parseResult;
53
- // Validate frontmatter schema (skill-specific)
54
- validateFrontmatterSchema(frontmatter, isVATGenerated, issues);
55
- // Validate additional skill rules (skill-specific)
56
- validateAdditionalRules(frontmatter, issues);
50
+ // Validate frontmatter schema (shared with packaging validator)
51
+ issues.push(...validateFrontmatterSchema(frontmatter, isVATGenerated), ...validateFrontmatterRules(frontmatter));
57
52
  // Validate warning-level rules (skill-specific)
58
53
  validateWarningRules(content, lineCount, skillPath, issues);
59
54
  // NOTE: Link validation is handled by resource validation (vat resources validate)
@@ -62,102 +57,6 @@ export async function validateSkill(options) {
62
57
  const metadata = buildMetadata(frontmatter, lineCount);
63
58
  return buildResult(skillPath, isVATGenerated, issues, metadata);
64
59
  }
65
- function validateFrontmatterSchema(frontmatter, isVATGenerated, issues) {
66
- const schema = isVATGenerated ? VATClaudeSkillFrontmatterSchema : ClaudeSkillFrontmatterSchema;
67
- const schemaResult = schema.safeParse(frontmatter);
68
- if (schemaResult.success) {
69
- return;
70
- }
71
- // Map Zod errors to our issue codes
72
- for (const error of schemaResult.error.errors) {
73
- const field = error.path.join('.');
74
- if (field === 'name' && !frontmatter['name']) {
75
- issues.push({
76
- severity: 'error',
77
- code: 'SKILL_MISSING_NAME',
78
- message: 'Required field "name" is missing',
79
- location: FRONTMATTER_LOC,
80
- fix: 'Add "name" field to frontmatter',
81
- });
82
- }
83
- else if (field === 'description' && !frontmatter['description']) {
84
- issues.push({
85
- severity: 'error',
86
- code: 'SKILL_MISSING_DESCRIPTION',
87
- message: 'Required field "description" is missing',
88
- location: FRONTMATTER_LOC,
89
- fix: 'Add "description" field to frontmatter',
90
- });
91
- }
92
- else if (field === 'name') {
93
- issues.push({
94
- severity: 'error',
95
- code: 'SKILL_NAME_INVALID',
96
- message: error.message,
97
- location: FRONTMATTER_NAME_LOC,
98
- fix: 'Change name to lowercase alphanumeric with hyphens (e.g., "my-skill")',
99
- });
100
- }
101
- else if (field === 'description' && error.message.includes('1024')) {
102
- issues.push({
103
- severity: 'error',
104
- code: 'SKILL_DESCRIPTION_TOO_LONG',
105
- message: `Description exceeds 1024 characters (actual: ${frontmatter['description']?.length ?? 0})`,
106
- location: FRONTMATTER_DESC_LOC,
107
- fix: 'Reduce description to 1024 characters or less',
108
- });
109
- }
110
- }
111
- }
112
- function validateAdditionalRules(frontmatter, issues) {
113
- // Validate name field
114
- if (frontmatter['name'] && typeof frontmatter['name'] === 'string') {
115
- const name = frontmatter['name'].toLowerCase();
116
- // Check for reserved words
117
- if (name.includes('anthropic') || name.includes('claude')) {
118
- issues.push({
119
- severity: 'error',
120
- code: 'SKILL_NAME_RESERVED_WORD',
121
- message: 'Name contains reserved word "anthropic" or "claude"',
122
- location: FRONTMATTER_NAME_LOC,
123
- fix: 'Remove reserved word from name',
124
- });
125
- }
126
- // Check for XML tags
127
- if (/[<>]/.test(frontmatter['name'])) {
128
- issues.push({
129
- severity: 'error',
130
- code: 'SKILL_NAME_XML_TAGS',
131
- message: 'Name contains XML tags',
132
- location: FRONTMATTER_NAME_LOC,
133
- fix: 'Remove < and > characters from name',
134
- });
135
- }
136
- }
137
- // Validate description field
138
- if (frontmatter['description'] && typeof frontmatter['description'] === 'string') {
139
- // Check for XML tags
140
- if (/[<>]/.test(frontmatter['description'])) {
141
- issues.push({
142
- severity: 'error',
143
- code: 'SKILL_DESCRIPTION_XML_TAGS',
144
- message: 'Description contains XML tags',
145
- location: FRONTMATTER_DESC_LOC,
146
- fix: 'Remove < and > characters from description',
147
- });
148
- }
149
- // Check for empty description
150
- if (frontmatter['description'].trim() === '') {
151
- issues.push({
152
- severity: 'error',
153
- code: 'SKILL_DESCRIPTION_EMPTY',
154
- message: 'Description is empty',
155
- location: FRONTMATTER_DESC_LOC,
156
- fix: 'Add description explaining what the skill does and when to use it',
157
- });
158
- }
159
- }
160
- }
161
60
  function validateWarningRules(content, lineCount, skillPath, issues) {
162
61
  // Check if skill is too long (>5000 lines)
163
62
  const MAX_SKILL_LINES = 5000;
@@ -217,7 +116,7 @@ function buildResult(skillPath, isVATGenerated, issues, metadata) {
217
116
  const summary = `${errorCount} errors, ${warningCount} warnings, ${infoCount} info`;
218
117
  const result = {
219
118
  path: skillPath,
220
- type: isVATGenerated ? 'vat-agent' : 'claude-skill',
119
+ type: isVATGenerated ? 'vat-agent' : 'agent-skill',
221
120
  status,
222
121
  summary,
223
122
  issues,
@@ -1 +1 @@
1
- {"version":3,"file":"skill-validator.js","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-validator.js","sourceRoot":"","sources":["../../src/validators/skill-validator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export type IssueSeverity = 'error' | 'warning' | 'info';
2
- export type IssueCode = 'SKILL_MISSING_FRONTMATTER' | 'SKILL_MISSING_NAME' | 'SKILL_MISSING_DESCRIPTION' | 'SKILL_NAME_INVALID' | 'SKILL_NAME_RESERVED_WORD' | 'SKILL_NAME_XML_TAGS' | 'SKILL_DESCRIPTION_XML_TAGS' | 'SKILL_DESCRIPTION_TOO_LONG' | 'SKILL_DESCRIPTION_EMPTY' | 'SKILL_MISCONFIGURED_LOCATION' | 'LINK_INTEGRITY_BROKEN' | 'PATH_STYLE_WINDOWS' | 'INVALID_FRONTMATTER' | 'MISSING_NAME' | 'RESERVED_WORD_IN_NAME' | 'BROKEN_INTERNAL_LINK' | 'CIRCULAR_REFERENCE' | 'OUTSIDE_PACKAGE_BOUNDARY' | 'FILENAME_COLLISION' | 'WINDOWS_BACKSLASH_IN_PATH' | 'LINK_TARGETS_DIRECTORY' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'LINKS_TO_NAVIGATION_FILES' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE' | 'PLUGIN_MISSING_MANIFEST' | 'PLUGIN_INVALID_JSON' | 'PLUGIN_INVALID_SCHEMA' | 'MARKETPLACE_MISSING_MANIFEST' | 'MARKETPLACE_INVALID_JSON' | 'MARKETPLACE_INVALID_SCHEMA' | 'REGISTRY_MISSING_FILE' | 'REGISTRY_INVALID_JSON' | 'REGISTRY_INVALID_SCHEMA' | 'UNKNOWN_FORMAT' | 'SKILL_TOO_LONG' | 'REFERENCE_DEPTH_EXCEEDED' | 'REFERENCE_MISSING_TOC' | 'DESCRIPTION_FIRST_PERSON' | 'RESOURCE_UNREACHABLE' | 'SKILL_CONSOLE_INCOMPATIBLE' | 'FILE_STRUCTURE_REPORT' | 'RESOURCE_INVENTORY' | 'METADATA_SUMMARY' | 'SKILL_UNREFERENCED_FILE';
2
+ export type IssueCode = 'SKILL_MISSING_FRONTMATTER' | 'SKILL_MISSING_NAME' | 'SKILL_MISSING_DESCRIPTION' | 'SKILL_NAME_INVALID' | 'SKILL_NAME_RESERVED_WORD' | 'SKILL_NAME_XML_TAGS' | 'SKILL_DESCRIPTION_XML_TAGS' | 'SKILL_DESCRIPTION_TOO_LONG' | 'SKILL_DESCRIPTION_EMPTY' | 'SKILL_MISCONFIGURED_LOCATION' | 'LINK_INTEGRITY_BROKEN' | 'PATH_STYLE_WINDOWS' | 'INVALID_FRONTMATTER' | 'MISSING_NAME' | 'RESERVED_WORD_IN_NAME' | 'BROKEN_INTERNAL_LINK' | 'CIRCULAR_REFERENCE' | 'OUTSIDE_PROJECT_BOUNDARY' | 'FILENAME_COLLISION' | 'WINDOWS_BACKSLASH_IN_PATH' | 'LINK_TARGETS_DIRECTORY' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'LINKS_TO_NAVIGATION_FILES' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE' | 'PLUGIN_MISSING_MANIFEST' | 'PLUGIN_INVALID_JSON' | 'PLUGIN_INVALID_SCHEMA' | 'MARKETPLACE_MISSING_MANIFEST' | 'MARKETPLACE_INVALID_JSON' | 'MARKETPLACE_INVALID_SCHEMA' | 'REGISTRY_MISSING_FILE' | 'REGISTRY_INVALID_JSON' | 'REGISTRY_INVALID_SCHEMA' | 'UNKNOWN_FORMAT' | 'SKILL_TOO_LONG' | 'REFERENCE_DEPTH_EXCEEDED' | 'REFERENCE_MISSING_TOC' | 'DESCRIPTION_FIRST_PERSON' | 'RESOURCE_UNREACHABLE' | 'SKILL_CONSOLE_INCOMPATIBLE' | 'FILE_STRUCTURE_REPORT' | 'RESOURCE_INVENTORY' | 'METADATA_SUMMARY' | 'SKILL_UNREFERENCED_FILE';
3
3
  export interface ValidationIssue {
4
4
  severity: IssueSeverity;
5
5
  code: IssueCode;
@@ -9,7 +9,7 @@ export interface ValidationIssue {
9
9
  }
10
10
  export interface ValidationResult {
11
11
  path: string;
12
- type: 'claude-skill' | 'vat-agent' | 'claude-plugin' | 'marketplace' | 'registry' | 'unknown';
12
+ type: 'agent-skill' | 'vat-agent' | 'claude-plugin' | 'marketplace' | 'registry' | 'unknown';
13
13
  status: 'success' | 'warning' | 'error';
14
14
  summary: string;
15
15
  issues: ValidationIssue[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validators/types.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export type RuleCategory = 'required' | 'best_practice';
21
21
  /**
22
22
  * Validation rule code
23
23
  */
24
- export type ValidationRuleCode = 'INVALID_FRONTMATTER' | 'MISSING_NAME' | 'RESERVED_WORD_IN_NAME' | 'BROKEN_INTERNAL_LINK' | 'CIRCULAR_REFERENCE' | 'OUTSIDE_PACKAGE_BOUNDARY' | 'FILENAME_COLLISION' | 'WINDOWS_BACKSLASH_IN_PATH' | 'LINK_TARGETS_DIRECTORY' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'LINKS_TO_NAVIGATION_FILES' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE';
24
+ export type ValidationRuleCode = 'INVALID_FRONTMATTER' | 'MISSING_NAME' | 'RESERVED_WORD_IN_NAME' | 'BROKEN_INTERNAL_LINK' | 'CIRCULAR_REFERENCE' | 'OUTSIDE_PROJECT_BOUNDARY' | 'FILENAME_COLLISION' | 'WINDOWS_BACKSLASH_IN_PATH' | 'LINK_TARGETS_DIRECTORY' | 'SKILL_LENGTH_EXCEEDS_RECOMMENDED' | 'SKILL_TOTAL_SIZE_LARGE' | 'SKILL_TOO_MANY_FILES' | 'REFERENCE_TOO_DEEP' | 'LINKS_TO_NAVIGATION_FILES' | 'DESCRIPTION_TOO_VAGUE' | 'NO_PROGRESSIVE_DISCLOSURE';
25
25
  /**
26
26
  * Validation rule definition
27
27
  */
@@ -21,7 +21,7 @@ export const NON_OVERRIDABLE_RULES = [
21
21
  'RESERVED_WORD_IN_NAME',
22
22
  'BROKEN_INTERNAL_LINK',
23
23
  'CIRCULAR_REFERENCE',
24
- 'OUTSIDE_PACKAGE_BOUNDARY',
24
+ 'OUTSIDE_PROJECT_BOUNDARY',
25
25
  'FILENAME_COLLISION',
26
26
  'WINDOWS_BACKSLASH_IN_PATH',
27
27
  ];
@@ -60,11 +60,11 @@ export const VALIDATION_RULES = {
60
60
  message: (ctx) => `Circular reference detected: ${ctx['chain'] ?? 'unknown'}`,
61
61
  fix: 'Remove circular link dependency',
62
62
  },
63
- OUTSIDE_PACKAGE_BOUNDARY: {
64
- code: 'OUTSIDE_PACKAGE_BOUNDARY',
63
+ OUTSIDE_PROJECT_BOUNDARY: {
64
+ code: 'OUTSIDE_PROJECT_BOUNDARY',
65
65
  category: 'required',
66
- message: (ctx) => `Link points outside skill package: ${ctx['href'] ?? 'unknown'}`,
67
- fix: 'Keep skills self-contained - move referenced files into package',
66
+ message: (ctx) => `Link points outside project: ${ctx['href'] ?? 'unknown'}`,
67
+ fix: 'Keep skills self-contained - move referenced files into the project',
68
68
  },
69
69
  FILENAME_COLLISION: {
70
70
  code: 'FILENAME_COLLISION',
@@ -1 +1 @@
1
- {"version":3,"file":"validation-rules.js","sourceRoot":"","sources":["../../src/validators/validation-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation-rules.js","sourceRoot":"","sources":["../../src/validators/validation-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Pure link graph walker that operates on ResourceRegistry data.
3
+ *
4
+ * Replaces the I/O-heavy `collectLinks()` with a pure function that walks
5
+ * the link graph using pre-parsed data from a ResourceRegistry. This eliminates
6
+ * per-file `parseMarkdown()` calls and `existsSync()` checks for markdown files.
7
+ *
8
+ * Non-markdown assets (images, JSON, etc.) won't be in the registry and still
9
+ * require `existsSync()` checks — this is acceptable since the goal is eliminating
10
+ * redundant I/O for markdown files that are already parsed.
11
+ */
12
+ import type { ResourceMetadata } from '@vibe-agent-toolkit/resources';
13
+ /**
14
+ * Resolution result for a single link found in a bundled markdown file.
15
+ */
16
+ export interface LinkResolution {
17
+ /** Absolute path to the linked file */
18
+ path: string;
19
+ /** Whether the file will be bundled */
20
+ bundled: boolean;
21
+ /** Reason it was excluded (only set when bundled is false) */
22
+ excludeReason?: 'depth-exceeded' | 'pattern-matched' | 'directory-target' | 'outside-project' | 'navigation-file' | undefined;
23
+ /** The rule that matched (only set for pattern-matched exclusions) */
24
+ matchedRule?: ExcludeRule | undefined;
25
+ /** Link text from the source markdown */
26
+ linkText?: string | undefined;
27
+ /** Original href from the markdown */
28
+ linkHref?: string | undefined;
29
+ }
30
+ /**
31
+ * A rule that excludes files from bundling based on glob patterns.
32
+ * First matching rule wins (ordered evaluation).
33
+ */
34
+ export interface ExcludeRule {
35
+ patterns: string[];
36
+ template?: string | undefined;
37
+ }
38
+ /**
39
+ * Minimal interface for the registry operations walkLinkGraph needs.
40
+ * Avoids tight coupling to the full ResourceRegistry class.
41
+ */
42
+ export interface WalkableRegistry {
43
+ getResourceById(id: string): ResourceMetadata | undefined;
44
+ getResource(filePath: string): ResourceMetadata | undefined;
45
+ }
46
+ /**
47
+ * Result of walking the link graph from a skill resource.
48
+ */
49
+ export interface LinkGraphResult {
50
+ /** Markdown resources within depth and not excluded */
51
+ bundledResources: ResourceMetadata[];
52
+ /** Non-markdown file paths (images, JSON, etc.) — absolute paths */
53
+ bundledAssets: string[];
54
+ /** References detected but NOT bundled (depth, exclude, etc.) */
55
+ excludedReferences: LinkResolution[];
56
+ /** Actual max depth of the bundled portion */
57
+ maxBundledDepth: number;
58
+ }
59
+ /**
60
+ * Options for walking the link graph.
61
+ */
62
+ export interface WalkLinkGraphOptions {
63
+ /** Max depth for following markdown links (Infinity for 'full') */
64
+ maxDepth: number;
65
+ /** Ordered exclude rules (first match wins) */
66
+ excludeRules: ExcludeRule[];
67
+ /** Project root for boundary enforcement and pattern matching */
68
+ projectRoot: string;
69
+ /** Whether to exclude navigation files (README.md, index.md, etc.) */
70
+ excludeNavigationFiles?: boolean;
71
+ }
72
+ /**
73
+ * Walk the link graph starting from a skill resource, using pre-parsed
74
+ * registry data instead of per-file I/O.
75
+ *
76
+ * Semantics match the original `collectLinks()`:
77
+ * - Non-markdown assets bypass depth limits (always bundled unless pattern-excluded)
78
+ * - Markdown links are subject to depth limits and exclude rules
79
+ * - Circular references are handled via a visited set
80
+ * - Glob matching uses forward-slash paths relative to projectRoot
81
+ *
82
+ * @param skillResourceId - The resource ID of the skill's SKILL.md in the registry
83
+ * @param registry - A walkable registry with pre-parsed resources
84
+ * @param options - Walk options (depth, excludes, etc.)
85
+ * @returns Graph walk result with bundled resources, assets, and exclusions
86
+ */
87
+ export declare function walkLinkGraph(skillResourceId: string, registry: WalkableRegistry, options: WalkLinkGraphOptions): LinkGraphResult;
88
+ //# sourceMappingURL=walk-link-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-link-graph.d.ts","sourceRoot":"","sources":["../src/walk-link-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMpF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC9H,sEAAsE;IACtE,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAMD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,oEAAoE;IACpE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iEAAiE;IACjE,kBAAkB,EAAE,cAAc,EAAE,CAAC;IACrC,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAyLD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,oBAAoB,GAC5B,eAAe,CA0CjB"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Pure link graph walker that operates on ResourceRegistry data.
3
+ *
4
+ * Replaces the I/O-heavy `collectLinks()` with a pure function that walks
5
+ * the link graph using pre-parsed data from a ResourceRegistry. This eliminates
6
+ * per-file `parseMarkdown()` calls and `existsSync()` checks for markdown files.
7
+ *
8
+ * Non-markdown assets (images, JSON, etc.) won't be in the registry and still
9
+ * require `existsSync()` checks — this is acceptable since the goal is eliminating
10
+ * redundant I/O for markdown files that are already parsed.
11
+ */
12
+ import { existsSync, statSync } from 'node:fs';
13
+ import { basename, dirname, relative, resolve } from 'node:path';
14
+ import { toForwardSlash } from '@vibe-agent-toolkit/utils';
15
+ import picomatch from 'picomatch';
16
+ import { NAVIGATION_FILE_PATTERNS } from './validators/validation-rules.js';
17
+ // ============================================================================
18
+ // Internal Helpers
19
+ // ============================================================================
20
+ /** Resolve a link's href to an absolute file path, stripping any anchor */
21
+ function resolveHrefToPath(href, sourceFilePath) {
22
+ const anchorIndex = href.indexOf('#');
23
+ const hrefWithoutAnchor = anchorIndex === -1 ? href : href.slice(0, anchorIndex);
24
+ return resolve(dirname(sourceFilePath), hrefWithoutAnchor);
25
+ }
26
+ /** Check if a link targets a file outside the project boundary */
27
+ function isOutsideProject(targetPath, projectRoot) {
28
+ return relative(projectRoot, targetPath).startsWith('..');
29
+ }
30
+ /** Check if a filename is a navigation file */
31
+ function isNavigationFile(filename) {
32
+ return NAVIGATION_FILE_PATTERNS.includes(filename);
33
+ }
34
+ /** Create an exclusion record */
35
+ function makeExclusion(targetPath, reason, link, matchedRule) {
36
+ return {
37
+ path: targetPath,
38
+ bundled: false,
39
+ excludeReason: reason,
40
+ ...(matchedRule ? { matchedRule } : {}),
41
+ linkText: link.text,
42
+ linkHref: link.href,
43
+ };
44
+ }
45
+ /**
46
+ * Check if a target path should be excluded for structural reasons
47
+ * (directory, outside project, navigation file, or pattern match).
48
+ *
49
+ * @returns true if the link was excluded (caller should skip to next link)
50
+ */
51
+ function checkExclusions(targetPath, link, options, excludeMatchers, excludedReferences) {
52
+ // Check if target is a directory
53
+ try {
54
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from parsed markdown
55
+ if (existsSync(targetPath) && statSync(targetPath).isDirectory()) {
56
+ excludedReferences.push(makeExclusion(targetPath, 'directory-target', link));
57
+ return true;
58
+ }
59
+ }
60
+ catch {
61
+ // statSync failure = skip
62
+ return true;
63
+ }
64
+ // Check project boundary
65
+ if (isOutsideProject(targetPath, options.projectRoot)) {
66
+ excludedReferences.push(makeExclusion(targetPath, 'outside-project', link));
67
+ return true;
68
+ }
69
+ // Check navigation file exclusion
70
+ if (options.excludeNavigationFiles && isNavigationFile(basename(targetPath))) {
71
+ excludedReferences.push(makeExclusion(targetPath, 'navigation-file', link));
72
+ return true;
73
+ }
74
+ // Check exclude patterns (relative to projectRoot)
75
+ const relativePath = toForwardSlash(relative(options.projectRoot, targetPath));
76
+ const matchedExclude = excludeMatchers.find((m) => m.isMatch(relativePath));
77
+ if (matchedExclude) {
78
+ excludedReferences.push(makeExclusion(targetPath, 'pattern-matched', link, matchedExclude.rule));
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+ /**
84
+ * Process a single local_file link during the graph walk.
85
+ *
86
+ * Checks exclusions, resolves the target in the registry, and either
87
+ * bundles it (if markdown), records it as an asset, or excludes it.
88
+ */
89
+ function processLink(link, currentResource, currentDepth, registry, options, excludeMatchers, state) {
90
+ // Resolve the target path from the link href
91
+ const targetPath = resolveHrefToPath(link.href, currentResource.filePath);
92
+ const hrefWithoutAnchor = link.href.split('#')[0] ?? link.href;
93
+ // Skip empty hrefs (pure anchor links that slipped through type classification)
94
+ if (hrefWithoutAnchor === '') {
95
+ return;
96
+ }
97
+ // Check structural exclusions (directory, boundary, navigation, pattern)
98
+ if (checkExclusions(targetPath, link, options, excludeMatchers, state.excludedReferences)) {
99
+ return;
100
+ }
101
+ // Try to find the target in the registry (markdown files)
102
+ const targetResource = link.resolvedId
103
+ ? registry.getResourceById(link.resolvedId)
104
+ : registry.getResource(targetPath);
105
+ if (targetResource) {
106
+ processRegistryResource(targetResource, targetPath, link, currentDepth, options, state);
107
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from parsed markdown
108
+ }
109
+ else if (existsSync(targetPath)) {
110
+ // Not in registry — non-markdown asset that exists on disk
111
+ state.bundledAssetSet.add(toForwardSlash(targetPath));
112
+ }
113
+ // If file doesn't exist and not in registry, silently skip (same as old collectLinks)
114
+ }
115
+ /**
116
+ * Process a registry resource link: check depth, cycle, and either bundle or exclude.
117
+ */
118
+ function processRegistryResource(targetResource, targetPath, link, currentDepth, options, state) {
119
+ // Check depth limit
120
+ if (currentDepth >= options.maxDepth) {
121
+ state.excludedReferences.push(makeExclusion(targetPath, 'depth-exceeded', link));
122
+ return;
123
+ }
124
+ // Check if already visited (cycle prevention)
125
+ if (state.visitedResourceIds.has(targetResource.id)) {
126
+ return;
127
+ }
128
+ // Bundle and recurse
129
+ state.visitedResourceIds.add(targetResource.id);
130
+ state.bundledResourceMap.set(targetResource.id, targetResource);
131
+ state.maxBundledDepth = Math.max(state.maxBundledDepth, currentDepth + 1);
132
+ state.queue.push([targetResource, currentDepth + 1]);
133
+ }
134
+ // ============================================================================
135
+ // Public API
136
+ // ============================================================================
137
+ /**
138
+ * Walk the link graph starting from a skill resource, using pre-parsed
139
+ * registry data instead of per-file I/O.
140
+ *
141
+ * Semantics match the original `collectLinks()`:
142
+ * - Non-markdown assets bypass depth limits (always bundled unless pattern-excluded)
143
+ * - Markdown links are subject to depth limits and exclude rules
144
+ * - Circular references are handled via a visited set
145
+ * - Glob matching uses forward-slash paths relative to projectRoot
146
+ *
147
+ * @param skillResourceId - The resource ID of the skill's SKILL.md in the registry
148
+ * @param registry - A walkable registry with pre-parsed resources
149
+ * @param options - Walk options (depth, excludes, etc.)
150
+ * @returns Graph walk result with bundled resources, assets, and exclusions
151
+ */
152
+ export function walkLinkGraph(skillResourceId, registry, options) {
153
+ const skillResource = registry.getResourceById(skillResourceId);
154
+ if (!skillResource) {
155
+ return { bundledResources: [], bundledAssets: [], excludedReferences: [], maxBundledDepth: 0 };
156
+ }
157
+ // Compile exclude patterns once
158
+ const excludeMatchers = options.excludeRules.map((rule) => ({
159
+ rule,
160
+ isMatch: picomatch(rule.patterns),
161
+ }));
162
+ // Initialize walk state
163
+ const state = {
164
+ visitedResourceIds: new Set([skillResourceId]),
165
+ bundledResourceMap: new Map(),
166
+ bundledAssetSet: new Set(),
167
+ excludedReferences: [],
168
+ maxBundledDepth: 0,
169
+ queue: [[skillResource, 0]],
170
+ };
171
+ while (state.queue.length > 0) {
172
+ const entry = state.queue.shift();
173
+ if (!entry) {
174
+ break;
175
+ }
176
+ const [currentResource, currentDepth] = entry;
177
+ for (const link of currentResource.links) {
178
+ if (link.type === 'local_file') {
179
+ processLink(link, currentResource, currentDepth, registry, options, excludeMatchers, state);
180
+ }
181
+ }
182
+ }
183
+ return {
184
+ bundledResources: [...state.bundledResourceMap.values()],
185
+ bundledAssets: [...state.bundledAssetSet],
186
+ excludedReferences: state.excludedReferences,
187
+ maxBundledDepth: state.maxBundledDepth,
188
+ };
189
+ }
190
+ //# sourceMappingURL=walk-link-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk-link-graph.js","sourceRoot":"","sources":["../src/walk-link-graph.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-agent-toolkit/agent-skills",
3
- "version": "0.1.13",
3
+ "version": "0.1.15-rc.1",
4
4
  "description": "Build, validate, and package agent skills in the Agent Skills format",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -28,9 +28,10 @@
28
28
  "typecheck": "tsc --noEmit"
29
29
  },
30
30
  "dependencies": {
31
- "@vibe-agent-toolkit/agent-config": "0.1.13",
32
- "@vibe-agent-toolkit/resources": "0.1.13",
33
- "@vibe-agent-toolkit/utils": "0.1.13",
31
+ "@vibe-agent-toolkit/agent-config": "0.1.15-rc.1",
32
+ "@vibe-agent-toolkit/agent-schema": "0.1.15-rc.1",
33
+ "@vibe-agent-toolkit/resources": "0.1.15-rc.1",
34
+ "@vibe-agent-toolkit/utils": "0.1.15-rc.1",
34
35
  "adm-zip": "^0.5.16",
35
36
  "picomatch": "^4.0.3",
36
37
  "yaml": "^2.6.1",