@skillsmith/mcp-server 0.1.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 (306) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/src/__tests__/get-skill.test.d.ts +6 -0
  3. package/dist/src/__tests__/get-skill.test.d.ts.map +1 -0
  4. package/dist/src/__tests__/get-skill.test.js +88 -0
  5. package/dist/src/__tests__/get-skill.test.js.map +1 -0
  6. package/dist/src/__tests__/middleware/errorFormatter.test.d.ts +7 -0
  7. package/dist/src/__tests__/middleware/errorFormatter.test.d.ts.map +1 -0
  8. package/dist/src/__tests__/middleware/errorFormatter.test.js +304 -0
  9. package/dist/src/__tests__/middleware/errorFormatter.test.js.map +1 -0
  10. package/dist/src/__tests__/middleware/license.test.d.ts +7 -0
  11. package/dist/src/__tests__/middleware/license.test.d.ts.map +1 -0
  12. package/dist/src/__tests__/middleware/license.test.js +500 -0
  13. package/dist/src/__tests__/middleware/license.test.js.map +1 -0
  14. package/dist/src/__tests__/search.test.d.ts +6 -0
  15. package/dist/src/__tests__/search.test.d.ts.map +1 -0
  16. package/dist/src/__tests__/search.test.js +86 -0
  17. package/dist/src/__tests__/search.test.js.map +1 -0
  18. package/dist/src/__tests__/test-utils.d.ts +19 -0
  19. package/dist/src/__tests__/test-utils.d.ts.map +1 -0
  20. package/dist/src/__tests__/test-utils.js +87 -0
  21. package/dist/src/__tests__/test-utils.js.map +1 -0
  22. package/dist/src/context/index.d.ts +19 -0
  23. package/dist/src/context/index.d.ts.map +1 -0
  24. package/dist/src/context/index.js +25 -0
  25. package/dist/src/context/index.js.map +1 -0
  26. package/dist/src/context/project-detector.d.ts +145 -0
  27. package/dist/src/context/project-detector.d.ts.map +1 -0
  28. package/dist/src/context/project-detector.js +321 -0
  29. package/dist/src/context/project-detector.js.map +1 -0
  30. package/dist/src/context.d.ts +100 -0
  31. package/dist/src/context.d.ts.map +1 -0
  32. package/dist/src/context.js +157 -0
  33. package/dist/src/context.js.map +1 -0
  34. package/dist/src/core-shim.d.ts +7 -0
  35. package/dist/src/core-shim.d.ts.map +1 -0
  36. package/dist/src/core-shim.js +9 -0
  37. package/dist/src/core-shim.js.map +1 -0
  38. package/dist/src/health/healthCheck.d.ts +88 -0
  39. package/dist/src/health/healthCheck.d.ts.map +1 -0
  40. package/dist/src/health/healthCheck.js +117 -0
  41. package/dist/src/health/healthCheck.js.map +1 -0
  42. package/dist/src/health/index.d.ts +21 -0
  43. package/dist/src/health/index.d.ts.map +1 -0
  44. package/dist/src/health/index.js +21 -0
  45. package/dist/src/health/index.js.map +1 -0
  46. package/dist/src/health/readinessCheck.d.ts +139 -0
  47. package/dist/src/health/readinessCheck.d.ts.map +1 -0
  48. package/dist/src/health/readinessCheck.js +266 -0
  49. package/dist/src/health/readinessCheck.js.map +1 -0
  50. package/dist/src/index.d.ts +8 -0
  51. package/dist/src/index.d.ts.map +1 -0
  52. package/dist/src/index.js +178 -0
  53. package/dist/src/index.js.map +1 -0
  54. package/dist/src/index.test.d.ts +2 -0
  55. package/dist/src/index.test.d.ts.map +1 -0
  56. package/dist/src/index.test.js +43 -0
  57. package/dist/src/index.test.js.map +1 -0
  58. package/dist/src/logger.d.ts +26 -0
  59. package/dist/src/logger.d.ts.map +1 -0
  60. package/dist/src/logger.js +179 -0
  61. package/dist/src/logger.js.map +1 -0
  62. package/dist/src/middleware/__tests__/csp.test.d.ts +2 -0
  63. package/dist/src/middleware/__tests__/csp.test.d.ts.map +1 -0
  64. package/dist/src/middleware/__tests__/csp.test.js +389 -0
  65. package/dist/src/middleware/__tests__/csp.test.js.map +1 -0
  66. package/dist/src/middleware/csp.d.ts +87 -0
  67. package/dist/src/middleware/csp.d.ts.map +1 -0
  68. package/dist/src/middleware/csp.js +273 -0
  69. package/dist/src/middleware/csp.js.map +1 -0
  70. package/dist/src/middleware/degradation.d.ts +99 -0
  71. package/dist/src/middleware/degradation.d.ts.map +1 -0
  72. package/dist/src/middleware/degradation.js +315 -0
  73. package/dist/src/middleware/degradation.js.map +1 -0
  74. package/dist/src/middleware/errorFormatter.d.ts +119 -0
  75. package/dist/src/middleware/errorFormatter.d.ts.map +1 -0
  76. package/dist/src/middleware/errorFormatter.js +294 -0
  77. package/dist/src/middleware/errorFormatter.js.map +1 -0
  78. package/dist/src/middleware/index.d.ts +10 -0
  79. package/dist/src/middleware/index.d.ts.map +1 -0
  80. package/dist/src/middleware/index.js +14 -0
  81. package/dist/src/middleware/index.js.map +1 -0
  82. package/dist/src/middleware/license.d.ts +161 -0
  83. package/dist/src/middleware/license.d.ts.map +1 -0
  84. package/dist/src/middleware/license.js +281 -0
  85. package/dist/src/middleware/license.js.map +1 -0
  86. package/dist/src/middleware/toolFeatureMapping.d.ts +36 -0
  87. package/dist/src/middleware/toolFeatureMapping.d.ts.map +1 -0
  88. package/dist/src/middleware/toolFeatureMapping.js +90 -0
  89. package/dist/src/middleware/toolFeatureMapping.js.map +1 -0
  90. package/dist/src/onboarding/first-run.d.ts +64 -0
  91. package/dist/src/onboarding/first-run.d.ts.map +1 -0
  92. package/dist/src/onboarding/first-run.js +77 -0
  93. package/dist/src/onboarding/first-run.js.map +1 -0
  94. package/dist/src/onboarding/index.d.ts +7 -0
  95. package/dist/src/onboarding/index.d.ts.map +1 -0
  96. package/dist/src/onboarding/index.js +7 -0
  97. package/dist/src/onboarding/index.js.map +1 -0
  98. package/dist/src/suggestions/index.d.ts +21 -0
  99. package/dist/src/suggestions/index.d.ts.map +1 -0
  100. package/dist/src/suggestions/index.js +20 -0
  101. package/dist/src/suggestions/index.js.map +1 -0
  102. package/dist/src/suggestions/suggestion-engine.d.ts +185 -0
  103. package/dist/src/suggestions/suggestion-engine.d.ts.map +1 -0
  104. package/dist/src/suggestions/suggestion-engine.js +352 -0
  105. package/dist/src/suggestions/suggestion-engine.js.map +1 -0
  106. package/dist/src/suggestions/types.d.ts +88 -0
  107. package/dist/src/suggestions/types.d.ts.map +1 -0
  108. package/dist/src/suggestions/types.js +21 -0
  109. package/dist/src/suggestions/types.js.map +1 -0
  110. package/dist/src/tools/analyze.d.ts +151 -0
  111. package/dist/src/tools/analyze.d.ts.map +1 -0
  112. package/dist/src/tools/analyze.js +205 -0
  113. package/dist/src/tools/analyze.js.map +1 -0
  114. package/dist/src/tools/compare.d.ts +149 -0
  115. package/dist/src/tools/compare.d.ts.map +1 -0
  116. package/dist/src/tools/compare.js +464 -0
  117. package/dist/src/tools/compare.js.map +1 -0
  118. package/dist/src/tools/get-skill.d.ts +116 -0
  119. package/dist/src/tools/get-skill.d.ts.map +1 -0
  120. package/dist/src/tools/get-skill.js +224 -0
  121. package/dist/src/tools/get-skill.js.map +1 -0
  122. package/dist/src/tools/index.d.ts +20 -0
  123. package/dist/src/tools/index.d.ts.map +1 -0
  124. package/dist/src/tools/index.js +20 -0
  125. package/dist/src/tools/index.js.map +1 -0
  126. package/dist/src/tools/install.d.ts +122 -0
  127. package/dist/src/tools/install.d.ts.map +1 -0
  128. package/dist/src/tools/install.js +314 -0
  129. package/dist/src/tools/install.js.map +1 -0
  130. package/dist/src/tools/recommend.d.ts +171 -0
  131. package/dist/src/tools/recommend.d.ts.map +1 -0
  132. package/dist/src/tools/recommend.js +325 -0
  133. package/dist/src/tools/recommend.js.map +1 -0
  134. package/dist/src/tools/search.d.ts +121 -0
  135. package/dist/src/tools/search.d.ts.map +1 -0
  136. package/dist/src/tools/search.js +249 -0
  137. package/dist/src/tools/search.js.map +1 -0
  138. package/dist/src/tools/suggest.d.ts +181 -0
  139. package/dist/src/tools/suggest.d.ts.map +1 -0
  140. package/dist/src/tools/suggest.js +342 -0
  141. package/dist/src/tools/suggest.js.map +1 -0
  142. package/dist/src/tools/uninstall.d.ts +123 -0
  143. package/dist/src/tools/uninstall.d.ts.map +1 -0
  144. package/dist/src/tools/uninstall.js +250 -0
  145. package/dist/src/tools/uninstall.js.map +1 -0
  146. package/dist/src/tools/validate.d.ts +122 -0
  147. package/dist/src/tools/validate.d.ts.map +1 -0
  148. package/dist/src/tools/validate.js +497 -0
  149. package/dist/src/tools/validate.js.map +1 -0
  150. package/dist/src/utils/installed-skills.d.ts +101 -0
  151. package/dist/src/utils/installed-skills.d.ts.map +1 -0
  152. package/dist/src/utils/installed-skills.js +220 -0
  153. package/dist/src/utils/installed-skills.js.map +1 -0
  154. package/dist/src/utils/validation.d.ts +76 -0
  155. package/dist/src/utils/validation.d.ts.map +1 -0
  156. package/dist/src/utils/validation.js +153 -0
  157. package/dist/src/utils/validation.js.map +1 -0
  158. package/dist/src/webhooks/index.d.ts +8 -0
  159. package/dist/src/webhooks/index.d.ts.map +1 -0
  160. package/dist/src/webhooks/index.js +9 -0
  161. package/dist/src/webhooks/index.js.map +1 -0
  162. package/dist/src/webhooks/webhook-endpoint.d.ts +149 -0
  163. package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -0
  164. package/dist/src/webhooks/webhook-endpoint.js +339 -0
  165. package/dist/src/webhooks/webhook-endpoint.js.map +1 -0
  166. package/dist/tests/compare.test.d.ts +6 -0
  167. package/dist/tests/compare.test.d.ts.map +1 -0
  168. package/dist/tests/compare.test.js +225 -0
  169. package/dist/tests/compare.test.js.map +1 -0
  170. package/dist/tests/context/project-detector.test.d.ts +6 -0
  171. package/dist/tests/context/project-detector.test.d.ts.map +1 -0
  172. package/dist/tests/context/project-detector.test.js +719 -0
  173. package/dist/tests/context/project-detector.test.js.map +1 -0
  174. package/dist/tests/e2e/compare.e2e.test.d.ts +10 -0
  175. package/dist/tests/e2e/compare.e2e.test.d.ts.map +1 -0
  176. package/dist/tests/e2e/compare.e2e.test.js +286 -0
  177. package/dist/tests/e2e/compare.e2e.test.js.map +1 -0
  178. package/dist/tests/e2e/install-flow.e2e.test.d.ts +10 -0
  179. package/dist/tests/e2e/install-flow.e2e.test.d.ts.map +1 -0
  180. package/dist/tests/e2e/install-flow.e2e.test.js +209 -0
  181. package/dist/tests/e2e/install-flow.e2e.test.js.map +1 -0
  182. package/dist/tests/e2e/recommend.e2e.test.d.ts +12 -0
  183. package/dist/tests/e2e/recommend.e2e.test.d.ts.map +1 -0
  184. package/dist/tests/e2e/recommend.e2e.test.js +347 -0
  185. package/dist/tests/e2e/recommend.e2e.test.js.map +1 -0
  186. package/dist/tests/e2e/skill-flow.e2e.test.d.ts +10 -0
  187. package/dist/tests/e2e/skill-flow.e2e.test.d.ts.map +1 -0
  188. package/dist/tests/e2e/skill-flow.e2e.test.js +280 -0
  189. package/dist/tests/e2e/skill-flow.e2e.test.js.map +1 -0
  190. package/dist/tests/e2e/suggest.e2e.test.d.ts +13 -0
  191. package/dist/tests/e2e/suggest.e2e.test.d.ts.map +1 -0
  192. package/dist/tests/e2e/suggest.e2e.test.js +347 -0
  193. package/dist/tests/e2e/suggest.e2e.test.js.map +1 -0
  194. package/dist/tests/e2e/utils/baseline-collector.d.ts +107 -0
  195. package/dist/tests/e2e/utils/baseline-collector.d.ts.map +1 -0
  196. package/dist/tests/e2e/utils/baseline-collector.js +211 -0
  197. package/dist/tests/e2e/utils/baseline-collector.js.map +1 -0
  198. package/dist/tests/e2e/utils/hardcoded-detector.d.ts +46 -0
  199. package/dist/tests/e2e/utils/hardcoded-detector.d.ts.map +1 -0
  200. package/dist/tests/e2e/utils/hardcoded-detector.js +255 -0
  201. package/dist/tests/e2e/utils/hardcoded-detector.js.map +1 -0
  202. package/dist/tests/e2e/utils/index.d.ts +7 -0
  203. package/dist/tests/e2e/utils/index.d.ts.map +1 -0
  204. package/dist/tests/e2e/utils/index.js +7 -0
  205. package/dist/tests/e2e/utils/index.js.map +1 -0
  206. package/dist/tests/e2e/utils/linear-reporter.d.ts +60 -0
  207. package/dist/tests/e2e/utils/linear-reporter.d.ts.map +1 -0
  208. package/dist/tests/e2e/utils/linear-reporter.js +232 -0
  209. package/dist/tests/e2e/utils/linear-reporter.js.map +1 -0
  210. package/dist/tests/health.test.d.ts +9 -0
  211. package/dist/tests/health.test.d.ts.map +1 -0
  212. package/dist/tests/health.test.js +308 -0
  213. package/dist/tests/health.test.js.map +1 -0
  214. package/dist/tests/integration/analyze.integration.test.d.ts +2 -0
  215. package/dist/tests/integration/analyze.integration.test.d.ts.map +1 -0
  216. package/dist/tests/integration/analyze.integration.test.js +244 -0
  217. package/dist/tests/integration/analyze.integration.test.js.map +1 -0
  218. package/dist/tests/integration/compare.integration.test.d.ts +2 -0
  219. package/dist/tests/integration/compare.integration.test.d.ts.map +1 -0
  220. package/dist/tests/integration/compare.integration.test.js +120 -0
  221. package/dist/tests/integration/compare.integration.test.js.map +1 -0
  222. package/dist/tests/integration/fixtures/test-skills.d.ts +62 -0
  223. package/dist/tests/integration/fixtures/test-skills.d.ts.map +1 -0
  224. package/dist/tests/integration/fixtures/test-skills.js +644 -0
  225. package/dist/tests/integration/fixtures/test-skills.js.map +1 -0
  226. package/dist/tests/integration/get-skill.integration.test.d.ts +6 -0
  227. package/dist/tests/integration/get-skill.integration.test.d.ts.map +1 -0
  228. package/dist/tests/integration/get-skill.integration.test.js +203 -0
  229. package/dist/tests/integration/get-skill.integration.test.js.map +1 -0
  230. package/dist/tests/integration/github-api.integration.test.d.ts +14 -0
  231. package/dist/tests/integration/github-api.integration.test.d.ts.map +1 -0
  232. package/dist/tests/integration/github-api.integration.test.js +190 -0
  233. package/dist/tests/integration/github-api.integration.test.js.map +1 -0
  234. package/dist/tests/integration/install.integration.test.d.ts +6 -0
  235. package/dist/tests/integration/install.integration.test.d.ts.map +1 -0
  236. package/dist/tests/integration/install.integration.test.js +282 -0
  237. package/dist/tests/integration/install.integration.test.js.map +1 -0
  238. package/dist/tests/integration/recommend.integration.test.d.ts +2 -0
  239. package/dist/tests/integration/recommend.integration.test.d.ts.map +1 -0
  240. package/dist/tests/integration/recommend.integration.test.js +215 -0
  241. package/dist/tests/integration/recommend.integration.test.js.map +1 -0
  242. package/dist/tests/integration/search.integration.test.d.ts +6 -0
  243. package/dist/tests/integration/search.integration.test.d.ts.map +1 -0
  244. package/dist/tests/integration/search.integration.test.js +229 -0
  245. package/dist/tests/integration/search.integration.test.js.map +1 -0
  246. package/dist/tests/integration/setup.d.ts +71 -0
  247. package/dist/tests/integration/setup.d.ts.map +1 -0
  248. package/dist/tests/integration/setup.js +124 -0
  249. package/dist/tests/integration/setup.js.map +1 -0
  250. package/dist/tests/integration/uninstall.integration.test.d.ts +6 -0
  251. package/dist/tests/integration/uninstall.integration.test.d.ts.map +1 -0
  252. package/dist/tests/integration/uninstall.integration.test.js +296 -0
  253. package/dist/tests/integration/uninstall.integration.test.js.map +1 -0
  254. package/dist/tests/integration/validate.integration.test.d.ts +2 -0
  255. package/dist/tests/integration/validate.integration.test.d.ts.map +1 -0
  256. package/dist/tests/integration/validate.integration.test.js +181 -0
  257. package/dist/tests/integration/validate.integration.test.js.map +1 -0
  258. package/dist/tests/onboarding/first-run.test.d.ts +7 -0
  259. package/dist/tests/onboarding/first-run.test.d.ts.map +1 -0
  260. package/dist/tests/onboarding/first-run.test.js +258 -0
  261. package/dist/tests/onboarding/first-run.test.js.map +1 -0
  262. package/dist/tests/performance/search-performance.test.d.ts +10 -0
  263. package/dist/tests/performance/search-performance.test.d.ts.map +1 -0
  264. package/dist/tests/performance/search-performance.test.js +218 -0
  265. package/dist/tests/performance/search-performance.test.js.map +1 -0
  266. package/dist/tests/recommend.test.d.ts +6 -0
  267. package/dist/tests/recommend.test.d.ts.map +1 -0
  268. package/dist/tests/recommend.test.js +208 -0
  269. package/dist/tests/recommend.test.js.map +1 -0
  270. package/dist/tests/suggestions/suggestion-engine.test.d.ts +6 -0
  271. package/dist/tests/suggestions/suggestion-engine.test.d.ts.map +1 -0
  272. package/dist/tests/suggestions/suggestion-engine.test.js +448 -0
  273. package/dist/tests/suggestions/suggestion-engine.test.js.map +1 -0
  274. package/dist/tests/test-utils.d.ts +74 -0
  275. package/dist/tests/test-utils.d.ts.map +1 -0
  276. package/dist/tests/test-utils.js +98 -0
  277. package/dist/tests/test-utils.js.map +1 -0
  278. package/dist/tests/tools.test.d.ts +5 -0
  279. package/dist/tests/tools.test.d.ts.map +1 -0
  280. package/dist/tests/tools.test.js +138 -0
  281. package/dist/tests/tools.test.js.map +1 -0
  282. package/dist/tests/unit/installed-skills.test.d.ts +6 -0
  283. package/dist/tests/unit/installed-skills.test.d.ts.map +1 -0
  284. package/dist/tests/unit/installed-skills.test.js +285 -0
  285. package/dist/tests/unit/installed-skills.test.js.map +1 -0
  286. package/dist/tests/unit/logger.test.d.ts +6 -0
  287. package/dist/tests/unit/logger.test.d.ts.map +1 -0
  288. package/dist/tests/unit/logger.test.js +281 -0
  289. package/dist/tests/unit/logger.test.js.map +1 -0
  290. package/dist/tests/validate.test.d.ts +5 -0
  291. package/dist/tests/validate.test.d.ts.map +1 -0
  292. package/dist/tests/validate.test.js +303 -0
  293. package/dist/tests/validate.test.js.map +1 -0
  294. package/dist/tests/webhooks/proxy-trust.security.test.d.ts +8 -0
  295. package/dist/tests/webhooks/proxy-trust.security.test.d.ts.map +1 -0
  296. package/dist/tests/webhooks/proxy-trust.security.test.js +145 -0
  297. package/dist/tests/webhooks/proxy-trust.security.test.js.map +1 -0
  298. package/dist/tests/webhooks/rate-limiter.security.test.d.ts +8 -0
  299. package/dist/tests/webhooks/rate-limiter.security.test.d.ts.map +1 -0
  300. package/dist/tests/webhooks/rate-limiter.security.test.js +122 -0
  301. package/dist/tests/webhooks/rate-limiter.security.test.js.map +1 -0
  302. package/dist/vitest.config.d.ts +6 -0
  303. package/dist/vitest.config.d.ts.map +1 -0
  304. package/dist/vitest.config.js +13 -0
  305. package/dist/vitest.config.js.map +1 -0
  306. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-flow.e2e.test.js","sourceRoot":"","sources":["../../../tests/e2e/skill-flow.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * E2E Test: MCP skill_suggest tool
