@vibe-agent-toolkit/cli 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 (504) hide show
  1. package/README.md +4 -5
  2. package/dist/bin/vat +95 -28
  3. package/dist/bin/vat.js +95 -28
  4. package/dist/bin/vat.js.map +1 -1
  5. package/dist/bin.js +137 -76
  6. package/dist/bin.js.map +1 -1
  7. package/dist/command-loaders.d.ts +44 -0
  8. package/dist/command-loaders.d.ts.map +1 -0
  9. package/dist/command-loaders.js +60 -0
  10. package/dist/command-loaders.js.map +1 -0
  11. package/dist/commands/agent/build.d.ts.map +1 -1
  12. package/dist/commands/agent/build.js +2 -1
  13. package/dist/commands/agent/build.js.map +1 -1
  14. package/dist/commands/agent/import.d.ts.map +1 -1
  15. package/dist/commands/agent/import.js +3 -2
  16. package/dist/commands/agent/import.js.map +1 -1
  17. package/dist/commands/agent/index.js +1 -1
  18. package/dist/commands/agent/install-path.d.ts +36 -0
  19. package/dist/commands/agent/install-path.d.ts.map +1 -0
  20. package/dist/commands/agent/install-path.js +44 -0
  21. package/dist/commands/agent/install-path.js.map +1 -0
  22. package/dist/commands/agent/install.d.ts.map +1 -1
  23. package/dist/commands/agent/install.js +66 -13
  24. package/dist/commands/agent/install.js.map +1 -1
  25. package/dist/commands/agent/installed.d.ts.map +1 -1
  26. package/dist/commands/agent/installed.js +22 -12
  27. package/dist/commands/agent/installed.js.map +1 -1
  28. package/dist/commands/agent/list.d.ts.map +1 -1
  29. package/dist/commands/agent/list.js +2 -1
  30. package/dist/commands/agent/list.js.map +1 -1
  31. package/dist/commands/agent/run.d.ts.map +1 -1
  32. package/dist/commands/agent/run.js +2 -1
  33. package/dist/commands/agent/run.js.map +1 -1
  34. package/dist/commands/agent/uninstall.d.ts.map +1 -1
  35. package/dist/commands/agent/uninstall.js +13 -6
  36. package/dist/commands/agent/uninstall.js.map +1 -1
  37. package/dist/commands/agent/validate.d.ts.map +1 -1
  38. package/dist/commands/agent/validate.js +3 -2
  39. package/dist/commands/agent/validate.js.map +1 -1
  40. package/dist/commands/ard/emit.d.ts +153 -0
  41. package/dist/commands/ard/emit.d.ts.map +1 -0
  42. package/dist/commands/ard/emit.js +276 -0
  43. package/dist/commands/ard/emit.js.map +1 -0
  44. package/dist/commands/ard/index.d.ts +12 -0
  45. package/dist/commands/ard/index.d.ts.map +1 -0
  46. package/dist/commands/ard/index.js +80 -0
  47. package/dist/commands/ard/index.js.map +1 -0
  48. package/dist/commands/ard/surfaces.d.ts +56 -0
  49. package/dist/commands/ard/surfaces.d.ts.map +1 -0
  50. package/dist/commands/ard/surfaces.js +150 -0
  51. package/dist/commands/ard/surfaces.js.map +1 -0
  52. package/dist/commands/audit/distributed-tree.d.ts +60 -2
  53. package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
  54. package/dist/commands/audit/distributed-tree.js +73 -1
  55. package/dist/commands/audit/distributed-tree.js.map +1 -1
  56. package/dist/commands/audit/git-url-clone.d.ts +1 -1
  57. package/dist/commands/audit/git-url-clone.d.ts.map +1 -1
  58. package/dist/commands/audit/git-url-clone.js.map +1 -1
  59. package/dist/commands/audit/hierarchical-output.d.ts +1 -1
  60. package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
  61. package/dist/commands/audit/hierarchical-output.js +1 -1
  62. package/dist/commands/audit/hierarchical-output.js.map +1 -1
  63. package/dist/commands/audit/provenance.d.ts.map +1 -1
  64. package/dist/commands/audit/provenance.js +4 -3
  65. package/dist/commands/audit/provenance.js.map +1 -1
  66. package/dist/commands/audit/scan-population.d.ts +158 -0
  67. package/dist/commands/audit/scan-population.d.ts.map +1 -0
  68. package/dist/commands/audit/scan-population.js +292 -0
  69. package/dist/commands/audit/scan-population.js.map +1 -0
  70. package/dist/commands/audit-settings.d.ts.map +1 -1
  71. package/dist/commands/audit-settings.js +6 -5
  72. package/dist/commands/audit-settings.js.map +1 -1
  73. package/dist/commands/audit.d.ts +98 -8
  74. package/dist/commands/audit.d.ts.map +1 -1
  75. package/dist/commands/audit.js +1133 -395
  76. package/dist/commands/audit.js.map +1 -1
  77. package/dist/commands/build.d.ts +1 -1
  78. package/dist/commands/build.d.ts.map +1 -1
  79. package/dist/commands/build.js +40 -36
  80. package/dist/commands/build.js.map +1 -1
  81. package/dist/commands/cache/cache-control.d.ts +82 -0
  82. package/dist/commands/cache/cache-control.d.ts.map +1 -0
  83. package/dist/commands/cache/cache-control.js +86 -0
  84. package/dist/commands/cache/cache-control.js.map +1 -0
  85. package/dist/commands/cache/clear.d.ts +105 -0
  86. package/dist/commands/cache/clear.d.ts.map +1 -0
  87. package/dist/commands/cache/clear.js +248 -0
  88. package/dist/commands/cache/clear.js.map +1 -0
  89. package/dist/commands/cache/index.d.ts +18 -0
  90. package/dist/commands/cache/index.d.ts.map +1 -0
  91. package/dist/commands/cache/index.js +94 -0
  92. package/dist/commands/cache/index.js.map +1 -0
  93. package/dist/commands/claude/claude-config.d.ts.map +1 -1
  94. package/dist/commands/claude/claude-config.js +6 -0
  95. package/dist/commands/claude/claude-config.js.map +1 -1
  96. package/dist/commands/claude/context.d.ts +340 -0
  97. package/dist/commands/claude/context.d.ts.map +1 -0
  98. package/dist/commands/claude/context.js +1080 -0
  99. package/dist/commands/claude/context.js.map +1 -0
  100. package/dist/commands/claude/index.d.ts +14 -0
  101. package/dist/commands/claude/index.d.ts.map +1 -1
  102. package/dist/commands/claude/index.js +22 -2
  103. package/dist/commands/claude/index.js.map +1 -1
  104. package/dist/commands/claude/marketplace/changelog-utils.d.ts +1 -1
  105. package/dist/commands/claude/marketplace/changelog-utils.d.ts.map +1 -1
  106. package/dist/commands/claude/marketplace/changelog-utils.js +1 -2
  107. package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
  108. package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
  109. package/dist/commands/claude/marketplace/git-publish.js +40 -31
  110. package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
  111. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  112. package/dist/commands/claude/marketplace/license-utils.js +0 -1
  113. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  114. package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
  115. package/dist/commands/claude/marketplace/publish-tree.js +0 -6
  116. package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
  117. package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
  118. package/dist/commands/claude/marketplace/publish.js +2 -1
  119. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  120. package/dist/commands/claude/marketplace/validate.d.ts +73 -22
  121. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  122. package/dist/commands/claude/marketplace/validate.js +407 -72
  123. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  124. package/dist/commands/claude/org/api-keys.d.ts +0 -3
  125. package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
  126. package/dist/commands/claude/org/api-keys.js +2 -1
  127. package/dist/commands/claude/org/api-keys.js.map +1 -1
  128. package/dist/commands/claude/org/helpers.d.ts +54 -1
  129. package/dist/commands/claude/org/helpers.d.ts.map +1 -1
  130. package/dist/commands/claude/org/helpers.js +42 -7
  131. package/dist/commands/claude/org/helpers.js.map +1 -1
  132. package/dist/commands/claude/org/index.d.ts.map +1 -1
  133. package/dist/commands/claude/org/index.js +24 -16
  134. package/dist/commands/claude/org/index.js.map +1 -1
  135. package/dist/commands/claude/org/invites.d.ts +0 -3
  136. package/dist/commands/claude/org/invites.d.ts.map +1 -1
  137. package/dist/commands/claude/org/invites.js +3 -2
  138. package/dist/commands/claude/org/invites.js.map +1 -1
  139. package/dist/commands/claude/org/skills.d.ts +527 -0
  140. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  141. package/dist/commands/claude/org/skills.js +1414 -108
  142. package/dist/commands/claude/org/skills.js.map +1 -1
  143. package/dist/commands/claude/org/users.d.ts +0 -3
  144. package/dist/commands/claude/org/users.d.ts.map +1 -1
  145. package/dist/commands/claude/org/users.js +6 -3
  146. package/dist/commands/claude/org/users.js.map +1 -1
  147. package/dist/commands/claude/org/workspaces.d.ts +0 -3
  148. package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
  149. package/dist/commands/claude/org/workspaces.js +11 -7
  150. package/dist/commands/claude/org/workspaces.js.map +1 -1
  151. package/dist/commands/claude/plugin/build.d.ts +41 -3
  152. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  153. package/dist/commands/claude/plugin/build.js +147 -80
  154. package/dist/commands/claude/plugin/build.js.map +1 -1
  155. package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
  156. package/dist/commands/claude/plugin/helpers.js +2 -7
  157. package/dist/commands/claude/plugin/helpers.js.map +1 -1
  158. package/dist/commands/claude/plugin/install.d.ts +12 -0
  159. package/dist/commands/claude/plugin/install.d.ts.map +1 -1
  160. package/dist/commands/claude/plugin/install.js +93 -62
  161. package/dist/commands/claude/plugin/install.js.map +1 -1
  162. package/dist/commands/claude/plugin/list.d.ts.map +1 -1
  163. package/dist/commands/claude/plugin/list.js +3 -2
  164. package/dist/commands/claude/plugin/list.js.map +1 -1
  165. package/dist/commands/claude/plugin/marketplace-json.d.ts +24 -9
  166. package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -1
  167. package/dist/commands/claude/plugin/marketplace-json.js +10 -9
  168. package/dist/commands/claude/plugin/marketplace-json.js.map +1 -1
  169. package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
  170. package/dist/commands/claude/plugin/plugin-changelog.js +0 -2
  171. package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
  172. package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
  173. package/dist/commands/claude/plugin/plugin-files.js +3 -6
  174. package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
  175. package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
  176. package/dist/commands/claude/plugin/plugin-validators.js +3 -6
  177. package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
  178. package/dist/commands/claude/plugin/tree-copy.d.ts +73 -0
  179. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  180. package/dist/commands/claude/plugin/tree-copy.js +221 -14
  181. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  182. package/dist/commands/claude/plugin/uninstall.d.ts.map +1 -1
  183. package/dist/commands/claude/plugin/uninstall.js +4 -4
  184. package/dist/commands/claude/plugin/uninstall.js.map +1 -1
  185. package/dist/commands/consistency-check.d.ts +17 -15
  186. package/dist/commands/consistency-check.d.ts.map +1 -1
  187. package/dist/commands/consistency-check.js +152 -106
  188. package/dist/commands/consistency-check.js.map +1 -1
  189. package/dist/commands/corpus/index.d.ts.map +1 -1
  190. package/dist/commands/corpus/index.js +3 -0
  191. package/dist/commands/corpus/index.js.map +1 -1
  192. package/dist/commands/corpus/report.d.ts +1 -2
  193. package/dist/commands/corpus/report.d.ts.map +1 -1
  194. package/dist/commands/corpus/report.js +1 -3
  195. package/dist/commands/corpus/report.js.map +1 -1
  196. package/dist/commands/corpus/runner.d.ts +58 -1
  197. package/dist/commands/corpus/runner.d.ts.map +1 -1
  198. package/dist/commands/corpus/runner.js +95 -41
  199. package/dist/commands/corpus/runner.js.map +1 -1
  200. package/dist/commands/corpus/scan.d.ts.map +1 -1
  201. package/dist/commands/corpus/scan.js +20 -12
  202. package/dist/commands/corpus/scan.js.map +1 -1
  203. package/dist/commands/corpus/seed.d.ts +4 -4
  204. package/dist/commands/corpus/seed.d.ts.map +1 -1
  205. package/dist/commands/corpus/seed.js +1 -3
  206. package/dist/commands/corpus/seed.js.map +1 -1
  207. package/dist/commands/doctor.d.ts +50 -0
  208. package/dist/commands/doctor.d.ts.map +1 -1
  209. package/dist/commands/doctor.js +245 -52
  210. package/dist/commands/doctor.js.map +1 -1
  211. package/dist/commands/inventory.d.ts +13 -1
  212. package/dist/commands/inventory.d.ts.map +1 -1
  213. package/dist/commands/inventory.js +128 -17
  214. package/dist/commands/inventory.js.map +1 -1
  215. package/dist/commands/mcp/collections.d.ts +1 -1
  216. package/dist/commands/mcp/collections.d.ts.map +1 -1
  217. package/dist/commands/mcp/list-collections.d.ts.map +1 -1
  218. package/dist/commands/mcp/list-collections.js +2 -1
  219. package/dist/commands/mcp/list-collections.js.map +1 -1
  220. package/dist/commands/mcp/serve.d.ts.map +1 -1
  221. package/dist/commands/mcp/serve.js +3 -2
  222. package/dist/commands/mcp/serve.js.map +1 -1
  223. package/dist/commands/okf/index.d.ts +11 -0
  224. package/dist/commands/okf/index.d.ts.map +1 -0
  225. package/dist/commands/okf/index.js +114 -0
  226. package/dist/commands/okf/index.js.map +1 -0
  227. package/dist/commands/okf/validate.d.ts +191 -0
  228. package/dist/commands/okf/validate.d.ts.map +1 -0
  229. package/dist/commands/okf/validate.js +190 -0
  230. package/dist/commands/okf/validate.js.map +1 -0
  231. package/dist/commands/phase-utils.d.ts +182 -114
  232. package/dist/commands/phase-utils.d.ts.map +1 -1
  233. package/dist/commands/phase-utils.js +154 -163
  234. package/dist/commands/phase-utils.js.map +1 -1
  235. package/dist/commands/positional-args.d.ts.map +1 -1
  236. package/dist/commands/positional-args.js +3 -2
  237. package/dist/commands/positional-args.js.map +1 -1
  238. package/dist/commands/rag/clear-command.d.ts.map +1 -1
  239. package/dist/commands/rag/clear-command.js +2 -1
  240. package/dist/commands/rag/clear-command.js.map +1 -1
  241. package/dist/commands/rag/index-command.d.ts +64 -0
  242. package/dist/commands/rag/index-command.d.ts.map +1 -1
  243. package/dist/commands/rag/index-command.js +72 -6
  244. package/dist/commands/rag/index-command.js.map +1 -1
  245. package/dist/commands/rag/index.d.ts.map +1 -1
  246. package/dist/commands/rag/index.js +23 -10
  247. package/dist/commands/rag/index.js.map +1 -1
  248. package/dist/commands/rag/query-command.d.ts.map +1 -1
  249. package/dist/commands/rag/query-command.js +2 -1
  250. package/dist/commands/rag/query-command.js.map +1 -1
  251. package/dist/commands/rag/stats-command.d.ts.map +1 -1
  252. package/dist/commands/rag/stats-command.js +2 -1
  253. package/dist/commands/rag/stats-command.js.map +1 -1
  254. package/dist/commands/resources/builtin-help.d.ts +27 -0
  255. package/dist/commands/resources/builtin-help.d.ts.map +1 -0
  256. package/dist/commands/resources/builtin-help.js +46 -0
  257. package/dist/commands/resources/builtin-help.js.map +1 -0
  258. package/dist/commands/resources/check-progress.d.ts +154 -0
  259. package/dist/commands/resources/check-progress.d.ts.map +1 -0
  260. package/dist/commands/resources/check-progress.js +222 -0
  261. package/dist/commands/resources/check-progress.js.map +1 -0
  262. package/dist/commands/resources/check-supervisor.d.ts +465 -0
  263. package/dist/commands/resources/check-supervisor.d.ts.map +1 -0
  264. package/dist/commands/resources/check-supervisor.js +573 -0
  265. package/dist/commands/resources/check-supervisor.js.map +1 -0
  266. package/dist/commands/resources/check.d.ts +593 -0
  267. package/dist/commands/resources/check.d.ts.map +1 -0
  268. package/dist/commands/resources/check.js +1365 -0
  269. package/dist/commands/resources/check.js.map +1 -0
  270. package/dist/commands/resources/index.d.ts.map +1 -1
  271. package/dist/commands/resources/index.js +425 -6
  272. package/dist/commands/resources/index.js.map +1 -1
  273. package/dist/commands/resources/query.d.ts +106 -0
  274. package/dist/commands/resources/query.d.ts.map +1 -0
  275. package/dist/commands/resources/query.js +177 -0
  276. package/dist/commands/resources/query.js.map +1 -0
  277. package/dist/commands/resources/scan.d.ts +24 -0
  278. package/dist/commands/resources/scan.d.ts.map +1 -1
  279. package/dist/commands/resources/scan.js +17 -8
  280. package/dist/commands/resources/scan.js.map +1 -1
  281. package/dist/commands/resources/validate.d.ts +57 -4
  282. package/dist/commands/resources/validate.d.ts.map +1 -1
  283. package/dist/commands/resources/validate.js +224 -56
  284. package/dist/commands/resources/validate.js.map +1 -1
  285. package/dist/commands/skill/review-checklist.d.ts +3 -2
  286. package/dist/commands/skill/review-checklist.d.ts.map +1 -1
  287. package/dist/commands/skill/review-checklist.js +40 -2
  288. package/dist/commands/skill/review-checklist.js.map +1 -1
  289. package/dist/commands/skill/review.d.ts +247 -0
  290. package/dist/commands/skill/review.d.ts.map +1 -1
  291. package/dist/commands/skill/review.js +99 -62
  292. package/dist/commands/skill/review.js.map +1 -1
  293. package/dist/commands/skill/test/configure.d.ts +56 -0
  294. package/dist/commands/skill/test/configure.d.ts.map +1 -1
  295. package/dist/commands/skill/test/configure.js +75 -16
  296. package/dist/commands/skill/test/configure.js.map +1 -1
  297. package/dist/commands/skill/test/run.d.ts +63 -10
  298. package/dist/commands/skill/test/run.d.ts.map +1 -1
  299. package/dist/commands/skill/test/run.js +258 -77
  300. package/dist/commands/skill/test/run.js.map +1 -1
  301. package/dist/commands/skills/build.d.ts +94 -4
  302. package/dist/commands/skills/build.d.ts.map +1 -1
  303. package/dist/commands/skills/build.js +325 -97
  304. package/dist/commands/skills/build.js.map +1 -1
  305. package/dist/commands/skills/install.d.ts +2 -1
  306. package/dist/commands/skills/install.d.ts.map +1 -1
  307. package/dist/commands/skills/install.js +20 -31
  308. package/dist/commands/skills/install.js.map +1 -1
  309. package/dist/commands/skills/list.d.ts +2 -1
  310. package/dist/commands/skills/list.d.ts.map +1 -1
  311. package/dist/commands/skills/list.js +44 -26
  312. package/dist/commands/skills/list.js.map +1 -1
  313. package/dist/commands/skills/package.d.ts +24 -3
  314. package/dist/commands/skills/package.d.ts.map +1 -1
  315. package/dist/commands/skills/package.js +42 -17
  316. package/dist/commands/skills/package.js.map +1 -1
  317. package/dist/commands/skills/scope-guard.d.ts.map +1 -1
  318. package/dist/commands/skills/scope-guard.js +3 -5
  319. package/dist/commands/skills/scope-guard.js.map +1 -1
  320. package/dist/commands/skills/shared.d.ts.map +1 -1
  321. package/dist/commands/skills/shared.js +2 -4
  322. package/dist/commands/skills/shared.js.map +1 -1
  323. package/dist/commands/skills/skill-discovery.d.ts +47 -6
  324. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  325. package/dist/commands/skills/skill-discovery.js +66 -16
  326. package/dist/commands/skills/skill-discovery.js.map +1 -1
  327. package/dist/commands/skills/source-resolvers.d.ts +15 -0
  328. package/dist/commands/skills/source-resolvers.d.ts.map +1 -1
  329. package/dist/commands/skills/source-resolvers.js +25 -4
  330. package/dist/commands/skills/source-resolvers.js.map +1 -1
  331. package/dist/commands/skills/validate-command.d.ts.map +1 -1
  332. package/dist/commands/skills/validate-command.js +11 -3
  333. package/dist/commands/skills/validate-command.js.map +1 -1
  334. package/dist/commands/skills/validate.d.ts +140 -4
  335. package/dist/commands/skills/validate.d.ts.map +1 -1
  336. package/dist/commands/skills/validate.js +224 -67
  337. package/dist/commands/skills/validate.js.map +1 -1
  338. package/dist/commands/validate.d.ts +1 -1
  339. package/dist/commands/validate.d.ts.map +1 -1
  340. package/dist/commands/validate.js +63 -27
  341. package/dist/commands/validate.js.map +1 -1
  342. package/dist/commands/verify.d.ts +119 -15
  343. package/dist/commands/verify.d.ts.map +1 -1
  344. package/dist/commands/verify.js +357 -142
  345. package/dist/commands/verify.js.map +1 -1
  346. package/dist/index.d.ts +0 -1
  347. package/dist/index.d.ts.map +1 -1
  348. package/dist/index.js +5 -1
  349. package/dist/index.js.map +1 -1
  350. package/dist/report-schemas.d.ts +45 -0
  351. package/dist/report-schemas.d.ts.map +1 -0
  352. package/dist/report-schemas.js +100 -0
  353. package/dist/report-schemas.js.map +1 -0
  354. package/dist/skill-resolution/classify.js +2 -2
  355. package/dist/skill-resolution/classify.js.map +1 -1
  356. package/dist/skill-resolution/packaging-config.d.ts +49 -5
  357. package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
  358. package/dist/skill-resolution/packaging-config.js +59 -19
  359. package/dist/skill-resolution/packaging-config.js.map +1 -1
  360. package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
  361. package/dist/skill-resolution/resolve-skill-reference.js +55 -57
  362. package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
  363. package/dist/utils/agent-discovery.d.ts.map +1 -1
  364. package/dist/utils/agent-discovery.js +22 -11
  365. package/dist/utils/agent-discovery.js.map +1 -1
  366. package/dist/utils/agent-runner.d.ts.map +1 -1
  367. package/dist/utils/agent-runner.js +7 -4
  368. package/dist/utils/agent-runner.js.map +1 -1
  369. package/dist/utils/claude-context-lens.d.ts +34 -0
  370. package/dist/utils/claude-context-lens.d.ts.map +1 -0
  371. package/dist/utils/claude-context-lens.js +39 -0
  372. package/dist/utils/claude-context-lens.js.map +1 -0
  373. package/dist/utils/command-error.d.ts +144 -7
  374. package/dist/utils/command-error.d.ts.map +1 -1
  375. package/dist/utils/command-error.js +179 -16
  376. package/dist/utils/command-error.js.map +1 -1
  377. package/dist/utils/config-loader.d.ts +2 -1
  378. package/dist/utils/config-loader.d.ts.map +1 -1
  379. package/dist/utils/config-loader.js +40 -14
  380. package/dist/utils/config-loader.js.map +1 -1
  381. package/dist/utils/corpus-target.d.ts +26 -0
  382. package/dist/utils/corpus-target.d.ts.map +1 -0
  383. package/dist/utils/corpus-target.js +35 -0
  384. package/dist/utils/corpus-target.js.map +1 -0
  385. package/dist/utils/edge-lens-evaluation.d.ts +83 -0
  386. package/dist/utils/edge-lens-evaluation.d.ts.map +1 -0
  387. package/dist/utils/edge-lens-evaluation.js +110 -0
  388. package/dist/utils/edge-lens-evaluation.js.map +1 -0
  389. package/dist/utils/help-loader.d.ts.map +1 -1
  390. package/dist/utils/help-loader.js +0 -1
  391. package/dist/utils/help-loader.js.map +1 -1
  392. package/dist/utils/issue-anchor.d.ts +2 -2
  393. package/dist/utils/issue-anchor.d.ts.map +1 -1
  394. package/dist/utils/issue-anchor.js +1 -1
  395. package/dist/utils/issue-rendering.d.ts +3 -3
  396. package/dist/utils/issue-rendering.d.ts.map +1 -1
  397. package/dist/utils/issue-rendering.js +3 -3
  398. package/dist/utils/issue-rendering.js.map +1 -1
  399. package/dist/utils/issue-severity.d.ts +12 -5
  400. package/dist/utils/issue-severity.d.ts.map +1 -1
  401. package/dist/utils/issue-severity.js +1 -1
  402. package/dist/utils/issue-severity.js.map +1 -1
  403. package/dist/utils/optional-backend.d.ts +78 -0
  404. package/dist/utils/optional-backend.d.ts.map +1 -0
  405. package/dist/utils/optional-backend.js +117 -0
  406. package/dist/utils/optional-backend.js.map +1 -0
  407. package/dist/utils/output.d.ts +26 -0
  408. package/dist/utils/output.d.ts.map +1 -1
  409. package/dist/utils/output.js +35 -0
  410. package/dist/utils/output.js.map +1 -1
  411. package/dist/utils/package-json.d.ts +24 -0
  412. package/dist/utils/package-json.d.ts.map +1 -0
  413. package/dist/utils/package-json.js +49 -0
  414. package/dist/utils/package-json.js.map +1 -0
  415. package/dist/utils/population-wiring.d.ts +100 -0
  416. package/dist/utils/population-wiring.d.ts.map +1 -0
  417. package/dist/utils/population-wiring.js +98 -0
  418. package/dist/utils/population-wiring.js.map +1 -0
  419. package/dist/utils/project-root-policy.d.ts +20 -0
  420. package/dist/utils/project-root-policy.d.ts.map +1 -1
  421. package/dist/utils/project-root-policy.js +30 -0
  422. package/dist/utils/project-root-policy.js.map +1 -1
  423. package/dist/utils/projection-lenses.d.ts +98 -0
  424. package/dist/utils/projection-lenses.d.ts.map +1 -0
  425. package/dist/utils/projection-lenses.js +203 -0
  426. package/dist/utils/projection-lenses.js.map +1 -0
  427. package/dist/utils/projection-query.d.ts +324 -0
  428. package/dist/utils/projection-query.d.ts.map +1 -0
  429. package/dist/utils/projection-query.js +357 -0
  430. package/dist/utils/projection-query.js.map +1 -0
  431. package/dist/utils/projection-store.d.ts +335 -0
  432. package/dist/utils/projection-store.d.ts.map +1 -0
  433. package/dist/utils/projection-store.js +522 -0
  434. package/dist/utils/projection-store.js.map +1 -0
  435. package/dist/utils/relation-limits.d.ts +50 -0
  436. package/dist/utils/relation-limits.d.ts.map +1 -0
  437. package/dist/utils/relation-limits.js +50 -0
  438. package/dist/utils/relation-limits.js.map +1 -0
  439. package/dist/utils/repeatable-option.d.ts +37 -0
  440. package/dist/utils/repeatable-option.d.ts.map +1 -0
  441. package/dist/utils/repeatable-option.js +39 -0
  442. package/dist/utils/repeatable-option.js.map +1 -0
  443. package/dist/utils/resource-loader.d.ts +132 -2
  444. package/dist/utils/resource-loader.d.ts.map +1 -1
  445. package/dist/utils/resource-loader.js +288 -27
  446. package/dist/utils/resource-loader.js.map +1 -1
  447. package/dist/utils/root-argv.d.ts +53 -0
  448. package/dist/utils/root-argv.d.ts.map +1 -0
  449. package/dist/utils/root-argv.js +215 -0
  450. package/dist/utils/root-argv.js.map +1 -0
  451. package/dist/utils/run-integrity.d.ts +95 -0
  452. package/dist/utils/run-integrity.d.ts.map +1 -0
  453. package/dist/utils/run-integrity.js +102 -0
  454. package/dist/utils/run-integrity.js.map +1 -0
  455. package/dist/utils/skill-discovery.d.ts.map +1 -1
  456. package/dist/utils/skill-discovery.js +2 -1
  457. package/dist/utils/skill-discovery.js.map +1 -1
  458. package/dist/utils/skill-packaging-config.d.ts +63 -1
  459. package/dist/utils/skill-packaging-config.d.ts.map +1 -1
  460. package/dist/utils/skill-packaging-config.js +56 -1
  461. package/dist/utils/skill-packaging-config.js.map +1 -1
  462. package/dist/utils/sqlite-experimental-warning.d.ts +69 -0
  463. package/dist/utils/sqlite-experimental-warning.d.ts.map +1 -0
  464. package/dist/utils/sqlite-experimental-warning.js +144 -0
  465. package/dist/utils/sqlite-experimental-warning.js.map +1 -0
  466. package/dist/utils/url-redact.d.ts.map +1 -1
  467. package/dist/utils/url-redact.js +4 -6
  468. package/dist/utils/url-redact.js.map +1 -1
  469. package/dist/utils/user-context-scanner.d.ts +8 -0
  470. package/dist/utils/user-context-scanner.d.ts.map +1 -1
  471. package/dist/utils/user-context-scanner.js +4 -2
  472. package/dist/utils/user-context-scanner.js.map +1 -1
  473. package/dist/utils/validate-help-files.d.ts.map +1 -1
  474. package/dist/utils/validate-help-files.js +12 -6
  475. package/dist/utils/validate-help-files.js.map +1 -1
  476. package/dist/utils/vat-bin-path.d.ts +36 -0
  477. package/dist/utils/vat-bin-path.d.ts.map +1 -0
  478. package/dist/utils/vat-bin-path.js +48 -0
  479. package/dist/utils/vat-bin-path.js.map +1 -0
  480. package/dist/utils/verdict-helpers.d.ts +1 -1
  481. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  482. package/dist/utils/verdict-helpers.js +1 -1
  483. package/dist/utils/verdict-helpers.js.map +1 -1
  484. package/dist/version.d.ts.map +1 -1
  485. package/dist/version.js +1 -3
  486. package/dist/version.js.map +1 -1
  487. package/docs/agent.md +2 -2
  488. package/docs/audit.md +141 -37
  489. package/docs/doctor.md +7 -6
  490. package/docs/index.md +40 -12
  491. package/docs/mcp.md +2 -2
  492. package/docs/rag.md +3 -2
  493. package/docs/resources.md +13 -3
  494. package/docs/skill-test.md +10 -9
  495. package/docs/skills.md +53 -69
  496. package/package.json +38 -27
  497. package/schemas/ard-emit.json +149 -0
  498. package/schemas/okf-validate.json +170 -0
  499. package/schemas/resources-check.json +229 -0
  500. package/schemas/skill-review.json +230 -0
  501. package/dist/commands/resources/command-helpers.d.ts +0 -5
  502. package/dist/commands/resources/command-helpers.d.ts.map +0 -1
  503. package/dist/commands/resources/command-helpers.js +0 -6
  504. package/dist/commands/resources/command-helpers.js.map +0 -1
