@skillsmith/mcp-server 0.4.13 → 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 (391) hide show
  1. package/CHANGELOG.md +32 -4
  2. package/README.md +89 -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 +16 -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/audit/audit-history.d.ts +77 -0
  35. package/dist/src/audit/audit-history.d.ts.map +1 -0
  36. package/dist/src/audit/audit-history.js +98 -0
  37. package/dist/src/audit/audit-history.js.map +1 -0
  38. package/dist/src/audit/audit-report-writer.d.ts +82 -0
  39. package/dist/src/audit/audit-report-writer.d.ts.map +1 -0
  40. package/dist/src/audit/audit-report-writer.js +241 -0
  41. package/dist/src/audit/audit-report-writer.js.map +1 -0
  42. package/dist/src/audit/audit-suggestions.d.ts +52 -0
  43. package/dist/src/audit/audit-suggestions.d.ts.map +1 -0
  44. package/dist/src/audit/audit-suggestions.js +90 -0
  45. package/dist/src/audit/audit-suggestions.js.map +1 -0
  46. package/dist/src/audit/bootstrap-unmanaged.d.ts +66 -0
  47. package/dist/src/audit/bootstrap-unmanaged.d.ts.map +1 -0
  48. package/dist/src/audit/bootstrap-unmanaged.js +91 -0
  49. package/dist/src/audit/bootstrap-unmanaged.js.map +1 -0
  50. package/dist/src/audit/collision-detector.d.ts +72 -0
  51. package/dist/src/audit/collision-detector.d.ts.map +1 -0
  52. package/dist/src/audit/collision-detector.helpers.d.ts +63 -0
  53. package/dist/src/audit/collision-detector.helpers.d.ts.map +1 -0
  54. package/dist/src/audit/collision-detector.helpers.js +141 -0
  55. package/dist/src/audit/collision-detector.helpers.js.map +1 -0
  56. package/dist/src/audit/collision-detector.js +172 -0
  57. package/dist/src/audit/collision-detector.js.map +1 -0
  58. package/dist/src/audit/collision-detector.semantic.helpers.d.ts +49 -0
  59. package/dist/src/audit/collision-detector.semantic.helpers.d.ts.map +1 -0
  60. package/dist/src/audit/collision-detector.semantic.helpers.js +121 -0
  61. package/dist/src/audit/collision-detector.semantic.helpers.js.map +1 -0
  62. package/dist/src/audit/collision-detector.types.d.ts +70 -0
  63. package/dist/src/audit/collision-detector.types.d.ts.map +1 -0
  64. package/dist/src/audit/collision-detector.types.js +9 -0
  65. package/dist/src/audit/collision-detector.types.js.map +1 -0
  66. package/dist/src/audit/edit-applier.d.ts +64 -0
  67. package/dist/src/audit/edit-applier.d.ts.map +1 -0
  68. package/dist/src/audit/edit-applier.js +233 -0
  69. package/dist/src/audit/edit-applier.js.map +1 -0
  70. package/dist/src/audit/edit-applier.types.d.ts +72 -0
  71. package/dist/src/audit/edit-applier.types.d.ts.map +1 -0
  72. package/dist/src/audit/edit-applier.types.js +13 -0
  73. package/dist/src/audit/edit-applier.types.js.map +1 -0
  74. package/dist/src/audit/edit-suggester.d.ts +63 -0
  75. package/dist/src/audit/edit-suggester.d.ts.map +1 -0
  76. package/dist/src/audit/edit-suggester.js +326 -0
  77. package/dist/src/audit/edit-suggester.js.map +1 -0
  78. package/dist/src/audit/edit-suggester.types.d.ts +148 -0
  79. package/dist/src/audit/edit-suggester.types.d.ts.map +1 -0
  80. package/dist/src/audit/edit-suggester.types.js +17 -0
  81. package/dist/src/audit/edit-suggester.types.js.map +1 -0
  82. package/dist/src/audit/framework-adapter.d.ts +54 -0
  83. package/dist/src/audit/framework-adapter.d.ts.map +1 -0
  84. package/dist/src/audit/framework-adapter.js +251 -0
  85. package/dist/src/audit/framework-adapter.js.map +1 -0
  86. package/dist/src/audit/framework-adapter.types.d.ts +162 -0
  87. package/dist/src/audit/framework-adapter.types.d.ts.map +1 -0
  88. package/dist/src/audit/framework-adapter.types.js +31 -0
  89. package/dist/src/audit/framework-adapter.types.js.map +1 -0
  90. package/dist/src/audit/index.d.ts +46 -0
  91. package/dist/src/audit/index.d.ts.map +1 -0
  92. package/dist/src/audit/index.js +44 -0
  93. package/dist/src/audit/index.js.map +1 -0
  94. package/dist/src/audit/install-preflight.d.ts +99 -0
  95. package/dist/src/audit/install-preflight.d.ts.map +1 -0
  96. package/dist/src/audit/install-preflight.js +320 -0
  97. package/dist/src/audit/install-preflight.js.map +1 -0
  98. package/dist/src/audit/namespace-audit.types.d.ts +100 -0
  99. package/dist/src/audit/namespace-audit.types.d.ts.map +1 -0
  100. package/dist/src/audit/namespace-audit.types.js +20 -0
  101. package/dist/src/audit/namespace-audit.types.js.map +1 -0
  102. package/dist/src/audit/namespace-overrides.d.ts +79 -0
  103. package/dist/src/audit/namespace-overrides.d.ts.map +1 -0
  104. package/dist/src/audit/namespace-overrides.js +228 -0
  105. package/dist/src/audit/namespace-overrides.js.map +1 -0
  106. package/dist/src/audit/namespace-overrides.types.d.ts +115 -0
  107. package/dist/src/audit/namespace-overrides.types.d.ts.map +1 -0
  108. package/dist/src/audit/namespace-overrides.types.js +26 -0
  109. package/dist/src/audit/namespace-overrides.types.js.map +1 -0
  110. package/dist/src/audit/rename-engine.apply-paths.d.ts +54 -0
  111. package/dist/src/audit/rename-engine.apply-paths.d.ts.map +1 -0
  112. package/dist/src/audit/rename-engine.apply-paths.js +126 -0
  113. package/dist/src/audit/rename-engine.apply-paths.js.map +1 -0
  114. package/dist/src/audit/rename-engine.d.ts +59 -0
  115. package/dist/src/audit/rename-engine.d.ts.map +1 -0
  116. package/dist/src/audit/rename-engine.helpers.d.ts +63 -0
  117. package/dist/src/audit/rename-engine.helpers.d.ts.map +1 -0
  118. package/dist/src/audit/rename-engine.helpers.js +224 -0
  119. package/dist/src/audit/rename-engine.helpers.js.map +1 -0
  120. package/dist/src/audit/rename-engine.js +393 -0
  121. package/dist/src/audit/rename-engine.js.map +1 -0
  122. package/dist/src/audit/rename-engine.types.d.ts +157 -0
  123. package/dist/src/audit/rename-engine.types.d.ts.map +1 -0
  124. package/dist/src/audit/rename-engine.types.js +15 -0
  125. package/dist/src/audit/rename-engine.types.js.map +1 -0
  126. package/dist/src/audit/run-inventory-audit.d.ts +95 -0
  127. package/dist/src/audit/run-inventory-audit.d.ts.map +1 -0
  128. package/dist/src/audit/run-inventory-audit.js +245 -0
  129. package/dist/src/audit/run-inventory-audit.js.map +1 -0
  130. package/dist/src/audit/suggestion-chain.d.ts +89 -0
  131. package/dist/src/audit/suggestion-chain.d.ts.map +1 -0
  132. package/dist/src/audit/suggestion-chain.js +121 -0
  133. package/dist/src/audit/suggestion-chain.js.map +1 -0
  134. package/dist/src/audit-tool-dispatch.d.ts +61 -0
  135. package/dist/src/audit-tool-dispatch.d.ts.map +1 -0
  136. package/dist/src/audit-tool-dispatch.js +114 -0
  137. package/dist/src/audit-tool-dispatch.js.map +1 -0
  138. package/dist/src/index.js +1 -1
  139. package/dist/src/index.js.map +1 -1
  140. package/dist/src/indexer/LocalIndexer.d.ts +8 -1
  141. package/dist/src/indexer/LocalIndexer.d.ts.map +1 -1
  142. package/dist/src/indexer/LocalIndexer.js +42 -38
  143. package/dist/src/indexer/LocalIndexer.js.map +1 -1
  144. package/dist/src/middleware/__tests__/license.gate.test.js +21 -2
  145. package/dist/src/middleware/__tests__/license.gate.test.js.map +1 -1
  146. package/dist/src/middleware/license.gate.d.ts +14 -0
  147. package/dist/src/middleware/license.gate.d.ts.map +1 -1
  148. package/dist/src/middleware/license.gate.js +52 -1
  149. package/dist/src/middleware/license.gate.js.map +1 -1
  150. package/dist/src/onboarding/install-assets.d.ts.map +1 -1
  151. package/dist/src/onboarding/install-assets.js +11 -5
  152. package/dist/src/onboarding/install-assets.js.map +1 -1
  153. package/dist/src/tool-dispatch.d.ts.map +1 -1
  154. package/dist/src/tool-dispatch.js +6 -4
  155. package/dist/src/tool-dispatch.js.map +1 -1
  156. package/dist/src/tools/analytics.service.test.js +6 -4
  157. package/dist/src/tools/analytics.service.test.js.map +1 -1
  158. package/dist/src/tools/apply-namespace-rename.d.ts +71 -0
  159. package/dist/src/tools/apply-namespace-rename.d.ts.map +1 -0
  160. package/dist/src/tools/apply-namespace-rename.js +137 -0
  161. package/dist/src/tools/apply-namespace-rename.js.map +1 -0
  162. package/dist/src/tools/apply-namespace-rename.types.d.ts +46 -0
  163. package/dist/src/tools/apply-namespace-rename.types.d.ts.map +1 -0
  164. package/dist/src/tools/apply-namespace-rename.types.js +9 -0
  165. package/dist/src/tools/apply-namespace-rename.types.js.map +1 -0
  166. package/dist/src/tools/apply-recommended-edit.d.ts +50 -0
  167. package/dist/src/tools/apply-recommended-edit.d.ts.map +1 -0
  168. package/dist/src/tools/apply-recommended-edit.js +112 -0
  169. package/dist/src/tools/apply-recommended-edit.js.map +1 -0
  170. package/dist/src/tools/apply-recommended-edit.types.d.ts +49 -0
  171. package/dist/src/tools/apply-recommended-edit.types.d.ts.map +1 -0
  172. package/dist/src/tools/apply-recommended-edit.types.js +14 -0
  173. package/dist/src/tools/apply-recommended-edit.types.js.map +1 -0
  174. package/dist/src/tools/audit-tools.d.ts +4 -4
  175. package/dist/src/tools/compliance-tools.service.test.js +6 -4
  176. package/dist/src/tools/compliance-tools.service.test.js.map +1 -1
  177. package/dist/src/tools/install.backup-gc.d.ts +61 -0
  178. package/dist/src/tools/install.backup-gc.d.ts.map +1 -0
  179. package/dist/src/tools/install.backup-gc.js +166 -0
  180. package/dist/src/tools/install.backup-gc.js.map +1 -0
  181. package/dist/src/tools/install.conflict-helpers.d.ts +29 -2
  182. package/dist/src/tools/install.conflict-helpers.d.ts.map +1 -1
  183. package/dist/src/tools/install.conflict-helpers.js +37 -4
  184. package/dist/src/tools/install.conflict-helpers.js.map +1 -1
  185. package/dist/src/tools/install.d.ts +15 -1
  186. package/dist/src/tools/install.d.ts.map +1 -1
  187. package/dist/src/tools/install.js +162 -7
  188. package/dist/src/tools/install.js.map +1 -1
  189. package/dist/src/tools/install.ledger-replay.d.ts +52 -0
  190. package/dist/src/tools/install.ledger-replay.d.ts.map +1 -0
  191. package/dist/src/tools/install.ledger-replay.js +88 -0
  192. package/dist/src/tools/install.ledger-replay.js.map +1 -0
  193. package/dist/src/tools/install.namespace-gate.d.ts +68 -0
  194. package/dist/src/tools/install.namespace-gate.d.ts.map +1 -0
  195. package/dist/src/tools/install.namespace-gate.js +129 -0
  196. package/dist/src/tools/install.namespace-gate.js.map +1 -0
  197. package/dist/src/tools/install.test.js +71 -1
  198. package/dist/src/tools/install.test.js.map +1 -1
  199. package/dist/src/tools/install.tool.d.ts +17 -0
  200. package/dist/src/tools/install.tool.d.ts.map +1 -1
  201. package/dist/src/tools/install.tool.js +19 -1
  202. package/dist/src/tools/install.tool.js.map +1 -1
  203. package/dist/src/tools/install.types.d.ts +35 -1
  204. package/dist/src/tools/install.types.d.ts.map +1 -1
  205. package/dist/src/tools/install.types.js +24 -2
  206. package/dist/src/tools/install.types.js.map +1 -1
  207. package/dist/src/tools/namespace-audit/telemetry.d.ts +80 -0
  208. package/dist/src/tools/namespace-audit/telemetry.d.ts.map +1 -0
  209. package/dist/src/tools/namespace-audit/telemetry.js +129 -0
  210. package/dist/src/tools/namespace-audit/telemetry.js.map +1 -0
  211. package/dist/src/tools/outdated.test.js +2 -2
  212. package/dist/src/tools/outdated.test.js.map +1 -1
  213. package/dist/src/tools/publish-private.test.js +2 -2
  214. package/dist/src/tools/publish-private.test.js.map +1 -1
  215. package/dist/src/tools/recommend.types.d.ts +2 -2
  216. package/dist/src/tools/search.d.ts +2 -2
  217. package/dist/src/tools/search.js +3 -3
  218. package/dist/src/tools/search.js.map +1 -1
  219. package/dist/src/tools/skill-audit.test.js +2 -2
  220. package/dist/src/tools/skill-audit.test.js.map +1 -1
  221. package/dist/src/tools/skill-diff.d.ts +1 -1
  222. package/dist/src/tools/skill-inventory-audit.d.ts +67 -0
  223. package/dist/src/tools/skill-inventory-audit.d.ts.map +1 -0
  224. package/dist/src/tools/skill-inventory-audit.js +112 -0
  225. package/dist/src/tools/skill-inventory-audit.js.map +1 -0
  226. package/dist/src/tools/skill-inventory-audit.types.d.ts +67 -0
  227. package/dist/src/tools/skill-inventory-audit.types.d.ts.map +1 -0
  228. package/dist/src/tools/skill-inventory-audit.types.js +14 -0
  229. package/dist/src/tools/skill-inventory-audit.types.js.map +1 -0
  230. package/dist/src/tools/skill-pack-audit.d.ts.map +1 -1
  231. package/dist/src/tools/skill-pack-audit.helpers.d.ts.map +1 -1
  232. package/dist/src/tools/skill-pack-audit.helpers.js +15 -2
  233. package/dist/src/tools/skill-pack-audit.helpers.js.map +1 -1
  234. package/dist/src/tools/skill-pack-audit.js +15 -1
  235. package/dist/src/tools/skill-pack-audit.js.map +1 -1
  236. package/dist/src/tools/skill-rescan.d.ts.map +1 -1
  237. package/dist/src/tools/skill-rescan.js +4 -2
  238. package/dist/src/tools/skill-rescan.js.map +1 -1
  239. package/dist/src/tools/suggest.d.ts +2 -2
  240. package/dist/src/tools/uninstall.d.ts +1 -1
  241. package/dist/src/tools/uninstall.d.ts.map +1 -1
  242. package/dist/src/tools/uninstall.js +17 -3
  243. package/dist/src/tools/uninstall.js.map +1 -1
  244. package/dist/src/tools/validate.types.d.ts +10 -1
  245. package/dist/src/tools/validate.types.d.ts.map +1 -1
  246. package/dist/src/tools/validate.types.js +10 -1
  247. package/dist/src/tools/validate.types.js.map +1 -1
  248. package/dist/src/utils/installed-skills.d.ts.map +1 -1
  249. package/dist/src/utils/installed-skills.js +8 -6
  250. package/dist/src/utils/installed-skills.js.map +1 -1
  251. package/dist/src/utils/local-inventory.d.ts +29 -0
  252. package/dist/src/utils/local-inventory.d.ts.map +1 -0
  253. package/dist/src/utils/local-inventory.helpers.d.ts +96 -0
  254. package/dist/src/utils/local-inventory.helpers.d.ts.map +1 -0
  255. package/dist/src/utils/local-inventory.helpers.js +279 -0
  256. package/dist/src/utils/local-inventory.helpers.js.map +1 -0
  257. package/dist/src/utils/local-inventory.js +202 -0
  258. package/dist/src/utils/local-inventory.js.map +1 -0
  259. package/dist/src/utils/local-inventory.types.d.ts +100 -0
  260. package/dist/src/utils/local-inventory.types.d.ts.map +1 -0
  261. package/dist/src/utils/local-inventory.types.js +9 -0
  262. package/dist/src/utils/local-inventory.types.js.map +1 -0
  263. package/dist/src/webhooks/stripe-webhook-endpoint.d.ts +12 -0
  264. package/dist/src/webhooks/stripe-webhook-endpoint.d.ts.map +1 -1
  265. package/dist/src/webhooks/stripe-webhook-endpoint.js +30 -9
  266. package/dist/src/webhooks/stripe-webhook-endpoint.js.map +1 -1
  267. package/dist/src/webhooks/webhook-endpoint.d.ts +13 -0
  268. package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -1
  269. package/dist/src/webhooks/webhook-endpoint.js +31 -9
  270. package/dist/src/webhooks/webhook-endpoint.js.map +1 -1
  271. package/dist/tests/compare.test.js +5 -5
  272. package/dist/tests/compare.test.js.map +1 -1
  273. package/dist/tests/context-async-listeners.test.d.ts +12 -0
  274. package/dist/tests/context-async-listeners.test.d.ts.map +1 -0
  275. package/dist/tests/context-async-listeners.test.js +62 -0
  276. package/dist/tests/context-async-listeners.test.js.map +1 -0
  277. package/dist/tests/e2e/compare.e2e.test.js +9 -3
  278. package/dist/tests/e2e/compare.e2e.test.js.map +1 -1
  279. package/dist/tests/e2e/install-flow.e2e.test.js +9 -3
  280. package/dist/tests/e2e/install-flow.e2e.test.js.map +1 -1
  281. package/dist/tests/e2e/recommend.e2e.test.js +9 -3
  282. package/dist/tests/e2e/recommend.e2e.test.js.map +1 -1
  283. package/dist/tests/e2e/skill-flow.e2e.test.js +17 -5
  284. package/dist/tests/e2e/skill-flow.e2e.test.js.map +1 -1
  285. package/dist/tests/e2e/suggest.e2e.test.js +11 -3
  286. package/dist/tests/e2e/suggest.e2e.test.js.map +1 -1
  287. package/dist/tests/integration/audit-roundtrip.test.d.ts +29 -0
  288. package/dist/tests/integration/audit-roundtrip.test.d.ts.map +1 -0
  289. package/dist/tests/integration/audit-roundtrip.test.js +214 -0
  290. package/dist/tests/integration/audit-roundtrip.test.js.map +1 -0
  291. package/dist/tests/integration/install-namespace.integration.test.d.ts +14 -0
  292. package/dist/tests/integration/install-namespace.integration.test.d.ts.map +1 -0
  293. package/dist/tests/integration/install-namespace.integration.test.js +414 -0
  294. package/dist/tests/integration/install-namespace.integration.test.js.map +1 -0
  295. package/dist/tests/performance/search-performance.test.js +9 -3
  296. package/dist/tests/performance/search-performance.test.js.map +1 -1
  297. package/dist/tests/tools.test.js +5 -5
  298. package/dist/tests/tools.test.js.map +1 -1
  299. package/dist/tests/unit/apply-namespace-rename.test.d.ts +24 -0
  300. package/dist/tests/unit/apply-namespace-rename.test.d.ts.map +1 -0
  301. package/dist/tests/unit/apply-namespace-rename.test.js +205 -0
  302. package/dist/tests/unit/apply-namespace-rename.test.js.map +1 -0
  303. package/dist/tests/unit/apply-recommended-edit.test.d.ts +28 -0
  304. package/dist/tests/unit/apply-recommended-edit.test.d.ts.map +1 -0
  305. package/dist/tests/unit/apply-recommended-edit.test.js +229 -0
  306. package/dist/tests/unit/apply-recommended-edit.test.js.map +1 -0
  307. package/dist/tests/unit/audit-history.test.d.ts +11 -0
  308. package/dist/tests/unit/audit-history.test.d.ts.map +1 -0
  309. package/dist/tests/unit/audit-history.test.js +183 -0
  310. package/dist/tests/unit/audit-history.test.js.map +1 -0
  311. package/dist/tests/unit/audit-report-writer.test.d.ts +7 -0
  312. package/dist/tests/unit/audit-report-writer.test.d.ts.map +1 -0
  313. package/dist/tests/unit/audit-report-writer.test.js +249 -0
  314. package/dist/tests/unit/audit-report-writer.test.js.map +1 -0
  315. package/dist/tests/unit/audit-tool-dispatch.test.d.ts +17 -0
  316. package/dist/tests/unit/audit-tool-dispatch.test.d.ts.map +1 -0
  317. package/dist/tests/unit/audit-tool-dispatch.test.js +133 -0
  318. package/dist/tests/unit/audit-tool-dispatch.test.js.map +1 -0
  319. package/dist/tests/unit/collision-detector.semantic.test.d.ts +12 -0
  320. package/dist/tests/unit/collision-detector.semantic.test.d.ts.map +1 -0
  321. package/dist/tests/unit/collision-detector.semantic.test.js +281 -0
  322. package/dist/tests/unit/collision-detector.semantic.test.js.map +1 -0
  323. package/dist/tests/unit/collision-detector.test.d.ts +8 -0
  324. package/dist/tests/unit/collision-detector.test.d.ts.map +1 -0
  325. package/dist/tests/unit/collision-detector.test.js +266 -0
  326. package/dist/tests/unit/collision-detector.test.js.map +1 -0
  327. package/dist/tests/unit/edit-applier.test.d.ts +17 -0
  328. package/dist/tests/unit/edit-applier.test.d.ts.map +1 -0
  329. package/dist/tests/unit/edit-applier.test.js +165 -0
  330. package/dist/tests/unit/edit-applier.test.js.map +1 -0
  331. package/dist/tests/unit/edit-suggester.fixtures.d.ts +38 -0
  332. package/dist/tests/unit/edit-suggester.fixtures.d.ts.map +1 -0
  333. package/dist/tests/unit/edit-suggester.fixtures.js +84 -0
  334. package/dist/tests/unit/edit-suggester.fixtures.js.map +1 -0
  335. package/dist/tests/unit/edit-suggester.test.d.ts +17 -0
  336. package/dist/tests/unit/edit-suggester.test.d.ts.map +1 -0
  337. package/dist/tests/unit/edit-suggester.test.js +356 -0
  338. package/dist/tests/unit/edit-suggester.test.js.map +1 -0
  339. package/dist/tests/unit/framework-adapter.test.d.ts +30 -0
  340. package/dist/tests/unit/framework-adapter.test.d.ts.map +1 -0
  341. package/dist/tests/unit/framework-adapter.test.js +221 -0
  342. package/dist/tests/unit/framework-adapter.test.js.map +1 -0
  343. package/dist/tests/unit/install-preflight.test.d.ts +17 -0
  344. package/dist/tests/unit/install-preflight.test.d.ts.map +1 -0
  345. package/dist/tests/unit/install-preflight.test.js +270 -0
  346. package/dist/tests/unit/install-preflight.test.js.map +1 -0
  347. package/dist/tests/unit/install.backup-gc.test.d.ts +18 -0
  348. package/dist/tests/unit/install.backup-gc.test.d.ts.map +1 -0
  349. package/dist/tests/unit/install.backup-gc.test.js +177 -0
  350. package/dist/tests/unit/install.backup-gc.test.js.map +1 -0
  351. package/dist/tests/unit/install.ledger-replay.test.d.ts +12 -0
  352. package/dist/tests/unit/install.ledger-replay.test.d.ts.map +1 -0
  353. package/dist/tests/unit/install.ledger-replay.test.js +98 -0
  354. package/dist/tests/unit/install.ledger-replay.test.js.map +1 -0
  355. package/dist/tests/unit/local-inventory.test.d.ts +8 -0
  356. package/dist/tests/unit/local-inventory.test.d.ts.map +1 -0
  357. package/dist/tests/unit/local-inventory.test.js +165 -0
  358. package/dist/tests/unit/local-inventory.test.js.map +1 -0
  359. package/dist/tests/unit/namespace-audit-telemetry.test.d.ts +10 -0
  360. package/dist/tests/unit/namespace-audit-telemetry.test.d.ts.map +1 -0
  361. package/dist/tests/unit/namespace-audit-telemetry.test.js +215 -0
  362. package/dist/tests/unit/namespace-audit-telemetry.test.js.map +1 -0
  363. package/dist/tests/unit/namespace-overrides.test.d.ts +18 -0
  364. package/dist/tests/unit/namespace-overrides.test.d.ts.map +1 -0
  365. package/dist/tests/unit/namespace-overrides.test.js +210 -0
  366. package/dist/tests/unit/namespace-overrides.test.js.map +1 -0
  367. package/dist/tests/unit/rename-engine.test.d.ts +26 -0
  368. package/dist/tests/unit/rename-engine.test.d.ts.map +1 -0
  369. package/dist/tests/unit/rename-engine.test.js +367 -0
  370. package/dist/tests/unit/rename-engine.test.js.map +1 -0
  371. package/dist/tests/unit/skill-inventory-audit.test.d.ts +20 -0
  372. package/dist/tests/unit/skill-inventory-audit.test.d.ts.map +1 -0
  373. package/dist/tests/unit/skill-inventory-audit.test.js +299 -0
  374. package/dist/tests/unit/skill-inventory-audit.test.js.map +1 -0
  375. package/dist/tests/unit/skill-pack-audit.helpers.test.d.ts +11 -0
  376. package/dist/tests/unit/skill-pack-audit.helpers.test.d.ts.map +1 -0
  377. package/dist/tests/unit/skill-pack-audit.helpers.test.js +61 -0
  378. package/dist/tests/unit/skill-pack-audit.helpers.test.js.map +1 -0
  379. package/dist/tests/unit/skill-pack-audit.test.js +1 -1
  380. package/dist/tests/unit/skill-pack-audit.test.js.map +1 -1
  381. package/dist/tests/unit/suggestion-chain.test.d.ts +17 -0
  382. package/dist/tests/unit/suggestion-chain.test.d.ts.map +1 -0
  383. package/dist/tests/unit/suggestion-chain.test.js +191 -0
  384. package/dist/tests/unit/suggestion-chain.test.js.map +1 -0
  385. package/dist/tests/webhooks/standalone-shutdown.test.d.ts +12 -0
  386. package/dist/tests/webhooks/standalone-shutdown.test.d.ts.map +1 -0
  387. package/dist/tests/webhooks/standalone-shutdown.test.js +91 -0
  388. package/dist/tests/webhooks/standalone-shutdown.test.js.map +1 -0
  389. package/package.json +17 -4
  390. package/server.json +3 -3
  391. package/src/assets/skills/skillsmith/SKILL.md +2 -2
