@skillsmith/core 0.4.15 → 0.4.17

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 (221) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +57 -2
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/analysis/DependencyMerger.d.ts +39 -0
  5. package/dist/src/analysis/DependencyMerger.d.ts.map +1 -0
  6. package/dist/src/analysis/DependencyMerger.js +191 -0
  7. package/dist/src/analysis/DependencyMerger.js.map +1 -0
  8. package/dist/src/analysis/DependencyMerger.test.d.ts +2 -0
  9. package/dist/src/analysis/DependencyMerger.test.d.ts.map +1 -0
  10. package/dist/src/analysis/DependencyMerger.test.js +258 -0
  11. package/dist/src/analysis/DependencyMerger.test.js.map +1 -0
  12. package/dist/src/analysis/McpReferenceExtractor.d.ts +42 -0
  13. package/dist/src/analysis/McpReferenceExtractor.d.ts.map +1 -0
  14. package/dist/src/analysis/McpReferenceExtractor.js +92 -0
  15. package/dist/src/analysis/McpReferenceExtractor.js.map +1 -0
  16. package/dist/src/analysis/McpReferenceExtractor.test.d.ts +2 -0
  17. package/dist/src/analysis/McpReferenceExtractor.test.d.ts.map +1 -0
  18. package/dist/src/analysis/McpReferenceExtractor.test.js +262 -0
  19. package/dist/src/analysis/McpReferenceExtractor.test.js.map +1 -0
  20. package/dist/src/api/client.d.ts +2 -0
  21. package/dist/src/api/client.d.ts.map +1 -1
  22. package/dist/src/api/client.js.map +1 -1
  23. package/dist/src/db/drivers/sqljsDriver.d.ts.map +1 -1
  24. package/dist/src/db/drivers/sqljsDriver.js +4 -8
  25. package/dist/src/db/drivers/sqljsDriver.js.map +1 -1
  26. package/dist/src/db/migrations/v10-dependencies.d.ts +18 -0
  27. package/dist/src/db/migrations/v10-dependencies.d.ts.map +1 -0
  28. package/dist/src/db/migrations/v10-dependencies.js +50 -0
  29. package/dist/src/db/migrations/v10-dependencies.js.map +1 -0
  30. package/dist/src/db/migrations/v2-phase5-columns.d.ts +7 -0
  31. package/dist/src/db/migrations/v2-phase5-columns.d.ts.map +1 -0
  32. package/dist/src/db/migrations/v2-phase5-columns.js +16 -0
  33. package/dist/src/db/migrations/v2-phase5-columns.js.map +1 -0
  34. package/dist/src/db/migrations/v3-sync-tables.d.ts +6 -0
  35. package/dist/src/db/migrations/v3-sync-tables.d.ts.map +1 -0
  36. package/dist/src/db/migrations/v3-sync-tables.js +41 -0
  37. package/dist/src/db/migrations/v3-sync-tables.js.map +1 -0
  38. package/dist/src/db/migrations/v4-security-columns.d.ts +7 -0
  39. package/dist/src/db/migrations/v4-security-columns.d.ts.map +1 -0
  40. package/dist/src/db/migrations/v4-security-columns.js +17 -0
  41. package/dist/src/db/migrations/v4-security-columns.js.map +1 -0
  42. package/dist/src/db/schema.d.ts +2 -2
  43. package/dist/src/db/schema.d.ts.map +1 -1
  44. package/dist/src/db/schema.js +20 -58
  45. package/dist/src/db/schema.js.map +1 -1
  46. package/dist/src/embeddings/hnsw-store.d.ts +1 -1
  47. package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
  48. package/dist/src/embeddings/hnsw-store.js +4 -34
  49. package/dist/src/embeddings/hnsw-store.js.map +1 -1
  50. package/dist/src/embeddings/hnsw-store.types.d.ts +18 -0
  51. package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -1
  52. package/dist/src/embeddings/hnsw-store.types.js.map +1 -1
  53. package/dist/src/exports/repositories.d.ts +1 -0
  54. package/dist/src/exports/repositories.d.ts.map +1 -1
  55. package/dist/src/exports/repositories.js +4 -0
  56. package/dist/src/exports/repositories.js.map +1 -1
  57. package/dist/src/exports/services.d.ts +5 -0
  58. package/dist/src/exports/services.d.ts.map +1 -1
  59. package/dist/src/exports/services.js +11 -0
  60. package/dist/src/exports/services.js.map +1 -1
  61. package/dist/src/exports/types.d.ts +1 -0
  62. package/dist/src/exports/types.d.ts.map +1 -1
  63. package/dist/src/exports/types.js.map +1 -1
  64. package/dist/src/index.d.ts +1 -1
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/index.js +1 -1
  67. package/dist/src/index.js.map +1 -1
  68. package/dist/src/indexer/GitHubIndexer.d.ts +3 -1
  69. package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
  70. package/dist/src/indexer/GitHubIndexer.js.map +1 -1
  71. package/dist/src/indexer/SkillParser.d.ts +20 -9
  72. package/dist/src/indexer/SkillParser.d.ts.map +1 -1
  73. package/dist/src/indexer/SkillParser.js +17 -10
  74. package/dist/src/indexer/SkillParser.js.map +1 -1
  75. package/dist/src/learning/PatternStore.d.ts.map +1 -1
  76. package/dist/src/learning/PatternStore.js +2 -9
  77. package/dist/src/learning/PatternStore.js.map +1 -1
  78. package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
  79. package/dist/src/repositories/IndexerRepository.js +5 -1
  80. package/dist/src/repositories/IndexerRepository.js.map +1 -1
  81. package/dist/src/repositories/SkillDependencyRepository.d.ts +73 -0
  82. package/dist/src/repositories/SkillDependencyRepository.d.ts.map +1 -0
  83. package/dist/src/repositories/SkillDependencyRepository.js +199 -0
  84. package/dist/src/repositories/SkillDependencyRepository.js.map +1 -0
  85. package/dist/src/routing/SONARouter.d.ts.map +1 -1
  86. package/dist/src/routing/SONARouter.js +4 -15
  87. package/dist/src/routing/SONARouter.js.map +1 -1
  88. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +5 -0
  89. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  90. package/dist/src/security/scanner/SecurityScanner.d.ts +4 -2
  91. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  92. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +24 -2
  93. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
  94. package/dist/src/security/scanner/SecurityScanner.helpers.js +99 -3
  95. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
  96. package/dist/src/security/scanner/SecurityScanner.js +29 -90
  97. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  98. package/dist/src/security/scanner/SecurityScanner.ssrf.d.ts +15 -0
  99. package/dist/src/security/scanner/SecurityScanner.ssrf.d.ts.map +1 -0
  100. package/dist/src/security/scanner/SecurityScanner.ssrf.js +76 -0
  101. package/dist/src/security/scanner/SecurityScanner.ssrf.js.map +1 -0
  102. package/dist/src/security/scanner/index.d.ts +1 -1
  103. package/dist/src/security/scanner/index.d.ts.map +1 -1
  104. package/dist/src/security/scanner/index.js +1 -1
  105. package/dist/src/security/scanner/index.js.map +1 -1
  106. package/dist/src/security/scanner/patterns.d.ts +6 -0
  107. package/dist/src/security/scanner/patterns.d.ts.map +1 -1
  108. package/dist/src/security/scanner/patterns.js +32 -0
  109. package/dist/src/security/scanner/patterns.js.map +1 -1
  110. package/dist/src/security/scanner/types.d.ts +2 -1
  111. package/dist/src/security/scanner/types.d.ts.map +1 -1
  112. package/dist/src/security/scanner/weights.d.ts.map +1 -1
  113. package/dist/src/security/scanner/weights.js +1 -0
  114. package/dist/src/security/scanner/weights.js.map +1 -1
  115. package/dist/src/services/skill-installation.helpers.d.ts +62 -0
  116. package/dist/src/services/skill-installation.helpers.d.ts.map +1 -0
  117. package/dist/src/services/skill-installation.helpers.js +335 -0
  118. package/dist/src/services/skill-installation.helpers.js.map +1 -0
  119. package/dist/src/services/skill-installation.service.d.ts +45 -0
  120. package/dist/src/services/skill-installation.service.d.ts.map +1 -0
  121. package/dist/src/services/skill-installation.service.js +383 -0
  122. package/dist/src/services/skill-installation.service.js.map +1 -0
  123. package/dist/src/services/skill-installation.types.d.ts +144 -0
  124. package/dist/src/services/skill-installation.types.d.ts.map +1 -0
  125. package/dist/src/services/skill-installation.types.js +38 -0
  126. package/dist/src/services/skill-installation.types.js.map +1 -0
  127. package/dist/src/services/skill-manifest.d.ts +20 -0
  128. package/dist/src/services/skill-manifest.d.ts.map +1 -0
  129. package/dist/src/services/skill-manifest.js +84 -0
  130. package/dist/src/services/skill-manifest.js.map +1 -0
  131. package/dist/src/session/SessionManager.helpers.d.ts +1 -27
  132. package/dist/src/session/SessionManager.helpers.d.ts.map +1 -1
  133. package/dist/src/session/SessionManager.helpers.js +0 -64
  134. package/dist/src/session/SessionManager.helpers.js.map +1 -1
  135. package/dist/src/session/SessionManager.memory.d.ts +12 -11
  136. package/dist/src/session/SessionManager.memory.d.ts.map +1 -1
  137. package/dist/src/session/SessionManager.memory.js +23 -115
  138. package/dist/src/session/SessionManager.memory.js.map +1 -1
  139. package/dist/src/session/SessionManager.types.d.ts +0 -37
  140. package/dist/src/session/SessionManager.types.d.ts.map +1 -1
  141. package/dist/src/session/SessionManager.types.js.map +1 -1
  142. package/dist/src/session/SessionRecovery.js +4 -4
  143. package/dist/src/session/SessionRecovery.js.map +1 -1
  144. package/dist/src/sources/SourceIndexer.d.ts +3 -1
  145. package/dist/src/sources/SourceIndexer.d.ts.map +1 -1
  146. package/dist/src/sources/SourceIndexer.js.map +1 -1
  147. package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
  148. package/dist/src/testing/MultiLLMProvider.js +5 -19
  149. package/dist/src/testing/MultiLLMProvider.js.map +1 -1
  150. package/dist/src/types/dependencies.d.ts +85 -0
  151. package/dist/src/types/dependencies.d.ts.map +1 -0
  152. package/dist/src/types/dependencies.js +11 -0
  153. package/dist/src/types/dependencies.js.map +1 -0
  154. package/dist/src/types/skill.d.ts +3 -0
  155. package/dist/src/types/skill.d.ts.map +1 -1
  156. package/dist/src/types/skill.js.map +1 -1
  157. package/dist/src/types.d.ts +2 -0
  158. package/dist/src/types.d.ts.map +1 -1
  159. package/dist/tests/DailyIndexPipeline.test.js +3 -3
  160. package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
  161. package/dist/tests/GitHubIndexer.test.js +4 -2
  162. package/dist/tests/GitHubIndexer.test.js.map +1 -1
  163. package/dist/tests/billing/StripeClient.test.d.ts +18 -0
  164. package/dist/tests/billing/StripeClient.test.d.ts.map +1 -0
  165. package/dist/tests/billing/StripeClient.test.js +566 -0
  166. package/dist/tests/billing/StripeClient.test.js.map +1 -0
  167. package/dist/tests/billing/StripeWebhookHandler.test.d.ts +16 -0
  168. package/dist/tests/billing/StripeWebhookHandler.test.d.ts.map +1 -0
  169. package/dist/tests/billing/StripeWebhookHandler.test.js +240 -0
  170. package/dist/tests/billing/StripeWebhookHandler.test.js.map +1 -0
  171. package/dist/tests/billing/stripe-helpers.test.d.ts +7 -0
  172. package/dist/tests/billing/stripe-helpers.test.d.ts.map +1 -0
  173. package/dist/tests/billing/stripe-helpers.test.js +91 -0
  174. package/dist/tests/billing/stripe-helpers.test.js.map +1 -0
  175. package/dist/tests/billing/webhook-handlers.test.d.ts +16 -0
  176. package/dist/tests/billing/webhook-handlers.test.d.ts.map +1 -0
  177. package/dist/tests/billing/webhook-handlers.test.js +519 -0
  178. package/dist/tests/billing/webhook-handlers.test.js.map +1 -0
  179. package/dist/tests/db/migration.test.d.ts +11 -0
  180. package/dist/tests/db/migration.test.d.ts.map +1 -0
  181. package/dist/tests/db/migration.test.js +265 -0
  182. package/dist/tests/db/migration.test.js.map +1 -0
  183. package/dist/tests/edge-cases/EdgeCases.test.js +4 -1
  184. package/dist/tests/edge-cases/EdgeCases.test.js.map +1 -1
  185. package/dist/tests/repositories/SkillDependencyRepository.test.d.ts +10 -0
  186. package/dist/tests/repositories/SkillDependencyRepository.test.d.ts.map +1 -0
  187. package/dist/tests/repositories/SkillDependencyRepository.test.js +336 -0
  188. package/dist/tests/repositories/SkillDependencyRepository.test.js.map +1 -0
  189. package/dist/tests/security/ContinuousSecurity.test.js +2 -2
  190. package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
  191. package/dist/tests/security.test.js +200 -0
  192. package/dist/tests/security.test.js.map +1 -1
  193. package/dist/tests/session/SessionManager.helpers.test.js +1 -9
  194. package/dist/tests/session/SessionManager.helpers.test.js.map +1 -1
  195. package/dist/tests/session/SessionManager.memory.test.d.ts +3 -4
  196. package/dist/tests/session/SessionManager.memory.test.d.ts.map +1 -1
  197. package/dist/tests/session/SessionManager.memory.test.js +41 -123
  198. package/dist/tests/session/SessionManager.memory.test.js.map +1 -1
  199. package/dist/tests/sources.test.js +1 -1
  200. package/dist/tests/sources.test.js.map +1 -1
  201. package/dist/tests/sync/BackgroundSyncService.test.d.ts +13 -0
  202. package/dist/tests/sync/BackgroundSyncService.test.d.ts.map +1 -0
  203. package/dist/tests/sync/BackgroundSyncService.test.js +259 -0
  204. package/dist/tests/sync/BackgroundSyncService.test.js.map +1 -0
  205. package/dist/tests/testkit.d.ts +14 -0
  206. package/dist/tests/testkit.d.ts.map +1 -0
  207. package/dist/tests/testkit.js +14 -0
  208. package/dist/tests/testkit.js.map +1 -0
  209. package/dist/tests/unit/migrations/v10-dependencies.test.d.ts +6 -0
  210. package/dist/tests/unit/migrations/v10-dependencies.test.d.ts.map +1 -0
  211. package/dist/tests/unit/migrations/v10-dependencies.test.js +166 -0
  212. package/dist/tests/unit/migrations/v10-dependencies.test.js.map +1 -0
  213. package/dist/tests/unit/services/skill-installation.service.test.d.ts +8 -0
  214. package/dist/tests/unit/services/skill-installation.service.test.d.ts.map +1 -0
  215. package/dist/tests/unit/services/skill-installation.service.test.js +732 -0
  216. package/dist/tests/unit/services/skill-installation.service.test.js.map +1 -0
  217. package/package.json +19 -7
  218. package/dist/vitest.config.d.ts +0 -3
  219. package/dist/vitest.config.d.ts.map +0 -1
  220. package/dist/vitest.config.js +0 -13
  221. package/dist/vitest.config.js.map +0 -1