@@ -9,11 +9,245 @@
9
9
  * This is a thin presentation layer. No new validation logic lives here —
10
10
  * the automated portion is the same code path used by `vat skills validate`.
11
11
  */
12
+ import { type PackagingValidationResult } from '@vibe-agent-toolkit/agent-skills';
13
+ import { type Report, type ValidationIssue } from '@vibe-agent-toolkit/schema';
12
14
  import { Command } from 'commander';
15
+ import { z } from 'zod';
16
+ import { type ChecklistSection } from './review-checklist.js';
13
17
  export interface SkillReviewCommandOptions {
14
18
  yaml?: boolean;
19
+ /** Treat warnings as failing: end on `FINDINGS` when any warning is present. */
20
+ strict?: boolean;
15
21
  debug?: boolean;
16
22
  }
23
+ /** What the review reports beyond its findings. */
24
+ export declare const SkillReviewDataSchema: z.ZodObject<{
25
+ skill: z.ZodString;
26
+ /** The path the caller named. */
27
+ source: z.ZodString;
28
+ metadata: z.ZodObject<{
29
+ skillLines: z.ZodNumber;
30
+ totalLines: z.ZodNumber;
31
+ fileCount: z.ZodNumber;
32
+ directFileCount: z.ZodNumber;
33
+ maxLinkDepth: z.ZodNumber;
34
+ excludedReferenceCount: z.ZodNumber;
35
+ excludedReferences: z.ZodArray<z.ZodObject<{
36
+ path: z.ZodString;
37
+ reason: z.ZodString;
38
+ matchedPattern: z.ZodOptional<z.ZodString>;
39
+ }, "strict", z.ZodTypeAny, {
40
+ path: string;
41
+ reason: string;
42
+ matchedPattern?: string | undefined;
43
+ }, {
44
+ path: string;
45
+ reason: string;
46
+ matchedPattern?: string | undefined;
47
+ }>, "many">;
48
+ }, "strict", z.ZodTypeAny, {
49
+ skillLines: number;
50
+ totalLines: number;
51
+ fileCount: number;
52
+ directFileCount: number;
53
+ maxLinkDepth: number;
54
+ excludedReferenceCount: number;
55
+ excludedReferences: {
56
+ path: string;
57
+ reason: string;
58
+ matchedPattern?: string | undefined;
59
+ }[];
60
+ }, {
61
+ skillLines: number;
62
+ totalLines: number;
63
+ fileCount: number;
64
+ directFileCount: number;
65
+ maxLinkDepth: number;
66
+ excludedReferenceCount: number;
67
+ excludedReferences: {
68
+ path: string;
69
+ reason: string;
70
+ matchedPattern?: string | undefined;
71
+ }[];
72
+ }>;
73
+ /**
74
+ * Every checklist section, in rubric order — including the ones no finding
75
+ * landed in, because the manual items are the point of a review and a
76
+ * section with nothing automated still has to be walked through.
77
+ */
78
+ sections: z.ZodArray<z.ZodObject<{
79
+ section: z.ZodString;
80
+ /** Codes of the envelope's findings that belong to this section, in finding order. */
81
+ codes: z.ZodArray<z.ZodString, "many">;
82
+ /** The judgment-call items a reviewer completes for this section. */
83
+ manual: z.ZodArray<z.ZodString, "many">;
84
+ }, "strict", z.ZodTypeAny, {
85
+ codes: string[];
86
+ section: string;
87
+ manual: string[];
88
+ }, {
89
+ codes: string[];
90
+ section: string;
91
+ manual: string[];
92
+ }>, "many">;
93
+ }, "strict", z.ZodTypeAny, {
94
+ skill: string;
95
+ source: string;
96
+ metadata: {
97
+ skillLines: number;
98
+ totalLines: number;
99
+ fileCount: number;
100
+ directFileCount: number;
101
+ maxLinkDepth: number;
102
+ excludedReferenceCount: number;
103
+ excludedReferences: {
104
+ path: string;
105
+ reason: string;
106
+ matchedPattern?: string | undefined;
107
+ }[];
108
+ };
109
+ sections: {
110
+ codes: string[];
111
+ section: string;
112
+ manual: string[];
113
+ }[];
114
+ }, {
115
+ skill: string;
116
+ source: string;
117
+ metadata: {
118
+ skillLines: number;
119
+ totalLines: number;
120
+ fileCount: number;
121
+ directFileCount: number;
122
+ maxLinkDepth: number;
123
+ excludedReferenceCount: number;
124
+ excludedReferences: {
125
+ path: string;
126
+ reason: string;
127
+ matchedPattern?: string | undefined;
128
+ }[];
129
+ };
130
+ sections: {
131
+ codes: string[];
132
+ section: string;
133
+ manual: string[];
134
+ }[];
135
+ }>;
136
+ export type SkillReviewData = z.infer<typeof SkillReviewDataSchema>;
137
+ /** The document `--yaml` publishes. */
138
+ export declare const SKILL_REVIEW_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").ReportZodSchema<z.ZodObject<{
139
+ skill: z.ZodString;
140
+ /** The path the caller named. */
141
+ source: z.ZodString;
142
+ metadata: z.ZodObject<{
143
+ skillLines: z.ZodNumber;
144
+ totalLines: z.ZodNumber;
145
+ fileCount: z.ZodNumber;
146
+ directFileCount: z.ZodNumber;
147
+ maxLinkDepth: z.ZodNumber;
148
+ excludedReferenceCount: z.ZodNumber;
149
+ excludedReferences: z.ZodArray<z.ZodObject<{
150
+ path: z.ZodString;
151
+ reason: z.ZodString;
152
+ matchedPattern: z.ZodOptional<z.ZodString>;
153
+ }, "strict", z.ZodTypeAny, {
154
+ path: string;
155
+ reason: string;
156
+ matchedPattern?: string | undefined;
157
+ }, {
158
+ path: string;
159
+ reason: string;
160
+ matchedPattern?: string | undefined;
161
+ }>, "many">;
162
+ }, "strict", z.ZodTypeAny, {
163
+ skillLines: number;
164
+ totalLines: number;
165
+ fileCount: number;
166
+ directFileCount: number;
167
+ maxLinkDepth: number;
168
+ excludedReferenceCount: number;
169
+ excludedReferences: {
170
+ path: string;
171
+ reason: string;
172
+ matchedPattern?: string | undefined;
173
+ }[];
174
+ }, {
175
+ skillLines: number;
176
+ totalLines: number;
177
+ fileCount: number;
178
+ directFileCount: number;
179
+ maxLinkDepth: number;
180
+ excludedReferenceCount: number;
181
+ excludedReferences: {
182
+ path: string;
183
+ reason: string;
184
+ matchedPattern?: string | undefined;
185
+ }[];
186
+ }>;
187
+ /**
188
+ * Every checklist section, in rubric order — including the ones no finding
189
+ * landed in, because the manual items are the point of a review and a
190
+ * section with nothing automated still has to be walked through.
191
+ */
192
+ sections: z.ZodArray<z.ZodObject<{
193
+ section: z.ZodString;
194
+ /** Codes of the envelope's findings that belong to this section, in finding order. */
195
+ codes: z.ZodArray<z.ZodString, "many">;
196
+ /** The judgment-call items a reviewer completes for this section. */
197
+ manual: z.ZodArray<z.ZodString, "many">;
198
+ }, "strict", z.ZodTypeAny, {
199
+ codes: string[];
200
+ section: string;
201
+ manual: string[];
202
+ }, {
203
+ codes: string[];
204
+ section: string;
205
+ manual: string[];
206
+ }>, "many">;
207
+ }, "strict", z.ZodTypeAny, {
208
+ skill: string;
209
+ source: string;
210
+ metadata: {
211
+ skillLines: number;
212
+ totalLines: number;
213
+ fileCount: number;
214
+ directFileCount: number;
215
+ maxLinkDepth: number;
216
+ excludedReferenceCount: number;
217
+ excludedReferences: {
218
+ path: string;
219
+ reason: string;
220
+ matchedPattern?: string | undefined;
221
+ }[];
222
+ };
223
+ sections: {
224
+ codes: string[];
225
+ section: string;
226
+ manual: string[];
227
+ }[];
228
+ }, {
229
+ skill: string;
230
+ source: string;
231
+ metadata: {
232
+ skillLines: number;
233
+ totalLines: number;
234
+ fileCount: number;
235
+ directFileCount: number;
236
+ maxLinkDepth: number;
237
+ excludedReferenceCount: number;
238
+ excludedReferences: {
239
+ path: string;
240
+ reason: string;
241
+ matchedPattern?: string | undefined;
242
+ }[];
243
+ };
244
+ sections: {
245
+ codes: string[];
246
+ section: string;
247
+ manual: string[];
248
+ }[];
249
+ }>>;
250
+ export type SkillReviewReport = Report<SkillReviewData>;
17
251
  /**
18
252
  * Resolve the caller's argument to the absolute path of a skill markdown file.
19
253
  *
@@ -27,6 +261,19 @@ export interface SkillReviewCommandOptions {
27
261
  * the downstream packaging validator handles that.
28
262
  */
