@skillsmith/cli 0.7.2 → 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 +5 -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 -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,166 +0,0 @@
1
- /**
2
- * @fileoverview SMI-5407 end-to-end — `sklx audit sources --apply` write paths.
3
- *
4
- * Real temp manifest (redirected via $HOME) + real temp SQLite. Covers:
5
- * 3. Collision safety — ambiguous low match is NOT auto-written; `--set` then
6
- * writes the user-specified owner/skill-name id + https source.
7
- * 6. Idempotency + never-clobber — a second `--apply` is a no-op; a pre-existing
8
- * healthy entry with a differing source is left untouched.
9
- * 8. --write-frontmatter churn guard — never writes `repository:` into a `.git`
10
- * dir or when one already exists; DOES write into a non-git dir lacking it.
11
- */
12
- import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
13
- import * as fs from 'node:fs';
14
- import * as os from 'node:os';
15
- import * as path from 'node:path';
16
- import { writeSourceFixture, seedSkillsDb, skillMd, FIXTURE_DIRS, } from './utils/source-recovery-fixture.js';
17
- let runAuditSources;
18
- let tempHome = '';
19
- let skillsRoot = '';
20
- let manifestPath = '';
21
- let originalHome;
22
- let dbCounter = 0;
23
- function makeOpts(o) {
24
- return {
25
- skillsRoot: o.skillsRoot ?? skillsRoot,
26
- apply: o.apply ?? false,
27
- yes: o.yes ?? false,
28
- set: o.set,
29
- minConfidence: o.minConfidence ?? 'high',
30
- json: o.json ?? false,
31
- embedding: false,
32
- catalogHint: false,
33
- writeFrontmatter: o.writeFrontmatter ?? false,
34
- forceWriteFrontmatter: o.forceWriteFrontmatter ?? false,
35
- db: o.db,
36
- };
37
- }
38
- function readManifest() {
39
- return JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
40
- }
41
- function entry(name) {
42
- return readManifest().installedSkills[name];
43
- }
44
- async function seededDb() {
45
- const dbPath = path.join(tempHome, `cands-${dbCounter++}.db`);
46
- await seedSkillsDb(dbPath, [
47
- { id: 'coll-1', name: FIXTURE_DIRS.collision, repoUrl: 'https://github.com/coll1/repoA' },
48
- { id: 'coll-2', name: FIXTURE_DIRS.collision, repoUrl: 'https://github.com/coll2/repoB' },
49
- ]);
50
- return dbPath;
51
- }
52
- async function emptyDb() {
53
- const dbPath = path.join(tempHome, `empty-${dbCounter++}.db`);
54
- await seedSkillsDb(dbPath, []);
55
- return dbPath;
56
- }
57
- beforeAll(async () => {
58
- originalHome = process.env['HOME'];
59
- tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-apply-home-'));
60
- process.env['HOME'] = tempHome;
61
- skillsRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-apply-skills-'));
62
- manifestPath = path.join(tempHome, '.skillsmith', 'manifest.json');
63
- writeSourceFixture(skillsRoot);
64
- ({ runAuditSources } = await import('../../src/commands/audit-sources.action.js'));
65
- });
66
- afterAll(() => {
67
- if (originalHome === undefined)
68
- delete process.env['HOME'];
69
- else
70
- process.env['HOME'] = originalHome;
71
- for (const dir of [tempHome, skillsRoot]) {
72
- if (dir)
73
- fs.rmSync(dir, { recursive: true, force: true });
74
- }
75
- });
76
- beforeEach(() => {
77
- fs.rmSync(manifestPath, { force: true });
78
- });
79
- describe('SMI-5407 e2e — collision safety (scenario 3)', () => {
80
- it('does not auto-write an ambiguous (low) collision, then writes it via --set', async () => {
81
- const db = await seededDb();
82
- // Default min high: the low collision match must NOT land in the manifest.
83
- await runAuditSources(makeOpts({ db, apply: true, yes: true }));
84
- expect(entry(FIXTURE_DIRS.collision)).toBeUndefined();
85
- // git + plugin (exact/high) DID land.
86
- expect(entry(FIXTURE_DIRS.git)).toBeDefined();
87
- expect(entry(FIXTURE_DIRS.plugin)).toBeDefined();
88
- // --set resolves it explicitly at user-specified confidence.
89
- await runAuditSources(makeOpts({
90
- db,
91
- apply: true,
92
- yes: true,
93
- set: [`${FIXTURE_DIRS.collision}=picked-owner/picked-repo`],
94
- }));
95
- const resolved = entry(FIXTURE_DIRS.collision);
96
- expect(resolved).toBeDefined();
97
- expect(resolved.id).toBe(`picked-owner/${FIXTURE_DIRS.collision}`);
98
- expect(resolved.source).toBe('https://github.com/picked-owner/picked-repo');
99
- });
100
- });
101
- describe('SMI-5407 e2e — idempotency + never-clobber (scenario 6)', () => {
102
- it('a second --apply writes nothing and leaves the manifest byte-identical', async () => {
103
- const db = await emptyDb();
104
- await runAuditSources(makeOpts({ db, apply: true, yes: true }));
105
- const afterFirst = fs.readFileSync(manifestPath, 'utf-8');
106
- await runAuditSources(makeOpts({ db, apply: true, yes: true }));
107
- const afterSecond = fs.readFileSync(manifestPath, 'utf-8');
108
- expect(afterSecond).toBe(afterFirst);
109
- });
110
- it('never clobbers a healthy pre-existing entry whose source differs', async () => {
111
- const preExisting = {
112
- version: '1.0.0',
113
- installedSkills: {
114
- [FIXTURE_DIRS.git]: {
115
- id: 'preexisting-id',
116
- name: FIXTURE_DIRS.git,
117
- version: '9.9.9',
118
- source: 'https://github.com/someoneelse/different',
119
- installPath: path.join(skillsRoot, FIXTURE_DIRS.git),
120
- installedAt: '2020-01-01T00:00:00.000Z',
121
- lastUpdated: '2020-01-01T00:00:00.000Z',
122
- },
123
- },
124
- };
125
- fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
126
- fs.writeFileSync(manifestPath, JSON.stringify(preExisting, null, 2));
127
- await runAuditSources(makeOpts({ db: await emptyDb(), apply: true, yes: true }));
128
- const git = entry(FIXTURE_DIRS.git);
129
- expect(git.id).toBe('preexisting-id');
130
- expect(git.source).toBe('https://github.com/someoneelse/different');
131
- expect(git.version).toBe('9.9.9');
132
- });
133
- });
134
- describe('SMI-5407 e2e — --write-frontmatter churn guard (scenario 8)', () => {
135
- it('writes repository: only into non-git dirs lacking one', async () => {
136
- // Isolated, mutable fixture (write-frontmatter rewrites SKILL.md).
137
- const root = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-fm-'));
138
- writeSourceFixture(root); // provides git-skill (.git) + plugin-skill (plugin.json)
139
- const nosrc = path.join(root, 'nosrc-skill');
140
- fs.mkdirSync(nosrc, { recursive: true });
141
- fs.writeFileSync(path.join(nosrc, 'SKILL.md'), skillMd('nosrc-skill'));
142
- const hasrepo = path.join(root, 'hasrepo-skill');
143
- fs.mkdirSync(hasrepo, { recursive: true });
144
- fs.writeFileSync(path.join(hasrepo, 'SKILL.md'), skillMd('hasrepo-skill', 'repository: https://github.com/existing/existing'));
145
- const gitBefore = fs.readFileSync(path.join(root, FIXTURE_DIRS.git, 'SKILL.md'), 'utf-8');
146
- const hasrepoBefore = fs.readFileSync(path.join(hasrepo, 'SKILL.md'), 'utf-8');
147
- await runAuditSources(makeOpts({
148
- db: await emptyDb(),
149
- skillsRoot: root,
150
- apply: true,
151
- yes: true,
152
- writeFrontmatter: true,
153
- forceWriteFrontmatter: true,
154
- set: ['nosrc-skill=me/no', 'hasrepo-skill=me/has'],
155
- }));
156
- // .git dir: never rewritten.
157
- expect(fs.readFileSync(path.join(root, FIXTURE_DIRS.git, 'SKILL.md'), 'utf-8')).toBe(gitBefore);
158
- // Non-git, no existing repository: gets the recovered source written in.
159
- expect(fs.readFileSync(path.join(root, FIXTURE_DIRS.plugin, 'SKILL.md'), 'utf-8')).toContain('repository: https://github.com/o/r');
160
- expect(fs.readFileSync(path.join(nosrc, 'SKILL.md'), 'utf-8')).toContain('repository: https://github.com/me/no');
161
- // Already-present repository: never duplicated / overwritten.
162
- expect(fs.readFileSync(path.join(hasrepo, 'SKILL.md'), 'utf-8')).toBe(hasrepoBefore);
163
- fs.rmSync(root, { recursive: true, force: true });
164
- });
165
- });
166
- //# sourceMappingURL=audit-sources-apply.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-sources-apply.test.js","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-apply.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * @fileoverview SMI-5407 end-to-end — `sklx audit sources` recovery (read paths).
3
- *
4
- * Real temp filesystem fixture + real temp SQLite (seeded `skills`) + real temp
5
- * manifest (redirected via $HOME). No value-baked mocks: the only injected edge
6
- * is network absence (an empty / unseeded candidate DB). Covers:
7
- * 1. CLI full-path `--json` — per-dir method/confidence/status; no manifest write.
8
- * 4. ssh-vs-https — both git fixtures normalize to one owner/repo + parse via buildRawUrl.
9
- * 7. Offline degradation — empty DB: git+plugin resolve, registry/collision unknown, no throw.
10
- *
11
- * $HOME is set BEFORE the dynamic import of the action module so its
12
- * module-level MANIFEST_PATH (utils/manifest.ts) freezes onto the temp home.
13
- */
14
- export {};
15
- //# sourceMappingURL=audit-sources-recovery.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-sources-recovery.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-recovery.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -1,179 +0,0 @@
1
- /**
2
- * @fileoverview SMI-5407 end-to-end — `sklx audit sources` recovery (read paths).
3
- *
4
- * Real temp filesystem fixture + real temp SQLite (seeded `skills`) + real temp
5
- * manifest (redirected via $HOME). No value-baked mocks: the only injected edge
6
- * is network absence (an empty / unseeded candidate DB). Covers:
7
- * 1. CLI full-path `--json` — per-dir method/confidence/status; no manifest write.
8
- * 4. ssh-vs-https — both git fixtures normalize to one owner/repo + parse via buildRawUrl.
9
- * 7. Offline degradation — empty DB: git+plugin resolve, registry/collision unknown, no throw.
10
- *
11
- * $HOME is set BEFORE the dynamic import of the action module so its
12
- * module-level MANIFEST_PATH (utils/manifest.ts) freezes onto the temp home.
13
- */
14
- import { describe, it, expect, beforeAll, afterAll, beforeEach, vi } from 'vitest';
15
- import * as fs from 'node:fs';
16
- import * as os from 'node:os';
17
- import * as path from 'node:path';
18
- import { writeSourceFixture, seedSkillsDb, buildRawUrl, FIXTURE_DIRS, GIT_OWNER, GIT_REPO, } from './utils/source-recovery-fixture.js';
19
- let runAuditSources;
20
- let tempHome = '';
21
- let skillsRoot = '';
22
- let manifestPath = '';
23
- let originalHome;
24
- let dbCounter = 0;
25
- function makeOpts(o) {
26
- return {
27
- skillsRoot,
28
- apply: o.apply ?? false,
29
- yes: o.yes ?? false,
30
- set: o.set,
31
- minConfidence: o.minConfidence ?? 'high',
32
- json: o.json ?? false,
33
- embedding: false,
34
- catalogHint: false,
35
- writeFrontmatter: o.writeFrontmatter ?? false,
36
- forceWriteFrontmatter: o.forceWriteFrontmatter ?? false,
37
- db: o.db,
38
- };
39
- }
40
- /** Run `audit sources --json` and return the parsed `{ skills, summary }`. */
41
- async function runJson(dbPath) {
42
- const chunks = [];
43
- const spy = vi
44
- .spyOn(process.stdout, 'write')
45
- .mockImplementation((chunk) => {
46
- chunks.push(typeof chunk === 'string' ? chunk : Buffer.from(chunk).toString('utf-8'));
47
- return true;
48
- });
49
- try {
50
- await runAuditSources(makeOpts({ db: dbPath, json: true }));
51
- }
52
- finally {
53
- spy.mockRestore();
54
- }
55
- return JSON.parse(chunks.join('').trim());
56
- }
57
- function bySkill(skills, name) {
58
- const found = skills.find((s) => s.skillName === name);
59
- if (!found)
60
- throw new Error(`fixture skill not found in report: ${name}`);
61
- return found;
62
- }
63
- /** A fresh seeded candidate DB: registry-skill (1 row) + collision-skill (2 rows). */
64
- async function seededDb() {
65
- const dbPath = path.join(tempHome, `cands-${dbCounter++}.db`);
66
- await seedSkillsDb(dbPath, [
67
- {
68
- id: 'reg-uuid-0001',
69
- name: FIXTURE_DIRS.registry,
70
- repoUrl: 'https://github.com/regowner/regrepo',
71
- },
72
- {
73
- id: 'coll-uuid-0001',
74
- name: FIXTURE_DIRS.collision,
75
- repoUrl: 'https://github.com/coll1/repoA',
76
- },
77
- {
78
- id: 'coll-uuid-0002',
79
- name: FIXTURE_DIRS.collision,
80
- repoUrl: 'https://github.com/coll2/repoB',
81
- },
82
- ]);
83
- return dbPath;
84
- }
85
- /** A fresh EMPTY candidate DB (no skills rows) — models the offline path. */
86
- async function emptyDb() {
87
- const dbPath = path.join(tempHome, `empty-${dbCounter++}.db`);
88
- await seedSkillsDb(dbPath, []);
89
- return dbPath;
90
- }
91
- beforeAll(async () => {
92
- originalHome = process.env['HOME'];
93
- tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-recov-home-'));
94
- process.env['HOME'] = tempHome;
95
- skillsRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-recov-skills-'));
96
- manifestPath = path.join(tempHome, '.skillsmith', 'manifest.json');
97
- writeSourceFixture(skillsRoot);
98
- ({ runAuditSources } = await import('../../src/commands/audit-sources.action.js'));
99
- });
100
- afterAll(() => {
101
- if (originalHome === undefined)
102
- delete process.env['HOME'];
103
- else
104
- process.env['HOME'] = originalHome;
105
- for (const dir of [tempHome, skillsRoot]) {
106
- if (dir)
107
- fs.rmSync(dir, { recursive: true, force: true });
108
- }
109
- });
110
- beforeEach(() => {
111
- fs.rmSync(manifestPath, { force: true });
112
- });
113
- describe('SMI-5407 e2e — audit sources --json (scenario 1)', () => {
114
- it('reports the correct method/confidence/status per directory', async () => {
115
- const { skills, summary } = await runJson(await seededDb());
116
- const git = bySkill(skills, FIXTURE_DIRS.git);
117
- expect(git.method).toBe('git-remote');
118
- expect(git.confidence).toBe('exact');
119
- expect(git.status).toBe('recovered');
120
- const plugin = bySkill(skills, FIXTURE_DIRS.plugin);
121
- expect(plugin.method).toBe('plugin-json');
122
- expect(plugin.confidence).toBe('high');
123
- expect(plugin.status).toBe('recovered');
124
- const registry = bySkill(skills, FIXTURE_DIRS.registry);
125
- expect(registry.method).toBe('registry-name');
126
- expect(registry.confidence).toBe('medium');
127
- expect(registry.registryId).toBe('reg-uuid-0001');
128
- expect(registry.status).toBe('recovered');
129
- const collision = bySkill(skills, FIXTURE_DIRS.collision);
130
- expect(collision.candidates).toHaveLength(2);
131
- expect(collision.confidence).toBe('low');
132
- expect(collision.status).toBe('unknown');
133
- const backup = bySkill(skills, FIXTURE_DIRS.backup);
134
- expect(backup.status).toBe('skipped_backup');
135
- const unknown = bySkill(skills, FIXTURE_DIRS.unknown);
136
- expect(unknown.status).toBe('unknown');
137
- expect(unknown.confidence).toBe('unknown');
138
- // Summary echoes the per-dir tally (3 recovered: git + https + plugin).
139
- expect(summary['skipped_backup']).toBe(1);
140
- expect(summary['total']).toBe(skills.length);
141
- });
142
- it('does not write the manifest on a dry-run (--json)', async () => {
143
- await runJson(await seededDb());
144
- expect(fs.existsSync(manifestPath)).toBe(false);
145
- });
146
- });
147
- describe('SMI-5407 e2e — ssh vs https git remotes (scenario 4)', () => {
148
- it('normalizes both git fixtures to one owner/repo and a buildRawUrl-parseable source', async () => {
149
- const { skills } = await runJson(await seededDb());
150
- const git = bySkill(skills, FIXTURE_DIRS.git);
151
- const https = bySkill(skills, FIXTURE_DIRS.https);
152
- for (const result of [git, https]) {
153
- expect(result.recoveredSource).not.toBeNull();
154
- expect(result.recoveredSource?.owner).toBe(GIT_OWNER);
155
- expect(result.recoveredSource?.repo).toBe(GIT_REPO);
156
- expect(result.recoveredSource?.url).toBe(`https://github.com/${GIT_OWNER}/${GIT_REPO}`);
157
- expect(buildRawUrl(result.recoveredSource.url)).toBe(`https://raw.githubusercontent.com/${GIT_OWNER}/${GIT_REPO}/main/SKILL.md`);
158
- }
159
- expect(git.recoveredSource).toEqual(https.recoveredSource);
160
- });
161
- });
162
- describe('SMI-5407 e2e — offline degradation (scenario 7)', () => {
163
- it('resolves git+plugin and degrades registry/collision to unknown without throwing', async () => {
164
- let report;
165
- await expect((async () => {
166
- report = await runJson(await emptyDb());
167
- })()).resolves.toBeUndefined();
168
- const skills = report.skills;
169
- expect(bySkill(skills, FIXTURE_DIRS.git).status).toBe('recovered');
170
- expect(bySkill(skills, FIXTURE_DIRS.https).status).toBe('recovered');
171
- expect(bySkill(skills, FIXTURE_DIRS.plugin).status).toBe('recovered');
172
- // With no candidate rows, the name tiers degrade — no throw, no network.
173
- expect(bySkill(skills, FIXTURE_DIRS.registry).status).toBe('unknown');
174
- expect(bySkill(skills, FIXTURE_DIRS.registry).confidence).toBe('unknown');
175
- expect(bySkill(skills, FIXTURE_DIRS.collision).status).toBe('unknown');
176
- expect(bySkill(skills, FIXTURE_DIRS.collision).candidates).toHaveLength(0);
177
- });
178
- });
179
- //# sourceMappingURL=audit-sources-recovery.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-sources-recovery.test.js","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-recovery.test.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * @fileoverview SMI-5407 end-to-end — GATE (write half): recover -> backfill.
3
- *
4
- * Drives the REAL CLI apply path (`audit sources --apply --yes --min-confidence
5
- * medium`) into a REAL temp manifest and asserts the load-bearing backfill keys:
6
- * - a single registry-name match (medium) writes the registry UUID as `id`
7
- * (the only id form `skill_outdated` can resolve a registry skill by);
8
- * - a git remote (exact) writes an owner/skill-name `id` (no UUID — the git
9
- * tier has none);
10
- * - both write an https `source` that `buildRawUrl` accepts (View-Changes).
11
- *
12
- * The READ half — that real `skill_outdated` resolves the UUID id (and NOT the
13
- * owner/skill-name, owner/repo, or URL decoy forms), while the git owner/skill-
14
- * name id resolves to `unknown` yet keeps a working View-Changes source — lives
15
- * in `packages/mcp-server/src/__tests__/skill-outdated-resolution.test.ts`.
16
- * It cannot live here: importing the mcp-server `executeOutdated`/`ToolContext`
17
- * source across the package boundary is structurally invalid under the CLI
18
- * tsconfig rootDir (TS6059/TS6307), and those symbols are not part of the
19
- * mcp-server package's public exports. The shared REG_UUID + manifest shape are
20
- * the contract linking the two halves.
21
- */
22
- export {};
23
- //# sourceMappingURL=audit-sources-roundtrip.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-sources-roundtrip.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-roundtrip.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -1,139 +0,0 @@
1
- /**
2
- * @fileoverview SMI-5407 end-to-end — GATE (write half): recover -> backfill.
3
- *
4
- * Drives the REAL CLI apply path (`audit sources --apply --yes --min-confidence
5
- * medium`) into a REAL temp manifest and asserts the load-bearing backfill keys:
6
- * - a single registry-name match (medium) writes the registry UUID as `id`
7
- * (the only id form `skill_outdated` can resolve a registry skill by);
8
- * - a git remote (exact) writes an owner/skill-name `id` (no UUID — the git
9
- * tier has none);
10
- * - both write an https `source` that `buildRawUrl` accepts (View-Changes).
11
- *
12
- * The READ half — that real `skill_outdated` resolves the UUID id (and NOT the
13
- * owner/skill-name, owner/repo, or URL decoy forms), while the git owner/skill-
14
- * name id resolves to `unknown` yet keeps a working View-Changes source — lives
15
- * in `packages/mcp-server/src/__tests__/skill-outdated-resolution.test.ts`.
16
- * It cannot live here: importing the mcp-server `executeOutdated`/`ToolContext`
17
- * source across the package boundary is structurally invalid under the CLI
18
- * tsconfig rootDir (TS6059/TS6307), and those symbols are not part of the
19
- * mcp-server package's public exports. The shared REG_UUID + manifest shape are
20
- * the contract linking the two halves.
21
- */
22
- import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
23
- import * as fs from 'node:fs';
24
- import * as os from 'node:os';
25
- import * as path from 'node:path';
26
- import { writeSourceFixture, seedSkillsDb, buildRawUrl, FIXTURE_DIRS, GIT_OWNER, GIT_REPO, } from './utils/source-recovery-fixture.js';
27
- let runAuditSources;
28
- let tempHome = '';
29
- let skillsRoot = '';
30
- let manifestPath = '';
31
- let originalHome;
32
- let dbCounter = 0;
33
- // git tier: owner/skill-name id (no registry UUID).
34
- const GIT_ID = `${GIT_OWNER}/${FIXTURE_DIRS.git}`;
35
- // git tier canonical recovered source (both git fixtures share owner/repo).
36
- const GIT_SOURCE = `https://github.com/${GIT_OWNER}/${GIT_REPO}`;
37
- // SMI-5411: registry UUID a catalog-known git repo enriches its manifest id to.
38
- const GIT_REG_UUID = 'b2c3d4e5-0000-4000-8000-000000000002';
39
- // registry tier: a single-name match carrying the UUID.
40
- const REG_UUID = 'a1b2c3d4-0000-4000-8000-000000000001';
41
- const REG_OWNER = 'regowner';
42
- const REG_REPO = 'regrepo';
43
- const REG_SOURCE = `https://github.com/${REG_OWNER}/${REG_REPO}`;
44
- function makeOpts(o) {
45
- return {
46
- skillsRoot,
47
- apply: o.apply ?? false,
48
- yes: o.yes ?? false,
49
- set: o.set,
50
- minConfidence: o.minConfidence ?? 'high',
51
- json: o.json ?? false,
52
- embedding: false,
53
- catalogHint: false,
54
- writeFrontmatter: false,
55
- forceWriteFrontmatter: false,
56
- db: o.db,
57
- };
58
- }
59
- function entry(name) {
60
- const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
61
- return manifest.installedSkills[name];
62
- }
63
- beforeAll(async () => {
64
- originalHome = process.env['HOME'];
65
- tempHome = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-rt-home-'));
66
- process.env['HOME'] = tempHome;
67
- skillsRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'smi5407-rt-skills-'));
68
- manifestPath = path.join(tempHome, '.skillsmith', 'manifest.json');
69
- writeSourceFixture(skillsRoot);
70
- ({ runAuditSources } = await import('../../src/commands/audit-sources.action.js'));
71
- });
72
- afterAll(() => {
73
- if (originalHome === undefined)
74
- delete process.env['HOME'];
75
- else
76
- process.env['HOME'] = originalHome;
77
- for (const dir of [tempHome, skillsRoot]) {
78
- if (dir)
79
- fs.rmSync(dir, { recursive: true, force: true });
80
- }
81
- });
82
- beforeEach(() => {
83
- fs.rmSync(manifestPath, { force: true });
84
- });
85
- describe('SMI-5407 e2e GATE (write) — recover -> backfill (scenario 2)', () => {
86
- it('writes the registry UUID id (medium) and the git owner/skill-name id (exact)', async () => {
87
- const db = path.join(tempHome, `rt-${dbCounter++}.db`);
88
- await seedSkillsDb(db, [{ id: REG_UUID, name: FIXTURE_DIRS.registry, repoUrl: REG_SOURCE }]);
89
- // --min-confidence medium so the single registry-name match qualifies
90
- // (fixed qualifies(): the minConfidence floor IS the gate, no AUTO_QUALIFY).
91
- await runAuditSources(makeOpts({ db, apply: true, yes: true, minConfidence: 'medium' }));
92
- // registry: the load-bearing UUID id + https owner/repo source.
93
- const registry = entry(FIXTURE_DIRS.registry);
94
- expect(registry.id).toBe(REG_UUID);
95
- expect(registry.source).toBe(REG_SOURCE);
96
- expect(buildRawUrl(registry.source)).toBe(`https://raw.githubusercontent.com/${REG_OWNER}/${REG_REPO}/main/SKILL.md`);
97
- // git: exact, owner/skill-name id, buildRawUrl-parseable source.
98
- const git = entry(FIXTURE_DIRS.git);
99
- expect(git.id).toBe(GIT_ID);
100
- expect(git.source).toBe(`https://github.com/${GIT_OWNER}/${GIT_REPO}`);
101
- expect(buildRawUrl(git.source)).not.toBeNull();
102
- });
103
- it('default min-confidence (high) leaves the medium registry match unwritten', async () => {
104
- const db = path.join(tempHome, `rt-${dbCounter++}.db`);
105
- await seedSkillsDb(db, [{ id: REG_UUID, name: FIXTURE_DIRS.registry, repoUrl: REG_SOURCE }]);
106
- await runAuditSources(makeOpts({ db, apply: true, yes: true }));
107
- expect(entry(FIXTURE_DIRS.registry)).toBeUndefined();
108
- expect(entry(FIXTURE_DIRS.git)).toBeDefined();
109
- });
110
- // SMI-5411: when the git skill's recovered repo_url IS in the local catalog,
111
- // `audit sources --apply` enriches its manifest id from owner/skill-name to the
112
- // registry UUID (so skill_outdated can resolve it) WITHOUT changing the exact
113
- // git SOURCE (View-Changes unchanged). The READ half — that real
114
- // skill_outdated resolves this UUID id and rejects decoy forms — lives in
115
- // packages/mcp-server/src/__tests__/skill-outdated-resolution.test.ts.
116
- it('enriches a catalog-known git skill id to the registry UUID at default confidence', async () => {
117
- const db = path.join(tempHome, `rt-${dbCounter++}.db`);
118
- // Seed a catalog row whose repo_url matches the git fixture's recovered
119
- // source. `name` is distinct from the git fixture dir so the name-match tier
120
- // is never reached — the git tier short-circuits and only the id is enriched.
121
- await seedSkillsDb(db, [{ id: GIT_REG_UUID, name: GIT_REPO, repoUrl: GIT_SOURCE }]);
122
- await runAuditSources(makeOpts({ db, apply: true, yes: true }));
123
- const git = entry(FIXTURE_DIRS.git);
124
- expect(git.id).toBe(GIT_REG_UUID); // enriched UUID, not owner/skill-name
125
- expect(git.id).not.toBe(GIT_ID); // the un-enriched decoy form must not win
126
- expect(git.source).toBe(GIT_SOURCE); // exact git source unchanged
127
- expect(buildRawUrl(git.source)).toBe(`https://raw.githubusercontent.com/${GIT_OWNER}/${GIT_REPO}/main/SKILL.md`);
128
- });
129
- it('leaves the git id as owner/skill-name when the repo is NOT catalog-known (graceful)', async () => {
130
- const db = path.join(tempHome, `rt-${dbCounter++}.db`);
131
- // No skills row for the git repo_url -> findRegistryIdByRepoUrl returns null.
132
- await seedSkillsDb(db, [{ id: REG_UUID, name: FIXTURE_DIRS.registry, repoUrl: REG_SOURCE }]);
133
- await runAuditSources(makeOpts({ db, apply: true, yes: true }));
134
- const git = entry(FIXTURE_DIRS.git);
135
- expect(git.id).toBe(GIT_ID); // unchanged fallback
136
- expect(git.source).toBe(GIT_SOURCE);
137
- });
138
- });
139
- //# sourceMappingURL=audit-sources-roundtrip.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit-sources-roundtrip.test.js","sourceRoot":"","sources":["../../../tests/e2e/audit-sources-roundtrip.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * E2E Test: skillsmith init, validate, publish commands
3
- *
4
- * Tests skill authoring commands in a clean Codespace environment.
5
- *
6
- * User Journey: Create and publish custom skills
7
- */
8
- export {};
9
- //# sourceMappingURL=author.e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"author.e2e.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/author.e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}