@vibe-agent-toolkit/cli 0.2.0-rc.11 → 0.2.0-rc.12

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 (755) hide show
  1. package/README.md +3 -3
  2. package/dist/bin/supervise-cli.d.ts +45 -0
  3. package/dist/bin/supervise-cli.d.ts.map +1 -0
  4. package/dist/bin/supervise-cli.js +83 -0
  5. package/dist/bin/supervise-cli.js.map +1 -0
  6. package/dist/bin/vat +95 -43
  7. package/dist/bin/vat.d.ts +15 -4
  8. package/dist/bin/vat.d.ts.map +1 -1
  9. package/dist/bin/vat.js +95 -43
  10. package/dist/bin/vat.js.map +1 -1
  11. package/dist/bin.js +21 -29
  12. package/dist/bin.js.map +1 -1
  13. package/dist/command-tree.d.ts +45 -0
  14. package/dist/command-tree.d.ts.map +1 -0
  15. package/dist/command-tree.js +60 -0
  16. package/dist/command-tree.js.map +1 -0
  17. package/dist/commands/agent/build-schema.d.ts +100 -0
  18. package/dist/commands/agent/build-schema.d.ts.map +1 -0
  19. package/dist/commands/agent/build-schema.js +32 -0
  20. package/dist/commands/agent/build-schema.js.map +1 -0
  21. package/dist/commands/agent/build.d.ts +1 -0
  22. package/dist/commands/agent/build.d.ts.map +1 -1
  23. package/dist/commands/agent/build.js +63 -33
  24. package/dist/commands/agent/build.js.map +1 -1
  25. package/dist/commands/agent/import-schema.d.ts +75 -0
  26. package/dist/commands/agent/import-schema.d.ts.map +1 -0
  27. package/dist/commands/agent/import-schema.js +25 -0
  28. package/dist/commands/agent/import-schema.js.map +1 -0
  29. package/dist/commands/agent/import.d.ts.map +1 -1
  30. package/dist/commands/agent/import.js +33 -27
  31. package/dist/commands/agent/import.js.map +1 -1
  32. package/dist/commands/agent/index.d.ts.map +1 -1
  33. package/dist/commands/agent/index.js +132 -37
  34. package/dist/commands/agent/index.js.map +1 -1
  35. package/dist/commands/agent/install-path.d.ts.map +1 -1
  36. package/dist/commands/agent/install-path.js +2 -1
  37. package/dist/commands/agent/install-path.js.map +1 -1
  38. package/dist/commands/agent/install-schema.d.ts +89 -0
  39. package/dist/commands/agent/install-schema.d.ts.map +1 -0
  40. package/dist/commands/agent/install-schema.js +29 -0
  41. package/dist/commands/agent/install-schema.js.map +1 -0
  42. package/dist/commands/agent/install.d.ts +7 -1
  43. package/dist/commands/agent/install.d.ts.map +1 -1
  44. package/dist/commands/agent/install.js +78 -108
  45. package/dist/commands/agent/install.js.map +1 -1
  46. package/dist/commands/agent/installed-schema.d.ts +140 -0
  47. package/dist/commands/agent/installed-schema.d.ts.map +1 -0
  48. package/dist/commands/agent/installed-schema.js +36 -0
  49. package/dist/commands/agent/installed-schema.js.map +1 -0
  50. package/dist/commands/agent/installed.d.ts +1 -1
  51. package/dist/commands/agent/installed.d.ts.map +1 -1
  52. package/dist/commands/agent/installed.js +104 -75
  53. package/dist/commands/agent/installed.js.map +1 -1
  54. package/dist/commands/agent/list-schema.d.ts +128 -0
  55. package/dist/commands/agent/list-schema.d.ts.map +1 -0
  56. package/dist/commands/agent/list-schema.js +34 -0
  57. package/dist/commands/agent/list-schema.js.map +1 -0
  58. package/dist/commands/agent/list.d.ts +4 -3
  59. package/dist/commands/agent/list.d.ts.map +1 -1
  60. package/dist/commands/agent/list.js +50 -37
  61. package/dist/commands/agent/list.js.map +1 -1
  62. package/dist/commands/agent/run.d.ts +3 -0
  63. package/dist/commands/agent/run.d.ts.map +1 -1
  64. package/dist/commands/agent/run.js +8 -3
  65. package/dist/commands/agent/run.js.map +1 -1
  66. package/dist/commands/agent/uninstall-schema.d.ts +89 -0
  67. package/dist/commands/agent/uninstall-schema.d.ts.map +1 -0
  68. package/dist/commands/agent/uninstall-schema.js +29 -0
  69. package/dist/commands/agent/uninstall-schema.js.map +1 -0
  70. package/dist/commands/agent/uninstall.d.ts +5 -1
  71. package/dist/commands/agent/uninstall.d.ts.map +1 -1
  72. package/dist/commands/agent/uninstall.js +50 -38
  73. package/dist/commands/agent/uninstall.js.map +1 -1
  74. package/dist/commands/agent/validate-schema.d.ts +129 -0
  75. package/dist/commands/agent/validate-schema.d.ts.map +1 -0
  76. package/dist/commands/agent/validate-schema.js +35 -0
  77. package/dist/commands/agent/validate-schema.js.map +1 -0
  78. package/dist/commands/agent/validate.d.ts +6 -0
  79. package/dist/commands/agent/validate.d.ts.map +1 -1
  80. package/dist/commands/agent/validate.js +64 -36
  81. package/dist/commands/agent/validate.js.map +1 -1
  82. package/dist/commands/ard/emit-schema.d.ts +108 -0
  83. package/dist/commands/ard/emit-schema.d.ts.map +1 -0
  84. package/dist/commands/ard/emit-schema.js +37 -0
  85. package/dist/commands/ard/emit-schema.js.map +1 -0
  86. package/dist/commands/ard/emit.d.ts +21 -65
  87. package/dist/commands/ard/emit.d.ts.map +1 -1
  88. package/dist/commands/ard/emit.js +68 -74
  89. package/dist/commands/ard/emit.js.map +1 -1
  90. package/dist/commands/ard/index.d.ts.map +1 -1
  91. package/dist/commands/ard/index.js +14 -11
  92. package/dist/commands/ard/index.js.map +1 -1
  93. package/dist/commands/audit/compat-lane-findings.d.ts +65 -0
  94. package/dist/commands/audit/compat-lane-findings.d.ts.map +1 -0
  95. package/dist/commands/audit/compat-lane-findings.js +72 -0
  96. package/dist/commands/audit/compat-lane-findings.js.map +1 -0
  97. package/dist/commands/audit/distributed-tree.d.ts +2 -2
  98. package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
  99. package/dist/commands/audit/distributed-tree.js +23 -12
  100. package/dist/commands/audit/distributed-tree.js.map +1 -1
  101. package/dist/commands/audit/git-url-clone.d.ts +15 -7
  102. package/dist/commands/audit/git-url-clone.d.ts.map +1 -1
  103. package/dist/commands/audit/git-url-clone.js +85 -42
  104. package/dist/commands/audit/git-url-clone.js.map +1 -1
  105. package/dist/commands/audit/hierarchical-output.d.ts +28 -4
  106. package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
  107. package/dist/commands/audit/hierarchical-output.js +44 -27
  108. package/dist/commands/audit/hierarchical-output.js.map +1 -1
  109. package/dist/commands/audit/scan-population.d.ts.map +1 -1
  110. package/dist/commands/audit/scan-population.js +2 -1
  111. package/dist/commands/audit/scan-population.js.map +1 -1
  112. package/dist/commands/audit-schema.d.ts +1247 -0
  113. package/dist/commands/audit-schema.d.ts.map +1 -0
  114. package/dist/commands/audit-schema.js +139 -0
  115. package/dist/commands/audit-schema.js.map +1 -0
  116. package/dist/commands/audit-settings-schema.d.ts +417 -0
  117. package/dist/commands/audit-settings-schema.d.ts.map +1 -0
  118. package/dist/commands/audit-settings-schema.js +77 -0
  119. package/dist/commands/audit-settings-schema.js.map +1 -0
  120. package/dist/commands/audit-settings.d.ts +28 -9
  121. package/dist/commands/audit-settings.d.ts.map +1 -1
  122. package/dist/commands/audit-settings.js +215 -151
  123. package/dist/commands/audit-settings.js.map +1 -1
  124. package/dist/commands/audit.d.ts +72 -33
  125. package/dist/commands/audit.d.ts.map +1 -1
  126. package/dist/commands/audit.js +405 -411
  127. package/dist/commands/audit.js.map +1 -1
  128. package/dist/commands/build.d.ts +61 -4
  129. package/dist/commands/build.d.ts.map +1 -1
  130. package/dist/commands/build.js +176 -190
  131. package/dist/commands/build.js.map +1 -1
  132. package/dist/commands/cache/clear-schema.d.ts +111 -0
  133. package/dist/commands/cache/clear-schema.d.ts.map +1 -0
  134. package/dist/commands/cache/clear-schema.js +37 -0
  135. package/dist/commands/cache/clear-schema.js.map +1 -0
  136. package/dist/commands/cache/clear.d.ts +28 -26
  137. package/dist/commands/cache/clear.d.ts.map +1 -1
  138. package/dist/commands/cache/clear.js +108 -103
  139. package/dist/commands/cache/clear.js.map +1 -1
  140. package/dist/commands/cache/index.d.ts.map +1 -1
  141. package/dist/commands/cache/index.js +13 -7
  142. package/dist/commands/cache/index.js.map +1 -1
  143. package/dist/commands/claude/claude-config.d.ts +23 -6
  144. package/dist/commands/claude/claude-config.d.ts.map +1 -1
  145. package/dist/commands/claude/claude-config.js +29 -15
  146. package/dist/commands/claude/claude-config.js.map +1 -1
  147. package/dist/commands/claude/context.d.ts +55 -2
  148. package/dist/commands/claude/context.d.ts.map +1 -1
  149. package/dist/commands/claude/context.js +74 -50
  150. package/dist/commands/claude/context.js.map +1 -1
  151. package/dist/commands/claude/marketplace/changelog-utils.js +2 -2
  152. package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
  153. package/dist/commands/claude/marketplace/git-publish.d.ts +14 -1
  154. package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
  155. package/dist/commands/claude/marketplace/git-publish.js +135 -68
  156. package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
  157. package/dist/commands/claude/marketplace/license-utils.d.ts +3 -5
  158. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  159. package/dist/commands/claude/marketplace/license-utils.js +16 -7
  160. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  161. package/dist/commands/claude/marketplace/publish-schema.d.ts +137 -0
  162. package/dist/commands/claude/marketplace/publish-schema.d.ts.map +1 -0
  163. package/dist/commands/claude/marketplace/publish-schema.js +32 -0
  164. package/dist/commands/claude/marketplace/publish-schema.js.map +1 -0
  165. package/dist/commands/claude/marketplace/publish-tree.d.ts +6 -0
  166. package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
  167. package/dist/commands/claude/marketplace/publish-tree.js +75 -17
  168. package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
  169. package/dist/commands/claude/marketplace/publish.d.ts +27 -0
  170. package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
  171. package/dist/commands/claude/marketplace/publish.js +84 -50
  172. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  173. package/dist/commands/claude/marketplace/validate-schema.d.ts +362 -0
  174. package/dist/commands/claude/marketplace/validate-schema.d.ts.map +1 -0
  175. package/dist/commands/claude/marketplace/validate-schema.js +67 -0
  176. package/dist/commands/claude/marketplace/validate-schema.js.map +1 -0
  177. package/dist/commands/claude/marketplace/validate.d.ts +40 -53
  178. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  179. package/dist/commands/claude/marketplace/validate.js +358 -214
  180. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  181. package/dist/commands/claude/org/api-keys.d.ts +3 -0
  182. package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
  183. package/dist/commands/claude/org/api-keys.js +4 -5
  184. package/dist/commands/claude/org/api-keys.js.map +1 -1
  185. package/dist/commands/claude/org/code-analytics.js +1 -1
  186. package/dist/commands/claude/org/code-analytics.js.map +1 -1
  187. package/dist/commands/claude/org/cost.d.ts.map +1 -1
  188. package/dist/commands/claude/org/cost.js +11 -33
  189. package/dist/commands/claude/org/cost.js.map +1 -1
  190. package/dist/commands/claude/org/helpers.d.ts +40 -27
  191. package/dist/commands/claude/org/helpers.d.ts.map +1 -1
  192. package/dist/commands/claude/org/helpers.js +61 -66
  193. package/dist/commands/claude/org/helpers.js.map +1 -1
  194. package/dist/commands/claude/org/index.d.ts.map +1 -1
  195. package/dist/commands/claude/org/index.js +10 -4
  196. package/dist/commands/claude/org/index.js.map +1 -1
  197. package/dist/commands/claude/org/info.d.ts.map +1 -1
  198. package/dist/commands/claude/org/info.js +2 -3
  199. package/dist/commands/claude/org/info.js.map +1 -1
  200. package/dist/commands/claude/org/invites.d.ts +3 -0
  201. package/dist/commands/claude/org/invites.d.ts.map +1 -1
  202. package/dist/commands/claude/org/invites.js +5 -7
  203. package/dist/commands/claude/org/invites.js.map +1 -1
  204. package/dist/commands/claude/org/skills.d.ts +76 -21
  205. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  206. package/dist/commands/claude/org/skills.js +273 -246
  207. package/dist/commands/claude/org/skills.js.map +1 -1
  208. package/dist/commands/claude/org/stubs-schema.d.ts +56 -0
  209. package/dist/commands/claude/org/stubs-schema.d.ts.map +1 -0
  210. package/dist/commands/claude/org/stubs-schema.js +23 -0
  211. package/dist/commands/claude/org/stubs-schema.js.map +1 -0
  212. package/dist/commands/claude/org/stubs.d.ts +8 -3
  213. package/dist/commands/claude/org/stubs.d.ts.map +1 -1
  214. package/dist/commands/claude/org/stubs.js +9 -9
  215. package/dist/commands/claude/org/stubs.js.map +1 -1
  216. package/dist/commands/claude/org/usage.d.ts.map +1 -1
  217. package/dist/commands/claude/org/usage.js +1 -2
  218. package/dist/commands/claude/org/usage.js.map +1 -1
  219. package/dist/commands/claude/org/users.d.ts +3 -0
  220. package/dist/commands/claude/org/users.d.ts.map +1 -1
  221. package/dist/commands/claude/org/users.js +6 -8
  222. package/dist/commands/claude/org/users.js.map +1 -1
  223. package/dist/commands/claude/org/workspaces.d.ts +3 -0
  224. package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
  225. package/dist/commands/claude/org/workspaces.js +10 -15
  226. package/dist/commands/claude/org/workspaces.js.map +1 -1
  227. package/dist/commands/claude/plugin/build-schema.d.ts +642 -0
  228. package/dist/commands/claude/plugin/build-schema.d.ts.map +1 -0
  229. package/dist/commands/claude/plugin/build-schema.js +51 -0
  230. package/dist/commands/claude/plugin/build-schema.js.map +1 -0
  231. package/dist/commands/claude/plugin/build.d.ts +220 -45
  232. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  233. package/dist/commands/claude/plugin/build.js +466 -249
  234. package/dist/commands/claude/plugin/build.js.map +1 -1
  235. package/dist/commands/claude/plugin/helpers.d.ts +186 -24
  236. package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
  237. package/dist/commands/claude/plugin/helpers.js +110 -68
  238. package/dist/commands/claude/plugin/helpers.js.map +1 -1
  239. package/dist/commands/claude/plugin/install-schema.d.ts +144 -0
  240. package/dist/commands/claude/plugin/install-schema.d.ts.map +1 -0
  241. package/dist/commands/claude/plugin/install-schema.js +36 -0
  242. package/dist/commands/claude/plugin/install-schema.js.map +1 -0
  243. package/dist/commands/claude/plugin/install.d.ts +191 -11
  244. package/dist/commands/claude/plugin/install.d.ts.map +1 -1
  245. package/dist/commands/claude/plugin/install.js +688 -628
  246. package/dist/commands/claude/plugin/install.js.map +1 -1
  247. package/dist/commands/claude/plugin/kept-findings.d.ts +19 -0
  248. package/dist/commands/claude/plugin/kept-findings.d.ts.map +1 -0
  249. package/dist/commands/claude/plugin/kept-findings.js +24 -0
  250. package/dist/commands/claude/plugin/kept-findings.js.map +1 -0
  251. package/dist/commands/claude/plugin/list-schema.d.ts +223 -0
  252. package/dist/commands/claude/plugin/list-schema.d.ts.map +1 -0
  253. package/dist/commands/claude/plugin/list-schema.js +34 -0
  254. package/dist/commands/claude/plugin/list-schema.js.map +1 -0
  255. package/dist/commands/claude/plugin/list.d.ts +18 -0
  256. package/dist/commands/claude/plugin/list.d.ts.map +1 -1
  257. package/dist/commands/claude/plugin/list.js +53 -45
  258. package/dist/commands/claude/plugin/list.js.map +1 -1
  259. package/dist/commands/claude/plugin/npm-pack.d.ts +15 -0
  260. package/dist/commands/claude/plugin/npm-pack.d.ts.map +1 -0
  261. package/dist/commands/claude/plugin/npm-pack.js +39 -0
  262. package/dist/commands/claude/plugin/npm-pack.js.map +1 -0
  263. package/dist/commands/claude/plugin/plugin-changelog.d.ts +5 -1
  264. package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
  265. package/dist/commands/claude/plugin/plugin-changelog.js +9 -5
  266. package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
  267. package/dist/commands/claude/plugin/plugin-files.d.ts +21 -2
  268. package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
  269. package/dist/commands/claude/plugin/plugin-files.js +65 -32
  270. package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
  271. package/dist/commands/claude/plugin/plugin-validators.d.ts +13 -0
  272. package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
  273. package/dist/commands/claude/plugin/plugin-validators.js +64 -16
  274. package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
  275. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  276. package/dist/commands/claude/plugin/tree-copy.js +63 -37
  277. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  278. package/dist/commands/claude/plugin/uninstall-schema.d.ts +112 -0
  279. package/dist/commands/claude/plugin/uninstall-schema.d.ts.map +1 -0
  280. package/dist/commands/claude/plugin/uninstall-schema.js +28 -0
  281. package/dist/commands/claude/plugin/uninstall-schema.js.map +1 -0
  282. package/dist/commands/claude/plugin/uninstall.d.ts +57 -0
  283. package/dist/commands/claude/plugin/uninstall.d.ts.map +1 -1
  284. package/dist/commands/claude/plugin/uninstall.js +176 -64
  285. package/dist/commands/claude/plugin/uninstall.js.map +1 -1
  286. package/dist/commands/consistency-check.d.ts.map +1 -1
  287. package/dist/commands/consistency-check.js +8 -6
  288. package/dist/commands/consistency-check.js.map +1 -1
  289. package/dist/commands/corpus/index.d.ts.map +1 -1
  290. package/dist/commands/corpus/index.js +26 -10
  291. package/dist/commands/corpus/index.js.map +1 -1
  292. package/dist/commands/corpus/report.d.ts +34 -16
  293. package/dist/commands/corpus/report.d.ts.map +1 -1
  294. package/dist/commands/corpus/report.js +36 -18
  295. package/dist/commands/corpus/report.js.map +1 -1
  296. package/dist/commands/corpus/runner.d.ts +25 -20
  297. package/dist/commands/corpus/runner.d.ts.map +1 -1
  298. package/dist/commands/corpus/runner.js +123 -67
  299. package/dist/commands/corpus/runner.js.map +1 -1
  300. package/dist/commands/corpus/scan-schema.d.ts +127 -0
  301. package/dist/commands/corpus/scan-schema.d.ts.map +1 -0
  302. package/dist/commands/corpus/scan-schema.js +31 -0
  303. package/dist/commands/corpus/scan-schema.js.map +1 -0
  304. package/dist/commands/corpus/scan.d.ts +31 -0
  305. package/dist/commands/corpus/scan.d.ts.map +1 -1
  306. package/dist/commands/corpus/scan.js +124 -50
  307. package/dist/commands/corpus/scan.js.map +1 -1
  308. package/dist/commands/corpus/seed.d.ts +11 -8
  309. package/dist/commands/corpus/seed.d.ts.map +1 -1
  310. package/dist/commands/corpus/seed.js +29 -11
  311. package/dist/commands/corpus/seed.js.map +1 -1
  312. package/dist/commands/doctor-render.d.ts +52 -0
  313. package/dist/commands/doctor-render.d.ts.map +1 -0
  314. package/dist/commands/doctor-render.js +110 -0
  315. package/dist/commands/doctor-render.js.map +1 -0
  316. package/dist/commands/doctor-schema.d.ts +191 -0
  317. package/dist/commands/doctor-schema.d.ts.map +1 -0
  318. package/dist/commands/doctor-schema.js +44 -0
  319. package/dist/commands/doctor-schema.js.map +1 -0
  320. package/dist/commands/doctor.d.ts +7 -62
  321. package/dist/commands/doctor.d.ts.map +1 -1
  322. package/dist/commands/doctor.js +126 -165
  323. package/dist/commands/doctor.js.map +1 -1
  324. package/dist/commands/inventory-schema.d.ts +7297 -0
  325. package/dist/commands/inventory-schema.d.ts.map +1 -0
  326. package/dist/commands/inventory-schema.js +28 -0
  327. package/dist/commands/inventory-schema.js.map +1 -0
  328. package/dist/commands/inventory.d.ts +1 -1
  329. package/dist/commands/inventory.d.ts.map +1 -1
  330. package/dist/commands/inventory.js +89 -41
  331. package/dist/commands/inventory.js.map +1 -1
  332. package/dist/commands/mcp/index.d.ts.map +1 -1
  333. package/dist/commands/mcp/index.js +15 -0
  334. package/dist/commands/mcp/index.js.map +1 -1
  335. package/dist/commands/mcp/list-collections-schema.d.ts +101 -0
  336. package/dist/commands/mcp/list-collections-schema.d.ts.map +1 -0
  337. package/dist/commands/mcp/list-collections-schema.js +22 -0
  338. package/dist/commands/mcp/list-collections-schema.js.map +1 -0
  339. package/dist/commands/mcp/list-collections.d.ts +1 -1
  340. package/dist/commands/mcp/list-collections.d.ts.map +1 -1
  341. package/dist/commands/mcp/list-collections.js +19 -17
  342. package/dist/commands/mcp/list-collections.js.map +1 -1
  343. package/dist/commands/mcp/serve.d.ts +5 -0
  344. package/dist/commands/mcp/serve.d.ts.map +1 -1
  345. package/dist/commands/mcp/serve.js +29 -15
  346. package/dist/commands/mcp/serve.js.map +1 -1
  347. package/dist/commands/okf/index.d.ts.map +1 -1
  348. package/dist/commands/okf/index.js +6 -5
  349. package/dist/commands/okf/index.js.map +1 -1
  350. package/dist/commands/okf/validate-schema.d.ts +171 -0
  351. package/dist/commands/okf/validate-schema.d.ts.map +1 -0
  352. package/dist/commands/okf/validate-schema.js +44 -0
  353. package/dist/commands/okf/validate-schema.js.map +1 -0
  354. package/dist/commands/okf/validate.d.ts +16 -149
  355. package/dist/commands/okf/validate.d.ts.map +1 -1
  356. package/dist/commands/okf/validate.js +64 -62
  357. package/dist/commands/okf/validate.js.map +1 -1
  358. package/dist/commands/orchestrator-schema.d.ts +419 -0
  359. package/dist/commands/orchestrator-schema.d.ts.map +1 -0
  360. package/dist/commands/orchestrator-schema.js +91 -0
  361. package/dist/commands/orchestrator-schema.js.map +1 -0
  362. package/dist/commands/phase-utils.d.ts +188 -220
  363. package/dist/commands/phase-utils.d.ts.map +1 -1
  364. package/dist/commands/phase-utils.js +210 -258
  365. package/dist/commands/phase-utils.js.map +1 -1
  366. package/dist/commands/positional-args.d.ts +13 -11
  367. package/dist/commands/positional-args.d.ts.map +1 -1
  368. package/dist/commands/positional-args.js +16 -15
  369. package/dist/commands/positional-args.js.map +1 -1
  370. package/dist/commands/rag/admin-schema.d.ts +152 -0
  371. package/dist/commands/rag/admin-schema.d.ts.map +1 -0
  372. package/dist/commands/rag/admin-schema.js +31 -0
  373. package/dist/commands/rag/admin-schema.js.map +1 -0
  374. package/dist/commands/rag/clear-command.d.ts.map +1 -1
  375. package/dist/commands/rag/clear-command.js +30 -15
  376. package/dist/commands/rag/clear-command.js.map +1 -1
  377. package/dist/commands/rag/command-helpers.d.ts +31 -7
  378. package/dist/commands/rag/command-helpers.d.ts.map +1 -1
  379. package/dist/commands/rag/command-helpers.js +41 -21
  380. package/dist/commands/rag/command-helpers.js.map +1 -1
  381. package/dist/commands/rag/index-command.d.ts +37 -48
  382. package/dist/commands/rag/index-command.d.ts.map +1 -1
  383. package/dist/commands/rag/index-command.js +80 -65
  384. package/dist/commands/rag/index-command.js.map +1 -1
  385. package/dist/commands/rag/index-schema.d.ts +107 -0
  386. package/dist/commands/rag/index-schema.d.ts.map +1 -0
  387. package/dist/commands/rag/index-schema.js +34 -0
  388. package/dist/commands/rag/index-schema.js.map +1 -0
  389. package/dist/commands/rag/index.d.ts.map +1 -1
  390. package/dist/commands/rag/index.js +88 -41
  391. package/dist/commands/rag/index.js.map +1 -1
  392. package/dist/commands/rag/query-command.d.ts +18 -4
  393. package/dist/commands/rag/query-command.d.ts.map +1 -1
  394. package/dist/commands/rag/query-command.js +42 -27
  395. package/dist/commands/rag/query-command.js.map +1 -1
  396. package/dist/commands/rag/query-schema.d.ts +363 -0
  397. package/dist/commands/rag/query-schema.d.ts.map +1 -0
  398. package/dist/commands/rag/query-schema.js +59 -0
  399. package/dist/commands/rag/query-schema.js.map +1 -0
  400. package/dist/commands/rag/stats-command.d.ts.map +1 -1
  401. package/dist/commands/rag/stats-command.js +19 -18
  402. package/dist/commands/rag/stats-command.js.map +1 -1
  403. package/dist/commands/resources/check-progress.d.ts +64 -11
  404. package/dist/commands/resources/check-progress.d.ts.map +1 -1
  405. package/dist/commands/resources/check-progress.js +77 -4
  406. package/dist/commands/resources/check-progress.js.map +1 -1
  407. package/dist/commands/resources/check-schema.d.ts +335 -0
  408. package/dist/commands/resources/check-schema.d.ts.map +1 -0
  409. package/dist/commands/resources/check-schema.js +104 -0
  410. package/dist/commands/resources/check-schema.js.map +1 -0
  411. package/dist/commands/resources/check-supervisor.d.ts +315 -71
  412. package/dist/commands/resources/check-supervisor.d.ts.map +1 -1
  413. package/dist/commands/resources/check-supervisor.js +493 -107
  414. package/dist/commands/resources/check-supervisor.js.map +1 -1
  415. package/dist/commands/resources/check.d.ts +56 -249
  416. package/dist/commands/resources/check.d.ts.map +1 -1
  417. package/dist/commands/resources/check.js +416 -276
  418. package/dist/commands/resources/check.js.map +1 -1
  419. package/dist/commands/resources/index.d.ts.map +1 -1
  420. package/dist/commands/resources/index.js +165 -91
  421. package/dist/commands/resources/index.js.map +1 -1
  422. package/dist/commands/resources/query-schema.d.ts +188 -0
  423. package/dist/commands/resources/query-schema.d.ts.map +1 -0
  424. package/dist/commands/resources/query-schema.js +48 -0
  425. package/dist/commands/resources/query-schema.js.map +1 -0
  426. package/dist/commands/resources/query.d.ts +17 -12
  427. package/dist/commands/resources/query.d.ts.map +1 -1
  428. package/dist/commands/resources/query.js +60 -48
  429. package/dist/commands/resources/query.js.map +1 -1
  430. package/dist/commands/resources/scan-schema.d.ts +195 -0
  431. package/dist/commands/resources/scan-schema.d.ts.map +1 -0
  432. package/dist/commands/resources/scan-schema.js +53 -0
  433. package/dist/commands/resources/scan-schema.js.map +1 -0
  434. package/dist/commands/resources/scan.d.ts +26 -3
  435. package/dist/commands/resources/scan.d.ts.map +1 -1
  436. package/dist/commands/resources/scan.js +51 -53
  437. package/dist/commands/resources/scan.js.map +1 -1
  438. package/dist/commands/resources/validate-schema.d.ts +326 -0
  439. package/dist/commands/resources/validate-schema.d.ts.map +1 -0
  440. package/dist/commands/resources/validate-schema.js +60 -0
  441. package/dist/commands/resources/validate-schema.js.map +1 -0
  442. package/dist/commands/resources/validate.d.ts +45 -169
  443. package/dist/commands/resources/validate.d.ts.map +1 -1
  444. package/dist/commands/resources/validate.js +221 -485
  445. package/dist/commands/resources/validate.js.map +1 -1
  446. package/dist/commands/skill/review-checklist.d.ts.map +1 -1
  447. package/dist/commands/skill/review-checklist.js +0 -1
  448. package/dist/commands/skill/review-checklist.js.map +1 -1
  449. package/dist/commands/skill/review-schema.d.ts +278 -0
  450. package/dist/commands/skill/review-schema.d.ts.map +1 -0
  451. package/dist/commands/skill/review-schema.js +46 -0
  452. package/dist/commands/skill/review-schema.js.map +1 -0
  453. package/dist/commands/skill/review.d.ts +8 -234
  454. package/dist/commands/skill/review.d.ts.map +1 -1
  455. package/dist/commands/skill/review.js +54 -78
  456. package/dist/commands/skill/review.js.map +1 -1
  457. package/dist/commands/skill/test/auth-flags.d.ts +3 -0
  458. package/dist/commands/skill/test/auth-flags.d.ts.map +1 -1
  459. package/dist/commands/skill/test/auth-flags.js +6 -2
  460. package/dist/commands/skill/test/auth-flags.js.map +1 -1
  461. package/dist/commands/skill/test/configure-schema.d.ts +67 -0
  462. package/dist/commands/skill/test/configure-schema.d.ts.map +1 -0
  463. package/dist/commands/skill/test/configure-schema.js +27 -0
  464. package/dist/commands/skill/test/configure-schema.js.map +1 -0
  465. package/dist/commands/skill/test/configure.d.ts +12 -5
  466. package/dist/commands/skill/test/configure.d.ts.map +1 -1
  467. package/dist/commands/skill/test/configure.js +101 -31
  468. package/dist/commands/skill/test/configure.js.map +1 -1
  469. package/dist/commands/skill/test/run-schema.d.ts +107 -0
  470. package/dist/commands/skill/test/run-schema.d.ts.map +1 -0
  471. package/dist/commands/skill/test/run-schema.js +36 -0
  472. package/dist/commands/skill/test/run-schema.js.map +1 -0
  473. package/dist/commands/skill/test/run.d.ts +3 -2
  474. package/dist/commands/skill/test/run.d.ts.map +1 -1
  475. package/dist/commands/skill/test/run.js +316 -155
  476. package/dist/commands/skill/test/run.js.map +1 -1
  477. package/dist/commands/skills/build-schema.d.ts +199 -0
  478. package/dist/commands/skills/build-schema.d.ts.map +1 -0
  479. package/dist/commands/skills/build-schema.js +55 -0
  480. package/dist/commands/skills/build-schema.js.map +1 -0
  481. package/dist/commands/skills/build.d.ts +95 -298
  482. package/dist/commands/skills/build.d.ts.map +1 -1
  483. package/dist/commands/skills/build.js +415 -818
  484. package/dist/commands/skills/build.js.map +1 -1
  485. package/dist/commands/skills/command-helpers.d.ts +5 -11
  486. package/dist/commands/skills/command-helpers.d.ts.map +1 -1
  487. package/dist/commands/skills/command-helpers.js +7 -17
  488. package/dist/commands/skills/command-helpers.js.map +1 -1
  489. package/dist/commands/skills/index.js +12 -6
  490. package/dist/commands/skills/index.js.map +1 -1
  491. package/dist/commands/skills/install-schema.d.ts +153 -0
  492. package/dist/commands/skills/install-schema.d.ts.map +1 -0
  493. package/dist/commands/skills/install-schema.js +44 -0
  494. package/dist/commands/skills/install-schema.js.map +1 -0
  495. package/dist/commands/skills/install.d.ts +76 -8
  496. package/dist/commands/skills/install.d.ts.map +1 -1
  497. package/dist/commands/skills/install.js +230 -194
  498. package/dist/commands/skills/install.js.map +1 -1
  499. package/dist/commands/skills/list-schema.d.ts +145 -0
  500. package/dist/commands/skills/list-schema.d.ts.map +1 -0
  501. package/dist/commands/skills/list-schema.js +37 -0
  502. package/dist/commands/skills/list-schema.js.map +1 -0
  503. package/dist/commands/skills/list.d.ts +39 -8
  504. package/dist/commands/skills/list.d.ts.map +1 -1
  505. package/dist/commands/skills/list.js +110 -122
  506. package/dist/commands/skills/list.js.map +1 -1
  507. package/dist/commands/skills/package-schema.d.ts +98 -0
  508. package/dist/commands/skills/package-schema.d.ts.map +1 -0
  509. package/dist/commands/skills/package-schema.js +32 -0
  510. package/dist/commands/skills/package-schema.js.map +1 -0
  511. package/dist/commands/skills/package.d.ts +85 -14
  512. package/dist/commands/skills/package.d.ts.map +1 -1
  513. package/dist/commands/skills/package.js +288 -207
  514. package/dist/commands/skills/package.js.map +1 -1
  515. package/dist/commands/skills/scope-guard.d.ts +27 -20
  516. package/dist/commands/skills/scope-guard.d.ts.map +1 -1
  517. package/dist/commands/skills/scope-guard.js +43 -32
  518. package/dist/commands/skills/scope-guard.js.map +1 -1
  519. package/dist/commands/skills/skill-discovery.d.ts +1 -1
  520. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  521. package/dist/commands/skills/skill-discovery.js +40 -19
  522. package/dist/commands/skills/skill-discovery.js.map +1 -1
  523. package/dist/commands/skills/source-resolvers.d.ts +58 -8
  524. package/dist/commands/skills/source-resolvers.d.ts.map +1 -1
  525. package/dist/commands/skills/source-resolvers.js +113 -38
  526. package/dist/commands/skills/source-resolvers.js.map +1 -1
  527. package/dist/commands/skills/validate-command.d.ts.map +1 -1
  528. package/dist/commands/skills/validate-command.js +31 -51
  529. package/dist/commands/skills/validate-command.js.map +1 -1
  530. package/dist/commands/skills/validate-schema.d.ts +199 -0
  531. package/dist/commands/skills/validate-schema.d.ts.map +1 -0
  532. package/dist/commands/skills/validate-schema.js +44 -0
  533. package/dist/commands/skills/validate-schema.js.map +1 -0
  534. package/dist/commands/skills/validate.d.ts +100 -136
  535. package/dist/commands/skills/validate.d.ts.map +1 -1
  536. package/dist/commands/skills/validate.js +257 -343
  537. package/dist/commands/skills/validate.js.map +1 -1
  538. package/dist/commands/validate.d.ts +17 -5
  539. package/dist/commands/validate.d.ts.map +1 -1
  540. package/dist/commands/validate.js +139 -94
  541. package/dist/commands/validate.js.map +1 -1
  542. package/dist/commands/verify.d.ts +121 -110
  543. package/dist/commands/verify.d.ts.map +1 -1
  544. package/dist/commands/verify.js +230 -294
  545. package/dist/commands/verify.js.map +1 -1
  546. package/dist/index.d.ts +1 -1
  547. package/dist/index.d.ts.map +1 -1
  548. package/dist/index.js +1 -1
  549. package/dist/index.js.map +1 -1
  550. package/dist/report-schemas.d.ts +12398 -35
  551. package/dist/report-schemas.d.ts.map +1 -1
  552. package/dist/report-schemas.js +624 -66
  553. package/dist/report-schemas.js.map +1 -1
  554. package/dist/skill-resolution/packaging-config.js +2 -2
  555. package/dist/skill-resolution/packaging-config.js.map +1 -1
  556. package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
  557. package/dist/skill-resolution/resolve-skill-reference.js +20 -13
  558. package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
  559. package/dist/utils/agent-discovery.d.ts +34 -1
  560. package/dist/utils/agent-discovery.d.ts.map +1 -1
  561. package/dist/utils/agent-discovery.js +80 -38
  562. package/dist/utils/agent-discovery.js.map +1 -1
  563. package/dist/utils/claude-context-lens.d.ts +13 -6
  564. package/dist/utils/claude-context-lens.d.ts.map +1 -1
  565. package/dist/utils/claude-context-lens.js +11 -12
  566. package/dist/utils/claude-context-lens.js.map +1 -1
  567. package/dist/utils/command-error-codes.d.ts +12 -0
  568. package/dist/utils/command-error-codes.d.ts.map +1 -0
  569. package/dist/utils/command-error-codes.js +12 -0
  570. package/dist/utils/command-error-codes.js.map +1 -0
  571. package/dist/utils/command-refusal.d.ts +58 -0
  572. package/dist/utils/command-refusal.d.ts.map +1 -0
  573. package/dist/utils/command-refusal.js +170 -0
  574. package/dist/utils/command-refusal.js.map +1 -0
  575. package/dist/utils/commander-ending.d.ts +40 -0
  576. package/dist/utils/commander-ending.d.ts.map +1 -0
  577. package/dist/utils/commander-ending.js +42 -0
  578. package/dist/utils/commander-ending.js.map +1 -0
  579. package/dist/utils/config-loader.d.ts +13 -8
  580. package/dist/utils/config-loader.d.ts.map +1 -1
  581. package/dist/utils/config-loader.js +84 -45
  582. package/dist/utils/config-loader.js.map +1 -1
  583. package/dist/utils/corpus-target.d.ts +1 -1
  584. package/dist/utils/corpus-target.d.ts.map +1 -1
  585. package/dist/utils/corpus-target.js +6 -4
  586. package/dist/utils/corpus-target.js.map +1 -1
  587. package/dist/utils/debug-diagnostics.d.ts +18 -0
  588. package/dist/utils/debug-diagnostics.d.ts.map +1 -0
  589. package/dist/utils/debug-diagnostics.js +23 -0
  590. package/dist/utils/debug-diagnostics.js.map +1 -0
  591. package/dist/utils/document-writer.d.ts +191 -0
  592. package/dist/utils/document-writer.d.ts.map +1 -0
  593. package/dist/utils/document-writer.js +319 -0
  594. package/dist/utils/document-writer.js.map +1 -0
  595. package/dist/utils/help-loader.d.ts +2 -2
  596. package/dist/utils/help-loader.js +2 -2
  597. package/dist/utils/install-plan.d.ts +99 -0
  598. package/dist/utils/install-plan.d.ts.map +1 -0
  599. package/dist/utils/install-plan.js +146 -0
  600. package/dist/utils/install-plan.js.map +1 -0
  601. package/dist/utils/issue-anchor.d.ts +1 -1
  602. package/dist/utils/issue-anchor.d.ts.map +1 -1
  603. package/dist/utils/issue-anchor.js.map +1 -1
  604. package/dist/utils/issue-rendering.d.ts +8 -3
  605. package/dist/utils/issue-rendering.d.ts.map +1 -1
  606. package/dist/utils/issue-rendering.js +4 -0
  607. package/dist/utils/issue-rendering.js.map +1 -1
  608. package/dist/utils/lens-population.d.ts +20 -0
  609. package/dist/utils/lens-population.d.ts.map +1 -0
  610. package/dist/utils/lens-population.js +15 -0
  611. package/dist/utils/lens-population.js.map +1 -0
  612. package/dist/utils/marketplace-io.d.ts +63 -0
  613. package/dist/utils/marketplace-io.d.ts.map +1 -0
  614. package/dist/utils/marketplace-io.js +63 -0
  615. package/dist/utils/marketplace-io.js.map +1 -0
  616. package/dist/utils/operator-notices.d.ts +97 -0
  617. package/dist/utils/operator-notices.d.ts.map +1 -0
  618. package/dist/utils/operator-notices.js +115 -0
  619. package/dist/utils/operator-notices.js.map +1 -0
  620. package/dist/utils/optional-backend.d.ts +18 -15
  621. package/dist/utils/optional-backend.d.ts.map +1 -1
  622. package/dist/utils/optional-backend.js +22 -33
  623. package/dist/utils/optional-backend.js.map +1 -1
  624. package/dist/utils/output.d.ts +5 -43
  625. package/dist/utils/output.d.ts.map +1 -1
  626. package/dist/utils/output.js +8 -63
  627. package/dist/utils/output.js.map +1 -1
  628. package/dist/utils/package-json.d.ts +3 -4
  629. package/dist/utils/package-json.d.ts.map +1 -1
  630. package/dist/utils/package-json.js +8 -8
  631. package/dist/utils/package-json.js.map +1 -1
  632. package/dist/utils/population-wiring.d.ts +31 -38
  633. package/dist/utils/population-wiring.d.ts.map +1 -1
  634. package/dist/utils/population-wiring.js +38 -32
  635. package/dist/utils/population-wiring.js.map +1 -1
  636. package/dist/utils/project-root-policy.d.ts +74 -1
  637. package/dist/utils/project-root-policy.d.ts.map +1 -1
  638. package/dist/utils/project-root-policy.js +146 -8
  639. package/dist/utils/project-root-policy.js.map +1 -1
  640. package/dist/utils/projection-lenses.d.ts +25 -7
  641. package/dist/utils/projection-lenses.d.ts.map +1 -1
  642. package/dist/utils/projection-lenses.js +20 -6
  643. package/dist/utils/projection-lenses.js.map +1 -1
  644. package/dist/utils/projection-query.d.ts +17 -10
  645. package/dist/utils/projection-query.d.ts.map +1 -1
  646. package/dist/utils/projection-query.js +47 -28
  647. package/dist/utils/projection-query.js.map +1 -1
  648. package/dist/utils/projection-store.d.ts +2 -2
  649. package/dist/utils/projection-store.d.ts.map +1 -1
  650. package/dist/utils/projection-store.js +74 -45
  651. package/dist/utils/projection-store.js.map +1 -1
  652. package/dist/utils/rag-database.d.ts +61 -0
  653. package/dist/utils/rag-database.d.ts.map +1 -0
  654. package/dist/utils/rag-database.js +178 -0
  655. package/dist/utils/rag-database.js.map +1 -0
  656. package/dist/utils/relation-limits.d.ts +7 -2
  657. package/dist/utils/relation-limits.d.ts.map +1 -1
  658. package/dist/utils/relation-limits.js +6 -1
  659. package/dist/utils/relation-limits.js.map +1 -1
  660. package/dist/utils/relativize-paths.d.ts +23 -0
  661. package/dist/utils/relativize-paths.d.ts.map +1 -1
  662. package/dist/utils/relativize-paths.js +32 -1
  663. package/dist/utils/relativize-paths.js.map +1 -1
  664. package/dist/utils/resource-loader.d.ts +76 -32
  665. package/dist/utils/resource-loader.d.ts.map +1 -1
  666. package/dist/utils/resource-loader.js +132 -66
  667. package/dist/utils/resource-loader.js.map +1 -1
  668. package/dist/utils/run-integrity.d.ts +64 -31
  669. package/dist/utils/run-integrity.d.ts.map +1 -1
  670. package/dist/utils/run-integrity.js +76 -35
  671. package/dist/utils/run-integrity.js.map +1 -1
  672. package/dist/utils/scope-locations.d.ts +7 -5
  673. package/dist/utils/scope-locations.d.ts.map +1 -1
  674. package/dist/utils/scope-locations.js +37 -12
  675. package/dist/utils/scope-locations.js.map +1 -1
  676. package/dist/utils/staging-dir.d.ts +7 -0
  677. package/dist/utils/staging-dir.d.ts.map +1 -0
  678. package/dist/utils/staging-dir.js +12 -0
  679. package/dist/utils/staging-dir.js.map +1 -0
  680. package/dist/utils/url-redact.d.ts +9 -0
  681. package/dist/utils/url-redact.d.ts.map +1 -1
  682. package/dist/utils/url-redact.js +13 -0
  683. package/dist/utils/url-redact.js.map +1 -1
  684. package/dist/utils/user-context-scanner.d.ts +3 -2
  685. package/dist/utils/user-context-scanner.d.ts.map +1 -1
  686. package/dist/utils/user-context-scanner.js +24 -4
  687. package/dist/utils/user-context-scanner.js.map +1 -1
  688. package/dist/utils/validate-help-files.d.ts.map +1 -1
  689. package/dist/utils/validate-help-files.js +8 -14
  690. package/dist/utils/validate-help-files.js.map +1 -1
  691. package/dist/utils/vat-bin-path.d.ts.map +1 -1
  692. package/dist/utils/vat-bin-path.js +3 -3
  693. package/dist/utils/vat-bin-path.js.map +1 -1
  694. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  695. package/dist/utils/verdict-helpers.js +5 -5
  696. package/dist/utils/verdict-helpers.js.map +1 -1
  697. package/docs/agent.md +347 -2
  698. package/docs/audit.md +312 -89
  699. package/docs/doctor.md +65 -19
  700. package/docs/index.md +571 -20
  701. package/docs/mcp.md +64 -12
  702. package/docs/rag.md +176 -48
  703. package/docs/resources.md +257 -71
  704. package/docs/skill-test.md +148 -19
  705. package/docs/skills.md +459 -174
  706. package/package.json +16 -19
  707. package/schemas/agent-build.json +268 -0
  708. package/schemas/agent-import.json +252 -0
  709. package/schemas/agent-install.json +260 -0
  710. package/schemas/agent-installed.json +287 -0
  711. package/schemas/agent-list.json +279 -0
  712. package/schemas/agent-uninstall.json +260 -0
  713. package/schemas/agent-validate.json +279 -0
  714. package/schemas/ard-emit.json +224 -106
  715. package/schemas/audit-settings.json +472 -0
  716. package/schemas/audit.json +635 -0
  717. package/schemas/cache-clear.json +273 -0
  718. package/schemas/claude-marketplace-publish.json +286 -0
  719. package/schemas/claude-marketplace-validate.json +352 -0
  720. package/schemas/claude-org-not-implemented.json +239 -0
  721. package/schemas/claude-plugin-build.json +446 -0
  722. package/schemas/claude-plugin-install.json +291 -0
  723. package/schemas/claude-plugin-list.json +326 -0
  724. package/schemas/claude-plugin-uninstall.json +272 -0
  725. package/schemas/corpus-audit.json +635 -0
  726. package/schemas/corpus-scan.json +293 -0
  727. package/schemas/doctor.json +299 -0
  728. package/schemas/inventory.json +982 -0
  729. package/schemas/mcp-list-collections.json +268 -0
  730. package/schemas/okf-validate.json +224 -106
  731. package/schemas/orchestrator.json +299 -0
  732. package/schemas/rag-clear.json +253 -0
  733. package/schemas/rag-index.json +273 -0
  734. package/schemas/rag-query.json +365 -0
  735. package/schemas/rag-stats.json +269 -0
  736. package/schemas/resources-check.json +242 -108
  737. package/schemas/resources-query.json +333 -0
  738. package/schemas/resources-scan.json +321 -0
  739. package/schemas/resources-validate.json +332 -0
  740. package/schemas/skill-review.json +224 -106
  741. package/schemas/skill-test-configure.json +256 -0
  742. package/schemas/skill-test-run.json +296 -0
  743. package/schemas/skills-build.json +325 -0
  744. package/schemas/skills-install.json +287 -0
  745. package/schemas/skills-list.json +283 -0
  746. package/schemas/skills-package.json +270 -0
  747. package/schemas/skills-validate.json +285 -0
  748. package/dist/commands/skills/shared.d.ts +0 -29
  749. package/dist/commands/skills/shared.d.ts.map +0 -1
  750. package/dist/commands/skills/shared.js +0 -33
  751. package/dist/commands/skills/shared.js.map +0 -1
  752. package/dist/utils/command-error.d.ts +0 -194
  753. package/dist/utils/command-error.d.ts.map +0 -1
  754. package/dist/utils/command-error.js +0 -237
  755. package/dist/utils/command-error.js.map +0 -1