3
+ *
4
+ * Tests the suggest tool for proactive skill recommendations.
5
+ * This tool has NO existing tests (critical gap).
6
+ *
7
+ * CRITICAL: The suggest tool contains hardcoded skillDatabase
8
+ * (lines 167+) that needs to be detected and reported.
9
+ *
10
+ * User Journey: Proactive skill suggestions based on context
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=suggest.e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest.e2e.test.d.ts","sourceRoot":"","sources":["../../../tests/e2e/suggest.e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,347 @@
1
+ /**
2
+ * E2E Test: MCP skill_suggest tool
3
+ *
4
+ * Tests the suggest tool for proactive skill recommendations.
5
+ * This tool has NO existing tests (critical gap).
6
+ *
7
+ * CRITICAL: The suggest tool contains hardcoded skillDatabase
8
+ * (lines 167+) that needs to be detected and reported.
9
+ *
10
+ * User Journey: Proactive skill suggestions based on context
11
+ */
12
+ import { describe, it, expect, beforeAll, afterAll, beforeEach, afterEach, vi } from 'vitest';
13
+ import { existsSync, rmSync, mkdirSync, writeFileSync } from 'fs';
14
+ import { join } from 'path';
15
+ import { tmpdir, homedir } from 'os';
16
+ import { createDatabase, initializeSchema, SkillRepository, } from '@skillsmith/core';
17
+ import { createToolContext } from '../../src/context.js';
18
+ import { executeSuggest } from '../../src/tools/suggest.js';
19
+ import { scanForHardcoded } from './utils/hardcoded-detector.js';
20
+ import { recordTiming, measureAsync } from './utils/baseline-collector.js';
21
+ import { queueIssue } from './utils/linear-reporter.js';
22
+ // Test configuration
23
+ const TEST_DIR = join(tmpdir(), 'skillsmith-e2e-suggest');
24
+ const TEST_DB_PATH = join(TEST_DIR, 'suggest-test.db');
25
+ const TEST_PROJECT_DIR = join(TEST_DIR, 'test-project');
26
+ // Seed data for database
27
+ const SEED_SKILLS = [
28
+ {
29
+ id: 'anthropic/commit',
30
+ name: 'commit',
31
+ description: 'Generate semantic commit messages',
32
+ author: 'anthropic',
33
+ repoUrl: 'https://github.com/anthropics/claude-code',
34
+ qualityScore: 0.95,
35
+ trustTier: 'verified',
36
+ tags: ['git', 'commit'],
37
+ },
38
+ {
39
+ id: 'community/jest-helper',
40
+ name: 'jest-helper',
41
+ description: 'Generate Jest test cases',
42
+ author: 'community',
43
+ repoUrl: 'https://github.com/skillsmith-community/jest-helper',
44
+ qualityScore: 0.87,
45
+ trustTier: 'community',
46
+ tags: ['testing', 'jest'],
47
+ },
48
+ ];
49
+ /**
50
+ * Create a mock project for testing
51
+ */
52
+ function createMockProject() {
53
+ mkdirSync(TEST_PROJECT_DIR, { recursive: true });
54
+ mkdirSync(join(TEST_PROJECT_DIR, 'src'), { recursive: true });
55
+ // Create package.json
56
+ writeFileSync(join(TEST_PROJECT_DIR, 'package.json'), JSON.stringify({
57
+ name: 'test-project',
58
+ version: '1.0.0',
59
+ dependencies: { react: '^18.0.0' },
60
+ devDependencies: { jest: '^29.0.0' },
61
+ }));
62
+ // Create a test file
63
+ writeFileSync(join(TEST_PROJECT_DIR, 'src', 'App.test.tsx'), `import { render } from '@testing-library/react';
64
+ import App from './App';
65
+
66
+ test('renders app', () => {
67
+ render(<App />);
68
+ });
69
+ `);
70
+ }
71
+ /**
72
+ * Scan response for hardcoded values
73
+ */
74
+ function scanResponseForHardcoded(response, command) {
75
+ const responseStr = JSON.stringify(response, null, 2);
76
+ return scanForHardcoded(responseStr, command, 'database', 'suggest response');
77
+ }
78
+ describe('E2E: skill_suggest tool', () => {
79
+ let db;
80
+ let context;
81
+ beforeAll(() => {
82
+ // Create test environment
83
+ if (existsSync(TEST_DIR)) {
84
+ rmSync(TEST_DIR, { recursive: true, force: true });
85
+ }
86
+ mkdirSync(TEST_DIR, { recursive: true });
87
+ // Create mock project
88
+ createMockProject();
89
+ // Initialize database
90
+ db = createDatabase(TEST_DB_PATH);
91
+ initializeSchema(db);
92
+ const skillRepo = new SkillRepository(db);
93
+ for (const skill of SEED_SKILLS) {
94
+ skillRepo.create(skill);
95
+ }
96
+ context = createToolContext({ dbPath: TEST_DB_PATH });
97
+ });
98
+ afterAll(() => {
99
+ db?.close();
100
+ if (existsSync(TEST_DIR)) {
101
+ rmSync(TEST_DIR, { recursive: true, force: true });
102
+ }
103
+ });
104
+ describe('Basic Suggestions', () => {
105
+ it('should return suggestions for project path', async () => {
106
+ const input = {
107
+ project_path: TEST_PROJECT_DIR,
108
+ limit: 3,
109
+ };
110
+ const { result, durationMs } = await measureAsync('suggest:basic', 'skill_suggest (basic)', () => executeSuggest(input, context));
111
+ // Should complete without error
112
+ expect(result.timing.totalMs).toBeGreaterThanOrEqual(0);
113
+ // Check for hardcoded values
114
+ const issues = scanResponseForHardcoded(result, 'skill_suggest');
115
+ if (issues.filter((i) => i.severity === 'error').length > 0) {
116
+ // Queue Linear issue for hardcoded detection
117
+ const failure = {
118
+ testName: 'suggest: basic project path',
119
+ testFile: __filename,
120
+ command: 'skill_suggest',
121
+ error: `Hardcoded values detected in suggest response`,
122
+ hardcodedIssues: issues,
123
+ duration: durationMs,
124
+ timestamp: new Date().toISOString(),
125
+ };
126
+ queueIssue(failure);
127
+ }
128
+ expect(issues.filter((i) => i.severity === 'error')).toHaveLength(0);
129
+ });
130
+ it('should use current file context', async () => {
131
+ const input = {
132
+ project_path: TEST_PROJECT_DIR,
133
+ current_file: 'src/App.test.tsx',
134
+ limit: 3,
135
+ };
136
+ const result = await executeSuggest(input, context);
137
+ recordTiming('suggest:file_context', 'skill_suggest (file)', result.timing.totalMs);
138
+ // Check for hardcoded values
139
+ const issues = scanResponseForHardcoded(result, 'skill_suggest');
140
+ expect(issues.filter((i) => i.severity === 'error')).toHaveLength(0);
141
+ });
142
+ it('should use recent commands context', async () => {
143
+ const input = {
144
+ project_path: TEST_PROJECT_DIR,
145
+ recent_commands: ['npm test', 'git commit -m "fix"', 'npm run build'],
146
+ limit: 3,
147
+ };
148
+ const result = await executeSuggest(input, context);
149
+ recordTiming('suggest:commands', 'skill_suggest (commands)', result.timing.totalMs);
150
+ // Check for hardcoded values
151
+ const issues = scanResponseForHardcoded(result, 'skill_suggest');
152
+ expect(issues.filter((i) => i.severity === 'error')).toHaveLength(0);
153
+ });
154
+ it('should use error message context', async () => {
155
+ const input = {
156
+ project_path: TEST_PROJECT_DIR,
157
+ error_message: 'TypeError: Cannot read property of undefined',
158
+ limit: 3,
159
+ };
160
+ const result = await executeSuggest(input, context);
161
+ recordTiming('suggest:error', 'skill_suggest (error)', result.timing.totalMs);
162
+ // Check for hardcoded values
163
+ const issues = scanResponseForHardcoded(result, 'skill_suggest');
164
+ expect(issues.filter((i) => i.severity === 'error')).toHaveLength(0);
165
+ });
166
+ });
167
+ describe('Rate Limiting', () => {
168
+ // Use fake timers to prevent CI flakiness from timing variations
169
+ // The rate limiter uses Date.now() internally, so we control time explicitly
170
+ const FIXED_TIME = new Date('2025-01-01T12:00:00.000Z').getTime();
171
+ let testCounter = 0;
172
+ beforeEach(() => {
173
+ vi.useFakeTimers();
174
+ vi.setSystemTime(FIXED_TIME);
175
+ testCounter++;
176
+ });
177
+ afterEach(() => {
178
+ vi.useRealTimers();
179
+ });
180
+ it('should rate limit rapid requests', async () => {
181
+ // Use counter for unique session ID since Date.now() is frozen
182
+ const sessionId = `test-session-rate-limit-${testCounter}`;
183
+ // First request should succeed
184
+ const result1 = await executeSuggest({ project_path: TEST_PROJECT_DIR, session_id: sessionId, limit: 3 }, context);
185
+ expect(result1.rate_limited).toBe(false);
186
+ // Advance time by a tiny amount (1ms) to ensure we're still within rate limit window
187
+ // The rate limiter has a 5-minute window with 1 token that refills at 1/300 per second
188
+ vi.advanceTimersByTime(1);
189
+ // Immediate second request should be rate limited
190
+ const result2 = await executeSuggest({ project_path: TEST_PROJECT_DIR, session_id: sessionId, limit: 3 }, context);
191
+ expect(result2.rate_limited).toBe(true);
192
+ expect(result2.next_suggestion_at).toBeDefined();
193
+ });
194
+ it('should allow requests from different sessions', async () => {
195
+ // Use unique session IDs that won't collide with other tests
196
+ const sessionA = `session-multi-a-${testCounter}`;
197
+ const sessionB = `session-multi-b-${testCounter}`;
198
+ const result1 = await executeSuggest({ project_path: TEST_PROJECT_DIR, session_id: sessionA, limit: 3 }, context);
199
+ const result2 = await executeSuggest({ project_path: TEST_PROJECT_DIR, session_id: sessionB, limit: 3 }, context);
200
+ // Different sessions should not be rate limited against each other
201
+ expect(result1.rate_limited).toBe(false);
202
+ expect(result2.rate_limited).toBe(false);
203
+ expect(result1.timing.totalMs).toBeGreaterThanOrEqual(0);
204
+ expect(result2.timing.totalMs).toBeGreaterThanOrEqual(0);
205
+ });
206
+ });
207
+ describe('Response Data Quality', () => {
208
+ it('should return valid suggestion structure', async () => {
209
+ const input = {
210
+ project_path: TEST_PROJECT_DIR,
211
+ current_file: 'src/App.test.tsx',
212
+ limit: 5,
213
+ };
214
+ const result = await executeSuggest(input, context);
215
+ // Validate response structure
216
+ expect(typeof result.context_score).toBe('number');
217
+ expect(typeof result.rate_limited).toBe('boolean');
218
+ expect(Array.isArray(result.triggers_fired)).toBe(true);
219
+ expect(result.timing.totalMs).toBeGreaterThanOrEqual(0);
220
+ // Validate each suggestion
221
+ for (const sug of result.suggestions) {
222
+ expect(sug.skill_id).toBeDefined();
223
+ expect(sug.name).toBeDefined();
224
+ expect(sug.reason).toBeDefined();
225
+ expect(sug.confidence).toBeGreaterThanOrEqual(0);
226
+ expect(sug.confidence).toBeLessThanOrEqual(1);
227
+ expect(['verified', 'community', 'standard', 'unverified']).toContain(sug.trust_tier);
228
+ }
229
+ });
230
+ });
231
+ describe('CRITICAL: Hardcoded skillDatabase Detection', () => {
232
+ /**
233
+ * The suggest.ts file contains a hardcoded skillDatabase starting at line 167.
234
+ * This test detects if suggestions come from this hardcoded list instead of
235
+ * the actual database.
236
+ */
237
+ it('should use database skills not hardcoded skillDatabase', async () => {
238
+ const input = {
239
+ project_path: TEST_PROJECT_DIR,
240
+ current_file: 'src/App.test.tsx',
241
+ recent_commands: ['npm test'],
242
+ limit: 10,
243
+ };
244
+ const result = await executeSuggest(input, context);
245
+ // If hardcoded, suggestions will contain specific IDs from the hardcoded list
246
+ // that are NOT in our SEED_SKILLS database
247
+ const hardcodedOnlySkills = [
248
+ 'community/eslint-plugin',
249
+ 'community/prettier-config',
250
+ 'community/cypress-helper',
251
+ // These are in the hardcoded skillDatabase but NOT in our test database
252
+ ];
253
+ const suggestedIds = result.suggestions.map((s) => s.skill_id);
254
+ const fromHardcoded = suggestedIds.filter((id) => hardcodedOnlySkills.includes(id));
255
+ if (fromHardcoded.length > 0) {
256
+ // Create Linear issue for hardcoded skillDatabase
257
+ const failure = {
258
+ testName: 'suggest: hardcoded skillDatabase detected',
259
+ testFile: __filename,
260
+ command: 'skill_suggest',
261
+ error: `Suggestions came from hardcoded skillDatabase instead of actual database. Found: ${fromHardcoded.join(', ')}`,
262
+ timestamp: new Date().toISOString(),
263
+ };
264
+ queueIssue(failure);
265
+ expect.fail(`HARDCODED skillDatabase detected! Suggestions ${fromHardcoded.join(', ')} are from hardcoded list, not database.`);
266
+ }
267
+ });
268
+ it('should not expose hardcoded paths in suggestions', async () => {
269
+ const input = {
270
+ project_path: TEST_PROJECT_DIR,
271
+ limit: 5,
272
+ };
273
+ const result = await executeSuggest(input, context);
274
+ const responseStr = JSON.stringify(result);
275
+ // Should not contain user paths
276
+ expect(responseStr).not.toMatch(/\/Users\/[a-zA-Z0-9_-]+\//);
277
+ expect(responseStr).not.toMatch(/\/home\/[a-zA-Z0-9_-]+\//);
278
+ expect(responseStr).not.toContain(homedir());
279
+ // Should not contain localhost
280
+ expect(responseStr).not.toMatch(/localhost:\d+/);
281
+ // Should not contain the TEST_PROJECT_DIR path in response data
282
+ // (it's OK in logs but not in response)
283
+ });
284
+ it('should return dynamic suggestions based on context', async () => {
285
+ // Test file context
286
+ const testResult = await executeSuggest({
287
+ project_path: TEST_PROJECT_DIR,
288
+ current_file: 'src/App.test.tsx',
289
+ session_id: 'dynamic-test-1',
290
+ limit: 5,
291
+ }, context);
292
+ // Git context
293
+ const gitResult = await executeSuggest({
294
+ project_path: TEST_PROJECT_DIR,
295
+ recent_commands: ['git status', 'git add .', 'git commit'],
296
+ session_id: 'dynamic-test-2',
297
+ limit: 5,
298
+ }, context);
299
+ // Triggers should differ based on context
300
+ const testTriggers = testResult.triggers_fired;
301
+ const gitTriggers = gitResult.triggers_fired;
302
+ // Log for baseline analysis
303
+ console.log('Test file triggers:', testTriggers);
304
+ console.log('Git command triggers:', gitTriggers);
305
+ // Both should have processed some triggers
306
+ expect(testResult.timing.totalMs).toBeGreaterThanOrEqual(0);
307
+ expect(gitResult.timing.totalMs).toBeGreaterThanOrEqual(0);
308
+ });
309
+ });
310
+ describe('Performance Baselines', () => {
311
+ it('should complete suggestion in reasonable time', async () => {
312
+ const { durationMs } = await measureAsync('suggest:baseline', 'skill_suggest baseline', () => executeSuggest({
313
+ project_path: TEST_PROJECT_DIR,
314
+ current_file: 'src/App.test.tsx',
315
+ recent_commands: ['npm test', 'git status'],
316
+ limit: 5,
317
+ }, context));
318
+ // Baseline: should complete within 3 seconds (includes codebase analysis)
319
+ expect(durationMs).toBeLessThan(3000);
320
+ console.log(`Suggest baseline: ${durationMs}ms`);
321
+ });
322
+ });
323
+ describe('Error Handling', () => {
324
+ it('should handle missing project path', async () => {
325
+ await expect(executeSuggest({ project_path: '' }, context)).rejects.toThrow();
326
+ });
327
+ it('should handle non-existent project path gracefully', async () => {
328
+ const input = {
329
+ project_path: '/nonexistent/path/project',
330
+ limit: 3,
331
+ };
332
+ // May throw or return empty - either is acceptable
333
+ try {
334
+ const result = await executeSuggest(input, context);
335
+ // If it doesn't throw, should handle gracefully
336
+ expect(result.timing.totalMs).toBeGreaterThanOrEqual(0);
337
+ }
338
+ catch {
339
+ // Expected - non-existent path
340
+ }
341
+ });
342
+ it('should handle invalid limit', async () => {
343
+ await expect(executeSuggest({ project_path: TEST_PROJECT_DIR, limit: 100 }, context)).rejects.toThrow();
344
+ });
345
+ });
346
+ });
347
+ //# sourceMappingURL=suggest.e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest.e2e.test.js","sourceRoot":"","sources":["../../../tests/e2e/suggest.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Performance Baseline Collector
3
+ *
4
+ * Captures timing and resource metrics during E2E tests
5
+ * to establish baselines for future performance tracking.
6
+ *
7
+ * @see docs/testing/e2e-testing-plan.md
8
+ */
9
+ export interface TimingMetric {
10
+ name: string;
11
+ command: string;
12
+ durationMs: number;
13
+ timestamp: string;
14
+ }
15
+ export interface MemoryMetric {
16
+ name: string;
17
+ command: string;
18
+ heapUsedMB: number;
19
+ heapTotalMB: number;
20
+ externalMB: number;
21
+ timestamp: string;
22
+ }
23
+ export interface PercentileStats {
24
+ min: number;
25
+ max: number;
26
+ median: number;
27
+ mean: number;
28
+ p95: number;
29
+ p99: number;
30
+ count: number;
31
+ }
32
+ export interface BaselineReport {
33
+ timestamp: string;
34
+ environment: {
35
+ type: string;
36
+ nodeVersion: string;
37
+ platform: string;
38
+ arch: string;
39
+ };
40
+ baselines: {
41
+ [category: string]: {
42
+ [metric: string]: PercentileStats | number;
43
+ };
44
+ };
45
+ rawMetrics: {
46
+ timing: TimingMetric[];
47
+ memory: MemoryMetric[];
48
+ };
49
+ }
50
+ /**
51
+ * Record timing for a command execution
52
+ */
53
+ export declare function recordTiming(name: string, command: string, durationMs: number): void;
54
+ /**
55
+ * Record memory usage for a command execution
56
+ */
57
+ export declare function recordMemory(name: string, command: string): void;
58
+ /**
59
+ * Measure async function execution time
60
+ */
61
+ export declare function measureAsync<T>(name: string, command: string, fn: () => Promise<T>): Promise<{
62
+ result: T;
63
+ durationMs: number;
64
+ }>;
65
+ /**
66
+ * Measure sync function execution time
67
+ */
68
+ export declare function measureSync<T>(name: string, command: string, fn: () => T): {
69
+ result: T;
70
+ durationMs: number;
71
+ };
72
+ /**
73
+ * Generate baseline report from collected metrics
74
+ */
75
+ export declare function generateBaselineReport(): BaselineReport;
76
+ /**
77
+ * Export baseline report as JSON
78
+ */
79
+ export declare function exportBaselineJSON(): string;
80
+ /**
81
+ * Export baseline report as Markdown
82
+ */
83
+ export declare function exportBaselineMarkdown(): string;
84
+ /**
85
+ * Clear all collected metrics (for test isolation)
86
+ */
87
+ export declare function clearMetrics(): void;
88
+ /**
89
+ * Get current metrics count
90
+ */
91
+ export declare function getMetricsCount(): {
92
+ timing: number;
93
+ memory: number;
94
+ };
95
+ declare const _default: {
96
+ recordTiming: typeof recordTiming;
97
+ recordMemory: typeof recordMemory;
98
+ measureAsync: typeof measureAsync;
99
+ measureSync: typeof measureSync;
100
+ generateBaselineReport: typeof generateBaselineReport;
101
+ exportBaselineJSON: typeof exportBaselineJSON;
102
+ exportBaselineMarkdown: typeof exportBaselineMarkdown;
103
+ clearMetrics: typeof clearMetrics;
104
+ getMetricsCount: typeof getMetricsCount;
105
+ };
106
+ export default _default;
107
+ //# sourceMappingURL=baseline-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseline-collector.d.ts","sourceRoot":"","sources":["../../../../tests/e2e/utils/baseline-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,SAAS,EAAE;QACT,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,MAAM,CAAA;SAC3C,CAAA;KACF,CAAA;IACD,UAAU,EAAE;QACV,MAAM,EAAE,YAAY,EAAE,CAAA;QACtB,MAAM,EAAE,YAAY,EAAE,CAAA;KACvB,CAAA;CACF;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAOpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUhE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAS5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,CAAC,GACV;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CASnC;AAiDD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,CAmCvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA+C/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKpE;;;;;;;;;;;;AAED,wBAUC"}