@skillsmith/mcp-server 0.3.0 → 0.3.1

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 (314) hide show
  1. package/package.json +1 -1
  2. package/dist/.tsbuildinfo +0 -1
  3. package/dist/src/__tests__/get-skill.test.d.ts +0 -6
  4. package/dist/src/__tests__/get-skill.test.d.ts.map +0 -1
  5. package/dist/src/__tests__/get-skill.test.js +0 -88
  6. package/dist/src/__tests__/get-skill.test.js.map +0 -1
  7. package/dist/src/__tests__/middleware/errorFormatter.test.d.ts +0 -7
  8. package/dist/src/__tests__/middleware/errorFormatter.test.d.ts.map +0 -1
  9. package/dist/src/__tests__/middleware/errorFormatter.test.js +0 -304
  10. package/dist/src/__tests__/middleware/errorFormatter.test.js.map +0 -1
  11. package/dist/src/__tests__/middleware/license.test.d.ts +0 -7
  12. package/dist/src/__tests__/middleware/license.test.d.ts.map +0 -1
  13. package/dist/src/__tests__/middleware/license.test.js +0 -500
  14. package/dist/src/__tests__/middleware/license.test.js.map +0 -1
  15. package/dist/src/__tests__/search.test.d.ts +0 -6
  16. package/dist/src/__tests__/search.test.d.ts.map +0 -1
  17. package/dist/src/__tests__/search.test.js +0 -86
  18. package/dist/src/__tests__/search.test.js.map +0 -1
  19. package/dist/src/__tests__/test-utils.d.ts +0 -20
  20. package/dist/src/__tests__/test-utils.d.ts.map +0 -1
  21. package/dist/src/__tests__/test-utils.js +0 -91
  22. package/dist/src/__tests__/test-utils.js.map +0 -1
  23. package/dist/src/context/index.d.ts +0 -19
  24. package/dist/src/context/index.d.ts.map +0 -1
  25. package/dist/src/context/index.js +0 -25
  26. package/dist/src/context/index.js.map +0 -1
  27. package/dist/src/context/project-detector.d.ts +0 -145
  28. package/dist/src/context/project-detector.d.ts.map +0 -1
  29. package/dist/src/context/project-detector.js +0 -321
  30. package/dist/src/context/project-detector.js.map +0 -1
  31. package/dist/src/context.d.ts +0 -157
  32. package/dist/src/context.d.ts.map +0 -1
  33. package/dist/src/context.js +0 -231
  34. package/dist/src/context.js.map +0 -1
  35. package/dist/src/core-shim.d.ts +0 -7
  36. package/dist/src/core-shim.d.ts.map +0 -1
  37. package/dist/src/core-shim.js +0 -9
  38. package/dist/src/core-shim.js.map +0 -1
  39. package/dist/src/health/healthCheck.d.ts +0 -88
  40. package/dist/src/health/healthCheck.d.ts.map +0 -1
  41. package/dist/src/health/healthCheck.js +0 -117
  42. package/dist/src/health/healthCheck.js.map +0 -1
  43. package/dist/src/health/index.d.ts +0 -21
  44. package/dist/src/health/index.d.ts.map +0 -1
  45. package/dist/src/health/index.js +0 -21
  46. package/dist/src/health/index.js.map +0 -1
  47. package/dist/src/health/readinessCheck.d.ts +0 -139
  48. package/dist/src/health/readinessCheck.d.ts.map +0 -1
  49. package/dist/src/health/readinessCheck.js +0 -266
  50. package/dist/src/health/readinessCheck.js.map +0 -1
  51. package/dist/src/index.d.ts +0 -9
  52. package/dist/src/index.d.ts.map +0 -1
  53. package/dist/src/index.js +0 -236
  54. package/dist/src/index.js.map +0 -1
  55. package/dist/src/index.test.d.ts +0 -2
  56. package/dist/src/index.test.d.ts.map +0 -1
  57. package/dist/src/index.test.js +0 -43
  58. package/dist/src/index.test.js.map +0 -1
  59. package/dist/src/logger.d.ts +0 -26
  60. package/dist/src/logger.d.ts.map +0 -1
  61. package/dist/src/logger.js +0 -179
  62. package/dist/src/logger.js.map +0 -1
  63. package/dist/src/middleware/__tests__/csp.test.d.ts +0 -2
  64. package/dist/src/middleware/__tests__/csp.test.d.ts.map +0 -1
  65. package/dist/src/middleware/__tests__/csp.test.js +0 -390
  66. package/dist/src/middleware/__tests__/csp.test.js.map +0 -1
  67. package/dist/src/middleware/csp.d.ts +0 -103
  68. package/dist/src/middleware/csp.d.ts.map +0 -1
  69. package/dist/src/middleware/csp.js +0 -273
  70. package/dist/src/middleware/csp.js.map +0 -1
  71. package/dist/src/middleware/degradation.d.ts +0 -105
  72. package/dist/src/middleware/degradation.d.ts.map +0 -1
  73. package/dist/src/middleware/degradation.js +0 -319
  74. package/dist/src/middleware/degradation.js.map +0 -1
  75. package/dist/src/middleware/errorFormatter.d.ts +0 -119
  76. package/dist/src/middleware/errorFormatter.d.ts.map +0 -1
  77. package/dist/src/middleware/errorFormatter.js +0 -294
  78. package/dist/src/middleware/errorFormatter.js.map +0 -1
  79. package/dist/src/middleware/index.d.ts +0 -11
  80. package/dist/src/middleware/index.d.ts.map +0 -1
  81. package/dist/src/middleware/index.js +0 -16
  82. package/dist/src/middleware/index.js.map +0 -1
  83. package/dist/src/middleware/license.d.ts +0 -169
  84. package/dist/src/middleware/license.d.ts.map +0 -1
  85. package/dist/src/middleware/license.js +0 -292
  86. package/dist/src/middleware/license.js.map +0 -1
  87. package/dist/src/middleware/quota.d.ts +0 -182
  88. package/dist/src/middleware/quota.d.ts.map +0 -1
  89. package/dist/src/middleware/quota.js +0 -309
  90. package/dist/src/middleware/quota.js.map +0 -1
  91. package/dist/src/middleware/toolFeatureMapping.d.ts +0 -36
  92. package/dist/src/middleware/toolFeatureMapping.d.ts.map +0 -1
  93. package/dist/src/middleware/toolFeatureMapping.js +0 -96
  94. package/dist/src/middleware/toolFeatureMapping.js.map +0 -1
  95. package/dist/src/onboarding/first-run.d.ts +0 -65
  96. package/dist/src/onboarding/first-run.d.ts.map +0 -1
  97. package/dist/src/onboarding/first-run.js +0 -79
  98. package/dist/src/onboarding/first-run.js.map +0 -1
  99. package/dist/src/onboarding/index.d.ts +0 -7
  100. package/dist/src/onboarding/index.d.ts.map +0 -1
  101. package/dist/src/onboarding/index.js +0 -7
  102. package/dist/src/onboarding/index.js.map +0 -1
  103. package/dist/src/onboarding/install-assets.d.ts +0 -27
  104. package/dist/src/onboarding/install-assets.d.ts.map +0 -1
  105. package/dist/src/onboarding/install-assets.js +0 -128
  106. package/dist/src/onboarding/install-assets.js.map +0 -1
  107. package/dist/src/suggestions/index.d.ts +0 -21
  108. package/dist/src/suggestions/index.d.ts.map +0 -1
  109. package/dist/src/suggestions/index.js +0 -20
  110. package/dist/src/suggestions/index.js.map +0 -1
  111. package/dist/src/suggestions/suggestion-engine.d.ts +0 -185
  112. package/dist/src/suggestions/suggestion-engine.d.ts.map +0 -1
  113. package/dist/src/suggestions/suggestion-engine.js +0 -352
  114. package/dist/src/suggestions/suggestion-engine.js.map +0 -1
  115. package/dist/src/suggestions/types.d.ts +0 -88
  116. package/dist/src/suggestions/types.d.ts.map +0 -1
  117. package/dist/src/suggestions/types.js +0 -21
  118. package/dist/src/suggestions/types.js.map +0 -1
  119. package/dist/src/tools/analyze.d.ts +0 -151
  120. package/dist/src/tools/analyze.d.ts.map +0 -1
  121. package/dist/src/tools/analyze.js +0 -205
  122. package/dist/src/tools/analyze.js.map +0 -1
  123. package/dist/src/tools/compare.d.ts +0 -149
  124. package/dist/src/tools/compare.d.ts.map +0 -1
  125. package/dist/src/tools/compare.js +0 -464
  126. package/dist/src/tools/compare.js.map +0 -1
  127. package/dist/src/tools/get-skill.d.ts +0 -107
  128. package/dist/src/tools/get-skill.d.ts.map +0 -1
  129. package/dist/src/tools/get-skill.js +0 -260
  130. package/dist/src/tools/get-skill.js.map +0 -1
  131. package/dist/src/tools/index.d.ts +0 -20
  132. package/dist/src/tools/index.d.ts.map +0 -1
  133. package/dist/src/tools/index.js +0 -20
  134. package/dist/src/tools/index.js.map +0 -1
  135. package/dist/src/tools/install.d.ts +0 -122
  136. package/dist/src/tools/install.d.ts.map +0 -1
  137. package/dist/src/tools/install.js +0 -326
  138. package/dist/src/tools/install.js.map +0 -1
  139. package/dist/src/tools/recommend.d.ts +0 -169
  140. package/dist/src/tools/recommend.d.ts.map +0 -1
  141. package/dist/src/tools/recommend.js +0 -357
  142. package/dist/src/tools/recommend.js.map +0 -1
  143. package/dist/src/tools/search.d.ts +0 -114
  144. package/dist/src/tools/search.d.ts.map +0 -1
  145. package/dist/src/tools/search.js +0 -247
  146. package/dist/src/tools/search.js.map +0 -1
  147. package/dist/src/tools/suggest.d.ts +0 -181
  148. package/dist/src/tools/suggest.d.ts.map +0 -1
  149. package/dist/src/tools/suggest.js +0 -310
  150. package/dist/src/tools/suggest.js.map +0 -1
  151. package/dist/src/tools/uninstall.d.ts +0 -123
  152. package/dist/src/tools/uninstall.d.ts.map +0 -1
  153. package/dist/src/tools/uninstall.js +0 -250
  154. package/dist/src/tools/uninstall.js.map +0 -1
  155. package/dist/src/tools/validate.d.ts +0 -122
  156. package/dist/src/tools/validate.d.ts.map +0 -1
  157. package/dist/src/tools/validate.js +0 -497
  158. package/dist/src/tools/validate.js.map +0 -1
  159. package/dist/src/utils/installed-skills.d.ts +0 -101
  160. package/dist/src/utils/installed-skills.d.ts.map +0 -1
  161. package/dist/src/utils/installed-skills.js +0 -220
  162. package/dist/src/utils/installed-skills.js.map +0 -1
  163. package/dist/src/utils/validation.d.ts +0 -95
  164. package/dist/src/utils/validation.d.ts.map +0 -1
  165. package/dist/src/utils/validation.js +0 -186
  166. package/dist/src/utils/validation.js.map +0 -1
  167. package/dist/src/webhooks/index.d.ts +0 -8
  168. package/dist/src/webhooks/index.d.ts.map +0 -1
  169. package/dist/src/webhooks/index.js +0 -9
  170. package/dist/src/webhooks/index.js.map +0 -1
  171. package/dist/src/webhooks/webhook-endpoint.d.ts +0 -149
  172. package/dist/src/webhooks/webhook-endpoint.d.ts.map +0 -1
  173. package/dist/src/webhooks/webhook-endpoint.js +0 -339
  174. package/dist/src/webhooks/webhook-endpoint.js.map +0 -1
  175. package/dist/tests/compare.test.d.ts +0 -6
  176. package/dist/tests/compare.test.d.ts.map +0 -1
  177. package/dist/tests/compare.test.js +0 -225
  178. package/dist/tests/compare.test.js.map +0 -1
  179. package/dist/tests/context/project-detector.test.d.ts +0 -6
  180. package/dist/tests/context/project-detector.test.d.ts.map +0 -1
  181. package/dist/tests/context/project-detector.test.js +0 -719
  182. package/dist/tests/context/project-detector.test.js.map +0 -1
  183. package/dist/tests/e2e/compare.e2e.test.d.ts +0 -10
  184. package/dist/tests/e2e/compare.e2e.test.d.ts.map +0 -1
  185. package/dist/tests/e2e/compare.e2e.test.js +0 -296
  186. package/dist/tests/e2e/compare.e2e.test.js.map +0 -1
  187. package/dist/tests/e2e/install-flow.e2e.test.d.ts +0 -10
  188. package/dist/tests/e2e/install-flow.e2e.test.d.ts.map +0 -1
  189. package/dist/tests/e2e/install-flow.e2e.test.js +0 -229
  190. package/dist/tests/e2e/install-flow.e2e.test.js.map +0 -1
  191. package/dist/tests/e2e/recommend.e2e.test.d.ts +0 -12
  192. package/dist/tests/e2e/recommend.e2e.test.d.ts.map +0 -1
  193. package/dist/tests/e2e/recommend.e2e.test.js +0 -357
  194. package/dist/tests/e2e/recommend.e2e.test.js.map +0 -1
  195. package/dist/tests/e2e/skill-flow.e2e.test.d.ts +0 -10
  196. package/dist/tests/e2e/skill-flow.e2e.test.d.ts.map +0 -1
  197. package/dist/tests/e2e/skill-flow.e2e.test.js +0 -311
  198. package/dist/tests/e2e/skill-flow.e2e.test.js.map +0 -1
  199. package/dist/tests/e2e/suggest.e2e.test.d.ts +0 -13
  200. package/dist/tests/e2e/suggest.e2e.test.d.ts.map +0 -1
  201. package/dist/tests/e2e/suggest.e2e.test.js +0 -367
  202. package/dist/tests/e2e/suggest.e2e.test.js.map +0 -1
  203. package/dist/tests/e2e/utils/baseline-collector.d.ts +0 -107
  204. package/dist/tests/e2e/utils/baseline-collector.d.ts.map +0 -1
  205. package/dist/tests/e2e/utils/baseline-collector.js +0 -211
  206. package/dist/tests/e2e/utils/baseline-collector.js.map +0 -1
  207. package/dist/tests/e2e/utils/hardcoded-detector.d.ts +0 -46
  208. package/dist/tests/e2e/utils/hardcoded-detector.d.ts.map +0 -1
  209. package/dist/tests/e2e/utils/hardcoded-detector.js +0 -255
  210. package/dist/tests/e2e/utils/hardcoded-detector.js.map +0 -1
  211. package/dist/tests/e2e/utils/index.d.ts +0 -7
  212. package/dist/tests/e2e/utils/index.d.ts.map +0 -1
  213. package/dist/tests/e2e/utils/index.js +0 -7
  214. package/dist/tests/e2e/utils/index.js.map +0 -1
  215. package/dist/tests/e2e/utils/linear-reporter.d.ts +0 -60
  216. package/dist/tests/e2e/utils/linear-reporter.d.ts.map +0 -1
  217. package/dist/tests/e2e/utils/linear-reporter.js +0 -232
  218. package/dist/tests/e2e/utils/linear-reporter.js.map +0 -1
  219. package/dist/tests/health.test.d.ts +0 -9
  220. package/dist/tests/health.test.d.ts.map +0 -1
  221. package/dist/tests/health.test.js +0 -308
  222. package/dist/tests/health.test.js.map +0 -1
  223. package/dist/tests/integration/analyze.integration.test.d.ts +0 -2
  224. package/dist/tests/integration/analyze.integration.test.d.ts.map +0 -1
  225. package/dist/tests/integration/analyze.integration.test.js +0 -244
  226. package/dist/tests/integration/analyze.integration.test.js.map +0 -1
  227. package/dist/tests/integration/compare.integration.test.d.ts +0 -2
  228. package/dist/tests/integration/compare.integration.test.d.ts.map +0 -1
  229. package/dist/tests/integration/compare.integration.test.js +0 -120
  230. package/dist/tests/integration/compare.integration.test.js.map +0 -1
  231. package/dist/tests/integration/fixtures/test-skills.d.ts +0 -62
  232. package/dist/tests/integration/fixtures/test-skills.d.ts.map +0 -1
  233. package/dist/tests/integration/fixtures/test-skills.js +0 -644
  234. package/dist/tests/integration/fixtures/test-skills.js.map +0 -1
  235. package/dist/tests/integration/get-skill.integration.test.d.ts +0 -6
  236. package/dist/tests/integration/get-skill.integration.test.d.ts.map +0 -1
  237. package/dist/tests/integration/get-skill.integration.test.js +0 -203
  238. package/dist/tests/integration/get-skill.integration.test.js.map +0 -1
  239. package/dist/tests/integration/github-api.integration.test.d.ts +0 -14
  240. package/dist/tests/integration/github-api.integration.test.d.ts.map +0 -1
  241. package/dist/tests/integration/github-api.integration.test.js +0 -190
  242. package/dist/tests/integration/github-api.integration.test.js.map +0 -1
  243. package/dist/tests/integration/install.integration.test.d.ts +0 -6
  244. package/dist/tests/integration/install.integration.test.d.ts.map +0 -1
  245. package/dist/tests/integration/install.integration.test.js +0 -282
  246. package/dist/tests/integration/install.integration.test.js.map +0 -1
  247. package/dist/tests/integration/recommend.integration.test.d.ts +0 -2
  248. package/dist/tests/integration/recommend.integration.test.d.ts.map +0 -1
  249. package/dist/tests/integration/recommend.integration.test.js +0 -217
  250. package/dist/tests/integration/recommend.integration.test.js.map +0 -1
  251. package/dist/tests/integration/search.integration.test.d.ts +0 -6
  252. package/dist/tests/integration/search.integration.test.d.ts.map +0 -1
  253. package/dist/tests/integration/search.integration.test.js +0 -229
  254. package/dist/tests/integration/search.integration.test.js.map +0 -1
  255. package/dist/tests/integration/setup.d.ts +0 -74
  256. package/dist/tests/integration/setup.d.ts.map +0 -1
  257. package/dist/tests/integration/setup.js +0 -131
  258. package/dist/tests/integration/setup.js.map +0 -1
  259. package/dist/tests/integration/uninstall.integration.test.d.ts +0 -6
  260. package/dist/tests/integration/uninstall.integration.test.d.ts.map +0 -1
  261. package/dist/tests/integration/uninstall.integration.test.js +0 -296
  262. package/dist/tests/integration/uninstall.integration.test.js.map +0 -1
  263. package/dist/tests/integration/validate.integration.test.d.ts +0 -2
  264. package/dist/tests/integration/validate.integration.test.d.ts.map +0 -1
  265. package/dist/tests/integration/validate.integration.test.js +0 -181
  266. package/dist/tests/integration/validate.integration.test.js.map +0 -1
  267. package/dist/tests/onboarding/first-run.test.d.ts +0 -7
  268. package/dist/tests/onboarding/first-run.test.d.ts.map +0 -1
  269. package/dist/tests/onboarding/first-run.test.js +0 -264
  270. package/dist/tests/onboarding/first-run.test.js.map +0 -1
  271. package/dist/tests/performance/search-performance.test.d.ts +0 -10
  272. package/dist/tests/performance/search-performance.test.d.ts.map +0 -1
  273. package/dist/tests/performance/search-performance.test.js +0 -222
  274. package/dist/tests/performance/search-performance.test.js.map +0 -1
  275. package/dist/tests/recommend.test.d.ts +0 -6
  276. package/dist/tests/recommend.test.d.ts.map +0 -1
  277. package/dist/tests/recommend.test.js +0 -210
  278. package/dist/tests/recommend.test.js.map +0 -1
  279. package/dist/tests/suggestions/suggestion-engine.test.d.ts +0 -6
  280. package/dist/tests/suggestions/suggestion-engine.test.d.ts.map +0 -1
  281. package/dist/tests/suggestions/suggestion-engine.test.js +0 -448
  282. package/dist/tests/suggestions/suggestion-engine.test.js.map +0 -1
  283. package/dist/tests/test-utils.d.ts +0 -74
  284. package/dist/tests/test-utils.d.ts.map +0 -1
  285. package/dist/tests/test-utils.js +0 -98
  286. package/dist/tests/test-utils.js.map +0 -1
  287. package/dist/tests/tools.test.d.ts +0 -5
  288. package/dist/tests/tools.test.d.ts.map +0 -1
  289. package/dist/tests/tools.test.js +0 -138
  290. package/dist/tests/tools.test.js.map +0 -1
  291. package/dist/tests/unit/installed-skills.test.d.ts +0 -6
  292. package/dist/tests/unit/installed-skills.test.d.ts.map +0 -1
  293. package/dist/tests/unit/installed-skills.test.js +0 -285
  294. package/dist/tests/unit/installed-skills.test.js.map +0 -1
  295. package/dist/tests/unit/logger.test.d.ts +0 -6
  296. package/dist/tests/unit/logger.test.d.ts.map +0 -1
  297. package/dist/tests/unit/logger.test.js +0 -281
  298. package/dist/tests/unit/logger.test.js.map +0 -1
  299. package/dist/tests/validate.test.d.ts +0 -5
  300. package/dist/tests/validate.test.d.ts.map +0 -1
  301. package/dist/tests/validate.test.js +0 -303
  302. package/dist/tests/validate.test.js.map +0 -1
  303. package/dist/tests/webhooks/proxy-trust.security.test.d.ts +0 -8
  304. package/dist/tests/webhooks/proxy-trust.security.test.d.ts.map +0 -1
  305. package/dist/tests/webhooks/proxy-trust.security.test.js +0 -145
  306. package/dist/tests/webhooks/proxy-trust.security.test.js.map +0 -1
  307. package/dist/tests/webhooks/rate-limiter.security.test.d.ts +0 -8
  308. package/dist/tests/webhooks/rate-limiter.security.test.d.ts.map +0 -1
  309. package/dist/tests/webhooks/rate-limiter.security.test.js +0 -122
  310. package/dist/tests/webhooks/rate-limiter.security.test.js.map +0 -1
  311. package/dist/vitest.config.d.ts +0 -6
  312. package/dist/vitest.config.d.ts.map +0 -1
  313. package/dist/vitest.config.js +0 -13
  314. package/dist/vitest.config.js.map +0 -1
