@skillsmith/mcp-server 0.4.12 → 0.5.0

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 (434) hide show
  1. package/CHANGELOG.md +38 -4
  2. package/README.md +133 -13
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/__tests__/compare.test.js +5 -5
  5. package/dist/src/__tests__/compare.test.js.map +1 -1
  6. package/dist/src/__tests__/context-listeners.test.d.ts +12 -0
  7. package/dist/src/__tests__/context-listeners.test.d.ts.map +1 -0
  8. package/dist/src/__tests__/context-listeners.test.js +87 -0
  9. package/dist/src/__tests__/context-listeners.test.js.map +1 -0
  10. package/dist/src/__tests__/context.test.js +84 -82
  11. package/dist/src/__tests__/context.test.js.map +1 -1
  12. package/dist/src/__tests__/get-skill.api-path.test.js +21 -14
  13. package/dist/src/__tests__/get-skill.api-path.test.js.map +1 -1
  14. package/dist/src/__tests__/get-skill.test.js +5 -5
  15. package/dist/src/__tests__/get-skill.test.js.map +1 -1
  16. package/dist/src/__tests__/index-local.test.js +5 -5
  17. package/dist/src/__tests__/index-local.test.js.map +1 -1
  18. package/dist/src/__tests__/recommend-online-path.test.js +5 -5
  19. package/dist/src/__tests__/recommend-online-path.test.js.map +1 -1
  20. package/dist/src/__tests__/recommend.test.js +9 -9
  21. package/dist/src/__tests__/recommend.test.js.map +1 -1
  22. package/dist/src/__tests__/search-compatible-with.test.d.ts +10 -0
  23. package/dist/src/__tests__/search-compatible-with.test.d.ts.map +1 -0
  24. package/dist/src/__tests__/search-compatible-with.test.js +96 -0
  25. package/dist/src/__tests__/search-compatible-with.test.js.map +1 -0
  26. package/dist/src/__tests__/search-online-path.test.js +5 -5
  27. package/dist/src/__tests__/search-online-path.test.js.map +1 -1
  28. package/dist/src/__tests__/search.test.js +24 -101
  29. package/dist/src/__tests__/search.test.js.map +1 -1
  30. package/dist/src/__tests__/test-utils.d.ts +18 -3
  31. package/dist/src/__tests__/test-utils.d.ts.map +1 -1
  32. package/dist/src/__tests__/test-utils.js +24 -7
  33. package/dist/src/__tests__/test-utils.js.map +1 -1
  34. package/dist/src/__tests__/utils/validation.test.js +7 -0
  35. package/dist/src/__tests__/utils/validation.test.js.map +1 -1
  36. package/dist/src/audit/audit-history.d.ts +77 -0
  37. package/dist/src/audit/audit-history.d.ts.map +1 -0
  38. package/dist/src/audit/audit-history.js +98 -0
  39. package/dist/src/audit/audit-history.js.map +1 -0
  40. package/dist/src/audit/audit-report-writer.d.ts +82 -0
  41. package/dist/src/audit/audit-report-writer.d.ts.map +1 -0
  42. package/dist/src/audit/audit-report-writer.js +241 -0
  43. package/dist/src/audit/audit-report-writer.js.map +1 -0
  44. package/dist/src/audit/audit-suggestions.d.ts +52 -0
  45. package/dist/src/audit/audit-suggestions.d.ts.map +1 -0
  46. package/dist/src/audit/audit-suggestions.js +90 -0
  47. package/dist/src/audit/audit-suggestions.js.map +1 -0
  48. package/dist/src/audit/bootstrap-unmanaged.d.ts +66 -0
  49. package/dist/src/audit/bootstrap-unmanaged.d.ts.map +1 -0
  50. package/dist/src/audit/bootstrap-unmanaged.js +91 -0
  51. package/dist/src/audit/bootstrap-unmanaged.js.map +1 -0
  52. package/dist/src/audit/collision-detector.d.ts +72 -0
  53. package/dist/src/audit/collision-detector.d.ts.map +1 -0
  54. package/dist/src/audit/collision-detector.helpers.d.ts +63 -0
  55. package/dist/src/audit/collision-detector.helpers.d.ts.map +1 -0
  56. package/dist/src/audit/collision-detector.helpers.js +141 -0
  57. package/dist/src/audit/collision-detector.helpers.js.map +1 -0
  58. package/dist/src/audit/collision-detector.js +172 -0
  59. package/dist/src/audit/collision-detector.js.map +1 -0
  60. package/dist/src/audit/collision-detector.semantic.helpers.d.ts +49 -0
  61. package/dist/src/audit/collision-detector.semantic.helpers.d.ts.map +1 -0
  62. package/dist/src/audit/collision-detector.semantic.helpers.js +121 -0
  63. package/dist/src/audit/collision-detector.semantic.helpers.js.map +1 -0
  64. package/dist/src/audit/collision-detector.types.d.ts +70 -0
  65. package/dist/src/audit/collision-detector.types.d.ts.map +1 -0
  66. package/dist/src/audit/collision-detector.types.js +9 -0
  67. package/dist/src/audit/collision-detector.types.js.map +1 -0
  68. package/dist/src/audit/edit-applier.d.ts +64 -0
  69. package/dist/src/audit/edit-applier.d.ts.map +1 -0
  70. package/dist/src/audit/edit-applier.js +233 -0
  71. package/dist/src/audit/edit-applier.js.map +1 -0
  72. package/dist/src/audit/edit-applier.types.d.ts +72 -0
  73. package/dist/src/audit/edit-applier.types.d.ts.map +1 -0
  74. package/dist/src/audit/edit-applier.types.js +13 -0
  75. package/dist/src/audit/edit-applier.types.js.map +1 -0
  76. package/dist/src/audit/edit-suggester.d.ts +63 -0
  77. package/dist/src/audit/edit-suggester.d.ts.map +1 -0
  78. package/dist/src/audit/edit-suggester.js +326 -0
  79. package/dist/src/audit/edit-suggester.js.map +1 -0
  80. package/dist/src/audit/edit-suggester.types.d.ts +148 -0
  81. package/dist/src/audit/edit-suggester.types.d.ts.map +1 -0
  82. package/dist/src/audit/edit-suggester.types.js +17 -0
  83. package/dist/src/audit/edit-suggester.types.js.map +1 -0
  84. package/dist/src/audit/framework-adapter.d.ts +54 -0
  85. package/dist/src/audit/framework-adapter.d.ts.map +1 -0
  86. package/dist/src/audit/framework-adapter.js +251 -0
  87. package/dist/src/audit/framework-adapter.js.map +1 -0
  88. package/dist/src/audit/framework-adapter.types.d.ts +162 -0
  89. package/dist/src/audit/framework-adapter.types.d.ts.map +1 -0
  90. package/dist/src/audit/framework-adapter.types.js +31 -0
  91. package/dist/src/audit/framework-adapter.types.js.map +1 -0
  92. package/dist/src/audit/index.d.ts +46 -0
  93. package/dist/src/audit/index.d.ts.map +1 -0
  94. package/dist/src/audit/index.js +44 -0
  95. package/dist/src/audit/index.js.map +1 -0
  96. package/dist/src/audit/install-preflight.d.ts +99 -0
  97. package/dist/src/audit/install-preflight.d.ts.map +1 -0
  98. package/dist/src/audit/install-preflight.js +320 -0
  99. package/dist/src/audit/install-preflight.js.map +1 -0
  100. package/dist/src/audit/namespace-audit.types.d.ts +100 -0
  101. package/dist/src/audit/namespace-audit.types.d.ts.map +1 -0
  102. package/dist/src/audit/namespace-audit.types.js +20 -0
  103. package/dist/src/audit/namespace-audit.types.js.map +1 -0
  104. package/dist/src/audit/namespace-overrides.d.ts +79 -0
  105. package/dist/src/audit/namespace-overrides.d.ts.map +1 -0
  106. package/dist/src/audit/namespace-overrides.js +228 -0
  107. package/dist/src/audit/namespace-overrides.js.map +1 -0
  108. package/dist/src/audit/namespace-overrides.types.d.ts +115 -0
  109. package/dist/src/audit/namespace-overrides.types.d.ts.map +1 -0
  110. package/dist/src/audit/namespace-overrides.types.js +26 -0
  111. package/dist/src/audit/namespace-overrides.types.js.map +1 -0
  112. package/dist/src/audit/rename-engine.apply-paths.d.ts +54 -0
  113. package/dist/src/audit/rename-engine.apply-paths.d.ts.map +1 -0
  114. package/dist/src/audit/rename-engine.apply-paths.js +126 -0
  115. package/dist/src/audit/rename-engine.apply-paths.js.map +1 -0
  116. package/dist/src/audit/rename-engine.d.ts +59 -0
  117. package/dist/src/audit/rename-engine.d.ts.map +1 -0
  118. package/dist/src/audit/rename-engine.helpers.d.ts +63 -0
  119. package/dist/src/audit/rename-engine.helpers.d.ts.map +1 -0
  120. package/dist/src/audit/rename-engine.helpers.js +224 -0
  121. package/dist/src/audit/rename-engine.helpers.js.map +1 -0
  122. package/dist/src/audit/rename-engine.js +393 -0
  123. package/dist/src/audit/rename-engine.js.map +1 -0
  124. package/dist/src/audit/rename-engine.types.d.ts +157 -0
  125. package/dist/src/audit/rename-engine.types.d.ts.map +1 -0
  126. package/dist/src/audit/rename-engine.types.js +15 -0
  127. package/dist/src/audit/rename-engine.types.js.map +1 -0
  128. package/dist/src/audit/run-inventory-audit.d.ts +95 -0
  129. package/dist/src/audit/run-inventory-audit.d.ts.map +1 -0
  130. package/dist/src/audit/run-inventory-audit.js +245 -0
  131. package/dist/src/audit/run-inventory-audit.js.map +1 -0
  132. package/dist/src/audit/suggestion-chain.d.ts +89 -0
  133. package/dist/src/audit/suggestion-chain.d.ts.map +1 -0
  134. package/dist/src/audit/suggestion-chain.js +121 -0
  135. package/dist/src/audit/suggestion-chain.js.map +1 -0
  136. package/dist/src/audit-tool-dispatch.d.ts +61 -0
  137. package/dist/src/audit-tool-dispatch.d.ts.map +1 -0
  138. package/dist/src/audit-tool-dispatch.js +114 -0
  139. package/dist/src/audit-tool-dispatch.js.map +1 -0
  140. package/dist/src/context.async.d.ts.map +1 -1
  141. package/dist/src/context.async.js +22 -1
  142. package/dist/src/context.async.js.map +1 -1
  143. package/dist/src/index.js +1 -1
  144. package/dist/src/index.js.map +1 -1
  145. package/dist/src/indexer/LocalIndexer.d.ts +8 -1
  146. package/dist/src/indexer/LocalIndexer.d.ts.map +1 -1
  147. package/dist/src/indexer/LocalIndexer.js +42 -38
  148. package/dist/src/indexer/LocalIndexer.js.map +1 -1
  149. package/dist/src/middleware/__tests__/license.gate.test.d.ts +2 -0
  150. package/dist/src/middleware/__tests__/license.gate.test.d.ts.map +1 -0
  151. package/dist/src/middleware/__tests__/license.gate.test.js +93 -0
  152. package/dist/src/middleware/__tests__/license.gate.test.js.map +1 -0
  153. package/dist/src/middleware/license.d.ts +1 -23
  154. package/dist/src/middleware/license.d.ts.map +1 -1
  155. package/dist/src/middleware/license.gate.d.ts +37 -0
  156. package/dist/src/middleware/license.gate.d.ts.map +1 -0
  157. package/dist/src/middleware/license.gate.js +110 -0
  158. package/dist/src/middleware/license.gate.js.map +1 -0
  159. package/dist/src/middleware/license.js +2 -31
  160. package/dist/src/middleware/license.js.map +1 -1
  161. package/dist/src/onboarding/install-assets.d.ts.map +1 -1
  162. package/dist/src/onboarding/install-assets.js +11 -5
  163. package/dist/src/onboarding/install-assets.js.map +1 -1
  164. package/dist/src/tool-dispatch.d.ts.map +1 -1
  165. package/dist/src/tool-dispatch.js +6 -4
  166. package/dist/src/tool-dispatch.js.map +1 -1
  167. package/dist/src/tools/analytics.d.ts +8 -8
  168. package/dist/src/tools/analytics.service.test.js +6 -4
  169. package/dist/src/tools/analytics.service.test.js.map +1 -1
  170. package/dist/src/tools/apply-namespace-rename.d.ts +71 -0
  171. package/dist/src/tools/apply-namespace-rename.d.ts.map +1 -0
  172. package/dist/src/tools/apply-namespace-rename.js +137 -0
  173. package/dist/src/tools/apply-namespace-rename.js.map +1 -0
  174. package/dist/src/tools/apply-namespace-rename.types.d.ts +46 -0
  175. package/dist/src/tools/apply-namespace-rename.types.d.ts.map +1 -0
  176. package/dist/src/tools/apply-namespace-rename.types.js +9 -0
  177. package/dist/src/tools/apply-namespace-rename.types.js.map +1 -0
  178. package/dist/src/tools/apply-recommended-edit.d.ts +50 -0
  179. package/dist/src/tools/apply-recommended-edit.d.ts.map +1 -0
  180. package/dist/src/tools/apply-recommended-edit.js +112 -0
  181. package/dist/src/tools/apply-recommended-edit.js.map +1 -0
  182. package/dist/src/tools/apply-recommended-edit.types.d.ts +49 -0
  183. package/dist/src/tools/apply-recommended-edit.types.d.ts.map +1 -0
  184. package/dist/src/tools/apply-recommended-edit.types.js +14 -0
  185. package/dist/src/tools/apply-recommended-edit.types.js.map +1 -0
  186. package/dist/src/tools/audit-tools.d.ts +4 -4
  187. package/dist/src/tools/compare.types.d.ts +1 -0
  188. package/dist/src/tools/compare.types.d.ts.map +1 -1
  189. package/dist/src/tools/compare.types.js +2 -0
  190. package/dist/src/tools/compare.types.js.map +1 -1
  191. package/dist/src/tools/compliance-tools.d.ts +3 -3
  192. package/dist/src/tools/compliance-tools.d.ts.map +1 -1
  193. package/dist/src/tools/compliance-tools.service.test.js +6 -4
  194. package/dist/src/tools/compliance-tools.service.test.js.map +1 -1
  195. package/dist/src/tools/get-skill.js +3 -0
  196. package/dist/src/tools/get-skill.js.map +1 -1
  197. package/dist/src/tools/install.backup-gc.d.ts +61 -0
  198. package/dist/src/tools/install.backup-gc.d.ts.map +1 -0
  199. package/dist/src/tools/install.backup-gc.js +166 -0
  200. package/dist/src/tools/install.backup-gc.js.map +1 -0
  201. package/dist/src/tools/install.conflict-helpers.d.ts +29 -2
  202. package/dist/src/tools/install.conflict-helpers.d.ts.map +1 -1
  203. package/dist/src/tools/install.conflict-helpers.js +37 -4
  204. package/dist/src/tools/install.conflict-helpers.js.map +1 -1
  205. package/dist/src/tools/install.d.ts +15 -1
  206. package/dist/src/tools/install.d.ts.map +1 -1
  207. package/dist/src/tools/install.js +162 -7
  208. package/dist/src/tools/install.js.map +1 -1
  209. package/dist/src/tools/install.ledger-replay.d.ts +52 -0
  210. package/dist/src/tools/install.ledger-replay.d.ts.map +1 -0
  211. package/dist/src/tools/install.ledger-replay.js +88 -0
  212. package/dist/src/tools/install.ledger-replay.js.map +1 -0
  213. package/dist/src/tools/install.namespace-gate.d.ts +68 -0
  214. package/dist/src/tools/install.namespace-gate.d.ts.map +1 -0
  215. package/dist/src/tools/install.namespace-gate.js +129 -0
  216. package/dist/src/tools/install.namespace-gate.js.map +1 -0
  217. package/dist/src/tools/install.test.js +71 -1
  218. package/dist/src/tools/install.test.js.map +1 -1
  219. package/dist/src/tools/install.tool.d.ts +17 -0
  220. package/dist/src/tools/install.tool.d.ts.map +1 -1
  221. package/dist/src/tools/install.tool.js +19 -1
  222. package/dist/src/tools/install.tool.js.map +1 -1
  223. package/dist/src/tools/install.types.d.ts +35 -1
  224. package/dist/src/tools/install.types.d.ts.map +1 -1
  225. package/dist/src/tools/install.types.js +24 -2
  226. package/dist/src/tools/install.types.js.map +1 -1
  227. package/dist/src/tools/integration-tools.d.ts +8 -8
  228. package/dist/src/tools/integration-tools.service.d.ts.map +1 -1
  229. package/dist/src/tools/integration-tools.service.hash.test.d.ts +10 -0
  230. package/dist/src/tools/integration-tools.service.hash.test.d.ts.map +1 -0
  231. package/dist/src/tools/integration-tools.service.hash.test.js +48 -0
  232. package/dist/src/tools/integration-tools.service.hash.test.js.map +1 -0
  233. package/dist/src/tools/integration-tools.service.js +22 -2
  234. package/dist/src/tools/integration-tools.service.js.map +1 -1
  235. package/dist/src/tools/integration-tools.service.test.js +17 -14
  236. package/dist/src/tools/integration-tools.service.test.js.map +1 -1
  237. package/dist/src/tools/integration-tools.stub.d.ts.map +1 -1
  238. package/dist/src/tools/integration-tools.stub.js +3 -5
  239. package/dist/src/tools/integration-tools.stub.js.map +1 -1
  240. package/dist/src/tools/namespace-audit/telemetry.d.ts +80 -0
  241. package/dist/src/tools/namespace-audit/telemetry.d.ts.map +1 -0
  242. package/dist/src/tools/namespace-audit/telemetry.js +129 -0
  243. package/dist/src/tools/namespace-audit/telemetry.js.map +1 -0
  244. package/dist/src/tools/outdated.test.js +2 -2
  245. package/dist/src/tools/outdated.test.js.map +1 -1
  246. package/dist/src/tools/publish-private.test.js +2 -2
  247. package/dist/src/tools/publish-private.test.js.map +1 -1
  248. package/dist/src/tools/publish.types.d.ts +2 -2
  249. package/dist/src/tools/rbac-tools.d.ts +4 -4
  250. package/dist/src/tools/recommend.types.d.ts +4 -4
  251. package/dist/src/tools/registry-tools.d.ts +6 -6
  252. package/dist/src/tools/search.d.ts +3 -3
  253. package/dist/src/tools/search.d.ts.map +1 -1
  254. package/dist/src/tools/search.js +7 -7
  255. package/dist/src/tools/search.js.map +1 -1
  256. package/dist/src/tools/skill-audit.test.js +2 -2
  257. package/dist/src/tools/skill-audit.test.js.map +1 -1
  258. package/dist/src/tools/skill-diff.d.ts +2 -2
  259. package/dist/src/tools/skill-inventory-audit.d.ts +67 -0
  260. package/dist/src/tools/skill-inventory-audit.d.ts.map +1 -0
  261. package/dist/src/tools/skill-inventory-audit.js +112 -0
  262. package/dist/src/tools/skill-inventory-audit.js.map +1 -0
  263. package/dist/src/tools/skill-inventory-audit.types.d.ts +67 -0
  264. package/dist/src/tools/skill-inventory-audit.types.d.ts.map +1 -0
  265. package/dist/src/tools/skill-inventory-audit.types.js +14 -0
  266. package/dist/src/tools/skill-inventory-audit.types.js.map +1 -0
  267. package/dist/src/tools/skill-pack-audit.d.ts.map +1 -1
  268. package/dist/src/tools/skill-pack-audit.helpers.d.ts.map +1 -1
  269. package/dist/src/tools/skill-pack-audit.helpers.js +15 -2
  270. package/dist/src/tools/skill-pack-audit.helpers.js.map +1 -1
  271. package/dist/src/tools/skill-pack-audit.js +15 -1
  272. package/dist/src/tools/skill-pack-audit.js.map +1 -1
  273. package/dist/src/tools/skill-rescan.d.ts.map +1 -1
  274. package/dist/src/tools/skill-rescan.js +4 -2
  275. package/dist/src/tools/skill-rescan.js.map +1 -1
  276. package/dist/src/tools/sso-tools.d.ts +2 -2
  277. package/dist/src/tools/suggest.d.ts +4 -4
  278. package/dist/src/tools/team-workspace.d.ts +4 -4
  279. package/dist/src/tools/uninstall.d.ts +2 -2
  280. package/dist/src/tools/uninstall.d.ts.map +1 -1
  281. package/dist/src/tools/uninstall.js +17 -3
  282. package/dist/src/tools/uninstall.js.map +1 -1
  283. package/dist/src/tools/validate.types.d.ts +10 -1
  284. package/dist/src/tools/validate.types.d.ts.map +1 -1
  285. package/dist/src/tools/validate.types.js +10 -1
  286. package/dist/src/tools/validate.types.js.map +1 -1
  287. package/dist/src/utils/installed-skills.d.ts.map +1 -1
  288. package/dist/src/utils/installed-skills.js +8 -6
  289. package/dist/src/utils/installed-skills.js.map +1 -1
  290. package/dist/src/utils/local-inventory.d.ts +29 -0
  291. package/dist/src/utils/local-inventory.d.ts.map +1 -0
  292. package/dist/src/utils/local-inventory.helpers.d.ts +96 -0
  293. package/dist/src/utils/local-inventory.helpers.d.ts.map +1 -0
  294. package/dist/src/utils/local-inventory.helpers.js +279 -0
  295. package/dist/src/utils/local-inventory.helpers.js.map +1 -0
  296. package/dist/src/utils/local-inventory.js +202 -0
  297. package/dist/src/utils/local-inventory.js.map +1 -0
  298. package/dist/src/utils/local-inventory.types.d.ts +100 -0
  299. package/dist/src/utils/local-inventory.types.d.ts.map +1 -0
  300. package/dist/src/utils/local-inventory.types.js +9 -0
  301. package/dist/src/utils/local-inventory.types.js.map +1 -0
  302. package/dist/src/utils/validation.d.ts +4 -2
  303. package/dist/src/utils/validation.d.ts.map +1 -1
  304. package/dist/src/utils/validation.js +9 -2
  305. package/dist/src/utils/validation.js.map +1 -1
  306. package/dist/src/webhooks/stripe-webhook-endpoint.d.ts +12 -0
  307. package/dist/src/webhooks/stripe-webhook-endpoint.d.ts.map +1 -1
  308. package/dist/src/webhooks/stripe-webhook-endpoint.js +30 -9
  309. package/dist/src/webhooks/stripe-webhook-endpoint.js.map +1 -1
  310. package/dist/src/webhooks/webhook-endpoint.d.ts +13 -0
  311. package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -1
  312. package/dist/src/webhooks/webhook-endpoint.js +31 -9
  313. package/dist/src/webhooks/webhook-endpoint.js.map +1 -1
  314. package/dist/tests/compare.test.js +5 -5
  315. package/dist/tests/compare.test.js.map +1 -1
  316. package/dist/tests/context-async-listeners.test.d.ts +12 -0
  317. package/dist/tests/context-async-listeners.test.d.ts.map +1 -0
  318. package/dist/tests/context-async-listeners.test.js +62 -0
  319. package/dist/tests/context-async-listeners.test.js.map +1 -0
  320. package/dist/tests/e2e/compare.e2e.test.js +9 -3
  321. package/dist/tests/e2e/compare.e2e.test.js.map +1 -1
  322. package/dist/tests/e2e/install-flow.e2e.test.js +9 -3
  323. package/dist/tests/e2e/install-flow.e2e.test.js.map +1 -1
  324. package/dist/tests/e2e/recommend.e2e.test.js +9 -3
  325. package/dist/tests/e2e/recommend.e2e.test.js.map +1 -1
  326. package/dist/tests/e2e/skill-flow.e2e.test.js +17 -5
  327. package/dist/tests/e2e/skill-flow.e2e.test.js.map +1 -1
  328. package/dist/tests/e2e/suggest.e2e.test.js +11 -3
  329. package/dist/tests/e2e/suggest.e2e.test.js.map +1 -1
  330. package/dist/tests/integration/audit-roundtrip.test.d.ts +29 -0
  331. package/dist/tests/integration/audit-roundtrip.test.d.ts.map +1 -0
  332. package/dist/tests/integration/audit-roundtrip.test.js +214 -0
  333. package/dist/tests/integration/audit-roundtrip.test.js.map +1 -0
  334. package/dist/tests/integration/install-namespace.integration.test.d.ts +14 -0
  335. package/dist/tests/integration/install-namespace.integration.test.d.ts.map +1 -0
  336. package/dist/tests/integration/install-namespace.integration.test.js +414 -0
  337. package/dist/tests/integration/install-namespace.integration.test.js.map +1 -0
  338. package/dist/tests/performance/search-performance.test.js +9 -3
  339. package/dist/tests/performance/search-performance.test.js.map +1 -1
  340. package/dist/tests/tools.test.js +5 -5
  341. package/dist/tests/tools.test.js.map +1 -1
  342. package/dist/tests/unit/apply-namespace-rename.test.d.ts +24 -0
  343. package/dist/tests/unit/apply-namespace-rename.test.d.ts.map +1 -0
  344. package/dist/tests/unit/apply-namespace-rename.test.js +205 -0
  345. package/dist/tests/unit/apply-namespace-rename.test.js.map +1 -0
  346. package/dist/tests/unit/apply-recommended-edit.test.d.ts +28 -0
  347. package/dist/tests/unit/apply-recommended-edit.test.d.ts.map +1 -0
  348. package/dist/tests/unit/apply-recommended-edit.test.js +229 -0
  349. package/dist/tests/unit/apply-recommended-edit.test.js.map +1 -0
  350. package/dist/tests/unit/audit-history.test.d.ts +11 -0
  351. package/dist/tests/unit/audit-history.test.d.ts.map +1 -0
  352. package/dist/tests/unit/audit-history.test.js +183 -0
  353. package/dist/tests/unit/audit-history.test.js.map +1 -0
  354. package/dist/tests/unit/audit-report-writer.test.d.ts +7 -0
  355. package/dist/tests/unit/audit-report-writer.test.d.ts.map +1 -0
  356. package/dist/tests/unit/audit-report-writer.test.js +249 -0
  357. package/dist/tests/unit/audit-report-writer.test.js.map +1 -0
  358. package/dist/tests/unit/audit-tool-dispatch.test.d.ts +17 -0
  359. package/dist/tests/unit/audit-tool-dispatch.test.d.ts.map +1 -0
  360. package/dist/tests/unit/audit-tool-dispatch.test.js +133 -0
  361. package/dist/tests/unit/audit-tool-dispatch.test.js.map +1 -0
  362. package/dist/tests/unit/collision-detector.semantic.test.d.ts +12 -0
  363. package/dist/tests/unit/collision-detector.semantic.test.d.ts.map +1 -0
  364. package/dist/tests/unit/collision-detector.semantic.test.js +281 -0
  365. package/dist/tests/unit/collision-detector.semantic.test.js.map +1 -0
  366. package/dist/tests/unit/collision-detector.test.d.ts +8 -0
  367. package/dist/tests/unit/collision-detector.test.d.ts.map +1 -0
  368. package/dist/tests/unit/collision-detector.test.js +266 -0
  369. package/dist/tests/unit/collision-detector.test.js.map +1 -0
  370. package/dist/tests/unit/edit-applier.test.d.ts +17 -0
  371. package/dist/tests/unit/edit-applier.test.d.ts.map +1 -0
  372. package/dist/tests/unit/edit-applier.test.js +165 -0
  373. package/dist/tests/unit/edit-applier.test.js.map +1 -0
  374. package/dist/tests/unit/edit-suggester.fixtures.d.ts +38 -0
  375. package/dist/tests/unit/edit-suggester.fixtures.d.ts.map +1 -0
  376. package/dist/tests/unit/edit-suggester.fixtures.js +84 -0
  377. package/dist/tests/unit/edit-suggester.fixtures.js.map +1 -0
  378. package/dist/tests/unit/edit-suggester.test.d.ts +17 -0
  379. package/dist/tests/unit/edit-suggester.test.d.ts.map +1 -0
  380. package/dist/tests/unit/edit-suggester.test.js +356 -0
  381. package/dist/tests/unit/edit-suggester.test.js.map +1 -0
  382. package/dist/tests/unit/framework-adapter.test.d.ts +30 -0
  383. package/dist/tests/unit/framework-adapter.test.d.ts.map +1 -0
  384. package/dist/tests/unit/framework-adapter.test.js +221 -0
  385. package/dist/tests/unit/framework-adapter.test.js.map +1 -0
  386. package/dist/tests/unit/install-preflight.test.d.ts +17 -0
  387. package/dist/tests/unit/install-preflight.test.d.ts.map +1 -0
  388. package/dist/tests/unit/install-preflight.test.js +270 -0
  389. package/dist/tests/unit/install-preflight.test.js.map +1 -0
  390. package/dist/tests/unit/install.backup-gc.test.d.ts +18 -0
  391. package/dist/tests/unit/install.backup-gc.test.d.ts.map +1 -0
  392. package/dist/tests/unit/install.backup-gc.test.js +177 -0
  393. package/dist/tests/unit/install.backup-gc.test.js.map +1 -0
  394. package/dist/tests/unit/install.ledger-replay.test.d.ts +12 -0
  395. package/dist/tests/unit/install.ledger-replay.test.d.ts.map +1 -0
  396. package/dist/tests/unit/install.ledger-replay.test.js +98 -0
  397. package/dist/tests/unit/install.ledger-replay.test.js.map +1 -0
  398. package/dist/tests/unit/local-inventory.test.d.ts +8 -0
  399. package/dist/tests/unit/local-inventory.test.d.ts.map +1 -0
  400. package/dist/tests/unit/local-inventory.test.js +165 -0
  401. package/dist/tests/unit/local-inventory.test.js.map +1 -0
  402. package/dist/tests/unit/namespace-audit-telemetry.test.d.ts +10 -0
  403. package/dist/tests/unit/namespace-audit-telemetry.test.d.ts.map +1 -0
  404. package/dist/tests/unit/namespace-audit-telemetry.test.js +215 -0
  405. package/dist/tests/unit/namespace-audit-telemetry.test.js.map +1 -0
  406. package/dist/tests/unit/namespace-overrides.test.d.ts +18 -0
  407. package/dist/tests/unit/namespace-overrides.test.d.ts.map +1 -0
  408. package/dist/tests/unit/namespace-overrides.test.js +210 -0
  409. package/dist/tests/unit/namespace-overrides.test.js.map +1 -0
  410. package/dist/tests/unit/rename-engine.test.d.ts +26 -0
  411. package/dist/tests/unit/rename-engine.test.d.ts.map +1 -0
  412. package/dist/tests/unit/rename-engine.test.js +367 -0
  413. package/dist/tests/unit/rename-engine.test.js.map +1 -0
  414. package/dist/tests/unit/skill-inventory-audit.test.d.ts +20 -0
  415. package/dist/tests/unit/skill-inventory-audit.test.d.ts.map +1 -0
  416. package/dist/tests/unit/skill-inventory-audit.test.js +299 -0
  417. package/dist/tests/unit/skill-inventory-audit.test.js.map +1 -0
  418. package/dist/tests/unit/skill-pack-audit.helpers.test.d.ts +11 -0
  419. package/dist/tests/unit/skill-pack-audit.helpers.test.d.ts.map +1 -0
  420. package/dist/tests/unit/skill-pack-audit.helpers.test.js +61 -0
  421. package/dist/tests/unit/skill-pack-audit.helpers.test.js.map +1 -0
  422. package/dist/tests/unit/skill-pack-audit.test.js +1 -1
  423. package/dist/tests/unit/skill-pack-audit.test.js.map +1 -1
  424. package/dist/tests/unit/suggestion-chain.test.d.ts +17 -0
  425. package/dist/tests/unit/suggestion-chain.test.d.ts.map +1 -0
  426. package/dist/tests/unit/suggestion-chain.test.js +191 -0
  427. package/dist/tests/unit/suggestion-chain.test.js.map +1 -0
  428. package/dist/tests/webhooks/standalone-shutdown.test.d.ts +12 -0
  429. package/dist/tests/webhooks/standalone-shutdown.test.d.ts.map +1 -0
  430. package/dist/tests/webhooks/standalone-shutdown.test.js +91 -0
  431. package/dist/tests/webhooks/standalone-shutdown.test.js.map +1 -0
  432. package/package.json +18 -5
  433. package/server.json +3 -3
  434. package/src/assets/skills/skillsmith/SKILL.md +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,44 @@
