@vibe-agent-toolkit/agent-skills 0.1.42 → 0.2.0-rc.10

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 (322) hide show
  1. package/README.md +5 -5
  2. package/dist/builder.d.ts.map +1 -1
  3. package/dist/builder.js +7 -17
  4. package/dist/builder.js.map +1 -1
  5. package/dist/content-type-routing.d.ts +32 -0
  6. package/dist/content-type-routing.d.ts.map +1 -1
  7. package/dist/content-type-routing.js +23 -0
  8. package/dist/content-type-routing.js.map +1 -1
  9. package/dist/files-config.d.ts +34 -1
  10. package/dist/files-config.d.ts.map +1 -1
  11. package/dist/files-config.js +277 -39
  12. package/dist/files-config.js.map +1 -1
  13. package/dist/fs-attribution.d.ts +45 -0
  14. package/dist/fs-attribution.d.ts.map +1 -0
  15. package/dist/fs-attribution.js +57 -0
  16. package/dist/fs-attribution.js.map +1 -0
  17. package/dist/import.d.ts.map +1 -1
  18. package/dist/import.js +0 -4
  19. package/dist/import.js.map +1 -1
  20. package/dist/index.d.ts +13 -8
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +25 -7
  23. package/dist/index.js.map +1 -1
  24. package/dist/inventory/detectors/declared-but-missing.d.ts +1 -1
  25. package/dist/inventory/detectors/declared-but-missing.d.ts.map +1 -1
  26. package/dist/inventory/detectors/marketplace-source-missing.d.ts +1 -1
  27. package/dist/inventory/detectors/marketplace-source-missing.d.ts.map +1 -1
  28. package/dist/inventory/detectors/present-but-undeclared.d.ts +1 -1
  29. package/dist/inventory/detectors/present-but-undeclared.d.ts.map +1 -1
  30. package/dist/inventory/detectors/reference-target-missing.d.ts +1 -1
  31. package/dist/inventory/detectors/reference-target-missing.d.ts.map +1 -1
  32. package/dist/inventory/index.d.ts +1 -1
  33. package/dist/inventory/index.d.ts.map +1 -1
  34. package/dist/inventory/index.js +1 -1
  35. package/dist/inventory/index.js.map +1 -1
  36. package/dist/inventory/serialize.d.ts +4 -4
  37. package/dist/inventory/serialize.d.ts.map +1 -1
  38. package/dist/inventory/serialize.js +6 -6
  39. package/dist/inventory/serialize.js.map +1 -1
  40. package/dist/inventory/types.d.ts +8 -0
  41. package/dist/inventory/types.d.ts.map +1 -1
  42. package/dist/inventory/types.js.map +1 -1
  43. package/dist/link-graph-members.d.ts +18 -0
  44. package/dist/link-graph-members.d.ts.map +1 -0
  45. package/dist/link-graph-members.js +18 -0
  46. package/dist/link-graph-members.js.map +1 -0
  47. package/dist/parsers/frontmatter-parser.d.ts.map +1 -1
  48. package/dist/parsers/frontmatter-parser.js +30 -6
  49. package/dist/parsers/frontmatter-parser.js.map +1 -1
  50. package/dist/plugin-distribution-layout.d.ts +70 -6
  51. package/dist/plugin-distribution-layout.d.ts.map +1 -1
  52. package/dist/plugin-distribution-layout.js +84 -11
  53. package/dist/plugin-distribution-layout.js.map +1 -1
  54. package/dist/post-build-checks.d.ts +38 -1
  55. package/dist/post-build-checks.d.ts.map +1 -1
  56. package/dist/post-build-checks.js +68 -17
  57. package/dist/post-build-checks.js.map +1 -1
  58. package/dist/projection/skill-extent.d.ts +247 -0
  59. package/dist/projection/skill-extent.d.ts.map +1 -0
  60. package/dist/projection/skill-extent.js +560 -0
  61. package/dist/projection/skill-extent.js.map +1 -0
  62. package/dist/schemas/agent-skill-frontmatter.js +1 -1
  63. package/dist/schemas/agent-skill-frontmatter.js.map +1 -1
  64. package/dist/schemas/allowed-tools.d.ts +31 -0
  65. package/dist/schemas/allowed-tools.d.ts.map +1 -0
  66. package/dist/schemas/allowed-tools.js +88 -0
  67. package/dist/schemas/allowed-tools.js.map +1 -0
  68. package/dist/schemas/index.d.ts +1 -0
  69. package/dist/schemas/index.d.ts.map +1 -1
  70. package/dist/schemas/index.js +1 -0
  71. package/dist/schemas/index.js.map +1 -1
  72. package/dist/schemas/installed-plugins-registry.d.ts.map +1 -1
  73. package/dist/schemas/installed-plugins-registry.js +7 -1
  74. package/dist/schemas/installed-plugins-registry.js.map +1 -1
  75. package/dist/schemas/marketplace-manifest.d.ts.map +1 -1
  76. package/dist/schemas/marketplace-manifest.js +17 -6
  77. package/dist/schemas/marketplace-manifest.js.map +1 -1
  78. package/dist/skill-identity.d.ts +18 -3
  79. package/dist/skill-identity.d.ts.map +1 -1
  80. package/dist/skill-identity.js +25 -6
  81. package/dist/skill-identity.js.map +1 -1
  82. package/dist/skill-packager.d.ts +144 -20
  83. package/dist/skill-packager.d.ts.map +1 -1
  84. package/dist/skill-packager.js +447 -105
  85. package/dist/skill-packager.js.map +1 -1
  86. package/dist/skill-source/content-hash.d.ts.map +1 -1
  87. package/dist/skill-source/content-hash.js +21 -10
  88. package/dist/skill-source/content-hash.js.map +1 -1
  89. package/dist/skill-source/fetch-cache.d.ts.map +1 -1
  90. package/dist/skill-source/fetch-cache.js +0 -5
  91. package/dist/skill-source/fetch-cache.js.map +1 -1
  92. package/dist/skill-source/git-clone.d.ts +1 -1
  93. package/dist/skill-source/git-clone.d.ts.map +1 -1
  94. package/dist/skill-source/git-clone.js +10 -10
  95. package/dist/skill-source/git-clone.js.map +1 -1
  96. package/dist/skill-source/sources/url-source.d.ts.map +1 -1
  97. package/dist/skill-source/sources/url-source.js +2 -2
  98. package/dist/skill-source/sources/url-source.js.map +1 -1
  99. package/dist/skill-source/stage.d.ts.map +1 -1
  100. package/dist/skill-source/stage.js +0 -6
  101. package/dist/skill-source/stage.js.map +1 -1
  102. package/dist/skill-test/baseline-delta.d.ts +1575 -0
  103. package/dist/skill-test/baseline-delta.d.ts.map +1 -0
  104. package/dist/skill-test/baseline-delta.js +272 -0
  105. package/dist/skill-test/baseline-delta.js.map +1 -0
  106. package/dist/skill-test/baseline-integrity.d.ts +944 -0
  107. package/dist/skill-test/baseline-integrity.d.ts.map +1 -0
  108. package/dist/skill-test/baseline-integrity.js +3090 -0
  109. package/dist/skill-test/baseline-integrity.js.map +1 -0
  110. package/dist/skill-test/build-hook.d.ts +3 -2
  111. package/dist/skill-test/build-hook.d.ts.map +1 -1
  112. package/dist/skill-test/build-hook.js +4 -5
  113. package/dist/skill-test/build-hook.js.map +1 -1
  114. package/dist/skill-test/configure-writer.js +1 -1
  115. package/dist/skill-test/configure-writer.js.map +1 -1
  116. package/dist/skill-test/declared-env.d.ts +5 -4
  117. package/dist/skill-test/declared-env.d.ts.map +1 -1
  118. package/dist/skill-test/declared-env.js +8 -9
  119. package/dist/skill-test/declared-env.js.map +1 -1
  120. package/dist/skill-test/eval-executor.d.ts +21 -5
  121. package/dist/skill-test/eval-executor.d.ts.map +1 -1
  122. package/dist/skill-test/eval-executor.js +6 -6
  123. package/dist/skill-test/eval-executor.js.map +1 -1
  124. package/dist/skill-test/eval-fragment.d.ts +106 -28
  125. package/dist/skill-test/eval-fragment.d.ts.map +1 -1
  126. package/dist/skill-test/eval-fragment.js +78 -16
  127. package/dist/skill-test/eval-fragment.js.map +1 -1
  128. package/dist/skill-test/eval-grader.d.ts +65 -7
  129. package/dist/skill-test/eval-grader.d.ts.map +1 -1
  130. package/dist/skill-test/eval-grader.js +263 -64
  131. package/dist/skill-test/eval-grader.js.map +1 -1
  132. package/dist/skill-test/eval-inputs.d.ts +110 -8
  133. package/dist/skill-test/eval-inputs.d.ts.map +1 -1
  134. package/dist/skill-test/eval-inputs.js +177 -22
  135. package/dist/skill-test/eval-inputs.js.map +1 -1
  136. package/dist/skill-test/eval-lint.d.ts +17 -4
  137. package/dist/skill-test/eval-lint.d.ts.map +1 -1
  138. package/dist/skill-test/eval-lint.js +22 -9
  139. package/dist/skill-test/eval-lint.js.map +1 -1
  140. package/dist/skill-test/eval-suite-isolation.d.ts.map +1 -1
  141. package/dist/skill-test/eval-suite-isolation.js +8 -5
  142. package/dist/skill-test/eval-suite-isolation.js.map +1 -1
  143. package/dist/skill-test/evals-template.d.ts +1 -1
  144. package/dist/skill-test/evals-template.d.ts.map +1 -1
  145. package/dist/skill-test/evals-template.js +1 -3
  146. package/dist/skill-test/evals-template.js.map +1 -1
  147. package/dist/skill-test/executor-prompt.d.ts +15 -7
  148. package/dist/skill-test/executor-prompt.d.ts.map +1 -1
  149. package/dist/skill-test/executor-prompt.js +10 -7
  150. package/dist/skill-test/executor-prompt.js.map +1 -1
  151. package/dist/skill-test/failure-reason.d.ts +113 -0
  152. package/dist/skill-test/failure-reason.d.ts.map +1 -0
  153. package/dist/skill-test/failure-reason.js +124 -0
  154. package/dist/skill-test/failure-reason.js.map +1 -0
  155. package/dist/skill-test/fragment-merge.d.ts +3 -20
  156. package/dist/skill-test/fragment-merge.d.ts.map +1 -1
  157. package/dist/skill-test/fragment-merge.js +67 -8
  158. package/dist/skill-test/fragment-merge.js.map +1 -1
  159. package/dist/skill-test/grader-prompt.d.ts +29 -9
  160. package/dist/skill-test/grader-prompt.d.ts.map +1 -1
  161. package/dist/skill-test/grader-prompt.js +264 -68
  162. package/dist/skill-test/grader-prompt.js.map +1 -1
  163. package/dist/skill-test/grader-text.d.ts +145 -0
  164. package/dist/skill-test/grader-text.d.ts.map +1 -0
  165. package/dist/skill-test/grader-text.js +410 -0
  166. package/dist/skill-test/grader-text.js.map +1 -0
  167. package/dist/skill-test/grading-adapter.d.ts +38 -2
  168. package/dist/skill-test/grading-adapter.d.ts.map +1 -1
  169. package/dist/skill-test/grading-adapter.js +57 -9
  170. package/dist/skill-test/grading-adapter.js.map +1 -1
  171. package/dist/skill-test/grading-schema.d.ts +160 -5
  172. package/dist/skill-test/grading-schema.d.ts.map +1 -1
  173. package/dist/skill-test/grading-schema.js +66 -7
  174. package/dist/skill-test/grading-schema.js.map +1 -1
  175. package/dist/skill-test/harness-location.d.ts +3 -2
  176. package/dist/skill-test/harness-location.d.ts.map +1 -1
  177. package/dist/skill-test/harness-location.js +5 -16
  178. package/dist/skill-test/harness-location.js.map +1 -1
  179. package/dist/skill-test/index.d.ts +2 -2
  180. package/dist/skill-test/index.d.ts.map +1 -1
  181. package/dist/skill-test/index.js +2 -2
  182. package/dist/skill-test/index.js.map +1 -1
  183. package/dist/skill-test/lock.d.ts +58 -1
  184. package/dist/skill-test/lock.d.ts.map +1 -1
  185. package/dist/skill-test/lock.js +78 -6
  186. package/dist/skill-test/lock.js.map +1 -1
  187. package/dist/skill-test/pipeline.d.ts +19 -1
  188. package/dist/skill-test/pipeline.d.ts.map +1 -1
  189. package/dist/skill-test/pipeline.js +21 -10
  190. package/dist/skill-test/pipeline.js.map +1 -1
  191. package/dist/skill-test/preflight.d.ts +1 -1
  192. package/dist/skill-test/preflight.d.ts.map +1 -1
  193. package/dist/skill-test/preflight.js +59 -16
  194. package/dist/skill-test/preflight.js.map +1 -1
  195. package/dist/skill-test/prompt-invariants.d.ts +4 -2
  196. package/dist/skill-test/prompt-invariants.d.ts.map +1 -1
  197. package/dist/skill-test/prompt-invariants.js +5 -4
  198. package/dist/skill-test/prompt-invariants.js.map +1 -1
  199. package/dist/skill-test/run-harness.d.ts +665 -85
  200. package/dist/skill-test/run-harness.d.ts.map +1 -1
  201. package/dist/skill-test/run-harness.js +1522 -237
  202. package/dist/skill-test/run-harness.js.map +1 -1
  203. package/dist/skill-test/staging.d.ts +20 -8
  204. package/dist/skill-test/staging.d.ts.map +1 -1
  205. package/dist/skill-test/staging.js +25 -18
  206. package/dist/skill-test/staging.js.map +1 -1
  207. package/dist/skill-test/tier-plan.d.ts +1 -1
  208. package/dist/skill-test/tier-plan.js +1 -1
  209. package/dist/skill-test/tool-eval-schema.d.ts +6 -6
  210. package/dist/skill-test/tool-eval-schema.js +2 -2
  211. package/dist/skill-test/vendor-manifest.d.ts +2 -1
  212. package/dist/skill-test/vendor-manifest.d.ts.map +1 -1
  213. package/dist/skill-test/vendor-manifest.js +10 -10
  214. package/dist/skill-test/vendor-manifest.js.map +1 -1
  215. package/dist/test-input.d.ts +59 -8
  216. package/dist/test-input.d.ts.map +1 -1
  217. package/dist/test-input.js +64 -19
  218. package/dist/test-input.js.map +1 -1
  219. package/dist/validators/agent-instruction-presence.d.ts +1 -1
  220. package/dist/validators/agent-instruction-presence.d.ts.map +1 -1
  221. package/dist/validators/agent-instruction-presence.js +45 -2
  222. package/dist/validators/agent-instruction-presence.js.map +1 -1
  223. package/dist/validators/bundled-resource-link-detection.d.ts +6 -4
  224. package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -1
  225. package/dist/validators/bundled-resource-link-detection.js +39 -39
  226. package/dist/validators/bundled-resource-link-detection.js.map +1 -1
  227. package/dist/validators/compat-detectors.d.ts +18 -1
  228. package/dist/validators/compat-detectors.d.ts.map +1 -1
  229. package/dist/validators/compat-detectors.js +47 -20
  230. package/dist/validators/compat-detectors.js.map +1 -1
  231. package/dist/validators/cross-skill-dependency-detection.d.ts +1 -1
  232. package/dist/validators/cross-skill-dependency-detection.d.ts.map +1 -1
  233. package/dist/validators/cross-skill-dependency-detection.js +1 -1
  234. package/dist/validators/cross-skill-dependency-detection.js.map +1 -1
  235. package/dist/validators/description-style-detection.d.ts +1 -1
  236. package/dist/validators/description-style-detection.d.ts.map +1 -1
  237. package/dist/validators/description-style-detection.js +1 -1
  238. package/dist/validators/description-style-detection.js.map +1 -1
  239. package/dist/validators/format-detection.d.ts +3 -0
  240. package/dist/validators/format-detection.d.ts.map +1 -1
  241. package/dist/validators/format-detection.js +41 -26
  242. package/dist/validators/format-detection.js.map +1 -1
  243. package/dist/validators/frontmatter-validation.d.ts +1 -1
  244. package/dist/validators/frontmatter-validation.d.ts.map +1 -1
  245. package/dist/validators/frontmatter-validation.js +2 -2
  246. package/dist/validators/frontmatter-validation.js.map +1 -1
  247. package/dist/validators/imperative-body-detection.d.ts +1 -1
  248. package/dist/validators/imperative-body-detection.d.ts.map +1 -1
  249. package/dist/validators/imperative-body-detection.js +1 -1
  250. package/dist/validators/imperative-body-detection.js.map +1 -1
  251. package/dist/validators/index.d.ts +1 -1
  252. package/dist/validators/index.d.ts.map +1 -1
  253. package/dist/validators/kebab-case-detection.d.ts +1 -1
  254. package/dist/validators/kebab-case-detection.d.ts.map +1 -1
  255. package/dist/validators/kebab-case-detection.js +1 -1
  256. package/dist/validators/kebab-case-detection.js.map +1 -1
  257. package/dist/validators/marketplace-validator.d.ts.map +1 -1
  258. package/dist/validators/marketplace-validator.js +7 -2
  259. package/dist/validators/marketplace-validator.js.map +1 -1
  260. package/dist/validators/mcp-tool-qualification.d.ts +158 -0
  261. package/dist/validators/mcp-tool-qualification.d.ts.map +1 -0
  262. package/dist/validators/mcp-tool-qualification.js +467 -0
  263. package/dist/validators/mcp-tool-qualification.js.map +1 -0
  264. package/dist/validators/packaged-size-limit.d.ts +296 -0
  265. package/dist/validators/packaged-size-limit.d.ts.map +1 -0
  266. package/dist/validators/packaged-size-limit.js +492 -0
  267. package/dist/validators/packaged-size-limit.js.map +1 -0
  268. package/dist/validators/packaging-validator.d.ts +149 -10
  269. package/dist/validators/packaging-validator.d.ts.map +1 -1
  270. package/dist/validators/packaging-validator.js +371 -55
  271. package/dist/validators/packaging-validator.js.map +1 -1
  272. package/dist/validators/plugin-hosted-shape.d.ts +4 -2
  273. package/dist/validators/plugin-hosted-shape.d.ts.map +1 -1
  274. package/dist/validators/plugin-hosted-shape.js +6 -7
  275. package/dist/validators/plugin-hosted-shape.js.map +1 -1
  276. package/dist/validators/plugin-recommended-fields.d.ts +1 -1
  277. package/dist/validators/plugin-recommended-fields.d.ts.map +1 -1
  278. package/dist/validators/plugin-recommended-fields.js +1 -1
  279. package/dist/validators/plugin-recommended-fields.js.map +1 -1
  280. package/dist/validators/referenced-path-missing.d.ts +211 -0
  281. package/dist/validators/referenced-path-missing.d.ts.map +1 -0
  282. package/dist/validators/referenced-path-missing.js +378 -0
  283. package/dist/validators/referenced-path-missing.js.map +1 -0
  284. package/dist/validators/registry-validator.d.ts.map +1 -1
  285. package/dist/validators/registry-validator.js +1 -2
  286. package/dist/validators/registry-validator.js.map +1 -1
  287. package/dist/validators/rule-engine/index.d.ts +1 -1
  288. package/dist/validators/rule-engine/rule-context.d.ts +20 -3
  289. package/dist/validators/rule-engine/rule-context.d.ts.map +1 -1
  290. package/dist/validators/rule-engine/rule-context.js +3 -1
  291. package/dist/validators/rule-engine/rule-context.js.map +1 -1
  292. package/dist/validators/rule-engine/rule-engine.d.ts +2 -2
  293. package/dist/validators/rule-engine/rule-engine.d.ts.map +1 -1
  294. package/dist/validators/rule-engine/rule-engine.js +52 -13
  295. package/dist/validators/rule-engine/rule-engine.js.map +1 -1
  296. package/dist/validators/skill-validator.d.ts.map +1 -1
  297. package/dist/validators/skill-validator.js +91 -54
  298. package/dist/validators/skill-validator.js.map +1 -1
  299. package/dist/validators/source-only-codes.js +1 -1
  300. package/dist/validators/source-only-codes.js.map +1 -1
  301. package/dist/validators/types.d.ts +21 -1
  302. package/dist/validators/types.d.ts.map +1 -1
  303. package/dist/validators/unified-validator.d.ts.map +1 -1
  304. package/dist/validators/unified-validator.js +4 -5
  305. package/dist/validators/unified-validator.js.map +1 -1
  306. package/dist/validators/validation-rules.d.ts +4 -4
  307. package/dist/validators/validation-rules.d.ts.map +1 -1
  308. package/dist/validators/validation-rules.js +9 -38
  309. package/dist/validators/validation-rules.js.map +1 -1
  310. package/dist/validators/walker-to-issues.d.ts +9 -3
  311. package/dist/validators/walker-to-issues.d.ts.map +1 -1
  312. package/dist/validators/walker-to-issues.js +64 -19
  313. package/dist/validators/walker-to-issues.js.map +1 -1
  314. package/dist/walk-link-graph.d.ts +64 -5
  315. package/dist/walk-link-graph.d.ts.map +1 -1
  316. package/dist/walk-link-graph.js +376 -92
  317. package/dist/walk-link-graph.js.map +1 -1
  318. package/package.json +14 -22
  319. package/dist/skill-test/exit-codes.d.ts +0 -97
  320. package/dist/skill-test/exit-codes.d.ts.map +0 -1
  321. package/dist/skill-test/exit-codes.js +0 -141
  322. package/dist/skill-test/exit-codes.js.map +0 -1
