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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. package/README.md +4 -5
  2. package/dist/bin/vat +97 -28
  3. package/dist/bin/vat.js +97 -28
  4. package/dist/bin/vat.js.map +1 -1
  5. package/dist/bin.js +115 -76
  6. package/dist/bin.js.map +1 -1
  7. package/dist/command-loaders.d.ts +44 -0
  8. package/dist/command-loaders.d.ts.map +1 -0
  9. package/dist/command-loaders.js +60 -0
  10. package/dist/command-loaders.js.map +1 -0
  11. package/dist/commands/agent/build.d.ts.map +1 -1
  12. package/dist/commands/agent/build.js +2 -1
  13. package/dist/commands/agent/build.js.map +1 -1
  14. package/dist/commands/agent/import.d.ts.map +1 -1
  15. package/dist/commands/agent/import.js +3 -2
  16. package/dist/commands/agent/import.js.map +1 -1
  17. package/dist/commands/agent/index.js +1 -1
  18. package/dist/commands/agent/install-path.d.ts +36 -0
  19. package/dist/commands/agent/install-path.d.ts.map +1 -0
  20. package/dist/commands/agent/install-path.js +44 -0
  21. package/dist/commands/agent/install-path.js.map +1 -0
  22. package/dist/commands/agent/install.d.ts.map +1 -1
  23. package/dist/commands/agent/install.js +66 -13
  24. package/dist/commands/agent/install.js.map +1 -1
  25. package/dist/commands/agent/installed.d.ts.map +1 -1
  26. package/dist/commands/agent/installed.js +22 -12
  27. package/dist/commands/agent/installed.js.map +1 -1
  28. package/dist/commands/agent/list.d.ts.map +1 -1
  29. package/dist/commands/agent/list.js +2 -1
  30. package/dist/commands/agent/list.js.map +1 -1
  31. package/dist/commands/agent/run.d.ts.map +1 -1
  32. package/dist/commands/agent/run.js +2 -1
  33. package/dist/commands/agent/run.js.map +1 -1
  34. package/dist/commands/agent/uninstall.d.ts.map +1 -1
  35. package/dist/commands/agent/uninstall.js +13 -6
  36. package/dist/commands/agent/uninstall.js.map +1 -1
  37. package/dist/commands/agent/validate.d.ts.map +1 -1
  38. package/dist/commands/agent/validate.js +3 -2
  39. package/dist/commands/agent/validate.js.map +1 -1
  40. package/dist/commands/ard/emit.d.ts +165 -0
  41. package/dist/commands/ard/emit.d.ts.map +1 -0
  42. package/dist/commands/ard/emit.js +338 -0
  43. package/dist/commands/ard/emit.js.map +1 -0
  44. package/dist/commands/ard/index.d.ts +12 -0
  45. package/dist/commands/ard/index.d.ts.map +1 -0
  46. package/dist/commands/ard/index.js +84 -0
  47. package/dist/commands/ard/index.js.map +1 -0
  48. package/dist/commands/ard/surfaces.d.ts +56 -0
  49. package/dist/commands/ard/surfaces.d.ts.map +1 -0
  50. package/dist/commands/ard/surfaces.js +150 -0
  51. package/dist/commands/ard/surfaces.js.map +1 -0
  52. package/dist/commands/audit/distributed-tree.d.ts +2 -2
  53. package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
  54. package/dist/commands/audit/distributed-tree.js +11 -7
  55. package/dist/commands/audit/distributed-tree.js.map +1 -1
  56. package/dist/commands/audit/git-url-clone.d.ts +1 -1
  57. package/dist/commands/audit/git-url-clone.d.ts.map +1 -1
  58. package/dist/commands/audit/git-url-clone.js.map +1 -1
  59. package/dist/commands/audit/hierarchical-output.d.ts +1 -1
  60. package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
  61. package/dist/commands/audit/hierarchical-output.js +1 -1
  62. package/dist/commands/audit/hierarchical-output.js.map +1 -1
  63. package/dist/commands/audit/provenance.d.ts.map +1 -1
  64. package/dist/commands/audit/provenance.js +4 -3
  65. package/dist/commands/audit/provenance.js.map +1 -1
  66. package/dist/commands/audit/scan-population.d.ts +158 -0
  67. package/dist/commands/audit/scan-population.d.ts.map +1 -0
  68. package/dist/commands/audit/scan-population.js +292 -0
  69. package/dist/commands/audit/scan-population.js.map +1 -0
  70. package/dist/commands/audit-settings.d.ts.map +1 -1
  71. package/dist/commands/audit-settings.js +6 -5
  72. package/dist/commands/audit-settings.js.map +1 -1
  73. package/dist/commands/audit.d.ts +98 -8
  74. package/dist/commands/audit.d.ts.map +1 -1
  75. package/dist/commands/audit.js +1150 -394
  76. package/dist/commands/audit.js.map +1 -1
  77. package/dist/commands/build.d.ts +1 -1
  78. package/dist/commands/build.d.ts.map +1 -1
  79. package/dist/commands/build.js +40 -36
  80. package/dist/commands/build.js.map +1 -1
  81. package/dist/commands/cache/cache-control.d.ts +82 -0
  82. package/dist/commands/cache/cache-control.d.ts.map +1 -0
  83. package/dist/commands/cache/cache-control.js +86 -0
  84. package/dist/commands/cache/cache-control.js.map +1 -0
  85. package/dist/commands/cache/clear.d.ts +34 -6
  86. package/dist/commands/cache/clear.d.ts.map +1 -1
  87. package/dist/commands/cache/clear.js +101 -15
  88. package/dist/commands/cache/clear.js.map +1 -1
  89. package/dist/commands/cache/index.d.ts +13 -63
  90. package/dist/commands/cache/index.d.ts.map +1 -1
  91. package/dist/commands/cache/index.js +47 -79
  92. package/dist/commands/cache/index.js.map +1 -1
  93. package/dist/commands/claude/claude-config.d.ts.map +1 -1
  94. package/dist/commands/claude/claude-config.js +6 -0
  95. package/dist/commands/claude/claude-config.js.map +1 -1
  96. package/dist/commands/claude/context.d.ts +372 -0
  97. package/dist/commands/claude/context.d.ts.map +1 -0
  98. package/dist/commands/claude/context.js +1115 -0
  99. package/dist/commands/claude/context.js.map +1 -0
  100. package/dist/commands/claude/index.d.ts +14 -0
  101. package/dist/commands/claude/index.d.ts.map +1 -1
  102. package/dist/commands/claude/index.js +22 -2
  103. package/dist/commands/claude/index.js.map +1 -1
  104. package/dist/commands/claude/marketplace/changelog-utils.d.ts +1 -1
  105. package/dist/commands/claude/marketplace/changelog-utils.d.ts.map +1 -1
  106. package/dist/commands/claude/marketplace/changelog-utils.js +1 -2
  107. package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
  108. package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
  109. package/dist/commands/claude/marketplace/git-publish.js +40 -31
  110. package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
  111. package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
  112. package/dist/commands/claude/marketplace/license-utils.js +0 -1
  113. package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
  114. package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
  115. package/dist/commands/claude/marketplace/publish-tree.js +0 -6
  116. package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
  117. package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
  118. package/dist/commands/claude/marketplace/publish.js +2 -1
  119. package/dist/commands/claude/marketplace/publish.js.map +1 -1
  120. package/dist/commands/claude/marketplace/validate.d.ts +73 -22
  121. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  122. package/dist/commands/claude/marketplace/validate.js +407 -72
  123. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  124. package/dist/commands/claude/org/api-keys.d.ts +0 -3
  125. package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
  126. package/dist/commands/claude/org/api-keys.js +2 -1
  127. package/dist/commands/claude/org/api-keys.js.map +1 -1
  128. package/dist/commands/claude/org/helpers.d.ts +54 -1
  129. package/dist/commands/claude/org/helpers.d.ts.map +1 -1
  130. package/dist/commands/claude/org/helpers.js +42 -7
  131. package/dist/commands/claude/org/helpers.js.map +1 -1
  132. package/dist/commands/claude/org/index.d.ts.map +1 -1
  133. package/dist/commands/claude/org/index.js +24 -16
  134. package/dist/commands/claude/org/index.js.map +1 -1
  135. package/dist/commands/claude/org/invites.d.ts +0 -3
  136. package/dist/commands/claude/org/invites.d.ts.map +1 -1
  137. package/dist/commands/claude/org/invites.js +3 -2
  138. package/dist/commands/claude/org/invites.js.map +1 -1
  139. package/dist/commands/claude/org/skills.d.ts +527 -0
  140. package/dist/commands/claude/org/skills.d.ts.map +1 -1
  141. package/dist/commands/claude/org/skills.js +1414 -108
  142. package/dist/commands/claude/org/skills.js.map +1 -1
  143. package/dist/commands/claude/org/users.d.ts +0 -3
  144. package/dist/commands/claude/org/users.d.ts.map +1 -1
  145. package/dist/commands/claude/org/users.js +6 -3
  146. package/dist/commands/claude/org/users.js.map +1 -1
  147. package/dist/commands/claude/org/workspaces.d.ts +0 -3
  148. package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
  149. package/dist/commands/claude/org/workspaces.js +11 -7
  150. package/dist/commands/claude/org/workspaces.js.map +1 -1
  151. package/dist/commands/claude/plugin/build.d.ts +41 -3
  152. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  153. package/dist/commands/claude/plugin/build.js +147 -80
  154. package/dist/commands/claude/plugin/build.js.map +1 -1
  155. package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
  156. package/dist/commands/claude/plugin/helpers.js +2 -7
  157. package/dist/commands/claude/plugin/helpers.js.map +1 -1
  158. package/dist/commands/claude/plugin/install.d.ts +12 -0
  159. package/dist/commands/claude/plugin/install.d.ts.map +1 -1
  160. package/dist/commands/claude/plugin/install.js +93 -62
  161. package/dist/commands/claude/plugin/install.js.map +1 -1
  162. package/dist/commands/claude/plugin/list.d.ts.map +1 -1
  163. package/dist/commands/claude/plugin/list.js +3 -2
  164. package/dist/commands/claude/plugin/list.js.map +1 -1
  165. package/dist/commands/claude/plugin/marketplace-json.d.ts +24 -9
  166. package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -1
  167. package/dist/commands/claude/plugin/marketplace-json.js +10 -9
  168. package/dist/commands/claude/plugin/marketplace-json.js.map +1 -1
  169. package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
  170. package/dist/commands/claude/plugin/plugin-changelog.js +0 -2
  171. package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
  172. package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
  173. package/dist/commands/claude/plugin/plugin-files.js +3 -6
  174. package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
  175. package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
  176. package/dist/commands/claude/plugin/plugin-validators.js +3 -6
  177. package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
  178. package/dist/commands/claude/plugin/tree-copy.d.ts +73 -0
  179. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  180. package/dist/commands/claude/plugin/tree-copy.js +221 -14
  181. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  182. package/dist/commands/claude/plugin/uninstall.d.ts.map +1 -1
  183. package/dist/commands/claude/plugin/uninstall.js +4 -4
  184. package/dist/commands/claude/plugin/uninstall.js.map +1 -1
  185. package/dist/commands/consistency-check.d.ts +17 -15
  186. package/dist/commands/consistency-check.d.ts.map +1 -1
  187. package/dist/commands/consistency-check.js +152 -106
  188. package/dist/commands/consistency-check.js.map +1 -1
  189. package/dist/commands/corpus/index.d.ts.map +1 -1
  190. package/dist/commands/corpus/index.js +3 -0
  191. package/dist/commands/corpus/index.js.map +1 -1
  192. package/dist/commands/corpus/report.d.ts +1 -2
  193. package/dist/commands/corpus/report.d.ts.map +1 -1
  194. package/dist/commands/corpus/report.js +1 -3
  195. package/dist/commands/corpus/report.js.map +1 -1
  196. package/dist/commands/corpus/runner.d.ts +58 -1
  197. package/dist/commands/corpus/runner.d.ts.map +1 -1
  198. package/dist/commands/corpus/runner.js +95 -41
  199. package/dist/commands/corpus/runner.js.map +1 -1
  200. package/dist/commands/corpus/scan.d.ts.map +1 -1
  201. package/dist/commands/corpus/scan.js +20 -12
  202. package/dist/commands/corpus/scan.js.map +1 -1
  203. package/dist/commands/corpus/seed.d.ts +4 -4
  204. package/dist/commands/corpus/seed.d.ts.map +1 -1
  205. package/dist/commands/corpus/seed.js +1 -3
  206. package/dist/commands/corpus/seed.js.map +1 -1
  207. package/dist/commands/doctor.d.ts +50 -0
  208. package/dist/commands/doctor.d.ts.map +1 -1
  209. package/dist/commands/doctor.js +245 -52
  210. package/dist/commands/doctor.js.map +1 -1
  211. package/dist/commands/inventory.d.ts +13 -1
  212. package/dist/commands/inventory.d.ts.map +1 -1
  213. package/dist/commands/inventory.js +121 -17
  214. package/dist/commands/inventory.js.map +1 -1
  215. package/dist/commands/mcp/collections.d.ts +1 -1
  216. package/dist/commands/mcp/collections.d.ts.map +1 -1
  217. package/dist/commands/mcp/list-collections.d.ts.map +1 -1
  218. package/dist/commands/mcp/list-collections.js +2 -1
  219. package/dist/commands/mcp/list-collections.js.map +1 -1
  220. package/dist/commands/mcp/serve.d.ts.map +1 -1
  221. package/dist/commands/mcp/serve.js +3 -2
  222. package/dist/commands/mcp/serve.js.map +1 -1
  223. package/dist/commands/okf/index.d.ts +11 -0
  224. package/dist/commands/okf/index.d.ts.map +1 -0
  225. package/dist/commands/okf/index.js +116 -0
  226. package/dist/commands/okf/index.js.map +1 -0
  227. package/dist/commands/okf/validate.d.ts +195 -0
  228. package/dist/commands/okf/validate.d.ts.map +1 -0
  229. package/dist/commands/okf/validate.js +199 -0
  230. package/dist/commands/okf/validate.js.map +1 -0
  231. package/dist/commands/phase-utils.d.ts +182 -114
  232. package/dist/commands/phase-utils.d.ts.map +1 -1
  233. package/dist/commands/phase-utils.js +154 -163
  234. package/dist/commands/phase-utils.js.map +1 -1
  235. package/dist/commands/positional-args.d.ts.map +1 -1
  236. package/dist/commands/positional-args.js +3 -2
  237. package/dist/commands/positional-args.js.map +1 -1
  238. package/dist/commands/rag/clear-command.d.ts.map +1 -1
  239. package/dist/commands/rag/clear-command.js +2 -1
  240. package/dist/commands/rag/clear-command.js.map +1 -1
  241. package/dist/commands/rag/index-command.d.ts +64 -0
  242. package/dist/commands/rag/index-command.d.ts.map +1 -1
  243. package/dist/commands/rag/index-command.js +72 -6
  244. package/dist/commands/rag/index-command.js.map +1 -1
  245. package/dist/commands/rag/index.d.ts.map +1 -1
  246. package/dist/commands/rag/index.js +23 -10
  247. package/dist/commands/rag/index.js.map +1 -1
  248. package/dist/commands/rag/query-command.d.ts.map +1 -1
  249. package/dist/commands/rag/query-command.js +2 -1
  250. package/dist/commands/rag/query-command.js.map +1 -1
  251. package/dist/commands/rag/stats-command.d.ts.map +1 -1
  252. package/dist/commands/rag/stats-command.js +2 -1
  253. package/dist/commands/rag/stats-command.js.map +1 -1
  254. package/dist/commands/resources/builtin-help.d.ts +27 -0
  255. package/dist/commands/resources/builtin-help.d.ts.map +1 -0
  256. package/dist/commands/resources/builtin-help.js +46 -0
  257. package/dist/commands/resources/builtin-help.js.map +1 -0
  258. package/dist/commands/resources/check-progress.d.ts +167 -0
  259. package/dist/commands/resources/check-progress.d.ts.map +1 -0
  260. package/dist/commands/resources/check-progress.js +250 -0
  261. package/dist/commands/resources/check-progress.js.map +1 -0
  262. package/dist/commands/resources/check-supervisor.d.ts +479 -0
  263. package/dist/commands/resources/check-supervisor.d.ts.map +1 -0
  264. package/dist/commands/resources/check-supervisor.js +587 -0
  265. package/dist/commands/resources/check-supervisor.js.map +1 -0
  266. package/dist/commands/resources/check.d.ts +620 -0
  267. package/dist/commands/resources/check.d.ts.map +1 -0
  268. package/dist/commands/resources/check.js +1452 -0
  269. package/dist/commands/resources/check.js.map +1 -0
  270. package/dist/commands/resources/index.d.ts.map +1 -1
  271. package/dist/commands/resources/index.js +430 -4
  272. package/dist/commands/resources/index.js.map +1 -1
  273. package/dist/commands/resources/query.d.ts +106 -0
  274. package/dist/commands/resources/query.d.ts.map +1 -0
  275. package/dist/commands/resources/query.js +177 -0
  276. package/dist/commands/resources/query.js.map +1 -0
  277. package/dist/commands/resources/scan.d.ts +24 -0
  278. package/dist/commands/resources/scan.d.ts.map +1 -1
  279. package/dist/commands/resources/scan.js +17 -8
  280. package/dist/commands/resources/scan.js.map +1 -1
  281. package/dist/commands/resources/validate.d.ts +42 -2
  282. package/dist/commands/resources/validate.d.ts.map +1 -1
  283. package/dist/commands/resources/validate.js +208 -55
  284. package/dist/commands/resources/validate.js.map +1 -1
  285. package/dist/commands/skill/review-checklist.d.ts +3 -2
  286. package/dist/commands/skill/review-checklist.d.ts.map +1 -1
  287. package/dist/commands/skill/review-checklist.js +40 -2
  288. package/dist/commands/skill/review-checklist.js.map +1 -1
  289. package/dist/commands/skill/review.d.ts +247 -0
  290. package/dist/commands/skill/review.d.ts.map +1 -1
  291. package/dist/commands/skill/review.js +100 -62
  292. package/dist/commands/skill/review.js.map +1 -1
  293. package/dist/commands/skill/test/configure.d.ts +56 -0
  294. package/dist/commands/skill/test/configure.d.ts.map +1 -1
  295. package/dist/commands/skill/test/configure.js +75 -16
  296. package/dist/commands/skill/test/configure.js.map +1 -1
  297. package/dist/commands/skill/test/run.d.ts +63 -10
  298. package/dist/commands/skill/test/run.d.ts.map +1 -1
  299. package/dist/commands/skill/test/run.js +258 -77
  300. package/dist/commands/skill/test/run.js.map +1 -1
  301. package/dist/commands/skills/build.d.ts +94 -4
  302. package/dist/commands/skills/build.d.ts.map +1 -1
  303. package/dist/commands/skills/build.js +325 -97
  304. package/dist/commands/skills/build.js.map +1 -1
  305. package/dist/commands/skills/install.d.ts +2 -1
  306. package/dist/commands/skills/install.d.ts.map +1 -1
  307. package/dist/commands/skills/install.js +20 -31
  308. package/dist/commands/skills/install.js.map +1 -1
  309. package/dist/commands/skills/list.d.ts +2 -1
  310. package/dist/commands/skills/list.d.ts.map +1 -1
  311. package/dist/commands/skills/list.js +44 -26
  312. package/dist/commands/skills/list.js.map +1 -1
  313. package/dist/commands/skills/package.d.ts +1 -1
  314. package/dist/commands/skills/package.d.ts.map +1 -1
  315. package/dist/commands/skills/package.js +6 -8
  316. package/dist/commands/skills/package.js.map +1 -1
  317. package/dist/commands/skills/scope-guard.d.ts.map +1 -1
  318. package/dist/commands/skills/scope-guard.js +8 -6
  319. package/dist/commands/skills/scope-guard.js.map +1 -1
  320. package/dist/commands/skills/shared.d.ts.map +1 -1
  321. package/dist/commands/skills/shared.js +2 -4
  322. package/dist/commands/skills/shared.js.map +1 -1
  323. package/dist/commands/skills/skill-discovery.d.ts +47 -6
  324. package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
  325. package/dist/commands/skills/skill-discovery.js +61 -11
  326. package/dist/commands/skills/skill-discovery.js.map +1 -1
  327. package/dist/commands/skills/source-resolvers.d.ts +15 -0
  328. package/dist/commands/skills/source-resolvers.d.ts.map +1 -1
  329. package/dist/commands/skills/source-resolvers.js +25 -4
  330. package/dist/commands/skills/source-resolvers.js.map +1 -1
  331. package/dist/commands/skills/validate-command.d.ts.map +1 -1
  332. package/dist/commands/skills/validate-command.js +11 -3
  333. package/dist/commands/skills/validate-command.js.map +1 -1
  334. package/dist/commands/skills/validate.d.ts +140 -4
  335. package/dist/commands/skills/validate.d.ts.map +1 -1
  336. package/dist/commands/skills/validate.js +224 -67
  337. package/dist/commands/skills/validate.js.map +1 -1
  338. package/dist/commands/validate.d.ts +1 -1
  339. package/dist/commands/validate.d.ts.map +1 -1
  340. package/dist/commands/validate.js +63 -27
  341. package/dist/commands/validate.js.map +1 -1
  342. package/dist/commands/verify.d.ts +119 -15
  343. package/dist/commands/verify.d.ts.map +1 -1
  344. package/dist/commands/verify.js +357 -142
  345. package/dist/commands/verify.js.map +1 -1
  346. package/dist/index.d.ts +0 -1
  347. package/dist/index.d.ts.map +1 -1
  348. package/dist/index.js +5 -1
  349. package/dist/index.js.map +1 -1
  350. package/dist/report-schemas.d.ts +45 -0
  351. package/dist/report-schemas.d.ts.map +1 -0
  352. package/dist/report-schemas.js +100 -0
  353. package/dist/report-schemas.js.map +1 -0
  354. package/dist/skill-resolution/classify.js +2 -2
  355. package/dist/skill-resolution/classify.js.map +1 -1
  356. package/dist/skill-resolution/packaging-config.d.ts +49 -5
  357. package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
  358. package/dist/skill-resolution/packaging-config.js +59 -19
  359. package/dist/skill-resolution/packaging-config.js.map +1 -1
  360. package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
  361. package/dist/skill-resolution/resolve-skill-reference.js +55 -57
  362. package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
  363. package/dist/utils/agent-discovery.d.ts.map +1 -1
  364. package/dist/utils/agent-discovery.js +22 -11
  365. package/dist/utils/agent-discovery.js.map +1 -1
  366. package/dist/utils/agent-runner.d.ts.map +1 -1
  367. package/dist/utils/agent-runner.js +7 -4
  368. package/dist/utils/agent-runner.js.map +1 -1
  369. package/dist/utils/claude-context-lens.d.ts +34 -0
  370. package/dist/utils/claude-context-lens.d.ts.map +1 -0
  371. package/dist/utils/claude-context-lens.js +39 -0
  372. package/dist/utils/claude-context-lens.js.map +1 -0
  373. package/dist/utils/command-error.d.ts +143 -20
  374. package/dist/utils/command-error.d.ts.map +1 -1
  375. package/dist/utils/command-error.js +179 -36
  376. package/dist/utils/command-error.js.map +1 -1
  377. package/dist/utils/config-loader.d.ts +2 -1
  378. package/dist/utils/config-loader.d.ts.map +1 -1
  379. package/dist/utils/config-loader.js +40 -14
  380. package/dist/utils/config-loader.js.map +1 -1
  381. package/dist/utils/corpus-target.d.ts +26 -0
  382. package/dist/utils/corpus-target.d.ts.map +1 -0
  383. package/dist/utils/corpus-target.js +72 -0
  384. package/dist/utils/corpus-target.js.map +1 -0
  385. package/dist/utils/edge-lens-evaluation.d.ts +83 -0
  386. package/dist/utils/edge-lens-evaluation.d.ts.map +1 -0
  387. package/dist/utils/edge-lens-evaluation.js +110 -0
  388. package/dist/utils/edge-lens-evaluation.js.map +1 -0
  389. package/dist/utils/help-loader.d.ts.map +1 -1
  390. package/dist/utils/help-loader.js +0 -1
  391. package/dist/utils/help-loader.js.map +1 -1
  392. package/dist/utils/issue-anchor.d.ts +2 -2
  393. package/dist/utils/issue-anchor.d.ts.map +1 -1
  394. package/dist/utils/issue-anchor.js +1 -1
  395. package/dist/utils/issue-rendering.d.ts +3 -3
  396. package/dist/utils/issue-rendering.d.ts.map +1 -1
  397. package/dist/utils/issue-rendering.js +3 -3
  398. package/dist/utils/issue-rendering.js.map +1 -1
  399. package/dist/utils/issue-severity.d.ts +12 -5
  400. package/dist/utils/issue-severity.d.ts.map +1 -1
  401. package/dist/utils/issue-severity.js +1 -1
  402. package/dist/utils/issue-severity.js.map +1 -1
  403. package/dist/utils/optional-backend.d.ts +78 -0
  404. package/dist/utils/optional-backend.d.ts.map +1 -0
  405. package/dist/utils/optional-backend.js +117 -0
  406. package/dist/utils/optional-backend.js.map +1 -0
  407. package/dist/utils/output.d.ts +26 -0
  408. package/dist/utils/output.d.ts.map +1 -1
  409. package/dist/utils/output.js +35 -0
  410. package/dist/utils/output.js.map +1 -1
  411. package/dist/utils/package-json.d.ts +24 -0
  412. package/dist/utils/package-json.d.ts.map +1 -0
  413. package/dist/utils/package-json.js +49 -0
  414. package/dist/utils/package-json.js.map +1 -0
  415. package/dist/utils/population-wiring.d.ts +100 -0
  416. package/dist/utils/population-wiring.d.ts.map +1 -0
  417. package/dist/utils/population-wiring.js +98 -0
  418. package/dist/utils/population-wiring.js.map +1 -0
  419. package/dist/utils/project-root-policy.d.ts +20 -0
  420. package/dist/utils/project-root-policy.d.ts.map +1 -1
  421. package/dist/utils/project-root-policy.js +30 -0
  422. package/dist/utils/project-root-policy.js.map +1 -1
  423. package/dist/utils/projection-lenses.d.ts +98 -0
  424. package/dist/utils/projection-lenses.d.ts.map +1 -0
  425. package/dist/utils/projection-lenses.js +203 -0
  426. package/dist/utils/projection-lenses.js.map +1 -0
  427. package/dist/utils/projection-query.d.ts +324 -0
  428. package/dist/utils/projection-query.d.ts.map +1 -0
  429. package/dist/utils/projection-query.js +357 -0
  430. package/dist/utils/projection-query.js.map +1 -0
  431. package/dist/utils/projection-store.d.ts +335 -0
  432. package/dist/utils/projection-store.d.ts.map +1 -0
  433. package/dist/utils/projection-store.js +522 -0
  434. package/dist/utils/projection-store.js.map +1 -0
  435. package/dist/utils/relation-limits.d.ts +50 -0
  436. package/dist/utils/relation-limits.d.ts.map +1 -0
  437. package/dist/utils/relation-limits.js +50 -0
  438. package/dist/utils/relation-limits.js.map +1 -0
  439. package/dist/utils/repeatable-option.d.ts +37 -0
  440. package/dist/utils/repeatable-option.d.ts.map +1 -0
  441. package/dist/utils/repeatable-option.js +39 -0
  442. package/dist/utils/repeatable-option.js.map +1 -0
  443. package/dist/utils/resource-loader.d.ts +134 -2
  444. package/dist/utils/resource-loader.d.ts.map +1 -1
  445. package/dist/utils/resource-loader.js +290 -27
  446. package/dist/utils/resource-loader.js.map +1 -1
  447. package/dist/utils/root-argv.d.ts +53 -0
  448. package/dist/utils/root-argv.d.ts.map +1 -0
  449. package/dist/utils/root-argv.js +215 -0
  450. package/dist/utils/root-argv.js.map +1 -0
  451. package/dist/utils/run-integrity.d.ts +95 -0
  452. package/dist/utils/run-integrity.d.ts.map +1 -0
  453. package/dist/utils/run-integrity.js +102 -0
  454. package/dist/utils/run-integrity.js.map +1 -0
  455. package/dist/utils/skill-discovery.d.ts.map +1 -1
  456. package/dist/utils/skill-discovery.js +2 -1
  457. package/dist/utils/skill-discovery.js.map +1 -1
  458. package/dist/utils/skill-packaging-config.d.ts +63 -1
  459. package/dist/utils/skill-packaging-config.d.ts.map +1 -1
  460. package/dist/utils/skill-packaging-config.js +56 -1
  461. package/dist/utils/skill-packaging-config.js.map +1 -1
  462. package/dist/utils/sqlite-experimental-warning.d.ts +69 -0
  463. package/dist/utils/sqlite-experimental-warning.d.ts.map +1 -0
  464. package/dist/utils/sqlite-experimental-warning.js +144 -0
  465. package/dist/utils/sqlite-experimental-warning.js.map +1 -0
  466. package/dist/utils/url-redact.d.ts.map +1 -1
  467. package/dist/utils/url-redact.js +4 -6
  468. package/dist/utils/url-redact.js.map +1 -1
  469. package/dist/utils/user-context-scanner.d.ts +8 -0
  470. package/dist/utils/user-context-scanner.d.ts.map +1 -1
  471. package/dist/utils/user-context-scanner.js +4 -2
  472. package/dist/utils/user-context-scanner.js.map +1 -1
  473. package/dist/utils/validate-help-files.d.ts.map +1 -1
  474. package/dist/utils/validate-help-files.js +12 -6
  475. package/dist/utils/validate-help-files.js.map +1 -1
  476. package/dist/utils/vat-bin-path.d.ts +36 -0
  477. package/dist/utils/vat-bin-path.d.ts.map +1 -0
  478. package/dist/utils/vat-bin-path.js +48 -0
  479. package/dist/utils/vat-bin-path.js.map +1 -0
  480. package/dist/utils/verdict-helpers.d.ts +1 -1
  481. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  482. package/dist/utils/verdict-helpers.js +1 -1
  483. package/dist/utils/verdict-helpers.js.map +1 -1
  484. package/dist/version.d.ts.map +1 -1
  485. package/dist/version.js +1 -3
  486. package/dist/version.js.map +1 -1
  487. package/docs/agent.md +2 -2
  488. package/docs/audit.md +143 -39
  489. package/docs/doctor.md +7 -6
  490. package/docs/index.md +19 -11
  491. package/docs/mcp.md +2 -2
  492. package/docs/rag.md +3 -2
  493. package/docs/resources.md +13 -3
  494. package/docs/skill-test.md +10 -9
  495. package/docs/skills.md +53 -69
  496. package/package.json +36 -27
  497. package/schemas/ard-emit.json +152 -0
  498. package/schemas/okf-validate.json +170 -0
  499. package/schemas/resources-check.json +257 -0
  500. package/schemas/skill-review.json +230 -0
  501. package/dist/commands/resources/command-helpers.d.ts +0 -5
  502. package/dist/commands/resources/command-helpers.d.ts.map +0 -1
  503. package/dist/commands/resources/command-helpers.js +0 -6
  504. package/dist/commands/resources/command-helpers.js.map +0 -1
