@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,255 +0,0 @@
1
- /**
2
- * SMI-1916: A/B Testing Command Tests
3
- *
4
- * Tests for the ab-test CLI command with tier-based feature gating.
5
- */
6
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
- import { createAbTestCommand, runAbTest } from './ab-test.js';
8
- // Mock the license validation module
9
- vi.mock('../utils/license-validation.js', () => ({
10
- tryLoadEnterpriseValidator: vi.fn(),
11
- }));
12
- // Mock sanitizeError
13
- vi.mock('../utils/sanitize.js', () => ({
14
- sanitizeError: vi.fn((err) => (err instanceof Error ? err.message : String(err))),
15
- }));
16
- // Import mocked module
17
- import { tryLoadEnterpriseValidator } from '../utils/license-validation.js';
18
- const mockTryLoadEnterpriseValidator = vi.mocked(tryLoadEnterpriseValidator);
19
- describe('ab-test command', () => {
20
- let consoleLogSpy;
21
- let consoleErrorSpy;
22
- let processExitSpy;
23
- let originalEnv;
24
- beforeEach(() => {
25
- // Save original env
26
- originalEnv = { ...process.env };
27
- // Spy on console methods
28
- consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
29
- consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
30
- // Mock process.exit to throw instead of exiting
31
- processExitSpy = vi
32
- .spyOn(process, 'exit')
33
- .mockImplementation((code) => {
34
- throw new Error(`process.exit(${code})`);
35
- });
36
- // Reset mocks
37
- vi.clearAllMocks();
38
- });
39
- afterEach(() => {
40
- // Restore original env
41
- process.env = originalEnv;
42
- // Restore spies
43
- consoleLogSpy.mockRestore();
44
- consoleErrorSpy.mockRestore();
45
- processExitSpy.mockRestore();
46
- });
47
- describe('createAbTestCommand', () => {
48
- it('should create a command with correct name and description', () => {
49
- const cmd = createAbTestCommand();
50
- expect(cmd.name()).toBe('ab-test');
51
- expect(cmd.description()).toContain('A/B testing experiments');
52
- expect(cmd.description()).toContain('Team+ tier');
53
- });
54
- it('should have required options', () => {
55
- const cmd = createAbTestCommand();
56
- const options = cmd.options;
57
- const optionNames = options.map((opt) => opt.long);
58
- expect(optionNames).toContain('--skill');
59
- expect(optionNames).toContain('--iterations');
60
- expect(optionNames).toContain('--output');
61
- expect(optionNames).toContain('--json');
62
- });
63
- it('should have default values for iterations and output', () => {
64
- const cmd = createAbTestCommand();
65
- const options = cmd.options;
66
- const iterationsOpt = options.find((opt) => opt.long === '--iterations');
67
- const outputOpt = options.find((opt) => opt.long === '--output');
68
- expect(iterationsOpt?.defaultValue).toBe('10');
69
- expect(outputOpt?.defaultValue).toBe('docs/research/ab-test');
70
- });
71
- });
72
- describe('runAbTest - tier gating', () => {
73
- const defaultOptions = {
74
- skill: 'governance',
75
- iterations: 10,
76
- output: 'docs/research/ab-test',
77
- json: false,
78
- };
79
- it('should show upgrade prompt for community tier (no license key)', async () => {
80
- // No license key
81
- delete process.env['SKILLSMITH_LICENSE_KEY'];
82
- mockTryLoadEnterpriseValidator.mockResolvedValue(null);
83
- await expect(runAbTest(defaultOptions)).rejects.toThrow('process.exit(1)');
84
- // Verify upgrade prompt was shown
85
- const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
86
- expect(logCalls).toContain('A/B Testing requires Team tier or higher');
87
- expect(logCalls).toContain('community');
88
- expect(logCalls).toContain('Team tier');
89
- expect(logCalls).toContain('$25/user/mo');
90
- });
91
- it('should show JSON upgrade prompt when --json flag is set', async () => {
92
- delete process.env['SKILLSMITH_LICENSE_KEY'];
93
- mockTryLoadEnterpriseValidator.mockResolvedValue(null);
94
- const jsonOptions = { ...defaultOptions, json: true };
95
- await expect(runAbTest(jsonOptions)).rejects.toThrow('process.exit(1)');
96
- // Verify JSON output
97
- const logCalls = consoleLogSpy.mock.calls.flat();
98
- const jsonOutput = logCalls.find((call) => typeof call === 'string' && call.includes('{'));
99
- expect(jsonOutput).toBeDefined();
100
- const parsed = JSON.parse(jsonOutput);
101
- expect(parsed.error).toBe('upgrade_required');
102
- expect(parsed.feature).toBe('ab_testing');
103
- expect(parsed.requiredTier).toBe('team');
104
- });
105
- it('should show upgrade prompt for individual tier', async () => {
106
- process.env['SKILLSMITH_LICENSE_KEY'] = 'test-key';
107
- const mockValidator = {
108
- validate: vi.fn().mockResolvedValue({
109
- valid: true,
110
- license: { tier: 'individual', features: [] },
111
- }),
112
- };
113
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
114
- await expect(runAbTest(defaultOptions)).rejects.toThrow('process.exit(1)');
115
- const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
116
- expect(logCalls).toContain('A/B Testing requires Team tier or higher');
117
- expect(logCalls).toContain('individual');
118
- });
119
- it('should allow team tier users', async () => {
120
- process.env['SKILLSMITH_LICENSE_KEY'] = 'team-key';
121
- const mockValidator = {
122
- validate: vi.fn().mockResolvedValue({
123
- valid: true,
124
- license: { tier: 'team', features: ['ab_testing'] },
125
- }),
126
- };
127
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
128
- // Should not throw - team tier has access
129
- await runAbTest(defaultOptions);
130
- const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
131
- expect(logCalls).toContain('A/B testing infrastructure is ready');
132
- expect(logCalls).toContain('Tier: team');
133
- });
134
- it('should allow enterprise tier users', async () => {
135
- process.env['SKILLSMITH_LICENSE_KEY'] = 'enterprise-key';
136
- const mockValidator = {
137
- validate: vi.fn().mockResolvedValue({
138
- valid: true,
139
- license: { tier: 'enterprise', features: ['ab_testing'] },
140
- }),
141
- };
142
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
143
- await runAbTest(defaultOptions);
144
- const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
145
- expect(logCalls).toContain('A/B testing infrastructure is ready');
146
- expect(logCalls).toContain('Tier: enterprise');
147
- });
148
- it('should treat invalid license as community tier', async () => {
149
- process.env['SKILLSMITH_LICENSE_KEY'] = 'invalid-key';
150
- const mockValidator = {
151
- validate: vi.fn().mockResolvedValue({
152
- valid: false,
153
- error: { code: 'INVALID_TOKEN', message: 'Invalid' },
154
- }),
155
- };
156
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
157
- await expect(runAbTest(defaultOptions)).rejects.toThrow('process.exit(1)');
158
- const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
159
- expect(logCalls).toContain('community');
160
- });
161
- it('should handle validator errors gracefully', async () => {
162
- process.env['SKILLSMITH_LICENSE_KEY'] = 'test-key';
163
- const mockValidator = {
164
- validate: vi.fn().mockRejectedValue(new Error('Network error')),
165
- };
166
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
167
- await expect(runAbTest(defaultOptions)).rejects.toThrow('process.exit(1)');
168
- const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
169
- expect(logCalls).toContain('community');
170
- });
171
- });
172
- describe('runAbTest - input validation', () => {
173
- beforeEach(() => {
174
- // Set up team tier for these tests
175
- process.env['SKILLSMITH_LICENSE_KEY'] = 'team-key';
176
- const mockValidator = {
177
- validate: vi.fn().mockResolvedValue({
178
- valid: true,
179
- license: { tier: 'team', features: ['ab_testing'] },
180
- }),
181
- };
182
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
183
- });
184
- it('should require skill name', async () => {
185
- const optionsWithoutSkill = {
186
- skill: undefined,
187
- iterations: 10,
188
- output: 'docs/research/ab-test',
189
- json: false,
190
- };
191
- await expect(runAbTest(optionsWithoutSkill)).rejects.toThrow('process.exit(1)');
192
- const errorCalls = consoleErrorSpy.mock.calls.flat().join('\n');
193
- expect(errorCalls).toContain('Skill name is required');
194
- });
195
- it('should return JSON error when skill missing with --json', async () => {
196
- const optionsWithoutSkill = {
197
- skill: undefined,
198
- iterations: 10,
199
- output: 'docs/research/ab-test',
200
- json: true,
201
- };
202
- await expect(runAbTest(optionsWithoutSkill)).rejects.toThrow('process.exit(1)');
203
- const logCalls = consoleLogSpy.mock.calls.flat();
204
- const jsonOutput = logCalls.find((call) => typeof call === 'string' && call.includes('error'));
205
- expect(jsonOutput).toBeDefined();
206
- const parsed = JSON.parse(jsonOutput);
207
- expect(parsed.error).toContain('Skill name is required');
208
- });
209
- it('should use default iterations when not specified', async () => {
210
- const options = {
211
- skill: 'test-skill',
212
- iterations: undefined,
213
- output: 'docs/research/ab-test',
214
- json: true,
215
- };
216
- await runAbTest(options);
217
- const logCalls = consoleLogSpy.mock.calls.flat();
218
- const jsonOutput = logCalls.find((call) => typeof call === 'string' && call.includes('iterations'));
219
- expect(jsonOutput).toBeDefined();
220
- const parsed = JSON.parse(jsonOutput);
221
- expect(parsed.iterations).toBe(10);
222
- });
223
- });
224
- describe('runAbTest - JSON output', () => {
225
- beforeEach(() => {
226
- process.env['SKILLSMITH_LICENSE_KEY'] = 'team-key';
227
- const mockValidator = {
228
- validate: vi.fn().mockResolvedValue({
229
- valid: true,
230
- license: { tier: 'team', features: ['ab_testing'] },
231
- }),
232
- };
233
- mockTryLoadEnterpriseValidator.mockResolvedValue(mockValidator);
234
- });
235
- it('should output valid JSON when --json flag is set', async () => {
236
- const options = {
237
- skill: 'governance',
238
- iterations: 5,
239
- output: 'custom/output',
240
- json: true,
241
- };
242
- await runAbTest(options);
243
- const logCalls = consoleLogSpy.mock.calls.flat();
244
- const jsonOutput = logCalls.find((call) => typeof call === 'string' && call.includes('{'));
245
- expect(jsonOutput).toBeDefined();
246
- const parsed = JSON.parse(jsonOutput);
247
- expect(parsed.status).toBe('ready');
248
- expect(parsed.skill).toBe('governance');
249
- expect(parsed.iterations).toBe(5);
250
- expect(parsed.outputDir).toBe('custom/output');
251
- expect(parsed.manualCommand).toContain('governance');
252
- });
253
- });
254
- });
255
- //# sourceMappingURL=ab-test.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ab-test.test.js","sourceRoot":"","sources":["../../../src/commands/ab-test.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * SMI-1283: CLI Analyze Command
3
- *
4
- * Analyzes a codebase to understand its structure, frameworks, and dependencies.
5
- * Returns context useful for skill recommendations.
6
- */
7
- import { Command } from 'commander';
8
- export declare const analyzeAction: (targetPath: string, opts: Record<string, string | boolean | string[] | undefined>) => Promise<void>;
9
- /**
10
- * Create analyze command
11
- */
12
- export declare function createAnalyzeCommand(): Command;
13
- export default createAnalyzeCommand;
14
- //# sourceMappingURL=analyze.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyMnC,eAAO,MAAM,aAAa,sGAIxB,CAAA;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAW9C;AAED,eAAe,oBAAoB,CAAA"}
@@ -1,191 +0,0 @@
1
- /**
2
- * SMI-1283: CLI Analyze Command
3
- *
4
- * Analyzes a codebase to understand its structure, frameworks, and dependencies.
5
- * Returns context useful for skill recommendations.
6
- */
7
- import { Command } from 'commander';
8
- import chalk from 'chalk';
9
- import { CodebaseAnalyzer } from '@skillsmith/core';
10
- import { withTelemetry } from '@skillsmith/core/telemetry';
11
- import { sanitizeError } from '../utils/sanitize.js';
12
- /**
13
- * Format analysis results for terminal display
14
- */
15
- function formatAnalysisResults(context, analyzer) {
16
- const lines = [];
17
- lines.push('');
18
- lines.push(chalk.bold.blue('=== Codebase Analysis ==='));
19
- lines.push('');
20
- // Stats
21
- lines.push(`${chalk.bold('Files:')} ${context.stats.totalFiles} | ${chalk.bold('Lines:')} ${context.stats.totalLines.toLocaleString()}`);
22
- lines.push(`${chalk.bold('Duration:')} ${context.metadata.durationMs}ms`);
23
- lines.push('');
24
- // File types
25
- const fileTypes = Object.entries(context.stats.filesByExtension)
26
- .sort((a, b) => b[1] - a[1])
27
- .map(([ext, count]) => `${ext}: ${count}`)
28
- .join(', ');
29
- lines.push(`${chalk.bold('File types:')} ${fileTypes || 'None detected'}`);
30
- lines.push('');
31
- // Frameworks
32
- if (context.frameworks.length > 0) {
33
- lines.push(chalk.bold('Frameworks detected:'));
34
- for (const fw of context.frameworks.slice(0, 5)) {
35
- const confidence = Math.round(fw.confidence * 100);
36
- const color = confidence >= 80 ? chalk.green : confidence >= 50 ? chalk.yellow : chalk.gray;
37
- lines.push(` ${color('\u2022')} ${fw.name} (${color(`${confidence}%`)} confidence)`);
38
- }
39
- lines.push('');
40
- }
41
- else {
42
- lines.push(chalk.dim('No frameworks detected'));
43
- lines.push('');
44
- }
45
- // Dependencies
46
- const prodDeps = context.dependencies.filter((d) => !d.isDev);
47
- const devDeps = context.dependencies.filter((d) => d.isDev);
48
- if (prodDeps.length > 0) {
49
- lines.push(`${chalk.bold('Dependencies')} (${prodDeps.length}):`);
50
- lines.push(` ${prodDeps
51
- .slice(0, 10)
52
- .map((d) => d.name)
53
- .join(', ')}`);
54
- if (prodDeps.length > 10) {
55
- lines.push(chalk.dim(` ... and ${prodDeps.length - 10} more`));
56
- }
57
- lines.push('');
58
- }
59
- if (devDeps.length > 0) {
60
- lines.push(`${chalk.bold('Dev dependencies')} (${devDeps.length}):`);
61
- lines.push(` ${devDeps
62
- .slice(0, 10)
63
- .map((d) => d.name)
64
- .join(', ')}`);
65
- if (devDeps.length > 10) {
66
- lines.push(chalk.dim(` ... and ${devDeps.length - 10} more`));
67
- }
68
- lines.push('');
69
- }
70
- if (prodDeps.length === 0 && devDeps.length === 0) {
71
- lines.push(chalk.dim('No dependencies found (no package.json)'));
72
- lines.push('');
73
- }
74
- // Summary
75
- lines.push(chalk.dim('---'));
76
- const summary = analyzer.getSummary(context);
77
- lines.push(`${chalk.bold('Summary:')} ${summary}`);
78
- lines.push('');
79
- return lines.join('\n');
80
- }
81
- /**
82
- * Format analysis results as JSON
83
- */
84
- function formatAsJson(context) {
85
- const frameworks = context.frameworks.slice(0, 10).map((f) => ({
86
- name: f.name,
87
- confidence: Math.round(f.confidence * 100),
88
- }));
89
- const dependencies = context.dependencies.slice(0, 20).map((d) => ({
90
- name: d.name,
91
- is_dev: d.isDev,
92
- }));
93
- // Get unique import modules (external only)
94
- const uniqueImports = new Set();
95
- for (const imp of context.imports) {
96
- // Skip relative imports
97
- if (!imp.module.startsWith('.') && !imp.module.startsWith('/')) {
98
- // Get base package name (e.g., '@scope/pkg' or 'pkg')
99
- const parts = imp.module.split('/');
100
- const firstPart = parts[0];
101
- const secondPart = parts[1];
102
- if (firstPart !== undefined) {
103
- const basePkg = imp.module.startsWith('@') && secondPart !== undefined
104
- ? `${firstPart}/${secondPart}`
105
- : firstPart;
106
- uniqueImports.add(basePkg);
107
- }
108
- }
109
- }
110
- const output = {
111
- frameworks,
112
- dependencies,
113
- imports: Array.from(uniqueImports).slice(0, 50),
114
- stats: {
115
- total_files: context.stats.totalFiles,
116
- total_lines: context.stats.totalLines,
117
- file_types: context.stats.filesByExtension,
118
- },
119
- timing: {
120
- duration_ms: context.metadata.durationMs,
121
- },
122
- };
123
- return JSON.stringify(output, null, 2);
124
- }
125
- /**
126
- * Run codebase analysis
127
- */
128
- async function runAnalyze(targetPath, options) {
129
- const analyzer = new CodebaseAnalyzer();
130
- // Build analyze options - only add excludeDirs when defined (exactOptionalPropertyTypes)
131
- const analyzeOptions = {
132
- maxFiles: options.maxFiles,
133
- includeDevDeps: options.includeDevDeps,
134
- };
135
- if (options.excludeDirs !== undefined) {
136
- analyzeOptions.excludeDirs = options.excludeDirs;
137
- }
138
- const context = await analyzer.analyze(targetPath, analyzeOptions);
139
- if (options.json) {
140
- console.log(formatAsJson(context));
141
- }
142
- else {
143
- console.log(formatAnalysisResults(context, analyzer));
144
- }
145
- }
146
- // SMI-5128: extracted from inline .action() closure to a named function so
147
- // withTelemetry can wrap it at the export boundary (SMI-5040 coverage gate).
148
- async function analyzeActionImpl(targetPath, opts) {
149
- try {
150
- const maxFiles = parseInt(opts['max-files'], 10);
151
- const excludeDirs = opts['exclude'];
152
- const includeDevDeps = opts['devDeps'] !== false;
153
- const json = opts['json'] === true;
154
- await runAnalyze(targetPath, {
155
- maxFiles,
156
- excludeDirs,
157
- includeDevDeps,
158
- json,
159
- });
160
- }
161
- catch (error) {
162
- if (opts['json']) {
163
- console.error(JSON.stringify({ error: sanitizeError(error) }));
164
- }
165
- else {
166
- console.error(chalk.red('Analysis error:'), sanitizeError(error));
167
- }
168
- process.exit(1);
169
- }
170
- }
171
- export const analyzeAction = withTelemetry(analyzeActionImpl, {
172
- source: 'cli',
173
- extractSkillId: () => 'analyze',
174
- extractFramework: () => 'cli',
175
- });
176
- /**
177
- * Create analyze command
178
- */
179
- export function createAnalyzeCommand() {
180
- const cmd = new Command('analyze')
181
- .description('Analyze a codebase to detect frameworks, dependencies, and patterns')
182
- .argument('[path]', 'Path to the codebase to analyze', '.')
183
- .option('-m, --max-files <number>', 'Maximum files to analyze', '1000')
184
- .option('-e, --exclude <dirs...>', 'Directories to exclude (in addition to defaults)')
185
- .option('--no-dev-deps', 'Exclude dev dependencies from analysis')
186
- .option('-j, --json', 'Output results as JSON')
187
- .action(analyzeAction);
188
- return cmd;
189
- }
190
- export default createAnalyzeCommand;
191
- //# sourceMappingURL=analyze.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- /**
2
- * @fileoverview `sklx audit collisions` — interactive consumer-namespace audit.
3
- * @module @skillsmith/cli/commands/audit-collisions
4
- * @see SMI-4590 Wave 4 PR 5/6 §4 + §9
5
- *
6
- * Sibling of `sklx audit advisories` (Step 0a). Wraps the shared
7
- * `runInventoryAudit` helper from `@skillsmith/mcp-server/audit` (PR 4) so
8
- * composition logic lives in one place.
9
- *
10
- * Flags:
11
- * --deep Opt into the semantic-overlap detector pass.
12
- * --json Emit `RunInventoryAuditResult` as JSON to stdout.
13
- * Bypasses prompts; no file mutation.
14
- * --apply-all Accept every suggestion. Typed-confirmation gate:
15
- * user must type the literal phrase `APPLY ALL`.
16
- * --report-only Write the audit report; no prompts, no apply.
17
- * --reset-ledger Clear `~/.skillsmith/namespace-overrides.json`. Backs
18
- * up to `~/.skillsmith/backups/ledger-<ts>.json` first.
19
- * Typed-confirmation gate: literal phrase `RESET LEDGER`.
20
- *
21
- * Typed-confirmation gates are load-bearing UX (plan §235-239). Prompts use
22
- * `@inquirer/prompts` `input` with strict literal-phrase verification —
23
- * ANY input other than the exact phrase rejects with a non-zero exit.
24
- * No fuzzy match, no normalization, no validate-and-retry loop.
25
- *
26
- * Default-entry tiebreak: `runInventoryAudit` already picks the most-recently-
27
- * installed entry (mtime descending) per `buildRenameSuggestions`. The CLI
28
- * surfaces that target in the prompt copy and lets the user `s`kip to flip
29
- * to the other entry.
30
- */
31
- import { Command } from 'commander';
32
- import { type RenameSuggestion, type RunInventoryAuditResult } from '@skillsmith/mcp-server/audit';
33
- declare const APPLY_ALL_PHRASE = "APPLY ALL";
34
- declare const RESET_LEDGER_PHRASE = "RESET LEDGER";
35
- declare const CONFIRMATION_REJECTED_MESSAGE = "Confirmation phrase mismatch \u2014 operation aborted. The phrase must match exactly (case-sensitive, including spaces).";
36
- interface AuditCollisionsOptions {
37
- deep: boolean;
38
- json: boolean;
39
- applyAll: boolean;
40
- reportOnly: boolean;
41
- resetLedger: boolean;
42
- }
43
- /**
44
- * Read a single line from stdin and require an exact literal match for
45
- * `expected`. Used for the load-bearing `APPLY ALL` and `RESET LEDGER`
46
- * gates per plan §235-239.
47
- *
48
- * Strict equality only — no fuzzy match, no normalization. Lowercase,
49
- * abbreviated, or whitespace-stripped input REJECTS with exit non-zero.
50
- * Tested on both interactive (TTY) and piped-stdin paths.
51
- */
52
- declare function requireConfirmationPhrase(expected: string, prompt: string): Promise<void>;
53
- declare function runResetLedger(): Promise<void>;
54
- interface ApplyOutcome {
55
- collisionId: string;
56
- status: 'applied' | 'skipped' | 'failed';
57
- message: string;
58
- }
59
- declare function applyOneSuggestion(suggestion: RenameSuggestion, auditId: string, customName?: string): Promise<ApplyOutcome>;
60
- declare function runApplyAll(audit: RunInventoryAuditResult): Promise<void>;
61
- declare function runInteractiveLoop(audit: RunInventoryAuditResult): Promise<void>;
62
- declare function runAuditCollisions(options: AuditCollisionsOptions): Promise<void>;
63
- export declare const collisionsAction: (opts: Record<string, boolean | undefined>) => Promise<void>;
64
- export declare function createAuditCollisionsSubcommand(): Command;
65
- export { runAuditCollisions, runResetLedger, runApplyAll, runInteractiveLoop, requireConfirmationPhrase, applyOneSuggestion, APPLY_ALL_PHRASE, RESET_LEDGER_PHRASE, CONFIRMATION_REJECTED_MESSAGE, };
66
- export type { AuditCollisionsOptions, ApplyOutcome };
67
- export default createAuditCollisionsSubcommand;
68
- //# sourceMappingURL=audit-collisions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-collisions.d.ts","sourceRoot":"","sources":["../../../src/commands/audit-collisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAA;AASrC,QAAA,MAAM,gBAAgB,cAAc,CAAA;AACpC,QAAA,MAAM,mBAAmB,iBAAiB,CAAA;AAE1C,QAAA,MAAM,6BAA6B,6HACoF,CAAA;AAMvH,UAAU,sBAAsB;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;CACrB;AAMD;;;;;;;;GAQG;AACH,iBAAe,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxF;AA+BD,iBAAe,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7C;AAMD,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,iBAAe,kBAAkB,CAC/B,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED,iBAAe,WAAW,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxE;AAMD,iBAAe,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgE/E;AA+BD,iBAAe,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChF;AAkCD,eAAO,MAAM,gBAAgB,8DAI3B,CAAA;AAEF,wBAAgB,+BAA+B,IAAI,OAAO,CAoBzD;AAGD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,GAC9B,CAAA;AACD,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAA;AAEpD,eAAe,+BAA+B,CAAA"}