@skillsmith/cli 0.7.2 → 0.7.4

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 (560) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli.js +44014 -0
  4. package/package.json +21 -11
  5. package/dist/src/commands/__meta__/telemetry-coverage.test.d.ts +0 -20
  6. package/dist/src/commands/__meta__/telemetry-coverage.test.d.ts.map +0 -1
  7. package/dist/src/commands/__meta__/telemetry-coverage.test.js +0 -118
  8. package/dist/src/commands/__meta__/telemetry-coverage.test.js.map +0 -1
  9. package/dist/src/commands/ab-test.d.ts +0 -29
  10. package/dist/src/commands/ab-test.d.ts.map +0 -1
  11. package/dist/src/commands/ab-test.js +0 -226
  12. package/dist/src/commands/ab-test.js.map +0 -1
  13. package/dist/src/commands/ab-test.test.d.ts +0 -7
  14. package/dist/src/commands/ab-test.test.d.ts.map +0 -1
  15. package/dist/src/commands/ab-test.test.js +0 -255
  16. package/dist/src/commands/ab-test.test.js.map +0 -1
  17. package/dist/src/commands/analyze.d.ts +0 -14
  18. package/dist/src/commands/analyze.d.ts.map +0 -1
  19. package/dist/src/commands/analyze.js +0 -191
  20. package/dist/src/commands/analyze.js.map +0 -1
  21. package/dist/src/commands/audit-collisions.d.ts +0 -68
  22. package/dist/src/commands/audit-collisions.d.ts.map +0 -1
  23. package/dist/src/commands/audit-collisions.js +0 -309
  24. package/dist/src/commands/audit-collisions.js.map +0 -1
  25. package/dist/src/commands/audit-sources.action.d.ts +0 -37
  26. package/dist/src/commands/audit-sources.action.d.ts.map +0 -1
  27. package/dist/src/commands/audit-sources.action.js +0 -321
  28. package/dist/src/commands/audit-sources.action.js.map +0 -1
  29. package/dist/src/commands/audit-sources.d.ts +0 -37
  30. package/dist/src/commands/audit-sources.d.ts.map +0 -1
  31. package/dist/src/commands/audit-sources.js +0 -55
  32. package/dist/src/commands/audit-sources.js.map +0 -1
  33. package/dist/src/commands/audit-sources.test.d.ts +0 -9
  34. package/dist/src/commands/audit-sources.test.d.ts.map +0 -1
  35. package/dist/src/commands/audit-sources.test.js +0 -228
  36. package/dist/src/commands/audit-sources.test.js.map +0 -1
  37. package/dist/src/commands/audit.d.ts +0 -40
  38. package/dist/src/commands/audit.d.ts.map +0 -1
  39. package/dist/src/commands/audit.js +0 -223
  40. package/dist/src/commands/audit.js.map +0 -1
  41. package/dist/src/commands/audit.test.d.ts +0 -8
  42. package/dist/src/commands/audit.test.d.ts.map +0 -1
  43. package/dist/src/commands/audit.test.js +0 -97
  44. package/dist/src/commands/audit.test.js.map +0 -1
  45. package/dist/src/commands/author/index.d.ts +0 -17
  46. package/dist/src/commands/author/index.d.ts.map +0 -1
  47. package/dist/src/commands/author/index.js +0 -21
  48. package/dist/src/commands/author/index.js.map +0 -1
  49. package/dist/src/commands/author/init.action.d.ts +0 -29
  50. package/dist/src/commands/author/init.action.d.ts.map +0 -1
  51. package/dist/src/commands/author/init.action.js +0 -131
  52. package/dist/src/commands/author/init.action.js.map +0 -1
  53. package/dist/src/commands/author/init.d.ts +0 -36
  54. package/dist/src/commands/author/init.d.ts.map +0 -1
  55. package/dist/src/commands/author/init.helpers.d.ts +0 -80
  56. package/dist/src/commands/author/init.helpers.d.ts.map +0 -1
  57. package/dist/src/commands/author/init.helpers.js +0 -107
  58. package/dist/src/commands/author/init.helpers.js.map +0 -1
  59. package/dist/src/commands/author/init.js +0 -320
  60. package/dist/src/commands/author/init.js.map +0 -1
  61. package/dist/src/commands/author/mcp-init.d.ts +0 -21
  62. package/dist/src/commands/author/mcp-init.d.ts.map +0 -1
  63. package/dist/src/commands/author/mcp-init.js +0 -202
  64. package/dist/src/commands/author/mcp-init.js.map +0 -1
  65. package/dist/src/commands/author/subagent.d.ts +0 -23
  66. package/dist/src/commands/author/subagent.d.ts.map +0 -1
  67. package/dist/src/commands/author/subagent.js +0 -174
  68. package/dist/src/commands/author/subagent.js.map +0 -1
  69. package/dist/src/commands/author/transform.d.ts +0 -23
  70. package/dist/src/commands/author/transform.d.ts.map +0 -1
  71. package/dist/src/commands/author/transform.js +0 -149
  72. package/dist/src/commands/author/transform.js.map +0 -1
  73. package/dist/src/commands/author/utils.d.ts +0 -27
  74. package/dist/src/commands/author/utils.d.ts.map +0 -1
  75. package/dist/src/commands/author/utils.js +0 -118
  76. package/dist/src/commands/author/utils.js.map +0 -1
  77. package/dist/src/commands/config.d.ts +0 -57
  78. package/dist/src/commands/config.d.ts.map +0 -1
  79. package/dist/src/commands/config.js +0 -226
  80. package/dist/src/commands/config.js.map +0 -1
  81. package/dist/src/commands/create.d.ts +0 -43
  82. package/dist/src/commands/create.d.ts.map +0 -1
  83. package/dist/src/commands/create.js +0 -336
  84. package/dist/src/commands/create.js.map +0 -1
  85. package/dist/src/commands/diff.d.ts +0 -21
  86. package/dist/src/commands/diff.d.ts.map +0 -1
  87. package/dist/src/commands/diff.js +0 -227
  88. package/dist/src/commands/diff.js.map +0 -1
  89. package/dist/src/commands/diff.test.d.ts +0 -6
  90. package/dist/src/commands/diff.test.d.ts.map +0 -1
  91. package/dist/src/commands/diff.test.js +0 -327
  92. package/dist/src/commands/diff.test.js.map +0 -1
  93. package/dist/src/commands/import-local.d.ts +0 -28
  94. package/dist/src/commands/import-local.d.ts.map +0 -1
  95. package/dist/src/commands/import-local.helpers.d.ts +0 -28
  96. package/dist/src/commands/import-local.helpers.d.ts.map +0 -1
  97. package/dist/src/commands/import-local.helpers.js +0 -166
  98. package/dist/src/commands/import-local.helpers.js.map +0 -1
  99. package/dist/src/commands/import-local.js +0 -273
  100. package/dist/src/commands/import-local.js.map +0 -1
  101. package/dist/src/commands/import-local.types.d.ts +0 -59
  102. package/dist/src/commands/import-local.types.d.ts.map +0 -1
  103. package/dist/src/commands/import-local.types.js +0 -2
  104. package/dist/src/commands/import-local.types.js.map +0 -1
  105. package/dist/src/commands/import.d.ts +0 -47
  106. package/dist/src/commands/import.d.ts.map +0 -1
  107. package/dist/src/commands/import.js +0 -314
  108. package/dist/src/commands/import.js.map +0 -1
  109. package/dist/src/commands/index.d.ts +0 -28
  110. package/dist/src/commands/index.d.ts.map +0 -1
  111. package/dist/src/commands/index.js +0 -50
  112. package/dist/src/commands/index.js.map +0 -1
  113. package/dist/src/commands/info.d.ts +0 -19
  114. package/dist/src/commands/info.d.ts.map +0 -1
  115. package/dist/src/commands/info.js +0 -110
  116. package/dist/src/commands/info.js.map +0 -1
  117. package/dist/src/commands/install-skill.d.ts +0 -16
  118. package/dist/src/commands/install-skill.d.ts.map +0 -1
  119. package/dist/src/commands/install-skill.js +0 -155
  120. package/dist/src/commands/install-skill.js.map +0 -1
  121. package/dist/src/commands/install.d.ts +0 -34
  122. package/dist/src/commands/install.d.ts.map +0 -1
  123. package/dist/src/commands/install.js +0 -311
  124. package/dist/src/commands/install.js.map +0 -1
  125. package/dist/src/commands/inventory.action.d.ts +0 -55
  126. package/dist/src/commands/inventory.action.d.ts.map +0 -1
  127. package/dist/src/commands/inventory.action.js +0 -179
  128. package/dist/src/commands/inventory.action.js.map +0 -1
  129. package/dist/src/commands/inventory.action.test.d.ts +0 -19
  130. package/dist/src/commands/inventory.action.test.d.ts.map +0 -1
  131. package/dist/src/commands/inventory.action.test.js +0 -371
  132. package/dist/src/commands/inventory.action.test.js.map +0 -1
  133. package/dist/src/commands/inventory.d.ts +0 -21
  134. package/dist/src/commands/inventory.d.ts.map +0 -1
  135. package/dist/src/commands/inventory.js +0 -42
  136. package/dist/src/commands/inventory.js.map +0 -1
  137. package/dist/src/commands/login.d.ts +0 -7
  138. package/dist/src/commands/login.d.ts.map +0 -1
  139. package/dist/src/commands/login.js +0 -323
  140. package/dist/src/commands/login.js.map +0 -1
  141. package/dist/src/commands/login.test-helpers.d.ts +0 -7
  142. package/dist/src/commands/login.test-helpers.d.ts.map +0 -1
  143. package/dist/src/commands/login.test-helpers.js +0 -44
  144. package/dist/src/commands/login.test-helpers.js.map +0 -1
  145. package/dist/src/commands/login.test.d.ts +0 -2
  146. package/dist/src/commands/login.test.d.ts.map +0 -1
  147. package/dist/src/commands/login.test.js +0 -387
  148. package/dist/src/commands/login.test.js.map +0 -1
  149. package/dist/src/commands/logout.d.ts +0 -15
  150. package/dist/src/commands/logout.d.ts.map +0 -1
  151. package/dist/src/commands/logout.js +0 -54
  152. package/dist/src/commands/logout.js.map +0 -1
  153. package/dist/src/commands/logout.test.d.ts +0 -8
  154. package/dist/src/commands/logout.test.d.ts.map +0 -1
  155. package/dist/src/commands/logout.test.js +0 -137
  156. package/dist/src/commands/logout.test.js.map +0 -1
  157. package/dist/src/commands/manage.d.ts +0 -19
  158. package/dist/src/commands/manage.d.ts.map +0 -1
  159. package/dist/src/commands/manage.js +0 -346
  160. package/dist/src/commands/manage.js.map +0 -1
  161. package/dist/src/commands/merge.d.ts +0 -24
  162. package/dist/src/commands/merge.d.ts.map +0 -1
  163. package/dist/src/commands/merge.js +0 -168
  164. package/dist/src/commands/merge.js.map +0 -1
  165. package/dist/src/commands/pin.d.ts +0 -26
  166. package/dist/src/commands/pin.d.ts.map +0 -1
  167. package/dist/src/commands/pin.js +0 -138
  168. package/dist/src/commands/pin.js.map +0 -1
  169. package/dist/src/commands/pin.test.d.ts +0 -6
  170. package/dist/src/commands/pin.test.d.ts.map +0 -1
  171. package/dist/src/commands/pin.test.js +0 -206
  172. package/dist/src/commands/pin.test.js.map +0 -1
  173. package/dist/src/commands/recommend-scoring.d.ts +0 -29
  174. package/dist/src/commands/recommend-scoring.d.ts.map +0 -1
  175. package/dist/src/commands/recommend-scoring.js +0 -141
  176. package/dist/src/commands/recommend-scoring.js.map +0 -1
  177. package/dist/src/commands/recommend.d.ts +0 -15
  178. package/dist/src/commands/recommend.d.ts.map +0 -1
  179. package/dist/src/commands/recommend.helpers.d.ts +0 -44
  180. package/dist/src/commands/recommend.helpers.d.ts.map +0 -1
  181. package/dist/src/commands/recommend.helpers.js +0 -303
  182. package/dist/src/commands/recommend.helpers.js.map +0 -1
  183. package/dist/src/commands/recommend.js +0 -198
  184. package/dist/src/commands/recommend.js.map +0 -1
  185. package/dist/src/commands/recommend.types.d.ts +0 -66
  186. package/dist/src/commands/recommend.types.d.ts.map +0 -1
  187. package/dist/src/commands/recommend.types.js +0 -14
  188. package/dist/src/commands/recommend.types.js.map +0 -1
  189. package/dist/src/commands/run-registry-sync.d.ts +0 -31
  190. package/dist/src/commands/run-registry-sync.d.ts.map +0 -1
  191. package/dist/src/commands/run-registry-sync.js +0 -45
  192. package/dist/src/commands/run-registry-sync.js.map +0 -1
  193. package/dist/src/commands/search-formatters.d.ts +0 -36
  194. package/dist/src/commands/search-formatters.d.ts.map +0 -1
  195. package/dist/src/commands/search-formatters.js +0 -132
  196. package/dist/src/commands/search-formatters.js.map +0 -1
  197. package/dist/src/commands/search-types.d.ts +0 -46
  198. package/dist/src/commands/search-types.d.ts.map +0 -1
  199. package/dist/src/commands/search-types.js +0 -12
  200. package/dist/src/commands/search-types.js.map +0 -1
  201. package/dist/src/commands/search.action.d.ts +0 -16
  202. package/dist/src/commands/search.action.d.ts.map +0 -1
  203. package/dist/src/commands/search.action.js +0 -384
  204. package/dist/src/commands/search.action.js.map +0 -1
  205. package/dist/src/commands/search.d.ts +0 -18
  206. package/dist/src/commands/search.d.ts.map +0 -1
  207. package/dist/src/commands/search.helpers.d.ts +0 -52
  208. package/dist/src/commands/search.helpers.d.ts.map +0 -1
  209. package/dist/src/commands/search.helpers.js +0 -95
  210. package/dist/src/commands/search.helpers.js.map +0 -1
  211. package/dist/src/commands/search.js +0 -48
  212. package/dist/src/commands/search.js.map +0 -1
  213. package/dist/src/commands/search.test.d.ts +0 -10
  214. package/dist/src/commands/search.test.d.ts.map +0 -1
  215. package/dist/src/commands/search.test.js +0 -179
  216. package/dist/src/commands/search.test.js.map +0 -1
  217. package/dist/src/commands/sync.action.d.ts +0 -39
  218. package/dist/src/commands/sync.action.d.ts.map +0 -1
  219. package/dist/src/commands/sync.action.js +0 -353
  220. package/dist/src/commands/sync.action.js.map +0 -1
  221. package/dist/src/commands/sync.d.ts +0 -24
  222. package/dist/src/commands/sync.d.ts.map +0 -1
  223. package/dist/src/commands/sync.helpers.d.ts +0 -55
  224. package/dist/src/commands/sync.helpers.d.ts.map +0 -1
  225. package/dist/src/commands/sync.helpers.js +0 -90
  226. package/dist/src/commands/sync.helpers.js.map +0 -1
  227. package/dist/src/commands/sync.js +0 -101
  228. package/dist/src/commands/sync.js.map +0 -1
  229. package/dist/src/commands/telemetry.action.d.ts +0 -38
  230. package/dist/src/commands/telemetry.action.d.ts.map +0 -1
  231. package/dist/src/commands/telemetry.action.js +0 -350
  232. package/dist/src/commands/telemetry.action.js.map +0 -1
  233. package/dist/src/commands/telemetry.d.ts +0 -30
  234. package/dist/src/commands/telemetry.d.ts.map +0 -1
  235. package/dist/src/commands/telemetry.helpers.d.ts +0 -58
  236. package/dist/src/commands/telemetry.helpers.d.ts.map +0 -1
  237. package/dist/src/commands/telemetry.helpers.js +0 -173
  238. package/dist/src/commands/telemetry.helpers.js.map +0 -1
  239. package/dist/src/commands/telemetry.helpers.test.d.ts +0 -15
  240. package/dist/src/commands/telemetry.helpers.test.d.ts.map +0 -1
  241. package/dist/src/commands/telemetry.helpers.test.js +0 -240
  242. package/dist/src/commands/telemetry.helpers.test.js.map +0 -1
  243. package/dist/src/commands/telemetry.js +0 -65
  244. package/dist/src/commands/telemetry.js.map +0 -1
  245. package/dist/src/commands/telemetry.test.d.ts +0 -18
  246. package/dist/src/commands/telemetry.test.d.ts.map +0 -1
  247. package/dist/src/commands/telemetry.test.js +0 -401
  248. package/dist/src/commands/telemetry.test.js.map +0 -1
  249. package/dist/src/commands/whoami.d.ts +0 -15
  250. package/dist/src/commands/whoami.d.ts.map +0 -1
  251. package/dist/src/commands/whoami.js +0 -55
  252. package/dist/src/commands/whoami.js.map +0 -1
  253. package/dist/src/commands/whoami.test.d.ts +0 -8
  254. package/dist/src/commands/whoami.test.d.ts.map +0 -1
  255. package/dist/src/commands/whoami.test.js +0 -133
  256. package/dist/src/commands/whoami.test.js.map +0 -1
  257. package/dist/src/config.d.ts +0 -29
  258. package/dist/src/config.d.ts.map +0 -1
  259. package/dist/src/config.js +0 -34
  260. package/dist/src/config.js.map +0 -1
  261. package/dist/src/index.d.ts +0 -22
  262. package/dist/src/index.d.ts.map +0 -1
  263. package/dist/src/index.js +0 -117
  264. package/dist/src/index.js.map +0 -1
  265. package/dist/src/templates/changelog.md.template.d.ts +0 -8
  266. package/dist/src/templates/changelog.md.template.d.ts.map +0 -1
  267. package/dist/src/templates/changelog.md.template.js +0 -19
  268. package/dist/src/templates/changelog.md.template.js.map +0 -1
  269. package/dist/src/templates/index.d.ts +0 -11
  270. package/dist/src/templates/index.d.ts.map +0 -1
  271. package/dist/src/templates/index.js +0 -11
  272. package/dist/src/templates/index.js.map +0 -1
  273. package/dist/src/templates/mcp-server.template.d.ts +0 -82
  274. package/dist/src/templates/mcp-server.template.d.ts.map +0 -1
  275. package/dist/src/templates/mcp-server.template.js +0 -430
  276. package/dist/src/templates/mcp-server.template.js.map +0 -1
  277. package/dist/src/templates/mcp-server.template.snippets.d.ts +0 -51
  278. package/dist/src/templates/mcp-server.template.snippets.d.ts.map +0 -1
  279. package/dist/src/templates/mcp-server.template.snippets.js +0 -162
  280. package/dist/src/templates/mcp-server.template.snippets.js.map +0 -1
  281. package/dist/src/templates/mcp-template-handlers.d.ts +0 -33
  282. package/dist/src/templates/mcp-template-handlers.d.ts.map +0 -1
  283. package/dist/src/templates/mcp-template-handlers.js +0 -106
  284. package/dist/src/templates/mcp-template-handlers.js.map +0 -1
  285. package/dist/src/templates/mcp-template-types.d.ts +0 -48
  286. package/dist/src/templates/mcp-template-types.d.ts.map +0 -1
  287. package/dist/src/templates/mcp-template-types.js +0 -18
  288. package/dist/src/templates/mcp-template-types.js.map +0 -1
  289. package/dist/src/templates/readme.md.template.d.ts +0 -8
  290. package/dist/src/templates/readme.md.template.d.ts.map +0 -1
  291. package/dist/src/templates/readme.md.template.js +0 -86
  292. package/dist/src/templates/readme.md.template.js.map +0 -1
  293. package/dist/src/templates/skill.md.template.d.ts +0 -8
  294. package/dist/src/templates/skill.md.template.d.ts.map +0 -1
  295. package/dist/src/templates/skill.md.template.js +0 -97
  296. package/dist/src/templates/skill.md.template.js.map +0 -1
  297. package/dist/src/templates/subagent.md.template.d.ts +0 -38
  298. package/dist/src/templates/subagent.md.template.d.ts.map +0 -1
  299. package/dist/src/templates/subagent.md.template.js +0 -128
  300. package/dist/src/templates/subagent.md.template.js.map +0 -1
  301. package/dist/src/utils/errors.d.ts +0 -52
  302. package/dist/src/utils/errors.d.ts.map +0 -1
  303. package/dist/src/utils/errors.js +0 -58
  304. package/dist/src/utils/errors.js.map +0 -1
  305. package/dist/src/utils/formatters.d.ts +0 -39
  306. package/dist/src/utils/formatters.d.ts.map +0 -1
  307. package/dist/src/utils/formatters.js +0 -69
  308. package/dist/src/utils/formatters.js.map +0 -1
  309. package/dist/src/utils/license-types.d.ts +0 -88
  310. package/dist/src/utils/license-types.d.ts.map +0 -1
  311. package/dist/src/utils/license-types.js +0 -60
  312. package/dist/src/utils/license-types.js.map +0 -1
  313. package/dist/src/utils/license-validation.d.ts +0 -61
  314. package/dist/src/utils/license-validation.d.ts.map +0 -1
  315. package/dist/src/utils/license-validation.js +0 -198
  316. package/dist/src/utils/license-validation.js.map +0 -1
  317. package/dist/src/utils/license.d.ts +0 -56
  318. package/dist/src/utils/license.d.ts.map +0 -1
  319. package/dist/src/utils/license.js +0 -163
  320. package/dist/src/utils/license.js.map +0 -1
  321. package/dist/src/utils/license.test.d.ts +0 -7
  322. package/dist/src/utils/license.test.d.ts.map +0 -1
  323. package/dist/src/utils/license.test.js +0 -308
  324. package/dist/src/utils/license.test.js.map +0 -1
  325. package/dist/src/utils/manifest.d.ts +0 -121
  326. package/dist/src/utils/manifest.d.ts.map +0 -1
  327. package/dist/src/utils/manifest.js +0 -133
  328. package/dist/src/utils/manifest.js.map +0 -1
  329. package/dist/src/utils/manifest.test.d.ts +0 -20
  330. package/dist/src/utils/manifest.test.d.ts.map +0 -1
  331. package/dist/src/utils/manifest.test.js +0 -344
  332. package/dist/src/utils/manifest.test.js.map +0 -1
  333. package/dist/src/utils/node-version.d.ts +0 -41
  334. package/dist/src/utils/node-version.d.ts.map +0 -1
  335. package/dist/src/utils/node-version.js +0 -123
  336. package/dist/src/utils/node-version.js.map +0 -1
  337. package/dist/src/utils/open-database.d.ts +0 -35
  338. package/dist/src/utils/open-database.d.ts.map +0 -1
  339. package/dist/src/utils/open-database.js +0 -73
  340. package/dist/src/utils/open-database.js.map +0 -1
  341. package/dist/src/utils/require-tier.d.ts +0 -38
  342. package/dist/src/utils/require-tier.d.ts.map +0 -1
  343. package/dist/src/utils/require-tier.js +0 -74
  344. package/dist/src/utils/require-tier.js.map +0 -1
  345. package/dist/src/utils/sanitize.d.ts +0 -30
  346. package/dist/src/utils/sanitize.d.ts.map +0 -1
  347. package/dist/src/utils/sanitize.js +0 -45
  348. package/dist/src/utils/sanitize.js.map +0 -1
  349. package/dist/src/utils/skill-name.d.ts +0 -19
  350. package/dist/src/utils/skill-name.d.ts.map +0 -1
  351. package/dist/src/utils/skill-name.js +0 -26
  352. package/dist/src/utils/skill-name.js.map +0 -1
  353. package/dist/src/utils/skills-directory.d.ts +0 -95
  354. package/dist/src/utils/skills-directory.d.ts.map +0 -1
  355. package/dist/src/utils/skills-directory.js +0 -285
  356. package/dist/src/utils/skills-directory.js.map +0 -1
  357. package/dist/src/utils/startup-header-gate.d.ts +0 -29
  358. package/dist/src/utils/startup-header-gate.d.ts.map +0 -1
  359. package/dist/src/utils/startup-header-gate.js +0 -44
  360. package/dist/src/utils/startup-header-gate.js.map +0 -1
  361. package/dist/src/utils/startup-header-gate.test.d.ts +0 -2
  362. package/dist/src/utils/startup-header-gate.test.d.ts.map +0 -1
  363. package/dist/src/utils/startup-header-gate.test.js +0 -46
  364. package/dist/src/utils/startup-header-gate.test.js.map +0 -1
  365. package/dist/src/utils/tool-analyzer.d.ts +0 -54
  366. package/dist/src/utils/tool-analyzer.d.ts.map +0 -1
  367. package/dist/src/utils/tool-analyzer.js +0 -156
  368. package/dist/src/utils/tool-analyzer.js.map +0 -1
  369. package/dist/src/version.d.ts +0 -2
  370. package/dist/src/version.d.ts.map +0 -1
  371. package/dist/src/version.js +0 -24
  372. package/dist/src/version.js.map +0 -1
  373. package/dist/tests/audit-collisions.test.d.ts +0 -42
  374. package/dist/tests/audit-collisions.test.d.ts.map +0 -1
  375. package/dist/tests/audit-collisions.test.js +0 -370
  376. package/dist/tests/audit-collisions.test.js.map +0 -1
  377. package/dist/tests/audit-restructure.test.d.ts +0 -15
  378. package/dist/tests/audit-restructure.test.d.ts.map +0 -1
  379. package/dist/tests/audit-restructure.test.js +0 -151
  380. package/dist/tests/audit-restructure.test.js.map +0 -1
  381. package/dist/tests/author.test.d.ts +0 -5
  382. package/dist/tests/author.test.d.ts.map +0 -1
  383. package/dist/tests/author.test.js +0 -653
  384. package/dist/tests/author.test.js.map +0 -1
  385. package/dist/tests/config.test.d.ts +0 -33
  386. package/dist/tests/config.test.d.ts.map +0 -1
  387. package/dist/tests/config.test.js +0 -240
  388. package/dist/tests/config.test.js.map +0 -1
  389. package/dist/tests/create.test.d.ts +0 -5
  390. package/dist/tests/create.test.d.ts.map +0 -1
  391. package/dist/tests/create.test.js +0 -449
  392. package/dist/tests/create.test.js.map +0 -1
  393. package/dist/tests/e2e/audit-sources-affix.test.d.ts +0 -11
  394. package/dist/tests/e2e/audit-sources-affix.test.d.ts.map +0 -1
  395. package/dist/tests/e2e/audit-sources-affix.test.js +0 -121
  396. package/dist/tests/e2e/audit-sources-affix.test.js.map +0 -1
  397. package/dist/tests/e2e/audit-sources-apply.test.d.ts +0 -13
  398. package/dist/tests/e2e/audit-sources-apply.test.d.ts.map +0 -1
  399. package/dist/tests/e2e/audit-sources-apply.test.js +0 -166
  400. package/dist/tests/e2e/audit-sources-apply.test.js.map +0 -1
  401. package/dist/tests/e2e/audit-sources-recovery.test.d.ts +0 -15
  402. package/dist/tests/e2e/audit-sources-recovery.test.d.ts.map +0 -1
  403. package/dist/tests/e2e/audit-sources-recovery.test.js +0 -179
  404. package/dist/tests/e2e/audit-sources-recovery.test.js.map +0 -1
  405. package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts +0 -23
  406. package/dist/tests/e2e/audit-sources-roundtrip.test.d.ts.map +0 -1
  407. package/dist/tests/e2e/audit-sources-roundtrip.test.js +0 -139
  408. package/dist/tests/e2e/audit-sources-roundtrip.test.js.map +0 -1
  409. package/dist/tests/e2e/author.e2e.test.d.ts +0 -9
  410. package/dist/tests/e2e/author.e2e.test.d.ts.map +0 -1
  411. package/dist/tests/e2e/author.e2e.test.js +0 -666
  412. package/dist/tests/e2e/author.e2e.test.js.map +0 -1
  413. package/dist/tests/e2e/import.e2e.test.d.ts +0 -10
  414. package/dist/tests/e2e/import.e2e.test.d.ts.map +0 -1
  415. package/dist/tests/e2e/import.e2e.test.js +0 -213
  416. package/dist/tests/e2e/import.e2e.test.js.map +0 -1
  417. package/dist/tests/e2e/manage.e2e.test.d.ts +0 -9
  418. package/dist/tests/e2e/manage.e2e.test.d.ts.map +0 -1
  419. package/dist/tests/e2e/manage.e2e.test.js +0 -277
  420. package/dist/tests/e2e/manage.e2e.test.js.map +0 -1
  421. package/dist/tests/e2e/search.e2e.test.d.ts +0 -10
  422. package/dist/tests/e2e/search.e2e.test.d.ts.map +0 -1
  423. package/dist/tests/e2e/search.e2e.test.js +0 -324
  424. package/dist/tests/e2e/search.e2e.test.js.map +0 -1
  425. package/dist/tests/e2e/test-config.d.ts +0 -39
  426. package/dist/tests/e2e/test-config.d.ts.map +0 -1
  427. package/dist/tests/e2e/test-config.js +0 -44
  428. package/dist/tests/e2e/test-config.js.map +0 -1
  429. package/dist/tests/e2e/utils/baseline-collector.d.ts +0 -107
  430. package/dist/tests/e2e/utils/baseline-collector.d.ts.map +0 -1
  431. package/dist/tests/e2e/utils/baseline-collector.js +0 -211
  432. package/dist/tests/e2e/utils/baseline-collector.js.map +0 -1
  433. package/dist/tests/e2e/utils/hardcoded-detector.d.ts +0 -46
  434. package/dist/tests/e2e/utils/hardcoded-detector.d.ts.map +0 -1
  435. package/dist/tests/e2e/utils/hardcoded-detector.js +0 -238
  436. package/dist/tests/e2e/utils/hardcoded-detector.js.map +0 -1
  437. package/dist/tests/e2e/utils/index.d.ts +0 -12
  438. package/dist/tests/e2e/utils/index.d.ts.map +0 -1
  439. package/dist/tests/e2e/utils/index.js +0 -12
  440. package/dist/tests/e2e/utils/index.js.map +0 -1
  441. package/dist/tests/e2e/utils/linear-reporter.d.ts +0 -60
  442. package/dist/tests/e2e/utils/linear-reporter.d.ts.map +0 -1
  443. package/dist/tests/e2e/utils/linear-reporter.js +0 -223
  444. package/dist/tests/e2e/utils/linear-reporter.js.map +0 -1
  445. package/dist/tests/e2e/utils/mock-github.d.ts +0 -23
  446. package/dist/tests/e2e/utils/mock-github.d.ts.map +0 -1
  447. package/dist/tests/e2e/utils/mock-github.js +0 -60
  448. package/dist/tests/e2e/utils/mock-github.js.map +0 -1
  449. package/dist/tests/e2e/utils/mock-prompts.d.ts +0 -19
  450. package/dist/tests/e2e/utils/mock-prompts.d.ts.map +0 -1
  451. package/dist/tests/e2e/utils/mock-prompts.js +0 -48
  452. package/dist/tests/e2e/utils/mock-prompts.js.map +0 -1
  453. package/dist/tests/e2e/utils/source-recovery-fixture.d.ts +0 -49
  454. package/dist/tests/e2e/utils/source-recovery-fixture.d.ts.map +0 -1
  455. package/dist/tests/e2e/utils/source-recovery-fixture.js +0 -106
  456. package/dist/tests/e2e/utils/source-recovery-fixture.js.map +0 -1
  457. package/dist/tests/embedding-probe-stdio.test.d.ts +0 -11
  458. package/dist/tests/embedding-probe-stdio.test.d.ts.map +0 -1
  459. package/dist/tests/embedding-probe-stdio.test.js +0 -58
  460. package/dist/tests/embedding-probe-stdio.test.js.map +0 -1
  461. package/dist/tests/import.test.d.ts +0 -5
  462. package/dist/tests/import.test.d.ts.map +0 -1
  463. package/dist/tests/import.test.js +0 -11
  464. package/dist/tests/import.test.js.map +0 -1
  465. package/dist/tests/init.test.d.ts +0 -30
  466. package/dist/tests/init.test.d.ts.map +0 -1
  467. package/dist/tests/init.test.js +0 -357
  468. package/dist/tests/init.test.js.map +0 -1
  469. package/dist/tests/install-multi-client.test.d.ts +0 -2
  470. package/dist/tests/install-multi-client.test.d.ts.map +0 -1
  471. package/dist/tests/install-multi-client.test.js +0 -202
  472. package/dist/tests/install-multi-client.test.js.map +0 -1
  473. package/dist/tests/install-quarantine.test.d.ts +0 -10
  474. package/dist/tests/install-quarantine.test.d.ts.map +0 -1
  475. package/dist/tests/install-quarantine.test.js +0 -86
  476. package/dist/tests/install-quarantine.test.js.map +0 -1
  477. package/dist/tests/install-skill.test.d.ts +0 -8
  478. package/dist/tests/install-skill.test.d.ts.map +0 -1
  479. package/dist/tests/install-skill.test.js +0 -414
  480. package/dist/tests/install-skill.test.js.map +0 -1
  481. package/dist/tests/integration/import-local.test.d.ts +0 -2
  482. package/dist/tests/integration/import-local.test.d.ts.map +0 -1
  483. package/dist/tests/integration/import-local.test.js +0 -158
  484. package/dist/tests/integration/import-local.test.js.map +0 -1
  485. package/dist/tests/license-validation.test.d.ts +0 -8
  486. package/dist/tests/license-validation.test.d.ts.map +0 -1
  487. package/dist/tests/license-validation.test.js +0 -186
  488. package/dist/tests/license-validation.test.js.map +0 -1
  489. package/dist/tests/manage.test.d.ts +0 -5
  490. package/dist/tests/manage.test.d.ts.map +0 -1
  491. package/dist/tests/manage.test.js +0 -495
  492. package/dist/tests/manage.test.js.map +0 -1
  493. package/dist/tests/mcp-server-template.test.d.ts +0 -7
  494. package/dist/tests/mcp-server-template.test.d.ts.map +0 -1
  495. package/dist/tests/mcp-server-template.test.js +0 -372
  496. package/dist/tests/mcp-server-template.test.js.map +0 -1
  497. package/dist/tests/node-version.test.d.ts +0 -8
  498. package/dist/tests/node-version.test.d.ts.map +0 -1
  499. package/dist/tests/node-version.test.js +0 -200
  500. package/dist/tests/node-version.test.js.map +0 -1
  501. package/dist/tests/open-database.test.d.ts +0 -2
  502. package/dist/tests/open-database.test.d.ts.map +0 -1
  503. package/dist/tests/open-database.test.js +0 -77
  504. package/dist/tests/open-database.test.js.map +0 -1
  505. package/dist/tests/recommend-helpers.test.d.ts +0 -9
  506. package/dist/tests/recommend-helpers.test.d.ts.map +0 -1
  507. package/dist/tests/recommend-helpers.test.js +0 -308
  508. package/dist/tests/recommend-helpers.test.js.map +0 -1
  509. package/dist/tests/recommend-scoring.test.d.ts +0 -8
  510. package/dist/tests/recommend-scoring.test.d.ts.map +0 -1
  511. package/dist/tests/recommend-scoring.test.js +0 -184
  512. package/dist/tests/recommend-scoring.test.js.map +0 -1
  513. package/dist/tests/recommend.errors.test.d.ts +0 -8
  514. package/dist/tests/recommend.errors.test.d.ts.map +0 -1
  515. package/dist/tests/recommend.errors.test.js +0 -232
  516. package/dist/tests/recommend.errors.test.js.map +0 -1
  517. package/dist/tests/recommend.filters.test.d.ts +0 -9
  518. package/dist/tests/recommend.filters.test.d.ts.map +0 -1
  519. package/dist/tests/recommend.filters.test.js +0 -235
  520. package/dist/tests/recommend.filters.test.js.map +0 -1
  521. package/dist/tests/recommend.test-helpers.d.ts +0 -66
  522. package/dist/tests/recommend.test-helpers.d.ts.map +0 -1
  523. package/dist/tests/recommend.test-helpers.js +0 -79
  524. package/dist/tests/recommend.test-helpers.js.map +0 -1
  525. package/dist/tests/recommend.test.d.ts +0 -11
  526. package/dist/tests/recommend.test.d.ts.map +0 -1
  527. package/dist/tests/recommend.test.js +0 -320
  528. package/dist/tests/recommend.test.js.map +0 -1
  529. package/dist/tests/search-helpers.test.d.ts +0 -2
  530. package/dist/tests/search-helpers.test.d.ts.map +0 -1
  531. package/dist/tests/search-helpers.test.js +0 -110
  532. package/dist/tests/search-helpers.test.js.map +0 -1
  533. package/dist/tests/search.test.d.ts +0 -5
  534. package/dist/tests/search.test.d.ts.map +0 -1
  535. package/dist/tests/search.test.js +0 -91
  536. package/dist/tests/search.test.js.map +0 -1
  537. package/dist/tests/skills-directory-per-harness.test.d.ts +0 -2
  538. package/dist/tests/skills-directory-per-harness.test.d.ts.map +0 -1
  539. package/dist/tests/skills-directory-per-harness.test.js +0 -116
  540. package/dist/tests/skills-directory-per-harness.test.js.map +0 -1
  541. package/dist/tests/skills-directory.test.d.ts +0 -2
  542. package/dist/tests/skills-directory.test.d.ts.map +0 -1
  543. package/dist/tests/skills-directory.test.js +0 -108
  544. package/dist/tests/skills-directory.test.js.map +0 -1
  545. package/dist/tests/sync.auth-ux.test.d.ts +0 -14
  546. package/dist/tests/sync.auth-ux.test.d.ts.map +0 -1
  547. package/dist/tests/sync.auth-ux.test.js +0 -148
  548. package/dist/tests/sync.auth-ux.test.js.map +0 -1
  549. package/dist/tests/tool-analyzer.test.d.ts +0 -8
  550. package/dist/tests/tool-analyzer.test.d.ts.map +0 -1
  551. package/dist/tests/tool-analyzer.test.js +0 -149
  552. package/dist/tests/tool-analyzer.test.js.map +0 -1
  553. package/dist/tests/unit/commands/install.test.d.ts +0 -7
  554. package/dist/tests/unit/commands/install.test.d.ts.map +0 -1
  555. package/dist/tests/unit/commands/install.test.js +0 -482
  556. package/dist/tests/unit/commands/install.test.js.map +0 -1
  557. package/dist/tests/unit/import-local.helpers.test.d.ts +0 -2
  558. package/dist/tests/unit/import-local.helpers.test.d.ts.map +0 -1
  559. package/dist/tests/unit/import-local.helpers.test.js +0 -96
  560. package/dist/tests/unit/import-local.helpers.test.js.map +0 -1
