@vibe-agent-toolkit/agent-skills 0.1.41-rc.5 → 0.1.41-rc.7

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 (145) hide show
  1. package/dist/files-config.d.ts +12 -56
  2. package/dist/files-config.d.ts.map +1 -1
  3. package/dist/files-config.js +37 -61
  4. package/dist/files-config.js.map +1 -1
  5. package/dist/index.d.ts +8 -6
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +8 -6
  8. package/dist/index.js.map +1 -1
  9. package/dist/inventory/detectors/declared-but-missing.d.ts +1 -1
  10. package/dist/inventory/detectors/declared-but-missing.d.ts.map +1 -1
  11. package/dist/inventory/detectors/declared-but-missing.js +5 -2
  12. package/dist/inventory/detectors/declared-but-missing.js.map +1 -1
  13. package/dist/inventory/detectors/marketplace-source-missing.d.ts +1 -1
  14. package/dist/inventory/detectors/marketplace-source-missing.d.ts.map +1 -1
  15. package/dist/inventory/detectors/marketplace-source-missing.js +3 -2
  16. package/dist/inventory/detectors/marketplace-source-missing.js.map +1 -1
  17. package/dist/inventory/detectors/present-but-undeclared.d.ts +1 -1
  18. package/dist/inventory/detectors/present-but-undeclared.d.ts.map +1 -1
  19. package/dist/inventory/detectors/present-but-undeclared.js +14 -12
  20. package/dist/inventory/detectors/present-but-undeclared.js.map +1 -1
  21. package/dist/inventory/detectors/reference-target-missing.d.ts +1 -1
  22. package/dist/inventory/detectors/reference-target-missing.d.ts.map +1 -1
  23. package/dist/inventory/detectors/reference-target-missing.js +23 -8
  24. package/dist/inventory/detectors/reference-target-missing.js.map +1 -1
  25. package/dist/inventory/serialize.d.ts +28 -5
  26. package/dist/inventory/serialize.d.ts.map +1 -1
  27. package/dist/inventory/serialize.js +19 -16
  28. package/dist/inventory/serialize.js.map +1 -1
  29. package/dist/plugin-distribution-layout.d.ts +57 -10
  30. package/dist/plugin-distribution-layout.d.ts.map +1 -1
  31. package/dist/plugin-distribution-layout.js +100 -17
  32. package/dist/plugin-distribution-layout.js.map +1 -1
  33. package/dist/post-build-checks.d.ts +16 -1
  34. package/dist/post-build-checks.d.ts.map +1 -1
  35. package/dist/post-build-checks.js +32 -12
  36. package/dist/post-build-checks.js.map +1 -1
  37. package/dist/schemas/index.d.ts +0 -1
  38. package/dist/schemas/index.d.ts.map +1 -1
  39. package/dist/schemas/index.js +0 -1
  40. package/dist/schemas/index.js.map +1 -1
  41. package/dist/skill-identity.d.ts +21 -0
  42. package/dist/skill-identity.d.ts.map +1 -0
  43. package/dist/skill-identity.js +40 -0
  44. package/dist/skill-identity.js.map +1 -0
  45. package/dist/skill-packager.d.ts +27 -0
  46. package/dist/skill-packager.d.ts.map +1 -1
  47. package/dist/skill-packager.js +142 -32
  48. package/dist/skill-packager.js.map +1 -1
  49. package/dist/skill-test/declared-env.d.ts +52 -6
  50. package/dist/skill-test/declared-env.d.ts.map +1 -1
  51. package/dist/skill-test/declared-env.js +66 -8
  52. package/dist/skill-test/declared-env.js.map +1 -1
  53. package/dist/skill-test/eval-inputs.d.ts.map +1 -1
  54. package/dist/skill-test/eval-inputs.js +3 -1
  55. package/dist/skill-test/eval-inputs.js.map +1 -1
  56. package/dist/skill-test/eval-suite-isolation.d.ts +98 -0
  57. package/dist/skill-test/eval-suite-isolation.d.ts.map +1 -0
  58. package/dist/skill-test/eval-suite-isolation.js +131 -0
  59. package/dist/skill-test/eval-suite-isolation.js.map +1 -0
  60. package/dist/skill-test/index.d.ts +2 -1
  61. package/dist/skill-test/index.d.ts.map +1 -1
  62. package/dist/skill-test/index.js +2 -1
  63. package/dist/skill-test/index.js.map +1 -1
  64. package/dist/skill-test/run-harness.d.ts +79 -3
  65. package/dist/skill-test/run-harness.d.ts.map +1 -1
  66. package/dist/skill-test/run-harness.js +216 -65
  67. package/dist/skill-test/run-harness.js.map +1 -1
  68. package/dist/skill-test/staging.d.ts +28 -0
  69. package/dist/skill-test/staging.d.ts.map +1 -1
  70. package/dist/skill-test/staging.js +40 -1
  71. package/dist/skill-test/staging.js.map +1 -1
  72. package/dist/test-input.d.ts +140 -0
  73. package/dist/test-input.d.ts.map +1 -0
  74. package/dist/test-input.js +232 -0
  75. package/dist/test-input.js.map +1 -0
  76. package/dist/validators/anchor-root.d.ts +35 -0
  77. package/dist/validators/anchor-root.d.ts.map +1 -0
  78. package/dist/validators/anchor-root.js +14 -0
  79. package/dist/validators/anchor-root.js.map +1 -0
  80. package/dist/validators/bundled-resource-link-detection.d.ts +2 -1
  81. package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -1
  82. package/dist/validators/bundled-resource-link-detection.js +4 -3
  83. package/dist/validators/bundled-resource-link-detection.js.map +1 -1
  84. package/dist/validators/cross-skill-dependency-detection.d.ts +2 -1
  85. package/dist/validators/cross-skill-dependency-detection.d.ts.map +1 -1
  86. package/dist/validators/cross-skill-dependency-detection.js +8 -4
  87. package/dist/validators/cross-skill-dependency-detection.js.map +1 -1
  88. package/dist/validators/frontmatter-validation.d.ts +6 -2
  89. package/dist/validators/frontmatter-validation.d.ts.map +1 -1
  90. package/dist/validators/frontmatter-validation.js +36 -20
  91. package/dist/validators/frontmatter-validation.js.map +1 -1
  92. package/dist/validators/imperative-body-detection.d.ts +5 -0
  93. package/dist/validators/imperative-body-detection.d.ts.map +1 -1
  94. package/dist/validators/imperative-body-detection.js +7 -1
  95. package/dist/validators/imperative-body-detection.js.map +1 -1
  96. package/dist/validators/index.d.ts +1 -1
  97. package/dist/validators/index.d.ts.map +1 -1
  98. package/dist/validators/index.js +1 -1
  99. package/dist/validators/index.js.map +1 -1
  100. package/dist/validators/marketplace-validator.d.ts +3 -1
  101. package/dist/validators/marketplace-validator.d.ts.map +1 -1
  102. package/dist/validators/marketplace-validator.js +15 -6
  103. package/dist/validators/marketplace-validator.js.map +1 -1
  104. package/dist/validators/packaging-validator.d.ts +53 -3
  105. package/dist/validators/packaging-validator.d.ts.map +1 -1
  106. package/dist/validators/packaging-validator.js +147 -64
  107. package/dist/validators/packaging-validator.js.map +1 -1
  108. package/dist/validators/registry-validator.d.ts +5 -2
  109. package/dist/validators/registry-validator.d.ts.map +1 -1
  110. package/dist/validators/registry-validator.js +23 -9
  111. package/dist/validators/registry-validator.js.map +1 -1
  112. package/dist/validators/rule-engine/rule-engine.d.ts +15 -2
  113. package/dist/validators/rule-engine/rule-engine.d.ts.map +1 -1
  114. package/dist/validators/rule-engine/rule-engine.js +9 -0
  115. package/dist/validators/rule-engine/rule-engine.js.map +1 -1
  116. package/dist/validators/skill-validator.d.ts.map +1 -1
  117. package/dist/validators/skill-validator.js +50 -46
  118. package/dist/validators/skill-validator.js.map +1 -1
  119. package/dist/validators/types.d.ts +31 -1
  120. package/dist/validators/types.d.ts.map +1 -1
  121. package/dist/validators/unified-validator.d.ts +8 -3
  122. package/dist/validators/unified-validator.d.ts.map +1 -1
  123. package/dist/validators/unified-validator.js +44 -33
  124. package/dist/validators/unified-validator.js.map +1 -1
  125. package/dist/validators/validation-rules.d.ts +11 -1
  126. package/dist/validators/validation-rules.d.ts.map +1 -1
  127. package/dist/validators/validation-rules.js +20 -1
  128. package/dist/validators/validation-rules.js.map +1 -1
  129. package/dist/validators/validation-utils.d.ts +0 -8
  130. package/dist/validators/validation-utils.d.ts.map +1 -1
  131. package/dist/validators/validation-utils.js +0 -15
  132. package/dist/validators/validation-utils.js.map +1 -1
  133. package/dist/validators/walker-to-issues.d.ts +2 -2
  134. package/dist/validators/walker-to-issues.d.ts.map +1 -1
  135. package/dist/validators/walker-to-issues.js +15 -6
  136. package/dist/validators/walker-to-issues.js.map +1 -1
  137. package/dist/walk-link-graph.d.ts +29 -10
  138. package/dist/walk-link-graph.d.ts.map +1 -1
  139. package/dist/walk-link-graph.js +92 -58
  140. package/dist/walk-link-graph.js.map +1 -1
  141. package/package.json +5 -5
  142. package/dist/schemas/plugin-json.d.ts +0 -41
  143. package/dist/schemas/plugin-json.d.ts.map +0 -1
  144. package/dist/schemas/plugin-json.js +0 -18
  145. package/dist/schemas/plugin-json.js.map +0 -1
