@vibe-agent-toolkit/cli 0.2.0-rc.6 → 0.2.0-rc.8

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 (422) hide show
  1. package/README.md +4 -5
  2. package/dist/bin/vat +34 -19
  3. package/dist/bin/vat.js +34 -19
  4. package/dist/bin/vat.js.map +1 -1
  5. package/dist/bin.js +44 -158
  6. package/dist/bin.js.map +1 -1
  7. package/dist/command-loaders.d.ts +2 -2
  8. package/dist/command-loaders.d.ts.map +1 -1
  9. package/dist/command-loaders.js +4 -2
  10. package/dist/command-loaders.js.map +1 -1
  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/install-path.d.ts +36 -0
  18. package/dist/commands/agent/install-path.d.ts.map +1 -0
  19. package/dist/commands/agent/install-path.js +44 -0
  20. package/dist/commands/agent/install-path.js.map +1 -0
  21. package/dist/commands/agent/install.d.ts.map +1 -1
  22. package/dist/commands/agent/install.js +22 -10
  23. package/dist/commands/agent/install.js.map +1 -1
  24. package/dist/commands/agent/installed.d.ts.map +1 -1
  25. package/dist/commands/agent/installed.js +22 -12
  26. package/dist/commands/agent/installed.js.map +1 -1
  27. package/dist/commands/agent/list.d.ts.map +1 -1
  28. package/dist/commands/agent/list.js +2 -1
  29. package/dist/commands/agent/list.js.map +1 -1
  30. package/dist/commands/agent/run.d.ts.map +1 -1
  31. package/dist/commands/agent/run.js +2 -1
  32. package/dist/commands/agent/run.js.map +1 -1
  33. package/dist/commands/agent/uninstall.d.ts.map +1 -1
  34. package/dist/commands/agent/uninstall.js +13 -6
  35. package/dist/commands/agent/uninstall.js.map +1 -1
  36. package/dist/commands/agent/validate.d.ts.map +1 -1
  37. package/dist/commands/agent/validate.js +3 -2
  38. package/dist/commands/agent/validate.js.map +1 -1
  39. package/dist/commands/ard/emit.d.ts +153 -0
  40. package/dist/commands/ard/emit.d.ts.map +1 -0
  41. package/dist/commands/ard/emit.js +276 -0
  42. package/dist/commands/ard/emit.js.map +1 -0
  43. package/dist/commands/ard/index.d.ts +12 -0
  44. package/dist/commands/ard/index.d.ts.map +1 -0
  45. package/dist/commands/ard/index.js +80 -0
  46. package/dist/commands/ard/index.js.map +1 -0
  47. package/dist/commands/ard/surfaces.d.ts +56 -0
  48. package/dist/commands/ard/surfaces.d.ts.map +1 -0
  49. package/dist/commands/ard/surfaces.js +150 -0
  50. package/dist/commands/ard/surfaces.js.map +1 -0
  51. package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
  52. package/dist/commands/audit/distributed-tree.js +9 -6
  53. package/dist/commands/audit/distributed-tree.js.map +1 -1
  54. package/dist/commands/audit/scan-population.d.ts +158 -0
  55. package/dist/commands/audit/scan-population.d.ts.map +1 -0
  56. package/dist/commands/audit/scan-population.js +292 -0
  57. package/dist/commands/audit/scan-population.js.map +1 -0
  58. package/dist/commands/audit-settings.d.ts.map +1 -1
  59. package/dist/commands/audit-settings.js +6 -5
  60. package/dist/commands/audit-settings.js.map +1 -1
  61. package/dist/commands/audit.d.ts +78 -9
  62. package/dist/commands/audit.d.ts.map +1 -1
  63. package/dist/commands/audit.js +853 -473
  64. package/dist/commands/audit.js.map +1 -1
  65. package/dist/commands/build.d.ts.map +1 -1
  66. package/dist/commands/build.js +24 -24
  67. package/dist/commands/build.js.map +1 -1
  68. package/dist/commands/cache/clear.d.ts.map +1 -1
  69. package/dist/commands/cache/clear.js +17 -10
  70. package/dist/commands/cache/clear.js.map +1 -1
  71. package/dist/commands/claude/budget.d.ts +136 -24
  72. package/dist/commands/claude/budget.d.ts.map +1 -1
  73. package/dist/commands/claude/budget.js +152 -57
  74. package/dist/commands/claude/budget.js.map +1 -1
  75. package/dist/commands/claude/context.d.ts.map +1 -1
  76. package/dist/commands/claude/context.js +4 -3
  77. package/dist/commands/claude/context.js.map +1 -1
  78. package/dist/commands/claude/marketplace/changelog-utils.d.ts +1 -1
  79. package/dist/commands/claude/marketplace/changelog-utils.d.ts.map +1 -1
  80. package/dist/commands/claude/marketplace/changelog-utils.js +1 -2
  81. package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
  82. package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
  83. package/dist/commands/claude/marketplace/git-publish.js +3 -2
  84. package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
  85. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  86. package/dist/commands/claude/marketplace/license-utils.js +0 -1
  87. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  88. package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
  89. package/dist/commands/claude/marketplace/publish-tree.js +0 -6
  90. package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
  91. package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
  92. package/dist/commands/claude/marketplace/publish.js +2 -1
  93. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  94. package/dist/commands/claude/marketplace/validate.d.ts +55 -22
  95. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  96. package/dist/commands/claude/marketplace/validate.js +392 -77
  97. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  98. package/dist/commands/claude/org/api-keys.d.ts +0 -3
  99. package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
  100. package/dist/commands/claude/org/api-keys.js +2 -1
  101. package/dist/commands/claude/org/api-keys.js.map +1 -1
  102. package/dist/commands/claude/org/helpers.d.ts +17 -22
  103. package/dist/commands/claude/org/helpers.d.ts.map +1 -1
  104. package/dist/commands/claude/org/helpers.js +6 -22
  105. package/dist/commands/claude/org/helpers.js.map +1 -1
  106. package/dist/commands/claude/org/invites.d.ts +0 -3
  107. package/dist/commands/claude/org/invites.d.ts.map +1 -1
  108. package/dist/commands/claude/org/invites.js +3 -2
  109. package/dist/commands/claude/org/invites.js.map +1 -1
  110. package/dist/commands/claude/org/skills.d.ts +103 -4
  111. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  112. package/dist/commands/claude/org/skills.js +331 -123
  113. package/dist/commands/claude/org/skills.js.map +1 -1
  114. package/dist/commands/claude/org/users.d.ts +0 -3
  115. package/dist/commands/claude/org/users.d.ts.map +1 -1
  116. package/dist/commands/claude/org/users.js +3 -2
  117. package/dist/commands/claude/org/users.js.map +1 -1
  118. package/dist/commands/claude/org/workspaces.d.ts +0 -3
  119. package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
  120. package/dist/commands/claude/org/workspaces.js +6 -5
  121. package/dist/commands/claude/org/workspaces.js.map +1 -1
  122. package/dist/commands/claude/plugin/build.d.ts +8 -0
  123. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  124. package/dist/commands/claude/plugin/build.js +28 -33
  125. package/dist/commands/claude/plugin/build.js.map +1 -1
  126. package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
  127. package/dist/commands/claude/plugin/helpers.js +0 -6
  128. package/dist/commands/claude/plugin/helpers.js.map +1 -1
  129. package/dist/commands/claude/plugin/install.d.ts +12 -0
  130. package/dist/commands/claude/plugin/install.d.ts.map +1 -1
  131. package/dist/commands/claude/plugin/install.js +71 -60
  132. package/dist/commands/claude/plugin/install.js.map +1 -1
  133. package/dist/commands/claude/plugin/list.d.ts.map +1 -1
  134. package/dist/commands/claude/plugin/list.js +3 -2
  135. package/dist/commands/claude/plugin/list.js.map +1 -1
  136. package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
  137. package/dist/commands/claude/plugin/plugin-changelog.js +0 -2
  138. package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
  139. package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
  140. package/dist/commands/claude/plugin/plugin-files.js +0 -3
  141. package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
  142. package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
  143. package/dist/commands/claude/plugin/plugin-validators.js +3 -6
  144. package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
  145. package/dist/commands/claude/plugin/tree-copy.d.ts +73 -0
  146. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  147. package/dist/commands/claude/plugin/tree-copy.js +221 -15
  148. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  149. package/dist/commands/claude/plugin/uninstall.d.ts.map +1 -1
  150. package/dist/commands/claude/plugin/uninstall.js +4 -4
  151. package/dist/commands/claude/plugin/uninstall.js.map +1 -1
  152. package/dist/commands/consistency-check.d.ts +9 -13
  153. package/dist/commands/consistency-check.d.ts.map +1 -1
  154. package/dist/commands/consistency-check.js +91 -81
  155. package/dist/commands/consistency-check.js.map +1 -1
  156. package/dist/commands/corpus/index.d.ts.map +1 -1
  157. package/dist/commands/corpus/index.js +3 -0
  158. package/dist/commands/corpus/index.js.map +1 -1
  159. package/dist/commands/corpus/report.d.ts +0 -1
  160. package/dist/commands/corpus/report.d.ts.map +1 -1
  161. package/dist/commands/corpus/report.js +1 -3
  162. package/dist/commands/corpus/report.js.map +1 -1
  163. package/dist/commands/corpus/runner.d.ts +58 -1
  164. package/dist/commands/corpus/runner.d.ts.map +1 -1
  165. package/dist/commands/corpus/runner.js +92 -21
  166. package/dist/commands/corpus/runner.js.map +1 -1
  167. package/dist/commands/corpus/scan.d.ts.map +1 -1
  168. package/dist/commands/corpus/scan.js +2 -4
  169. package/dist/commands/corpus/scan.js.map +1 -1
  170. package/dist/commands/corpus/seed.d.ts +4 -4
  171. package/dist/commands/corpus/seed.d.ts.map +1 -1
  172. package/dist/commands/corpus/seed.js +1 -3
  173. package/dist/commands/corpus/seed.js.map +1 -1
  174. package/dist/commands/doctor.d.ts +14 -0
  175. package/dist/commands/doctor.d.ts.map +1 -1
  176. package/dist/commands/doctor.js +147 -51
  177. package/dist/commands/doctor.js.map +1 -1
  178. package/dist/commands/inventory.d.ts.map +1 -1
  179. package/dist/commands/inventory.js +6 -7
  180. package/dist/commands/inventory.js.map +1 -1
  181. package/dist/commands/mcp/list-collections.d.ts.map +1 -1
  182. package/dist/commands/mcp/list-collections.js +2 -1
  183. package/dist/commands/mcp/list-collections.js.map +1 -1
  184. package/dist/commands/mcp/serve.d.ts.map +1 -1
  185. package/dist/commands/mcp/serve.js +3 -2
  186. package/dist/commands/mcp/serve.js.map +1 -1
  187. package/dist/commands/okf/index.d.ts +11 -0
  188. package/dist/commands/okf/index.d.ts.map +1 -0
  189. package/dist/commands/okf/index.js +114 -0
  190. package/dist/commands/okf/index.js.map +1 -0
  191. package/dist/commands/okf/validate.d.ts +191 -0
  192. package/dist/commands/okf/validate.d.ts.map +1 -0
  193. package/dist/commands/okf/validate.js +190 -0
  194. package/dist/commands/okf/validate.js.map +1 -0
  195. package/dist/commands/phase-utils.d.ts +30 -13
  196. package/dist/commands/phase-utils.d.ts.map +1 -1
  197. package/dist/commands/phase-utils.js +56 -19
  198. package/dist/commands/phase-utils.js.map +1 -1
  199. package/dist/commands/positional-args.d.ts.map +1 -1
  200. package/dist/commands/positional-args.js +2 -1
  201. package/dist/commands/positional-args.js.map +1 -1
  202. package/dist/commands/rag/clear-command.d.ts.map +1 -1
  203. package/dist/commands/rag/clear-command.js +2 -1
  204. package/dist/commands/rag/clear-command.js.map +1 -1
  205. package/dist/commands/rag/index-command.d.ts +27 -2
  206. package/dist/commands/rag/index-command.d.ts.map +1 -1
  207. package/dist/commands/rag/index-command.js +48 -8
  208. package/dist/commands/rag/index-command.js.map +1 -1
  209. package/dist/commands/rag/index.d.ts.map +1 -1
  210. package/dist/commands/rag/index.js +2 -0
  211. package/dist/commands/rag/index.js.map +1 -1
  212. package/dist/commands/rag/query-command.d.ts.map +1 -1
  213. package/dist/commands/rag/query-command.js +2 -1
  214. package/dist/commands/rag/query-command.js.map +1 -1
  215. package/dist/commands/rag/stats-command.d.ts.map +1 -1
  216. package/dist/commands/rag/stats-command.js +2 -1
  217. package/dist/commands/rag/stats-command.js.map +1 -1
  218. package/dist/commands/resources/check-progress.d.ts +3 -0
  219. package/dist/commands/resources/check-progress.d.ts.map +1 -1
  220. package/dist/commands/resources/check-progress.js +11 -2
  221. package/dist/commands/resources/check-progress.js.map +1 -1
  222. package/dist/commands/resources/check-supervisor.d.ts.map +1 -1
  223. package/dist/commands/resources/check-supervisor.js +14 -7
  224. package/dist/commands/resources/check-supervisor.js.map +1 -1
  225. package/dist/commands/resources/check.d.ts +168 -8
  226. package/dist/commands/resources/check.d.ts.map +1 -1
  227. package/dist/commands/resources/check.js +222 -118
  228. package/dist/commands/resources/check.js.map +1 -1
  229. package/dist/commands/resources/index.d.ts.map +1 -1
  230. package/dist/commands/resources/index.js +64 -29
  231. package/dist/commands/resources/index.js.map +1 -1
  232. package/dist/commands/resources/query.d.ts +18 -1
  233. package/dist/commands/resources/query.d.ts.map +1 -1
  234. package/dist/commands/resources/query.js +33 -12
  235. package/dist/commands/resources/query.js.map +1 -1
  236. package/dist/commands/resources/scan.d.ts.map +1 -1
  237. package/dist/commands/resources/scan.js +4 -8
  238. package/dist/commands/resources/scan.js.map +1 -1
  239. package/dist/commands/resources/validate.d.ts +30 -1
  240. package/dist/commands/resources/validate.d.ts.map +1 -1
  241. package/dist/commands/resources/validate.js +116 -14
  242. package/dist/commands/resources/validate.js.map +1 -1
  243. package/dist/commands/skill/review-checklist.d.ts +3 -2
  244. package/dist/commands/skill/review-checklist.d.ts.map +1 -1
  245. package/dist/commands/skill/review-checklist.js +4 -2
  246. package/dist/commands/skill/review-checklist.js.map +1 -1
  247. package/dist/commands/skill/review.d.ts +247 -0
  248. package/dist/commands/skill/review.d.ts.map +1 -1
  249. package/dist/commands/skill/review.js +98 -61
  250. package/dist/commands/skill/review.js.map +1 -1
  251. package/dist/commands/skill/test/configure.d.ts.map +1 -1
  252. package/dist/commands/skill/test/configure.js +0 -1
  253. package/dist/commands/skill/test/configure.js.map +1 -1
  254. package/dist/commands/skill/test/run.d.ts +12 -6
  255. package/dist/commands/skill/test/run.d.ts.map +1 -1
  256. package/dist/commands/skill/test/run.js +137 -67
  257. package/dist/commands/skill/test/run.js.map +1 -1
  258. package/dist/commands/skills/build.d.ts +69 -2
  259. package/dist/commands/skills/build.d.ts.map +1 -1
  260. package/dist/commands/skills/build.js +128 -42
  261. package/dist/commands/skills/build.js.map +1 -1
  262. package/dist/commands/skills/install.d.ts +2 -1
  263. package/dist/commands/skills/install.d.ts.map +1 -1
  264. package/dist/commands/skills/install.js +20 -30
  265. package/dist/commands/skills/install.js.map +1 -1
  266. package/dist/commands/skills/list.d.ts +2 -1
  267. package/dist/commands/skills/list.d.ts.map +1 -1
  268. package/dist/commands/skills/list.js +44 -26
  269. package/dist/commands/skills/list.js.map +1 -1
  270. package/dist/commands/skills/package.d.ts +1 -1
  271. package/dist/commands/skills/package.d.ts.map +1 -1
  272. package/dist/commands/skills/package.js +6 -8
  273. package/dist/commands/skills/package.js.map +1 -1
  274. package/dist/commands/skills/scope-guard.d.ts.map +1 -1
  275. package/dist/commands/skills/scope-guard.js +2 -4
  276. package/dist/commands/skills/scope-guard.js.map +1 -1
  277. package/dist/commands/skills/shared.d.ts.map +1 -1
  278. package/dist/commands/skills/shared.js +2 -4
  279. package/dist/commands/skills/shared.js.map +1 -1
  280. package/dist/commands/skills/skill-discovery.d.ts +40 -1
  281. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  282. package/dist/commands/skills/skill-discovery.js +32 -4
  283. package/dist/commands/skills/skill-discovery.js.map +1 -1
  284. package/dist/commands/skills/source-resolvers.d.ts +15 -0
  285. package/dist/commands/skills/source-resolvers.d.ts.map +1 -1
  286. package/dist/commands/skills/source-resolvers.js +25 -4
  287. package/dist/commands/skills/source-resolvers.js.map +1 -1
  288. package/dist/commands/skills/validate-command.d.ts.map +1 -1
  289. package/dist/commands/skills/validate-command.js +11 -3
  290. package/dist/commands/skills/validate-command.js.map +1 -1
  291. package/dist/commands/skills/validate.d.ts +66 -7
  292. package/dist/commands/skills/validate.d.ts.map +1 -1
  293. package/dist/commands/skills/validate.js +133 -29
  294. package/dist/commands/skills/validate.js.map +1 -1
  295. package/dist/commands/validate.d.ts +1 -1
  296. package/dist/commands/validate.js +8 -6
  297. package/dist/commands/validate.js.map +1 -1
  298. package/dist/commands/verify.d.ts +102 -5
  299. package/dist/commands/verify.d.ts.map +1 -1
  300. package/dist/commands/verify.js +246 -69
  301. package/dist/commands/verify.js.map +1 -1
  302. package/dist/index.d.ts +0 -1
  303. package/dist/index.d.ts.map +1 -1
  304. package/dist/index.js +5 -1
  305. package/dist/index.js.map +1 -1
  306. package/dist/report-schemas.d.ts +45 -0
  307. package/dist/report-schemas.d.ts.map +1 -0
  308. package/dist/report-schemas.js +102 -0
  309. package/dist/report-schemas.js.map +1 -0
  310. package/dist/skill-resolution/packaging-config.d.ts +49 -5
  311. package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
  312. package/dist/skill-resolution/packaging-config.js +59 -19
  313. package/dist/skill-resolution/packaging-config.js.map +1 -1
  314. package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
  315. package/dist/skill-resolution/resolve-skill-reference.js +8 -6
  316. package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
  317. package/dist/utils/agent-discovery.d.ts.map +1 -1
  318. package/dist/utils/agent-discovery.js +22 -11
  319. package/dist/utils/agent-discovery.js.map +1 -1
  320. package/dist/utils/agent-runner.d.ts.map +1 -1
  321. package/dist/utils/agent-runner.js +0 -1
  322. package/dist/utils/agent-runner.js.map +1 -1
  323. package/dist/utils/command-error.d.ts +87 -55
  324. package/dist/utils/command-error.d.ts.map +1 -1
  325. package/dist/utils/command-error.js +113 -64
  326. package/dist/utils/command-error.js.map +1 -1
  327. package/dist/utils/config-loader.d.ts +2 -1
  328. package/dist/utils/config-loader.d.ts.map +1 -1
  329. package/dist/utils/config-loader.js +3 -6
  330. package/dist/utils/config-loader.js.map +1 -1
  331. package/dist/utils/context-budget-issues.d.ts +1 -1
  332. package/dist/utils/context-budget-issues.js +1 -1
  333. package/dist/utils/corpus-target.d.ts +5 -27
  334. package/dist/utils/corpus-target.d.ts.map +1 -1
  335. package/dist/utils/corpus-target.js +7 -33
  336. package/dist/utils/corpus-target.js.map +1 -1
  337. package/dist/utils/edge-lens-evaluation.d.ts +83 -0
  338. package/dist/utils/edge-lens-evaluation.d.ts.map +1 -0
  339. package/dist/utils/edge-lens-evaluation.js +110 -0
  340. package/dist/utils/edge-lens-evaluation.js.map +1 -0
  341. package/dist/utils/help-loader.d.ts.map +1 -1
  342. package/dist/utils/help-loader.js +0 -1
  343. package/dist/utils/help-loader.js.map +1 -1
  344. package/dist/utils/issue-rendering.d.ts +2 -2
  345. package/dist/utils/issue-rendering.js +2 -2
  346. package/dist/utils/optional-backend.d.ts +5 -4
  347. package/dist/utils/optional-backend.d.ts.map +1 -1
  348. package/dist/utils/optional-backend.js +7 -5
  349. package/dist/utils/optional-backend.js.map +1 -1
  350. package/dist/utils/output.d.ts +9 -0
  351. package/dist/utils/output.d.ts.map +1 -1
  352. package/dist/utils/output.js +16 -0
  353. package/dist/utils/output.js.map +1 -1
  354. package/dist/utils/package-json.d.ts +24 -0
  355. package/dist/utils/package-json.d.ts.map +1 -0
  356. package/dist/utils/package-json.js +49 -0
  357. package/dist/utils/package-json.js.map +1 -0
  358. package/dist/utils/project-root-policy.d.ts +20 -0
  359. package/dist/utils/project-root-policy.d.ts.map +1 -1
  360. package/dist/utils/project-root-policy.js +30 -0
  361. package/dist/utils/project-root-policy.js.map +1 -1
  362. package/dist/utils/projection-query.d.ts +41 -4
  363. package/dist/utils/projection-query.d.ts.map +1 -1
  364. package/dist/utils/projection-query.js +44 -10
  365. package/dist/utils/projection-query.js.map +1 -1
  366. package/dist/utils/projection-store.d.ts +41 -15
  367. package/dist/utils/projection-store.d.ts.map +1 -1
  368. package/dist/utils/projection-store.js +65 -18
  369. package/dist/utils/projection-store.js.map +1 -1
  370. package/dist/utils/repeatable-option.d.ts +37 -0
  371. package/dist/utils/repeatable-option.d.ts.map +1 -0
  372. package/dist/utils/repeatable-option.js +39 -0
  373. package/dist/utils/repeatable-option.js.map +1 -0
  374. package/dist/utils/resource-loader.d.ts +4 -3
  375. package/dist/utils/resource-loader.d.ts.map +1 -1
  376. package/dist/utils/resource-loader.js +63 -32
  377. package/dist/utils/resource-loader.js.map +1 -1
  378. package/dist/utils/root-argv.d.ts +53 -0
  379. package/dist/utils/root-argv.d.ts.map +1 -0
  380. package/dist/utils/root-argv.js +215 -0
  381. package/dist/utils/root-argv.js.map +1 -0
  382. package/dist/utils/run-integrity.d.ts +95 -0
  383. package/dist/utils/run-integrity.d.ts.map +1 -0
  384. package/dist/utils/run-integrity.js +102 -0
  385. package/dist/utils/run-integrity.js.map +1 -0
  386. package/dist/utils/skill-packaging-config.d.ts +27 -0
  387. package/dist/utils/skill-packaging-config.d.ts.map +1 -1
  388. package/dist/utils/skill-packaging-config.js +30 -0
  389. package/dist/utils/skill-packaging-config.js.map +1 -1
  390. package/dist/utils/sqlite-experimental-warning.d.ts +69 -0
  391. package/dist/utils/sqlite-experimental-warning.d.ts.map +1 -0
  392. package/dist/utils/sqlite-experimental-warning.js +144 -0
  393. package/dist/utils/sqlite-experimental-warning.js.map +1 -0
  394. package/dist/utils/url-redact.d.ts.map +1 -1
  395. package/dist/utils/url-redact.js +4 -6
  396. package/dist/utils/url-redact.js.map +1 -1
  397. package/dist/utils/user-context-scanner.d.ts +8 -0
  398. package/dist/utils/user-context-scanner.d.ts.map +1 -1
  399. package/dist/utils/user-context-scanner.js +4 -2
  400. package/dist/utils/user-context-scanner.js.map +1 -1
  401. package/dist/utils/validate-help-files.d.ts.map +1 -1
  402. package/dist/utils/validate-help-files.js +12 -6
  403. package/dist/utils/validate-help-files.js.map +1 -1
  404. package/dist/utils/vat-bin-path.d.ts.map +1 -1
  405. package/dist/utils/vat-bin-path.js +0 -1
  406. package/dist/utils/vat-bin-path.js.map +1 -1
  407. package/dist/version.d.ts.map +1 -1
  408. package/dist/version.js +1 -3
  409. package/dist/version.js.map +1 -1
  410. package/docs/audit.md +141 -37
  411. package/docs/doctor.md +7 -6
  412. package/docs/index.md +19 -11
  413. package/docs/rag.md +3 -2
  414. package/docs/resources.md +5 -2
  415. package/docs/skill-test.md +10 -9
  416. package/docs/skills.md +53 -69
  417. package/package.json +24 -29
  418. package/schemas/ard-emit.json +149 -0
  419. package/schemas/claude-budget.json +197 -0
  420. package/schemas/okf-validate.json +170 -0
  421. package/schemas/resources-check.json +186 -0
  422. package/schemas/skill-review.json +230 -0
