@hashicorp/kits 0.1.0

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 (392) hide show
  1. package/README.md +619 -0
  2. package/bin/kits.js +8 -0
  3. package/dist/adapters/base-adapter.d.ts +231 -0
  4. package/dist/adapters/base-adapter.d.ts.map +1 -0
  5. package/dist/adapters/base-adapter.js +703 -0
  6. package/dist/adapters/base-adapter.js.map +1 -0
  7. package/dist/adapters/claude-code/detection.d.ts +63 -0
  8. package/dist/adapters/claude-code/detection.d.ts.map +1 -0
  9. package/dist/adapters/claude-code/detection.js +154 -0
  10. package/dist/adapters/claude-code/detection.js.map +1 -0
  11. package/dist/adapters/claude-code/index.d.ts +178 -0
  12. package/dist/adapters/claude-code/index.d.ts.map +1 -0
  13. package/dist/adapters/claude-code/index.js +643 -0
  14. package/dist/adapters/claude-code/index.js.map +1 -0
  15. package/dist/adapters/claude-code/installer.d.ts +161 -0
  16. package/dist/adapters/claude-code/installer.d.ts.map +1 -0
  17. package/dist/adapters/claude-code/installer.js +413 -0
  18. package/dist/adapters/claude-code/installer.js.map +1 -0
  19. package/dist/adapters/claude-code/model-mapping.d.ts +7 -0
  20. package/dist/adapters/claude-code/model-mapping.d.ts.map +1 -0
  21. package/dist/adapters/claude-code/model-mapping.js +14 -0
  22. package/dist/adapters/claude-code/model-mapping.js.map +1 -0
  23. package/dist/adapters/claude-code/tool-mapping.d.ts +18 -0
  24. package/dist/adapters/claude-code/tool-mapping.d.ts.map +1 -0
  25. package/dist/adapters/claude-code/tool-mapping.js +31 -0
  26. package/dist/adapters/claude-code/tool-mapping.js.map +1 -0
  27. package/dist/adapters/codex/detection.d.ts +60 -0
  28. package/dist/adapters/codex/detection.d.ts.map +1 -0
  29. package/dist/adapters/codex/detection.js +146 -0
  30. package/dist/adapters/codex/detection.js.map +1 -0
  31. package/dist/adapters/codex/index.d.ts +167 -0
  32. package/dist/adapters/codex/index.d.ts.map +1 -0
  33. package/dist/adapters/codex/index.js +344 -0
  34. package/dist/adapters/codex/index.js.map +1 -0
  35. package/dist/adapters/codex/installer.d.ts +147 -0
  36. package/dist/adapters/codex/installer.d.ts.map +1 -0
  37. package/dist/adapters/codex/installer.js +229 -0
  38. package/dist/adapters/codex/installer.js.map +1 -0
  39. package/dist/adapters/codex/model-mapping.d.ts +7 -0
  40. package/dist/adapters/codex/model-mapping.d.ts.map +1 -0
  41. package/dist/adapters/codex/model-mapping.js +14 -0
  42. package/dist/adapters/codex/model-mapping.js.map +1 -0
  43. package/dist/adapters/codex/tool-mapping.d.ts +19 -0
  44. package/dist/adapters/codex/tool-mapping.d.ts.map +1 -0
  45. package/dist/adapters/codex/tool-mapping.js +32 -0
  46. package/dist/adapters/codex/tool-mapping.js.map +1 -0
  47. package/dist/adapters/command-parser.d.ts +72 -0
  48. package/dist/adapters/command-parser.d.ts.map +1 -0
  49. package/dist/adapters/command-parser.js +222 -0
  50. package/dist/adapters/command-parser.js.map +1 -0
  51. package/dist/adapters/file-operations.d.ts +164 -0
  52. package/dist/adapters/file-operations.d.ts.map +1 -0
  53. package/dist/adapters/file-operations.js +526 -0
  54. package/dist/adapters/file-operations.js.map +1 -0
  55. package/dist/adapters/gemini-cli/detection.d.ts +57 -0
  56. package/dist/adapters/gemini-cli/detection.d.ts.map +1 -0
  57. package/dist/adapters/gemini-cli/detection.js +143 -0
  58. package/dist/adapters/gemini-cli/detection.js.map +1 -0
  59. package/dist/adapters/gemini-cli/index.d.ts +182 -0
  60. package/dist/adapters/gemini-cli/index.d.ts.map +1 -0
  61. package/dist/adapters/gemini-cli/index.js +598 -0
  62. package/dist/adapters/gemini-cli/index.js.map +1 -0
  63. package/dist/adapters/gemini-cli/installer.d.ts +158 -0
  64. package/dist/adapters/gemini-cli/installer.d.ts.map +1 -0
  65. package/dist/adapters/gemini-cli/installer.js +457 -0
  66. package/dist/adapters/gemini-cli/installer.js.map +1 -0
  67. package/dist/adapters/gemini-cli/model-mapping.d.ts +7 -0
  68. package/dist/adapters/gemini-cli/model-mapping.d.ts.map +1 -0
  69. package/dist/adapters/gemini-cli/model-mapping.js +14 -0
  70. package/dist/adapters/gemini-cli/model-mapping.js.map +1 -0
  71. package/dist/adapters/gemini-cli/tool-mapping.d.ts +18 -0
  72. package/dist/adapters/gemini-cli/tool-mapping.d.ts.map +1 -0
  73. package/dist/adapters/gemini-cli/tool-mapping.js +31 -0
  74. package/dist/adapters/gemini-cli/tool-mapping.js.map +1 -0
  75. package/dist/adapters/github-copilot/detection.d.ts +58 -0
  76. package/dist/adapters/github-copilot/detection.d.ts.map +1 -0
  77. package/dist/adapters/github-copilot/detection.js +144 -0
  78. package/dist/adapters/github-copilot/detection.js.map +1 -0
  79. package/dist/adapters/github-copilot/index.d.ts +203 -0
  80. package/dist/adapters/github-copilot/index.d.ts.map +1 -0
  81. package/dist/adapters/github-copilot/index.js +595 -0
  82. package/dist/adapters/github-copilot/index.js.map +1 -0
  83. package/dist/adapters/github-copilot/installer.d.ts +124 -0
  84. package/dist/adapters/github-copilot/installer.d.ts.map +1 -0
  85. package/dist/adapters/github-copilot/installer.js +343 -0
  86. package/dist/adapters/github-copilot/installer.js.map +1 -0
  87. package/dist/adapters/github-copilot/model-mapping.d.ts +7 -0
  88. package/dist/adapters/github-copilot/model-mapping.d.ts.map +1 -0
  89. package/dist/adapters/github-copilot/model-mapping.js +14 -0
  90. package/dist/adapters/github-copilot/model-mapping.js.map +1 -0
  91. package/dist/adapters/github-copilot/tool-mapping.d.ts +18 -0
  92. package/dist/adapters/github-copilot/tool-mapping.d.ts.map +1 -0
  93. package/dist/adapters/github-copilot/tool-mapping.js +31 -0
  94. package/dist/adapters/github-copilot/tool-mapping.js.map +1 -0
  95. package/dist/adapters/index.d.ts +39 -0
  96. package/dist/adapters/index.d.ts.map +1 -0
  97. package/dist/adapters/index.js +76 -0
  98. package/dist/adapters/index.js.map +1 -0
  99. package/dist/adapters/interface.d.ts +9 -0
  100. package/dist/adapters/interface.d.ts.map +1 -0
  101. package/dist/adapters/interface.js +8 -0
  102. package/dist/adapters/interface.js.map +1 -0
  103. package/dist/adapters/model-templating.d.ts +16 -0
  104. package/dist/adapters/model-templating.d.ts.map +1 -0
  105. package/dist/adapters/model-templating.js +52 -0
  106. package/dist/adapters/model-templating.js.map +1 -0
  107. package/dist/adapters/opencode/detection.d.ts +57 -0
  108. package/dist/adapters/opencode/detection.d.ts.map +1 -0
  109. package/dist/adapters/opencode/detection.js +140 -0
  110. package/dist/adapters/opencode/detection.js.map +1 -0
  111. package/dist/adapters/opencode/index.d.ts +168 -0
  112. package/dist/adapters/opencode/index.d.ts.map +1 -0
  113. package/dist/adapters/opencode/index.js +494 -0
  114. package/dist/adapters/opencode/index.js.map +1 -0
  115. package/dist/adapters/opencode/installer.d.ts +91 -0
  116. package/dist/adapters/opencode/installer.d.ts.map +1 -0
  117. package/dist/adapters/opencode/installer.js +290 -0
  118. package/dist/adapters/opencode/installer.js.map +1 -0
  119. package/dist/adapters/opencode/model-mapping.d.ts +7 -0
  120. package/dist/adapters/opencode/model-mapping.d.ts.map +1 -0
  121. package/dist/adapters/opencode/model-mapping.js +14 -0
  122. package/dist/adapters/opencode/model-mapping.js.map +1 -0
  123. package/dist/adapters/opencode/tool-mapping.d.ts +18 -0
  124. package/dist/adapters/opencode/tool-mapping.d.ts.map +1 -0
  125. package/dist/adapters/opencode/tool-mapping.js +31 -0
  126. package/dist/adapters/opencode/tool-mapping.js.map +1 -0
  127. package/dist/adapters/registry.d.ts +154 -0
  128. package/dist/adapters/registry.d.ts.map +1 -0
  129. package/dist/adapters/registry.js +223 -0
  130. package/dist/adapters/registry.js.map +1 -0
  131. package/dist/adapters/skill-frontmatter.d.ts +34 -0
  132. package/dist/adapters/skill-frontmatter.d.ts.map +1 -0
  133. package/dist/adapters/skill-frontmatter.js +110 -0
  134. package/dist/adapters/skill-frontmatter.js.map +1 -0
  135. package/dist/adapters/subagent-frontmatter.d.ts +22 -0
  136. package/dist/adapters/subagent-frontmatter.d.ts.map +1 -0
  137. package/dist/adapters/subagent-frontmatter.js +80 -0
  138. package/dist/adapters/subagent-frontmatter.js.map +1 -0
  139. package/dist/adapters/tool-templating.d.ts +162 -0
  140. package/dist/adapters/tool-templating.d.ts.map +1 -0
  141. package/dist/adapters/tool-templating.js +273 -0
  142. package/dist/adapters/tool-templating.js.map +1 -0
  143. package/dist/adapters/types.d.ts +347 -0
  144. package/dist/adapters/types.d.ts.map +1 -0
  145. package/dist/adapters/types.js +33 -0
  146. package/dist/adapters/types.js.map +1 -0
  147. package/dist/cli/index.d.ts +10 -0
  148. package/dist/cli/index.d.ts.map +1 -0
  149. package/dist/cli/index.js +261 -0
  150. package/dist/cli/index.js.map +1 -0
  151. package/dist/cli/info.d.ts +20 -0
  152. package/dist/cli/info.d.ts.map +1 -0
  153. package/dist/cli/info.js +194 -0
  154. package/dist/cli/info.js.map +1 -0
  155. package/dist/cli/install.d.ts +21 -0
  156. package/dist/cli/install.d.ts.map +1 -0
  157. package/dist/cli/install.js +1624 -0
  158. package/dist/cli/install.js.map +1 -0
  159. package/dist/cli/list.d.ts +19 -0
  160. package/dist/cli/list.d.ts.map +1 -0
  161. package/dist/cli/list.js +216 -0
  162. package/dist/cli/list.js.map +1 -0
  163. package/dist/cli/types.d.ts +246 -0
  164. package/dist/cli/types.d.ts.map +1 -0
  165. package/dist/cli/types.js +25 -0
  166. package/dist/cli/types.js.map +1 -0
  167. package/dist/cli/uninstall.d.ts +20 -0
  168. package/dist/cli/uninstall.d.ts.map +1 -0
  169. package/dist/cli/uninstall.js +393 -0
  170. package/dist/cli/uninstall.js.map +1 -0
  171. package/dist/cli/upgrade.d.ts +20 -0
  172. package/dist/cli/upgrade.d.ts.map +1 -0
  173. package/dist/cli/upgrade.js +372 -0
  174. package/dist/cli/upgrade.js.map +1 -0
  175. package/dist/cli/validate.d.ts +14 -0
  176. package/dist/cli/validate.d.ts.map +1 -0
  177. package/dist/cli/validate.js +307 -0
  178. package/dist/cli/validate.js.map +1 -0
  179. package/dist/core/debug.d.ts +23 -0
  180. package/dist/core/debug.d.ts.map +1 -0
  181. package/dist/core/debug.js +69 -0
  182. package/dist/core/debug.js.map +1 -0
  183. package/dist/core/hook-instance.d.ts +8 -0
  184. package/dist/core/hook-instance.d.ts.map +1 -0
  185. package/dist/core/hook-instance.js +62 -0
  186. package/dist/core/hook-instance.js.map +1 -0
  187. package/dist/core/mcp-instance.d.ts +13 -0
  188. package/dist/core/mcp-instance.d.ts.map +1 -0
  189. package/dist/core/mcp-instance.js +80 -0
  190. package/dist/core/mcp-instance.js.map +1 -0
  191. package/dist/core/types.d.ts +461 -0
  192. package/dist/core/types.d.ts.map +1 -0
  193. package/dist/core/types.js +42 -0
  194. package/dist/core/types.js.map +1 -0
  195. package/dist/core/upgrade-executor.d.ts +70 -0
  196. package/dist/core/upgrade-executor.d.ts.map +1 -0
  197. package/dist/core/upgrade-executor.js +368 -0
  198. package/dist/core/upgrade-executor.js.map +1 -0
  199. package/dist/discovery/fetcher-registry.d.ts +87 -0
  200. package/dist/discovery/fetcher-registry.d.ts.map +1 -0
  201. package/dist/discovery/fetcher-registry.js +119 -0
  202. package/dist/discovery/fetcher-registry.js.map +1 -0
  203. package/dist/discovery/git-fetcher.d.ts +61 -0
  204. package/dist/discovery/git-fetcher.d.ts.map +1 -0
  205. package/dist/discovery/git-fetcher.js +150 -0
  206. package/dist/discovery/git-fetcher.js.map +1 -0
  207. package/dist/discovery/index.d.ts +13 -0
  208. package/dist/discovery/index.d.ts.map +1 -0
  209. package/dist/discovery/index.js +15 -0
  210. package/dist/discovery/index.js.map +1 -0
  211. package/dist/discovery/kit-scanner.d.ts +55 -0
  212. package/dist/discovery/kit-scanner.d.ts.map +1 -0
  213. package/dist/discovery/kit-scanner.js +305 -0
  214. package/dist/discovery/kit-scanner.js.map +1 -0
  215. package/dist/discovery/local-fetcher.d.ts +38 -0
  216. package/dist/discovery/local-fetcher.d.ts.map +1 -0
  217. package/dist/discovery/local-fetcher.js +100 -0
  218. package/dist/discovery/local-fetcher.js.map +1 -0
  219. package/dist/discovery/source-parser.d.ts +33 -0
  220. package/dist/discovery/source-parser.d.ts.map +1 -0
  221. package/dist/discovery/source-parser.js +136 -0
  222. package/dist/discovery/source-parser.js.map +1 -0
  223. package/dist/discovery/types.d.ts +145 -0
  224. package/dist/discovery/types.d.ts.map +1 -0
  225. package/dist/discovery/types.js +18 -0
  226. package/dist/discovery/types.js.map +1 -0
  227. package/dist/index.d.ts +13 -0
  228. package/dist/index.d.ts.map +1 -0
  229. package/dist/index.js +19 -0
  230. package/dist/index.js.map +1 -0
  231. package/dist/manifest/index.d.ts +79 -0
  232. package/dist/manifest/index.d.ts.map +1 -0
  233. package/dist/manifest/index.js +200 -0
  234. package/dist/manifest/index.js.map +1 -0
  235. package/dist/manifest/read.d.ts +32 -0
  236. package/dist/manifest/read.d.ts.map +1 -0
  237. package/dist/manifest/read.js +88 -0
  238. package/dist/manifest/read.js.map +1 -0
  239. package/dist/manifest/types.d.ts +119 -0
  240. package/dist/manifest/types.d.ts.map +1 -0
  241. package/dist/manifest/types.js +44 -0
  242. package/dist/manifest/types.js.map +1 -0
  243. package/dist/manifest/upgrade-check.d.ts +72 -0
  244. package/dist/manifest/upgrade-check.d.ts.map +1 -0
  245. package/dist/manifest/upgrade-check.js +215 -0
  246. package/dist/manifest/upgrade-check.js.map +1 -0
  247. package/dist/manifest/utils.d.ts +35 -0
  248. package/dist/manifest/utils.d.ts.map +1 -0
  249. package/dist/manifest/utils.js +57 -0
  250. package/dist/manifest/utils.js.map +1 -0
  251. package/dist/manifest/write.d.ts +44 -0
  252. package/dist/manifest/write.d.ts.map +1 -0
  253. package/dist/manifest/write.js +77 -0
  254. package/dist/manifest/write.js.map +1 -0
  255. package/dist/resolution/env-resolver.d.ts +81 -0
  256. package/dist/resolution/env-resolver.d.ts.map +1 -0
  257. package/dist/resolution/env-resolver.js +233 -0
  258. package/dist/resolution/env-resolver.js.map +1 -0
  259. package/dist/resolution/index.d.ts +55 -0
  260. package/dist/resolution/index.d.ts.map +1 -0
  261. package/dist/resolution/index.js +412 -0
  262. package/dist/resolution/index.js.map +1 -0
  263. package/dist/resolution/multi-kit-resolver.d.ts +43 -0
  264. package/dist/resolution/multi-kit-resolver.d.ts.map +1 -0
  265. package/dist/resolution/multi-kit-resolver.js +258 -0
  266. package/dist/resolution/multi-kit-resolver.js.map +1 -0
  267. package/dist/resolution/primitive-paths.d.ts +17 -0
  268. package/dist/resolution/primitive-paths.d.ts.map +1 -0
  269. package/dist/resolution/primitive-paths.js +59 -0
  270. package/dist/resolution/primitive-paths.js.map +1 -0
  271. package/dist/resolution/primitives-registry.d.ts +137 -0
  272. package/dist/resolution/primitives-registry.d.ts.map +1 -0
  273. package/dist/resolution/primitives-registry.js +295 -0
  274. package/dist/resolution/primitives-registry.js.map +1 -0
  275. package/dist/resolution/reference-parser.d.ts +62 -0
  276. package/dist/resolution/reference-parser.d.ts.map +1 -0
  277. package/dist/resolution/reference-parser.js +182 -0
  278. package/dist/resolution/reference-parser.js.map +1 -0
  279. package/dist/resolution/types.d.ts +77 -0
  280. package/dist/resolution/types.d.ts.map +1 -0
  281. package/dist/resolution/types.js +13 -0
  282. package/dist/resolution/types.js.map +1 -0
  283. package/dist/resolution/version-resolver.d.ts +76 -0
  284. package/dist/resolution/version-resolver.d.ts.map +1 -0
  285. package/dist/resolution/version-resolver.js +269 -0
  286. package/dist/resolution/version-resolver.js.map +1 -0
  287. package/dist/tui/compatibility.d.ts +80 -0
  288. package/dist/tui/compatibility.d.ts.map +1 -0
  289. package/dist/tui/compatibility.js +355 -0
  290. package/dist/tui/compatibility.js.map +1 -0
  291. package/dist/tui/env-prompt.d.ts +129 -0
  292. package/dist/tui/env-prompt.d.ts.map +1 -0
  293. package/dist/tui/env-prompt.js +488 -0
  294. package/dist/tui/env-prompt.js.map +1 -0
  295. package/dist/tui/harness-select.d.ts +54 -0
  296. package/dist/tui/harness-select.d.ts.map +1 -0
  297. package/dist/tui/harness-select.js +171 -0
  298. package/dist/tui/harness-select.js.map +1 -0
  299. package/dist/tui/index.d.ts +112 -0
  300. package/dist/tui/index.d.ts.map +1 -0
  301. package/dist/tui/index.js +213 -0
  302. package/dist/tui/index.js.map +1 -0
  303. package/dist/tui/kit-select.d.ts +72 -0
  304. package/dist/tui/kit-select.d.ts.map +1 -0
  305. package/dist/tui/kit-select.js +209 -0
  306. package/dist/tui/kit-select.js.map +1 -0
  307. package/dist/tui/progress.d.ts +75 -0
  308. package/dist/tui/progress.d.ts.map +1 -0
  309. package/dist/tui/progress.js +267 -0
  310. package/dist/tui/progress.js.map +1 -0
  311. package/dist/tui/resolution.d.ts +62 -0
  312. package/dist/tui/resolution.d.ts.map +1 -0
  313. package/dist/tui/resolution.js +261 -0
  314. package/dist/tui/resolution.js.map +1 -0
  315. package/dist/tui/scope-compatibility.d.ts +139 -0
  316. package/dist/tui/scope-compatibility.d.ts.map +1 -0
  317. package/dist/tui/scope-compatibility.js +230 -0
  318. package/dist/tui/scope-compatibility.js.map +1 -0
  319. package/dist/tui/scope-select.d.ts +67 -0
  320. package/dist/tui/scope-select.d.ts.map +1 -0
  321. package/dist/tui/scope-select.js +134 -0
  322. package/dist/tui/scope-select.js.map +1 -0
  323. package/dist/tui/spinner.d.ts +114 -0
  324. package/dist/tui/spinner.d.ts.map +1 -0
  325. package/dist/tui/spinner.js +186 -0
  326. package/dist/tui/spinner.js.map +1 -0
  327. package/dist/tui/summary.d.ts +71 -0
  328. package/dist/tui/summary.d.ts.map +1 -0
  329. package/dist/tui/summary.js +343 -0
  330. package/dist/tui/summary.js.map +1 -0
  331. package/dist/tui/types.d.ts +234 -0
  332. package/dist/tui/types.d.ts.map +1 -0
  333. package/dist/tui/types.js +7 -0
  334. package/dist/tui/types.js.map +1 -0
  335. package/dist/tui/upgrade-select.d.ts +73 -0
  336. package/dist/tui/upgrade-select.d.ts.map +1 -0
  337. package/dist/tui/upgrade-select.js +324 -0
  338. package/dist/tui/upgrade-select.js.map +1 -0
  339. package/dist/validation/index.d.ts +13 -0
  340. package/dist/validation/index.d.ts.map +1 -0
  341. package/dist/validation/index.js +13 -0
  342. package/dist/validation/index.js.map +1 -0
  343. package/dist/validation/source.d.ts +14 -0
  344. package/dist/validation/source.d.ts.map +1 -0
  345. package/dist/validation/source.js +51 -0
  346. package/dist/validation/source.js.map +1 -0
  347. package/dist/validation/utils.d.ts +29 -0
  348. package/dist/validation/utils.d.ts.map +1 -0
  349. package/dist/validation/utils.js +89 -0
  350. package/dist/validation/utils.js.map +1 -0
  351. package/dist/validation/validate-commands.d.ts +28 -0
  352. package/dist/validation/validate-commands.d.ts.map +1 -0
  353. package/dist/validation/validate-commands.js +151 -0
  354. package/dist/validation/validate-commands.js.map +1 -0
  355. package/dist/validation/validate-hooks.d.ts +13 -0
  356. package/dist/validation/validate-hooks.d.ts.map +1 -0
  357. package/dist/validation/validate-hooks.js +272 -0
  358. package/dist/validation/validate-hooks.js.map +1 -0
  359. package/dist/validation/validate-kits.d.ts +15 -0
  360. package/dist/validation/validate-kits.d.ts.map +1 -0
  361. package/dist/validation/validate-kits.js +185 -0
  362. package/dist/validation/validate-kits.js.map +1 -0
  363. package/dist/validation/validate-mcp.d.ts +12 -0
  364. package/dist/validation/validate-mcp.d.ts.map +1 -0
  365. package/dist/validation/validate-mcp.js +132 -0
  366. package/dist/validation/validate-mcp.js.map +1 -0
  367. package/dist/validation/validate-skills.d.ts +24 -0
  368. package/dist/validation/validate-skills.d.ts.map +1 -0
  369. package/dist/validation/validate-skills.js +223 -0
  370. package/dist/validation/validate-skills.js.map +1 -0
  371. package/dist/validation/validate-subagents.d.ts +27 -0
  372. package/dist/validation/validate-subagents.d.ts.map +1 -0
  373. package/dist/validation/validate-subagents.js +269 -0
  374. package/dist/validation/validate-subagents.js.map +1 -0
  375. package/package.json +91 -0
  376. package/schemas/command.schema.json +23 -0
  377. package/schemas/examples/hook-binding-valid.json +20 -0
  378. package/schemas/examples/hook-program-valid.json +25 -0
  379. package/schemas/examples/http-server-valid.json +82 -0
  380. package/schemas/examples/invalid-sensitive-header-no-envvar.json +16 -0
  381. package/schemas/examples/invalid-sensitive-header-with-value.json +17 -0
  382. package/schemas/examples/invalid-sensitive-var-with-default.json +19 -0
  383. package/schemas/examples/stdio-server-valid.json +55 -0
  384. package/schemas/hook-binding.schema.json +63 -0
  385. package/schemas/hook-program.schema.json +104 -0
  386. package/schemas/kit.schema.json +338 -0
  387. package/schemas/kits.schema.json +117 -0
  388. package/schemas/manifest.schema.json +200 -0
  389. package/schemas/mcp-server.schema.json +305 -0
  390. package/schemas/primitives.schema.json +118 -0
  391. package/schemas/skill.schema.json +96 -0
  392. package/schemas/subagent.schema.json +107 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Upgrade selection screen.