@@ -9,30 +9,35 @@
9
9
  * 5. packaged-content (in-process; built bundles carry nothing that must not ship)
10
10
  * 6. consistency check (in-process; skill distribution integrity — package.json, plugin assignment)
11
11
  *
12
- * 1–3 delegate to a whole `vat` command and nest that command's own report under
13
- * `report`; they are chosen by {@link selectVerifyPhases}. 4–6 exist only here and
14
- * are chosen by `selectInProcessVerifyPhases`. Every phase runs in this process.
12
+ * 1–3 delegate to a whole `vat` command, whose report is held to that command's
13
+ * registered schema and folded into `data.phases`; they are chosen by
14
+ * {@link selectVerifyPhases}. 4–6 exist only here, hold their reports to their own
15
+ * schemas, and are chosen by `selectInProcessVerifyPhases`. Every phase runs in
16
+ * this process.
15
17
  * Both sets are config-gated, and both are announced on startup.
16
18
  */
17
- import { existsSync, statSync } from 'node:fs';
18
19
  import { detectPackagedAgentInstructionFiles, explicitFilesConfigDests, indexPluginLocalSkills, } from '@vibe-agent-toolkit/agent-skills';
19
- import { calculateValidationStatus, countBySeverity, } from '@vibe-agent-toolkit/schema';
20
- import { isPathAbsentError, safePath, toForwardSlash } from '@vibe-agent-toolkit/utils';
20
+ import { buildReport, toFindings, } from '@vibe-agent-toolkit/schema';
21
+ import { everywhere, followedKindSync, forEachInOrder, isPathAbsentError, pathPresent, safePath, toForwardSlash } from '@vibe-agent-toolkit/utils';
21
22
  import { Command } from 'commander';