29
263
  export declare function resolveSkillPath(pathArg: string): string;
264
+ /**
265
+ * The machine-readable review, for `--yaml` (e.g. CI consumption).
266
+ *
267
+ * `examined` is 1: a review looks at ONE skill, and the denominator says so
268
+ * rather than leaving a reader to infer it from `skill`. Pure, so the shape is
269
+ * unit-testable without a validator run.
270
+ *
271
+ * @param result - The validator's result
272
+ * @param skillPath - The path the caller named
273
+ * @param grouped - The findings by checklist section
274
+ * @returns The report
275
+ */
276
+ export declare function buildReviewReport(result: PackagingValidationResult, skillPath: string, grouped: ReadonlyMap<ChecklistSection, readonly ValidationIssue[]>): SkillReviewReport;
30
277
  export declare function reviewCommand(pathArg: string | undefined, options: SkillReviewCommandOptions): Promise<void>;
31
278
  export declare function createSkillReviewCommand(): Command;
32
279
  //# sourceMappingURL=review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/commands/skill/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgCxD;AAyJD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CA+ClD"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/commands/skill/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAOL,KAAK,MAAM,EACX,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAWD,mDAAmD;AACnD,eAAO,MAAM,qBAAqB;;IAEhC,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAejC;;;;OAIG;;;QA5BH,sFAAsF;;QAEtF,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B5D,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,uCAAuC;AACvC,eAAO,MAAM,0BAA0B;;IA1BrC,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAejC;;;;OAIG;;;QA5BH,sFAAsF;;QAEtF,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCM,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BxD;AA4FD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,yBAAyB,EACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,CAAC,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC,GACjE,iBAAiB,CAwBnB;AAYD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAkDlD"}