@@ -50,9 +50,10 @@
50
50
  * defect this lane already shipped once on the query side, and it is invisible to
51
51
  * any assertion that checks presence rather than counting occurrences.
52
52
  */
53
- import { type BudgetSweep, type StatedLimit } from '@vibe-agent-toolkit/resources';
54
- import { type SeverityCounts, type ValidationIssue } from '@vibe-agent-toolkit/schema';
53
+ import { type BudgetSweep } from '@vibe-agent-toolkit/resources';
54
+ import { type Report, type ValidationIssue } from '@vibe-agent-toolkit/schema';
55
55
  import { Command } from 'commander';
56
+ import { z } from 'zod';
56
57
  /** How the report is rendered. `text` is for a person; the other two are for a program. */
57
58
  export type BudgetOutputFormat = 'text' | 'yaml' | 'json';
58
59
  /** Flags `vat claude budget` accepts. */
@@ -61,31 +62,26 @@ export interface ClaudeBudgetOptions {
61
62
  debug?: boolean;
62
63
  }
63
64
  /**
64
- * The report one run emits.
65
+ * What one run reports beyond its findings.
65
66
  *
66
- * The three sweep counters ride beside the findings and describe the WHOLE
67
- * tree, not the scope: a scope narrows what is reported, never what was
68
- * measured. Publishing them is what keeps an empty `findings` legible — "9
69
- * chains checked, none over budget" and "nothing was checked" are different
70
- * answers and must not render identically.
67
+ * The sweep counters describe the WHOLE tree, not the scope: a scope narrows
68
+ * what is reported, never what was measured. The envelope's `examined` is the
69
+ * working-location count for the same reason — "9 chains checked, none over
70
+ * budget" and "nothing was checked" are different answers and must not render
71
+ * identically.
71
72
  */
