@skillsmith/cli 0.7.1 → 0.7.3

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 +44039 -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 -283
  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 -97
  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,179 +0,0 @@
1
- /**
2
- * @fileoverview `skillsmith inventory` action implementations + telemetry wrappers.
3
- * @module @skillsmith/cli/commands/inventory.action
4
- * @see SMI-5392 Wave 3 — CLI `inventory push/status/forget-device` subcommands
5
- * (umbrella SMI-5382). Follows the SMI-5128 sibling-split convention: the run*
6
- * business logic + typed-error handling + withTelemetry-wrapped exports live here;
7
- * the commander factory stays in inventory.ts.
8
- *
9
- * Error-mapping contract for `push`:
10
- * InventoryAuthError → "Not logged in. Run `skillsmith login` and try again."
11
- * InventoryConflictError → device already owned; instruct forget-device
12
- * InventoryValidationError → err.message (server-supplied reason)
13
- * InventoryUploadError → "Inventory upload failed. " + err.message
14
- */
15
- import chalk from 'chalk';
16
- import { pushInventory, getDeviceId, forgetDevice, getLastInventoryPushAt, isInventorySyncDisabledLocally, InventoryAuthError, InventoryConflictError, InventoryValidationError, InventoryUploadError, } from '@skillsmith/core';
17
- import { enumerateHarnessPresence } from '@skillsmith/core/install';
18
- import { withTelemetry } from '@skillsmith/core/telemetry';
19
- import { sanitizeError } from '../utils/sanitize.js';
20
- import { getInstalledSkillsPerHarness } from '../utils/skills-directory.js';
21
- import { VERSION } from '../version.js';
22
- // ---------------------------------------------------------------------------
23
- // push
24
- // ---------------------------------------------------------------------------
25
- /**
26
- * Build and upload this device's cross-harness skill inventory snapshot.
27
- *
28
- * The local opt-out (`SKILLSMITH_INVENTORY_DISABLE`) and the server-side
29
- * consent-disabled path are both rendered as informational messages rather
30
- * than errors.
31
- *
32
- * @see SMI-5392
33
- */
34
- export async function runPush() {
35
- const r = await pushInventory({ cliVersion: VERSION });
36
- if (r.reason === 'disabled_locally') {
37
- console.log(chalk.dim('Inventory sync disabled locally via SKILLSMITH_INVENTORY_DISABLE; nothing sent.'));
38
- return;
39
- }
40
- if (!r.applied && r.reason === 'consent_disabled') {
41
- console.log(chalk.yellow('Inventory sync is OFF for your account. Enable it in account settings; nothing stored.'));
42
- return;
43
- }
44
- if (r.applied) {
45
- console.log(chalk.green(`Pushed for device ${r.device_id ?? '(unknown)'}: ` +
46
- `${r.skills_present ?? 0} present, ${r.skills_absent ?? 0} marked absent.`));
47
- return;
48
- }
49
- // Defensive: unexpected ok/reason combo — relay raw fields.
50
- console.log(`Inventory push result: ok=${String(r.ok)} reason=${r.reason ?? '(none)'}`);
51
- }
52
- /** @internal Exported for unit tests. */
53
- export async function inventoryPushActionImpl() {
54
- try {
55
- await runPush();
56
- }
57
- catch (err) {
58
- if (err instanceof InventoryAuthError) {
59
- console.error(chalk.red('Not logged in. Run `skillsmith login` and try again.'));
60
- }
61
- else if (err instanceof InventoryConflictError) {
62
- console.error(chalk.red('This device is registered to another account. ' +
63
- 'Run `skillsmith inventory forget-device` and push again.'));
64
- }
65
- else if (err instanceof InventoryValidationError) {
66
- console.error(chalk.red(err.message));
67
- }
68
- else if (err instanceof InventoryUploadError) {
69
- console.error(chalk.red('Inventory upload failed. ' + err.message));
70
- }
71
- else {
72
- console.error(chalk.red('Error:'), sanitizeError(err));
73
- }
74
- process.exit(1);
75
- }
76
- }
77
- export const inventoryPushAction = withTelemetry(inventoryPushActionImpl, {
78
- source: 'cli',
79
- extractSkillId: () => 'inventory push',
80
- extractFramework: () => 'cli',
81
- });
82
- // ---------------------------------------------------------------------------
83
- // status (read-only, no network)
84
- // ---------------------------------------------------------------------------
85
- /**
86
- * Print a local inventory snapshot: device ID, last-push timestamp, local
87
- * opt-out flag, harness presence, and per-harness skill counts.
88
- *
89
- * @param opts.verbose - When true, list individual skill IDs under each harness.
90
- * @see SMI-5392
91
- */
92
- export async function runStatus(opts) {
93
- const deviceId = getDeviceId();
94
- const lastPush = getLastInventoryPushAt();
95
- const syncDisabled = isInventorySyncDisabledLocally();
96
- const harnessPresence = enumerateHarnessPresence();
97
- const allSkills = await getInstalledSkillsPerHarness();
98
- // Group skill counts by harness key.
99
- const countByHarness = new Map();
100
- for (const entry of allSkills) {
101
- const key = String(entry.harness);
102
- countByHarness.set(key, (countByHarness.get(key) ?? 0) + 1);
103
- }
104
- console.log(chalk.bold('Skillsmith Inventory Status'));
105
- console.log();
106
- console.log(` Device ID: ${deviceId ? chalk.cyan(deviceId) : chalk.dim('(not yet registered — a push will create one)')}`);
107
- console.log(` Last push: ${lastPush ? chalk.dim(lastPush) : chalk.dim('never')}`);
108
- console.log(` Local opt-out: ${syncDisabled ? chalk.yellow('yes (SKILLSMITH_INVENTORY_DISABLE set)') : chalk.dim('no')}`);
109
- // Local (./.claude/skills) skills count.
110
- const localCount = countByHarness.get('local') ?? 0;
111
- if (localCount > 0) {
112
- console.log(` Local skills: ${chalk.dim(`${localCount} skill${localCount === 1 ? '' : 's'} in ./.claude/skills (repo-local — not synced to your account)`)}`);
113
- if (opts?.verbose) {
114
- for (const s of allSkills.filter((e) => e.harness === 'local')) {
115
- console.log(` - ${s.skillId}`);
116
- }
117
- }
118
- }
119
- console.log();
120
- console.log(' Harness presence:');
121
- for (const { harness, present } of harnessPresence) {
122
- const count = countByHarness.get(harness) ?? 0;
123
- const badge = present ? chalk.green('yes') : chalk.dim('no ');
124
- const skillStr = present ? chalk.dim(`${count} skill${count === 1 ? '' : 's'}`) : '';
125
- console.log(` ${String(harness).padEnd(14)} ${badge} ${skillStr}`);
126
- if (opts?.verbose && present) {
127
- for (const s of allSkills.filter((e) => e.harness === harness)) {
128
- console.log(` - ${s.skillId}`);
129
- }
130
- }
131
- }
132
- }
133
- /** @internal Exported for unit tests. */
134
- export async function inventoryStatusActionImpl(options) {
135
- try {
136
- await runStatus(options);
137
- }
138
- catch (err) {
139
- console.error(chalk.red('Error:'), sanitizeError(err));
140
- process.exit(1);
141
- }
142
- }
143
- export const inventoryStatusAction = withTelemetry(inventoryStatusActionImpl, {
144
- source: 'cli',
145
- extractSkillId: () => 'inventory status',
146
- extractFramework: () => 'cli',
147
- });
148
- // ---------------------------------------------------------------------------
149
- // forget-device
150
- // ---------------------------------------------------------------------------
151
- /**
152
- * Clear the locally-persisted device registration so that the next push
153
- * registers a fresh device UUID.
154
- *
155
- * @see SMI-5392
156
- */
157
- export async function runForgetDevice() {
158
- const had = getDeviceId();
159
- forgetDevice();
160
- console.log(chalk.green('Device registration cleared.'));
161
- console.log(chalk.dim(` Was: ${had ?? '(none)'}`));
162
- console.log(chalk.dim(' The next push will register a fresh device.'));
163
- }
164
- /** @internal Exported for unit tests. */
165
- export async function inventoryForgetDeviceActionImpl() {
166
- try {
167
- await runForgetDevice();
168
- }
169
- catch (err) {
170
- console.error(chalk.red('Error:'), sanitizeError(err));
171
- process.exit(1);
172
- }
173
- }
174
- export const inventoryForgetDeviceAction = withTelemetry(inventoryForgetDeviceActionImpl, {
175
- source: 'cli',
176
- extractSkillId: () => 'inventory forget-device',
177
- extractFramework: () => 'cli',
178
- });
179
- //# sourceMappingURL=inventory.action.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inventory.action.js","sourceRoot":"","sources":["../../../src/commands/inventory.action.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * @fileoverview Tests for `skillsmith inventory` subcommands.
3
- * @module @skillsmith/cli/commands/inventory.action.test
4
- * @see SMI-5392 Wave 3 — CLI inventory push/status/forget-device (umbrella SMI-5382)
5
- *
6
- * Covers:
7
- * push: renders applied / consent-off / disabled-locally output correctly
8
- * push: maps each of the 4 typed errors to console.error + process.exit(1)
9
- * status: prints device ID, last-push, opt-out flag, and harness presence
10
- * forget-device: calls core forgetDevice and prints confirmation with prior ID
11
- *
12
- * instanceof strategy:
13
- * @skillsmith/core is mocked with inline class definitions for the four error
14
- * types. Because vi.mock factories are hoisted, both the source module and the
15
- * test file receive the SAME class reference — so `err instanceof InventoryAuthError`
16
- * inside inventoryPushActionImpl matches the errors thrown in tests.
17
- */
18
- export {};
19
- //# sourceMappingURL=inventory.action.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inventory.action.test.d.ts","sourceRoot":"","sources":["../../../src/commands/inventory.action.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -1,371 +0,0 @@
1
- /**
2
- * @fileoverview Tests for `skillsmith inventory` subcommands.
3
- * @module @skillsmith/cli/commands/inventory.action.test
4
- * @see SMI-5392 Wave 3 — CLI inventory push/status/forget-device (umbrella SMI-5382)
5
- *
6
- * Covers:
7
- * push: renders applied / consent-off / disabled-locally output correctly
8
- * push: maps each of the 4 typed errors to console.error + process.exit(1)
9
- * status: prints device ID, last-push, opt-out flag, and harness presence
10
- * forget-device: calls core forgetDevice and prints confirmation with prior ID
11
- *
12
- * instanceof strategy:
13
- * @skillsmith/core is mocked with inline class definitions for the four error
14
- * types. Because vi.mock factories are hoisted, both the source module and the
15
- * test file receive the SAME class reference — so `err instanceof InventoryAuthError`
16
- * inside inventoryPushActionImpl matches the errors thrown in tests.
17
- */
18
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
19
- // ---------------------------------------------------------------------------
20
- // @skillsmith/core/telemetry — passthrough so withTelemetry has no side effects
21
- // ---------------------------------------------------------------------------
22
- vi.mock('@skillsmith/core/telemetry', () => ({
23
- withTelemetry: (fn) => fn,
24
- }));
25
- // ---------------------------------------------------------------------------
26
- // @skillsmith/core — mock functions; inline class definitions for error types
27
- // so instanceof checks work (same reference in source + test).
28
- // ---------------------------------------------------------------------------
29
- vi.mock('@skillsmith/core', () => {
30
- class InventoryAuthError extends Error {
31
- constructor(msg = 'Not authenticated. Run `skillsmith login` and try again.') {
32
- super(msg);
33
- this.name = 'InventoryAuthError';
34
- }
35
- }
36
- class InventoryConflictError extends Error {
37
- constructor(msg = 'device_conflict') {
38
- super(msg);
39
- this.name = 'InventoryConflictError';
40
- }
41
- }
42
- class InventoryValidationError extends Error {
43
- constructor(msg = 'invalid payload') {
44
- super(msg);
45
- this.name = 'InventoryValidationError';
46
- }
47
- }
48
- class InventoryUploadError extends Error {
49
- constructor(msg) {
50
- super(msg);
51
- this.name = 'InventoryUploadError';
52
- }
53
- }
54
- return {
55
- pushInventory: vi.fn(),
56
- getDeviceId: vi.fn(),
57
- forgetDevice: vi.fn(),
58
- getLastInventoryPushAt: vi.fn(),
59
- isInventorySyncDisabledLocally: vi.fn(),
60
- InventoryAuthError,
61
- InventoryConflictError,
62
- InventoryValidationError,
63
- InventoryUploadError,
64
- };
65
- });
66
- // ---------------------------------------------------------------------------
67
- // @skillsmith/core/install — sync function, mock to return a fixed presence set
68
- // ---------------------------------------------------------------------------
69
- vi.mock('@skillsmith/core/install', () => ({
70
- enumerateHarnessPresence: vi.fn(() => [
71
- { harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
72
- { harness: 'cursor', present: false, path: '/mock/.cursor/skills' },
73
- ]),
74
- }));
75
- // ---------------------------------------------------------------------------
76
- // CLI utilities
77
- // ---------------------------------------------------------------------------
78
- vi.mock('../utils/skills-directory.js', () => ({
79
- getInstalledSkillsPerHarness: vi.fn(() => Promise.resolve([])),
80
- }));
81
- vi.mock('../version.js', () => ({ VERSION: '0.0.0-test' }));
82
- // ---------------------------------------------------------------------------
83
- // Import after mocks are registered
84
- // ---------------------------------------------------------------------------
85
- import { runPush, runStatus, runForgetDevice, inventoryPushActionImpl, inventoryStatusActionImpl, inventoryForgetDeviceActionImpl, } from './inventory.action.js';
86
- import { pushInventory, getDeviceId, forgetDevice, getLastInventoryPushAt, isInventorySyncDisabledLocally, InventoryAuthError, InventoryConflictError, InventoryValidationError, InventoryUploadError, } from '@skillsmith/core';
87
- import { enumerateHarnessPresence } from '@skillsmith/core/install';
88
- import { getInstalledSkillsPerHarness } from '../utils/skills-directory.js';
89
- const pushInventoryMock = vi.mocked(pushInventory);
90
- const getDeviceIdMock = vi.mocked(getDeviceId);
91
- const forgetDeviceMock = vi.mocked(forgetDevice);
92
- const getLastInventoryPushAtMock = vi.mocked(getLastInventoryPushAt);
93
- const isInventorySyncDisabledLocallyMock = vi.mocked(isInventorySyncDisabledLocally);
94
- const enumerateHarnessPresenceMock = vi.mocked(enumerateHarnessPresence);
95
- const getInstalledSkillsPerHarnessMock = vi.mocked(getInstalledSkillsPerHarness);
96
- // ---------------------------------------------------------------------------
97
- // Console capture helper
98
- // ---------------------------------------------------------------------------
99
- function captureConsole() {
100
- const log = [];
101
- const err = [];
102
- vi.spyOn(console, 'log').mockImplementation((...args) => log.push(args.join(' ')));
103
- vi.spyOn(console, 'error').mockImplementation((...args) => err.push(args.join(' ')));
104
- return {
105
- log,
106
- err,
107
- all: () => [...log, ...err],
108
- };
109
- }
110
- // ---------------------------------------------------------------------------
111
- // Setup / teardown
112
- // ---------------------------------------------------------------------------
113
- beforeEach(() => {
114
- vi.clearAllMocks();
115
- // Defaults so tests that don't care about these still get sensible values.
116
- getDeviceIdMock.mockReturnValue('test-device-uuid-1234');
117
- getLastInventoryPushAtMock.mockReturnValue(undefined);
118
- isInventorySyncDisabledLocallyMock.mockReturnValue(false);
119
- getInstalledSkillsPerHarnessMock.mockResolvedValue([]);
120
- });
121
- afterEach(() => {
122
- vi.restoreAllMocks();
123
- });
124
- // ---------------------------------------------------------------------------
125
- // push — happy-path rendering
126
- // ---------------------------------------------------------------------------
127
- describe('inventory push — happy paths', () => {
128
- it('prints dim note when sync is locally disabled (disabled_locally)', async () => {
129
- pushInventoryMock.mockResolvedValue({
130
- ok: true,
131
- applied: false,
132
- reason: 'disabled_locally',
133
- });
134
- const cap = captureConsole();
135
- await runPush();
136
- const output = cap.all().join('\n');
137
- expect(output).toContain('SKILLSMITH_INVENTORY_DISABLE');
138
- expect(output).toContain('nothing sent');
139
- });
140
- it('prints yellow consent-off message when server returns consent_disabled', async () => {
141
- pushInventoryMock.mockResolvedValue({
142
- ok: true,
143
- applied: false,
144
- reason: 'consent_disabled',
145
- });
146
- const cap = captureConsole();
147
- await runPush();
148
- const output = cap.all().join('\n');
149
- expect(output).toContain('sync is OFF');
150
- expect(output).toContain('nothing stored');
151
- });
152
- it('prints green success line with device_id and counts when applied=true', async () => {
153
- pushInventoryMock.mockResolvedValue({
154
- ok: true,
155
- applied: true,
156
- device_id: 'abc-device-123',
157
- skills_present: 7,
158
- skills_absent: 2,
159
- });
160
- const cap = captureConsole();
161
- await runPush();
162
- const output = cap.all().join('\n');
163
- expect(output).toContain('abc-device-123');
164
- expect(output).toContain('7 present');
165
- expect(output).toContain('2 marked absent');
166
- });
167
- it('prints defensive raw result for unexpected ok/reason combo', async () => {
168
- pushInventoryMock.mockResolvedValue({ ok: false, applied: false, reason: 'unknown_reason' });
169
- const cap = captureConsole();
170
- await runPush();
171
- const output = cap.all().join('\n');
172
- expect(output).toContain('unknown_reason');
173
- });
174
- });
175
- // ---------------------------------------------------------------------------
176
- // push — typed error mapping → process.exit(1)
177
- // ---------------------------------------------------------------------------
178
- describe('inventory push — typed error mapping', () => {
179
- function mockExit() {
180
- return vi.spyOn(process, 'exit').mockImplementation((code) => {
181
- throw new Error(`process.exit(${String(code)})`);
182
- });
183
- }
184
- it('maps InventoryAuthError → "Not logged in" message + exit(1)', async () => {
185
- const exitSpy = mockExit();
186
- pushInventoryMock.mockRejectedValue(new InventoryAuthError());
187
- const cap = captureConsole();
188
- await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
189
- expect(exitSpy).toHaveBeenCalledWith(1);
190
- expect(cap.err.join(' ')).toContain('Not logged in');
191
- });
192
- it('maps InventoryConflictError → "forget-device" hint + exit(1)', async () => {
193
- const exitSpy = mockExit();
194
- pushInventoryMock.mockRejectedValue(new InventoryConflictError());
195
- const cap = captureConsole();
196
- await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
197
- expect(exitSpy).toHaveBeenCalledWith(1);
198
- expect(cap.err.join(' ')).toContain('forget-device');
199
- });
200
- it('maps InventoryValidationError → server message + exit(1)', async () => {
201
- const exitSpy = mockExit();
202
- pushInventoryMock.mockRejectedValue(new InventoryValidationError('skill_id_too_long'));
203
- const cap = captureConsole();
204
- await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
205
- expect(exitSpy).toHaveBeenCalledWith(1);
206
- expect(cap.err.join(' ')).toContain('skill_id_too_long');
207
- });
208
- it('maps InventoryUploadError → "Inventory upload failed." prefix + exit(1)', async () => {
209
- const exitSpy = mockExit();
210
- pushInventoryMock.mockRejectedValue(new InventoryUploadError('HTTP 503'));
211
- const cap = captureConsole();
212
- await expect(inventoryPushActionImpl()).rejects.toThrow('process.exit(1)');
213
- expect(exitSpy).toHaveBeenCalledWith(1);
214
- expect(cap.err.join(' ')).toContain('Inventory upload failed.');
215
- expect(cap.err.join(' ')).toContain('HTTP 503');
216
- });
217
- });
218
- // ---------------------------------------------------------------------------
219
- // status — read-only local view
220
- // ---------------------------------------------------------------------------
221
- describe('inventory status', () => {
222
- it('shows device ID when registered', async () => {
223
- getDeviceIdMock.mockReturnValue('my-stable-device-uuid');
224
- const cap = captureConsole();
225
- await runStatus();
226
- expect(cap.log.join('\n')).toContain('my-stable-device-uuid');
227
- });
228
- it('shows placeholder when device not yet registered', async () => {
229
- getDeviceIdMock.mockReturnValue(undefined);
230
- const cap = captureConsole();
231
- await runStatus();
232
- expect(cap.log.join('\n')).toContain('not yet registered');
233
- });
234
- it('shows "never" when no push has occurred', async () => {
235
- getLastInventoryPushAtMock.mockReturnValue(undefined);
236
- const cap = captureConsole();
237
- await runStatus();
238
- expect(cap.log.join('\n')).toContain('never');
239
- });
240
- it('shows last push timestamp when present', async () => {
241
- getLastInventoryPushAtMock.mockReturnValue('2026-01-15T10:00:00.000Z');
242
- const cap = captureConsole();
243
- await runStatus();
244
- expect(cap.log.join('\n')).toContain('2026-01-15T10:00:00.000Z');
245
- });
246
- it('shows opt-out warning when SKILLSMITH_INVENTORY_DISABLE is set', async () => {
247
- isInventorySyncDisabledLocallyMock.mockReturnValue(true);
248
- const cap = captureConsole();
249
- await runStatus();
250
- expect(cap.log.join('\n')).toContain('SKILLSMITH_INVENTORY_DISABLE');
251
- });
252
- it('lists harness presence from enumerateHarnessPresence', async () => {
253
- enumerateHarnessPresenceMock.mockReturnValue([
254
- { harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
255
- { harness: 'cursor', present: false, path: '/mock/.cursor/skills' },
256
- ]);
257
- const cap = captureConsole();
258
- await runStatus();
259
- const out = cap.log.join('\n');
260
- expect(out).toContain('claude-code');
261
- expect(out).toContain('cursor');
262
- });
263
- it('shows skill count for present harnesses', async () => {
264
- enumerateHarnessPresenceMock.mockReturnValue([
265
- { harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
266
- ]);
267
- getInstalledSkillsPerHarnessMock.mockResolvedValue([
268
- {
269
- harness: 'claude-code',
270
- skillId: 'foo/bar',
271
- version: '1.0.0',
272
- contentHash: null,
273
- path: '/mock/foo-bar',
274
- },
275
- {
276
- harness: 'claude-code',
277
- skillId: 'baz/qux',
278
- version: null,
279
- contentHash: null,
280
- path: '/mock/baz-qux',
281
- },
282
- ]);
283
- const cap = captureConsole();
284
- await runStatus();
285
- expect(cap.log.join('\n')).toContain('2 skills');
286
- });
287
- it('lists skill IDs under each harness when --verbose is passed', async () => {
288
- enumerateHarnessPresenceMock.mockReturnValue([
289
- { harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
290
- ]);
291
- getInstalledSkillsPerHarnessMock.mockResolvedValue([
292
- {
293
- harness: 'claude-code',
294
- skillId: 'author/my-skill',
295
- version: '1.0.0',
296
- contentHash: null,
297
- path: '/mock/my-skill',
298
- },
299
- ]);
300
- const cap = captureConsole();
301
- await runStatus({ verbose: true });
302
- expect(cap.log.join('\n')).toContain('author/my-skill');
303
- });
304
- it('does not list skill IDs when --verbose is not passed', async () => {
305
- enumerateHarnessPresenceMock.mockReturnValue([
306
- { harness: 'claude-code', present: true, path: '/mock/.claude/skills' },
307
- ]);
308
- getInstalledSkillsPerHarnessMock.mockResolvedValue([
309
- {
310
- harness: 'claude-code',
311
- skillId: 'author/hidden-skill',
312
- version: null,
313
- contentHash: null,
314
- path: '/mock/hidden',
315
- },
316
- ]);
317
- const cap = captureConsole();
318
- await runStatus({ verbose: false });
319
- expect(cap.log.join('\n')).not.toContain('author/hidden-skill');
320
- });
321
- it('passes through errors from getInstalledSkillsPerHarness to inventoryStatusActionImpl', async () => {
322
- getInstalledSkillsPerHarnessMock.mockRejectedValue(new Error('disk error'));
323
- const exitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
324
- throw new Error(`process.exit(${String(code)})`);
325
- });
326
- captureConsole();
327
- await expect(inventoryStatusActionImpl({})).rejects.toThrow('process.exit(1)');
328
- expect(exitSpy).toHaveBeenCalledWith(1);
329
- });
330
- });
331
- // ---------------------------------------------------------------------------
332
- // forget-device
333
- // ---------------------------------------------------------------------------
334
- describe('inventory forget-device', () => {
335
- it('calls core forgetDevice', async () => {
336
- getDeviceIdMock.mockReturnValue('old-device-uuid');
337
- captureConsole();
338
- await runForgetDevice();
339
- expect(forgetDeviceMock).toHaveBeenCalledTimes(1);
340
- });
341
- it('confirms the previous device ID in output', async () => {
342
- getDeviceIdMock.mockReturnValue('previous-device-abc');
343
- const cap = captureConsole();
344
- await runForgetDevice();
345
- expect(cap.log.join('\n')).toContain('previous-device-abc');
346
- });
347
- it('shows "(none)" when there was no device ID to forget', async () => {
348
- getDeviceIdMock.mockReturnValue(undefined);
349
- const cap = captureConsole();
350
- await runForgetDevice();
351
- expect(cap.log.join('\n')).toContain('(none)');
352
- });
353
- it('mentions fresh device on next push', async () => {
354
- getDeviceIdMock.mockReturnValue('any-device');
355
- const cap = captureConsole();
356
- await runForgetDevice();
357
- expect(cap.log.join('\n')).toContain('fresh device');
358
- });
359
- it('passes through errors to inventoryForgetDeviceActionImpl + exit(1)', async () => {
360
- forgetDeviceMock.mockImplementation(() => {
361
- throw new Error('config write error');
362
- });
363
- const exitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
364
- throw new Error(`process.exit(${String(code)})`);
365
- });
366
- captureConsole();
367
- await expect(inventoryForgetDeviceActionImpl()).rejects.toThrow('process.exit(1)');
368
- expect(exitSpy).toHaveBeenCalledWith(1);
369
- });
370
- });
371
- //# sourceMappingURL=inventory.action.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inventory.action.test.js","sourceRoot":"","sources":["../../../src/commands/inventory.action.test.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * @fileoverview `skillsmith inventory` command group — cross-harness inventory management.
3
- * @module @skillsmith/cli/commands/inventory
4
- * @see SMI-5392 Wave 3 — CLI `inventory` subcommands (umbrella SMI-5382).
5
- * @see SMI-5128 sibling-split convention — action impls + withTelemetry wrappers
6
- * live in inventory.action.ts; this file retains only the commander factory.
7
- *
8
- * Subcommands:
9
- * skillsmith inventory push
10
- * skillsmith inventory status [--verbose]
11
- * skillsmith inventory forget-device
12
- */
13
- import { Command } from 'commander';
14
- /**
15
- * Build and return the `inventory` commander group with its three subcommands.
16
- *
17
- * @see SMI-5392
18
- */
19
- export declare function createInventoryCommand(): Command;
20
- export { runPush, runStatus, runForgetDevice, inventoryPushActionImpl, inventoryStatusActionImpl, inventoryForgetDeviceActionImpl, } from './inventory.action.js';
21
- //# sourceMappingURL=inventory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../src/commands/inventory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAsBhD;AAGD,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,uBAAuB,CAAA"}