@@ -11,19 +11,55 @@
11
11
  */
12
12
  import { existsSync, statSync } from 'node:fs';
13
13
  import { dirname } from 'node:path';
14
- import { calculateValidationStatus, countBySeverity, } from '@vibe-agent-toolkit/agent-schema';
15
14
  import { resolveAnchorRoot, validateSkillForPackaging, } from '@vibe-agent-toolkit/agent-skills';
15
+ import { buildReport, calculateValidationStatus, countBySeverity, exitCodeForSeverityCounts, reportSchema, toFindings, } from '@vibe-agent-toolkit/schema';
16
16
  import { safePath } from '@vibe-agent-toolkit/utils';
17
17
  import { Command } from 'commander';
18
- import * as yaml from 'yaml';
18
+ import { z } from 'zod';
19
19
  import { resolveProjectDeclaredEvalSuites, resolveSkillPackagingConfig } from '../../skill-resolution/packaging-config.js';
20
- import { handleCommandError } from '../../utils/command-error.js';
20
+ import { handleReportCommandError } from '../../utils/command-error.js';
21
21
  import { formatIssueAnchor } from '../../utils/issue-anchor.js';
22
22
  import { createLogger } from '../../utils/logger.js';
23
+ import { writeYamlOutput } from '../../utils/output.js';
23
24
  import { projectRootOrNull } from '../../utils/project-root-policy.js';