@@ -286,7 +286,7 @@ describe('Source Adapter Architecture (SMI-589)', () => {
286
286
  author: 'test',
287
287
  version: '1.0.0',
288
288
  tags: ['test'],
289
- dependencies: [],
289
+ dependencies: undefined,
290
290
  category: null,
291
291
  license: 'MIT',
292
292
  rawContent: '# Test',
@@ -1 +1 @@
1
- {"version":3,"file":"sources.test.js","sourceRoot":"","sources":["../../tests/sources.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sources.test.js","sourceRoot":"","sources":["../../tests/sources.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SMI-3416: BackgroundSyncService Tests
3
+ *
4
+ * Tests for session-based automatic sync service:
5
+ * - Start/stop lifecycle
6
+ * - Sync-on-start behavior
7
+ * - Periodic check and sync triggering
8
+ * - Concurrent sync prevention
9
+ * - Manual sync
10
+ * - Error handling and callbacks
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=BackgroundSyncService.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackgroundSyncService.test.d.ts","sourceRoot":"","sources":["../../../tests/sync/BackgroundSyncService.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * SMI-3416: BackgroundSyncService Tests
3
+ *
4
+ * Tests for session-based automatic sync service:
5
+ * - Start/stop lifecycle
6
+ * - Sync-on-start behavior
7
+ * - Periodic check and sync triggering
8
+ * - Concurrent sync prevention
9
+ * - Manual sync
10
+ * - Error handling and callbacks
11
+ */
12
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
13
+ import { BackgroundSyncService, createBackgroundSyncService, } from '../../src/sync/BackgroundSyncService.js';
14
+ /** Flush microtask queue so fire-and-forget promises resolve */
15
+ function flushPromises() {
16
+ return new Promise((resolve) => setImmediate(resolve));
17
+ }
18
+ // ============================================================================
19
+ // Mock Factories
20
+ // ============================================================================
21
+ function createMockSyncResult(overrides) {
22
+ return {
23
+ success: true,
24
+ skillsAdded: 2,
25
+ skillsUpdated: 1,
26
+ skillsUnchanged: 10,
27
+ totalProcessed: 13,
28
+ durationMs: 150,
29
+ errors: [],
30
+ dryRun: false,
31
+ ...overrides,
32
+ };
33
+ }
34
+ function createMockSyncEngine(result) {
35
+ return {
36
+ sync: vi.fn().mockResolvedValue(result ?? createMockSyncResult()),
37
+ };
38
+ }
39
+ function createMockConfigRepo(overrides) {
40
+ const enabled = overrides?.enabled ?? true;
41
+ const lastSyncAt = overrides?.lastSyncAt ?? '2026-03-16T00:00:00Z';
42
+ const isSyncDue = overrides?.isSyncDue ?? false;
43
+ return {
44
+ getConfig: vi.fn().mockReturnValue({
45
+ enabled,
46
+ frequency: 'daily',
47
+ intervalMs: 86400000,
48
+ lastSyncAt,
49
+ }),
50
+ isSyncDue: vi.fn().mockReturnValue(isSyncDue),
51
+ };
52
+ }
53
+ // ============================================================================
54
+ // Tests
55
+ // ============================================================================
56
+ describe('BackgroundSyncService', () => {
57
+ beforeEach(() => {
58
+ vi.useFakeTimers();
59
+ });
60
+ afterEach(() => {
61
+ vi.useRealTimers();
62
+ });
63
+ describe('start/stop lifecycle', () => {
64
+ it('should start and report isStarted', () => {
65
+ const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo(), {
66
+ syncOnStart: false,
67
+ });
68
+ service.start();
69
+ expect(service.isServiceStarted()).toBe(true);
70
+ service.stop();
71
+ expect(service.isServiceStarted()).toBe(false);
72
+ });
73
+ it('should not start if auto-sync is disabled', () => {
74
+ const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo({ enabled: false }), { syncOnStart: false });
75
+ service.start();
76
+ expect(service.isServiceStarted()).toBe(false);
77
+ });
78
+ it('should ignore duplicate start calls', () => {
79
+ const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo(), {
80
+ syncOnStart: false,
81
+ });
82
+ service.start();
83
+ service.start(); // should not throw
84
+ expect(service.isServiceStarted()).toBe(true);
85
+ service.stop();
86
+ });
87
+ });
88
+ describe('sync-on-start', () => {
89
+ // These tests use real timers since triggerSync is fire-and-forget
90
+ // and fake timers interfere with promise resolution
91
+ beforeEach(() => {
92
+ vi.useRealTimers();
93
+ });
94
+ afterEach(() => {
95
+ vi.useFakeTimers();
96
+ });
97
+ it('should trigger sync immediately if due on start', async () => {
98
+ const engine = createMockSyncEngine();
99
+ const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: true }), {
100
+ syncOnStart: true,
101
+ });
102
+ service.start();
103
+ await flushPromises();
104
+ expect(engine.sync).toHaveBeenCalledOnce();
105
+ service.stop();
106
+ });
107
+ it('should not trigger sync on start if not due', async () => {
108
+ const engine = createMockSyncEngine();
109
+ const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: false }), { syncOnStart: true });
110
+ service.start();
111
+ await flushPromises();
112
+ expect(engine.sync).not.toHaveBeenCalled();
113
+ service.stop();
114
+ });
115
+ it('should recognize never-synced as sync-due via shouldSyncNow', () => {
116
+ // When lastSyncAt is null, shouldSyncNow returns true immediately
117
+ // (without checking isSyncDue). Verified via manualSync integration test.
118
+ const engine = createMockSyncEngine();
119
+ const service = new BackgroundSyncService(engine, createMockConfigRepo({ lastSyncAt: null }), { syncOnStart: false } // Don't auto-fire; test manualSync instead
120
+ );
121
+ // manualSync directly calls sync, confirming the engine integration
122
+ const syncPromise = service.manualSync();
123
+ expect(engine.sync).toHaveBeenCalledOnce();
124
+ return syncPromise;
125
+ });
126
+ });
127
+ describe('periodic checks', () => {
128
+ it('should check and sync on interval', async () => {
129
+ const engine = createMockSyncEngine();
130
+ const configRepo = createMockConfigRepo({ isSyncDue: false });
131
+ const service = new BackgroundSyncService(engine, configRepo, {
132
+ syncOnStart: false,
133
+ checkIntervalMs: 1000,
134
+ });
135
+ service.start();
136
+ // First interval — not due
137
+ await vi.advanceTimersByTimeAsync(1000);
138
+ expect(engine.sync).not.toHaveBeenCalled();
139
+ configRepo.isSyncDue.mockReturnValue(true);
140
+ await vi.advanceTimersByTimeAsync(1000);
141
+ expect(engine.sync).toHaveBeenCalledOnce();
142
+ service.stop();
143
+ });
144
+ it('should not sync after stop', async () => {
145
+ const engine = createMockSyncEngine();
146
+ const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: true }), {
147
+ syncOnStart: false,
148
+ checkIntervalMs: 1000,
149
+ });
150
+ service.start();
151
+ service.stop();
152
+ await vi.advanceTimersByTimeAsync(5000);
153
+ expect(engine.sync).not.toHaveBeenCalled();
154
+ });
155
+ });
156
+ describe('callbacks', () => {
157
+ beforeEach(() => {
158
+ vi.useRealTimers();
159
+ });
160
+ afterEach(() => {
161
+ vi.useFakeTimers();
162
+ });
163
+ it('should call onSyncComplete on success', async () => {
164
+ const onComplete = vi.fn();
165
+ const result = createMockSyncResult();
166
+ const service = new BackgroundSyncService(createMockSyncEngine(result), createMockConfigRepo({ isSyncDue: true }), { syncOnStart: true, onSyncComplete: onComplete });
167
+ service.start();
168
+ await flushPromises();
169
+ expect(onComplete).toHaveBeenCalledWith(result);
170
+ service.stop();
171
+ });
172
+ it('should call onSyncError on failure', async () => {
173
+ const onError = vi.fn();
174
+ const engine = {
175
+ sync: vi.fn().mockRejectedValue(new Error('Network timeout')),
176
+ };
177
+ const service = new BackgroundSyncService(engine, createMockConfigRepo({ isSyncDue: true }), {
178
+ syncOnStart: true,
179
+ onSyncError: onError,
180
+ });
181
+ service.start();
182
+ await flushPromises();
183
+ expect(onError).toHaveBeenCalledWith(expect.objectContaining({ message: 'Network timeout' }));
184
+ service.stop();
185
+ });
186
+ });
187
+ describe('manualSync', () => {
188
+ it('should execute sync and return result', async () => {
189
+ const result = createMockSyncResult();
190
+ const service = new BackgroundSyncService(createMockSyncEngine(result), createMockConfigRepo(), { syncOnStart: false });
191
+ const syncResult = await service.manualSync();
192
+ expect(syncResult).toEqual(result);
193
+ });
194
+ it('should throw if sync already in progress', async () => {
195
+ let resolveSync;
196
+ const engine = {
197
+ sync: vi.fn().mockReturnValue(new Promise((resolve) => {
198
+ resolveSync = () => resolve(createMockSyncResult());
199
+ })),
200
+ };
201
+ const service = new BackgroundSyncService(engine, createMockConfigRepo(), {
202
+ syncOnStart: false,
203
+ });
204
+ const firstSync = service.manualSync();
205
+ await expect(service.manualSync()).rejects.toThrow('Sync already in progress');
206
+ resolveSync();
207
+ await firstSync;
208
+ });
209
+ it('should propagate sync errors', async () => {
210
+ const engine = {
211
+ sync: vi.fn().mockRejectedValue(new Error('DB locked')),
212
+ };
213
+ const service = new BackgroundSyncService(engine, createMockConfigRepo(), {
214
+ syncOnStart: false,
215
+ });
216
+ await expect(service.manualSync()).rejects.toThrow('DB locked');
217
+ });
218
+ });
219
+ describe('state tracking', () => {
220
+ it('should track checksPerformed and syncsTriggered', async () => {
221
+ const service = new BackgroundSyncService(createMockSyncEngine(), createMockConfigRepo({ isSyncDue: true }), { syncOnStart: false, checkIntervalMs: 100 });
222
+ service.start();
223
+ await vi.advanceTimersByTimeAsync(100);
224
+ const state = service.getState();
225
+ expect(state.checksPerformed).toBe(1);
226
+ expect(state.syncsTriggered).toBe(1);
227
+ service.stop();
228
+ });
229
+ it('should track lastResult after successful sync', async () => {
230
+ const result = createMockSyncResult({ skillsAdded: 5 });
231
+ const service = new BackgroundSyncService(createMockSyncEngine(result), createMockConfigRepo(), { syncOnStart: false });
232
+ await service.manualSync();
233
+ const state = service.getState();
234
+ expect(state.lastResult).toEqual(result);
235
+ expect(state.lastError).toBeNull();
236
+ });
237
+ it('should track lastError after failed sync', async () => {
238
+ const engine = {
239
+ sync: vi.fn().mockRejectedValue(new Error('fail')),
240
+ };
241
+ const service = new BackgroundSyncService(engine, createMockConfigRepo(), {
242
+ syncOnStart: false,
243
+ });
244
+ await service.manualSync().catch(() => { });
245
+ const state = service.getState();
246
+ expect(state.lastError?.message).toBe('fail');
247
+ });
248
+ });
249
+ describe('createBackgroundSyncService factory', () => {
250
+ it('should create and start service', () => {
251
+ const service = createBackgroundSyncService(createMockSyncEngine(), createMockConfigRepo(), {
252
+ syncOnStart: false,
253
+ });
254
+ expect(service.isServiceStarted()).toBe(true);
255
+ service.stop();
256
+ });
257
+ });
258
+ });
259
+ //# sourceMappingURL=BackgroundSyncService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackgroundSyncService.test.js","sourceRoot":"","sources":["../../../tests/sync/BackgroundSyncService.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Test helper re-exports for cross-package test use
3
+ * @module @skillsmith/core/testkit
4
+ * @see SMI-3218
5
+ *
6
+ * Re-exports database test helpers so sibling packages (CLI, mcp-server)
7
+ * can import via `@skillsmith/core/testkit` instead of relative paths.
8
+ *
9
+ * Boundary: This subpath is for database test setup (createTestDatabase,
10
+ * closeDatabase). For MultiLLMProvider test utilities, use
11
+ * `@skillsmith/core/testing`.
12
+ */
13
+ export { createTestDatabase, closeDatabase } from './helpers/database.js';
14
+ //# sourceMappingURL=testkit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testkit.d.ts","sourceRoot":"","sources":["../../tests/testkit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Test helper re-exports for cross-package test use
3
+ * @module @skillsmith/core/testkit
4
+ * @see SMI-3218
5
+ *
6
+ * Re-exports database test helpers so sibling packages (CLI, mcp-server)
7
+ * can import via `@skillsmith/core/testkit` instead of relative paths.
8
+ *
9
+ * Boundary: This subpath is for database test setup (createTestDatabase,
10
+ * closeDatabase). For MultiLLMProvider test utilities, use
11
+ * `@skillsmith/core/testing`.
12
+ */
13
+ export { createTestDatabase, closeDatabase } from './helpers/database.js';
14
+ //# sourceMappingURL=testkit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testkit.js","sourceRoot":"","sources":["../../tests/testkit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Tests for migration v10 — skill_dependencies table
3
+ * @see SMI-3134: Database Schema — skill_dependencies Table
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=v10-dependencies.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v10-dependencies.test.d.ts","sourceRoot":"","sources":["../../../../tests/unit/migrations/v10-dependencies.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * @fileoverview Tests for migration v10 — skill_dependencies table
3
+ * @see SMI-3134: Database Schema — skill_dependencies Table
4
+ */
5
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
6
+ import { createTestDatabase, closeDatabase } from '../../helpers/database.js';
7
+ import { getSchemaVersion, SCHEMA_VERSION } from '../../../src/db/schema.js';
8
+ import { MIGRATION_V10_SQL } from '../../../src/db/migrations/v10-dependencies.js';
9
+ describe('Migration v10: skill_dependencies table', () => {
10
+ let db;
11
+ beforeEach(() => {
12
+ db = createTestDatabase();
13
+ });
14
+ afterEach(() => {
15
+ closeDatabase(db);
16
+ });
17
+ it('creates the skill_dependencies table', () => {
18
+ const table = db
19
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='skill_dependencies'")
20
+ .get();
21
+ expect(table).toBeDefined();
22
+ expect(table.name).toBe('skill_dependencies');
23
+ });
24
+ it('has all expected columns with correct types', () => {
25
+ const columns = db.prepare('PRAGMA table_info(skill_dependencies)').all();
26
+ const columnMap = new Map(columns.map((c) => [c.name, c]));
27
+ // Verify all expected columns exist
28
+ const expectedColumns = [
29
+ 'id',
30
+ 'skill_id',
31
+ 'dep_type',
32
+ 'dep_target',
33
+ 'dep_version',
34
+ 'dep_source',
35
+ 'confidence',
36
+ 'metadata',
37
+ 'created_at',
38
+ 'updated_at',
39
+ ];
40
+ for (const col of expectedColumns) {
41
+ expect(columnMap.has(col), `column '${col}' should exist`).toBe(true);
42
+ }
43
+ // Check NOT NULL constraints
44
+ expect(columnMap.get('skill_id').notnull).toBe(1);
45
+ expect(columnMap.get('dep_type').notnull).toBe(1);
46
+ expect(columnMap.get('dep_target').notnull).toBe(1);
47
+ expect(columnMap.get('dep_source').notnull).toBe(1);
48
+ expect(columnMap.get('created_at').notnull).toBe(1);
49
+ expect(columnMap.get('updated_at').notnull).toBe(1);
50
+ // Optional columns
51
+ expect(columnMap.get('dep_version').notnull).toBe(0);
52
+ expect(columnMap.get('confidence').notnull).toBe(0);
53
+ expect(columnMap.get('metadata').notnull).toBe(0);
54
+ // Primary key
55
+ expect(columnMap.get('id').pk).toBe(1);
56
+ });
57
+ it('migration is idempotent — running twice does not error', () => {
58
+ // createTestDatabase already ran the migration once.
59
+ // Running the SQL again should not throw (IF NOT EXISTS).
60
+ expect(() => db.exec(MIGRATION_V10_SQL)).not.toThrow();
61
+ });
62
+ it('schema version is at least 10 after migration', () => {
63
+ expect(getSchemaVersion(db)).toBeGreaterThanOrEqual(10);
64
+ expect(SCHEMA_VERSION).toBeGreaterThanOrEqual(10);
65
+ });
66
+ it('unique index prevents duplicate (skill_id, dep_type, dep_target, dep_source)', () => {
67
+ const insert = db.prepare(`
68
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
69
+ VALUES (?, ?, ?, ?)
70
+ `);
71
+ // First insert succeeds
72
+ insert.run('author/skill-a', 'mcp_server', '@modelcontextprotocol/server-github', 'declared');
73
+ // Same combination fails with constraint error
74
+ expect(() => insert.run('author/skill-a', 'mcp_server', '@modelcontextprotocol/server-github', 'declared')).toThrow(/UNIQUE constraint failed/);
75
+ });
76
+ it('allows same skill_id + dep_target with different dep_source', () => {
77
+ const insert = db.prepare(`
78
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
79
+ VALUES (?, ?, ?, ?)
80
+ `);
81
+ // Same target, different source — both should succeed
82
+ insert.run('author/skill-a', 'mcp_server', 'server-github', 'declared');
83
+ insert.run('author/skill-a', 'mcp_server', 'server-github', 'inferred_static');
84
+ const count = db.prepare('SELECT COUNT(*) as cnt FROM skill_dependencies').get();
85
+ expect(count.cnt).toBe(2);
86
+ });
87
+ describe('CHECK constraints', () => {
88
+ it('rejects invalid dep_type', () => {
89
+ const insert = db.prepare(`
90
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
91
+ VALUES (?, ?, ?, ?)
92
+ `);
93
+ expect(() => insert.run('author/skill-a', 'invalid_type', 'target', 'declared')).toThrow(/CHECK constraint failed/);
94
+ });
95
+ it('rejects invalid dep_source', () => {
96
+ const insert = db.prepare(`
97
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
98
+ VALUES (?, ?, ?, ?)
99
+ `);
100
+ expect(() => insert.run('author/skill-a', 'mcp_server', 'target', 'invalid_source')).toThrow(/CHECK constraint failed/);
101
+ });
102
+ it('accepts all valid dep_type values', () => {
103
+ const validTypes = [
104
+ 'skill_hard',
105
+ 'skill_soft',
106
+ 'skill_peer',
107
+ 'mcp_server',
108
+ 'model_minimum',
109
+ 'model_capability',
110
+ 'env_tool',
111
+ 'env_os',
112
+ 'env_node',
113
+ 'cli_version',
114
+ 'conflict',
115
+ ];
116
+ const insert = db.prepare(`
117
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
118
+ VALUES (?, ?, ?, ?)
119
+ `);
120
+ for (const depType of validTypes) {
121
+ expect(() => insert.run(`author/skill-${depType}`, depType, `target-${depType}`, 'declared')).not.toThrow();
122
+ }
123
+ });
124
+ it('accepts all valid dep_source values', () => {
125
+ const validSources = ['declared', 'inferred_static', 'inferred_coinstall'];
126
+ const insert = db.prepare(`
127
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source)
128
+ VALUES (?, ?, ?, ?)
129
+ `);
130
+ for (const source of validSources) {
131
+ expect(() => insert.run(`author/skill-${source}`, 'mcp_server', `target-${source}`, source)).not.toThrow();
132
+ }
133
+ });
134
+ it('rejects confidence outside 0.0-1.0 range', () => {
135
+ const insert = db.prepare(`
136
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source, confidence)
137
+ VALUES (?, ?, ?, ?, ?)
138
+ `);
139
+ expect(() => insert.run('author/skill-a', 'mcp_server', 'target', 'declared', 1.5)).toThrow(/CHECK constraint failed/);
140
+ expect(() => insert.run('author/skill-b', 'mcp_server', 'target', 'declared', -0.1)).toThrow(/CHECK constraint failed/);
141
+ });
142
+ it('accepts confidence within 0.0-1.0 range and NULL', () => {
143
+ const insert = db.prepare(`
144
+ INSERT INTO skill_dependencies (skill_id, dep_type, dep_target, dep_source, confidence)
145
+ VALUES (?, ?, ?, ?, ?)
146
+ `);
147
+ // Valid values
148
+ expect(() => insert.run('author/skill-c0', 'mcp_server', 'target-0', 'declared', 0.0)).not.toThrow();
149
+ expect(() => insert.run('author/skill-c1', 'mcp_server', 'target-1', 'declared', 1.0)).not.toThrow();
150
+ expect(() => insert.run('author/skill-c5', 'mcp_server', 'target-5', 'declared', 0.5)).not.toThrow();
151
+ expect(() => insert.run('author/skill-cn', 'mcp_server', 'target-n', 'declared', null)).not.toThrow();
152
+ });
153
+ });
154
+ it('creates expected indexes', () => {
155
+ const indexes = db
156
+ .prepare("SELECT name FROM sqlite_master WHERE type='index' AND tbl_name='skill_dependencies'")
157
+ .all();
158
+ const indexNames = indexes.map((i) => i.name);
159
+ expect(indexNames).toContain('idx_skill_deps_skill');
160
+ expect(indexNames).toContain('idx_skill_deps_target');
161
+ expect(indexNames).toContain('idx_skill_deps_type');
162
+ expect(indexNames).toContain('idx_skill_deps_source');
163
+ expect(indexNames).toContain('idx_skill_deps_unique');
164
+ });
165
+ });
166
+ //# sourceMappingURL=v10-dependencies.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v10-dependencies.test.js","sourceRoot":"","sources":["../../../../tests/unit/migrations/v10-dependencies.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SMI-3483: SkillInstallationService Unit Tests
3
+ *
4
+ * Tests for the extracted install/uninstall service in @skillsmith/core.
5
+ * Uses in-memory databases and mocked GitHub fetches.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=skill-installation.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-installation.service.test.d.ts","sourceRoot":"","sources":["../../../../tests/unit/services/skill-installation.service.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}