2
2
 
3
3
  All notable changes to `@skillsmith/mcp-server` are documented here.
4
4
 
5
+ ## [Unreleased]
6
+
7
+ ## v0.5.0
8
+
9
+ This release ships the consumer namespace-audit feature end-to-end (SMI-4587 → SMI-4590, Waves 1–4). Three new MCP tools, an install-time pre-flight gate, an apply-with-confirmation edit-suggester, a session-start audit hook (Team/Enterprise), and an Enterprise scheduled-scan path.
10
+
11
+ ### New MCP tools (Team+ tier)
12
+
13
+ - **Feature**: `skill_inventory_audit` — audits the local `~/.claude/` inventory across skills/commands/agents/CLAUDE.md for namespace collisions; returns rename + edit suggestions. Three pass-modes (`preventative` / `power_user` / `governance`) controlled by `~/.skillsmith/config.json` `audit_mode` or `SKILLSMITH_AUDIT_MODE` env. ULID-based audit-history at `~/.skillsmith/audits/<auditId>/`. Privacy-gated for Free/Individual (returns typed error). (SMI-4587 / SMI-4590 PR #940)
14
+ - **Feature**: `apply_namespace_rename` — applies a rename suggestion from an audit result with three modes (`apply` / `custom` / `skip`); persists overrides via the namespace-overrides ledger. (SMI-4588 / SMI-4590 PR #940)
15
+ - **Feature**: `apply_recommended_edit` — applies a recommended prose edit (e.g. `add_domain_qualifier`); gated behind `APPLY_TEMPLATE_REGISTRY` allow-list with `apply_with_confirmation` UX from the edit-suggester pipeline. (SMI-4589 / SMI-4590 PR #940)
16
+
17
+ ### Install-time + session-time gates
18
+
19
+ - **Feature**: SMI-4588 install pre-flight + mode gate — `runNamespaceGate` runs before `install_skill` to surface name conflicts ahead of disk write; mode-aware behaviour (block in `preventative`, warn in `power_user`, audit-only in `governance`, skip in `off`). (PR #881)
20
+ - **Feature**: SMI-4590 Wave 4 PR 6/6 — tier-gated session-start audit hook (`scripts/session-start-audit.sh` → `scripts/lib/session-start-audit-helper.ts`). Debounced 24h via `~/.skillsmith/last-audit.json`. Free/Individual emit zero output (audit is a paid feature); Team gets a one-line collapsed summary on stderr; Enterprise gets a path-only pointer on stderr. Bounded 5-second wall clock; fail-soft (helper always exits 0). Disable via `SKILLSMITH_SESSION_AUDIT_DISABLE=1`. Logs at `~/.skillsmith/logs/session-audit-<date>.log`. (#956)
21
+ - **Feature**: SMI-4590 Wave 4 — Enterprise scheduled-scan via `runScheduledScan`. Idempotent within `SKILLSMITH_SCHEDULED_AUDIT_CACHE_MIN` (default 5 min); emits deep + un-filtered findings.
22
+
23
+ ### Detection passes + plumbing
24
+
25
+ - **Feature**: SMI-4587 Wave 1 — local-inventory scanner across 4 sources (skills/commands/agents/CLAUDE.md), ULID-based audit-history writer at `~/.skillsmith/audits/<auditId>/`, and exact-name collision detector. Adds `ulid@3.0.1` dependency. PR #2 adds the generic-token pass via the existing `detectGenericTriggerWords` helper (results surface as `genericFlags`, severity `warning`). PR #3 adds the semantic-overlap pass via existing `OverlapDetector` (gated by `audit_mode`), adds `bootstrapUnmanagedSkills` plumbing. Latency invariant: in `preventative` mode no `EmbeddingService` is touched (zero ONNX model load on the cheap critical path). PR #4 ships the audit-report writer (atomic markdown render with conditional CLAUDE.md scan caveat per D-ANTI-1), aggregate-only server telemetry (`namespace_audit_complete` event with collision counts and resolution counters; never auditId/path/identifier per decision #7), the `index.ts` barrel re-export at `@skillsmith/mcp-server/audit`, and refactors `LocalIndexer.indexSkillDir` to delegate to the new `indexLocalSkill` core helper.
26
+ - **Feature**: SMI-4588 Wave 2 — namespace overrides ledger + shared audit types (PR #877); rename engine + suggestion chain + 3 apply paths (PR #880); install pre-flight + mode gate (PR #881); integration tests + audit-report rename section + backup-gc (PR #884).
27
+ - **Feature**: SMI-4589 Wave 3 — edit-suggester (`apply_with_confirmation` for `add_domain_qualifier`). (PR #886)
28
+ - **Feature**: SMI-4590 Wave 4 PR 1/6 — `sklx audit advisories` tool routing + audit-tool-dispatch extraction. (#899)
29
+ - **Feature**: SMI-4590 Wave 4 PR 2/6 — `FrameworkAdapter` interface + `claudeCodeAdapter` + package wiring. Allows the audit pipeline to address agent frameworks beyond Claude Code in future. (#913)
30
+
31
+ ### Other
32
+
33
+ - **Bump**: `@skillsmith/core` dep range to `^0.6.0` to pick up the new audit subpath exports (`@skillsmith/core/config/audit-mode`, `@skillsmith/core/skills/index-local`) and multi-client install paths (`@skillsmith/core/install`).
34
+ - **Bump**: minor version (0.4.13 → 0.5.0) signals new MCP tool surface — three new tools added to the Team+ tier.
35
+ - **Feature**: SMI-4124 `skill_pack_audit` trigger-quality + namespace collision checks (PR #505).
36
+
37
+ ## v0.4.13
38
+
39
+ - **Fix**: map curated trust tier through MCP surface (SMI-4520) (#822)
40
+ - **Fix**: batch close 4 GitHub security alerts (SMI-4499/4501/4502/4504) (#805)
41
+ - **Fix**: rotate KEY_HMAC_SECRET to env var (SMI-4503, CodeQL #81) (#807)
42
+
5
43
  ## v0.4.12
6
44
 
7
45
  - **Fix**: team-workspace uses service-role client post-license-resolution (SMI-4312) (#650)
@@ -15,10 +53,6 @@ All notable changes to `@skillsmith/mcp-server` are documented here.
15
53
  - **Fix**: restore category/security/repo in skill detail view (SMI-4240) (#583)
16
54
  - **Other**: SMI-4190: release cadence docs — ADR-114 + CHANGELOG backfill + CONTRIBUTING (#552)
17
55
 
18
- ## [Unreleased]
19
-
20
- - **Feature**: SMI-4124 `skill_pack_audit` trigger-quality + namespace collision checks (PR #505).
21
-
22
56
  ## v0.4.9
23
57
 
24
58
  - **Feature**: SMI-4183 emit `webhook:subscription_tier_changed` audit events from subscription edge function (#538).
package/README.md CHANGED
@@ -24,6 +24,8 @@ Restart your MCP client to use the latest version.
24
24
 
25
25
  To disable update checks, set `SKILLSMITH_AUTO_UPDATE_CHECK=false` in your environment.
26
26
 
27
+ **Local-first by design.** Skillsmith caches the registry in a local SQLite database at `~/.skillsmith/skills.db`, shared across the MCP server, the CLI, and the VS Code extension. Search is FTS5 (SQLite's built-in keyword search) by default; semantic search is opt-in (`SKILLSMITH_USE_HNSW=true`) and runs over local ONNX embeddings (an open ML model format that runs on CPU — no API call). [Inside the Local Skill Database](https://skillsmith.app/blog/inside-the-local-skill-database) walks through the schema, the FTS5 / HNSW search paths, and how `sync` keeps the cache fresh.
28
+
27
29
  ## Installation
28
30
 
29
31
  ```bash
@@ -32,58 +34,132 @@ npm install @skillsmith/mcp-server
32
34
 
33
35
  ## Quick Start
34
36
 
35
- Copy this MCP configuration snippet:
37
+ Skillsmith works with any MCP-compatible AI agent. Pick the snippet for your client.
38
+ SMI-4580: snippets are sourced from `@skillsmith/cli/templates/mcp-server.template.snippets.ts`
39
+ so this README and the website docs cannot drift.
40
+
41
+ <details>
42
+ <summary><strong>Claude Code</strong> — <code>~/.claude/settings.json</code></summary>
36
43
 
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "@skillsmith/mcp-server": {
48
+ "command": "npx",
49
+ "args": ["-y", "@skillsmith/mcp-server"],
50
+ "env": {
51
+ "SKILLSMITH_API_KEY": "sk_live_..."
52
+ }
53
+ }
54
+ }
55
+ }
37
56
  ```
38
- Add this MCP server to my settings.json:
39
57
 
58
+ Restart Claude Code after editing settings.json.
59
+
60
+ </details>
61
+
62
+ <details>
63
+ <summary><strong>Cursor</strong> — <code>~/.cursor/mcp.json</code></summary>
64
+
65
+ ```json
40
66
  {
41
67
  "mcpServers": {
42
- "skillsmith": {
68
+ "@skillsmith/mcp-server": {
43
69
  "command": "npx",
44
- "args": ["-y", "@skillsmith/mcp-server"]
70
+ "args": ["-y", "@skillsmith/mcp-server"],
71
+ "env": {
72
+ "SKILLSMITH_API_KEY": "sk_live_..."
73
+ }
45
74
  }
46
75
  }
47
76
  }
48
77
  ```
49
78
 
50
- ## Platform Configuration
79
+ Cursor 2.4+ required. Reload the window after saving.
51
80
 
52
- Skillsmith works with any MCP-compatible AI agent platform. Add the following to your platform's MCP config file:
81
+ </details>
53
82
 
54
- **Claude Code** (`~/.claude/settings.json`):
83
+ <details>
84
+ <summary><strong>GitHub Copilot (VS Code)</strong> — <code>.vscode/mcp.json</code> (workspace)</summary>
55
85
 
56
86
  ```json
57
87
  {
58
88
  "mcpServers": {
59
- "skillsmith": {
89
+ "@skillsmith/mcp-server": {
60
90
  "command": "npx",
61
91
  "args": ["-y", "@skillsmith/mcp-server"],
62
92
  "env": {
63
- "SKILLSMITH_API_KEY": "sk_live_your_key_here"
93
+ "SKILLSMITH_API_KEY": "sk_live_..."
64
94
  }
65
95
  }
66
96
  }
67
97
  }
68
98
  ```
69
99
 
70
- **OpenClaw / Cursor / Codex / Antigravity / GitHub Copilot / other MCP clients** (`openclaw.json` or equivalent):
100
+ VS Code 1.108+ required. Workspace-scoped (commit to repo if team-shared, or use user `settings.json` instead).
101
+
102
+ </details>
103
+
104
+ <details>
105
+ <summary><strong>Windsurf</strong> — <code>~/.codeium/windsurf/mcp_config.json</code></summary>
71
106
 
72
107
  ```json
73
108
  {
74
109
  "mcpServers": {
75
- "skillsmith": {
110
+ "@skillsmith/mcp-server": {
76
111
  "command": "npx",
77
112
  "args": ["-y", "@skillsmith/mcp-server"],
78
113
  "env": {
79
- "SKILLSMITH_API_KEY": "sk_live_your_key_here"
114
+ "SKILLSMITH_API_KEY": "${env:SKILLSMITH_API_KEY}"
80
115
  }
81
116
  }
82
117
  }
83
118
  }
84
119
  ```
85
120
 
86
- Get your API key at https://skillsmith.app/account (free Community tier available).
121
+ Supports `${env:VAR}` interpolation; export `SKILLSMITH_API_KEY` in your shell instead of inlining the secret.
122
+
123
+ </details>
124
+
125
+ <details>
126
+ <summary><strong>Codex CLI</strong> — <code>~/.codex/config.toml</code> (TOML, not JSON)</summary>
127
+
128
+ ```toml
129
+ [mcp_servers.@skillsmith/mcp-server]
130
+ command = "npx"
131
+ args = ["-y", "@skillsmith/mcp-server"]
132
+
133
+ [mcp_servers.@skillsmith/mcp-server.env]
134
+ SKILLSMITH_API_KEY = "sk_live_..."
135
+ ```
136
+
137
+ Codex reads `~/.agents/skills`. When installing via Skillsmith CLI, pass `--client agents`.
138
+
139
+ </details>
140
+
141
+ <details>
142
+ <summary><strong>Cross-agent (open standard)</strong> — <code>~/.agents/mcp.json</code></summary>
143
+
144
+ ```json
145
+ {
146
+ "mcpServers": {
147
+ "@skillsmith/mcp-server": {
148
+ "command": "npx",
149
+ "args": ["-y", "@skillsmith/mcp-server"],
150
+ "env": {
151
+ "SKILLSMITH_API_KEY": "sk_live_..."
152
+ }
153
+ }
154
+ }
155
+ }
156
+ ```
157
+
158
+ Read by any agent honouring the cross-agent skill convention.
159
+
160
+ </details>
161
+
162
+ Get your API key at <https://skillsmith.app/account> (free Community tier available).
87
163
 
88
164
  After adding to your MCP client settings and restarting, try asking:
89
165
 
@@ -352,6 +428,50 @@ Index local skills from `~/.claude/skills/` directory.
352
428
  | `SKILLSMITH_TELEMETRY_ENABLED` | Enable anonymous telemetry | `false` |
353
429
  | `SKILLSMITH_USE_WASM` | Force WASM SQLite driver (sql.js) | `false` |
354
430
  | `POSTHOG_API_KEY` | PostHog API key (required if telemetry enabled) | - |
431
+ | `SKILLSMITH_API_KEY_HMAC_SECRET` | HMAC secret for hashing Custom Integration API keys before DB storage. Required if you invoke `webhook_configure` or `api_key_manage`. See setup below. | - |
432
+
433
+ ### Custom Integration Setup (Team+ admins)
434
+
435
+ The `webhook_configure` and `api_key_manage` tools hash secrets server-side via HMAC-SHA-256 before persisting to the shared `api_keys` table. The HMAC key lives in `SKILLSMITH_API_KEY_HMAC_SECRET` rather than as a hardcoded constant — defense-in-depth so a leaked DB cannot be reverse-cracked offline.
436
+
437
+ **Distribution model**: identical to `SUPABASE_SERVICE_ROLE_KEY`. The same secret value must be set on every MCP host that creates or verifies Custom Integration API keys, otherwise hashes computed on host A won't match hashes verified on host B.
438
+
439
+ If the variable is missing or shorter than 32 characters when these tools are invoked, the call fails fast with:
440
+
441
+ ```
442
+ SKILLSMITH_API_KEY_HMAC_SECRET must be set to a 32+ character random secret
443
+ before integration tools can be used. Generate one via: openssl rand -base64 48
444
+ ```
445
+
446
+ **First-time provisioning** (Skillsmith admin, once per organization):
447
+
448
+ ```bash
449
+ openssl rand -base64 48
450
+ ```
451
+
452
+ Distribute that value through the same secure channel used for `SUPABASE_SERVICE_ROLE_KEY` (e.g., 1Password vault, encrypted onboarding email). Each Team-tier admin sets it on their own MCP host alongside their other secrets:
453
+
454
+ ```jsonc
455
+ // ~/.claude/settings.json
456
+ {
457
+ "mcpServers": {
458
+ "skillsmith": {
459
+ "command": "npx",
460
+ "args": ["-y", "@skillsmith/mcp-server"],
461
+ "env": {
462
+ "SKILLSMITH_API_KEY": "sk_live_your_personal_key",
463
+ "SKILLSMITH_LICENSE_KEY": "sklic_your_team_license",
464
+ "SUPABASE_SERVICE_ROLE_KEY": "eyJ...your_service_role_jwt",
465
+ "SKILLSMITH_API_KEY_HMAC_SECRET": "<the shared 32+ char secret>"
466
+ }
467
+ }
468
+ }
469
+ }
470
+ ```
471
+
472
+ **Rotation**: replace the secret on every host in lockstep. Existing rows in the `api_keys` table become unverifiable after rotation, so coordinate with affected admins or invalidate keys explicitly. As of 2026-04-26 the table has zero rows, so the first rotation post-launch is free.
473
+
474
+ If you only use Community/Individual tools (search, install, recommend, etc.), this variable is not needed.
355
475
 
356
476
  ### WASM Fallback (v0.3.18+)
357
477