@@ -17,6 +17,18 @@ export interface FilesMatchResult {
17
17
  /** The matching files entry */
18
18
  entry: SkillFileEntry;
19
19
  }
20
+ /**
21
+ * Normalize a relative path for comparison: forward slashes, no leading `./`.
22
+ * The path's ROOT is the caller's business; this only fixes the spelling.
23
+ *
24
+ * Exported because it is the spelling every `files:` dest returned by
25
+ * {@link applyFilesConfig} is normalized to, and that spelling must equal the one
26
+ * `checkUnreferencedFiles` computes for a packaged file
27
+ * (`toForwardSlash(safePath.relative(outputDir, file))`) — both are
28
+ * skill-output-relative. A silent mismatch there reads as "not declared in
29
+ * `files:` config" about a copy VAT performed itself.
30
+ */
31
+ export declare function normalizeRelPath(p: string): string;
20
32
  /**
21
33
  * Merge defaults and per-skill files entries.
22
34
  *
@@ -43,62 +55,6 @@ export declare function mergeFilesConfig(defaults: SkillFileEntry[] | undefined,
43
55
  * @returns Match result or null if no match
44
56
  */
45
57
  export declare function matchLinkToFiles(linkTarget: string, files: SkillFileEntry[]): FilesMatchResult | null;