72
- export interface BudgetReport {
73
- readonly root: string;
73
+ export declare const BudgetDataSchema: z.ZodObject<{
74
+ root: z.ZodString;
74
75
  /** The budget every chain was measured against, in tokens. */
75
- readonly threshold: number;
76
+ threshold: z.ZodNumber;
76
77
  /** The root-relative directories asked about. `''` is the whole tree. */
77
- readonly scope: readonly string[];
78
+ scope: z.ZodArray<z.ZodString, "many">;
78
79
  /** Requested paths that named no working location — see `scopeSweepToPaths`. */
79
- readonly unmatchedScope: readonly string[];
80
- readonly status: 'success' | 'warning' | 'error';
81
- readonly issueCounts: SeverityCounts;
82
- /** Working locations the sweep evaluated, across the whole tree. */
83
- readonly workingLocations: number;
84
- /** Distinct instruction chains among them — the queries the sweep really issued. */
85
- readonly distinctChains: number;
80
+ unmatchedScope: z.ZodArray<z.ZodString, "many">;
81
+ /** Distinct instruction chains among the working locations — the queries the sweep really issued. */
82
+ distinctChains: z.ZodNumber;
86
83
  /** Locations whose representative the projection never realized. Counted, never zeroed. */
87
- readonly skippedUnknownLocations: number;
88
- readonly findings: readonly ValidationIssue[];
84
+ skippedUnknownLocations: z.ZodNumber;
89
85
  /**
90
86
  * What this verdict does not settle, in either direction. Stated ONCE.
91
87
  *
@@ -94,10 +90,119 @@ export interface BudgetReport {
94
90
  * reads as though that chain had caveats of its own, and repeated across a
95
91
  * sweep it is pure byte-identical duplication.
96
92
  */
97
- readonly boundsStatement: string;
93
+ boundsStatement: z.ZodString;
98
94
  /** The signed over/under-report bounds on the method. Stated ONCE. */
99
- readonly limits: readonly StatedLimit[];
100
- }
95
+ limits: z.ZodArray<z.ZodObject<{
96
+ id: z.ZodString;
97
+ direction: z.ZodEnum<["over-report", "under-report", "scope", "assumption"]>;
98
+ statement: z.ZodString;
99
+ }, "strict", z.ZodTypeAny, {
100
+ id: string;
101
+ direction: "scope" | "over-report" | "under-report" | "assumption";
102
+ statement: string;
103
+ }, {
104
+ id: string;
105
+ direction: "scope" | "over-report" | "under-report" | "assumption";
106
+ statement: string;
107
+ }>, "many">;
108
+ }, "strict", z.ZodTypeAny, {
109
+ root: string;
110
+ scope: string[];
111
+ threshold: number;
112
+ unmatchedScope: string[];
113
+ distinctChains: number;
114
+ skippedUnknownLocations: number;
115
+ boundsStatement: string;
116
+ limits: {
117
+ id: string;
118
+ direction: "scope" | "over-report" | "under-report" | "assumption";
119
+ statement: string;
120
+ }[];
121
+ }, {
122
+ root: string;
123
+ scope: string[];
124
+ threshold: number;
125
+ unmatchedScope: string[];
126
+ distinctChains: number;
127
+ skippedUnknownLocations: number;
128
+ boundsStatement: string;
129
+ limits: {
130
+ id: string;
131
+ direction: "scope" | "over-report" | "under-report" | "assumption";
132
+ statement: string;
133
+ }[];
134
+ }>;
135
+ export type BudgetData = z.infer<typeof BudgetDataSchema>;
136
+ /** The document this command publishes. */
137
+ export declare const BUDGET_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").ReportZodSchema<z.ZodObject<{
138
+ root: z.ZodString;
139
+ /** The budget every chain was measured against, in tokens. */
140
+ threshold: z.ZodNumber;
141
+ /** The root-relative directories asked about. `''` is the whole tree. */
142
+ scope: z.ZodArray<z.ZodString, "many">;
143
+ /** Requested paths that named no working location — see `scopeSweepToPaths`. */
144
+ unmatchedScope: z.ZodArray<z.ZodString, "many">;
145
+ /** Distinct instruction chains among the working locations — the queries the sweep really issued. */
146
+ distinctChains: z.ZodNumber;
147
+ /** Locations whose representative the projection never realized. Counted, never zeroed. */
148
+ skippedUnknownLocations: z.ZodNumber;
149
+ /**
150
+ * What this verdict does not settle, in either direction. Stated ONCE.
151
+ *
152
+ * ⛔ On the report beside `threshold`, never on a finding. These bound the
153
+ * MEASUREMENT METHOD, not any one chain — a finding carrying its own copy
154
+ * reads as though that chain had caveats of its own, and repeated across a
155
+ * sweep it is pure byte-identical duplication.
156
+ */
157
+ boundsStatement: z.ZodString;
158
+ /** The signed over/under-report bounds on the method. Stated ONCE. */
159
+ limits: z.ZodArray<z.ZodObject<{
160
+ id: z.ZodString;
161
+ direction: z.ZodEnum<["over-report", "under-report", "scope", "assumption"]>;
162
+ statement: z.ZodString;
163
+ }, "strict", z.ZodTypeAny, {
164
+ id: string;
165
+ direction: "scope" | "over-report" | "under-report" | "assumption";
166
+ statement: string;
167
+ }, {
168
+ id: string;
169
+ direction: "scope" | "over-report" | "under-report" | "assumption";
170
+ statement: string;
171
+ }>, "many">;
172
+ }, "strict", z.ZodTypeAny, {
173
+ root: string;
174
+ scope: string[];
175
+ threshold: number;
176
+ unmatchedScope: string[];
177
+ distinctChains: number;
178
+ skippedUnknownLocations: number;
179
+ boundsStatement: string;
180
+ limits: {
181
+ id: string;
182
+ direction: "scope" | "over-report" | "under-report" | "assumption";
183
+ statement: string;
184
+ }[];
185
+ }, {
186
+ root: string;
187
+ scope: string[];
188
+ threshold: number;
189
+ unmatchedScope: string[];
190
+ distinctChains: number;
191
+ skippedUnknownLocations: number;
192
+ boundsStatement: string;
193
+ limits: {
194
+ id: string;
195
+ direction: "scope" | "over-report" | "under-report" | "assumption";
196
+ statement: string;
197
+ }[];
198
+ }>>;
199
+ /**
200
+ * The report one run emits: one finding per over-budget chain — plus, ahead of
201
+ * them, the run-integrity refusal when part of what was asked about was never
202
+ * measured. See {@link buildReport}: the second kind is DERIVED there rather
203
+ * than passed in, so no report can carry an unmatched path and a clean status.
204
+ */
205
+ export type BudgetReport = Report<BudgetData>;
101
206
  /**
102
207
  * Create the `vat claude budget [paths...]` command.
103
208
  *
@@ -120,6 +225,7 @@ export interface ReportInput {
120
225
  readonly scoped: {
121
226
  readonly unmatchedScope: readonly string[];
122
227
  };
228
+ /** The BUDGET findings only. The run-integrity refusal is derived, not passed. */
123
229
  readonly findings: readonly ValidationIssue[];