3
+ *
4
+ * Displays available upgrades with version changes and breaking change warnings,
5
+ * allowing users to select which upgrades to apply.
6
+ */
7
+ import type { HarnessName } from "../core/types.js";
8
+ import type { UpgradeCheck } from "../manifest/types.js";
9
+ import type { UpgradeDisplayEntry, UpgradeSelectionResult, SelectOption } from "./types.js";
10
+ /**
11
+ * Determine severity level from version change.
12
+ */
13
+ export declare function determineSeverity(currentVersion: string, availableVersion: string, breaking: boolean): "patch" | "minor" | "major";
14
+ /**
15
+ * Convert UpgradeCheck to display entry.
16
+ */
17
+ export declare function toUpgradeDisplayEntry(check: UpgradeCheck, harnessDisplayName: string): UpgradeDisplayEntry;
18
+ /**
19
+ * Format upgrade entry for display.
20
+ */
21
+ export declare function formatUpgradeEntry(entry: UpgradeDisplayEntry): string;
22
+ /**
23
+ * Display single upgrade entry.
24
+ */
25
+ export declare function displayUpgradeEntry(entry: UpgradeDisplayEntry, indent?: string): void;
26
+ /**
27
+ * Display available upgrades grouped by kit and harness.
28
+ */
29
+ export declare function displayUpgradesByKit(entries: UpgradeDisplayEntry[]): void;
30
+ /**
31
+ * Display upgrade summary statistics.
32
+ */
33
+ export declare function displayUpgradeSummary(entries: UpgradeDisplayEntry[]): void;
34
+ /**
35
+ * Display no upgrades available message.
36
+ */
37
+ export declare function displayNoUpgrades(): void;
38
+ /**
39
+ * Create select options from upgrade entries.
40
+ */
41
+ export declare function createUpgradeOptions(entries: UpgradeDisplayEntry[]): SelectOption<string>[];
42
+ /**
43
+ * Prompt user to select which upgrades to apply.
44
+ */
45
+ export declare function selectUpgrades(entries: UpgradeDisplayEntry[], options?: {
46
+ showSummary?: boolean;
47
+ showDetails?: boolean;
48
+ }): Promise<UpgradeSelectionResult>;
49
+ /**
50
+ * Display upgrade check results for --check flag.
51
+ */
52
+ export declare function displayUpgradeCheck(entries: UpgradeDisplayEntry[]): void;
53
+ /**
54
+ * Convert upgrade entries to JSON output format.
55
+ */
56
+ export declare function upgradesToJson(entries: UpgradeDisplayEntry[]): Record<string, unknown>;
57
+ /**
58
+ * Filter upgrades by kit names.
59
+ */
60
+ export declare function filterUpgradesByKit(entries: UpgradeDisplayEntry[], kitNames: string[]): UpgradeDisplayEntry[];
61
+ /**
62
+ * Filter upgrades by harness names.
63
+ */
64
+ export declare function filterUpgradesByHarness(entries: UpgradeDisplayEntry[], harnessNames: HarnessName[]): UpgradeDisplayEntry[];
65
+ /**
66
+ * Get breaking upgrades only.
67
+ */
68
+ export declare function getBreakingUpgrades(entries: UpgradeDisplayEntry[]): UpgradeDisplayEntry[];
69
+ /**
70
+ * Get non-breaking upgrades only.
71
+ */
72
+ export declare function getNonBreakingUpgrades(entries: UpgradeDisplayEntry[]): UpgradeDisplayEntry[];
73
+ //# sourceMappingURL=upgrade-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-select.d.ts","sourceRoot":"","sources":["../../src/tui/upgrade-select.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,OAAO,GAChB,OAAO,GAAG,OAAO,GAAG,OAAO,CAc7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,kBAAkB,EAAE,MAAM,GACzB,mBAAmB,CAarB;AAwBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAWrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,GAAE,MAAa,GAAG,IAAI,CAM3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAiCzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,IAAI,CAgCN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,YAAY,CAAC,MAAM,CAAC,EAAE,CAOxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC,sBAAsB,CAAC,CA6GjC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,mBAAmB,EAAE,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,QAAQ,EAAE,MAAM,EAAE,GACjB,mBAAmB,EAAE,CAGvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,mBAAmB,EAAE,EAC9B,YAAY,EAAE,WAAW,EAAE,GAC1B,mBAAmB,EAAE,CAGvB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,mBAAmB,EAAE,CAEvB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,mBAAmB,EAAE,CAEvB"}
@@ -0,0 +1,324 @@
1
+ /**
2
+ * Upgrade selection screen.
3
+ *
4
+ * Displays available upgrades with version changes and breaking change warnings,
5
+ * allowing users to select which upgrades to apply.
6
+ */
7
+ import * as clack from "@clack/prompts";
8
+ import pc from "picocolors";
9
+ import { formatWarning } from "./spinner.js";
10
+ /**
11
+ * Determine severity level from version change.
12
+ */
13
+ export function determineSeverity(currentVersion, availableVersion, breaking) {
14
+ if (breaking)
15
+ return "major";
16
+ const currParts = currentVersion.split(".").map(Number);
17
+ const availParts = availableVersion.split(".").map(Number);
18
+ const currMajor = currParts[0] ?? 0;
19
+ const currMinor = currParts[1] ?? 0;
20
+ const availMajor = availParts[0] ?? 0;
21
+ const availMinor = availParts[1] ?? 0;
22
+ if (availMajor > currMajor)
23
+ return "major";
24
+ if (availMinor > currMinor)
25
+ return "minor";
26
+ return "patch";
27
+ }
28
+ /**
29
+ * Convert UpgradeCheck to display entry.
30
+ */
31
+ export function toUpgradeDisplayEntry(check, harnessDisplayName) {
32
+ return {
33
+ kit: check.kit,
34
+ harness: check.harness,
35
+ harnessDisplayName,
36
+ primitive: check.primitive,
37
+ type: check.type,
38
+ currentVersion: check.currentVersion,
39
+ availableVersion: check.availableVersion,
40
+ versionSpec: check.versionSpec,
41
+ breaking: check.breaking,
42
+ severity: determineSeverity(check.currentVersion, check.availableVersion, check.breaking),
43
+ };
44
+ }
45
+ /**
46
+ * Format severity badge.
47
+ */
48
+ function formatSeverityBadge(severity) {
49
+ switch (severity) {
50
+ case "patch":
51
+ return pc.green("patch");
52
+ case "minor":
53
+ return pc.cyan("minor");
54
+ case "major":
55
+ return pc.red("MAJOR");
56
+ }
57
+ }
58
+ /**
59
+ * Format version change arrow.
60
+ */
61
+ function formatVersionChange(current, available, breaking) {
62
+ const arrow = breaking ? pc.red("→") : pc.cyan("→");
63
+ return `${pc.dim(`v${current}`)} ${arrow} ${pc.bold(`v${available}`)}`;
64
+ }
65
+ /**
66
+ * Format upgrade entry for display.
67
+ */
68
+ export function formatUpgradeEntry(entry) {
69
+ const severity = formatSeverityBadge(entry.severity);
70
+ const change = formatVersionChange(entry.currentVersion, entry.availableVersion, entry.breaking);
71
+ const typeLabel = pc.dim(`[${entry.type}]`);
72
+ let breaking = "";
73
+ if (entry.breaking) {
74
+ breaking = ` ${pc.red("BREAKING ⚠")}`;
75
+ }
76
+ return `${entry.primitive} ${change} ${typeLabel} ${severity}${breaking}`;
77
+ }
78
+ /**
79
+ * Display single upgrade entry.
80
+ */
81
+ export function displayUpgradeEntry(entry, indent = " ") {
82
+ console.log(`${indent}${formatUpgradeEntry(entry)}`);
83
+ if (entry.versionSpec) {
84
+ console.log(`${indent} ${pc.dim(`Spec: ${entry.versionSpec}`)}`);
85
+ }
86
+ }
87
+ /**
88
+ * Display available upgrades grouped by kit and harness.
89
+ */
90
+ export function displayUpgradesByKit(entries) {
91
+ // Group by kit, then harness
92
+ const byKit = new Map();
93
+ for (const entry of entries) {
94
+ let kitMap = byKit.get(entry.kit);
95
+ if (!kitMap) {
96
+ kitMap = new Map();
97
+ byKit.set(entry.kit, kitMap);
98
+ }
99
+ let harnessEntries = kitMap.get(entry.harness);
100
+ if (!harnessEntries) {
101
+ harnessEntries = [];
102
+ kitMap.set(entry.harness, harnessEntries);
103
+ }
104
+ harnessEntries.push(entry);
105
+ }
106
+ for (const [kit, harnessMap] of byKit) {
107
+ console.log();
108
+ console.log(` ${pc.bold(kit)}`);
109
+ for (const [harness, harnessEntries] of harnessMap) {
110
+ const displayName = harnessEntries[0]?.harnessDisplayName ?? harness;
111
+ console.log(` ${pc.cyan(displayName)}:`);
112
+ for (const entry of harnessEntries) {
113
+ displayUpgradeEntry(entry, " ");
114
+ }
115
+ }
116
+ }
117
+ }
118
+ /**
119
+ * Display upgrade summary statistics.
120
+ */
121
+ export function displayUpgradeSummary(entries) {
122
+ const total = entries.length;
123
+ const breaking = entries.filter((e) => e.breaking).length;
124
+ const major = entries.filter((e) => e.severity === "major").length;
125
+ const minor = entries.filter((e) => e.severity === "minor").length;
126
+ const patch = entries.filter((e) => e.severity === "patch").length;
127
+ const kits = new Set(entries.map((e) => e.kit)).size;
128
+ const harnesses = new Set(entries.map((e) => e.harness)).size;
129
+ console.log();
130
+ clack.log.info(`Found ${pc.bold(String(total))} available upgrade${total === 1 ? "" : "s"}:`);
131
+ const parts = [];
132
+ if (major > 0)
133
+ parts.push(pc.red(`${major} major`));
134
+ if (minor > 0)
135
+ parts.push(pc.cyan(`${minor} minor`));
136
+ if (patch > 0)
137
+ parts.push(pc.green(`${patch} patch`));
138
+ if (parts.length > 0) {
139
+ console.log(` ${parts.join(", ")}`);
140
+ }
141
+ console.log(` Across ${kits} kit${kits === 1 ? "" : "s"} and ${harnesses} harness${harnesses === 1 ? "" : "es"}`);
142
+ if (breaking > 0) {
143
+ console.log();
144
+ clack.log.warn(formatWarning(`${breaking} upgrade${breaking === 1 ? "" : "s"} contain${breaking === 1 ? "s" : ""} breaking changes`));
145
+ }
146
+ }
147
+ /**
148
+ * Display no upgrades available message.
149
+ */
150
+ export function displayNoUpgrades() {
151
+ console.log();
152
+ clack.log.success("All primitives are up to date!");
153
+ }
154
+ /**
155
+ * Create select options from upgrade entries.
156
+ */
157
+ export function createUpgradeOptions(entries) {
158
+ return entries.map((entry, index) => ({
159
+ value: String(index),
160
+ label: `${entry.primitive} (${entry.kit})`,
161
+ hint: formatVersionChange(entry.currentVersion, entry.availableVersion, entry.breaking) +
162
+ (entry.breaking ? " BREAKING ⚠" : ""),
163
+ }));
164
+ }
165
+ /**
166
+ * Prompt user to select which upgrades to apply.
167
+ */
168
+ export async function selectUpgrades(entries, options) {
169
+ if (entries.length === 0) {
170
+ displayNoUpgrades();
171
+ return {
172
+ cancelled: false,
173
+ selected: [],
174
+ };
175
+ }
176
+ // Display summary
177
+ if (options?.showSummary !== false) {
178
+ displayUpgradeSummary(entries);
179
+ }
180
+ // Display details
181
+ if (options?.showDetails !== false) {
182
+ displayUpgradesByKit(entries);
183
+ }
184
+ console.log();
185
+ // Check for breaking changes
186
+ const breaking = entries.filter((e) => e.breaking);
187
+ if (breaking.length > 0) {
188
+ const proceed = await clack.confirm({
189
+ message: `${breaking.length} upgrade${breaking.length === 1 ? "" : "s"} contain${breaking.length === 1 ? "s" : ""} breaking changes. Continue?`,
190
+ active: "Yes, show me the options",
191
+ inactive: "No, cancel",
192
+ });
193
+ if (clack.isCancel(proceed) || !proceed) {
194
+ return {
195
+ cancelled: true,
196
+ selected: [],
197
+ };
198
+ }
199
+ }
200
+ // If only one upgrade, ask for confirmation
201
+ if (entries.length === 1) {
202
+ const confirm = await clack.confirm({
203
+ message: "Apply this upgrade?",
204
+ });
205
+ if (clack.isCancel(confirm) || !confirm) {
206
+ return {
207
+ cancelled: clack.isCancel(confirm),
208
+ selected: [],
209
+ };
210
+ }
211
+ return {
212
+ cancelled: false,
213
+ selected: entries,
214
+ };
215
+ }
216
+ // Multiple upgrades - let user select
217
+ const selectOptions = createUpgradeOptions(entries);
218
+ selectOptions.push({
219
+ value: "__all__",
220
+ label: "All upgrades",
221
+ hint: `${entries.length} total`,
222
+ });
223
+ // Convert options to clack's expected format
224
+ const clackOptions = selectOptions.map((opt) => {
225
+ const base = {
226
+ value: opt.value,
227
+ label: opt.label,
228
+ };
229
+ if (opt.hint !== undefined) {
230
+ base.hint = opt.hint;
231
+ }
232
+ return base;
233
+ });
234
+ const selected = await clack.multiselect({
235
+ message: "Which upgrades do you want to apply?",
236
+ options: clackOptions,
237
+ required: true,
238
+ });
239
+ if (clack.isCancel(selected)) {
240
+ return {
241
+ cancelled: true,
242
+ selected: [],
243
+ };
244
+ }
245
+ const selectedValues = selected;
246
+ // Handle "All" option
247
+ if (selectedValues.includes("__all__")) {
248
+ return {
249
+ cancelled: false,
250
+ selected: entries,
251
+ };
252
+ }
253
+ // Map selected indices back to entries
254
+ const selectedEntries = selectedValues
255
+ .map((v) => entries[parseInt(v, 10)])
256
+ .filter((e) => e !== undefined);
257
+ return {
258
+ cancelled: false,
259
+ selected: selectedEntries,
260
+ };
261
+ }
262
+ /**
263
+ * Display upgrade check results for --check flag.
264
+ */
265
+ export function displayUpgradeCheck(entries) {
266
+ if (entries.length === 0) {
267
+ displayNoUpgrades();
268
+ return;
269
+ }
270
+ displayUpgradeSummary(entries);
271
+ displayUpgradesByKit(entries);
272
+ console.log();
273
+ clack.log.info("Run `kit upgrade` to apply these updates");
274
+ }
275
+ /**
276
+ * Convert upgrade entries to JSON output format.
277
+ */
278
+ export function upgradesToJson(entries) {
279
+ return {
280
+ upgrades: entries.map((e) => ({
281
+ kit: e.kit,
282
+ harness: e.harness,
283
+ primitive: e.primitive,
284
+ type: e.type,
285
+ currentVersion: e.currentVersion,
286
+ availableVersion: e.availableVersion,
287
+ versionSpec: e.versionSpec,
288
+ breaking: e.breaking,
289
+ })),
290
+ summary: {
291
+ totalUpgrades: entries.length,
292
+ breakingChanges: entries.filter((e) => e.breaking).length,
293
+ affectedKits: new Set(entries.map((e) => e.kit)).size,
294
+ affectedHarnesses: new Set(entries.map((e) => e.harness)).size,
295
+ },
296
+ };
297
+ }
298
+ /**
299
+ * Filter upgrades by kit names.
300
+ */
301
+ export function filterUpgradesByKit(entries, kitNames) {
302
+ const nameSet = new Set(kitNames);
303
+ return entries.filter((e) => nameSet.has(e.kit));
304
+ }
305
+ /**
306
+ * Filter upgrades by harness names.
307
+ */
308
+ export function filterUpgradesByHarness(entries, harnessNames) {
309
+ const nameSet = new Set(harnessNames);
310
+ return entries.filter((e) => nameSet.has(e.harness));
311
+ }
312
+ /**
313
+ * Get breaking upgrades only.
314
+ */
315
+ export function getBreakingUpgrades(entries) {
316
+ return entries.filter((e) => e.breaking);
317
+ }
318
+ /**
319
+ * Get non-breaking upgrades only.
320
+ */
321
+ export function getNonBreakingUpgrades(entries) {
322
+ return entries.filter((e) => !e.breaking);
323
+ }
324
+ //# sourceMappingURL=upgrade-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade-select.js","sourceRoot":"","sources":["../../src/tui/upgrade-select.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Validation module for kit primitives.
3
+ *
4
+ * Provides validation utilities for command primitives and other
5
+ * primitive types against their canonical format specifications.
6
+ */
7
+ export { validateCommands, main as runCommandValidation } from "./validate-commands.js";
8
+ export { validateSkills, main as runSkillValidation } from "./validate-skills.js";
9
+ export { validateSubagents, main as runSubagentValidation } from "./validate-subagents.js";
10
+ export { validateMcp, main as runMcpValidation } from "./validate-mcp.js";
11
+ export { validateHooks, main as runHookValidation } from "./validate-hooks.js";
12
+ export { validateKits, main as runKitValidation } from "./validate-kits.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,IAAI,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,IAAI,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Validation module for kit primitives.
3
+ *
4
+ * Provides validation utilities for command primitives and other
5
+ * primitive types against their canonical format specifications.
6
+ */
7
+ export { validateCommands, main as runCommandValidation } from "./validate-commands.js";
8
+ export { validateSkills, main as runSkillValidation } from "./validate-skills.js";
9
+ export { validateSubagents, main as runSubagentValidation } from "./validate-subagents.js";
10
+ export { validateMcp, main as runMcpValidation } from "./validate-mcp.js";
11
+ export { validateHooks, main as runHookValidation } from "./validate-hooks.js";
12
+ export { validateKits, main as runKitValidation } from "./validate-kits.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,IAAI,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,IAAI,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,IAAI,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,IAAI,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared source resolution for validation scripts.
3
+ */
4
+ import { type FetchResult } from "../discovery/index.js";
5
+ /**
6
+ * Resolve a validation source to a local path.
7
+ *
8
+ * Accepts GitHub shorthand (org/repo[@ref]) and local paths. If the source
9
+ * looks like a relative path without an explicit prefix, we prefer a local
10
+ * path when it exists.
11
+ */
12
+ export declare function resolveValidationSource(source: string): Promise<FetchResult>;
13
+ export declare function formatValidationSourceError(error: unknown): string;
14
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/validation/source.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAQ/B;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAyBtB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWlE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Shared source resolution for validation scripts.
3
+ */
4
+ import fs from "node:fs/promises";
5
+ import path from "node:path";
6
+ import { fetchSource, GitFetchError, LocalFetchError, NoFetcherError, SourceParseError, } from "../discovery/index.js";
7
+ const LOCAL_PATH_PREFIXES = ["./", "../", "/", "~"];
8
+ function isExplicitLocalPath(source) {
9
+ return LOCAL_PATH_PREFIXES.some((prefix) => source.startsWith(prefix));
10
+ }
11
+ /**
12
+ * Resolve a validation source to a local path.
13
+ *
14
+ * Accepts GitHub shorthand (org/repo[@ref]) and local paths. If the source
15
+ * looks like a relative path without an explicit prefix, we prefer a local
16
+ * path when it exists.
17
+ */
18
+ export async function resolveValidationSource(source) {
19
+ let normalizedSource = source;
20
+ if (!isExplicitLocalPath(source)) {
21
+ const resolved = path.resolve(source);
22
+ const hasSlash = source.includes("/");
23
+ let shouldTreatAsLocal = false;
24
+ if (!hasSlash) {
25
+ shouldTreatAsLocal = true;
26
+ }
27
+ else {
28
+ try {
29
+ await fs.stat(resolved);
30
+ shouldTreatAsLocal = true;
31
+ }
32
+ catch {
33
+ shouldTreatAsLocal = false;
34
+ }
35
+ }
36
+ if (shouldTreatAsLocal) {
37
+ normalizedSource = resolved;
38
+ }
39
+ }
40
+ return fetchSource(normalizedSource);
41
+ }
42
+ export function formatValidationSourceError(error) {
43
+ if (error instanceof NoFetcherError ||
44
+ error instanceof SourceParseError ||
45
+ error instanceof LocalFetchError ||
46
+ error instanceof GitFetchError) {
47
+ return error.message;
48
+ }
49
+ return error instanceof Error ? error.message : String(error);
50
+ }
51
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/validation/source.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD,SAAS,mBAAmB,CAAC,MAAc;IACzC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAc;IAEd,IAAI,gBAAgB,GAAG,MAAM,CAAC;IAE9B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,kBAAkB,GAAG,IAAI,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,gBAAgB,GAAG,QAAQ,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,IACE,KAAK,YAAY,cAAc;QAC/B,KAAK,YAAY,gBAAgB;QACjC,KAAK,YAAY,eAAe;QAChC,KAAK,YAAY,aAAa,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Shared validation helpers.
3
+ */
4
+ export interface ValidationResult {
5
+ file: string;
6
+ valid: boolean;
7
+ error?: string;
8
+ }
9
+ export interface ValidationSummary {
10
+ total: number;
11
+ passed: number;
12
+ failed: number;
13
+ results: ValidationResult[];
14
+ }
15
+ export interface FindMarkdownOptions {
16
+ extension?: string;
17
+ fileName?: string;
18
+ }
19
+ /**
20
+ * Recursively find markdown files in a directory.
21
+ */
22
+ export declare function findMarkdownFiles(dir: string, options?: FindMarkdownOptions): Promise<string[]>;
23
+ /**
24
+ * Recursively find files with an exact name.
25
+ */
26
+ export declare function findFilesByName(dir: string, fileName: string): Promise<string[]>;
27
+ export declare function summarizeResults(results: ValidationResult[]): ValidationSummary;
28
+ export declare function printValidationResults(title: string, summary: ValidationSummary, basePath: string): void;
29
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/validation/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BnB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,CAU/E;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,MAAM,GACf,IAAI,CAuCN"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Shared validation helpers.
3
+ */
4
+ import * as fs from "fs/promises";
5
+ import * as path from "path";
6
+ import pc from "picocolors";
7
+ /**
8
+ * Recursively find markdown files in a directory.
9
+ */
10
+ export async function findMarkdownFiles(dir, options = {}) {
11
+ const files = [];
12
+ const { extension = ".md", fileName } = options;
13
+ try {
14
+ const entries = await fs.readdir(dir, { withFileTypes: true });
15
+ for (const entry of entries) {
16
+ const fullPath = path.join(dir, entry.name);
17
+ if (entry.isDirectory()) {
18
+ const subFiles = await findMarkdownFiles(fullPath, options);
19
+ files.push(...subFiles);
20
+ }
21
+ else if (entry.isFile()) {
22
+ if (fileName) {
23
+ if (entry.name === fileName) {
24
+ files.push(fullPath);
25
+ }
26
+ }
27
+ else if (entry.name.endsWith(extension)) {
28
+ files.push(fullPath);
29
+ }
30
+ }
31
+ }
32
+ }
33
+ catch {
34
+ // Directory doesn't exist or can't be read - ignore
35
+ }
36
+ return files;
37
+ }
38
+ /**
39
+ * Recursively find files with an exact name.
40
+ */
41
+ export async function findFilesByName(dir, fileName) {
42
+ return findMarkdownFiles(dir, { fileName });
43
+ }
44
+ export function summarizeResults(results) {
45
+ const passed = results.filter((r) => r.valid).length;
46
+ const failed = results.filter((r) => !r.valid).length;
47
+ return {
48
+ total: results.length,
49
+ passed,
50
+ failed,
51
+ results,
52
+ };
53
+ }
54
+ export function printValidationResults(title, summary, basePath) {
55
+ console.log();
56
+ console.log(pc.bold(title));
57
+ console.log("=".repeat(50));
58
+ console.log();
59
+ const failures = summary.results.filter((r) => !r.valid);
60
+ if (failures.length > 0) {
61
+ console.log(pc.red(pc.bold("Failures:")));
62
+ console.log();
63
+ for (const failure of failures) {
64
+ const relativePath = path.relative(basePath, failure.file);
65
+ console.log(pc.red(` ✗ ${relativePath}`));
66
+ console.log(pc.dim(` ${failure.error}`));
67
+ console.log();
68
+ }
69
+ }
70
+ const passed = summary.results.filter((r) => r.valid);
71
+ if (passed.length > 0) {
72
+ console.log(pc.green(pc.bold("Passed:")));
73
+ console.log();
74
+ for (const success of passed) {
75
+ const relativePath = path.relative(basePath, success.file);
76
+ console.log(pc.green(` ✓ ${relativePath}`));
77
+ }
78
+ console.log();
79
+ }
80
+ console.log("=".repeat(50));
81
+ console.log(`Total: ${summary.total} | ` +
82
+ pc.green(`Passed: ${summary.passed}`) +
83
+ ` | ` +
84
+ (summary.failed > 0
85
+ ? pc.red(`Failed: ${summary.failed}`)
86
+ : `Failed: ${summary.failed}`));
87
+ console.log();
88
+ }
89
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/validation/utils.ts"],"names":[],"mappings":"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"}