@@ -1,21 +0,0 @@
1
- /**
2
- * @fileoverview skillsmith diff — section-level skill content diff
3
- * @module @skillsmith/cli/commands/diff
4
- * @see SMI-skill-version-tracking Wave 2
5
- *
6
- * Compares an installed skill against its latest registry version using
7
- * heading-level (H2/H3) section analysis. Produces a human-readable
8
- * summary: sections removed (major), added (minor), or modified (patch).
9
- *
10
- * Tier gate: Individual (requires requireTier('individual')).
11
- */
12
- import { Command } from 'commander';
13
- export declare const diffAction: (skillName: string, opts: {
14
- oldContent?: string;
15
- newContent?: string;
16
- }) => Promise<void>;
17
- /**
18
- * Create the diff command
19
- */
20
- export declare function createDiffCommand(): Command;
21
- //# sourceMappingURL=diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/commands/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4OnC,eAAO,MAAM,UAAU;iBAjDA,MAAM;iBAAe,MAAM;mBAqDhD,CAAA;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C"}
@@ -1,227 +0,0 @@
1
- /**
2
- * @fileoverview skillsmith diff — section-level skill content diff
3
- * @module @skillsmith/cli/commands/diff
4
- * @see SMI-skill-version-tracking Wave 2
5
- *
6
- * Compares an installed skill against its latest registry version using
7
- * heading-level (H2/H3) section analysis. Produces a human-readable
8
- * summary: sections removed (major), added (minor), or modified (patch).
9
- *
10
- * Tier gate: Individual (requires requireTier('individual')).
11
- */
12
- import { Command } from 'commander';
13
- import chalk from 'chalk';
14
- import { readFile } from 'fs/promises';
15
- import { join } from 'path';
16
- import { classifyChange } from '@skillsmith/core';
17
- import { getCanonicalInstallPath } from '@skillsmith/core/install';
18
- import { withTelemetry } from '@skillsmith/core/telemetry';
19
- import { requireTier } from '../utils/require-tier.js';
20
- import { sanitizeError } from '../utils/sanitize.js';
21
- import { loadManifest } from '../utils/manifest.js';
22
- function extractHeadings(content) {
23
- const headings = new Map();
24
- for (const line of content.split('\n')) {
25
- const m = /^#{2,3}\s+(.+)/.exec(line);
26
- if (m && m[1] !== undefined) {
27
- const title = m[1].trim();
28
- headings.set(title.toLowerCase(), title);
29
- }
30
- }
31
- return headings;
32
- }
33
- function extractSectionBodies(content) {
34
- const result = new Map();
35
- const lines = content.split('\n');
36
- let currentHeading = null;
37
- const bodyLines = [];
38
- const flush = () => {
39
- if (currentHeading !== null) {
40
- result.set(currentHeading, bodyLines.join('\n').trim());
41
- bodyLines.length = 0;
42
- }
43
- };
44
- for (const line of lines) {
45
- const m = /^#{2,3}\s+(.+)/.exec(line);
46
- if (m && m[1] !== undefined) {
47
- flush();
48
- currentHeading = m[1].trim().toLowerCase();
49
- }
50
- else if (currentHeading !== null) {
51
- bodyLines.push(line);
52
- }
53
- }
54
- flush();
55
- return result;
56
- }
57
- function diffSections(oldContent, newContent) {
58
- const oldH = extractHeadings(oldContent);
59
- const newH = extractHeadings(newContent);
60
- const oldBodies = extractSectionBodies(oldContent);
61
- const newBodies = extractSectionBodies(newContent);
62
- const removed = [...oldH.values()].filter((t) => !newH.has(t.toLowerCase()));
63
- const added = [...newH.values()].filter((t) => !oldH.has(t.toLowerCase()));
64
- const modified = [];
65
- for (const [key, title] of newH) {
66
- if (oldH.has(key)) {
67
- const oldBody = oldBodies.get(key) ?? '';
68
- const newBody = newBodies.get(key) ?? '';
69
- if (oldBody !== newBody)
70
- modified.push(title);
71
- }
72
- }
73
- return { added, removed, modified };
74
- }
75
- // ============================================================================
76
- // Content resolution helpers
77
- // ============================================================================
78
- async function readInstalledSkillContent(skillName) {
79
- const skillPath = join(getCanonicalInstallPath(), skillName, 'SKILL.md');
80
- try {
81
- return await readFile(skillPath, 'utf-8');
82
- }
83
- catch {
84
- return null;
85
- }
86
- }
87
- /**
88
- * Convert a GitHub repo source to the raw SKILL.md URL on `branch`.
89
- * Accepts `github:owner/repo` (the shorthand install_skill writes,
90
- * skill-installation.service.ts), `https://github.com/owner/repo` (optionally
91
- * `/tree/<ref>`), and raw.githubusercontent.com passthrough. An explicit
92
- * `/tree/<ref>` always wins; otherwise `branch` is used (drives the main->master
93
- * fallback in fetchLatestContent). Returns null for non-GitHub shapes. SMI-5408.
94
- */
95
- function buildRawUrl(source, branch = 'main') {
96
- if (source.startsWith('https://raw.githubusercontent.com/'))
97
- return source;
98
- const shorthand = /^github:([^/]+)\/([^/]+)$/.exec(source);
99
- if (shorthand) {
100
- const owner = shorthand[1];
101
- const repo = shorthand[2]?.replace(/\.git$/, '');
102
- if (owner && repo) {
103
- return `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/SKILL.md`;
104
- }
105
- }
106
- const m = /^https:\/\/github\.com\/([^/]+)\/([^/]+)(?:\/tree\/([^/]+))?/.exec(source);
107
- if (!m)
108
- return null;
109
- const [, owner, repo, ref] = m;
110
- return `https://raw.githubusercontent.com/${owner}/${repo}/${ref ?? branch}/SKILL.md`;
111
- }
112
- async function fetchLatestContent(skillName) {
113
- try {
114
- const manifest = await loadManifest();
115
- const entry = manifest.installedSkills[skillName];
116
- if (!entry?.source)
117
- return { content: null, sourceTracked: false };
118
- // Try main then master (raw URLs are branch-specific); dedup so a
119
- // branch-fixed source (explicit /tree/<ref> or raw passthrough) fetches once.
120
- const rawUrls = [
121
- ...new Set(['main', 'master']
122
- .map((b) => buildRawUrl(entry.source, b))
123
- .filter((u) => u !== null)),
124
- ];
125
- if (rawUrls.length === 0)
126
- return { content: null, sourceTracked: true };
127
- for (const rawUrl of rawUrls) {
128
- const response = await fetch(rawUrl, {
129
- headers: { Accept: 'text/plain' },
130
- signal: AbortSignal.timeout(10_000),
131
- });
132
- if (response.ok)
133
- return { content: await response.text(), sourceTracked: true };
134
- if (response.status !== 404)
135
- return { content: null, sourceTracked: true };
136
- }
137
- return { content: null, sourceTracked: true };
138
- }
139
- catch {
140
- return { content: null, sourceTracked: true };
141
- }
142
- }
143
- // ============================================================================
144
- // Display
145
- // ============================================================================
146
- function printDiff(skillName, diff, changeType) {
147
- const totalChanges = diff.removed.length + diff.added.length + diff.modified.length;
148
- console.log('\n' +
149
- chalk.bold(skillName) +
150
- ' ' +
151
- chalk.dim(`[${changeType.toUpperCase()}]`) +
152
- ` ${totalChanges} section(s) changed`);
153
- for (const s of diff.removed)
154
- console.log(chalk.red(` - ${s}`));
155
- for (const s of diff.added)
156
- console.log(chalk.green(` + ${s}`));
157
- for (const s of diff.modified)
158
- console.log(chalk.yellow(` ~ ${s}`));
159
- if (totalChanges === 0) {
160
- console.log(chalk.dim(' No section-level changes detected'));
161
- }
162
- console.log();
163
- }
164
- // ============================================================================
165
- // Command factory
166
- // ============================================================================
167
- // SMI-5128: extracted from inline .action() closure to a named function so
168
- // withTelemetry can wrap it at the export boundary (SMI-5040 coverage gate).
169
- async function diffActionImpl(skillName, opts) {
170
- try {
171
- await requireTier('individual');
172
- // Resolve old content
173
- let oldContent = null;
174
- if (opts.oldContent) {
175
- oldContent = await readFile(opts.oldContent, 'utf-8');
176
- }
177
- else {
178
- oldContent = await readInstalledSkillContent(skillName);
179
- }
180
- if (!oldContent) {
181
- console.error(chalk.red(`Skill "${skillName}" is not installed or SKILL.md not found.`));
182
- process.exit(1);
183
- }
184
- // Resolve new content
185
- let newContent = null;
186
- if (opts.newContent) {
187
- newContent = await readFile(opts.newContent, 'utf-8');
188
- }
189
- else {
190
- const fetched = await fetchLatestContent(skillName);
191
- newContent = fetched.content;
192
- if (!newContent) {
193
- const noSourceHint = !fetched.sourceTracked
194
- ? ` Source not tracked for "${skillName}". Run \`sklx audit sources\` (or MCP skill_recover_source) to recover.`
195
- : '';
196
- console.error(chalk.red(`Could not fetch latest version for "${skillName}". ` +
197
- `Check your network connection or provide --new-content.` +
198
- noSourceHint));
199
- process.exit(1);
200
- }
201
- }
202
- const diff = diffSections(oldContent, newContent);
203
- const changeType = classifyChange(oldContent, newContent);
204
- printDiff(skillName, diff, changeType);
205
- }
206
- catch (error) {
207
- console.error(chalk.red('Error:'), sanitizeError(error));
208
- process.exit(1);
209
- }
210
- }
211
- export const diffAction = withTelemetry(diffActionImpl, {
212
- source: 'cli',
213
- extractSkillId: () => 'diff',
214
- extractFramework: () => 'cli',
215
- });
216
- /**
217
- * Create the diff command
218
- */
219
- export function createDiffCommand() {
220
- return new Command('diff')
221
- .description('Show section-level diff between installed and latest version of a skill (Individual tier)')
222
- .argument('<skill>', 'Skill name to diff')
223
- .option('--old-content <path>', 'Path to old SKILL.md (uses installed skill if omitted)')
224
- .option('--new-content <path>', 'Path to new SKILL.md (fetches from registry if omitted)')
225
- .action(diffAction);
226
- }
227
- //# sourceMappingURL=diff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/commands/diff.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Tests for diff.ts — skillsmith diff CLI command
3
- * @see SMI-skill-version-tracking Wave 2
4
- */
5
- export {};
6
- //# sourceMappingURL=diff.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.test.d.ts","sourceRoot":"","sources":["../../../src/commands/diff.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,327 +0,0 @@
1
- /**
2
- * @fileoverview Tests for diff.ts — skillsmith diff CLI command
3
- * @see SMI-skill-version-tracking Wave 2
4
- */
5
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
6
- // ============================================================================
7
- // Module mocks — must be declared before imports that use them
8
- // ============================================================================
9
- vi.mock('../utils/require-tier.js', () => ({
10
- requireTier: vi.fn().mockResolvedValue(undefined),
11
- }));
12
- vi.mock('../utils/sanitize.js', () => ({
13
- sanitizeError: (e) => (e instanceof Error ? e.message : String(e)),
14
- }));
15
- const mockLoadManifest = vi.fn();
16
- vi.mock('../utils/manifest.js', () => ({
17
- loadManifest: () => mockLoadManifest(),
18
- }));
19
- const mockClassifyChange = vi.fn();
20
- vi.mock('@skillsmith/core', () => ({
21
- classifyChange: (...args) => mockClassifyChange(...args),
22
- }));
23
- // readFile is used for --old-content / --new-content file overrides
24
- const mockReadFile = vi.fn();
25
- vi.mock('fs/promises', () => ({
26
- readFile: (...args) => mockReadFile(...args),
27
- }));
28
- // fetch is used for remote registry content
29
- const mockFetch = vi.fn();
30
- vi.stubGlobal('fetch', mockFetch);
31
- // ============================================================================
32
- // Import after mocks
33
- // ============================================================================
34
- import { createDiffCommand } from './diff.js';
35
- // ============================================================================
36
- // Fixtures
37
- // ============================================================================
38
- const OLD_CONTENT = `---
39
- name: test-skill
40
- version: 1.0.0
41
- ---
42
-
43
- ## Overview
44
-
45
- A test skill.
46
-
47
- ## Usage
48
-
49
- Run with /test.
50
- `;
51
- const NEW_CONTENT_MINOR = `---
52
- name: test-skill
53
- version: 1.1.0
54
- ---
55
-
56
- ## Overview
57
-
58
- A test skill.
59
-
60
- ## Usage
61
-
62
- Run with /test.
63
-
64
- ## Examples
65
-
66
- Here are examples.
67
- `;
68
- const NEW_CONTENT_PATCH = `---
69
- name: test-skill
70
- version: 1.0.1
71
- ---
72
-
73
- ## Overview
74
-
75
- An updated test skill.
76
-
77
- ## Usage
78
-
79
- Run with /test now.
80
- `;
81
- function buildManifest(sourceUrl = 'https://github.com/anthropic/test-skill') {
82
- return {
83
- version: '1.0.0',
84
- installedSkills: {
85
- 'test-skill': {
86
- id: 'anthropic/test-skill',
87
- name: 'test-skill',
88
- version: '1.0.0',
89
- source: sourceUrl,
90
- installPath: '/home/user/.claude/skills/test-skill',
91
- installedAt: '2024-01-01T00:00:00.000Z',
92
- lastUpdated: '2024-01-01T00:00:00.000Z',
93
- },
94
- },
95
- };
96
- }
97
- /**
98
- * Run a commander command programmatically with the given argv.
99
- * Captures console output and process.exit calls.
100
- */
101
- async function runCommand(cmd, argv) {
102
- const output = [];
103
- const exitCode = { value: null };
104
- const consoleSpy = vi.spyOn(console, 'log').mockImplementation((...args) => {
105
- output.push(args.join(' '));
106
- });
107
- const errorSpy = vi.spyOn(console, 'error').mockImplementation((...args) => {
108
- output.push(args.join(' '));
109
- });
110
- const exitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
111
- exitCode.value = typeof code === 'number' ? code : null;
112
- throw new Error(`process.exit(${code})`);
113
- });
114
- try {
115
- await cmd.parseAsync(['node', 'test', ...argv]);
116
- }
117
- catch (e) {
118
- const msg = e instanceof Error ? e.message : String(e);
119
- if (!msg.startsWith('process.exit'))
120
- throw e;
121
- }
122
- finally {
123
- consoleSpy.mockRestore();
124
- errorSpy.mockRestore();
125
- exitSpy.mockRestore();
126
- }
127
- return { exitCode: exitCode.value, consoleOutput: output };
128
- }
129
- // ============================================================================
130
- // Tests
131
- // ============================================================================
132
- describe('createDiffCommand', () => {
133
- beforeEach(() => {
134
- vi.clearAllMocks();
135
- mockClassifyChange.mockReturnValue('minor');
136
- });
137
- afterEach(() => {
138
- vi.clearAllMocks();
139
- });
140
- describe('content resolution — remote fetch path', () => {
141
- it('fetches latest content from registry and displays diff', async () => {
142
- mockLoadManifest.mockResolvedValue(buildManifest());
143
- mockReadFile.mockResolvedValue(OLD_CONTENT);
144
- mockFetch.mockResolvedValue({
145
- ok: true,
146
- text: () => Promise.resolve(NEW_CONTENT_MINOR),
147
- });
148
- const cmd = createDiffCommand();
149
- const { exitCode, consoleOutput } = await runCommand(cmd, [
150
- 'test-skill',
151
- '--old-content',
152
- '/tmp/old-skill.md',
153
- ]);
154
- expect(exitCode).toBeNull();
155
- expect(mockFetch).toHaveBeenCalledOnce();
156
- expect(consoleOutput.join('\n')).toContain('MINOR');
157
- });
158
- it('exits with error when installed skill SKILL.md is not found', async () => {
159
- // No --old-content flag, no installed skill file
160
- mockLoadManifest.mockResolvedValue(buildManifest());
161
- // readFile throws (file not found)
162
- mockReadFile.mockRejectedValue(new Error('ENOENT'));
163
- const cmd = createDiffCommand();
164
- const { exitCode } = await runCommand(cmd, ['nonexistent-skill']);
165
- // readInstalledSkillContent returns null on error, causing exit(1)
166
- expect(exitCode).toBe(1);
167
- });
168
- it('exits with error when remote fetch fails', async () => {
169
- mockLoadManifest.mockResolvedValue(buildManifest());
170
- mockReadFile.mockResolvedValue(OLD_CONTENT);
171
- mockFetch.mockResolvedValue({ ok: false });
172
- const cmd = createDiffCommand();
173
- const { exitCode } = await runCommand(cmd, [
174
- 'test-skill',
175
- '--old-content',
176
- '/tmp/old-skill.md',
177
- ]);
178
- expect(exitCode).toBe(1);
179
- });
180
- it('exits with error when manifest has no source URL', async () => {
181
- const manifest = {
182
- version: '1.0.0',
183
- installedSkills: {
184
- 'no-source': {
185
- id: 'test/no-source',
186
- name: 'no-source',
187
- version: '1.0.0',
188
- source: '',
189
- installPath: '/home/user/.claude/skills/no-source',
190
- installedAt: '2024-01-01T00:00:00.000Z',
191
- lastUpdated: '2024-01-01T00:00:00.000Z',
192
- },
193
- },
194
- };
195
- mockLoadManifest.mockResolvedValue(manifest);
196
- mockReadFile.mockResolvedValue(OLD_CONTENT);
197
- const cmd = createDiffCommand();
198
- const { exitCode } = await runCommand(cmd, [
199
- 'no-source',
200
- '--old-content',
201
- '/tmp/old-skill.md',
202
- ]);
203
- expect(exitCode).toBe(1);
204
- });
205
- // SMI-5407: source-recovery hint surfaces in diff error when source is missing
206
- it('includes sklx audit sources hint when source is not tracked', async () => {
207
- const manifest = {
208
- version: '1.0.0',
209
- installedSkills: {
210
- 'orphan-skill': {
211
- id: 'test/orphan-skill',
212
- name: 'orphan-skill',
213
- version: '1.0.0',
214
- source: '', // no source URL
215
- installPath: '/home/user/.claude/skills/orphan-skill',
216
- installedAt: '2024-01-01T00:00:00.000Z',
217
- lastUpdated: '2024-01-01T00:00:00.000Z',
218
- },
219
- },
220
- };
221
- mockLoadManifest.mockResolvedValue(manifest);
222
- mockReadFile.mockResolvedValue(OLD_CONTENT);
223
- const cmd = createDiffCommand();
224
- const { exitCode, consoleOutput } = await runCommand(cmd, [
225
- 'orphan-skill',
226
- '--old-content',
227
- '/tmp/old-skill.md',
228
- ]);
229
- expect(exitCode).toBe(1);
230
- // SMI-5407: error message must include the source-recovery hint
231
- const joined = consoleOutput.join('\n');
232
- expect(joined).toContain('audit sources');
233
- expect(joined).toContain('skill_recover_source');
234
- });
235
- });
236
- describe('content resolution — file override path', () => {
237
- it('uses --old-content and --new-content file overrides when provided', async () => {
238
- mockReadFile.mockResolvedValueOnce(OLD_CONTENT).mockResolvedValueOnce(NEW_CONTENT_PATCH);
239
- mockClassifyChange.mockReturnValue('patch');
240
- const cmd = createDiffCommand();
241
- const { exitCode, consoleOutput } = await runCommand(cmd, [
242
- 'test-skill',
243
- '--old-content',
244
- '/tmp/old.md',
245
- '--new-content',
246
- '/tmp/new.md',
247
- ]);
248
- expect(exitCode).toBeNull();
249
- // fetch should NOT be called when --new-content is provided
250
- expect(mockFetch).not.toHaveBeenCalled();
251
- expect(consoleOutput.join('\n')).toContain('PATCH');
252
- });
253
- });
254
- describe('URL conversion — buildRawUrl', () => {
255
- it('converts github.com URL to raw.githubusercontent.com', async () => {
256
- mockLoadManifest.mockResolvedValue(buildManifest('https://github.com/anthropic/test-skill'));
257
- mockReadFile.mockResolvedValue(OLD_CONTENT);
258
- mockFetch.mockResolvedValue({
259
- ok: true,
260
- text: () => Promise.resolve(NEW_CONTENT_MINOR),
261
- });
262
- const cmd = createDiffCommand();
263
- await runCommand(cmd, ['test-skill', '--old-content', '/tmp/old.md']);
264
- expect(mockFetch).toHaveBeenCalledWith('https://raw.githubusercontent.com/anthropic/test-skill/main/SKILL.md', expect.objectContaining({ headers: { Accept: 'text/plain' } }));
265
- });
266
- it('passes raw.githubusercontent.com URLs through unchanged', async () => {
267
- const rawUrl = 'https://raw.githubusercontent.com/anthropic/test-skill/main/SKILL.md';
268
- mockLoadManifest.mockResolvedValue(buildManifest(rawUrl));
269
- mockReadFile.mockResolvedValue(OLD_CONTENT);
270
- mockFetch.mockResolvedValue({
271
- ok: true,
272
- text: () => Promise.resolve(NEW_CONTENT_MINOR),
273
- });
274
- const cmd = createDiffCommand();
275
- await runCommand(cmd, ['test-skill', '--old-content', '/tmp/old.md']);
276
- expect(mockFetch).toHaveBeenCalledWith(rawUrl, expect.any(Object));
277
- });
278
- it('converts the github:owner/repo shorthand (install_skill format) to a raw URL (SMI-5408)', async () => {
279
- mockLoadManifest.mockResolvedValue(buildManifest('github:anthropic/test-skill'));
280
- mockReadFile.mockResolvedValue(OLD_CONTENT);
281
- mockFetch.mockResolvedValue({
282
- ok: true,
283
- text: () => Promise.resolve(NEW_CONTENT_MINOR),
284
- });
285
- const cmd = createDiffCommand();
286
- await runCommand(cmd, ['test-skill', '--old-content', '/tmp/old.md']);
287
- expect(mockFetch).toHaveBeenCalledWith('https://raw.githubusercontent.com/anthropic/test-skill/main/SKILL.md', expect.objectContaining({ headers: { Accept: 'text/plain' } }));
288
- });
289
- it('falls back to the master branch when main 404s (SMI-5408)', async () => {
290
- mockLoadManifest.mockResolvedValue(buildManifest('github:anthropic/test-skill'));
291
- mockReadFile.mockResolvedValue(OLD_CONTENT);
292
- mockFetch
293
- .mockResolvedValueOnce({ ok: false, status: 404 })
294
- .mockResolvedValueOnce({ ok: true, text: () => Promise.resolve(NEW_CONTENT_MINOR) });
295
- const cmd = createDiffCommand();
296
- await runCommand(cmd, ['test-skill', '--old-content', '/tmp/old.md']);
297
- expect(mockFetch).toHaveBeenNthCalledWith(1, 'https://raw.githubusercontent.com/anthropic/test-skill/main/SKILL.md', expect.any(Object));
298
- expect(mockFetch).toHaveBeenNthCalledWith(2, 'https://raw.githubusercontent.com/anthropic/test-skill/master/SKILL.md', expect.any(Object));
299
- });
300
- it('exits with error for non-GitHub source URLs', async () => {
301
- mockLoadManifest.mockResolvedValue(buildManifest('https://gitlab.com/anthropic/test-skill'));
302
- mockReadFile.mockResolvedValue(OLD_CONTENT);
303
- const cmd = createDiffCommand();
304
- const { exitCode } = await runCommand(cmd, ['test-skill', '--old-content', '/tmp/old.md']);
305
- expect(exitCode).toBe(1);
306
- });
307
- });
308
- describe('output formatting', () => {
309
- it('includes change type label and skill name in output', async () => {
310
- mockLoadManifest.mockResolvedValue(buildManifest());
311
- mockReadFile.mockResolvedValueOnce(OLD_CONTENT).mockResolvedValueOnce(NEW_CONTENT_MINOR);
312
- mockClassifyChange.mockReturnValue('minor');
313
- const cmd = createDiffCommand();
314
- const { consoleOutput } = await runCommand(cmd, [
315
- 'test-skill',
316
- '--old-content',
317
- '/tmp/old.md',
318
- '--new-content',
319
- '/tmp/new.md',
320
- ]);
321
- const joined = consoleOutput.join('\n');
322
- expect(joined).toContain('test-skill');
323
- expect(joined).toContain('MINOR');
324
- });
325
- });
326
- });
327
- //# sourceMappingURL=diff.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff.test.js","sourceRoot":"","sources":["../../../src/commands/diff.test.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * @fileoverview `skillsmith import-local` — walk a directory tree of `SKILL.md`
3
- * files and upsert them into the local skills DB with `source='local'` so
4
- * subsequent registry sync (with or without `--force`) leaves them alone.
5
- *
6
- * @see SMI-4665
7
- */
8
- import { Command } from 'commander';
9
- import { walkSkillFiles, parseSkillFile, localSkillId } from './import-local.helpers.js';
10
- import type { ImportLocalOptions, ImportLocalResult } from './import-local.types.js';
11
- /**
12
- * Run a single pass of the importer. Returns the summary; never throws on
13
- * per-file errors (those land in `result.errors`).
14
- */
15
- export declare function runImportLocal(opts: ImportLocalOptions): Promise<ImportLocalResult>;
16
- export declare const importLocalAction: (path: string | undefined, cliOptions: {
17
- client?: string;
18
- watch?: boolean;
19
- dryRun?: boolean;
20
- json?: boolean;
21
- db?: string;
22
- }) => Promise<void>;
23
- /**
24
- * Build the Commander subcommand. Wired into `index.ts` via `addCommand`.
25
- */
26
- export declare function createImportLocalCommand(): Command;
27
- export { walkSkillFiles, parseSkillFile, localSkillId };
28
- //# sourceMappingURL=import-local.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-local.d.ts","sourceRoot":"","sources":["../../../src/commands/import-local.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcnC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAgBhC;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0GzF;AAqGD,eAAO,MAAM,iBAAiB;aA1CjB,MAAM;YACP,OAAO;aACN,OAAO;WACT,OAAO;SACT,MAAM;mBA0Cb,CAAA;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAiBlD;AAyBD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA"}