124
230
  }
125
231
  /**
@@ -139,6 +245,12 @@ export interface ReportInput {
139
245
  * block appears exactly once across a MULTI-finding report — and a presence
140
246
  * check passes identically with a copy per finding.
141
247
  *
248
+ * ⛔ The run-integrity refusal is DERIVED here from `scoped.unmatchedScope`
249
+ * rather than assembled by the caller, which is what makes "a run that checked
250
+ * nothing never reports success" unrepresentable instead of merely observed:
251
+ * there is no pipeline step left in which a later edit could drop it. See
252
+ * {@link nothingCheckedFindings}.
253
+ *
142
254
  * @param input - The run's parts
143
255
  * @returns The report, ready to serialize
144
256
  */
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../../src/commands/claude/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAmB5C,2FAA2F;AAC3F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,oEAAoE;IACpE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAmE7C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAgB5D;AAkFD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAa7D"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../../src/commands/claude/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAKL,KAAK,MAAM,EAGX,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,2FAA2F;AAC3F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;IAE3B,8DAA8D;;IAE9D,yEAAyE;;IAEzE,gFAAgF;;IAEhF,qGAAqG;;IAErG,2FAA2F;;IAE3F;;;;;;;OAOG;;IAEH,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE7D,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB;;IA1B/B,8DAA8D;;IAE9D,yEAAyE;;IAEzE,gFAAgF;;IAEhF,qGAAqG;;IAErG,2FAA2F;;IAE3F;;;;;;;OAOG;;IAEH,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAON,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAwE7C;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAChE,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAmB5D;AAsID;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAY7D"}
@@ -51,10 +51,11 @@
51
51
  * any assertion that checks presence rather than counting occurrences.