46
- /**
47
- * Structured deferred path sets returned by {@link computeDeferredPaths}.
48
- *
49
- * - `destPaths` — files: dest paths that are always deferred (the target
50
- * location won't exist until build time).
51
- * - `sourcePaths` — files: source paths that are deferred ONLY when the
52
- * target does not yet exist on disk (i.e. genuine build artifacts). A
53
- * source that already exists on disk and is gitignored is a leak and must
54
- * NOT be deferred — let it fall through to the gitignore branch.
55
- */
56
- export interface DeferredPaths {
57
- /** files: dest paths — always deferred (won't exist until build). */
58
- destPaths: Set<string>;
59
- /** files: source paths — deferred ONLY when the target does not yet exist (build artifact). */
60
- sourcePaths: Set<string>;
61
- }
62
- /**
63
- * Options for {@link computeDeferredPaths}.
64
- *
65
- * - `skillDir` — absolute path to the directory containing SKILL.md.
66
- * `files:` dest values are authored relative to this dir.
67
- * - `projectRoot` — absolute path to the project root (git / config root).
68
- * `files:` source values are authored relative to this dir.
69
- */
70
- export interface ComputeDeferredPathsOpts {
71
- skillDir: string;
72
- projectRoot: string;
73
- }
74
- /**
75
- * Compute the structured sets of paths that should be treated as "deferred"
76
- * during source-time validation. These are paths from files config entries
77
- * where the file may not exist yet (build artifacts).
78
- *
79
- * Both sets contain **project-root-relative, forward-slash** paths so they
80
- * match the `rel` value computed in `checkDeferred()` inside walk-link-graph:
81
- *
82
- * ```ts
83
- * const rel = toForwardSlash(safePath.relative(projectRoot, targetPath));
84
- * ```
85
- *
86
- * - `dest` is authored relative to `skillDir` (mirroring `skill-packager.ts`
87
- * `resolve(skillDir, entry.dest)`). We resolve it to an absolute path and
88
- * then make it relative to `projectRoot`.
89
- * - `source` is authored relative to `projectRoot`. We resolve it with the
90
- * exact expression `skill-packager.ts` uses —
91
- * `resolve(join(projectRoot, entry.source))` — so an absolute-looking source
92
- * is rooted UNDER `projectRoot` identically to what the packager copies.
93
- * (A bare `resolve(projectRoot, source)` would let a leading slash escape the
94
- * root, yielding a `../`-prefixed path that never matches the walker's `rel`.)
95
- * Resolving then re-relativising is a no-op for clean relative paths but
96
- * correctly strips any leading `./`.
97
- *
98
- * - dest paths are always deferred (target won't exist until build)
99
- * - source paths are deferred only when the target does not yet exist on disk
100
- */
101
- export declare function computeDeferredPaths(files: SkillFileEntry[], opts: ComputeDeferredPathsOpts): DeferredPaths;
102
58
  /** Options for {@link applyFilesConfig}. */