@@ -1,4 +1,376 @@
1
+ import type { MultipartFile, MultipartResult, OrgApiClient } from '@vibe-agent-toolkit/claude-marketplace';
2
+ import type { ValidationConfig } from '@vibe-agent-toolkit/schema';
1
3
  import { Command } from 'commander';
4
+ import type { OrgCommandFailure } from './helpers.js';
5
+ export interface SkillUploadResult {
6
+ id: string;
7
+ displayTitle: string;
8
+ version: string;
9
+ createdAt: string;
10
+ }
11
+ interface UploadLogger {
12
+ info: (msg: string) => void;
13
+ /**
14
+ * REQUIRED, not optional. An optional `warn` invites `logger.warn?.(…)`,
15
+ * which drops the message wherever a caller supplied only `info` — and a
16
+ * warning that vanishes depending on its caller is the exact shape this
17
+ * command keeps being audited for.
18
+ */
19
+ warn: (msg: string) => void;
20
+ }
21
+ /** Read `POST /v1/skills` — the shape measured against the live API. */
22
+ export declare function readCreateSkillResponse(raw: unknown): SkillUploadResult;
23
+ /** The document a delete command publishes. */
24
+ export interface SkillDeleteResult {
25
+ readonly id: string;
26
+ readonly deleted: boolean;
27
+ }
28
+ /**
29
+ * Read a DELETE response into the result a delete command prints.
30
+ *
31
+ * 🔑 Same class of problem as {@link readSkillUploadResponse} — the client's
32
+ * `<T>` is an assertion, not a check — but the OPPOSITE verdict on an empty
33
+ * body, and deliberately so. The client used to reject a 2xx carrying no body
34
+ * with a parse error, which reported a 204 DELETE that SUCCEEDED as a failure;
35
+ * that is fixed, and the value now handed to this reader for such a response is
36
+ * `undefined`. Refusing it here, the way an upload response is refused, would
37
+ * reinstate the same lie one layer up — and reading `.id` off it, which is what
38
+ * the two call sites did, is a `TypeError` in place of a report.
39
+ *
40
+ * So an empty body is read as the success it is: the status already said the
41
+ * resource is gone, the id is the one this process asked for, and there is
42
+ * nothing else to learn. Measured live behaviour today is a JSON body carrying
43
+ * `type: skill_deleted`, so the empty case is LATENT rather than a live
44
+ * regression — but it is one 204 away, and a latent `TypeError` is not a
45
+ * contract.
46
+ *
47
+ * `deleted` is false only when the body affirmatively names a DIFFERENT
48
+ * outcome, which is the one case where the API is saying something this command
49
+ * must not paper over — and {@link reportDelete} is what makes the run END that
50
+ * way rather than merely say so in a field nothing reads.
51
+ *
52
+ * ⚠️ `expectedTypes` is a LIST because only one member of it is measured.
53
+ * `skill_deleted` came back from a live `DELETE /v1/skills/{id}`;
54
+ * `skill_version_deleted` is the plausible spelling for the version endpoint and
55
+ * has never been seen. A single guessed string would make every version delete
56
+ * report `deleted: false` — and now exit 1 — if the vendor spells it differently
57
+ * by one character. Accepting either keeps the check honest about what it knows:
58
+ * a body naming something that is neither is a real divergence worth failing on.
59
+ */
60
+ export declare function readDeleteResponse(raw: unknown, requestedId: string, expectedTypes: readonly string[]): SkillDeleteResult;
61
+ /** The success types measured against the live `DELETE /v1/skills/{id}`. */
62
+ export declare const SKILL_DELETED_TYPES: readonly string[];
63
+ /**
64
+ * The success types a version delete may answer with — see
65
+ * {@link readDeleteResponse} for why this is two and not one.
66
+ */
67
+ export declare const SKILL_VERSION_DELETED_TYPES: readonly string[];
68
+ /**
69
+ * A delete's document, tagged as a FAILED run when the API said the thing was
70
+ * not deleted.
71
+ *
72
+ * 🔑 Without this, `deleted: false` was computed, printed under
73
+ * `status: success`, and exited 0 — the exact "the run completed and its outcome
74
+ * is wrong" shape that {@link orgCommandFailure} was added in this same change to
75
+ * fix for `--from-npm`, in the one branch that never got wired to it. A CI
76
+ * wrapper spelled `vat claude org skills delete X || fail` reported green while
77
+ * the skill was still there.
78
+ *
79
+ * The document is still PUBLISHED — the id and the verdict are what the operator
80
+ * needs — and only the exit code changes. Throwing instead would end non-zero and
81
+ * discard the report.
82
+ */
83
+ export declare function reportDelete(raw: unknown, requestedId: string, expectedTypes: readonly string[]): SkillDeleteResult | OrgCommandFailure;
84
+ /** The document a version delete publishes: which version, of which skill. */
85
+ export interface SkillVersionDeleteResult extends SkillDeleteResult {
86
+ readonly version: string;
87
+ }
88
+ /**
89
+ * A version delete's document — the same verdict as {@link reportDelete}, about
90
+ * a subject that can actually be identified.
91
+ *
92
+ * 🚨 **The version-delete document used to name no version at all, and its `id`
93
+ * meant two different things depending on the response.** It went through
94
+ * `reportDelete(raw, skillId, …)`, so `readDeleteResponse` returned the API's
95
+ * ECHOED id when there was a body — the VERSION identifier — and fell back to
96
+ * the requested id — the SKILL identifier — on a 204. Two runs of the same
97
+ * command therefore published `id` fields from two different namespaces, and
98
+ * neither run's document said which of a skill's versions had been destroyed.
99
+ * An audit trail of an irreversible operation that cannot name what it destroyed
100
+ * is not an audit trail.
101
+ *
102
+ * Both fields are now local knowledge, which is the whole point: this process
103
+ * asked to delete `version` of `skillId` and the API confirmed a deletion, so
104
+ * nothing about the subject's identity has to be recovered from the response
105
+ * shape. The response is still read — for the VERDICT, which is the one thing
106
+ * only the API knows.
107
+ */
108
+ export declare function reportVersionDelete(raw: unknown, skillId: string, version: string): SkillVersionDeleteResult | OrgCommandFailure;
109
+ /**
110
+ * Add the versions a `--all` run destroyed to its report, preserving whatever
111
+ * verdict {@link reportDelete} reached.
112
+ *
113
+ * Unwrapping and re-wrapping rather than spreading into the tagged value: the
114
+ * failure tag sits BESIDE the document, so a naive `{ ...result, deletedVersions }`
115
+ * on a failure would produce an object carrying `orgCommandFailed` next to the
116
+ * skill's fields and publish the tag as part of the operator's document.
117
+ */
118
+ export declare function mergeDeleteReport(result: SkillDeleteResult | OrgCommandFailure, deletedVersions: readonly string[]): object;
119
+ /** Read `POST /v1/skills/{id}/versions`. */
120
+ export declare function readSkillVersionResponse(raw: unknown): SkillUploadResult;
121
+ /**
122
+ * Build the multipart request body for an upload, refusing it before anything is
123
+ * sent when THAT BODY is OVER the API's upload ceiling.
124
+ *
125
+ * 🔑 **The ceiling is INCLUSIVE, and that is measured rather than reasoned.** A
126
+ * request body of exactly {@link API_SKILL_MAX_UPLOAD_BYTES} bytes is ACCEPTED;
127
+ * one byte more is refused `413`:
128
+ *
129
+ * | raw file bytes | + framing | = body | live API |
130
+ * |---|---|---|---|
131
+ * | 31,456,735 | 545 | **31,457,280** | `status: success` |
132
+ * | 31,456,736 | 545 | 31,457,281 | `413` |
133
+ *
134
+ * So the comparison here is `>`, not `>=`. An earlier version of this code used
135
+ * `>=` on the argument that firing AT the ceiling was the conservative reading —
136
+ * an argument that was never measured, and the measurement above refutes it. It
137
+ * is not conservative: it refuses a body the API takes, and the operator has no
138
+ * way to tell that VAT and not Anthropic said no.
139
+ *
140
+ * ⚠️ **The build-time lane deliberately differs, and must not be "harmonised"
141
+ * with this one.** `checkPackagedSizeLimit` fires when FILE BYTES reach the same
142
+ * number — `>=` — because framing is never zero, so files totalling exactly the
143
+ * limit always produce a request LARGER than the limit and therefore a real 413.
144
+ * Two lanes, two measures, two rules: **file bytes `>=` refuse; request bytes `>`
145
+ * refuse.** Both are right about the quantity each can see.
146
+ *
147
+ * THE one gate every upload passes through, whichever shape it started as. The
148
+ * check used to live inside the directory-packaging step alone, so
149
+ * `skills install big-skill.zip` — the one input that is by construction a
150
+ * single large binary, and the shape the check was written for — reached the
151
+ * wire unmeasured.
152
+ *
153
+ * 🔑 **It weighs the BODY, not the sum of the file bytes.** The API measures the
154
+ * request, and the request is this buffer. Summing `file.content.length` — what
155
+ * this did — ignores the per-part framing `buildMultipartFormData` adds: a
156
+ * 51-byte boundary line, a `Content-Disposition` of 61 bytes plus the filename, a
157
+ * 42-byte content-type-and-blank-line and a 2-byte trailing CRLF, so 156 bytes
158
+ * plus the filename PER FILE, plus a 53-byte terminator. A 1,000-file bundle
159
+ * therefore carries ~180 KiB that the old measure could not see, and a bundle
160
+ * whose content sat just under the ceiling passed the pre-flight and then earned
161
+ * the 413 this check exists to prevent — 11 seconds for 30 MB, measured.
162
+ *
163
+ * No headroom constant closes that gap, and none is added: the exact number is
164
+ * available for free by building the body first and asking it how long it is.
165
+ * The body is then RETURNED, so the bytes that were weighed are the bytes that go
166
+ * out; a gate that only inspected its inputs would be one refactor away from
167
+ * measuring something the caller no longer sends.
168
+ *
169
+ * The build-time `PACKAGED_SIZE_EXCEEDS_API_LIMIT` cannot do this — there is no
170
+ * request at build time — so it weighs files on disk and says so. The two
171
+ * messages name what each measured rather than pretending to be the same number.
172
+ */
173
+ export declare function buildUploadBodyOrRefuse(fields: Record<string, string>, files: readonly MultipartFile[], bundleRoot?: string): MultipartResult;
174
+ /**
175
+ * A vendor refusal this CLI can answer with a specific next command.
176
+ *
177
+ * `matches` are ALL required, and are deliberately more than one: a single word
178
+ * like `version` appears in refusals that have nothing to do with this case, so
179
+ * each entry names both the subject the API is talking about and the verdict it
180
+ * reached about it.
181
+ */
182
+ interface VendorRefusalRemedy {
183
+ /** Every pattern must match the API's message for the remedy to apply. */
184
+ readonly matches: readonly RegExp[];
185
+ /** Appended to the vendor's sentence — never substituted for it. */
186
+ readonly remedy: string;
187
+ }
188
+ /**
189
+ * A failed request, re-thrown with the command that answers it when — and only
190
+ * when — the API said one of the specific things listed by the caller.
191
+ *
192
+ * **What is matched, exactly:** an {@link ApiRequestError} whose `statusCode` is
193
+ * 400 and whose message satisfies every pattern of one {@link
194
+ * VendorRefusalRemedy}. Both live wordings are measured, not guessed:
195
+ * `400 Skill cannot reuse an existing display_title` and
196
+ * `400 Cannot delete skill with existing versions. Delete all versions first.`
197
+ *
198
+ * **How it fails safe:** anything that does not match is returned UNTOUCHED, so
199
+ * an unrelated 400 keeps the API's exact words and gets no misleading remedy. If
200
+ * the vendor rewords a refusal, the operator loses a hint — they never gain a
201
+ * wrong one. The remedy is appended, so the vendor's sentence survives in full.
202
+ *
203
+ * One mechanism, several refusals, and each call site passes only the refusals
204
+ * that are REACHABLE from it — a second copy of this matcher per case is how the
205
+ * two would come to disagree about what "fail safe" means.
206
+ */
207
+ export declare function withRemedy(error: unknown, candidates: readonly VendorRefusalRemedy[]): unknown;
208
+ /**
209
+ * The skill still has versions, so it cannot be deleted.
210
+ *
211
+ * `--all` leads, because it IS the one-step path: the `--all` branch of this
212
+ * command fetches every version and deletes them before deleting the skill. The
213
+ * by-hand sequence follows for an operator who wants to see what is there first.
214
+ * Naming only `versions delete` would send them round a loop they can already
215
+ * ask the CLI to run.
216
+ */
217
+ export declare const EXISTING_VERSIONS_REFUSAL: VendorRefusalRemedy;
218
+ /** Only the CREATE path can earn a duplicate-title refusal — see {@link uploadSkillDir}. */
219
+ export declare function withDuplicateTitleRemedy(error: unknown): unknown;
220
+ /**
221
+ * The version's SKILL.md declares a different `name` than the skill it is being
222
+ * added to.
223
+ *
224
+ * The server enforces name consistency per `skill_id` (measured), which is why
225
+ * `versions add` cannot silently re-root a skill's file tree and why this is the
226
+ * one refusal that endpoint can earn. The remedy names both fixes, because which
227
+ * one is right depends on what the operator meant: keep the skill and put its
228
+ * name back, or publish the renamed tree as the separate skill it now is.
229
+ *
230
+ * ⚠️ The vendor's exact wording here has NOT been measured, only the fact of the
231
+ * refusal. `withRemedy` fails safe on no match — the operator loses a hint, never
232
+ * gains a wrong one — so a guessed pattern is the conservative thing to ship.
233
+ */
234
+ export declare const VERSION_NAME_MISMATCH_REFUSAL: VendorRefusalRemedy;
235
+ /** Only the VERSION path can earn a name-consistency refusal — see {@link uploadSkillVersionDir}. */
236
+ export declare function withVersionRootRemedy(error: unknown): unknown;
237
+ /**
238
+ * A failure that got NO answer from the server, re-thrown saying what was
239
+ * actually sent and what a retry would risk.
240
+ *
241
+ * ⛔ **The trigger is a RECORDED FACT, never the error's class.** This used to
242
+ * read `if (error instanceof ApiRequestError) return error;` — "a completed
243
+ * exchange always arrives as an `ApiRequestError`, so anything else must be a
244
+ * dropped connection". The first half is true and the converse is not, and the
245
+ * converse is what shipped: `buildSkillsHeaders()` throws a plain `Error` before
246
+ * a socket is ever opened, so
247
+ * `ANTHROPIC_API_KEY= vat claude org skills install <dir>` told a first-time
248
+ * operator, on top of the real "no key" message, that a connection had closed,
249
+ * that VAT had sent 6.8 KiB (the length of a buffer that never left the process),
250
+ * and that the outcome was unknown — then sent them to a recovery command that
251
+ * fails with the identical missing-key error. Three false statements and a loop.
252
+ *
253
+ * So the gate is POSITIVE and evidential: annotate only an
254
+ * {@link ApiTransportError}, which exists only once the transport has been
255
+ * reached and carries `bytesSent` read off the socket at failure time. Anything
256
+ * else — a missing credential, a bad URL, a response VAT refused to read —
257
+ * passes through with its own message untouched.
258
+ *
259
+ * Two outcomes, because the byte count decides which is TRUE:
260
+ *
261
+ * - **Nothing left the machine** (`bytesSent === 0`: DNS never resolved, the
262
+ * connection was refused, the handshake failed). The outcome is not unknown,
263
+ * it is known: nothing happened. Saying "check what exists" here would send
264
+ * an operator to look for a skill that was never sent.
265
+ * - **Some bytes went out and no status came back.** Now the outcome genuinely
266
+ * is unknown, and the part the operator cannot see is how far it got. The
267
+ * client never replays a POST — one that failed with no status may still have
268
+ * taken effect — so the retry is theirs, and it can leave two skills behind.
269
+ *
270
+ * **No threshold.** There is no constant here for "close to the ceiling" and
271
+ * there must not be: an invented margin is a number nobody can re-derive. The
272
+ * bytes sent, the body size and the ceiling are printed and the reader draws
273
+ * their own conclusion.
274
+ */
275
+ export declare function explainAnsweredNothing(error: unknown, bodyBytes: number): unknown;
276
+ /**
277
+ * Resolve a `<source>` CLI argument to an absolute path.
278
+ *
279
+ * 🪤 The test used to be `source.startsWith('/')`, which is false for
280
+ * `D:\builds\skill` — so a Windows operator's absolute path was joined onto the
281
+ * working directory and reported back as `Source not found: <cwd>/D:/builds/skill`.
282
+ * {@link isAbsoluteAnyPlatform} answers for POSIX roots, drive letters and UNC
283
+ * paths on EVERY host, so the behaviour is the same wherever it runs and a
284
+ * POSIX-only CI can see the drive-letter case at all.
285
+ */
286
+ export declare function resolveSourceArgument(source: string): string;
287
+ /** What {@link inspectZipArchive} can tell a caller about an archive. */
288
+ export interface ZipInspection {
289
+ /** The API-enforced quantity: the sum of every entry's declared size. */
290
+ readonly uncompressedBytes: number;
291
+ /** The `name` declared by the SKILL.md nearest the archive root, if any. */
292
+ readonly declaredName: string | undefined;
293
+ /**
294
+ * Entry names carrying a {@link NEVER_UPLOADED_DIR_NAMES} path segment —
295
+ * `evals/` above all. The directory lane REFUSES these; this is what lets the
296
+ * ZIP lane reach the same verdict about the same content.
297
+ */
298
+ readonly neverUploaded: readonly string[];
299
+ /**
300
+ * Every markdown member, inflated, shaped as the parts the directory lane
301
+ * hands {@link warnUnportableReferences} — so the ZIP lane runs the SAME
302
+ * checks over the same content rather than a second implementation of them.
303
+ *
304
+ * Markdown only, and only within {@link MAX_INSPECTED_DOCUMENT_BYTES} an
305
+ * entry: these detectors read prose, and inflating an archive's binaries to
306
+ * hand them to a reader that skips them is work spent to produce nothing.
307
+ */
308
+ readonly documents: readonly MultipartFile[];
309
+ /**
310
+ * The archive's top-level directory, when it has one — the prefix
311
+ * {@link bundleRelativeName} strips so a finding is located in the same
312
+ * namespace a `validation.allow` glob is matched in. `undefined` for an
313
+ * archive whose SKILL.md sits at the root, which has no prefix to strip.
314
+ */
315
+ readonly bundleRoot: string | undefined;
316
+ /**
317
+ * Members this inspection wanted and could not inflate — a bad CRC, a
318
+ * compression method that is not store/deflate, an encrypted entry — each
319
+ * with the reader's reason. Skipped, never fatal (an archive VAT cannot read
320
+ * is not an archive VAT should block), but NAMED: a document that was not
321
+ * checked is a promise `install --help` makes that this run did not keep,
322
+ * and the operator is owed the list.
323
+ */
324
+ readonly unreadable: readonly ZipEntryFailure[];
325
+ }
326
+ /** One archive member the reader refused, and why. */
327
+ export interface ZipEntryFailure {
328
+ readonly entry: string;
329
+ readonly reason: string;
330
+ }
331
+ /** An archive the reader could not open at all, and why. */
332
+ export interface ZipUnreadable {
333
+ readonly archiveUnreadable: string;
334
+ }
335
+ /**
336
+ * What a ZIP will weigh AFTER the API expands it, read from the archive's own
337
+ * central directory — plus the name its inner SKILL.md declares, any answer key
338
+ * it carries, and the markdown members the portability checks read.
339
+ *
340
+ * 🔑 **The API expands a ZIP and applies the ceiling to the UNCOMPRESSED total,
341
+ * not to the archive.** Measured against the live API by an adopter: a
342
+ * 10,707,463-byte archive of a 47.85 MiB tree — comfortably inside the request
343
+ * ceiling as bytes on the wire — came back
344
+ * `400: Zip file uncompressed size exceeds 30MB`. So the body check every other
345
+ * shape passes through is structurally blind here: compression is exactly the
346
+ * thing that makes the measured quantity stop predicting the enforced one. A
347
+ * ZIP is therefore the one input that could pass every local gate and still be
348
+ * refused remotely, which is the same defect class as the ZIP path once
349
+ * skipping the size check altogether.
350
+ *
351
+ * ⚠️ **The boundary itself is UNMEASURED on this lane.** One refusal at 47.85
352
+ * MiB is all the evidence there is; nobody has bracketed where the uncompressed
353
+ * rule actually cuts, or confirmed it is the same constant as the request lane.
354
+ * So this refuses only on `>` — strictly the looser choice — and a bundle near
355
+ * the line is still sent for the API to judge. Do not tighten this to `>=`, or
356
+ * quote it as a measured ceiling, without bracketing it the way
357
+ * {@link API_SKILL_MAX_UPLOAD_BYTES} was bracketed.
358
+ *
359
+ * ⛔ Sizes come from entry HEADERS, which an archive can lie about. That is
360
+ * fine: a lie can only change whether VAT refuses early, never whether the API
361
+ * does.
362
+ *
363
+ * ⚠️ **Reading an entry is not free, and the docstring here used to claim it
364
+ * was** — "no zip-slip or zip-bomb surface is opened — the entries are read, not
365
+ * written" was true of the enumeration half and FALSE of the one `getData()`
366
+ * call, which inflates `header.size` bytes into memory. Worse, it ran BEFORE the
367
+ * caller's uncompressed-total gate, so the ceiling this function exists to
368
+ * enforce could not protect the inflation this function performed. Nothing is
369
+ * written to disk — that part stands — but the decompression is now ordered
370
+ * after the total is known and bounded by {@link MAX_INSPECTED_DOCUMENT_BYTES},
371
+ * so an archive declaring a 4 GiB SKILL.md is enumerated and never inflated.
372
+ */
373
+ export declare function inspectZipArchive(zipPath: string): Promise<ZipInspection | ZipUnreadable>;
2
374
  interface CollectedUploadFiles {
3
375
  files: Array<{
4
376
  relativePath: string;
@@ -19,6 +391,161 @@ interface CollectedUploadFiles {
19
391
  * no caller can obtain an upload set with the exclusion skipped.
20
392
  */
21
393
  export declare function collectSkillUploadFiles(skillDir: string): Promise<CollectedUploadFiles>;
394
+ /**
395
+ * Warn about references in the bundle that cannot resolve once it is published.
396
+ *
397
+ * 🚨 **Until this existed, `install` validated NOTHING.** It weighed the request
398
+ * and sent it; every check VAT owns — the non-portable reference family, the
399
+ * unqualified MCP tool names, the non-portable command family — ran in
400
+ * `vat audit` and `vat skills build` and never on the one path where content
401
+ * leaves the machine. An adopter found the consequence directly: of 54 built
402
+ * skills, 10 referenced paths outside their own directory, one of them exec'ing
403
+ * a script under a SIBLING skill. Under the Skills API each skill is its own
404
+ * top-level tree with no siblings, so those uploaded with a green tick and could
405
+ * not possibly run. "It uploaded" is not "it works", and the publish command was
406
+ * the only lane in a position to say so before the bytes left.
407
+ *
408
+ * ⚠️ **Warns, never refuses.** These are `warning`-severity codes and the
409
+ * operator may have reasons VAT cannot see; turning a publish into an exit 2 on
410
+ * a heuristic is a worse failure than the one being reported. Blocking belongs
411
+ * to `vat skills build` and `vat audit`, which run before this and can gate CI.
412
+ *
413
+ * Costs nothing extra: it reads the buffers already collected for the upload, so
414
+ * no file is opened twice and nothing is walked again.
415
+ *
416
+ * 🚨 **The three collectors are RAW issue producers, and raw issues are not what
417
+ * an adopter agreed to see.** Everywhere else in VAT they pass through
418
+ * {@link runValidationFramework}, which applies `validation.allow` waivers and
419
+ * `validation.severity` overrides. Printed unfiltered, this lane contradicted
420
+ * VAT's own documented remedy: `MCP_TOOL_NAME_UNQUALIFIED` tells authors to
421
+ * "waive that one identifier with a `validation.allow` entry", and an author who
422
+ * did exactly that got a green `vat skills build` and then the same warning on
423
+ * every publish with nothing left to silence it with.
424
+ *
425
+ * ⚠️ The `location` is the BUNDLE-relative path, not the API-keyed
426
+ * `<declared-name>/<path>` spelling. An allow glob matches `ValidationIssue.location`,
427
+ * which is contractually project/bundle-relative, so the keyed spelling could not
428
+ * have matched an entry even once allows were applied — the same divergence
429
+ * {@link bundleRelativeName} exists to strip out of the oversize message.
430
+ *
431
+ * ⛔ The run-level ALLOW_UNUSED sweep is deliberately NOT drained here. This lane
432
+ * runs three validator families out of the whole registry, so every allow entry
433
+ * for any other code would be reported as dead — advising the author to delete
434
+ * the entry that makes their build green.
435
+ */
436
+ export declare function warnUnportableReferences(files: readonly MultipartFile[], bundleRoot: string | undefined, validation: ValidationConfig | undefined, logger: UploadLogger): void;
437
+ /**
438
+ * List candidate package directories in node_modules (scoped + unscoped).
439
+ *
440
+ * Exported for testing: this and {@link findSkillsDir} decide WHICH tree
441
+ * `--from-npm` publishes to an org, and the whole `--from-npm` path was
442
+ * untested — `packages/cli/src/commands/**` is coverage-excluded, so nothing in
443
+ * any report said so.
444
+ */
445
+ export declare function listNodeModulePackages(nodeModulesDir: string): string[];
446
+ /**
447
+ * Find the dist/skills/ directory in a package. Checks the package itself
448
+ * first, then scans node_modules for sub-packages that contain built skills.
449
+ */
450
+ export declare function findSkillsDir(packageDir: string): string | undefined;
451
+ /** One skill the batch could not publish, and why. */
452
+ export interface SkillUploadFailure {
453
+ readonly skill: string;
454
+ readonly error: string;
455
+ }
456
+ /** The document `install --from-npm` publishes. */
457
+ export interface NpmInstallSummary {
458
+ source: string;
459
+ skillsUploaded: number;
460
+ skillsFailed?: number;
461
+ errors?: readonly SkillUploadFailure[];
462
+ skills: readonly SkillUploadResult[];
463
+ }
464
+ /**
465
+ * The batch's report, tagged as a failure when ANY skill did not publish.
466
+ *
467
+ * 🔑 Partial success is a failure. The old code returned this document plainly,
468
+ * so `executeOrgCommand` stamped `status: success` on it and exited 0 — a run in
469
+ * which all three skills were rejected printed `skillsUploaded: 0 /
470
+ * skillsFailed: 3` under `status: success`, and a CI wrapper written as
471
+ * `vat claude org skills install --from-npm … || fail` published nothing and
472
+ * reported green.
473
+ *
474
+ * Some-succeeded is tagged the same way as none-succeeded, deliberately: the
475
+ * workspace is now in a MIXED state that nobody asked for, which is exactly the
476
+ * case a human has to look at. Calling it green because two of three landed is
477
+ * the same lie, only smaller. What did land stays in the document, so the reader
478
+ * can see how far the run got.
479
+ */
480
+ export declare function summarizeNpmInstall(source: string, results: readonly SkillUploadResult[], errors: readonly SkillUploadFailure[]): NpmInstallSummary | OrgCommandFailure;
481
+ /**
482
+ * Upload a local skill directory or ZIP file. Exported for testing.
483
+ */
484
+ export declare function installFromLocal(source: string, titleOverride: string | undefined, client: OrgApiClient, logger: UploadLogger): Promise<object>;
485
+ /** One version the sweep could not delete, and the reason it gave. */
486
+ export interface VersionDeleteFailure {
487
+ readonly version: string;
488
+ readonly reason: string;
489
+ }
490
+ /** What a `--all` sweep did to the versions it was handed. */
491
+ export interface VersionSweep {
492
+ /** Versions this run destroyed. Irreversible, and the record of it. */
493
+ readonly deleted: readonly string[];
494
+ /** Versions still there, each with why. Empty means the sweep is complete. */
495
+ readonly failures: readonly VersionDeleteFailure[];
496
+ }
497
+ /**
498
+ * Delete every version handed in, and keep going when one refuses.
499
+ *
500
+ * 🚨 **One refusal is a fact about ONE version.** This loop used to return on the
501
+ * first one, so every version after it was never ATTEMPTED — not failed, not
502
+ * reported, unexamined. Deleting a workspace skill requires deleting every
503
+ * version first, so the operator was left with a skill that could not be deleted,
504
+ * a report that named one problem out of an unknown number, and no way to tell
505
+ * from the output which versions were still there. A transient refusal on version
506
+ * 2 of 30 hid the state of the other 28.
507
+ *
508
+ * The sweep therefore ATTEMPTS all of them and reports both lists. The caller
509
+ * decides what the outcome means: some deleted plus some failed is a run that
510
+ * happened and went wrong (exit 1, with the record); nothing deleted at all is
511
+ * the ending the command's help documents as exit 2.
512
+ *
513
+ * ⛔ It deliberately does NOT stop early on a repeated failure. A "the API is
514
+ * clearly down, give up" heuristic is how the abandoned-versions defect reads
515
+ * from inside: the whole value here is that every version's state is KNOWN when
516
+ * the command ends.
517
+ */
518
+ export declare function deleteEveryVersion(client: Pick<OrgApiClient, 'deleteSkillVersion'>, skillId: string, versions: readonly string[], logger: UploadLogger): Promise<VersionSweep>;
519
+ /**
520
+ * Every version the sweep could not delete, and why — the one sentence both the
521
+ * published report and the exit-2 throw are built from, so the two endings never
522
+ * describe the same run differently.
523
+ */
524
+ export declare function describeVersionSweepFailures(failures: readonly VersionDeleteFailure[]): string;
525
+ /** What {@link reportHalfDeleted} needs to describe a run that destroyed some of what it was asked to. */
526
+ export interface HalfDeletedReport {
527
+ readonly skillId: string;
528
+ readonly deletedVersions: readonly string[];
529
+ /** Versions still present. Empty when the sweep completed and the SKILL delete is what failed. */
530
+ readonly failedVersions: readonly string[];
531
+ readonly error: string;
532
+ }
533
+ /**
534
+ * The document a `--all` run publishes when it destroyed something and then did
535
+ * not finish.
536
+ *
537
+ * 🔑 The deleted list is a RECORD, not a progress counter. Version deletion is
538
+ * irreversible, so a failure part-way through leaves a workspace nobody can
539
+ * reconstruct — and throwing here would end on `handleCommandError`'s exit 2
540
+ * ("the run could not happen") and DISCARD the document. It happened, and it
541
+ * destroyed things the operator now has no other list of. So the lists travel
542
+ * with the failure and the run ends 1: it happened, and its outcome is wrong.
543
+ *
544
+ * `failedVersions` is the other half, and the half a re-run needs: what is still
545
+ * there. Without it the operator knows what they lost and not what they still
546
+ * have to deal with.
547
+ */
548
+ export declare function reportHalfDeleted(report: HalfDeletedReport): OrgCommandFailure;
22
549
  export declare function createOrgSkillsCommand(): Command;
23
550
  export {};
24
551
  //# sourceMappingURL=skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../../src/commands/claude/org/skills.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwFpC,UAAU,oBAAoB;IAC7B,KAAK,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AA8DD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAI7F;AAsMD,wBAAgB,sBAAsB,IAAI,OAAO,CAoKhD"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../../src/commands/claude/org/skills.ts"],"names":[],"mappings":"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"}