52
52
  */
53
53
  import { ALWAYS_LOADED_BUDGET_LIMITS, buildClaudeContextPopulation, CLAUDE_CONTEXT_BOUNDS_STATEMENT, DEFAULT_ALWAYS_LOADED_CONTEXT_TOKENS, sweepAlwaysLoadedBudgets, } from '@vibe-agent-toolkit/resources';
54
- import { applyAllowFilter, calculateValidationStatus, countBySeverity, } from '@vibe-agent-toolkit/schema';
54
+ import { applyAllowFilter, buildReport as buildEnvelope, exitCodeForSeverityCounts, reportSchema, toFindings, } from '@vibe-agent-toolkit/schema';
55
55
  import { findProjectRoot } from '@vibe-agent-toolkit/utils';
56
56
  import { Command, Option } from 'commander';
57
- import { handleCommandError } from '../../utils/command-error.js';
57
+ import { z } from 'zod';
58
+ import { handleReportCommandError } from '../../utils/command-error.js';
58
59
  import { loadConfig } from '../../utils/config-loader.js';
59
60
  import { contextBudgetIssues, scopeSweepToPaths } from '../../utils/context-budget-issues.js';
60
61
  import { targetPathWithin } from '../../utils/corpus-target.js';
@@ -63,11 +64,55 @@ import { createLogger } from '../../utils/logger.js';
63
64
  import { writeJsonOutput, writeStdoutSync, writeYamlOutput } from '../../utils/output.js';