@@ -7,12 +7,13 @@
7
7
  * - Computing deferred paths for validation
8
8
  * - Copying declared build artifacts into a skill output dir (every build path)
9
9
  */
10
- import { existsSync, statSync } from 'node:fs';
11
- import { copyFile, mkdir } from 'node:fs/promises';
10
+ import { statSync } from 'node:fs';
11
+ import { copyFile, lstat, mkdir, stat } from 'node:fs/promises';
12
12
  import { dirname } from 'node:path';
13
- import { fileContentHash, globMagicRemainder, hasParentTraversalSegment, isGlob, issueLocation, safePath, staticGlobBase, toForwardSlash, } from '@vibe-agent-toolkit/utils';
13
+ import { fileContentHash, globMagicRemainder, hasParentTraversalSegment, isFilesystemAccessError, isGlob, issueLocation, safePath, staticGlobBase, toForwardSlash, toForwardSlashAnyPlatform, } from '@vibe-agent-toolkit/utils';
14
14
  import { glob } from 'glob';
15
15
  import picomatch from 'picomatch';
16
+ import { withFsAttribution } from './fs-attribution.js';
16
17
  import { materializeIssue } from './validators/rule-engine/index.js';
17
18
  import { isNeverPackagedBasename } from './validators/validation-rules.js';