22
- import { handleCommandError } from '../utils/command-error.js';
23
+ import { marksOperandRefusalByHand } from '../command-tree.js';
23
24
  import { loadConfig } from '../utils/config-loader.js';
25
+ import { endWithReport } from '../utils/document-writer.js';
24
26
  import { formatIssueLines } from '../utils/issue-rendering.js';
25
27
  import { resolveIssueSeverity } from '../utils/issue-severity.js';
26
- import { writeYamlOutput } from '../utils/output.js';
27
28
  import { requireProjectRoot } from '../utils/project-root-policy.js';
28
- import { nothingCheckedFinding, runIntegrityFinding } from '../utils/run-integrity.js';
29
+ import { runIntegrityFinding } from '../utils/run-integrity.js';
29
30
  import { isSkillPublished, mergeSkillPackagingConfig, pluginLocalSkillConfigEntry, publishScope } from '../utils/skill-packaging-config.js';
31
+ import { MARKETPLACE_VALIDATE_EXAMINED, MARKETPLACE_VALIDATE_REPORT_SCHEMA } from './claude/marketplace/validate-schema.js';
30
32
  import { runMarketplaceValidatePhase } from './claude/marketplace/validate.js';
31
33
  import { runConsistencyChecks, } from './consistency-check.js';
32
- import { addRetiredOnlyOption, aggregatePhaseStatus, applyPhaseSelection, createPhaseContext, decidePhaseSelection, exitCodeForPhases, rejectRetiredOnly, runPhase, } from './phase-utils.js';
34
+ import { PACKAGED_CONTENT_EXAMINED, PACKAGED_CONTENT_REPORT_SCHEMA } from './orchestrator-schema.js';
35
+ import { addRetiredOnlyOption, applyPhaseSelection, createPhaseContext, DATALESS_PHASE_REPORT_SCHEMA, decidePhaseSelection, orchestrate, ORCHESTRATOR_FORMAT, ORCHESTRATOR_GATE, rejectRetiredOnly, runPhase, shipsPluginLocalSkills, skillsPhaseExamined, } from './phase-utils.js';
33
36
  import { rejectPositionalArguments } from './positional-args.js';