64
65
  import { populationWiring } from '../../utils/population-wiring.js';
65
66
  import { withPopulationCache } from '../../utils/projection-store.js';
67
+ import { runIntegrityFinding } from '../../utils/run-integrity.js';
66
68
  import { gitTrackerForProjectRoot } from '../audit/distributed-tree.js';
67
69
  /** How this command names itself in a refusal. */
68
70
  const COMMAND_NAME = 'vat claude budget';
69
71
  /** Soft wrap width for the printed limit statements. */
70
72
  const WRAP_COLUMNS = 96;
73
+ /** How the corpus root itself is named to a reader — it has no path of its own. */
74
+ const CORPUS_ROOT_LABEL = '<corpus root>';
75
+ /** A signed bound on the measurement method, as `@vibe-agent-toolkit/resources` states it. */
76
+ const StatedLimitSchema = z.object({
77
+ id: z.string(),
78
+ direction: z.enum(['over-report', 'under-report', 'scope', 'assumption']),
79
+ statement: z.string(),
80
+ }).strict();
81
+ /**
82
+ * What one run reports beyond its findings.
83
+ *
84
+ * The sweep counters describe the WHOLE tree, not the scope: a scope narrows
85
+ * what is reported, never what was measured. The envelope's `examined` is the
86
+ * working-location count for the same reason — "9 chains checked, none over
87
+ * budget" and "nothing was checked" are different answers and must not render
88
+ * identically.
89
+ */
90
+ export const BudgetDataSchema = z.object({
91
+ root: z.string(),
92
+ /** The budget every chain was measured against, in tokens. */
93
+ threshold: z.number().int().nonnegative(),
94
+ /** The root-relative directories asked about. `''` is the whole tree. */
95
+ scope: z.array(z.string()),
96
+ /** Requested paths that named no working location — see `scopeSweepToPaths`. */
97
+ unmatchedScope: z.array(z.string()),
98
+ /** Distinct instruction chains among the working locations — the queries the sweep really issued. */
99
+ distinctChains: z.number().int().nonnegative(),
100
+ /** Locations whose representative the projection never realized. Counted, never zeroed. */
101
+ skippedUnknownLocations: z.number().int().nonnegative(),
102
+ /**
103
+ * What this verdict does not settle, in either direction. Stated ONCE.
104
+ *
105
+ * ⛔ On the report beside `threshold`, never on a finding. These bound the
106
+ * MEASUREMENT METHOD, not any one chain — a finding carrying its own copy
107
+ * reads as though that chain had caveats of its own, and repeated across a
108
+ * sweep it is pure byte-identical duplication.
109
+ */
110
+ boundsStatement: z.string(),
111
+ /** The signed over/under-report bounds on the method. Stated ONCE. */
112
+ limits: z.array(StatedLimitSchema),
113
+ }).strict();
114
+ /** The document this command publishes. */
115
+ export const BUDGET_REPORT_SCHEMA = reportSchema(BudgetDataSchema);
71
116
  /**
72
117
  * Create the `vat claude budget [paths...]` command.
73
118
  *
@@ -113,12 +158,16 @@ Configuration (vibe-agent-toolkit.config.yaml):
113
158
 
114
159
  Output:
115
160
  - threshold: the budget every chain was measured against
116
- - scope/unmatchedScope: what was asked about, and what matched nothing
117
- - status/issueCounts: the worst actionable severity, plus every severity
118
- - workingLocations, distinctChains, skippedUnknownLocations: whole-tree
119
- facts, so an empty findings list is legible
161
+ - scope/unmatchedScope: what was asked about, and what matched nothing.
162
+ A path that matched nothing was NOT checked, so it is
163
+ reported as a RESOURCE_CHECK_BROKEN error rather than
164
+ passing quietly -- and that code is not configurable
165
+ - status/summary: ok, findings, or error; plus the count per severity
166
+ - examined: working locations evaluated across the WHOLE tree,
167
+ so an empty findings list is legible
120
168
  - findings: one per over-budget chain, ascending by directory
121
- - limits/boundsStatement: what this verdict does not settle, signed
169
+ - data.distinctChains, data.skippedUnknownLocations: whole-tree facts
170
+ - data.limits/boundsStatement: what this verdict does not settle, signed
122
171
  over-report or under-report. On the REPORT, never on a
123
172
  finding — they bound the method, not any one chain, so
124
173
  they are stated exactly once however many chains flag
@@ -128,7 +177,8 @@ Output:
128
177
 
129
178
  Exit Codes:
130
179
  0 - Reported (findings at the default info severity do not gate)
131
- 1 - A finding resolved to error severity via config
180
+ 1 - A finding resolved to error severity via config, or a requested path
181
+ matched no working location so nothing was checked there
132
182
  2 - System error (a path outside the corpus root, unreadable tree)
133
183
 
134
184
  Example:
@@ -163,14 +213,17 @@ export async function claudeBudgetCommand(pathArgs, options) {
163
213
  // gets an error, which is the case that gets forgotten.
164
214
  const findings = resolveIssueSeverity(applyAllowFilter(contextBudgetIssues(scoped.sweep), validation ?? {}).emitted, validation);
165
215
  warnUnmatched(scoped.unmatchedScope, logger);
166
- const report = buildReport({ root, threshold, scope, sweep, scoped, findings });
216
+ const report = { ...buildReport({ root, threshold, scope, sweep, scoped, findings }), durationMs: Date.now() - startTime };
167
217
  emit(report, options.format ?? 'text');
168
- // Only `error` gates. At the code's `info` default this is always 0, so the
169
- // budget cannot fail a build unless an adopter asked it to.
170
- process.exit(report.issueCounts.errors > 0 ? 1 : 0);
218
+ // `error` gates, and it is reachable two ways: an adopter promoted
219
+ // ALWAYS_LOADED_CONTEXT_BUDGET, or the run checked nothing — see
220
+ // {@link nothingCheckedFindings}. At the code's `info` default the first
221
+ // never fires, so the budget cannot fail a build unless an adopter asked it
222
+ // to; the second is not a severity anybody may configure away.
223
+ process.exit(exitCodeForSeverityCounts(report.summary));
171
224
  }
172
225
  catch (error) {
173
- handleCommandError(error, logger, startTime, 'claude budget');
226
+ handleReportCommandError(error, logger, startTime, 'claude budget', options.format);
174
227
  }
175
228
  }
176
229
  /**
@@ -190,25 +243,34 @@ export async function claudeBudgetCommand(pathArgs, options) {
190
243
  * block appears exactly once across a MULTI-finding report — and a presence
191
244
  * check passes identically with a copy per finding.
192
245
  *
246
+ * ⛔ The run-integrity refusal is DERIVED here from `scoped.unmatchedScope`
247
+ * rather than assembled by the caller, which is what makes "a run that checked
248
+ * nothing never reports success" unrepresentable instead of merely observed:
249
+ * there is no pipeline step left in which a later edit could drop it. See
250
+ * {@link nothingCheckedFindings}.
251
+ *
193
252
  * @param input - The run's parts
194
253
  * @returns The report, ready to serialize
195
254
  */