18
19
  /**
@@ -39,6 +40,124 @@ function partitionNeverPackaged(matches) {
39
40
  }
40
41
  return { kept, dropped };
41
42
  }
43
+ /**
44
+ * Partition a glob's matches into the ones the OS can copy and the ones it cannot.
45
+ *
46
+ * `glob`'s `nodir: true` is NOT this check, and cannot be made into it: it filters
47
+ * on what `glob` itself stat'd, and `glob` does not follow symlinks — so a symlink
48
+ * pointing at a DIRECTORY is never a directory to it and arrives here as an
49
+ * ordinary match. `copyFile` on that link then throws a raw `ENOTSUP` which, on
50
+ * macOS, renders as "operation not supported on socket" and misdescribes the
51
+ * object outright.
52
+ *
53
+ * Two simpler predicates were rejected:
54
+ *
55
+ * - Refusing on `isSymbolicLink()` alone would drop the legitimate
56
+ * symlink-to-FILE case — copying a symlinked file by content is reasonable and
57
+ * widely relied on — and would still let FIFOs, sockets and device nodes through
58
+ * to the same raw errno.
59
+ * - Testing only `stat().isFile()` would follow the link and answer correctly, but
60
+ * throws on a DANGLING link, putting the same unattributed errno back on the
61
+ * build's critical path.
62
+ *
63
+ * So the predicate is "does this resolve to a regular file, without throwing" —
64
+ * see {@link isCopyableFile}, which is the one place following a link is correct,
65
+ * because the target's bytes are what `copyFile` would move.
66
+ */
67
+ async function partitionRegularFiles(matches, absoluteBase) {
68
+ // Bounded concurrency, not a serial loop and not an unbounded `Promise.all`.
69
+ // This adds one or two stats per match where the build previously did none, on
70
+ // the critical path of a command that already stats every match once inside
71
+ // `glob` — serially that is a latency floor proportional to the match count, and
72
+ // a monorepo glob can match thousands. Unbounded would trade it for EMFILE.
73
+ //
74
+ // Results are written BY INDEX rather than pushed, so the partition stays in the
75
+ // caller's sorted order regardless of completion order — `droppedRel` and
76
+ // `nonRegularRel` are rendered into error messages an adopter reads, and a set
77
+ // that reshuffles between runs is a diff for no reason.
78
+ const copyable = await mapWithConcurrency(matches, STAT_CONCURRENCY, (rel) =>
79
+ // joinUnderRoot asserts the match stays under absoluteBase, the same guard the
80
+ // copy loop applies before reading it.
81
+ isCopyableFile(safePath.joinUnderRoot(absoluteBase, rel)));
82
+ const regular = [];
83
+ const nonRegular = [];
84
+ for (const [i, rel] of matches.entries()) {
85
+ (copyable[i] === true ? regular : nonRegular).push(rel);
86
+ }
87
+ return { regular, nonRegular };
88
+ }
89
+ /**
90
+ * Enough parallelism to hide per-call latency, low enough to stay far from the
91
+ * default file-descriptor ceiling even with several skills building at once.
92
+ */
93
+ const STAT_CONCURRENCY = 16;
94
+ /** `Promise.all`-shaped, but with at most `limit` calls in flight. Order preserved. */
95
+ async function mapWithConcurrency(items, limit, fn) {
96
+ const results = Array.from({ length: items.length });
97
+ let next = 0;
98
+ const worker = async () => {
99
+ while (next < items.length) {
100
+ const i = next++;
101
+ // Non-null: `i` is always a valid index, guarded by the loop condition.
102
+ results[i] = await fn(items[i]);
103
+ }
104
+ };
105
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
106
+ return results;
107
+ }
108
+ /**
109
+ * Whether `copyFile` can read this path as a stream of bytes.
110
+ *
111
+ * A regular file is copyable directly. A SYMLINK is copyable exactly when its
112
+ * target resolves to a regular file — that is the `stat` call, and it is the one
113
+ * place following the link is correct, because it is the target's bytes `copyFile`
114
+ * would move. A dangling link, or one resolving to a directory, throws from `stat`
115
+ * and is reported as not copyable rather than escaping as the build's whole
116
+ * explanation.
117
+ */
118
+ async function isCopyableFile(absPath) {
119
+ try {
120
+ const linkStat = await lstat(absPath);
121
+ if (linkStat.isFile())
122
+ return true;
123
+ if (!linkStat.isSymbolicLink())
124
+ return false;
125
+ return (await stat(absPath)).isFile();
126
+ }
127
+ catch (error) {
128
+ // Unreadable or dangling. Not copyable is the honest answer, and the caller
129
+ // reports it as a named finding — which is strictly more than the raw errno
130
+ // this replaces ever gave.
131
+ //
132
+ // Narrowed to filesystem errors on purpose: a bare `catch {}` here would
133
+ // answer "not a regular file" to a bug in our own code, silently converting a
134
+ // defect into a routine skip. Same predicate the audit walk uses, from one
135
+ // shared source so the two cannot drift.
136
+ if (!isFilesystemAccessError(error))
137
+ throw error;
138
+ return false;
139
+ }
140
+ }
141
+ /**
142
+ * Run the filesystem work for ONE `files:` entry, and make any failure name the
143
+ * entry that caused it.
144
+ *
145
+ * THE attribution point for the whole module, used by the glob and non-glob copy
146
+ * paths alike. It exists because the same defect was fixed three times in a row,
147
+ * one call site at a time: a raw errno from `copyFile` on a glob match, then the
148
+ * `mkdir` a line above it, then the identical pair on the explicit-entry path.
149
+ * Each fix was correct and none of them was the class. Routing every per-entry
150
+ * filesystem call through here is.
151
+ *
152
+ * The message is deliberately about the ENTRY, not the syscall: an author reading
153
+ * a build failure needs to know which line of their config produced it, which
154
+ * path it resolved to, and what to do — none of which an errno carries. The OS
155
+ * text is kept verbatim inside it, because it is what distinguishes a permission
156
+ * problem from a full disk from a vanished mount.
157
+ */
158
+ async function attributed(entry, absPath, projectRoot, work, action) {
159
+ return withFsAttribution(`files: source '${entry.source}' resolved to ${anchoredPath(absPath, projectRoot)}`, work, action);
160
+ }
42
161
  /**
43
162
  * Turn never-package drops into reportable findings.
44
163
  *
@@ -59,11 +178,32 @@ function partitionNeverPackaged(matches) {
59
178
  * silently emits paths relative to the wrong tree.
60
179
  */
