@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,138 +0,0 @@
1
- /**
2
- * @fileoverview skillsmith pin / unpin — content-hash pinning for installed skills
3
- * @module @skillsmith/cli/commands/pin
4
- * @see SMI-skill-version-tracking Wave 2
5
- *
6
- * pin <name>: writes the current contentHash as pinnedVersion in the manifest
7
- * unpin <name>: removes pinnedVersion from the manifest entry
8
- *
9
- * The pinnedVersion field is an 8-char truncated content hash that the
10
- * skill_updates tool (Wave 1) and install flow (future Wave 3) can use
11
- * to enforce an update hold.
12
- *
13
- * Tier gate: Individual (requires requireTier('individual')).
14
- */
15
- import { Command } from 'commander';
16
- import chalk from 'chalk';
17
- import { withTelemetry } from '@skillsmith/core/telemetry';
18
- import { requireTier } from '../utils/require-tier.js';
19
- import { sanitizeError } from '../utils/sanitize.js';
20
- import { loadManifest, updateManifestEntry } from '../utils/manifest.js';
21
- // ============================================================================
22
- // Helpers
23
- // ============================================================================
24
- /**
25
- * Truncate a full content hash to its 8-char human-readable prefix.
26
- * If the hash is already short (e.g. the manifest stores an 8-char value),
27
- * the full value is returned as-is.
28
- */
29
- function truncateHash(hash) {
30
- return hash.slice(0, 8);
31
- }
32
- // ============================================================================
33
- // Command factories
34
- // ============================================================================
35
- // SMI-5128 batch B: extracted from inline .action() closures so withTelemetry
36
- // can wrap them at the export boundary (SMI-5018 coverage gate).
37
- async function pinActionImpl(skillName) {
38
- try {
39
- await requireTier('individual');
40
- const manifest = await loadManifest();
41
- const entry = manifest.installedSkills[skillName];
42
- if (!entry) {
43
- console.error(chalk.red(`Skill "${skillName}" not found in manifest. ` +
44
- `Install the skill first with: skillsmith setup`));
45
- process.exit(1);
46
- }
47
- const hash = entry.contentHash ?? entry.originalContentHash ?? null;
48
- if (!hash) {
49
- console.warn(chalk.yellow(`Warning: No content hash available for "${skillName}". ` +
50
- `Reinstall the skill to record a hash.`));
51
- process.exit(1);
52
- }
53
- const pinHash = truncateHash(hash);
54
- await updateManifestEntry((m) => {
55
- const existingEntry = m.installedSkills[skillName];
56
- if (!existingEntry)
57
- return m;
58
- return {
59
- ...m,
60
- installedSkills: {
61
- ...m.installedSkills,
62
- [skillName]: {
63
- ...existingEntry,
64
- pinnedVersion: pinHash,
65
- },
66
- },
67
- };
68
- });
69
- console.log(chalk.green(`Pinned ${skillName} to content hash ${pinHash}`));
70
- }
71
- catch (error) {
72
- console.error(chalk.red('Error:'), sanitizeError(error));
73
- process.exit(1);
74
- }
75
- }
76
- export const pinAction = withTelemetry(pinActionImpl, {
77
- source: 'cli',
78
- extractSkillId: () => 'pin',
79
- extractFramework: () => 'cli',
80
- });
81
- async function unpinActionImpl(skillName) {
82
- try {
83
- await requireTier('individual');
84
- const manifest = await loadManifest();
85
- const entry = manifest.installedSkills[skillName];
86
- if (!entry) {
87
- console.error(chalk.red(`Skill "${skillName}" not found in manifest.`));
88
- process.exit(1);
89
- }
90
- if (!entry.pinnedVersion) {
91
- console.log(chalk.dim(`Skill "${skillName}" is not pinned.`));
92
- return;
93
- }
94
- const previousPin = entry.pinnedVersion;
95
- await updateManifestEntry((m) => {
96
- const existingEntry = m.installedSkills[skillName];
97
- if (!existingEntry)
98
- return m;
99
- const { pinnedVersion: _removed, ...rest } = existingEntry;
100
- return {
101
- ...m,
102
- installedSkills: {
103
- ...m.installedSkills,
104
- [skillName]: rest,
105
- },
106
- };
107
- });
108
- console.log(chalk.green(`Unpinned ${skillName} (was pinned to ${previousPin})`));
109
- }
110
- catch (error) {
111
- console.error(chalk.red('Error:'), sanitizeError(error));
112
- process.exit(1);
113
- }
114
- }
115
- export const unpinAction = withTelemetry(unpinActionImpl, {
116
- source: 'cli',
117
- extractSkillId: () => 'unpin',
118
- extractFramework: () => 'cli',
119
- });
120
- /**
121
- * Create the pin command
122
- */
123
- export function createPinCommand() {
124
- return new Command('pin')
125
- .description('Pin an installed skill to its current content hash (Individual tier)')
126
- .argument('<skill>', 'Skill name to pin')
127
- .action(pinAction);
128
- }
129
- /**
130
- * Create the unpin command
131
- */
132
- export function createUnpinCommand() {
133
- return new Command('unpin')
134
- .description('Remove the content-hash pin from an installed skill (Individual tier)')
135
- .argument('<skill>', 'Skill name to unpin')
136
- .action(unpinAction);
137
- }
138
- //# sourceMappingURL=pin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pin.js","sourceRoot":"","sources":["../../../src/commands/pin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @fileoverview Tests for pin.ts — pin/unpin manifest commands
3
- * @see SMI-skill-version-tracking Wave 2
4
- */
5
- export {};
6
- //# sourceMappingURL=pin.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pin.test.d.ts","sourceRoot":"","sources":["../../../src/commands/pin.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,206 +0,0 @@
1
- /**
2
- * @fileoverview Tests for pin.ts — pin/unpin manifest commands
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
- const mockLoadManifest = vi.fn();
13
- const mockUpdateManifestEntry = vi.fn();
14
- vi.mock('../utils/manifest.js', () => ({
15
- loadManifest: () => mockLoadManifest(),
16
- updateManifestEntry: (fn) => mockUpdateManifestEntry(fn),
17
- }));
18
- // ============================================================================
19
- // Import after mocks are set up
20
- // ============================================================================
21
- import { createPinCommand, createUnpinCommand } from './pin.js';
22
- // ============================================================================
23
- // Helpers
24
- // ============================================================================
25
- function buildManifest(overrides = {}) {
26
- return {
27
- version: '1.0.0',
28
- installedSkills: {
29
- 'commit-helper': {
30
- id: 'anthropic/commit-helper',
31
- name: 'commit-helper',
32
- version: '1.0.0',
33
- source: 'https://github.com/anthropic/commit-helper',
34
- installPath: '/home/user/.claude/skills/commit-helper',
35
- installedAt: '2024-01-01T00:00:00.000Z',
36
- lastUpdated: '2024-01-01T00:00:00.000Z',
37
- contentHash: 'a3f7b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1',
38
- originalContentHash: 'a3f7b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1',
39
- },
40
- ...overrides,
41
- },
42
- };
43
- }
44
- /**
45
- * Run a commander command programmatically with the given argv.
46
- * Captures console output and process.exit calls.
47
- */
48
- async function runCommand(cmd, argv) {
49
- const output = [];
50
- const exitCode = { value: null };
51
- const consoleSpy = vi.spyOn(console, 'log').mockImplementation((...args) => {
52
- output.push(args.join(' '));
53
- });
54
- const errorSpy = vi.spyOn(console, 'error').mockImplementation((...args) => {
55
- output.push(args.join(' '));
56
- });
57
- const warnSpy = vi.spyOn(console, 'warn').mockImplementation((...args) => {
58
- output.push(args.join(' '));
59
- });
60
- const exitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
61
- exitCode.value = typeof code === 'number' ? code : null;
62
- throw new Error(`process.exit(${code})`);
63
- });
64
- try {
65
- await cmd.parseAsync(['node', 'test', ...argv]);
66
- }
67
- catch (e) {
68
- // Swallow process.exit throws
69
- const msg = e instanceof Error ? e.message : String(e);
70
- if (!msg.startsWith('process.exit'))
71
- throw e;
72
- }
73
- finally {
74
- consoleSpy.mockRestore();
75
- errorSpy.mockRestore();
76
- warnSpy.mockRestore();
77
- exitSpy.mockRestore();
78
- }
79
- return { exitCode: exitCode.value, consoleOutput: output };
80
- }
81
- // ============================================================================
82
- // Tests
83
- // ============================================================================
84
- describe('createPinCommand', () => {
85
- beforeEach(() => {
86
- vi.clearAllMocks();
87
- });
88
- afterEach(() => {
89
- vi.clearAllMocks();
90
- });
91
- it('writes pinnedVersion (8-char hash) to manifest entry', async () => {
92
- const manifest = buildManifest();
93
- mockLoadManifest.mockResolvedValue(manifest);
94
- let capturedUpdateFn = null;
95
- mockUpdateManifestEntry.mockImplementation(async (fn) => {
96
- capturedUpdateFn = fn;
97
- });
98
- const cmd = createPinCommand();
99
- const { exitCode, consoleOutput } = await runCommand(cmd, ['commit-helper']);
100
- expect(exitCode).toBeNull();
101
- expect(mockUpdateManifestEntry).toHaveBeenCalledOnce();
102
- // Apply the update function and verify pinnedVersion is set
103
- const updated = capturedUpdateFn(manifest);
104
- const entry = updated.installedSkills['commit-helper'];
105
- expect(entry.pinnedVersion).toBe('a3f7b2c1');
106
- expect(consoleOutput.join(' ')).toContain('a3f7b2c1');
107
- });
108
- it('uses contentHash first, falls back to originalContentHash', async () => {
109
- const manifest = buildManifest({
110
- 'no-content-hash': {
111
- id: 'test/no-content-hash',
112
- name: 'no-content-hash',
113
- version: '1.0.0',
114
- source: 'https://github.com/test/no-content-hash',
115
- installPath: '/home/user/.claude/skills/no-content-hash',
116
- installedAt: '2024-01-01T00:00:00.000Z',
117
- lastUpdated: '2024-01-01T00:00:00.000Z',
118
- originalContentHash: 'deadbeef1234567890abcdef',
119
- },
120
- });
121
- mockLoadManifest.mockResolvedValue(manifest);
122
- let capturedUpdateFn = null;
123
- mockUpdateManifestEntry.mockImplementation(async (fn) => {
124
- capturedUpdateFn = fn;
125
- });
126
- const cmd = createPinCommand();
127
- await runCommand(cmd, ['no-content-hash']);
128
- const updated = capturedUpdateFn(manifest);
129
- expect(updated.installedSkills['no-content-hash']?.pinnedVersion).toBe('deadbeef');
130
- });
131
- it('exits with error when skill is not in manifest', async () => {
132
- mockLoadManifest.mockResolvedValue(buildManifest());
133
- const cmd = createPinCommand();
134
- const { exitCode } = await runCommand(cmd, ['nonexistent-skill']);
135
- expect(exitCode).toBe(1);
136
- });
137
- it('exits with warning when no hash is available', async () => {
138
- const manifest = buildManifest({
139
- 'no-hash-skill': {
140
- id: 'test/no-hash-skill',
141
- name: 'no-hash-skill',
142
- version: '1.0.0',
143
- source: 'https://github.com/test/no-hash-skill',
144
- installPath: '/home/user/.claude/skills/no-hash-skill',
145
- installedAt: '2024-01-01T00:00:00.000Z',
146
- lastUpdated: '2024-01-01T00:00:00.000Z',
147
- },
148
- });
149
- mockLoadManifest.mockResolvedValue(manifest);
150
- const cmd = createPinCommand();
151
- const { exitCode } = await runCommand(cmd, ['no-hash-skill']);
152
- expect(exitCode).toBe(1);
153
- });
154
- });
155
- describe('createUnpinCommand', () => {
156
- beforeEach(() => {
157
- vi.clearAllMocks();
158
- });
159
- afterEach(() => {
160
- vi.clearAllMocks();
161
- });
162
- it('removes pinnedVersion from manifest entry', async () => {
163
- const manifest = buildManifest({
164
- 'commit-helper': {
165
- id: 'anthropic/commit-helper',
166
- name: 'commit-helper',
167
- version: '1.0.0',
168
- source: 'https://github.com/anthropic/commit-helper',
169
- installPath: '/home/user/.claude/skills/commit-helper',
170
- installedAt: '2024-01-01T00:00:00.000Z',
171
- lastUpdated: '2024-01-01T00:00:00.000Z',
172
- contentHash: 'a3f7b2c1d4e5f6a7b8c9d0e1f2a3b4c5',
173
- pinnedVersion: 'a3f7b2c1',
174
- },
175
- });
176
- mockLoadManifest.mockResolvedValue(manifest);
177
- let capturedUpdateFn = null;
178
- mockUpdateManifestEntry.mockImplementation(async (fn) => {
179
- capturedUpdateFn = fn;
180
- });
181
- const cmd = createUnpinCommand();
182
- const { exitCode, consoleOutput } = await runCommand(cmd, ['commit-helper']);
183
- expect(exitCode).toBeNull();
184
- expect(mockUpdateManifestEntry).toHaveBeenCalledOnce();
185
- // Apply the update function and verify pinnedVersion is removed
186
- const updated = capturedUpdateFn(manifest);
187
- expect(updated.installedSkills['commit-helper']?.pinnedVersion).toBeUndefined();
188
- expect(consoleOutput.join(' ')).toContain('Unpinned');
189
- });
190
- it('prints dim message when skill is not pinned (no-op)', async () => {
191
- const manifest = buildManifest();
192
- mockLoadManifest.mockResolvedValue(manifest);
193
- const cmd = createUnpinCommand();
194
- const { exitCode, consoleOutput } = await runCommand(cmd, ['commit-helper']);
195
- expect(exitCode).toBeNull();
196
- expect(mockUpdateManifestEntry).not.toHaveBeenCalled();
197
- expect(consoleOutput.join(' ')).toContain('not pinned');
198
- });
199
- it('exits with error when skill is not in manifest', async () => {
200
- mockLoadManifest.mockResolvedValue(buildManifest());
201
- const cmd = createUnpinCommand();
202
- const { exitCode } = await runCommand(cmd, ['nonexistent-skill']);
203
- expect(exitCode).toBe(1);
204
- });
205
- });
206
- //# sourceMappingURL=pin.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pin.test.js","sourceRoot":"","sources":["../../../src/commands/pin.test.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * SMI-1299: CLI Recommend Scoring Helpers
3
- *
4
- * Role inference and overlap detection for skill recommendations.
5
- *
6
- * @module @skillsmith/cli/commands/recommend-scoring
7
- */
8
- import type { SkillRole } from '@skillsmith/core';
9
- import type { SkillRecommendation, InstalledSkill } from './recommend.types.js';
10
- /**
11
- * SMI-1631: Infer skill roles from tags when not explicitly set
12
- */
13
- export declare function inferRolesFromTags(tags: string[]): SkillRole[];
14
- /**
15
- * Normalize a skill name for comparison (SMI-1358)
16
- */
17
- export declare function normalizeSkillName(name: string): string;
18
- /**
19
- * Check if two skills overlap in functionality (SMI-1358)
20
- */
21
- export declare function skillsOverlap(installed: InstalledSkill, recommended: SkillRecommendation): boolean;
22
- /**
23
- * Filter recommendations to remove overlaps with installed skills (SMI-1358)
24
- */
25
- export declare function filterOverlappingSkills(recommendations: SkillRecommendation[], installedSkills: InstalledSkill[]): {
26
- filtered: SkillRecommendation[];
27
- overlapCount: number;
28
- };
29
- //# sourceMappingURL=recommend-scoring.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommend-scoring.d.ts","sourceRoot":"","sources":["../../../src/commands/recommend-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAM/E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAqE9D;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAqBT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,mBAAmB,EAAE,EACtC,eAAe,EAAE,cAAc,EAAE,GAChC;IAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAkB3D"}
@@ -1,141 +0,0 @@
1
- /**
2
- * SMI-1299: CLI Recommend Scoring Helpers
3
- *
4
- * Role inference and overlap detection for skill recommendations.
5
- *
6
- * @module @skillsmith/cli/commands/recommend-scoring
7
- */
8
- // ============================================================================
9
- // Role Inference
10
- // ============================================================================
11
- /**
12
- * SMI-1631: Infer skill roles from tags when not explicitly set
13
- */
14
- export function inferRolesFromTags(tags) {
15
- const roleMapping = {
16
- lint: 'code-quality',
17
- linting: 'code-quality',
18
- format: 'code-quality',
19
- formatting: 'code-quality',
20
- prettier: 'code-quality',
21
- eslint: 'code-quality',
22
- 'code-review': 'code-quality',
23
- review: 'code-quality',
24
- refactor: 'code-quality',
25
- refactoring: 'code-quality',
26
- 'code-style': 'code-quality',
27
- test: 'testing',
28
- testing: 'testing',
29
- jest: 'testing',
30
- vitest: 'testing',
31
- mocha: 'testing',
32
- playwright: 'testing',
33
- cypress: 'testing',
34
- e2e: 'testing',
35
- unit: 'testing',
36
- integration: 'testing',
37
- tdd: 'testing',
38
- docs: 'documentation',
39
- documentation: 'documentation',
40
- readme: 'documentation',
41
- jsdoc: 'documentation',
42
- typedoc: 'documentation',
43
- changelog: 'documentation',
44
- api: 'documentation',
45
- git: 'workflow',
46
- commit: 'workflow',
47
- pr: 'workflow',
48
- 'pull-request': 'workflow',
49
- ci: 'workflow',
50
- cd: 'workflow',
51
- 'ci-cd': 'workflow',
52
- deploy: 'workflow',
53
- deployment: 'workflow',
54
- automation: 'workflow',
55
- workflow: 'workflow',
56
- security: 'security',
57
- audit: 'security',
58
- vulnerability: 'security',
59
- cve: 'security',
60
- secrets: 'security',
61
- authentication: 'security',
62
- auth: 'security',
63
- ai: 'development-partner',
64
- assistant: 'development-partner',
65
- helper: 'development-partner',
66
- copilot: 'development-partner',
67
- productivity: 'development-partner',
68
- scaffold: 'development-partner',
69
- generator: 'development-partner',
70
- };
71
- const inferredRoles = new Set();
72
- for (const tag of tags) {
73
- const normalizedTag = tag.toLowerCase().replace(/[-_]/g, '');
74
- for (const [keyword, role] of Object.entries(roleMapping)) {
75
- if (normalizedTag.includes(keyword.replace(/[-_]/g, ''))) {
76
- inferredRoles.add(role);
77
- }
78
- }
79
- }
80
- return [...inferredRoles];
81
- }
82
- // ============================================================================
83
- // Overlap Detection
84
- // ============================================================================
85
- /**
86
- * Normalize a skill name for comparison (SMI-1358)
87
- */
88
- export function normalizeSkillName(name) {
89
- return name
90
- .toLowerCase()
91
- .replace(/[-_]/g, '')
92
- .replace(/^skill/, '')
93
- .replace(/skill$/, '')
94
- .replace(/^helper/, '')
95
- .replace(/helper$/, '')
96
- .trim();
97
- }
98
- /**
99
- * Check if two skills overlap in functionality (SMI-1358)
100
- */
101
- export function skillsOverlap(installed, recommended) {
102
- const installedName = normalizeSkillName(installed.name);
103
- const recommendedName = normalizeSkillName(recommended.name);
104
- const recommendedId = recommended.skill_id.toLowerCase();
105
- if (installedName === recommendedName)
106
- return true;
107
- if (recommendedId.includes(installed.name))
108
- return true;
109
- if (installedName.includes(recommendedName) || recommendedName.includes(installedName)) {
110
- if (installedName.length >= 4 && recommendedName.length >= 4)
111
- return true;
112
- }
113
- if (installed.tags.length > 0) {
114
- const recommendedNameParts = recommended.name.toLowerCase().split(/[-_\s]+/);
115
- const hasTagOverlap = installed.tags.some((tag) => recommendedNameParts.includes(tag) || recommendedName.includes(tag));
116
- if (hasTagOverlap)
117
- return true;
118
- }
119
- return false;
120
- }
121
- /**
122
- * Filter recommendations to remove overlaps with installed skills (SMI-1358)
123
- */
124
- export function filterOverlappingSkills(recommendations, installedSkills) {
125
- if (installedSkills.length === 0) {
126
- return { filtered: recommendations, overlapCount: 0 };
127
- }
128
- const filtered = [];
129
- let overlapCount = 0;
130
- for (const rec of recommendations) {
131
- const hasOverlap = installedSkills.some((installed) => skillsOverlap(installed, rec));
132
- if (hasOverlap) {
133
- overlapCount++;
134
- }
135
- else {
136
- filtered.push(rec);
137
- }
138
- }
139
- return { filtered, overlapCount };
140
- }
141
- //# sourceMappingURL=recommend-scoring.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommend-scoring.js","sourceRoot":"","sources":["../../../src/commands/recommend-scoring.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * SMI-1299: CLI Recommend Command
3
- *
4
- * Analyzes a codebase and recommends relevant skills based on detected
5
- * frameworks, dependencies, and patterns.
6
- */
7
- import { Command } from 'commander';
8
- export type { SkillRecommendation, RecommendResponse, InstalledSkill } from './recommend.types.js';
9
- export declare const recommendAction: (targetPath: string, opts: Record<string, string | boolean | string[] | undefined>) => Promise<void>;
10
- /**
11
- * Create recommend command
12
- */
13
- export declare function createRecommendCommand(): Command;
14
- export default createRecommendCommand;
15
- //# sourceMappingURL=recommend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommend.d.ts","sourceRoot":"","sources":["../../../src/commands/recommend.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcnC,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA2MlG,eAAO,MAAM,eAAe,sGAI1B,CAAA;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAiBhD;AAED,eAAe,sBAAsB,CAAA"}
@@ -1,44 +0,0 @@
1
- /**
2
- * SMI-1299: CLI Recommend Command Helpers
3
- * @module @skillsmith/cli/commands/recommend.helpers
4
- */
5
- import type { TrustTier, CodebaseContext } from '@skillsmith/core';
6
- import type { RecommendResponse, InstalledSkill } from './recommend.types.js';
7
- export { inferRolesFromTags, normalizeSkillName, skillsOverlap, filterOverlappingSkills, } from './recommend-scoring.js';
8
- /**
9
- * Validate and normalize trust tier from API response (SMI-1354)
10
- */
11
- export declare function validateTrustTier(tier: unknown): TrustTier;
12
- /**
13
- * Check if error is a network-related error (SMI-1355)
14
- */
15
- export declare function isNetworkError(error: unknown): boolean;
16
- /**
17
- * Get trust badge for display (SMI-1357)
18
- * SMI-2381 / SMI-4520: Added 'curated' tier
19
- */
20
- export declare function getTrustBadge(tier: TrustTier): string;
21
- /**
22
- * Format recommendations for terminal display
23
- */
24
- export declare function formatRecommendations(response: RecommendResponse, context: CodebaseContext | null): string;
25
- /**
26
- * Format recommendations as JSON
27
- */
28
- export declare function formatAsJson(response: RecommendResponse, context: CodebaseContext | null): string;
29
- /**
30
- * Format offline analysis results (SMI-1355)
31
- */
32
- export declare function formatOfflineResults(context: CodebaseContext, json: boolean): string;
33
- /**
34
- * Build stack from codebase analysis
35
- */
36
- export declare function buildStackFromAnalysis(context: CodebaseContext): string[];
37
- /**
38
- * Read installed skills from the canonical install directory (SMI-1358).
39
- *
40
- * SMI-4578: routes through `@skillsmith/core/install` so the default-client
41
- * path is defined in exactly one place.
42
- */
43
- export declare function getInstalledSkills(): InstalledSkill[];
44
- //# sourceMappingURL=recommend.helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommend.helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/recommend.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAiC,MAAM,kBAAkB,CAAA;AAEjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI7E,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,uBAAuB,GACxB,MAAM,wBAAwB,CAAA;AAM/B;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAK1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CActD;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAcrD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,eAAe,GAAG,IAAI,GAC9B,MAAM,CAsFR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,MAAM,CA+BjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAyDpF;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAczE;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CA0DrD"}