@@ -1,210 +0,0 @@
1
- /**
2
- * Tests for SMI-741: MCP Skill Recommend Tool
3
- * Updated for SMI-902: Use real database instead of hardcoded skills
4
- */
5
- import { describe, it, expect, beforeAll, afterAll } from 'vitest';
6
- import { executeRecommend, formatRecommendations, recommendInputSchema, } from '../src/tools/recommend.js';
7
- import { createTestDatabase } from './integration/setup.js';
8
- // Test context with database
9
- let testDbContext;
10
- let toolContext;
11
- beforeAll(async () => {
12
- testDbContext = await createTestDatabase();
13
- // SMI-1183: Include apiClient for API integration
14
- toolContext = {
15
- db: testDbContext.db,
16
- searchService: testDbContext.searchService,
17
- skillRepository: testDbContext.skillRepository,
18
- apiClient: testDbContext.apiClient,
19
- };
20
- });
21
- afterAll(async () => {
22
- await testDbContext.cleanup();
23
- });
24
- describe('Skill Recommend Tool', () => {
25
- describe('recommendInputSchema', () => {
26
- it('should validate empty installed_skills array', () => {
27
- const result = recommendInputSchema.parse({
28
- installed_skills: [],
29
- });
30
- expect(result.installed_skills).toEqual([]);
31
- expect(result.limit).toBe(5); // default
32
- });
33
- it('should validate with project_context', () => {
34
- const result = recommendInputSchema.parse({
35
- installed_skills: ['anthropic/commit'],
36
- project_context: 'React TypeScript frontend',
37
- limit: 10,
38
- });
39
- expect(result.installed_skills).toEqual(['anthropic/commit']);
40
- expect(result.project_context).toBe('React TypeScript frontend');
41
- expect(result.limit).toBe(10);
42
- });
43
- it('should enforce limit bounds', () => {
44
- expect(() => recommendInputSchema.parse({
45
- installed_skills: [],
46
- limit: 0,
47
- })).toThrow();
48
- expect(() => recommendInputSchema.parse({
49
- installed_skills: [],
50
- limit: 100,
51
- })).toThrow();
52
- });
53
- it('should default limit to 5', () => {
54
- const result = recommendInputSchema.parse({
55
- installed_skills: [],
56
- });
57
- expect(result.limit).toBe(5);
58
- });
59
- });
60
- describe('executeRecommend', () => {
61
- it('should return recommendations with auto-detected skills when installed_skills is empty', async () => {
62
- // SMI-906: Empty installed_skills now triggers auto-detection from ~/.claude/skills/
63
- const result = await executeRecommend({
64
- installed_skills: [],
65
- }, toolContext);
66
- expect(result.recommendations).toBeDefined();
67
- expect(result.recommendations.length).toBeGreaterThan(0);
68
- expect(result.recommendations.length).toBeLessThanOrEqual(5);
69
- // installed_count may be > 0 due to auto-detection from ~/.claude/skills/
70
- expect(result.context.installed_count).toBeGreaterThanOrEqual(0);
71
- expect(result.context.has_project_context).toBe(false);
72
- expect(result.timing.totalMs).toBeGreaterThanOrEqual(0);
73
- });
74
- it('should return recommendations based on installed skills', async () => {
75
- const result = await executeRecommend({
76
- installed_skills: ['anthropic/commit'],
77
- detect_overlap: false, // Disable overlap detection for consistent testing
78
- limit: 5,
79
- }, toolContext);
80
- expect(result.recommendations).toBeDefined();
81
- expect(result.recommendations.length).toBeGreaterThan(0);
82
- expect(result.context.installed_count).toBe(1);
83
- // Should not recommend already installed skill
84
- const recommendedIds = result.recommendations.map((r) => r.skill_id);
85
- expect(recommendedIds).not.toContain('anthropic/commit');
86
- });
87
- it('should filter out installed skills from recommendations', async () => {
88
- const result = await executeRecommend({
89
- installed_skills: ['anthropic/commit', 'anthropic/review-pr'],
90
- detect_overlap: false, // Disable overlap detection for consistent testing
91
- limit: 10,
92
- }, toolContext);
93
- const recommendedIds = result.recommendations.map((r) => r.skill_id);
94
- expect(recommendedIds).not.toContain('anthropic/commit');
95
- expect(recommendedIds).not.toContain('anthropic/review-pr');
96
- });
97
- it('should include recommendation reason', async () => {
98
- const result = await executeRecommend({
99
- installed_skills: ['anthropic/commit'],
100
- detect_overlap: false, // Disable overlap detection for consistent testing
101
- limit: 5,
102
- }, toolContext);
103
- for (const rec of result.recommendations) {
104
- expect(rec.reason).toBeDefined();
105
- expect(rec.reason.length).toBeGreaterThan(0);
106
- }
107
- });
108
- it('should include similarity score between 0 and 1', async () => {
109
- const result = await executeRecommend({
110
- installed_skills: ['anthropic/commit'],
111
- detect_overlap: false, // Disable overlap detection for consistent testing
112
- limit: 5,
113
- }, toolContext);
114
- for (const rec of result.recommendations) {
115
- expect(rec.similarity_score).toBeGreaterThanOrEqual(0);
116
- expect(rec.similarity_score).toBeLessThanOrEqual(1);
117
- }
118
- });
119
- it('should include trust tier and quality score', async () => {
120
- const result = await executeRecommend({
121
- installed_skills: [],
122
- limit: 5,
123
- }, toolContext);
124
- for (const rec of result.recommendations) {
125
- expect(rec.trust_tier).toBeDefined();
126
- expect(['verified', 'community', 'standard', 'unverified']).toContain(rec.trust_tier);
127
- expect(rec.quality_score).toBeGreaterThanOrEqual(0);
128
- expect(rec.quality_score).toBeLessThanOrEqual(100);
129
- }
130
- });
131
- it('should respect limit parameter', async () => {
132
- const result = await executeRecommend({
133
- installed_skills: [],
134
- limit: 3,
135
- }, toolContext);
136
- expect(result.recommendations.length).toBeLessThanOrEqual(3);
137
- });
138
- it('should use project_context for better recommendations', async () => {
139
- const result = await executeRecommend({
140
- installed_skills: [],
141
- project_context: 'React frontend with Jest testing',
142
- limit: 10,
143
- }, toolContext);
144
- expect(result.context.has_project_context).toBe(true);
145
- // Should have React or testing related skills ranked higher
146
- const topSkillNames = result.recommendations.slice(0, 3).map((r) => r.name);
147
- const hasRelevantSkill = topSkillNames.some((name) => name.toLowerCase().includes('react') ||
148
- name.toLowerCase().includes('jest') ||
149
- name.toLowerCase().includes('test'));
150
- expect(hasRelevantSkill || result.recommendations.length > 0).toBe(true);
151
- });
152
- it('should return candidates_considered count', async () => {
153
- const result = await executeRecommend({
154
- installed_skills: ['anthropic/commit'],
155
- detect_overlap: false, // Disable overlap detection for consistent testing
156
- limit: 5,
157
- }, toolContext);
158
- expect(result.candidates_considered).toBeGreaterThan(0);
159
- });
160
- it('should handle case-insensitive skill IDs', async () => {
161
- const result = await executeRecommend({
162
- installed_skills: ['ANTHROPIC/COMMIT'],
163
- detect_overlap: false, // Disable overlap detection for consistent testing
164
- limit: 5,
165
- }, toolContext);
166
- const recommendedIds = result.recommendations.map((r) => r.skill_id.toLowerCase());
167
- expect(recommendedIds).not.toContain('anthropic/commit');
168
- });
169
- });
170
- describe('formatRecommendations', () => {
171
- it('should format recommendations for terminal display', async () => {
172
- const result = await executeRecommend({
173
- installed_skills: ['anthropic/commit'],
174
- detect_overlap: false, // Disable overlap detection for consistent testing
175
- limit: 3,
176
- }, toolContext);
177
- const formatted = formatRecommendations(result);
178
- expect(formatted).toContain('Skill Recommendations');
179
- expect(formatted).toContain('recommendation(s)');
180
- expect(formatted).toContain('Score:');
181
- expect(formatted).toContain('Relevance:');
182
- expect(formatted).toContain('ID:');
183
- });
184
- it('should display trust badges', async () => {
185
- const result = await executeRecommend({
186
- installed_skills: [],
187
- detect_overlap: false, // Disable overlap detection for consistent testing
188
- limit: 5,
189
- }, toolContext);
190
- const formatted = formatRecommendations(result);
191
- // Should contain at least one trust badge
192
- const hasBadge = formatted.includes('[VERIFIED]') ||
193
- formatted.includes('[COMMUNITY]') ||
194
- formatted.includes('[STANDARD]') ||
195
- formatted.includes('[UNVERIFIED]');
196
- expect(hasBadge).toBe(true);
197
- });
198
- it('should show candidates considered and timing', async () => {
199
- const result = await executeRecommend({
200
- installed_skills: [],
201
- detect_overlap: false, // Disable overlap detection for consistent testing
202
- limit: 3,
203
- }, toolContext);
204
- const formatted = formatRecommendations(result);
205
- expect(formatted).toContain('Candidates considered:');
206
- expect(formatted).toContain('ms');
207
- });
208
- });
209
- });
210
- //# sourceMappingURL=recommend.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommend.test.js","sourceRoot":"","sources":["../../tests/recommend.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Unit tests for SMI-913: Contextual skill suggestions after first success
3
- * Tests the SuggestionEngine class comprehensively
4
- */
5
- export {};
6
- //# sourceMappingURL=suggestion-engine.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"suggestion-engine.test.d.ts","sourceRoot":"","sources":["../../../tests/suggestions/suggestion-engine.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}