@@ -7,13 +7,13 @@
7
7
  import { describe, it, expect, beforeAll, afterAll } from 'vitest';
8
8
  import { executeCompare, formatComparisonResults } from '../tools/compare.js';
9
9
  import { SkillsmithError } from '@skillsmith/core';
10
- import { createSeededTestContext } from './test-utils.js';
10
+ import { createSeededTestContext, disposeTestContext } from './test-utils.js';
11
11
  let context;
12
- beforeAll(() => {
13
- context = createSeededTestContext();
12
+ beforeAll(async () => {
13
+ context = await createSeededTestContext();
14
14
  });
15
- afterAll(() => {
16
- context.db.close();
15
+ afterAll(async () => {
16
+ await disposeTestContext(context);
17
17
  });
18
18
  // ============================================================================
19
19
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"compare.test.js","sourceRoot":"","sources":["../../../src/__tests__/compare.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.test.js","sourceRoot":"","sources":["../../../src/__tests__/compare.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * SMI-4694: Listener-count audit for context.ts (Module 2).
3
+ *
4
+ * Verifies that createToolContext + closeToolContext is symmetric for
5
+ * SIGTERM/SIGINT signal handlers, including when backgroundSync and
6
+ * llmFailover paths are forced on (the only conditions that register
7
+ * handlers — see context.ts:244-260).
8
+ *
9
+ * Reference pattern: packages/core/tests/api/client.events.test.ts:39-72
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=context-listeners.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-listeners.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/context-listeners.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * SMI-4694: Listener-count audit for context.ts (Module 2).
3
+ *
4
+ * Verifies that createToolContext + closeToolContext is symmetric for
5
+ * SIGTERM/SIGINT signal handlers, including when backgroundSync and
6
+ * llmFailover paths are forced on (the only conditions that register
7
+ * handlers — see context.ts:244-260).
8
+ *
9
+ * Reference pattern: packages/core/tests/api/client.events.test.ts:39-72
10
+ */
11
+ import { describe, it, expect } from 'vitest';
12
+ import { SyncConfigRepository } from '@skillsmith/core';
13
+ import { closeToolContext, createToolContextAsync } from '../context.js';
14
+ import { createTestContext, disposeTestContext } from './test-utils.js';
15
+ describe('SMI-4694: context.ts listener-count audit', () => {
16
+ it('does NOT leak SIGTERM/SIGINT listeners when sync + failover are enabled', async () => {
17
+ const before = {
18
+ sigterm: process.listenerCount('SIGTERM'),
19
+ sigint: process.listenerCount('SIGINT'),
20
+ };
21
+ for (let i = 0; i < 5; i++) {
22
+ // Bootstrap: create a context just so we can flip the syncConfig flag
23
+ // on its in-memory DB, then close it. The "real" cycle below uses a
24
+ // fresh DB whose SyncConfigRepository.enable() runs against a NEW
25
+ // in-memory DB inline. Forcing this requires per-cycle bootstrap
26
+ // because :memory: DBs do not persist between createToolContextAsync calls.
27
+ // SMI-4756: Use createToolContextAsync for WASM fallback in post-merge-verify CI.
28
+ const seed = await createToolContextAsync({
29
+ dbPath: ':memory:',
30
+ apiClientConfig: { offlineMode: true },
31
+ backgroundSyncConfig: { enabled: false },
32
+ });
33
+ const repo = new SyncConfigRepository(seed.db);
34
+ repo.enable();
35
+ await closeToolContext(seed);
36
+ // Note: createToolContextAsync re-creates the DB; the seed above is mostly
37
+ // a sanity probe that SyncConfigRepository.enable() does not throw.
38
+ // The actual handler registration is gated on syncConfig.enabled
39
+ // returning true, which is the default for fresh DBs created with
40
+ // ensureTable() — see SyncConfigRepository.ts:174 ('enabled BOOLEAN
41
+ // DEFAULT 1'). With backgroundSyncConfig.enabled !== false AND
42
+ // llmFailoverConfig.enabled === true, both branches register handlers.
43
+ const ctx = await createToolContextAsync({
44
+ dbPath: ':memory:',
45
+ apiClientConfig: { offlineMode: true },
46
+ backgroundSyncConfig: { enabled: true },
47
+ llmFailoverConfig: { enabled: true },
48
+ });
49
+ // Sanity: at least one handler must be registered for the audit to
50
+ // be meaningful — otherwise the test passes trivially even if dispose
51
+ // is broken.
52
+ const mid = {
53
+ sigterm: process.listenerCount('SIGTERM'),
54
+ sigint: process.listenerCount('SIGINT'),
55
+ };
56
+ expect(mid.sigterm).toBeGreaterThan(before.sigterm);
57
+ expect(mid.sigint).toBeGreaterThan(before.sigint);
58
+ await closeToolContext(ctx);
59
+ }
60
+ const after = {
61
+ sigterm: process.listenerCount('SIGTERM'),
62
+ sigint: process.listenerCount('SIGINT'),
63
+ };
64
+ expect(after.sigterm).toBe(before.sigterm);
65
+ expect(after.sigint).toBe(before.sigint);
66
+ });
67
+ it('disposeTestContext is symmetric with createTestContext', async () => {
68
+ const before = {
69
+ sigterm: process.listenerCount('SIGTERM'),
70
+ sigint: process.listenerCount('SIGINT'),
71
+ };
72
+ for (let i = 0; i < 5; i++) {
73
+ const ctx = await createTestContext();
74
+ await disposeTestContext(ctx);
75
+ }
76
+ const after = {
77
+ sigterm: process.listenerCount('SIGTERM'),
78
+ sigint: process.listenerCount('SIGINT'),
79
+ };
80
+ // createTestContext uses offline mode; backgroundSync default is on but
81
+ // syncConfig.enabled defaults to TRUE (DB schema default), so handlers
82
+ // ARE registered. disposeTestContext must remove them symmetrically.
83
+ expect(after.sigterm).toBe(before.sigterm);
84
+ expect(after.sigint).toBe(before.sigint);
85
+ });
86
+ });
87
+ //# sourceMappingURL=context-listeners.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-listeners.test.js","sourceRoot":"","sources":["../../../src/__tests__/context-listeners.test.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
10
10
  import { homedir, tmpdir } from 'os';
11
11
  import { join } from 'path';
12
12
  import { existsSync, rmSync } from 'fs';
13
- import { getDefaultDbPath, createToolContext, closeToolContext, getToolContext, resetToolContext, } from '../context.js';
13
+ import { getDefaultDbPath, closeToolContext, createToolContextAsync, getToolContextAsync, resetAsyncToolContext, } from '../context.js';
14
14
  describe('Context Module', () => {
15
15
  // Store original values for env vars we modify
16
16
  const ENV_VARS_TO_CLEAR = [
@@ -27,12 +27,12 @@ describe('Context Module', () => {
27
27
  vi.stubEnv(key, undefined);
28
28
  });
29
29
  // Reset global context
30
- await resetToolContext();
30
+ await resetAsyncToolContext();
31
31
  });
32
32
  afterEach(async () => {
33
33
  vi.unstubAllEnvs();
34
34
  vi.restoreAllMocks();
35
- await resetToolContext();
35
+ await resetAsyncToolContext();
36
36
  });
37
37
  describe('getDefaultDbPath', () => {
38
38
  it('should return default path when SKILLSMITH_DB_PATH is not set', () => {
@@ -68,37 +68,37 @@ describe('Context Module', () => {
68
68
  expect(dbPath).toBe(claudePath);
69
69
  });
70
70
  });
71
- describe('createToolContext', () => {
71
+ describe('createToolContextAsync', () => {
72
72
  describe('basic initialization', () => {
73
- it('should create context with in-memory database', () => {
74
- const context = createToolContext({ dbPath: ':memory:' });
73
+ it('should create context with in-memory database', async () => {
74
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
75
75
  expect(context.db).toBeDefined();
76
76
  expect(context.searchService).toBeDefined();
77
77
  expect(context.skillRepository).toBeDefined();
78
78
  expect(context.apiClient).toBeDefined();
79
- context.db.close();
79
+ await closeToolContext(context);
80
80
  });
81
81
  it('should create context with default options', async () => {
82
- const context = createToolContext({ dbPath: ':memory:' });
82
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
83
83
  expect(context.distinctId).toBeUndefined();
84
84
  // backgroundSync is created by default when sync config is enabled
85
85
  // This is the expected default behavior
86
86
  expect(context.llmFailover).toBeUndefined();
87
87
  await closeToolContext(context);
88
88
  });
89
- it('should throw error for invalid custom path', () => {
90
- expect(() => createToolContext({ dbPath: '/etc/malicious/../../../root/hack.db' })).toThrow('Invalid database path');
89
+ it('should throw error for invalid custom path', async () => {
90
+ await expect(createToolContextAsync({ dbPath: '/etc/malicious/../../../root/hack.db' })).rejects.toThrow('Invalid database path');
91
91
  });
92
- it('should apply custom search cache TTL', () => {
93
- const context = createToolContext({
92
+ it('should apply custom search cache TTL', async () => {
93
+ const context = await createToolContextAsync({
94
94
  dbPath: ':memory:',
95
95
  searchCacheTtl: 600,
96
96
  });
97
97
  expect(context.searchService).toBeDefined();
98
- context.db.close();
98
+ await closeToolContext(context);
99
99
  });
100
- it('should apply API client configuration', () => {
101
- const context = createToolContext({
100
+ it('should apply API client configuration', async () => {
101
+ const context = await createToolContextAsync({
102
102
  dbPath: ':memory:',
103
103
  apiClientConfig: {
104
104
  timeout: 5000,
@@ -108,44 +108,44 @@ describe('Context Module', () => {
108
108
  });
109
109
  expect(context.apiClient).toBeDefined();
110
110
  expect(context.apiClient.isOffline()).toBe(true);
111
- context.db.close();
111
+ await closeToolContext(context);
112
112
  });
113
- it('should create directory for file-based database path', () => {
113
+ it('should create directory for file-based database path', async () => {
114
114
  const testDir = join(tmpdir(), 'skillsmith-context-test-' + Date.now());
115
115
  const dbPath = join(testDir, 'test.db');
116
116
  // Clean up if exists
117
117
  if (existsSync(testDir)) {
118
118
  rmSync(testDir, { recursive: true });
119
119
  }
120
- const context = createToolContext({ dbPath });
120
+ const context = await createToolContextAsync({ dbPath });
121
121
  expect(existsSync(testDir)).toBe(true);
122
- context.db.close();
122
+ await closeToolContext(context);
123
123
  // Clean up
124
124
  rmSync(testDir, { recursive: true });
125
125
  });
126
- it('should skip directory creation for in-memory database', () => {
126
+ it('should skip directory creation for in-memory database', async () => {
127
127
  // This should not throw even though :memory: has no directory
128
- const context = createToolContext({ dbPath: ':memory:' });
128
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
129
129
  expect(context.db).toBeDefined();
130
- context.db.close();
130
+ await closeToolContext(context);
131
131
  });
132
132
  });
133
133
  describe('telemetry configuration', () => {
134
- it('should not enable telemetry by default', () => {
135
- const context = createToolContext({ dbPath: ':memory:' });
134
+ it('should not enable telemetry by default', async () => {
135
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
136
136
  expect(context.distinctId).toBeUndefined();
137
- context.db.close();
137
+ await closeToolContext(context);
138
138
  });
139
- it('should enable telemetry when env var is true and API key provided', () => {
139
+ it('should enable telemetry when env var is true and API key provided', async () => {
140
140
  process.env.SKILLSMITH_TELEMETRY_ENABLED = 'true';
141
141
  process.env.POSTHOG_API_KEY = 'phc_test_key_12345';
142
- const context = createToolContext({ dbPath: ':memory:' });
142
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
143
143
  expect(context.distinctId).toBeDefined();
144
144
  expect(typeof context.distinctId).toBe('string');
145
- context.db.close();
145
+ await closeToolContext(context);
146
146
  });
147
- it('should enable telemetry via config options', () => {
148
- const context = createToolContext({
147
+ it('should enable telemetry via config options', async () => {
148
+ const context = await createToolContextAsync({
149
149
  dbPath: ':memory:',
150
150
  telemetryConfig: {
151
151
  enabled: true,
@@ -153,19 +153,19 @@ describe('Context Module', () => {
153
153
  },
154
154
  });
155
155
  expect(context.distinctId).toBeDefined();
156
- context.db.close();
156
+ await closeToolContext(context);
157
157
  });
158
- it('should not enable telemetry without API key', () => {
158
+ it('should not enable telemetry without API key', async () => {
159
159
  process.env.SKILLSMITH_TELEMETRY_ENABLED = 'true';
160
160
  // No POSTHOG_API_KEY set
161
- const context = createToolContext({ dbPath: ':memory:' });
161
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
162
162
  expect(context.distinctId).toBeUndefined();
163
- context.db.close();
163
+ await closeToolContext(context);
164
164
  });
165
- it('should prefer env var over config when both set', () => {
165
+ it('should prefer env var over config when both set', async () => {
166
166
  process.env.SKILLSMITH_TELEMETRY_ENABLED = 'true';
167
167
  process.env.POSTHOG_API_KEY = 'phc_env_key';
168
- const context = createToolContext({
168
+ const context = await createToolContextAsync({
169
169
  dbPath: ':memory:',
170
170
  telemetryConfig: {
171
171
  enabled: false, // Config says false, but env var says true
@@ -174,51 +174,51 @@ describe('Context Module', () => {
174
174
  });
175
175
  // env var wins
176
176
  expect(context.distinctId).toBeDefined();
177
- context.db.close();
177
+ await closeToolContext(context);
178
178
  });
179
179
  });
180
180
  describe('background sync configuration', () => {
181
- it('should not create backgroundSync when disabled via env var', () => {
181
+ it('should not create backgroundSync when disabled via env var', async () => {
182
182
  process.env.SKILLSMITH_BACKGROUND_SYNC = 'false';
183
- const context = createToolContext({ dbPath: ':memory:' });
183
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
184
184
  expect(context.backgroundSync).toBeUndefined();
185
- context.db.close();
185
+ await closeToolContext(context);
186
186
  });
187
- it('should not create backgroundSync when disabled via config', () => {
188
- const context = createToolContext({
187
+ it('should not create backgroundSync when disabled via config', async () => {
188
+ const context = await createToolContextAsync({
189
189
  dbPath: ':memory:',
190
190
  backgroundSyncConfig: { enabled: false },
191
191
  });
192
192
  expect(context.backgroundSync).toBeUndefined();
193
- context.db.close();
193
+ await closeToolContext(context);
194
194
  });
195
- it('should check sync config enabled flag before starting', () => {
195
+ it('should check sync config enabled flag before starting', async () => {
196
196
  // backgroundSync is only created if syncConfig.enabled is true
197
197
  // Default sync config has enabled: false
198
- const context = createToolContext({
198
+ const context = await createToolContextAsync({
199
199
  dbPath: ':memory:',
200
200
  backgroundSyncConfig: { enabled: true },
201
201
  });
202
202
  // Background sync may or may not be created based on internal sync config
203
203
  // Just verify context creation succeeds
204
204
  expect(context.db).toBeDefined();
205
- context.db.close();
205
+ await closeToolContext(context);
206
206
  });
207
207
  });
208
208
  describe('LLM failover configuration', () => {
209
- it('should not create llmFailover by default', () => {
210
- const context = createToolContext({ dbPath: ':memory:' });
209
+ it('should not create llmFailover by default', async () => {
210
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
211
211
  expect(context.llmFailover).toBeUndefined();
212
- context.db.close();
212
+ await closeToolContext(context);
213
213
  });
214
214
  it('should create llmFailover when enabled via env var', async () => {
215
215
  process.env.SKILLSMITH_LLM_FAILOVER_ENABLED = 'true';
216
- const context = createToolContext({ dbPath: ':memory:' });
216
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
217
217
  expect(context.llmFailover).toBeDefined();
218
218
  await closeToolContext(context);
219
219
  });
220
220
  it('should create llmFailover when enabled via config', async () => {
221
- const context = createToolContext({
221
+ const context = await createToolContextAsync({
222
222
  dbPath: ':memory:',
223
223
  llmFailoverConfig: { enabled: true },
224
224
  });
@@ -229,32 +229,32 @@ describe('Context Module', () => {
229
229
  describe('signal handler registration', () => {
230
230
  it('should register signal handlers when services are created', async () => {
231
231
  process.env.SKILLSMITH_LLM_FAILOVER_ENABLED = 'true';
232
- const context = createToolContext({ dbPath: ':memory:' });
232
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
233
233
  expect(context._signalHandlers).toBeDefined();
234
234
  expect(context._signalHandlers.length).toBeGreaterThan(0);
235
235
  await closeToolContext(context);
236
236
  });
237
- it('should not register signal handlers without services', () => {
237
+ it('should not register signal handlers without services', async () => {
238
238
  process.env.SKILLSMITH_BACKGROUND_SYNC = 'false';
239
- const context = createToolContext({
239
+ const context = await createToolContextAsync({
240
240
  dbPath: ':memory:',
241
241
  backgroundSyncConfig: { enabled: false },
242
242
  });
243
243
  expect(context._signalHandlers).toBeUndefined();
244
- context.db.close();
244
+ await closeToolContext(context);
245
245
  });
246
246
  });
247
247
  });
248
248
  describe('closeToolContext', () => {
249
249
  it('should close database connection', async () => {
250
- const context = createToolContext({ dbPath: ':memory:' });
250
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
251
251
  await closeToolContext(context);
252
252
  // Database should be closed - further operations should fail
253
253
  expect(() => context.db.exec('SELECT 1')).toThrow();
254
254
  });
255
255
  it('should remove signal handlers', async () => {
256
256
  process.env.SKILLSMITH_LLM_FAILOVER_ENABLED = 'true';
257
- const context = createToolContext({ dbPath: ':memory:' });
257
+ const context = await createToolContextAsync({ dbPath: ':memory:' });
258
258
  const initialHandlerCount = context._signalHandlers?.length ?? 0;
259
259
  expect(initialHandlerCount).toBeGreaterThan(0);
260
260
  await closeToolContext(context);
@@ -262,7 +262,7 @@ describe('Context Module', () => {
262
262
  });
263
263
  it('should stop background sync if running', async () => {
264
264
  // Create context with background sync enabled
265
- const context = createToolContext({
265
+ const context = await createToolContextAsync({
266
266
  dbPath: ':memory:',
267
267
  backgroundSyncConfig: { enabled: true },
268
268
  });
@@ -270,7 +270,7 @@ describe('Context Module', () => {
270
270
  // Should complete without error
271
271
  });
272
272
  it('should close LLM failover chain if initialized', async () => {
273
- const context = createToolContext({
273
+ const context = await createToolContextAsync({
274
274
  dbPath: ':memory:',
275
275
  llmFailoverConfig: { enabled: true },
276
276
  });
@@ -279,7 +279,7 @@ describe('Context Module', () => {
279
279
  });
280
280
  it('should shutdown PostHog if telemetry was enabled', async () => {
281
281
  process.env.POSTHOG_API_KEY = 'phc_test_key';
282
- const context = createToolContext({
282
+ const context = await createToolContextAsync({
283
283
  dbPath: ':memory:',
284
284
  telemetryConfig: { enabled: true, postHogApiKey: 'phc_test_key' },
285
285
  });
@@ -288,56 +288,58 @@ describe('Context Module', () => {
288
288
  // Should complete without error
289
289
  });
290
290
  });
291
- describe('getToolContext (singleton)', () => {
291
+ describe('getToolContextAsync (singleton)', () => {
292
292
  it('should create context on first call', async () => {
293
- await resetToolContext(); // Ensure clean state
294
- const context = getToolContext({ dbPath: ':memory:' });
293
+ await resetAsyncToolContext(); // Ensure clean state
294
+ const context = await getToolContextAsync({ dbPath: ':memory:' });
295
295
  expect(context).toBeDefined();
296
296
  expect(context.db).toBeDefined();
297
297
  });
298
298
  it('should return same context on subsequent calls', async () => {
299
- await resetToolContext();
300
- const context1 = getToolContext({ dbPath: ':memory:' });
301
- const context2 = getToolContext();
299
+ await resetAsyncToolContext();
300
+ const context1 = await getToolContextAsync({ dbPath: ':memory:' });
301
+ const context2 = await getToolContextAsync();
302
302
  expect(context1).toBe(context2);
303
303
  });
304
304
  it('should warn when options provided after context created', async () => {
305
- await resetToolContext();
305
+ await resetAsyncToolContext();
306
306
  const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
307
- getToolContext({ dbPath: ':memory:' });
308
- getToolContext({ dbPath: ':memory:', searchCacheTtl: 1000 });
307
+ await getToolContextAsync({ dbPath: ':memory:' });
308
+ await getToolContextAsync({ dbPath: ':memory:', searchCacheTtl: 1000 });
309
309
  expect(consoleWarnSpy).toHaveBeenCalledWith(expect.stringContaining('Options ignored'));
310
310
  consoleWarnSpy.mockRestore();
311
311
  });
312
312
  it('should not warn when no options provided on subsequent calls', async () => {
313
- await resetToolContext();
313
+ await resetAsyncToolContext();
314
314
  const consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
315
- getToolContext({ dbPath: ':memory:' });
316
- getToolContext(); // No options
317
- expect(consoleWarnSpy).not.toHaveBeenCalled();
315
+ await getToolContextAsync({ dbPath: ':memory:' });
316
+ await getToolContextAsync(); // No options
317
+ // Should not have warned about ignored options (WASM-fallback warning is exempt)
318
+ const optionsIgnoredCalls = consoleWarnSpy.mock.calls.filter((args) => typeof args[0] === 'string' && args[0].includes('Options ignored'));
319
+ expect(optionsIgnoredCalls).toHaveLength(0);
318
320
  consoleWarnSpy.mockRestore();
319
321
  });
320
322
  });
321
- describe('resetToolContext', () => {
323
+ describe('resetAsyncToolContext', () => {
322
324
  it('should clear the global context', async () => {
323
- const context1 = getToolContext({ dbPath: ':memory:' });
324
- await resetToolContext();
325
- const context2 = getToolContext({ dbPath: ':memory:' });
325
+ const context1 = await getToolContextAsync({ dbPath: ':memory:' });
326
+ await resetAsyncToolContext();
327
+ const context2 = await getToolContextAsync({ dbPath: ':memory:' });
326
328
  // Should be different instances
327
329
  expect(context1).not.toBe(context2);
328
330
  });
329
331
  it('should close existing context before reset', async () => {
330
- const context = getToolContext({ dbPath: ':memory:' });
332
+ const context = await getToolContextAsync({ dbPath: ':memory:' });
331
333
  const db = context.db;
332
- await resetToolContext();
334
+ await resetAsyncToolContext();
333
335
  // Original database should be closed
334
336
  expect(() => db.exec('SELECT 1')).toThrow();
335
337
  });
336
338
  it('should be idempotent when no context exists', async () => {
337
- await resetToolContext();
338
- await resetToolContext(); // Should not throw
339
+ await resetAsyncToolContext();
340
+ await resetAsyncToolContext(); // Should not throw
339
341
  // Should be able to create new context
340
- const context = getToolContext({ dbPath: ':memory:' });
342
+ const context = await getToolContextAsync({ dbPath: ':memory:' });
341
343
  expect(context).toBeDefined();
342
344
  });
343
345
  });
@@ -1 +1 @@
1
- {"version":3,"file":"context.test.js","sourceRoot":"","sources":["../../../src/__tests__/context.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.test.js","sourceRoot":"","sources":["../../../src/__tests__/context.test.ts"],"names":[],"mappings":"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"}