103
59
  export interface ApplyFilesConfigOptions {
104
60
  /** Merged `files:` entries to copy. */
@@ -1 +1 @@
1
- {"version":3,"file":"files-config.d.ts","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAYpE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAapE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,+BAA+B;IAC/B,KAAK,EAAE,cAAc,CAAC;CACvB;AAaD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,EACtC,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,GACrC,cAAc,EAAE,CA6ClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,EAAE,GACtB,gBAAgB,GAAG,IAAI,CAiCzB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,+FAA+F;IAC/F,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EAAE,EACvB,IAAI,EAAE,wBAAwB,GAC7B,aAAa,CAqBf;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9C,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAyBf;AA2KD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYvF"}
1
+ {"version":3,"file":"files-config.d.ts","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAYpE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAapE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,+BAA+B;IAC/B,KAAK,EAAE,cAAc,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,EACtC,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,GACrC,cAAc,EAAE,CA6ClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,EAAE,GACtB,gBAAgB,GAAG,IAAI,CAiCzB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9C,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAyBf;AAwLD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYvF"}
@@ -33,9 +33,17 @@ export function buildArtifactHint(source) {
33
33
  return '';
34
34
  }
35
35
  /**
36
- * Normalize a path for comparison: strip leading ./ and normalize slashes.
36
+ * Normalize a relative path for comparison: forward slashes, no leading `./`.
37
+ * The path's ROOT is the caller's business; this only fixes the spelling.
38
+ *
39
+ * Exported because it is the spelling every `files:` dest returned by
40
+ * {@link applyFilesConfig} is normalized to, and that spelling must equal the one
41
+ * `checkUnreferencedFiles` computes for a packaged file
42
+ * (`toForwardSlash(safePath.relative(outputDir, file))`) — both are
43
+ * skill-output-relative. A silent mismatch there reads as "not declared in
44
+ * `files:` config" about a copy VAT performed itself.
37
45
  */
38
- function normalizePath(p) {
46
+ export function normalizeRelPath(p) {
39
47
  let normalized = toForwardSlash(p);
40
48
  if (normalized.startsWith('./')) {
41
49
  normalized = normalized.slice(2);
@@ -55,7 +63,7 @@ export function mergeFilesConfig(defaults, perSkill) {
55
63
  if (perSkill) {
56
64
  const destSet = new Set();
57
65
  for (const entry of perSkill) {
58
- const normalized = normalizePath(entry.dest);
66
+ const normalized = normalizeRelPath(entry.dest);
59
67
  if (destSet.has(normalized)) {
60
68
  throw new Error(`Duplicate dest in per-skill files config: '${entry.dest}'. ` +
61
69
  `Each dest must be unique within a skill's files configuration.`);
@@ -75,12 +83,12 @@ export function mergeFilesConfig(defaults, perSkill) {
75
83
  // Build a map of dest → entry from per-skill (these win)
76
84
  const perSkillByDest = new Map();
77
85
  for (const entry of perSkill) {
78
- perSkillByDest.set(normalizePath(entry.dest), entry);
86
+ perSkillByDest.set(normalizeRelPath(entry.dest), entry);
79
87
  }
80
88
  // Start with defaults that aren't overridden
81
89
  const merged = [];
82
90
  for (const defaultEntry of defaults) {
83
- const normalizedDest = normalizePath(defaultEntry.dest);
91
+ const normalizedDest = normalizeRelPath(defaultEntry.dest);
84
92
  if (!perSkillByDest.has(normalizedDest)) {
85
93
  merged.push(defaultEntry);
86
94
  }
@@ -106,7 +114,7 @@ export function mergeFilesConfig(defaults, perSkill) {
106
114
  * @returns Match result or null if no match
107
115
  */
108
116
  export function matchLinkToFiles(linkTarget, files) {
109
- const normalized = normalizePath(linkTarget);
117
+ const normalized = normalizeRelPath(linkTarget);
110
118
  /** True when `candidate` equals `normalized` or is a path-prefix of it. */
111
119
  function isPrefixMatch(candidate) {
112
120
  return normalized === candidate || normalized.startsWith(candidate + '/');
@@ -114,74 +122,29 @@ export function matchLinkToFiles(linkTarget, files) {
114
122
  // Source match has priority (checked before dest across all entries)
115
123
  for (const entry of files) {
116
124
  if (isGlob(entry.source)) {
117
- const base = normalizePath(staticGlobBase(entry.source));
125
+ const base = normalizeRelPath(staticGlobBase(entry.source));
118
126
  if (isPrefixMatch(base)) {
119
127
  return { match: 'source', entry };
120
128
  }
121
129
  }
122
- else if (normalizePath(entry.source) === normalized) {
130
+ else if (normalizeRelPath(entry.source) === normalized) {
123
131
  return { match: 'source', entry };
124
132
  }
125
133
  }
126
134
  // Then check dest match
127
135
  for (const entry of files) {
128
136
  if (isGlob(entry.source)) {
129
- const destBase = normalizePath(entry.dest);
137
+ const destBase = normalizeRelPath(entry.dest);
130
138
  if (isPrefixMatch(destBase)) {
131
139
  return { match: 'dest', entry };
132
140
  }
133
141
  }
134
- else if (normalizePath(entry.dest) === normalized) {
142
+ else if (normalizeRelPath(entry.dest) === normalized) {
135
143
  return { match: 'dest', entry };
136
144
  }
137
145
  }
138
146
  return null;
139
147
  }
140
- /**
141
- * Compute the structured sets of paths that should be treated as "deferred"
142
- * during source-time validation. These are paths from files config entries
143
- * where the file may not exist yet (build artifacts).
144
- *
145
- * Both sets contain **project-root-relative, forward-slash** paths so they
146
- * match the `rel` value computed in `checkDeferred()` inside walk-link-graph:
147
- *
148
- * ```ts
149
- * const rel = toForwardSlash(safePath.relative(projectRoot, targetPath));
150
- * ```
151
- *
152
- * - `dest` is authored relative to `skillDir` (mirroring `skill-packager.ts`
153
- * `resolve(skillDir, entry.dest)`). We resolve it to an absolute path and
154
- * then make it relative to `projectRoot`.
155
- * - `source` is authored relative to `projectRoot`. We resolve it with the
156
- * exact expression `skill-packager.ts` uses —
157
- * `resolve(join(projectRoot, entry.source))` — so an absolute-looking source
158
- * is rooted UNDER `projectRoot` identically to what the packager copies.
159
- * (A bare `resolve(projectRoot, source)` would let a leading slash escape the
160
- * root, yielding a `../`-prefixed path that never matches the walker's `rel`.)
161
- * Resolving then re-relativising is a no-op for clean relative paths but
162
- * correctly strips any leading `./`.
163
- *
164
- * - dest paths are always deferred (target won't exist until build)
165
- * - source paths are deferred only when the target does not yet exist on disk
166
- */
167
- export function computeDeferredPaths(files, opts) {
168
- const destPaths = new Set();
169
- const sourcePaths = new Set();
170
- for (const entry of files) {
171
- // dest is authored relative to skillDir (skill-packager: resolve(skillDir, dest))
172
- destPaths.add(toForwardSlash(safePath.relative(opts.projectRoot, safePath.resolve(opts.skillDir, entry.dest))));
173
- // source is authored relative to projectRoot. For GLOB entries, register the
174
- // static base (e.g. 'dist/packs' for 'dist/packs/**/*') so that prefix
175
- // matching in checkDeferred() can defer links under the glob's expansion tree
176
- // without executing the glob at validate time (late-bound, pattern-derived).
177
- // For single-file entries, mirror skill-packager exactly:
178
- // resolve(join(projectRoot, source)) so absolute-looking sources root under
179
- // projectRoot rather than escaping it.
180
- const effectiveSource = isGlob(entry.source) ? staticGlobBase(entry.source) : entry.source;
181
- sourcePaths.add(toForwardSlash(safePath.relative(opts.projectRoot, safePath.resolve(safePath.join(opts.projectRoot, effectiveSource)))));
182
- }
183
- return { destPaths, sourcePaths };
184
- }
185
148
  /**
186
149
  * Verify that each (absSource, absDest) pair has byte-identical content.
187
150
  *
@@ -269,7 +232,7 @@ async function copyNonGlobEntry(entry, absoluteSource, skillOutputDir) {
269
232
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- dest path from validated config
270
233
  await mkdir(dirname(absoluteDest), { recursive: true });
271
234
  await copyFile(absoluteSource, absoluteDest);
272
- return { relDest: entry.dest, absSource: absoluteSource, absDest: absoluteDest };
235
+ return { relDest: normalizeRelPath(entry.dest), absSource: absoluteSource, absDest: absoluteDest };
273
236
  }
274
237
  /**
275
238
  * Expand a glob entry, copy all matched files, and return copied rel-dest paths
@@ -306,7 +269,7 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir, bundledFileSet)
306
269
  const absSource = safePath.joinUnderRoot(absoluteBase, rel);
307
270
  if (bundledFileSet.has(toForwardSlash(absSource)))
308
271
  continue;
309
- const relDest = toForwardSlash(safePath.join(entry.dest, rel));
272
+ const relDest = normalizeRelPath(safePath.join(entry.dest, rel));
310
273
  const absDest = safePath.joinUnderRoot(skillOutputDir, entry.dest, rel);
311
274
  // eslint-disable-next-line security/detect-non-literal-fs-filename -- dest path from validated config
312
275
  await mkdir(dirname(absDest), { recursive: true });
@@ -326,7 +289,16 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir, bundledFileSet)
326
289
  * Claude plugin marketplace build both call it, instead of the latter relying on
327
290
  * an external inject script VAT can't see. `source` is resolved the same way the
328
291
  * packager does (`resolve(join(projectRoot, source))`, so an absolute-looking
329
- * source roots UNDER the project). Returns the dest paths actually copied.
292
+ * source roots UNDER the project).
293
+ *
294
+ * Returns every skill-output-relative dest path this config accounts for, one per
295
+ * FILE (glob entries expanded), normalized via {@link normalizeRelPath} so each
296
+ * value compares equal to the path `checkUnreferencedFiles` computes for the
297
+ * packaged file. Callers must pass this to the post-build orphan check: a dest
298
+ * declared in `files:` is proof of intent, and a lane that doesn't know the list
299
+ * flags VAT's own copies as files the author forgot to document. An entry whose
300
+ * source was already materialized by link traversal is reported too — it is
301
+ * declared either way.
330
302
  *
331
303
  * Glob entries (`source` containing `*`, `?`, or `[`) expand late-bound at
332
304
  * copy time: all matched files are rebased under `dest` preserving their
@@ -341,7 +313,7 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir, bundledFileSet)
341
313
  * @throws if a declared `source` does not exist — a declared build artifact must
342
314
  * be present at copy time (callers that defer existence validate it upstream).
343
315
  */
344
- /** Copy + optionally integrity-check one GLOB `files:` entry; returns the copied rel-dests. */
316
+ /** Copy + optionally integrity-check one GLOB `files:` entry; returns its declared rel-dests. */
345
317
  async function applyGlobFileEntry(fileEntry, opts, bundledFileSet) {
346
318
  const { copied, pairs, rels } = await copyGlobEntry(fileEntry, opts.projectRoot, opts.skillOutputDir, bundledFileSet);
347
319
  if (fileEntry.integrity === true) {
@@ -353,7 +325,7 @@ async function applyGlobFileEntry(fileEntry, opts, bundledFileSet) {
353
325
  }
354
326
  return copied;
355
327
  }
356
- /** Copy + optionally integrity-check one NON-GLOB `files:` entry; returns the copied rel-dests. */
328
+ /** Copy + optionally integrity-check one NON-GLOB `files:` entry; returns its declared rel-dests. */
357
329
  async function applyNonGlobFileEntry(fileEntry, opts, bundledFileSet) {
358
330
  const absoluteSource = safePath.resolve(safePath.join(opts.projectRoot, fileEntry.source));
359
331
  if (bundledFileSet.has(toForwardSlash(absoluteSource))) {
@@ -367,7 +339,11 @@ async function applyNonGlobFileEntry(fileEntry, opts, bundledFileSet) {
367
339
  const absDest = safePath.joinUnderRoot(opts.skillOutputDir, fileEntry.dest);
368
340
  verifyFilesIntegrity([{ absSource: absoluteSource, absDest }]);
369
341
  }
370
- return [];
342
+ // The dest is still reported: this function answers "which output paths does
343
+ // `files:` account for," not "which bytes did I move." Whether link traversal
344
+ // or this copy put the file there is an ordering accident, and callers that
345
+ // ask "is this packaged file declared?" must not get a different answer for it.
346
+ return [normalizeRelPath(fileEntry.dest)];
371
347
  }
372
348
  const { relDest, absSource, absDest } = await copyNonGlobEntry(fileEntry, absoluteSource, opts.skillOutputDir);
373
349
  if (fileEntry.integrity === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"files-config.js","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files-config.js","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,15 +3,16 @@
3
3
  * Build, validate, and package agent skills in the Agent Skills format
4
4
  */
5
5
  export { buildAgentSkill, type BuildOptions, type BuildResult } from './builder.js';
6
- export { extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, type PackageSkillOptions, type PackageSkillResult, type PackagingTarget, type SkillBuildSpec, type SkillMetadata, } from './skill-packager.js';
6
+ export { createProjectRegistry, extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, type PackageSkillOptions, type PackageSkillResult, type PackagingTarget, type SkillBuildSpec, type SkillMetadata, } from './skill-packager.js';
7
7
  export { walkLinkGraph, type ExcludeRule, type LinkGraphResult, type LinkResolution, type WalkableRegistry, type WalkLinkGraphOptions, } from './walk-link-graph.js';
8
8
  export { getTargetSubdir, CONTENT_TYPE_ROUTING_MAP, type TargetSubdirCategory, } from './content-type-routing.js';
9
- export { applyFilesConfig, mergeFilesConfig, matchLinkToFiles, computeDeferredPaths, type ApplyFilesConfigOptions, type ComputeDeferredPathsOpts, type DeferredPaths, type FilesMatchResult, } from './files-config.js';
9
+ export { applyFilesConfig, mergeFilesConfig, matchLinkToFiles, type ApplyFilesConfigOptions, type FilesMatchResult, } from './files-config.js';
10
10
  export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, type AgentSkillFrontmatter, type VATAgentSkillFrontmatter, } from './schemas/agent-skill-frontmatter.js';
11
11
  export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema, type MarketplaceManifest } from './schemas/marketplace-manifest.js';
12
- export { PluginJsonSchema, type PluginJson } from './schemas/plugin-json.js';
13
12
  export { parseFrontmatter, type FrontmatterResult, } from './parsers/frontmatter-parser.js';
14
- export { calculateValidationStatus, generateFixSuggestion } from './validators/validation-utils.js';
13
+ export { readDeclaredSkillName } from './skill-identity.js';
14
+ export { type AnchorRootOptions, resolveAnchorRoot } from './validators/anchor-root.js';
15
+ export { generateFixSuggestion } from './validators/validation-utils.js';
15
16
  export { detectKebabCaseViolation, type KebabCaseSurface } from './validators/kebab-case-detection.js';
16
17
  export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
17
18
  export { deriveObservations, observationToIssue, runCompatDetectors, type DetectorOutput, } from './validators/compat-detectors.js';
@@ -19,7 +20,7 @@ export { validateMarketplace } from './validators/marketplace-validator.js';
19
20
  export { validateSkill } from './validators/skill-validator.js';
20
21
  export { validate, type UnifiedValidateOptions } from './validators/unified-validator.js';
21
22
  export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
22
- export { crawlAndResolveRegistry, validateSkillForPackaging, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, } from './validators/packaging-validator.js';
23
+ export { crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, } from './validators/packaging-validator.js';
23
24
  export { createIssue, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, type RuleCategory, type ValidationRule, type ValidationRuleCode, } from './validators/validation-rules.js';
24
25
  export type { ValidationResult, ValidateOptions, ResourceFormat, Surface, } from './validators/types.js';
25
26
  export { importSkillToAgent, type ImportOptions, type ImportResult, } from './import.js';
@@ -33,5 +34,6 @@ export type { AnyInventory, BaseInventory, ComponentRef, DeclaredList, HookRef,
33
34
  export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION, detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './inventory/index.js';
34
35
  export * from './skill-test/index.js';
35
36
  export { checkBrokenPackagedLinks } from './post-build-checks.js';
36
- export { computeTreeCopiedSkillLocations, findDistributedSkillLocationBySource, getPluginOutputDir, getPluginSourceDir, listPluginSourceSkillDirs, skillNameToFsPath, type DistributedSkillLocation, } from './plugin-distribution-layout.js';
37
+ export { checkPackagedTestInput, packagedFileEntries, resolveTestInputDirs, testInputExcludeRules, type CheckPackagedTestInputInput, } from './test-input.js';
38
+ export { computeTreeCopiedSkillLocations, findDistributedSkillLocationBySource, getPluginOutputDir, getPluginSourceDir, listPluginSourceSkillDirs, listUntrackedPluginSkillDirs, skillNameToFsPath, type DistributedSkillLocation, } from './plugin-distribution-layout.js';
37
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EACL,gBAAgB,EAChB,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAC5G,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,oBAAoB,EACpB,MAAM,EACN,UAAU,IAAI,mBAAmB,EACjC,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -3,15 +3,16 @@
3
3
  * Build, validate, and package agent skills in the Agent Skills format
4
4
  */
5
5
  export { buildAgentSkill } from './builder.js';
6
- export { extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, } from './skill-packager.js';
6
+ export { createProjectRegistry, extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, } from './skill-packager.js';
7
7
  export { walkLinkGraph, } from './walk-link-graph.js';
8
8
  export { getTargetSubdir, CONTENT_TYPE_ROUTING_MAP, } from './content-type-routing.js';
9
- export { applyFilesConfig, mergeFilesConfig, matchLinkToFiles, computeDeferredPaths, } from './files-config.js';
9
+ export { applyFilesConfig, mergeFilesConfig, matchLinkToFiles, } from './files-config.js';
10
10
  export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, } from './schemas/agent-skill-frontmatter.js';
11
11
  export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema } from './schemas/marketplace-manifest.js';
12
- export { PluginJsonSchema } from './schemas/plugin-json.js';
13
12
  export { parseFrontmatter, } from './parsers/frontmatter-parser.js';
14
- export { calculateValidationStatus, generateFixSuggestion } from './validators/validation-utils.js';
13
+ export { readDeclaredSkillName } from './skill-identity.js';
14
+ export { resolveAnchorRoot } from './validators/anchor-root.js';
15
+ export { generateFixSuggestion } from './validators/validation-utils.js';
15
16
  export { detectKebabCaseViolation } from './validators/kebab-case-detection.js';
16
17
  export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
17
18
  export { deriveObservations, observationToIssue, runCompatDetectors, } from './validators/compat-detectors.js';
@@ -19,7 +20,7 @@ export { validateMarketplace } from './validators/marketplace-validator.js';
19
20
  export { validateSkill } from './validators/skill-validator.js';
20
21
  export { validate } from './validators/unified-validator.js';
21
22
  export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
22
- export { crawlAndResolveRegistry, validateSkillForPackaging, } from './validators/packaging-validator.js';
23
+ export { crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, } from './validators/packaging-validator.js';
23
24
  export { createIssue, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validators/validation-rules.js';
24
25
  export { importSkillToAgent, } from './import.js';
25
26
  // Skill source primitives
@@ -30,5 +31,6 @@ export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, derive
30
31
  export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION, detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './inventory/index.js';
31
32
  export * from './skill-test/index.js';
32
33
  export { checkBrokenPackagedLinks } from './post-build-checks.js';
33
- export { computeTreeCopiedSkillLocations, findDistributedSkillLocationBySource, getPluginOutputDir, getPluginSourceDir, listPluginSourceSkillDirs, skillNameToFsPath, } from './plugin-distribution-layout.js';
34
+ export { checkPackagedTestInput, packagedFileEntries, resolveTestInputDirs, testInputExcludeRules, } from './test-input.js';
35
+ export { computeTreeCopiedSkillLocations, findDistributedSkillLocationBySource, getPluginOutputDir, getPluginSourceDir, listPluginSourceSkillDirs, listUntrackedPluginSkillDirs, skillNameToFsPath, } from './plugin-distribution-layout.js';
34
36
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,GAMlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,GAMd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GAKrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAA4B,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAA+B,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAK1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAuB,MAAM,6BAA6B,CAAC;AAElF,8CAA8C;AAC9C,OAAO,EAAE,kBAAkB,EAAkC,MAAM,wCAAwC,CAAC;AAgB5G,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAoB7B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,GAElB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,GAMlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,GAMd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAA4B,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAA0B,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAA+B,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GAK1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAuB,MAAM,6BAA6B,CAAC;AAElF,8CAA8C;AAC9C,OAAO,EAAE,kBAAkB,EAAkC,MAAM,wCAAwC,CAAC;AAgB5G,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAoB7B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,GAElB,MAAM,iCAAiC,CAAC"}
@@ -7,5 +7,5 @@
7
7
  */
8
8
  import type { ValidationIssue } from '@vibe-agent-toolkit/agent-schema';
9
9
  import type { PluginInventory } from '../types.js';
10
- export declare function detectDeclaredButMissing(inv: PluginInventory): ValidationIssue[];
10
+ export declare function detectDeclaredButMissing(inv: PluginInventory, locationRoot: string): ValidationIssue[];
11
11
  //# sourceMappingURL=declared-but-missing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"declared-but-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/declared-but-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAanD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,EAAE,CAkBhF"}
1
+ {"version":3,"file":"declared-but-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/declared-but-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAanD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,CAoBtG"}
@@ -5,6 +5,7 @@
5
5
  * ValidationIssue for each declared component path that does not exist on
6
6
  * disk. Covers all seven component fields in the manifest.
7
7
  */
8
+ import { issueLocation, safePath } from '@vibe-agent-toolkit/utils';
8
9
  const FIELDS = [
9
10
  'skills',
10
11
  'commands',
@@ -14,8 +15,10 @@ const FIELDS = [
14
15
  'outputStyles',
15
16
  'lspServers',
16
17
  ];
17
- export function detectDeclaredButMissing(inv) {
18
+ export function detectDeclaredButMissing(inv, locationRoot) {
18
19
  const issues = [];
20
+ // Anchor contract: `location` is a project-relative POSIX path.
21
+ const manifestLocation = issueLocation(safePath.join(inv.path, '.claude-plugin', 'plugin.json'), locationRoot);
19
22
  for (const field of FIELDS) {
20
23
  const list = inv.declared[field];
21
24
  if (list === null)
@@ -26,7 +29,7 @@ export function detectDeclaredButMissing(inv) {
26
29
  severity: 'warning',
27
30
  code: 'COMPONENT_DECLARED_BUT_MISSING',
28
31
  message: `Manifest declares ${field}: "${ref.manifestPath}" but the path does not exist on disk.`,
29
- location: `${inv.path}/.claude-plugin/plugin.json`,
32
+ location: manifestLocation,
30
33
  fix: 'Add the missing file, remove the declaration, or correct the path.',
31
34
  });
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"declared-but-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/declared-but-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,MAAM,GAAqB;IAChC,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,cAAc;IACd,YAAY;CACZ,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,GAAoB;IAC5D,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,qBAAqB,KAAK,MAAM,GAAG,CAAC,YAAY,wCAAwC;oBACjG,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,6BAA6B;oBAClD,GAAG,EAAE,oEAAoE;iBACzE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"declared-but-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/declared-but-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAKpE,MAAM,MAAM,GAAqB;IAChC,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,cAAc;IACd,YAAY;CACZ,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,GAAoB,EAAE,YAAoB;IAClF,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/G,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,qBAAqB,KAAK,MAAM,GAAG,CAAC,YAAY,wCAAwC;oBACjG,QAAQ,EAAE,gBAAgB;oBAC1B,GAAG,EAAE,oEAAoE;iBACzE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -8,5 +8,5 @@
8
8
  */
9
9
  import type { ValidationIssue } from '@vibe-agent-toolkit/agent-schema';
10
10
  import type { MarketplaceInventory } from '../types.js';
11
- export declare function detectMarketplacePluginSourceMissing(inv: MarketplaceInventory): ValidationIssue[];
11
+ export declare function detectMarketplacePluginSourceMissing(inv: MarketplaceInventory, locationRoot: string): ValidationIssue[];
12
12
  //# sourceMappingURL=marketplace-source-missing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace-source-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/marketplace-source-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,oBAAoB,GAAG,eAAe,EAAE,CAUjG"}
1
+ {"version":3,"file":"marketplace-source-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/marketplace-source-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,CAUvH"}
@@ -6,14 +6,15 @@
6
6
  * path does not exist on disk. Git/npm/unknown source types are out of scope
7
7
  * and are silently skipped.
8
8
  */
9
- export function detectMarketplacePluginSourceMissing(inv) {
9
+ import { issueLocation } from '@vibe-agent-toolkit/utils';
10
+ export function detectMarketplacePluginSourceMissing(inv, locationRoot) {
10
11
  return inv.declared.plugins
11
12
  .filter(p => p.source === 'path' && !p.exists)
12
13
  .map(p => ({
13
14
  severity: 'error',
14
15
  code: 'MARKETPLACE_PLUGIN_SOURCE_MISSING',
15
16
  message: `Marketplace declares plugin with source "${p.manifestPath}" but the path does not exist.`,
16
- location: p.resolvedPath,
17
+ location: issueLocation(p.resolvedPath, locationRoot),
17
18
  fix: 'Correct the source path or remove the entry from marketplace.plugins[].',
18
19
  }));
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace-source-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/marketplace-source-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,UAAU,oCAAoC,CAAC,GAAyB;IAC7E,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,OAAgB;QAC1B,IAAI,EAAE,mCAA4C;QAClD,OAAO,EAAE,4CAA4C,CAAC,CAAC,YAAY,gCAAgC;QACnG,QAAQ,EAAE,CAAC,CAAC,YAAY;QACxB,GAAG,EAAE,yEAAyE;KAC9E,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"marketplace-source-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/marketplace-source-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,MAAM,UAAU,oCAAoC,CAAC,GAAyB,EAAE,YAAoB;IACnG,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,OAAgB;QAC1B,IAAI,EAAE,mCAA4C;QAClD,OAAO,EAAE,4CAA4C,CAAC,CAAC,YAAY,gCAAgC;QACnG,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC;QACrD,GAAG,EAAE,yEAAyE;KAC9E,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -9,5 +9,5 @@
9
9
  */
10
10
  import type { ValidationIssue } from '@vibe-agent-toolkit/agent-schema';
11
11
  import type { PluginInventory } from '../types.js';
12
- export declare function detectPresentButUndeclared(inv: PluginInventory): ValidationIssue[];
12
+ export declare function detectPresentButUndeclared(inv: PluginInventory, locationRoot: string): ValidationIssue[];
13
13
  //# sourceMappingURL=present-but-undeclared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"present-but-undeclared.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/present-but-undeclared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAEjE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,EAAE,CAMlF"}
1
+ {"version":3,"file":"present-but-undeclared.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/present-but-undeclared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAEjE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,CAMxG"}
@@ -7,41 +7,43 @@
7
7
  * declares an explicit list (including []) — omitting the field entirely
8
8
  * means auto-discovery is intentional and this detector is silent.
9
9
  */
10
- export function detectPresentButUndeclared(inv) {
10
+ import { issueLocation } from '@vibe-agent-toolkit/utils';
11
+ export function detectPresentButUndeclared(inv, locationRoot) {
11
12
  const issues = [];
12
- checkSkills(inv, issues);
13
- checkRefList('commands', inv.discovered.commands, inv.declared.commands, issues);
14
- checkRefList('agents', inv.discovered.agents, inv.declared.agents, issues);
13
+ checkSkills(inv, locationRoot, issues);
14
+ checkRefList('commands', inv.discovered.commands, inv.declared.commands, locationRoot, issues);
15
+ checkRefList('agents', inv.discovered.agents, inv.declared.agents, locationRoot, issues);
15
16
  return issues;
16
17
  }
17
- function checkSkills(inv, issues) {
18
+ function checkSkills(inv, locationRoot, issues) {
18
19
  const declared = inv.declared.skills;
19
20
  if (declared === null)
20
21
  return; // auto-discovery intentional
21
22
  const declaredResolved = new Set(declared.map(d => d.resolvedPath));
22
23
  for (const skill of inv.discovered.skills) {
23
24
  if (!declaredResolved.has(skill.path)) {
24
- issues.push(makeIssue('skills', skill.path));
25
+ issues.push(makeIssue('skills', skill.path, locationRoot));
25
26
  }
26
27
  }
27
28
  }
28
- function checkRefList(field, discovered, declared, issues) {
29
+ function checkRefList(field, discovered, declared, locationRoot, issues) {
29
30
  if (declared === null)
30
31
  return;
31
32
  const declaredResolved = new Set(declared.map(d => d.resolvedPath));
32
33
  for (const ref of discovered) {
33
34
  if (!declaredResolved.has(ref.resolvedPath)) {
34
- issues.push(makeIssue(field, ref.resolvedPath));
35
+ issues.push(makeIssue(field, ref.resolvedPath, locationRoot));
35
36
  }
36
37
  }
37
38
  }
38
- function makeIssue(field, filePath) {
39
+ function makeIssue(field, filePath, locationRoot) {
40
+ const location = issueLocation(filePath, locationRoot);
39
41
  return {
40
42
  severity: 'info',
41
43
  code: 'COMPONENT_PRESENT_BUT_UNDECLARED',
42
- message: `${field}: "${filePath}" is on disk but the manifest declares an explicit ${field} list that omits it.`,
43
- location: filePath,
44
- fix: `Add ${filePath} to the manifest's "${field}" field, or remove the file.`,
44
+ message: `${field}: "${location}" is on disk but the manifest declares an explicit ${field} list that omits it.`,
45
+ location,
46
+ fix: `Add ${location} to the manifest's "${field}" field, or remove the file.`,
45
47
  };
46
48
  }
47
49
  //# sourceMappingURL=present-but-undeclared.js.map