196
255
  export function buildReport(input) {
197
256
  const { root, threshold, scope, sweep, scoped, findings } = input;
198
- return {
199
- root,
200
- threshold,
201
- scope,
202
- unmatchedScope: scoped.unmatchedScope,
203
- status: calculateValidationStatus(findings),
204
- issueCounts: countBySeverity(findings),
205
- workingLocations: sweep.evaluatedDirectories,
206
- distinctChains: sweep.queriedDirectories,
207
- skippedUnknownLocations: sweep.skippedUnknownLocations,
208
- findings,
209
- boundsStatement: CLAUDE_CONTEXT_BOUNDS_STATEMENT,
210
- limits: ALWAYS_LOADED_BUDGET_LIMITS,
211
- };
257
+ // The run-integrity report LEADS: every budget finding beneath it is noise
258
+ // until the operator knows part of what they asked about was never measured.
259
+ const reported = [...nothingCheckedFindings(scoped.unmatchedScope), ...findings];
260
+ return buildEnvelope({
261
+ examined: sweep.evaluatedDirectories,
262
+ findings: toFindings(reported),
263
+ data: {
264
+ root,
265
+ threshold,
266
+ scope: [...scope],
267
+ unmatchedScope: [...scoped.unmatchedScope],
268
+ distinctChains: sweep.queriedDirectories,
269
+ skippedUnknownLocations: sweep.skippedUnknownLocations,
270
+ boundsStatement: CLAUDE_CONTEXT_BOUNDS_STATEMENT,
271
+ limits: [...ALWAYS_LOADED_BUDGET_LIMITS],
272
+ },
273
+ });
212
274
  }
213
275
  /**
214
276
  * Resolve the requested scope, defaulting to the whole tree.
@@ -231,9 +293,9 @@ function scopeWithin(root, pathArgs) {
231
293
  /**
232
294
  * Say so, loudly, when a requested path named no working location.
233
295
  *
234
- * ⛔ `warn` (stderr), never `debug`. Such a scope produces zero findings, which
235
- * is byte-identical to a clean bill of health — and a default run that stayed
236
- * silent about it would publish that confusion rather than the fact behind it.
296
+ * ⛔ `warn` (stderr), never `debug`. The human half of
297
+ * {@link nothingCheckedFindings} — the same fact, on the channel a person reads,
298
+ * ahead of the report rather than inside it.
237
299
  *
238
300
  * @param unmatched - The requested paths that matched nothing
239
301
  * @param logger - Where the warning goes
@@ -244,6 +306,55 @@ function warnUnmatched(unmatched, logger) {
244
306
  logger.warn(`Warning: no working location matched ${unmatched.join(', ')} — nothing was checked there.`
245
307
  + ' This is NOT a report that those paths are within budget.');
246
308
  }
309
+ /**
310
+ * The refusal for a run whose requested paths named no working location.
311
+ *
312
+ * 🔑 **A gate that checked nothing must never answer `success`.** This shipped:
313
+ * `vat claude budget no/such/dir` reported `status: success` on exit 0, because
314
+ * an unmatched scope measures zero chains and zero findings serializes
315
+ * identically to "everything you asked about is within budget". The command
316
+ * already knew — it warned on stderr that nothing had been checked — and then
317
+ * published a document saying the opposite. Only the document gates a build, so
318
+ * the two channels disagreed on the half that matters.
319
+ *
320
+ * 🪤 {@link warnUnmatched} still says the same thing on stderr, and that is not
321
+ * the duplication this file bans elsewhere: stderr is the human channel and
322
+ * stdout is the parsed document, so the two are one statement per audience. What
323
+ * was wrong was never that the warning existed — it was that the DOCUMENT
324
+ * contradicted it, and the exit code was computed from the document.
325
+ *
326
+ * ⛔ Not repeated a THIRD time inside the text rendering, though. That shares a
327
+ * channel with the finding, which {@link renderReportText} already prints.
328
+ *
329
+ * The precedent is `vat resources check`'s `emptyCorpusFinding`, and this
330
+ * follows it through the shared {@link runIntegrityFinding} rather than
331
+ * inventing a third convention — `RESOURCE_CHECK_BROKEN` at `error`, derived in
332
+ * {@link buildReport} rather than assembled in the handler, so it bypasses
333
+ * `applyAllowFilter` and `resolveIssueSeverity` by construction and no report
334
+ * carrying an unmatched path can be built with a clean status. The reasoning
335
+ * behind each of those lives with the mechanism, in `run-integrity.ts`.
336
+ *
337
+ * ⛔ ONE finding however many paths went unmatched. The claim is about the RUN,
338
+ * and one per argument is the per-finding duplication this report is built to
339
+ * make impossible. It is not routed through `nothingCheckedFinding` because the
340
+ * denominator here is not a count but a list of names the message must carry.
341
+ *
342
+ * @param unmatched - The requested paths that matched no working location
343
+ * @returns The finding, or nothing when everything asked about was checked
344
+ */
345
+ function nothingCheckedFindings(unmatched) {
346
+ if (unmatched.length === 0)
347
+ return [];
348
+ const named = unmatched.map((path) => (path === '' ? CORPUS_ROOT_LABEL : path)).join(', ');
349
+ return [runIntegrityFinding(`No working location matched ${named}, so nothing was checked there and this`
350
+ + ' report is NOT a statement that those paths are within budget.'
351
+ + ' A working location is any non-ignored directory holding an enumerated file,'
352
+ + ' so a path matching none is usually a typo, a directory that is empty, or one'
353
+ + ' `.gitignore` declines — and the whole corpus root matching none means the'
354
+ + ' enumeration came back empty, which a broad ignore pattern or a shallow or'
355
+ + ' sparse checkout produces.'
356
+ + ' `vat resources scan` over the same path lists what an enumeration finds.')];
357
+ }
247
358
  /**
248
359
  * Populate the Claude-context lane for one tree and sweep every location.
249
360
  *
@@ -294,15 +405,14 @@ function emit(report, format) {
294
405
  */