61
180
  export function droppedGlobMatchesToIssues(dropped, locationRoot) {
62
- return dropped.map((drop) => {
63
- const file = issueLocation(drop.absFile, locationRoot);
64
- return materializeIssue('FILES_GLOB_DROPPED_NEVER_PACKAGED', {
181
+ return globMatchesToIssues(dropped, locationRoot, 'FILES_GLOB_DROPPED_NEVER_PACKAGED');
182
+ }
183
+ /**
184
+ * Turn non-copyable matches into reportable findings.
185
+ *
186
+ * Same anchoring contract as {@link droppedGlobMatchesToIssues} — and it shares
187
+ * that function's body rather than restating it, so the two populations cannot
188
+ * drift into describing themselves in different coordinate systems.
189
+ *
190
+ * @param locationRoot The ONE base this run anchors locations at (see
191
+ * {@link droppedGlobMatchesToIssues}).
192
+ */
193
+ export function skippedGlobMatchesToIssues(skipped, locationRoot) {
194
+ return globMatchesToIssues(skipped, locationRoot, 'FILES_GLOB_SKIPPED_NON_REGULAR_FILE');
195
+ }
196
+ /**
197
+ * The one emitter behind both per-file glob findings: anchored at the SOURCE file,
198
+ * naming the entry whose net caught it. Parameterized by code rather than copied
199
+ * per population — the anchoring rule above is the part that must never diverge.
200
+ */
201
+ function globMatchesToIssues(matches, locationRoot, code) {
202
+ return matches.map((match) => {
203
+ const file = issueLocation(match.absFile, locationRoot);
204
+ return materializeIssue(code, {
65
205
  location: file,
66
- detail: `${file} matched by files: source '${drop.source}'`,
206
+ detail: `${file} matched by files: source '${match.source}'`,
67
207
  });
68
208
  });
69
209
  }
@@ -95,7 +235,7 @@ function anchoredPath(absolute, root) {
95
235
  */
96
236
  const BUILD_SEGMENTS = new Set(['dist', 'build', 'out']);
97
237
  export function buildArtifactHint(source) {
98
- const normalized = toForwardSlash(source);
238
+ const normalized = toForwardSlashAnyPlatform(source);
99
239
  const segments = normalized.split('/');
100
240
  const hasArtifactSegment = segments.some((seg) => BUILD_SEGMENTS.has(seg));
101
241
  const hasArtifactExtension = /\.(mjs|cjs|js)$/.test(normalized) || /\.bundle\.[^./]+$/.test(normalized);
@@ -116,7 +256,7 @@ export function buildArtifactHint(source) {
116
256
  * `files:` config" about a copy VAT performed itself.
117
257
  */
118
258
  export function normalizeRelPath(p) {
119
- let normalized = toForwardSlash(p);
259
+ let normalized = toForwardSlashAnyPlatform(p);
120
260
  if (normalized.startsWith('./')) {
121
261
  normalized = normalized.slice(2);
122
262
  }
@@ -232,8 +372,18 @@ export function explicitFilesConfigDests(files) {
232
372
  */
233
373
  export function verifyFilesIntegrity(pairs) {
234
374
  for (const { absSource, absDest } of pairs) {
235
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- paths from validated config
236
- if (!existsSync(absDest)) {
375
+ // `statSync` in a guard rather than `existsSync`, because `existsSync`
376
+ // answers FALSE for a file that is present but unreadable — so a permissions
377
+ // problem on the dest was reported as "dest file missing", sending the author
378
+ // to look for a file that is sitting right there. Only a real ENOENT is
379
+ // missing; anything else is the filesystem refusing the path, and is rethrown
380
+ // for the caller to attribute to the `files:` entry.
381
+ try {
382
+ statSync(absDest);
383
+ }
384
+ catch (error) {
385
+ if (error.code !== 'ENOENT')
386
+ throw error;
237
387
  throw new Error(`files: integrity check failed — dest file missing: ${toForwardSlash(absDest)}`);
238
388
  }
239
389
  const srcHash = fileContentHash(absSource);
@@ -299,18 +449,29 @@ export async function verifyDestSet(destDir, expectedRel, source) {
299
449
  * Throws on missing source or if source is a directory.
300
450
  */
301
451
  async function copyNonGlobEntry(entry, absoluteSource, projectRoot, skillOutputDir) {
302
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- source path from validated config
303
- if (!existsSync(absoluteSource)) {
452
+ // `statSync` in a guard, not `existsSync`: `existsSync` swallows EACCES and
453
+ // answers FALSE, so a source the process merely cannot REACH — one under a
454
+ // directory it lacks permission to traverse — was reported as "does not exist".
455
+ // For a `dist/` source that also appended `buildArtifactHint`, telling the
456
+ // author to run a build that would not have helped: a confidently wrong
457
+ // diagnosis plus a confidently wrong remedy. Only ENOENT is absence; anything
458
+ // else is the filesystem refusing the path, and `attributed` at the call site
459
+ // names the entry.
460
+ let sourceStat;
461
+ try {
462
+ sourceStat = statSync(absoluteSource);
463
+ }
464
+ catch (error) {
465
+ if (error.code !== 'ENOENT')
466
+ throw error;
304
467
  throw new Error(`files: source '${entry.source}' does not exist (resolved to ${anchoredPath(absoluteSource, projectRoot)}).${buildArtifactHint(entry.source)}`);
305
468
  }
306
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- source path from validated config
307
- if (statSync(absoluteSource).isDirectory()) {
469
+ if (sourceStat.isDirectory()) {
308
470
  throw new Error(`files: source '${entry.source}' is a directory; use a glob like '${entry.source}/**/*' to copy its contents.`);
309
471
  }
310
472
  // joinUnderRoot rejects a dest that escapes the skill output dir (absolute /
311
473
  // drive-letter / '..'), defense-in-depth beyond the schema refine.
312
474
  const absoluteDest = safePath.joinUnderRoot(skillOutputDir, entry.dest);
313
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- dest path from validated config
314
475
  await mkdir(dirname(absoluteDest), { recursive: true });
315
476
  await copyFile(absoluteSource, absoluteDest);
316
477
  return { relDest: normalizeRelPath(entry.dest), absSource: absoluteSource, absDest: absoluteDest };
@@ -344,21 +505,28 @@ async function expandGlobEntry(entry, projectRoot) {
344
505
  // package symmetric with verifyDestSet (M10: silent dot-file drop).
345
506
  const rawMatches = await glob(remainder, { cwd: absoluteBase, nodir: true, dot: true });
346
507
  const allMatches = rawMatches.map((m) => toForwardSlash(m)).sort((a, b) => a.localeCompare(b));
347
- const { kept, dropped } = partitionNeverPackaged(allMatches);
508
+ // BEFORE the never-package split, because the two ask different questions and
509
+ // only one of them can be answered about a non-file: `partitionNeverPackaged`
510
+ // decides what POLICY refuses to ship, this decides what the OS can copy at all.
511
+ const { regular, nonRegular } = await partitionRegularFiles(allMatches, absoluteBase);
512
+ const { kept, dropped } = partitionNeverPackaged(regular);
513
+ const asMatchRecord = (rel) => ({
514
+ source: entry.source,
515
+ // The refused file itself. Computed HERE, where the base a match is
516
+ // relative to is known for certain, rather than re-derived by each
517
+ // consumer from `dest` — a dest cannot be inverted back to a source once
518
+ // the entry has rebased it.
519
+ absFile: toForwardSlash(safePath.joinUnderRoot(absoluteBase, rel)),
520
+ dest: normalizeRelPath(safePath.join(entry.dest, rel)),
521
+ });
348
522
  return {
349
523
  absoluteBase,
350
524
  allMatches,
351
525
  kept,
352
526
  droppedRel: dropped,
353
- dropped: dropped.map((rel) => ({
354
- source: entry.source,
355
- // The refused file itself. Computed HERE, where the base a match is
356
- // relative to is known for certain, rather than re-derived by each
357
- // consumer from `dest` — a dest cannot be inverted back to a source once
358
- // the entry has rebased it.
359
- absFile: toForwardSlash(safePath.joinUnderRoot(absoluteBase, rel)),
360
- dest: normalizeRelPath(safePath.join(entry.dest, rel)),
361
- })),
527
+ dropped: dropped.map(asMatchRecord),
528
+ nonRegularRel: nonRegular,
529
+ nonRegular: nonRegular.map(asMatchRecord),
362
530
  };
363
531
  }
364
532
  /**
@@ -380,24 +548,44 @@ async function expandGlobEntry(entry, projectRoot) {
380
548
  * complete and makes integrity mean what it says.
381
549
  */
382
550
  async function copyGlobEntry(entry, projectRoot, skillOutputDir) {
383
- const { absoluteBase, allMatches, kept: matches, droppedRel, dropped } = await expandGlobEntry(entry, projectRoot);
551
+ const { absoluteBase, allMatches, kept: matches, droppedRel, dropped, nonRegularRel, nonRegular, } = await expandGlobEntry(entry, projectRoot);
384
552
  // Project-relative in both throws below: these messages are published verbatim
385
553
  // as `failedSkills[].message` (see {@link anchoredPath}).
386
554
  const reportedBase = anchoredPath(absoluteBase, projectRoot);
387
555
  if (allMatches.length === 0) {
388
556
  throw new Error(`files: source '${entry.source}' (glob) matched no files under ${reportedBase} — has your build run?`);
389
557
  }
558
+ // Ordered BEFORE the never-package throw because it is the more specific
559
+ // diagnosis: if the entry nets nothing shippable and nothing it netted was even
560
+ // a file, "all of them are never packaged" names the wrong cause and its
561
+ // remediation ("declare an explicit source: entry") would not work if followed.
562
+ if (matches.length === 0 && droppedRel.length === 0) {
563
+ throw new Error(`files: source '${entry.source}' (glob) matched ${allMatches.length} path(s) under ${reportedBase}, ` +
564
+ `but none of them is a regular file (a symlink to a directory, a FIFO, a socket or a device node ` +
565
+ `cannot be packaged): ${nonRegularRel.join(', ')}. ` +
566
+ `Point the glob at files, or replace the link with the directory it targets.`);
567
+ }
390
568
  // Distinct from the zero-match case above: the build DID run and the glob DID
391
569
  // match — every match is simply a file that never ships. Saying "has your build
392
570
  // run?" here would send the author hunting a build failure that isn't there.
393
571
  if (matches.length === 0) {
572
+ // The MIXED case reaches here — some matches refused by policy, some not files
573
+ // at all — so the non-regular ones are named too. Listing only `droppedRel`
574
+ // would say "all of them are never packaged" while silently omitting paths that
575
+ // failed for an entirely different reason, and this throw is the last word on
576
+ // the entry: it aborts the build, so the `skipped` findings never get emitted.
577
+ const alsoNonRegular = nonRegularRel.length === 0
578
+ ? ''
579
+ : ` A further ${nonRegularRel.length.toString()} match(es) are not regular files and could not ` +
580
+ `be packaged either: ${nonRegularRel.join(', ')}.`;
394
581
  throw new Error(`files: source '${entry.source}' (glob) matched ${allMatches.length} file(s) under ${reportedBase}, ` +
395
582
  `but all of them are never packaged into a skill bundle: ${droppedRel.join(', ')}. ` +
396
583
  // NOT "widen the glob": the filter is on basename and applies at any width, so a
397
584
  // wider glob clears this error while still shipping none of these files — advice
398
585
  // that looks like it worked and silently does not.
399
586
  `Declare an explicit source: entry for a file you intend to ship, ` +
400
- `or point the glob at a directory that holds files which can be packaged.`);
587
+ `or point the glob at a directory that holds files which can be packaged.` +
588
+ alsoNonRegular);
401
589
  }
402
590
  const copied = [];
403
591
  const pairs = [];
@@ -412,14 +600,26 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir) {
412
600
  const absSource = safePath.joinUnderRoot(absoluteBase, rel);
413
601
  const relDest = normalizeRelPath(safePath.join(entry.dest, rel));
414
602
  const absDest = safePath.joinUnderRoot(skillOutputDir, entry.dest, rel);
415
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- dest path from validated config
416
- await mkdir(dirname(absDest), { recursive: true });
417
- await copyFile(absSource, absDest);
603
+ // `isCopyableFile` classified the TYPE of this match; it deliberately did not
604
+ // assert readability, because a permission can change between the check and
605
+ // the copy and a guard that pretended otherwise would just move the race. So
606
+ // the work itself is where an IO failure is caught — BOTH calls, since the
607
+ // `mkdir` fails on an unwritable output dir, a full disk, or a dest whose
608
+ // parent is an existing file.
609
+ //
610
+ // Still a hard failure, unlike a non-regular match: an unreadable file is one
611
+ // the author DECLARED and expects in the bundle, so shipping silently without
612
+ // it would change the artifact behind their back. A non-regular match can
613
+ // never be packaged at all, which is why that one degrades instead.
614
+ await attributed(entry, absSource, projectRoot, async () => {
615
+ await mkdir(dirname(absDest), { recursive: true });
616
+ await copyFile(absSource, absDest);
617
+ });
418
618
  copied.push(relDest);
419
619
  pairs.push({ absSource, absDest });
420
620
  rels.push(toForwardSlash(rel));
421
621
  }
422
- return { copied, pairs, rels, dropped };
622
+ return { copied, pairs, rels, dropped, skipped: nonRegular };
423
623
  }
424
624
  /**
425
625
  * What the project's GLOB `files:` entries would do, without copying anything.
@@ -465,6 +665,7 @@ export async function collectPreBuildGlobFindings(filesConfig, projectRoot) {
465
665
  const dropped = [];
466
666
  const allRefused = [];
467
667
  const unmatched = [];
668
+ const skipped = [];
468
669
  for (const entry of filesConfig) {
469
670
  if (!isGlob(entry.source))
470
671
  continue;
@@ -495,6 +696,18 @@ export async function collectPreBuildGlobFindings(filesConfig, projectRoot) {
495
696
  unmatched.push({ source: entry.source, absBase });
496
697
  continue;
497
698
  }
699
+ // Reported for EVERY entry that has them, including ones that go on to be
700
+ // `allRefused` below — unlike the per-file drops, which that verdict
701
+ // supersedes. A non-file is not the cause `allRefused` names, so its finding
702
+ // is not a second granularity of the same defect; suppressing it here would
703
+ // put the author back where the raw errno left them.
704
+ skipped.push(...expansion.nonRegular);
705
+ if (expansion.kept.length === 0 && expansion.dropped.length === 0) {
706
+ // Matched only non-files. `allRefused` would name the never-package list as
707
+ // the cause, which is not what happened, and its remediation would not work.
708
+ // The `skipped` findings just pushed carry this entry on their own.
709
+ continue;
710
+ }
498
711
  if (expansion.kept.length === 0) {
499
712
  // Supersedes this entry's per-file drops rather than adding to them: the
500
713
  // build raises ONE error listing every refused file, and reporting the same
@@ -509,7 +722,7 @@ export async function collectPreBuildGlobFindings(filesConfig, projectRoot) {
509
722
  }
510
723
  dropped.push(...expansion.dropped.filter((d) => !shippedDests.has(normalizeRelPath(d.dest))));
511
724
  }
512
- return { dropped, allRefused, unmatched };
725
+ return { dropped, allRefused, unmatched, skipped };
513
726
  }
514
727
  /**
515
728
  * Turn {@link collectPreBuildGlobFindings} into reportable pre-build issues.
@@ -527,6 +740,7 @@ export function preBuildGlobFindingsToIssues(findings, locationRoot) {
527
740
  const anchorBase = (absBase) => anchoredPath(absBase, locationRoot);
528
741
  return [
529
742
  ...droppedGlobMatchesToIssues(findings.dropped, locationRoot),
743
+ ...skippedGlobMatchesToIssues(findings.skipped, locationRoot),
530
744
  ...findings.allRefused.map((entry) => {
531
745
  const base = anchorBase(entry.absBase);
532
746
  // Every refused file, in the SAME source coordinates the drop findings use —
@@ -549,10 +763,11 @@ export function preBuildGlobFindingsToIssues(findings, locationRoot) {
549
763
  }
550
764
  /** Copy one GLOB `files:` entry. */
551
765
  async function applyGlobFileEntry(fileEntry, opts) {
552
- const { copied, pairs, rels, dropped } = await copyGlobEntry(fileEntry, opts.projectRoot, opts.skillOutputDir);
766
+ const { copied, pairs, rels, dropped, skipped } = await copyGlobEntry(fileEntry, opts.projectRoot, opts.skillOutputDir);
553
767
  return {
554
768
  dests: copied,
555
769
  dropped,
770
+ skipped,
556
771
  pending: fileEntry.integrity === true ? { entry: fileEntry, pairs, rels } : undefined,
557
772
  };
558
773
  }
@@ -610,15 +825,25 @@ async function applyNonGlobFileEntry(fileEntry, opts, bundledFileSet) {
610
825
  return {
611
826
  dests: [normalizeRelPath(fileEntry.dest)],
612
827
  dropped: [],
828
+ skipped: [],
613
829
  pending: optedIn
614
830
  ? { entry: fileEntry, pairs: [{ absSource: absoluteSource, absDest }], rels: undefined }
615
831
  : undefined,
616
832
  };
617
833
  }
618
- const { relDest, absSource, absDest } = await copyNonGlobEntry(fileEntry, absoluteSource, opts.projectRoot, opts.skillOutputDir);
834
+ // The WHOLE entry's filesystem work is guarded, not just its copy. Guarding the
835
+ // copy alone left the source `statSync` outside — so a source under a directory
836
+ // the process cannot traverse still escaped as a bare errno, which is the same
837
+ // defect one call earlier. An EXPLICIT entry is the spelling that unambiguously
838
+ // says "ship this file", so a bare errno here is if anything worse than on a
839
+ // glob: the author named the path, and the build owes them an error that names
840
+ // it back. (`copyNonGlobEntry`'s own deliberate errors — "does not exist", "is a
841
+ // directory" — carry no errno, so `attributed` passes them through untouched.)
842
+ const { relDest, absSource, absDest } = await attributed(fileEntry, absoluteSource, opts.projectRoot, () => copyNonGlobEntry(fileEntry, absoluteSource, opts.projectRoot, opts.skillOutputDir));
619
843
  return {
620
844
  dests: [relDest],
621
845
  dropped: [],
846
+ skipped: [],
622
847
  pending: optedIn ? { entry: fileEntry, pairs: [{ absSource, absDest }], rels: undefined } : undefined,
623
848
  };
624
849
  }
@@ -643,9 +868,16 @@ function relUnderDest(destRoot, dest) {
643
868
  * is still unexpected — so this stays a real assertion about the shipped bundle
644
869
  * rather than being weakened into a permissive one.
645
870
  */
646
- async function runDeferredIntegrity(pending, allDests, skillOutputDir) {
871
+ async function runDeferredIntegrity(pending, allDests, skillOutputDir, projectRoot) {
647
872
  for (const { entry, pairs, rels } of pending) {
648
- verifyFilesIntegrity(pairs);
873
+ // Through the same attribution point as the copy. `verifyFilesIntegrity`
874
+ // hashes both sides, so an unreadable source or dest surfaces here as a raw
875
+ // errno carrying an absolute path and no entry name — the same defect the
876
+ // copy loop had, in the one lane that had not been routed through the guard.
877
+ // Anchored at the ENTRY, not at `pairs[0]`: any of the entry's files can be
878
+ // the one that failed, and naming the first while the errno names another is
879
+ // worse than naming none. The errno itself carries the offending path.
880
+ await attributed(entry, safePath.resolve(safePath.join(projectRoot, entry.source)), projectRoot, async () => { verifyFilesIntegrity(pairs); }, 'verified');
649
881
  if (rels === undefined)
650
882
  continue;
651
883
  const destRoot = normalizeRelPath(entry.dest);
@@ -662,6 +894,7 @@ export async function applyFilesConfig(opts) {
662
894
  const bundledFileSet = new Set((opts.bundledFiles ?? []).map((f) => toForwardSlash(f)));
663
895
  const dests = [];
664
896
  const dropped = [];
897
+ const skipped = [];
665
898
  const pending = [];
666
899
  for (const fileEntry of opts.filesConfig) {
667
900
  const outcome = isGlob(fileEntry.source)
@@ -669,10 +902,11 @@ export async function applyFilesConfig(opts) {
669
902
  : await applyNonGlobFileEntry(fileEntry, opts, bundledFileSet);
670
903
  dests.push(...outcome.dests);
671
904
  dropped.push(...outcome.dropped);
905
+ skipped.push(...outcome.skipped);
672
906
  if (outcome.pending)
673
907
  pending.push(outcome.pending);
674
908
  }
675
- await runDeferredIntegrity(pending, dests, opts.skillOutputDir);
909
+ await runDeferredIntegrity(pending, dests, opts.skillOutputDir, opts.projectRoot);
676
910
  // A drop is only worth reporting if the file genuinely did not ship. In the
677
911
  // escape-hatch config the guide prescribes — a glob over a subtree plus an
678
912
  // explicit entry naming one never-packaged file inside it — the glob drops
@@ -682,6 +916,10 @@ export async function applyFilesConfig(opts) {
682
916
  // set (not on entry order) keeps the finding true whichever order they wrote.
683
917
  const shippedDests = new Set(dests.map((d) => normalizeRelPath(d)));
684
918
  const reportableDropped = dropped.filter((d) => !shippedDests.has(normalizeRelPath(d.dest)));
685
- return { dests, dropped: reportableDropped };
919
+ // Same filter, same reason: an explicit entry naming the link's dest resolves it
920
+ // deliberately, and reporting "it did not ship" about a path now in the bundle
921
+ // would tell the author their remediation failed when it worked.
922
+ const reportableSkipped = skipped.filter((s) => !shippedDests.has(normalizeRelPath(s.dest)));
923
+ return { dests, dropped: reportableDropped, skipped: reportableSkipped };
686
924
  }
687
925
  //# sourceMappingURL=files-config.js.map
@@ -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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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * One home for "the filesystem refused this, and here is what you were doing".
3
+ *
4
+ * A build moves files for several different reasons — a `files:` entry, a link
5
+ * the walker followed, an integrity re-read — and each of those used to let a raw
6
+ * errno escape as the whole explanation. `EACCES: permission denied, open
7
+ * '/abs/path'` names a path and nothing else: not which line of config asked for
8
+ * it, not which skill was being built, not what to do next.
9
+ *
10
+ * That defect was fixed five times in a row, one call site at a time, and each
11
+ * fix was correct and none of them was the class. The lesson is not "add a
12
+ * try/catch here too" — it is that the message format has to have exactly one
13
+ * home, so a new copier inherits it by calling this rather than by remembering to
14
+ * reproduce it.
15
+ *
16
+ * Deliberately NOT in `files-config.ts`: this is not about `files:` config. That
17
+ * module wraps this with its own subject phrasing, as does the link-copy path in
18
+ * the packager, and both get identical structure with a subject that fits.
19
+ */
20
+ /** For a failure that moved bytes INTO the bundle. */
21
+ export declare const WRITE_REMEDY: string;
22
+ /** For a failure that only tried to READ the author's own tree. */
23
+ export declare const READ_REMEDY = "Check the file's permissions and ownership, and that every directory above it is traversable.";
24
+ /**
25
+ * Run filesystem work, and if the OS refuses it, say what was being attempted.
26
+ *
27
+ * @param subject What the build was doing, phrased so it names something the
28
+ * author can locate — a `files:` entry, a linked file, a skill. This is the
29
+ * whole point: the errno already has the path.
30
+ * @param action What was being done to it, completing "it could not be …".
31
+ * Defaults to the copy case; the integrity lane passes its own, because telling
32
+ * an author a file "could not be copied" when the copy SUCCEEDED and the
33
+ * verification failed sends them to look at the wrong step.
34
+ * @param remedy What to check. Split from `action` because the two do not track
35
+ * each other: a failed READ has nothing to do with whether the output directory
36
+ * is writable or the disk is full, and padding a message with checks that
37
+ * cannot apply teaches people to stop reading the message.
38
+ *
39
+ * A non-filesystem throw is rethrown untouched. Re-wrapping a defect in our own
40
+ * code as "check your permissions" would send the author to fix something that is
41
+ * not theirs to fix — and it is the same "make the tool quietest when it is most
42
+ * wrong" shape the audit walk's guard exists to avoid.
43
+ */
44
+ export declare function withFsAttribution<T>(subject: string, work: () => Promise<T>, action?: string, remedy?: string): Promise<T>;
45
+ //# sourceMappingURL=fs-attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-attribution.d.ts","sourceRoot":"","sources":["../src/fs-attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,sDAAsD;AACtD,eAAO,MAAM,YAAY,QAEmB,CAAC;AAE7C,mEAAmE;AACnE,eAAO,MAAM,WAAW,kGACyE,CAAC;AAElG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,MAAM,SAA2B,EACjC,MAAM,SAAe,GACpB,OAAO,CAAC,CAAC,CAAC,CAUZ"}