24
25
  import { renderSkillQualityFooter } from '../../utils/skill-quality-footer.js';
25
26
  import { applyConfigVerdicts } from '../../utils/verdict-helpers.js';
26
27
  import { CHECKLIST_SECTIONS, MANUAL_CHECKLIST_ITEMS, sectionForCode, } from './review-checklist.js';
28
+ /** One checklist section: which automated findings landed in it, and what a reviewer walks through by hand. */
29
+ const ReviewSectionSchema = z.object({
30
+ section: z.string(),
31
+ /** Codes of the envelope's findings that belong to this section, in finding order. */
32
+ codes: z.array(z.string()),
33
+ /** The judgment-call items a reviewer completes for this section. */
34
+ manual: z.array(z.string()),
35
+ }).strict();
36
+ /** What the review reports beyond its findings. */
37
+ export const SkillReviewDataSchema = z.object({
38
+ skill: z.string(),
39
+ /** The path the caller named. */
40
+ source: z.string(),
41
+ metadata: z.object({
42
+ skillLines: z.number().int().nonnegative(),
43
+ totalLines: z.number().int().nonnegative(),
44
+ fileCount: z.number().int().nonnegative(),
45
+ directFileCount: z.number().int().nonnegative(),
46
+ maxLinkDepth: z.number().int().nonnegative(),
47
+ excludedReferenceCount: z.number().int().nonnegative(),
48
+ excludedReferences: z.array(z.object({
49
+ path: z.string(),
50
+ reason: z.string(),
51
+ matchedPattern: z.string().optional(),
52
+ }).strict()),
53
+ }).strict(),
54
+ /**
55
+ * Every checklist section, in rubric order — including the ones no finding
56
+ * landed in, because the manual items are the point of a review and a
57
+ * section with nothing automated still has to be walked through.
58
+ */
59
+ sections: z.array(ReviewSectionSchema),
60
+ }).strict();
61
+ /** The document `--yaml` publishes. */
62
+ export const SKILL_REVIEW_REPORT_SCHEMA = reportSchema(SkillReviewDataSchema);
27
63
  /**
28
64
  * Resolve the caller's argument to the absolute path of a skill markdown file.
29
65
  *
@@ -38,11 +74,9 @@ import { CHECKLIST_SECTIONS, MANUAL_CHECKLIST_ITEMS, sectionForCode, } from './r
38
74
  */