295
406
  export function renderReportText(report) {
296
407
  const lines = [
297
- `Always-loaded context budget at ${report.root}`,
298
- ` budget ${count(report.threshold)} tokens`
299
- + ` · ${count(report.workingLocations)} working locations`
300
- + ` · ${count(report.distinctChains)} distinct chains`
301
- + ` · ${count(report.skippedUnknownLocations)} unrealized`,
408
+ `Always-loaded context budget at ${report.data.root}`,
409
+ ` budget ${count(report.data.threshold)} tokens`
410
+ + ` · ${count(report.examined)} working locations`
411
+ + ` · ${count(report.data.distinctChains)} distinct chains`
412
+ + ` · ${count(report.data.skippedUnknownLocations)} unrealized`,
302
413
  '',
303
414
  ...findingLines(report.findings),
304
- ...unmatchedLines(report.unmatchedScope),
305
- ...limitLines(report),
415
+ ...limitLines(report.data),
306
416
  ];
307
417
  return `${lines.join('\n')}\n`;
308
418
  }
@@ -318,12 +428,12 @@ export function renderReportText(report) {
318
428
  * report types, and the query additionally prints the modelled-behaviour
319
429
  * citations that no bound of this verdict rests on.
320
430
  *
321
- * @param report - The report carrying the bounds
431
+ * @param data - The report's data, carrying the bounds
322
432
  * @returns The section's lines
323
433
  */
324
- function limitLines(report) {
325
- const lines = ['What this verdict does not settle', ...wrapped(report.boundsStatement, ' '), ''];
326
- for (const limit of report.limits) {
434
+ function limitLines(data) {
435
+ const lines = ['What this verdict does not settle', ...wrapped(data.boundsStatement, ' '), ''];
436
+ for (const limit of data.limits) {
327
437
  lines.push(` ${limit.direction}: ${limit.id}`);
328
438
  lines.push(...wrapped(limit.statement, ' '));
329
439
  }
@@ -373,7 +483,7 @@ function findingLines(findings) {
373
483
  return ['Every instruction chain checked is within budget.', ''];
374
484
  const lines = [];
375
485
  for (const finding of findings) {
376
- lines.push(`${finding.severity} ${finding.code} at ${finding.location ?? '<corpus root>'}`);
486
+ lines.push(`${finding.severity} ${finding.code} at ${finding.location ?? CORPUS_ROOT_LABEL}`);
377
487
  lines.push(` ${finding.message}`);
378
488
  if (finding.fix !== undefined)
379
489
  lines.push(` Fix: ${finding.fix}`);
@@ -381,21 +491,6 @@ function findingLines(findings) {
381
491
  }
382
492
  return lines;
383
493
  }
384
- /**
385
- * The unmatched-scope notice, printed in the document as well as on stderr.
386
- *
387
- * @param unmatched - The requested paths that matched nothing
388
- * @returns The lines, or none
389
- */
390
- function unmatchedLines(unmatched) {
391
- if (unmatched.length === 0)
392
- return [];
393
- return [
394
- `Matched no working location: ${unmatched.join(', ')}`,
395
- ' Nothing was checked there — this is not a report that they are within budget.',
396
- '',
397
- ];
398
- }
399
494
  /**
400
495
  * A count as a reader reads it.
401
496
  *
@@ -1 +1 @@
1
- {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../../src/commands/claude/budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../../../src/commands/claude/budget.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/commands/claude/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/commands/claude/context.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,7 @@
60
60
  * than an empty table.
61
61
  */
62
62
  import { account, buildClaudeContextPopulation, buildContextCostMap, CLAUDE_CONTEXT_BOUNDS_STATEMENT, CLAUDE_CONTEXT_LIMITS, CLAUDE_CONTEXT_MODELLED_BEHAVIOURS, CLAUDE_MD_TAG, discoverableFrom, whatLoadsAt, } from '@vibe-agent-toolkit/resources';
63
+ import { ExitCode } from '@vibe-agent-toolkit/schema';
63
64
  import { findProjectRoot } from '@vibe-agent-toolkit/utils';
64
65
  import { Command, Option } from 'commander';
65
66
  import { handleCommandError } from '../../utils/command-error.js';
@@ -233,10 +234,10 @@ export async function claudeContextCommand(pathArgs, options) {
233
234
  // to be one — a number that fails a build is a number people learn to stop
234
235
  // reading. The explicit exit matches every other leaf here and guarantees the
235
236
  // process ends rather than waiting on whatever the population left behind.
236
- process.exit(0);
237
+ process.exit(ExitCode.OK);
237
238
  }
238
239
  catch (error) {
239
- handleCommandError(error, logger, startTime, 'claude context');
240
+ handleCommandError(error, logger, startTime, 'claude context', options.format);
240
241
  }
241
242
  }
242
243
  /**
@@ -974,7 +975,7 @@ function describeImport(admission) {
974
975
  */
975
976
  function conditionLine(condition) {
976
977
  const reference = condition.sourceRef === null ? '' : ` [${condition.sourceRef}]`;
977
- return ` ${condition.severity.padEnd(5)} ${condition.code}`
978
+ return ` ${condition.severity.padEnd(7)} ${condition.code}`
978
979
  + ` at ${conditionLocation(condition)}${reference}: ${condition.message}`;
979
980
  }
980
981
  /**