37
+ import { RESOURCES_VALIDATE_EXAMINED, RESOURCES_VALIDATE_REPORT_SCHEMA } from './resources/validate-schema.js';
34
38
  import { runResourcesValidatePhase } from './resources/validate.js';
35
39
  import { discoverSkillsFromConfig, readPluginLocalSkillNames } from './skills/skill-discovery.js';
40
+ import { SKILLS_VALIDATE_EXAMINED, SKILLS_VALIDATE_REPORT_SCHEMA } from './skills/validate-schema.js';
36
41
  import { runSkillsValidatePhase } from './skills/validate.js';
37
42
  /**
38
43
  * Measured full-run duration on the 90-skill / 1,041-document adopter, cited by
@@ -43,7 +48,8 @@ const VERIFY_FULL_RUN_SECONDS = 32;
43
48
  /** How this command names itself in every user-facing diagnostic. */
44
49
  const COMMAND_NAME = 'vat verify';
45
50
  export function createVerifyTopLevelCommand() {
46
- const command = new Command('verify');
51
+ // Refuses operands in its action, with a better message than commander's.
52
+ const command = marksOperandRefusalByHand(new Command('verify'));
47
53
  addRetiredOnlyOption(command)
48
54
  .description('Verify built artifacts (resources + skills + marketplace + consistency); marketplace/consistency read dist/ — run after vat build')
49
55
  .option('-v, --verbose', 'Show all inspected resources, including those without issues')
@@ -54,8 +60,10 @@ Description:
54
60
  Verifies all project artifacts. The marketplace and consistency phases
55
61
  read the built dist/ tree, so run this after 'vat build'.
56
62
 
57
- For source-only validation that needs no build (resources + skills,
58
- suitable for pre-commit and CI-before-build), use 'vat validate'.
63
+ For source-only validation that needs no build (resources, their checks,
64
+ skills — the CI-before-build gate), use 'vat validate'.
65
+ This command does not run resources.checks; 'vat validate' and
66
+ 'vat resources check' do.
59
67
 
60
68
  Config-driven, exactly like 'vat validate': a phase runs only when its
61
69
  config block is present. There is no phase filter — the whole run takes
@@ -68,8 +76,8 @@ Description:
68
76
  marketplace → strict marketplace validation (when 'claude.marketplaces:' configured)
69
77
 
70
78
  Phases (verify's own, run after the above, when 'skills:' is configured):
71
- files-config-dests → every 'files:' dest exists in the built output. Appears
72
- in the document only when a dest is missing.
79
+ files-config-dests → every 'files:' dest exists in the built output; one
80
+ FILES_CONFIG_DEST_MISSING error per missing dest.
73
81
  packaged-content → built skill bundles carry no repo-internal agent-instruction
74
82
  file (CLAUDE.md, AGENTS.md, GEMINI.md). A dest an explicit
75
83
  'files:' entry names is honoured, not reported.
@@ -84,32 +92,25 @@ Description:
84
92
  inspect its inputs is listed even when it finds nothing to report.
85
93
 
86
94
  Output:
87
- ONE YAML document → stdout
88
- per phase: status (success | warning | error | system-error). A delegated
89
- phase's own report is captured and nested under 'report', so the whole run
90
- is a single parseable document (a phase's stdout is never streamed
91
- through). A phase's status comes from its own REPORTED status, not from its
92
- exit code — an exit code cannot express 'warning'. Verify's own phases also
93
- publish issueCounts {errors, warnings, info}; 'consistency' and
94
- 'packaged-content' carry their findings into the document too, while
95
- 'files-config-dests' publishes counts only and lists the missing dests on
96
- stderr. 'packaged-content' also publishes bundlesInspected — the built
97
- bundles it crawled — beside bundlesExpected (the bundles 'vat build'
98
- produces for the skills this run discovered) and bundlesMissing (expected
99
- bundles absent from dist/, by path). Zero inspected, or any missing, is
100
- refused as RESOURCE_CHECK_BROKEN at error (exit 1) rather than reported as
101
- a pass: a run that found none of the build (dist/ not built, or a
102
- skills.include glob that matched nothing) or only part of it (a bundle
103
- deleted, a skill added since the last build) is not a verdict on what ships.
104
- A skill whose merged config says publish: false is IN-PLACE — never
105
- bundled by 'vat build', so no pool bundle is expected for it (a stale one
106
- in dist/skills is still inspected); bundlesInPlace counts them, and a run
107
- whose every discovered skill is in place passes with nothing to inspect. A
108
- plugin-local skill (a git-tracked skill dir under a plugin's skills/) is
109
- never in place: it is expected in its plugin tree whatever publish says,
110
- and never counted in bundlesInPlace. Declare
111
- skills.defaults.publish: false for a project that builds with --only claude
112
- and uses its other skills from the repo.
95
+ ONE report envelope (YAML) → stdout: status (ok | findings | error),
96
+ examined (the sum over every phase), summary {errors, warnings, info},
97
+ findings (every phase's, flat), and data.phases — one entry per phase with
98
+ its own status, examined, summary, error (when it did not finish) and the
99
+ phase's own data. Schema: packages/cli/schemas/orchestrator.json.
100
+ 'packaged-content': examined is the built bundles it crawled; its data is
101
+ bundlesExpected (the bundles 'vat build' produces for the skills this run
102
+ discovered), bundlesInPlace, and bundlesMissing (expected bundles absent
103
+ from dist/, by path). Zero inspected, or any missing, is refused as
104
+ RESOURCE_CHECK_BROKEN at error (exit 1): a run that found none of the build
105
+ (dist/ not built, or a skills.include glob that matched nothing) or only
106
+ part of it is not a verdict on what ships. A skill whose merged config says
107
+ publish: false is IN-PLACE — never bundled by 'vat build', so no pool bundle
108
+ is expected for it; a run whose every discovered skill is in place passes
109
+ with nothing to inspect. A plugin-local skill (a git-tracked skill dir under
110
+ a plugin's skills/) is never in place: it is expected in its plugin tree.
111
+ 'marketplace:<name>': a plugin.json, a skills/ directory or a SKILL.md the
112
+ OS will not read is refused as RESOURCE_CHECK_BROKEN at error (exit 1),
113
+ naming it — a file this run could not read is not a verdict on what ships.
113
114
  Progress and validation errors → stderr (streamed live)
114
115
 
115
116
  By default each delegated phase reports a per-asset summary plus the assets
@@ -117,11 +118,13 @@ Output:
117
118
  then also lists the assets it inspected and found nothing to report.
118
119
 
119
120
  Exit Codes:
120
- 0 - All phases passed (a warning does not fail the run — read status/issueCounts)
121
- 1 - Validation errors found
122
- 2 - System error (this command's own, or propagated from a phase that could
123
- not run: it exited 2, or reported 'system-error' for itself), or a usage
124
- error such as passing a path
121
+ 0 - Every phase finished and no finding is an error (warnings never fail)
122
+ 1 - An error finding, or a configured phase examined nothing — an include
123
+ that matches no file, say (RESOURCE_CHECK_BROKEN, naming the phase's unit)
124
+ 2 - The run could not do its job: a phase did not finish (RUN_INCOMPLETE,
125
+ the finished phases still in data.phases), a path argument or the
126
+ retired '--only' (USAGE_INVALID), no project root, a population it
127
+ could not see
125
128
 
126
129
  Arguments:
127
130
  None. Scope comes from vibe-agent-toolkit.config.yaml, never from the command
@@ -162,9 +165,10 @@ function filesOf(entry) {
162
165
  * refused `dist/skills/x` as missing would name it under `missing` with a
163
166
  * remedy ("run vat build") that cannot help.
164
167
  */
165
- function isDirectory(dir) {
168
+ function isDirectory(dir, within) {
166
169
  try {
167
- return statSync(dir).isDirectory();
170
+ // Beneath the project root: every link on the way is read before the kernel follows it.
171
+ return followedKindSync(dir, within) === 'directory';
168
172
  }
169
173
  catch (error) {
170
174
  if (isPathAbsentError(error))
@@ -180,7 +184,7 @@ function isDirectory(dir) {
180
184
  * that is not a directory is named in `missing` — that absence is the finding,
181
185
  * not a skip (see {@link isDirectory} for why "exists" is not enough).
182
186
  *
183
- * An EMPTY `files:` block is registered, not skipped: {@link checkFilesConfigDests}
187
+ * An EMPTY `files:` block is registered, not skipped: {@link runFilesConfigDestsPhase}
184
188
  * has nothing to verify for such a skill and filters it out itself, but
185
189
  * {@link checkPackagedAgentInstructionFiles} must still crawl that bundle — a skill
186
190
  * with no `files:` block is exactly the one whose agent-instruction file arrived by
@@ -191,7 +195,7 @@ function addCheckCandidate(outputs, seen, cwd, candidate, expected) {
191
195
  if (seen.has(key))
192
196
  return;
193
197
  seen.add(key);
194
- const exists = isDirectory(candidate.outputDir);
198
+ const exists = isDirectory(candidate.outputDir, cwd);
195
199
  if (exists)
196
200
  outputs.built.push(candidate);
197
201
  if (!expected)
@@ -254,7 +258,7 @@ function collectBuiltSkillOutputs(cwd, discovered, pluginLocal, pluginLocalNames
254
258
  // used to wrap this whole body could only ever absorb a DEFECT — and it
255
259
  // absorbed it into an empty candidate list, which every phase below then
256
260
  // verified against: zero bundles, zero findings, exit 0.
257
- const config = loadConfig(cwd);
261
+ const config = loadConfig(cwd, 'source');
258
262
  if (!config)
259
263
  return outputs;
260
264
  const skillsConfig = config.skills;
@@ -297,28 +301,27 @@ function collectBuiltSkillOutputs(cwd, discovered, pluginLocal, pluginLocalNames
297
301
  return outputs;
298
302
  }
299
303
  /**
300
- * Check that all dest paths from the merged files config exist in the built output.
304
+ * The `files:` dests of every built bundle that declares some: how many bundles
305
+ * were checked, and which dests are absent.
301
306
  *
302
- * A dest is "missing" ONLY when absent from a candidate dir that exists. If a skill
303
- * has no existing candidate dir, it is not reported (build didn't run for that mode).
304
- *
305
- * @param discovered - The skills this run discovered from `skills.include`. See
306
- * {@link collectBuiltSkillOutputs} for why it is required rather than optional.
307
- * @param pluginLocal - The run's plugin-local index — required for the same reason.
308
- * @param pluginLocalNames - The declared name of every location in `pluginLocal` — required for the same reason.
309
- * @returns One result per (skill, outputDir) pair where dests are absent.
307
+ * A dest is "missing" ONLY when absent from a candidate dir that exists. A skill
308
+ * with no existing candidate dir is not reported (the build did not run for that
309
+ * mode) — the packaged-content phase names the unbuilt bundles.
310
310
  */
311
- export function checkFilesConfigDests(cwd, discovered, pluginLocal, pluginLocalNames) {
311
+ function checkFilesConfigDestsOf(built, projectRoot) {
312
312
  const results = [];
313
- for (const check of collectBuiltSkillOutputs(cwd, discovered, pluginLocal, pluginLocalNames).built) {
313
+ let checked = 0;
314
+ for (const check of built) {
314
315
  const { skillName, outputDir } = check;
315
316
  const mergedFiles = filesOf(check);
316
317
  if (mergedFiles.length === 0)
317
318
  continue;
319
+ checked += 1;
318
320
  const missing = [];
319
321
  for (const entry of mergedFiles) {
320
322
  const destPath = safePath.resolve(outputDir, entry.dest);
321
- if (!existsSync(destPath)) {
323
+ // A probe the OS refuses is the bundle's source fault, never "missing" (a remedy that cannot help).
324
+ if (!pathPresent(destPath, { follow: projectRoot }, everywhere('source'), 'probe')) {
322
325
  missing.push(entry.dest);
323
326
  }
324
327
  }
@@ -326,7 +329,7 @@ export function checkFilesConfigDests(cwd, discovered, pluginLocal, pluginLocalN
326
329
  results.push({ skillName, outputDir, missing });
327
330
  }
328
331
  }
329
- return results;
332
+ return { checked, missing: results };
330
333
  }
331
334
  /**
332
335
  * Crawl every built skill bundle for repo-internal agent-instruction files.
@@ -378,7 +381,9 @@ export function checkPackagedAgentInstructionFiles(cwd, discovered, pluginLocal,
378
381
  const issues = [];
379
382
  const outputs = collectBuiltSkillOutputs(cwd, discovered, pluginLocal, pluginLocalNames);
380
383
  for (const check of outputs.built) {
381
- const raw = detectPackagedAgentInstructionFiles(check.outputDir, cwd, explicitFilesConfigDests(filesOf(check)));
384
+ const raw = detectPackagedAgentInstructionFiles(check.outputDir, cwd, explicitFilesConfigDests(filesOf(check)),
385
+ // `vat verify` examines what an earlier build wrote; it writes nothing.
386
+ []);
382
387
  issues.push(...resolveIssueSeverity(raw, check.packaging.validation));
383
388
  }
384
389
  return {
@@ -398,7 +403,7 @@ export function checkPackagedAgentInstructionFiles(cwd, discovered, pluginLocal,
398
403
  */
399
404
  function loadConfigTolerant(cwd) {
400
405
  try {
401
- return { config: loadConfig(cwd) };
406
+ return { config: loadConfig(cwd, 'source') };
402
407
  }
403
408
  catch (error) {
404
409
  return { config: undefined, error: error instanceof Error ? error.message : String(error) };
@@ -419,21 +424,17 @@ function reportFilesDestErrors(results, logger) {
419
424
  }
420
425
  }
421
426
  /**
422
- * Log packaged-content findings to stderr.
423
- *
424
- * A companion to the document entry, never a substitute for it: this phase's
425
- * findings are published into the YAML too (see {@link FindingsPhaseResult}).
427
+ * Log packaged-content findings to stderr — a companion to the report, never a
428
+ * substitute for it.
426
429
  *
427
430
  * Rendered through the SHARED {@link formatIssueLines}, which `vat skills build`
428
- * and `vat skills validate` already use. The hand-rolled renderer this replaces
429
- * printed severity, code, location and fix — and dropped `message`, the only part
430
- * of a finding that says what is wrong. A second renderer for the same shape is
431
+ * and `vat skills validate` already use: a second renderer for the same shape is
431
432
  * how one command's findings end up spelled differently from every other's.
432
433
  */
433
- function reportPackagedContentIssues(issues, logger) {
434
+ function reportPackagedContentIssues(findings, logger) {
434
435
  logger.error(`\n▶ Phase: ${PACKAGED_CONTENT}`);
435
- for (const issue of issues) {
436
- for (const line of formatIssueLines(issue, ' '))
436
+ for (const finding of findings) {
437
+ for (const line of formatIssueLines(finding, ' '))
437
438
  logger.error(line);
438
439
  }
439
440
  }
@@ -471,7 +472,6 @@ const VERIFY_VOCABULARY = {
471
472
  validNames: VALID_PHASES,
472
473
  noop: {
473
474
  warning: 'No resources:, skills: or claude.marketplaces: block found in vibe-agent-toolkit.config.yaml — nothing to verify. If this is unexpected, check your config.',
474
- note: 'No configured phases (no resources, skills or claude.marketplaces block in vibe-agent-toolkit.config.yaml).',
475
475
  },
476
476
  };
477
477
  /**
@@ -503,12 +503,17 @@ export function selectVerifyPhases(config, configError, verbose) {
503
503
  if (unreadable || config?.resources) {
504
504
  phases.push({
505
505
  name: 'resources',
506
+ schema: RESOURCES_VALIDATE_REPORT_SCHEMA,
507
+ examined: RESOURCES_VALIDATE_EXAMINED,
506
508
  run: () => runResourcesValidatePhase(undefined, { verbose: detail }),
507
509
  });
508
510
  }
509
511
  if (unreadable || config?.skills) {
510
512
  phases.push({
511
513
  name: 'skills',
514
+ schema: SKILLS_VALIDATE_REPORT_SCHEMA,
515
+ // As `vat validate`: the phase validates the pool, and a plugin-local project has none.
516
+ examined: skillsPhaseExamined(SKILLS_VALIDATE_EXAMINED, () => shipsPluginLocalSkills(config, process.cwd())),
512
517
  run: () => runSkillsValidatePhase(undefined, { verbose: detail }),
513
518
  });
514
519
  }
@@ -519,6 +524,10 @@ export function selectVerifyPhases(config, configError, verbose) {
519
524
  const marketplacePath = `dist/.claude/plugins/marketplaces/${name}`;
520
525
  phases.push({
521
526
  name: `marketplace:${name}`,
527
+ schema: MARKETPLACE_VALIDATE_REPORT_SCHEMA,
528
+ // The verb's declaration, its unit naming WHICH marketplace: this phase runs once per marketplace,
529
+ // and two that examined nothing would otherwise publish one location-less finding twice.
530
+ examined: { ...MARKETPLACE_VALIDATE_EXAMINED, unit: `${MARKETPLACE_VALIDATE_EXAMINED.unit} of marketplace ${name}` },
522
531
  run: () => runMarketplaceValidatePhase(marketplacePath, { verbose: detail }),
523
532
  });
524
533
  }
@@ -546,7 +555,7 @@ const PACKAGED_CONTENT = 'packaged-content';
546
555
  * announced 'resources → files-config-dests → consistency' and emitted a
547
556
  * document holding `resources` and nothing else, so an operator read a claim
548
557
  * that distribution consistency had been checked. Both in-process phases read
549
- * the same input, the `skills:` block — without it {@link checkFilesConfigDests}
558
+ * the same input, the `skills:` block — without it {@link runFilesConfigDestsPhase}
550
559
  * has no `files:` entry to resolve (both `defaults.files` and
551
560
  * `config.<skill>.files` live under `skills:`, so every merge is empty) and
552
561
  * {@link runConsistencyPhase} returns before its first lookup. Neither can
@@ -571,32 +580,6 @@ export function formatVerifyAnnouncement(delegatedPhaseNames, config) {
571
580
  const all = [...delegatedPhaseNames, ...selectInProcessVerifyPhases(config)];
572
581
  return `🔍 vat verify (phases: ${all.join(' → ')})`;
573
582
  }
574
- /**
575
- * Project ONE finding into the archived YAML.
576
- *
577
- * The whole anchor rides along. This shape used to be `{severity, code, message,
578
- * fix}` and the projection destructured exactly those four, so every
579
- * `packaged-content` finding reached the document with no `location` — the same
580
- * defect this PR fixed one command over in `vat skills build`, where a published
581
- * count carried "no `code`, no location and no fix string at ANY verbosity". It
582
- * looked survivable only because `materializeIssue` happens to interpolate the
583
- * detail into `message` for this one code; that is a coincidence, not a contract,
584
- * and stderr is not the document a CI consumer parses.
585
- */
586
- export function toPublishedIssue(issue) {
587
- return {
588
- severity: issue.severity,
589
- code: issue.code,
590
- message: issue.message,
591
- fix: issue.fix ?? '',
592
- // Conditional rather than `location: issue.location`: `exactOptionalPropertyTypes`
593
- // distinguishes an absent key from an explicit `undefined`, and a YAML document
594
- // carrying `location: null` claims something the finding never said.
595
- ...(issue.location === undefined ? {} : { location: issue.location }),
596
- ...(issue.line === undefined ? {} : { line: issue.line }),
597
- ...(issue.reference === undefined ? {} : { reference: issue.reference }),
598
- };
599
- }
600
583
  /**
601
584
  * The refusal for a crawl that found only PART of the build.
602
585
  *
@@ -620,95 +603,53 @@ function missingBundlesFinding(crawl) {
620
603
  + ' Run `vat build` first, then re-run `vat verify`.')];
621
604
  }
622
605
  /**
623
- * Build the `packaged-content` phase result from what the crawl found.
606
+ * What a zero means for the `packaged-content` phase, read from its own `data`: nothing expected
607
+ * because every discovered skill is in place (`bundlesInPlace > 0`) IS a verdict; anything else
608
+ * is the zero every phase refuses, by {@link PACKAGED_CONTENT_EXAMINED}.
624
609
  *
625
- * 🚨 **Zero bundles is an ERROR, not a clean phase — and so is a MISSING one.**
626
- * The phase is pushed unconditionally whenever `skills:` exists and it feeds the
627
- * real exit code; `discoverSkillsFromConfig` returning `[]` on a typo'd glob —
628
- * or `dist/` not having been built at all, or built somewhere else — gave the
629
- * crawl nothing to walk, and nothing walked was zero findings was `success`,
630
- * with no count in the document to say the phase had looked at nothing. `vat
631
- * verify` exists to check the BUILT tree; a run that found none of it is not a
632
- * verdict on it. Nor is a run that found half of it: with `bundlesInspected` as
633
- * the only denominator, two discovered skills and one deleted bundle published
634
- * `success` beside `bundlesInspected: 1`. The crawl now also carries what it
635
- * should have found, and the document publishes both counts.
636
- *
637
- * One zero IS a verdict: nothing expected because every discovered skill is in
638
- * place (`bundlesInPlace > 0`). Zero discovered skills stays refused.
639
- *
640
- * Derived here, in the one function that produces this phase's document, and
641
- * not in the command body, so no path through the orchestrator can publish
642
- * `status: success` beside `bundlesInspected: 0` or beside a non-empty
643
- * `bundlesMissing`. Through the shared mechanism in `run-integrity.ts`: one
644
- * non-overridable `RESOURCE_CHECK_BROKEN` at `error`, which
645
- * {@link exitCodeForPhases} then turns into exit 1. ONE, not two, when both
646
- * apply: the missing-bundle refusal is derived first because it names paths,
647
- * and {@link nothingCheckedFinding} stands down behind an existing
648
- * run-integrity finding.
610
+ * The phase's `examined` declaration (`Phase.examined`): `runPhase` judges the phase with it
611
+ * through the one zero-examined helper, so this phase holds no refusal of its own for "crawled
612
+ * nothing" — only the one for "crawled part" ({@link missingBundlesFinding}).
649
613
  *
650
614
  * Pure, and exported so the refusal is pinned without a project on disk.
651
615
  */
616
+ function packagedContentExamined(report) {
617
+ const data = report.data;
618
+ if (data !== null && data.bundlesExpected === 0 && data.bundlesInPlace > 0) {
619
+ return { zeroIsAnAnswer: 'every discovered skill is in place (publish: false), so no built bundle is expected' };
620
+ }
621
+ return PACKAGED_CONTENT_EXAMINED;
622
+ }
623
+ /**
624
+ * Build the `packaged-content` phase from what the crawl found.
625
+ *
626
+ * 🚨 **Zero bundles is an ERROR, not a clean phase — and so is a MISSING one.**
627
+ * `vat verify` exists to check the BUILT tree; a run that found none of it is
628
+ * not a verdict on it, and neither is a run that found half of it. A crawl that
629
+ * found PART is refused here, naming the missing paths; one that found NONE is
630
+ * refused by `runPhase`, through the declaration {@link packagedContentExamined}
631
+ * answers — the same helper every phase's zero goes through. One
632
+ * `RESOURCE_CHECK_BROKEN` at `error`, never two: the helper stands down when the
633
+ * missing-bundle refusal is already there.
634
+ *
635
+ * Pure, and exported so the phase is pinned without a project on disk.
636
+ */
652
637
  export function buildPackagedContentPhase(crawl) {
653
- const { bundlesInspected, bundlesExpected, bundlesInPlace, bundlesMissing, issues: found } = crawl;
654
- const missing = missingBundlesFinding(crawl);
655
- const accountedFor = bundlesExpected === 0 ? bundlesInspected + bundlesInPlace : bundlesInspected;
656
- const issues = [
657
- ...missing,
658
- ...nothingCheckedFinding(accountedFor, [...missing, ...found], () => 'The packaged-content phase inspected 0 built skill bundles, so this phase is not a'
659
- + ' verdict: nothing was crawled for files that must not ship, and the document reads'
660
- + ' the same as a run over clean bundles. Either `vat build` has not run (or wrote'
661
- + ' somewhere other than dist/), or `skills.include` in vibe-agent-toolkit.config.yaml'
662
- + ' matched no SKILL.md — usually a typo in the glob. Run `vat build` first; `vat skills'
663
- + ' validate` lists what the globs discover.'),
664
- ...found,
665
- ];
638
+ const { issues: found, bundlesInspected, ...data } = crawl;
666
639
  return {
667
640
  name: PACKAGED_CONTENT,
668
- status: calculateValidationStatus(issues),
669
- // The denominator, beside the counts it qualifies — and what it should have been.
670
- bundlesInspected,
671
- bundlesExpected,
672
- bundlesInPlace,
673
- bundlesMissing,
674
- issueCounts: countBySeverity(issues),
675
- issues: issues.map(toPublishedIssue),
641
+ report: buildReport({
642
+ examined: bundlesInspected,
643
+ findings: toFindings([...missingBundlesFinding(crawl), ...found]),
644
+ data,
645
+ gate: ORCHESTRATOR_GATE,
646
+ }),
676
647
  };
677
648
  }
678
649
  /**
679
- * `ConsistencyIssue` speaks the same severity vocabulary as `ValidationIssue`
680
- * but carries a free-form `code`, so it is counted through this projection —
681
- * there must be exactly ONE issues→status/counts collapse in the codebase, and
682
- * it lives in `@vibe-agent-toolkit/schema`.
683
- */
684
- function asValidationIssues(issues) {
685
- return issues.map((issue) => ({
686
- code: issue.code,
687
- severity: issue.severity,
688
- message: issue.message,
689
- fix: issue.fix,
690
- ...(issue.location === undefined ? {} : { location: issue.location }),
691
- ...(issue.line === undefined ? {} : { line: issue.line }),
692
- }));
693
- }
694
- /**
695
- * Run the `packaged-content` phase: crawl, derive the phase document, and
696
- * report THAT document's issues on stderr.
697
- *
698
- * 🚨 **The stderr report used to be gated on the crawl, one line before the
699
- * refusal was derived.** `if (crawl.issues.length > 0) report(crawl.issues)`
700
- * ran ahead of {@link buildPackagedContentPhase}, which is where the
701
- * zero-bundle refusal is added — so on an unbuilt project the crawl found
702
- * nothing, nothing was logged, the skills phase's `✅ All validations passed`
703
- * stayed the last line on stderr, and the process exited 1 on a refusal that
704
- * existed only in the YAML. Reporting from the phase result makes what stderr
705
- * says and what the exit code is computed from one list, which is
706
- * `run-integrity.ts` invariant 6.
707
- *
708
- * The round trip through `asValidationIssues` is deliberate rather than
709
- * reporting the crawl's list plus a second derivation of the refusal: the
710
- * document is the artifact of record, and stderr should render exactly what it
711
- * carries, not a parallel computation that can drift from it.
650
+ * Run the `packaged-content` phase: crawl, derive the phase, and report THAT
651
+ * phase's findings on stderr — so what stderr says and what the exit code is
652
+ * computed from are one list (`run-integrity.ts` invariant 6).
712
653
  */
713
654
  export function runPackagedContentPhase(projectRoot, discoveredSkills, pluginLocal, pluginLocalNames, logger) {
714
655
  const phase = buildPackagedContentPhase(checkPackagedAgentInstructionFiles(projectRoot, discoveredSkills, pluginLocal, pluginLocalNames));
@@ -716,150 +657,145 @@ export function runPackagedContentPhase(projectRoot, discoveredSkills, pluginLoc
716
657
  return phase;
717
658
  }
718
659
  export function reportPackagedContentPhase(phase, logger) {
719
- if (phase.issues.length > 0) {
720
- reportPackagedContentIssues(asValidationIssues(phase.issues), logger);
660
+ const { findings, data, examined } = phase.report;
661
+ if (findings.length > 0) {
662
+ reportPackagedContentIssues(findings, logger);
721
663
  }
722
- else if (phase.bundlesExpected === 0 && phase.bundlesInspected === 0) {
723
- logger.info(`\n▶ Phase: ${PACKAGED_CONTENT} — nothing to inspect: all ${phase.bundlesInPlace} discovered skill(s) are in place (publish: false)`);
664
+ else if (data !== null && data.bundlesExpected === 0 && examined === 0) {
665
+ logger.info(`\n▶ Phase: ${PACKAGED_CONTENT} — nothing to inspect: all ${data.bundlesInPlace} discovered skill(s) are in place (publish: false)`);
724
666
  }
725
667
  }
668
+ /** One finding per `files:` dest absent from the built output, located at the path it should be. */
669
+ function filesDestFindings(projectRoot, missing) {
670
+ return missing.flatMap(({ skillName, outputDir, missing: dests }) => dests.map((dest) => ({
671
+ code: 'FILES_CONFIG_DEST_MISSING',
672
+ severity: 'error',
673
+ message: `Skill '${skillName}' declares the files: dest '${dest}', and the built output does not hold it.`,
674
+ location: toForwardSlash(safePath.relative(projectRoot, safePath.resolve(outputDir, dest))),
675
+ fix: 'Run `vat build` so the files: entry is applied, or correct the entry\'s dest in vibe-agent-toolkit.config.yaml.',
676
+ })));
677
+ }
726
678
  /**
727
- * Run the in-process consistency check phase and record its outcome.
679
+ * The `files-config-dests` phase: every built bundle declaring `files:` dests,
680
+ * checked. `examined` is the bundles checked — those that exist and declare at
681
+ * least one dest — and each missing dest is one `FILES_CONFIG_DEST_MISSING`
682
+ * error at the path it should be, relative to `projectRoot`. Always `error`: the
683
+ * code is a `NonOverridableCode`, so no `validation.severity` is read for it.
728
684
  *
729
- * The findings are published INTO the phase result, not merely logged: they used
730
- * to go to stderr only, so the archived YAML — the artifact of record — said
731
- * nothing happened. And a warning-only run reported `passed`, which is the
732
- * reassuring answer to a question it could not represent.
685
+ * @param discovered - The skills this run discovered from `skills.include`. See
686
+ * {@link collectBuiltSkillOutputs} for why it is required rather than optional.
687
+ * @param pluginLocal - The run's plugin-local index — required for the same reason.
688
+ * @param pluginLocalNames - The declared name of every location in `pluginLocal` — required for the same reason.
689
+ */
690
+ export function runFilesConfigDestsPhase(projectRoot, discovered, pluginLocal, pluginLocalNames, logger) {
691
+ const built = collectBuiltSkillOutputs(projectRoot, discovered, pluginLocal, pluginLocalNames).built;
692
+ const { checked, missing } = checkFilesConfigDestsOf(built, projectRoot);
693
+ if (missing.length > 0)
694
+ reportFilesDestErrors(missing, logger);
695
+ return {
696
+ name: FILES_CONFIG_DESTS,
697
+ report: buildReport({ examined: checked, findings: filesDestFindings(projectRoot, missing), data: null, gate: ORCHESTRATOR_GATE }),
698
+ };
699
+ }
700
+ /**
701
+ * The in-process consistency check phase, its findings published into the
702
+ * report, not merely logged: they used to go to stderr only, so the archived
703
+ * YAML — the artifact of record — said nothing happened.
733
704
  *
734
705
  * Discovery is handed in rather than performed here: it crawls the whole project,
735
706
  * and the packaged-content and files-config-dests phases need the same list. One
736
707
  * crawl per run, one answer to "which skills does this project have".
737
708
  */
738
- function runConsistencyPhase(logger, phaseResults, config, projectRoot, discoveredSkills, pluginLocal) {
739
- if (!config?.skills) {
740
- // Nothing to cross-reference, so nothing to report: a run without a
741
- // `skills:` block is a genuine no-op, and {@link selectInProcessVerifyPhases}
742
- // has already decided not to name this phase. There used to be a second arm
743
- // here that pushed an ERROR result instead — because `--only consistency`
744
- // had asked for THIS phase specifically, and answering an explicit request
745
- // with an empty phase list and `success` is the same silent pass
746
- // `vat validate --only <unconfigured surface>` refuses to give. With
747
- // `--only` retired from `vat verify` there is no way to ask for this phase
748
- // specifically, so that arm went with it. This guard remains reachable only
749
- // defensively (and narrows `config.skills` for the call below).
750
- return;
751
- }
752
- const consistencyResult = runConsistencyChecks([...discoveredSkills], config, projectRoot, pluginLocal);
753
- const issues = consistencyResult.issues;
754
- if (issues.length > 0) {
709
+ function runConsistencyPhase(logger, config, projectRoot, discoveredSkills, pluginLocal) {
710
+ const { issues } = runConsistencyChecks([...discoveredSkills], config, projectRoot, pluginLocal);
711
+ if (issues.length > 0)
755
712
  reportConsistencyIssues(issues, logger);
756
- }
757
- const asValidation = asValidationIssues(issues);
758
- const result = {
713
+ return {
759
714
  name: 'consistency',
760
- status: calculateValidationStatus(asValidation),
761
- issueCounts: countBySeverity(asValidation),
762
- issues: asValidation.map(toPublishedIssue),
715
+ report: buildReport({ examined: discoveredSkills.length, findings: issues, data: null, gate: ORCHESTRATOR_GATE }),
763
716
  };
764
- phaseResults.push(result);
765
717
  }
718
+ /**
719
+ * Run one in-process phase as a {@link Phase}, so a throw inside it — a
720
+ * `package.json` the OS will not read, coded `INPUT_UNREADABLE` — becomes THAT
721
+ * phase's refusal with its own code, and the phases that finished still publish.
722
+ */
723
+ function inProcess(phase, run) {
724
+ return runPhase({ ...phase, run: () => Promise.resolve({ report: run().report }) });
725
+ }
726
+ /**
727
+ * The three in-process phases, each with the schema its report is held to and what a zero means
728
+ * for it. Two check what the `skills` phase beside them discovered — it is that phase that refuses
729
+ * a discovery of none — and for them a zero of their own is an answer.
730
+ */
731
+ export const IN_PROCESS_PHASES = {
732
+ [FILES_CONFIG_DESTS]: {
733
+ name: FILES_CONFIG_DESTS,
734
+ schema: DATALESS_PHASE_REPORT_SCHEMA,
735
+ examined: { zeroIsAnAnswer: 'it checks the built bundles that declare a files: dest, and a project that declares none has nothing for it to check' },
736
+ },
737
+ [PACKAGED_CONTENT]: { name: PACKAGED_CONTENT, schema: PACKAGED_CONTENT_REPORT_SCHEMA, examined: packagedContentExamined },
738
+ consistency: {
739
+ name: 'consistency',
740
+ schema: DATALESS_PHASE_REPORT_SCHEMA,
741
+ examined: { zeroIsAnAnswer: 'it checks the skills the `skills` phase discovered, and that phase refuses a discovery of none' },
742
+ },
743
+ };
766
744
  /**
767
745
  * The in-process half of `vat verify`: `files-config-dests`, `packaged-content` and
768
- * `consistency`, each where `inProcess` names it.
746
+ * `consistency`, each where `inProcess` names it, each recorded as it finishes.
769
747
  */
770
748
  async function runInProcessPhases(run) {
771
- const { inProcess, config, projectRoot, logger, phaseResults } = run;
772
- // ONE discovery for the whole in-process half of the run. Every phase below
773
- // asks the same question — "which skills does this project have" — and each
774
- // answer used to be a different one: `consistency` crawled, while
775
- // `files-config-dests` and `packaged-content` read `skills.config` keys and
776
- // were therefore blind to every skill discovered by a glob.
777
- // `'refuse'`: a verify over a population it could not see is the
778
- // green-without-checking shape this command exists to refuse. The throw
779
- // lands in the command's catch → `handleCommandError`, exit 2, with the
780
- // crawl's own root-relative sentence.
749
+ const { phases, config, projectRoot, logger, results } = run;
750
+ // ONE discovery for the whole in-process half of the run: every phase below
751
+ // asks "which skills does this project have", and each used to answer it
752
+ // differently. `'refuse'`: a verify over a population it could not see is the
753
+ // green-without-checking shape this command exists to refuse — the throw is
754
+ // the run's refusal, published with the phases that already finished.
781
755
  const discoveredSkills = await discoverSkillsFromConfig(run.skills, projectRoot, 'refuse');
782
- // ONE plugin-local index likewise: listing it crawls every plugin, and every phase
783
- // below asks it (in-place vs plugin-only, plugin-tree bundles, plugin assignment).
756
+ // ONE plugin-local index likewise, and the declared name of each plugin-local
757
+ // skill, which keys its config exactly as the plugin build keyed it.
784
758
  const pluginLocal = indexPluginLocalSkills(config, projectRoot);
785
- // …and the declared name of each plugin-local skill, which keys its config exactly as
786
- // the plugin build keyed it.
787
759
  const pluginLocalNames = await readPluginLocalSkillNames(pluginLocal);
788
- // Post-build files config check: verify all dest paths exist in built output
789
- if (inProcess.includes(FILES_CONFIG_DESTS)) {
790
- const filesDestResults = checkFilesConfigDests(projectRoot, discoveredSkills, pluginLocal, pluginLocalNames);
791
- if (filesDestResults.length > 0) {
792
- reportFilesDestErrors(filesDestResults, logger);
793
- phaseResults.push({
794
- name: FILES_CONFIG_DESTS,
795
- status: 'error',
796
- issueCounts: { errors: filesDestResults.length, warnings: 0, info: 0 },
797
- });
798
- }
760
+ if (phases.includes(FILES_CONFIG_DESTS)) {
761
+ results.push(await inProcess(IN_PROCESS_PHASES[FILES_CONFIG_DESTS], () => runFilesConfigDestsPhase(projectRoot, discoveredSkills, pluginLocal, pluginLocalNames, logger)));
799
762
  }
800
- // Packaged-content check: crawl each built skill bundle for repo-internal
801
- // agent-instruction files. Publishes its findings INTO the document rather
802
- // than only logging them — a file that must not ship has to be visible in
803
- // `issueCounts`, or a CI consumer reads a clean report for a bundle carrying
804
- // one. Warnings do not fail the run; the exit code still comes from errors.
805
- // The zero-bundle refusal is derived inside the builder and logged from the
806
- // built phase, so stderr, the document and the exit code carry one list.
807
- if (inProcess.includes(PACKAGED_CONTENT)) {
808
- phaseResults.push(runPackagedContentPhase(projectRoot, discoveredSkills, pluginLocal, pluginLocalNames, logger));
763
+ if (phases.includes(PACKAGED_CONTENT)) {
764
+ results.push(await inProcess(IN_PROCESS_PHASES[PACKAGED_CONTENT], () => runPackagedContentPhase(projectRoot, discoveredSkills, pluginLocal, pluginLocalNames, logger)));
809
765
  }
810
- // Consistency check: cross-reference discovered skills vs package.json and plugin assignments
811
- if (inProcess.includes('consistency')) {
812
- runConsistencyPhase(logger, phaseResults, config, projectRoot, discoveredSkills, pluginLocal);
766
+ if (phases.includes('consistency')) {
767
+ results.push(await inProcess(IN_PROCESS_PHASES.consistency, () => runConsistencyPhase(logger, config, projectRoot, discoveredSkills, pluginLocal)));
813
768
  }
814
769
  }
815
770
  async function verifyTopLevelCommand(options, command) {
816
- // First, and before requireProjectRoot: `vat verify dist/skills/demo` used to
817
- // be accepted, have its path discarded, run wide over the whole project and
818
- // report success. Nothing below can un-tell that lie, so the run ends here.
819
- rejectPositionalArguments(command.args, COMMAND_NAME, 'verifies every phase vibe-agent-toolkit.config.yaml declares, against the built dist/ tree');
820
- // Before requireProjectRoot: a retired flag is a usage error, and answering it
821
- // with "no vibe-agent-toolkit.config.yaml found" would diagnose the wrong
822
- // problem for anyone running the old invocation outside a project.
823
- rejectRetiredOnly(options.only, COMMAND_NAME, VERIFY_FULL_RUN_SECONDS);
824
- const { logger, startTime } = createPhaseContext(options.debug);
825
- try {
826
- // Inside the try, deliberately: phase selection used to throw from out here
827
- // (on an unroutable `--only`), so the user got a raw Node stack trace and
828
- // zero bytes of the structured document a scripted caller parses — and so
829
- // did "no project here", at Node's default exit 1, which the contract reads
830
- // as FINDINGS.
771
+ const { logger } = createPhaseContext(options.debug);
772
+ const report = await orchestrate(async (results) => {
773
+ // First, and before requireProjectRoot: `vat verify dist/skills/demo` used to
774
+ // be accepted, have its path discarded, run wide over the whole project and
775
+ // report success.
776
+ rejectPositionalArguments(command.args, COMMAND_NAME, 'verifies every phase vibe-agent-toolkit.config.yaml declares, against the built dist/ tree');
777
+ // Before requireProjectRoot: a retired flag is a usage error, and answering it
778
+ // with "no vibe-agent-toolkit.config.yaml found" would diagnose the wrong problem.
779
+ rejectRetiredOnly(options.only, COMMAND_NAME, VERIFY_FULL_RUN_SECONDS);
831
780
  // Spec §7: `vat verify` requires a projectRoot.
832
781
  const projectRoot = requireProjectRoot(process.cwd(), COMMAND_NAME);
833
782
  const { config, error: configError } = loadConfigTolerant(projectRoot);
834
- const phases = applyPhaseSelection(selectVerifyPhases(config, configError, options.verbose), logger, startTime);
783
+ const phases = applyPhaseSelection(selectVerifyPhases(config, configError, options.verbose), logger);
835
784
  // Announced from the same list the in-process gates below read, so the
836
785
  // printed phases and the executed phases cannot disagree.
837
- const inProcess = selectInProcessVerifyPhases(config);
786
+ const inProcessPhases = selectInProcessVerifyPhases(config);
838
787
  logger.info(formatVerifyAnnouncement(phases.map((p) => p.name), config));
839
- const phaseResults = [];
840
- for (const phase of phases) {
788
+ // In order, deliberately: phases are announced in a fixed order and their
789
+ // stderr streams live, so overlapping them would interleave two running
790
+ // reports into one unreadable channel.
791
+ await forEachInOrder(phases, async (phase) => {
841
792
  logger.info(`\n▶ Phase: ${phase.name}`);
842
- // Awaited in the loop, deliberately: phases are announced in a fixed order
843
- // and their stderr streams live, so overlapping them would interleave two
844
- // running reports into one unreadable channel.
845
- phaseResults.push(await runPhase(phase));
846
- }
847
- if (inProcess.length > 0 && config?.skills) {
848
- await runInProcessPhases({ inProcess, config, skills: config.skills, projectRoot, logger, phaseResults });
849
- }
850
- const duration = Date.now() - startTime;
851
- // Worst-wins across phases, with `system-error` outranking `error`: a phase
852
- // that could not run exits 2, so a CI script can tell a broken config from
853
- // a broken artifact.
854
- writeYamlOutput({
855
- status: aggregatePhaseStatus(phaseResults),
856
- phases: phaseResults,
857
- duration: `${duration}ms`,
793
+ results.push(await runPhase(phase));
858
794
  });
859
- process.exit(exitCodeForPhases(phaseResults));
860
- }
861
- catch (error) {
862
- handleCommandError(error, logger, startTime, 'Verify');
863
- }
795
+ if (inProcessPhases.length > 0 && config?.skills) {
796
+ await runInProcessPhases({ phases: inProcessPhases, config, skills: config.skills, projectRoot, logger, results });
797
+ }
798
+ });
799
+ endWithReport('verify', report, ORCHESTRATOR_FORMAT);
864
800
  }
865
801
  //# sourceMappingURL=verify.js.map