39
75
  export function resolveSkillPath(pathArg) {
40
76
  const absolute = safePath.resolve(pathArg);
41
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- user-supplied path
42
77
  if (!existsSync(absolute)) {
43
78
  throw new Error(`Path does not exist: ${pathArg}`);
44
79
  }
45
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- user-supplied path
46
80
  const stat = statSync(absolute);
47
81
  if (stat.isFile()) {
48
82
  if (!absolute.endsWith('.md')) {
@@ -52,7 +86,6 @@ export function resolveSkillPath(pathArg) {
52
86
  }
53
87
  if (stat.isDirectory()) {
54
88
  const candidate = safePath.join(absolute, 'SKILL.md');
55
- // eslint-disable-next-line security/detect-non-literal-fs-filename -- candidate constructed from validated dir
56
89
  if (!existsSync(candidate)) {
57
90
  throw new Error(`No SKILL.md found in directory: ${pathArg}. Point at the skill directory (containing SKILL.md) or the SKILL.md file directly.`);
58
91
  }
@@ -82,10 +115,10 @@ function groupIssuesBySection(issues) {
82
115
  }
83
116
  /**
84
117
  * Render the human-readable review report to stderr (logger). Structured
85
- * output goes to stdout via {@link outputYaml}.
118
+ * output goes to stdout via {@link buildReviewReport}.
86
119
  */
87
120
  function renderHumanReport(result, skillPath, grouped, logger) {
88
- // One collapse, from agent-schema: `allErrors` carries info issues despite the
121
+ // One collapse, from schema: `allErrors` carries info issues despite the
89
122
  // name, and there is no `activeInfo` bucket to read them from.
90
123
  const counts = countBySeverity(result.allErrors);
91
124
  logger.info('');
@@ -134,48 +167,41 @@ function renderIssue(issue, logger) {
134
167
  }
135
168
  }
136
169
  /**
137
- * Emit a machine-readable review payload to stdout as YAML. Used by --yaml
138
- * (e.g. CI consumption).
170
+ * The machine-readable review, for `--yaml` (e.g. CI consumption).
171
+ *
172
+ * `examined` is 1: a review looks at ONE skill, and the denominator says so
173
+ * rather than leaving a reader to infer it from `skill`. Pure, so the shape is
174
+ * unit-testable without a validator run.
175
+ *
176
+ * @param result - The validator's result
177
+ * @param skillPath - The path the caller named
178
+ * @param grouped - The findings by checklist section
179
+ * @returns The report
139
180
  */
140
- function outputYaml(result, skillPath, grouped) {
141
- const automated = {};
142
- for (const section of CHECKLIST_SECTIONS) {
143
- const issues = grouped.get(section) ?? [];
144
- if (issues.length === 0)
145
- continue;
146
- automated[section] = issues.map(i => ({
147
- code: i.code,
148
- severity: i.severity,
149
- message: i.message,
150
- ...(i.location === undefined ? {} : { location: i.location }),
151
- ...(i.line === undefined ? {} : { line: i.line }),
152
- ...(i.field === undefined ? {} : { field: i.field }),
153
- ...(i.fix === undefined ? {} : { fix: i.fix }),
154
- }));
155
- }
156
- const manual = {};
157
- for (const section of CHECKLIST_SECTIONS) {
158
- const items = MANUAL_CHECKLIST_ITEMS[section];
159
- if (items.length > 0) {
160
- manual[section] = items;
161
- }
162
- }
163
- const payload = {
164
- skill: result.skillName,
165
- source: skillPath,
166
- // NOT `result.status`: that is the packaging GATE verdict, two-valued by
167
- // design, so a review holding only warnings published `status: success`
168
- // while the very same run exited 1. Review treats a warning as a finding
169
- // you must look at (that is its documented exit-code contract), so the
170
- // status channel has to be able to say so.
171
- status: calculateValidationStatus(result.allErrors),
172
- issueCounts: countBySeverity(result.allErrors),
173
- metadata: result.metadata,
174
- automated,
175
- manual,
176
- };
177
- process.stdout.write('---\n');
178
- process.stdout.write(yaml.stringify(payload, { indent: 2, lineWidth: 120, aliasDuplicateObjects: false }));
181
+ export function buildReviewReport(result, skillPath, grouped) {
182
+ const findings = CHECKLIST_SECTIONS.flatMap((section) => toFindings(grouped.get(section) ?? []));
183
+ const sections = CHECKLIST_SECTIONS.map((section) => ({
184
+ section,
185
+ codes: toFindings(grouped.get(section) ?? []).map((issue) => issue.code),
186
+ manual: [...MANUAL_CHECKLIST_ITEMS[section]],
187
+ }));
188
+ return buildReport({
189
+ examined: 1,
190
+ findings,
191
+ data: {
192
+ skill: result.skillName,
193
+ source: skillPath,
194
+ metadata: {
195
+ ...result.metadata,
196
+ excludedReferences: result.metadata.excludedReferences.map((detail) => ({
197
+ path: detail.path,
198
+ reason: detail.reason,
199
+ ...(detail.matchedPattern === undefined ? {} : { matchedPattern: detail.matchedPattern }),
200
+ })),
201
+ },
202
+ sections,
203
+ },
204
+ });
179
205
  }
180
206
  /** Footer: share the checklist link when any skill-level finding fires. */
181
207
  function renderFooter(result, logger) {
@@ -200,11 +226,18 @@ export async function reviewCommand(pathArg, options) {
200
226
  projectRootOrNull(process.cwd());
201
227
  const skillPath = resolveSkillPath(pathArg);
202
228
  logger.debug(`Reviewing SKILL.md at: ${skillPath}`);
203
- const packagingConfig = (await resolveSkillPackagingConfig(skillPath)) ?? undefined;
229
+ // `'refuse'` on both: a review that cannot tell whether this skill is
230
+ // declared, or which suites are the project's, would report against the
231
+ // wrong rules at exit 0. The throw lands in the catch below →
232
+ // `handleReportCommandError`, exit 2.
233
+ const packagingConfig = (await resolveSkillPackagingConfig(skillPath, 'refuse')) ?? undefined;
204
234
  // Project-wide test input: a review of skill A must not count skill B's eval
205
235
  // suite as content A ships. Memoized per config root; `[]` in wild mode.
206
236
  const result = await validateSkillForPackaging(skillPath, packagingConfig, 'source', {
207
- projectSkills: await resolveProjectDeclaredEvalSuites(skillPath),
237
+ projectSkills: await resolveProjectDeclaredEvalSuites(skillPath, 'refuse'),
238
+ // Same ruling as the discovery above: a review is acted on whole, so a
239
+ // directory the registry crawl cannot list refuses it by name.
240
+ unreadable: 'refuse',
208
241
  });
209
242
  // The anchor root for a single-skill review is the skill's own project
210
243
  // boundary — the same base the packaging validator anchored its issues
@@ -212,19 +245,20 @@ export async function reviewCommand(pathArg, options) {
212
245
  applyConfigVerdicts(result, packagingConfig?.targets, skillPath, resolveAnchorRoot(undefined, dirname(skillPath)));
213
246
  const grouped = groupIssuesBySection(result.allErrors);
214
247
  if (options.yaml) {
215
- outputYaml(result, skillPath, grouped);
248
+ writeYamlOutput({ ...buildReviewReport(result, skillPath, grouped), durationMs: Date.now() - startTime });
216
249
  }
217
250
  else {
218
251
  renderHumanReport(result, skillPath, grouped, logger);
219
252
  }
220
253
  renderFooter(result, logger);
221
254
  // Same counts the status channel is derived from, so the two agree by
222
- // construction: exit 1 ⟺ status is `warning` or `error`.
223
- const counts = countBySeverity(result.allErrors);
224
- process.exit(counts.errors > 0 || counts.warnings > 0 ? 1 : 0);
255
+ // construction. Errors fail; warnings fail only under `--strict` — this
256
+ // used to exit 1 on a warning while every sibling exited 1 on errors only,
257
+ // so the one verb meant for a human's review was the strictest gate.
258
+ process.exit(exitCodeForSeverityCounts(countBySeverity(result.allErrors), { strict: options.strict === true }));
225
259
  }
226
260
  catch (error) {
227
- handleCommandError(error, logger, startTime, 'SkillReview');
261
+ handleReportCommandError(error, logger, startTime, 'SkillReview');
228
262
  }
229
263
  }
230
264
  export function createSkillReviewCommand() {
@@ -233,6 +267,7 @@ export function createSkillReviewCommand() {
233
267
  .description('Deep-review a single skill: automated findings plus a manual rubric walkthrough')
234
268
  .argument('<path>', 'Path to a SKILL.md file, a single-file skill (.md), or a skill directory containing SKILL.md')
235
269
  .option('--yaml', 'Emit machine-readable YAML on stdout (for CI consumption)')
270
+ .option('--strict', 'Exit 1 on warnings as well as errors')
236
271
  .option('--debug', 'Enable debug logging')
237
272
  .action(reviewCommand)
238
273
  .addHelpText('after', `
@@ -249,14 +284,16 @@ Description:
249
284
  Output:
250
285
  Default: human-readable report to stderr (automated findings grouped by
251
286
  checklist section, then the manual walkthrough).
252
- --yaml: structured YAML to stdout with automated + manual sections, plus
253
- status (success | warning | error) and issueCounts
254
- {errors, warnings, info}. The status agrees with the exit code by
255
- construction: exit 1 iff status is 'warning' or 'error'.
287
+ --yaml: the report envelope as YAML on stdout — status (ok | findings),
288
+ examined (always 1), findings, summary {errors, warnings, info},
289
+ and data.sections: every checklist section with the codes of
290
+ the findings that landed in it and its manual items. The exit
291
+ code is derived from the same summary: exit 1 iff
292
+ summary.errors + summary.warnings > 0.
256
293
 
257
294
  Exit Codes:
258
- 0 - No errors and no warnings emitted (an info-only review is 'success')
259
- 1 - At least one error or warning present (errors and warnings treated equally — this is a review, not a gate)
295
+ 0 - No error-severity finding (warnings and info are in the report; --strict promotes warnings)
296
+ 1 - At least one error present, or any warning under --strict
260
297
  2 - System error (path missing, internal failure)
261
298
 
262
299
  Requirements:
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/commands/skill/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/commands/skill/review.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Orchestration only. Domain logic lives in upsertTestConfig (agent-skills).
6
6
  * Mirrors review.ts error-handling conventions (handleCommandError / projectRootOrNull).
7
7
  */
8
+ import { upsertTestConfig } from '@vibe-agent-toolkit/agent-skills';
8
9
  import { Command } from 'commander';
9
10
  export interface SkillTestConfigureOptions {
10
11
  auth?: string;
@@ -13,10 +14,65 @@ export interface SkillTestConfigureOptions {
13
14
  timeout?: string;
14
15
  stall?: string;
15
16
  model?: string;
17
+ /**
18
+ * Tri-state, like `run`'s: `true` from `--baseline`, `false` from
19
+ * `--no-baseline`, `undefined` when neither was typed — and only `undefined`
20
+ * leaves an existing `baseline:` in the config alone. Commander gives this shape
21
+ * only because `--baseline` is declared BEFORE `--no-baseline`; declaring the
22
+ * negation first would default it to `true` and make every `configure` call
23
+ * silently commit a baseline.
24
+ */
16
25
  baseline?: boolean;
17
26
  evals?: string;
18
27
  print?: boolean;
19
28
  debug?: boolean;
20
29
  }
30
+ /**
31
+ * Assemble the knob patch handed to `upsertTestConfig`. Exported for testing: the
32
+ * option DECLARATIONS were pinned (Commander's `--baseline`/`--no-baseline`
33
+ * tri-state) and `upsertTestConfig` writes `false` correctly, but the assembly
34
+ * between them — the step that decides which typed flags become knobs at all — was
35
+ * not, so both `if (options.baseline === true)` (a `--no-baseline` that silently
36
+ * does nothing, i.e. the exact regression `--no-baseline` exists to prevent) and
37
+ * deleting the branch outright left the whole CLI suite green.
38
+ */
39
+ export declare function buildKnobs(options: SkillTestConfigureOptions): Parameters<typeof upsertTestConfig>[2];
40
+ /**
41
+ * Read the config at `configPath`, apply `knobs` to `skillName`'s test block, and
42
+ * hand back the YAML to write — refusing only what VAT would otherwise MISREAD.
43
+ *
44
+ * Exported and separated from the command because the command's own shape made
45
+ * both of this lane's defects untestable: the read and the schema check were
46
+ * inlined between a `process.cwd()` walk-up and a `writeFileSync`, so reaching
47
+ * them from a test meant `process.chdir`, which the Unix unit pool (threads)
48
+ * cannot do at all. Two defects therefore shipped with a green suite.
49
+ *
50
+ * 🔑 **The schema check goes through the SHARED reader**, not
51
+ * `ProjectConfigSchema.safeParse`. This was the THIRD config reader in the
52
+ * toolkit and the only one still carrying both defects the other two had fixed:
53
+ *
54
+ * - An unrecognized key was a hard refusal. `vat skill test configure my-skill
55
+ * --max-turns 20` exited 1 on a config carrying `resources.metadata` — a
56
+ * section this command never reads — refusing to write a change that had
57
+ * nothing to do with it. Unknown keys are a warning now; see
58
+ * {@link parseConfigAllowingUnknownKeys} for why.
59
+ * - The message was `validation.error.message`, which in Zod 3 is a **JSON dump
60
+ * of the issue array**: no file named, no key named in words, no remedy.
61
+ *
62
+ * 🔑 **The read goes through `readTextContent`**, never `readFileSync(path,
63
+ * 'utf-8')`. This is a read-modify-WRITE path, so a UTF-16LE or BOM-prefixed
64
+ * config (what PowerShell 5.1 writes by default) was decoded as mojibake and then
65
+ * serialized back over the original — destroying a config whose only fault was
66
+ * its encoding.
67
+ *
68
+ * @param configPath - Absolute path to `vibe-agent-toolkit.config.yaml`
69
+ * @param skillName - The key under `skills.config` to upsert
70
+ * @param knobs - The knobs the operator typed; only these are changed
71
+ * @param onWarn - Receives the unknown-key warning, if any
72
+ * @returns The updated YAML, comments and key ordering preserved
73
+ * @throws Error when the UPDATED config would fail validation for any reason
74
+ * other than an unknown key
75
+ */
76
+ export declare function updateSkillTestConfig(configPath: string, skillName: string, knobs: Parameters<typeof upsertTestConfig>[2], onWarn: (message: string) => void): Promise<string>;
21
77
  export declare function createSkillTestConfigureCommand(): Command;
22
78
  //# sourceMappingURL=configure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../../../src/commands/skill/test/configure.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAiGD,wBAAgB,+BAA+B,IAAI,OAAO,CAsCzD"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../../../src/commands/skill/test/configure.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,yBAAyB,GACjC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CA8BxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAChC,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAqCD,wBAAgB,+BAA+B,IAAI,OAAO,CAkDzD"}