@skillsmith/core 2.1.0 → 2.1.2
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/types.d.ts +2 -0
- package/dist/src/analysis/types.d.ts.map +1 -1
- package/dist/src/analysis/types.js +13 -1
- package/dist/src/analysis/types.js.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.d.ts +4 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.js +26 -44
- package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
- package/dist/src/analytics/schema.d.ts +1 -1
- package/dist/src/analytics/schema.d.ts.map +1 -1
- package/dist/src/analytics/schema.js +68 -0
- package/dist/src/analytics/schema.js.map +1 -1
- package/dist/src/api/client.d.ts +33 -29
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +15 -10
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/billing/BillingService.d.ts +139 -0
- package/dist/src/billing/BillingService.d.ts.map +1 -0
- package/dist/src/billing/BillingService.js +393 -0
- package/dist/src/billing/BillingService.js.map +1 -0
- package/dist/src/billing/GDPRComplianceService.d.ts +176 -0
- package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -0
- package/dist/src/billing/GDPRComplianceService.js +361 -0
- package/dist/src/billing/GDPRComplianceService.js.map +1 -0
- package/dist/src/billing/StripeClient.d.ts +177 -0
- package/dist/src/billing/StripeClient.d.ts.map +1 -0
- package/dist/src/billing/StripeClient.js +462 -0
- package/dist/src/billing/StripeClient.js.map +1 -0
- package/dist/src/billing/StripeReconciliationJob.d.ts +95 -0
- package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -0
- package/dist/src/billing/StripeReconciliationJob.js +405 -0
- package/dist/src/billing/StripeReconciliationJob.js.map +1 -0
- package/dist/src/billing/StripeWebhookHandler.d.ts +92 -0
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -0
- package/dist/src/billing/StripeWebhookHandler.js +409 -0
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -0
- package/dist/src/billing/index.d.ts +18 -0
- package/dist/src/billing/index.d.ts.map +1 -0
- package/dist/src/billing/index.js +19 -0
- package/dist/src/billing/index.js.map +1 -0
- package/dist/src/billing/types.d.ts +266 -0
- package/dist/src/billing/types.d.ts.map +1 -0
- package/dist/src/billing/types.js +23 -0
- package/dist/src/billing/types.js.map +1 -0
- package/dist/src/embeddings/hnsw-store.d.ts +568 -0
- package/dist/src/embeddings/hnsw-store.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.js +805 -0
- package/dist/src/embeddings/hnsw-store.js.map +1 -0
- package/dist/src/embeddings/index.d.ts +2 -0
- package/dist/src/embeddings/index.d.ts.map +1 -1
- package/dist/src/embeddings/index.js +2 -0
- package/dist/src/embeddings/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts +457 -0
- package/dist/src/learning/PatternStore.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.js +893 -0
- package/dist/src/learning/PatternStore.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts +403 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.js +627 -0
- package/dist/src/learning/ReasoningBankIntegration.js.map +1 -0
- package/dist/src/learning/index.d.ts +15 -0
- package/dist/src/learning/index.d.ts.map +1 -0
- package/dist/src/learning/index.js +15 -0
- package/dist/src/learning/index.js.map +1 -0
- package/dist/src/routing/SONARouter.d.ts +154 -0
- package/dist/src/routing/SONARouter.d.ts.map +1 -0
- package/dist/src/routing/SONARouter.js +679 -0
- package/dist/src/routing/SONARouter.js.map +1 -0
- package/dist/src/routing/index.d.ts +9 -0
- package/dist/src/routing/index.d.ts.map +1 -0
- package/dist/src/routing/index.js +10 -0
- package/dist/src/routing/index.js.map +1 -0
- package/dist/src/routing/types.d.ts +331 -0
- package/dist/src/routing/types.d.ts.map +1 -0
- package/dist/src/routing/types.js +203 -0
- package/dist/src/routing/types.js.map +1 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +5 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
- package/dist/src/security/SkillSandbox.d.ts +156 -0
- package/dist/src/security/SkillSandbox.d.ts.map +1 -0
- package/dist/src/security/SkillSandbox.js +303 -0
- package/dist/src/security/SkillSandbox.js.map +1 -0
- package/dist/src/security/index.d.ts +3 -1
- package/dist/src/security/index.d.ts.map +1 -1
- package/dist/src/security/index.js +5 -1
- package/dist/src/security/index.js.map +1 -1
- package/dist/src/security/rate-limiter/presets.d.ts +12 -0
- package/dist/src/security/rate-limiter/presets.d.ts.map +1 -1
- package/dist/src/security/rate-limiter/presets.js +12 -0
- package/dist/src/security/rate-limiter/presets.js.map +1 -1
- package/dist/src/security/sanitization.d.ts +85 -0
- package/dist/src/security/sanitization.d.ts.map +1 -1
- package/dist/src/security/sanitization.js +133 -0
- package/dist/src/security/sanitization.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +23 -0
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.js +232 -28
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/security/scanner/patterns.d.ts +13 -0
- package/dist/src/security/scanner/patterns.d.ts.map +1 -1
- package/dist/src/security/scanner/patterns.js +51 -0
- package/dist/src/security/scanner/patterns.js.map +1 -1
- package/dist/src/security/scanner/types.d.ts +13 -1
- package/dist/src/security/scanner/types.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.js +1 -0
- package/dist/src/security/scanner/weights.js.map +1 -1
- package/dist/src/session/SessionManager.d.ts +7 -0
- package/dist/src/session/SessionManager.d.ts.map +1 -1
- package/dist/src/session/SessionManager.js +117 -10
- package/dist/src/session/SessionManager.js.map +1 -1
- package/dist/src/sync/SyncEngine.d.ts.map +1 -1
- package/dist/src/sync/SyncEngine.js +52 -32
- package/dist/src/sync/SyncEngine.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.d.ts +374 -0
- package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.js +720 -0
- package/dist/src/testing/MultiLLMProvider.js.map +1 -0
- package/dist/src/testing/index.d.ts +8 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +9 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/types.d.ts +3 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tests/SecurityScanner.test.js +337 -1
- package/dist/tests/SecurityScanner.test.js.map +1 -1
- package/dist/tests/billing/BillingService.test.d.ts +7 -0
- package/dist/tests/billing/BillingService.test.d.ts.map +1 -0
- package/dist/tests/billing/BillingService.test.js +168 -0
- package/dist/tests/billing/BillingService.test.js.map +1 -0
- package/dist/tests/billing/GDPRCompliance.test.d.ts +7 -0
- package/dist/tests/billing/GDPRCompliance.test.d.ts.map +1 -0
- package/dist/tests/billing/GDPRCompliance.test.js +195 -0
- package/dist/tests/billing/GDPRCompliance.test.js.map +1 -0
- package/dist/tests/billing/StripeReconciliation.test.d.ts +7 -0
- package/dist/tests/billing/StripeReconciliation.test.d.ts.map +1 -0
- package/dist/tests/billing/StripeReconciliation.test.js +266 -0
- package/dist/tests/billing/StripeReconciliation.test.js.map +1 -0
- package/dist/tests/billing/stripe-validators.test.d.ts +7 -0
- package/dist/tests/billing/stripe-validators.test.d.ts.map +1 -0
- package/dist/tests/billing/stripe-validators.test.js +107 -0
- package/dist/tests/billing/stripe-validators.test.js.map +1 -0
- package/dist/tests/embeddings/hnsw-store.test.d.ts +7 -0
- package/dist/tests/embeddings/hnsw-store.test.d.ts.map +1 -0
- package/dist/tests/embeddings/hnsw-store.test.js +295 -0
- package/dist/tests/embeddings/hnsw-store.test.js.map +1 -0
- package/dist/tests/integration/neural/e2e-learning.test.d.ts +17 -0
- package/dist/tests/integration/neural/e2e-learning.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/e2e-learning.test.js +238 -0
- package/dist/tests/integration/neural/e2e-learning.test.js.map +1 -0
- package/dist/tests/integration/neural/helpers.d.ts +132 -0
- package/dist/tests/integration/neural/helpers.d.ts.map +1 -0
- package/dist/tests/integration/neural/helpers.js +287 -0
- package/dist/tests/integration/neural/helpers.js.map +1 -0
- package/dist/tests/integration/neural/personalization.test.d.ts +21 -0
- package/dist/tests/integration/neural/personalization.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/personalization.test.js +304 -0
- package/dist/tests/integration/neural/personalization.test.js.map +1 -0
- package/dist/tests/integration/neural/preference-learner.test.d.ts +23 -0
- package/dist/tests/integration/neural/preference-learner.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/preference-learner.test.js +289 -0
- package/dist/tests/integration/neural/preference-learner.test.js.map +1 -0
- package/dist/tests/integration/neural/privacy.test.d.ts +19 -0
- package/dist/tests/integration/neural/privacy.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/privacy.test.js +249 -0
- package/dist/tests/integration/neural/privacy.test.js.map +1 -0
- package/dist/tests/integration/neural/setup.d.ts +175 -0
- package/dist/tests/integration/neural/setup.d.ts.map +1 -0
- package/dist/tests/integration/neural/setup.js +487 -0
- package/dist/tests/integration/neural/setup.js.map +1 -0
- package/dist/tests/integration/neural/signal-collection.test.d.ts +21 -0
- package/dist/tests/integration/neural/signal-collection.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/signal-collection.test.js +232 -0
- package/dist/tests/integration/neural/signal-collection.test.js.map +1 -0
- package/dist/tests/learning/PatternStore.test.d.ts +8 -0
- package/dist/tests/learning/PatternStore.test.d.ts.map +1 -0
- package/dist/tests/learning/PatternStore.test.js +589 -0
- package/dist/tests/learning/PatternStore.test.js.map +1 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.d.ts +8 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.d.ts.map +1 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.js +269 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.js.map +1 -0
- package/dist/tests/routing/SONARouter.test.d.ts +8 -0
- package/dist/tests/routing/SONARouter.test.d.ts.map +1 -0
- package/dist/tests/routing/SONARouter.test.js +400 -0
- package/dist/tests/routing/SONARouter.test.js.map +1 -0
- package/dist/tests/security/ContinuousSecurity.test.js +10 -12
- package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
- package/dist/tests/security/SkillSandbox.test.d.ts +8 -0
- package/dist/tests/security/SkillSandbox.test.d.ts.map +1 -0
- package/dist/tests/security/SkillSandbox.test.js +321 -0
- package/dist/tests/security/SkillSandbox.test.js.map +1 -0
- package/dist/tests/sync/SyncEngine.test.js +4 -2
- package/dist/tests/sync/SyncEngine.test.js.map +1 -1
- package/dist/tests/testing/MultiLLMProvider.test.d.ts +14 -0
- package/dist/tests/testing/MultiLLMProvider.test.d.ts.map +1 -0
- package/dist/tests/testing/MultiLLMProvider.test.js +438 -0
- package/dist/tests/testing/MultiLLMProvider.test.js.map +1 -0
- package/package.json +16 -3
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1520: ReasoningBank Integration Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for the ReasoningBankIntegration class that bridges
|
|
5
|
+
* Skillsmith's learning loop with V3's intelligence module.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
8
|
+
import { ReasoningBankIntegration, createReasoningBankIntegration, TRAJECTORY_REWARDS, CONFIDENCE_THRESHOLDS, hasConfidentVerdict, indicatesPreference, indicatesRejection, } from '../../src/learning/ReasoningBankIntegration.js';
|
|
9
|
+
import { DismissReason } from '../../src/learning/types.js';
|
|
10
|
+
describe('ReasoningBankIntegration', () => {
|
|
11
|
+
let integration;
|
|
12
|
+
const mockContext = {
|
|
13
|
+
installed_skills: ['anthropic/review-pr'],
|
|
14
|
+
original_score: 0.85,
|
|
15
|
+
project_context: 'TypeScript project with Jest',
|
|
16
|
+
};
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
integration = await createReasoningBankIntegration({
|
|
19
|
+
enableDualWrite: false,
|
|
20
|
+
minPatternsForVerdict: 2,
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe('initialization', () => {
|
|
24
|
+
it('should create instance with default config', async () => {
|
|
25
|
+
const instance = new ReasoningBankIntegration();
|
|
26
|
+
expect(instance.isInitialized()).toBe(false);
|
|
27
|
+
await instance.initialize();
|
|
28
|
+
expect(instance.isInitialized()).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
it('should create initialized instance via factory', async () => {
|
|
31
|
+
const instance = await createReasoningBankIntegration();
|
|
32
|
+
expect(instance.isInitialized()).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
it('should throw if methods called before initialization', async () => {
|
|
35
|
+
const uninitialized = new ReasoningBankIntegration();
|
|
36
|
+
await expect(uninitialized.recordAccept('test-skill', mockContext)).rejects.toThrow('not initialized');
|
|
37
|
+
});
|
|
38
|
+
it('should allow re-initialization safely', async () => {
|
|
39
|
+
const instance = new ReasoningBankIntegration();
|
|
40
|
+
await instance.initialize();
|
|
41
|
+
await instance.initialize(); // Should not throw
|
|
42
|
+
expect(instance.isInitialized()).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('recordAccept', () => {
|
|
46
|
+
it('should record accept signal as positive trajectory', async () => {
|
|
47
|
+
await integration.recordAccept('anthropic/commit', mockContext);
|
|
48
|
+
const verdict = await integration.getVerdict('anthropic/commit');
|
|
49
|
+
// With just 1 pattern, may not have enough data yet
|
|
50
|
+
expect(verdict.skillId).toBe('anthropic/commit');
|
|
51
|
+
});
|
|
52
|
+
it('should record accept with metadata', async () => {
|
|
53
|
+
await integration.recordAccept('anthropic/commit', mockContext, {
|
|
54
|
+
suggestion_count: 1,
|
|
55
|
+
time_to_action: 5000,
|
|
56
|
+
});
|
|
57
|
+
const count = await integration.getSignalCount();
|
|
58
|
+
expect(count).toBeGreaterThanOrEqual(1);
|
|
59
|
+
});
|
|
60
|
+
it('should build positive confidence with multiple accepts', async () => {
|
|
61
|
+
await integration.recordAccept('popular/skill', mockContext);
|
|
62
|
+
await integration.recordAccept('popular/skill', mockContext);
|
|
63
|
+
await integration.recordAccept('popular/skill', mockContext);
|
|
64
|
+
const verdict = await integration.getVerdict('popular/skill');
|
|
65
|
+
expect(verdict.hasEnoughData).toBe(true);
|
|
66
|
+
expect(verdict.confidence).toBeGreaterThan(0);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe('recordDismiss', () => {
|
|
70
|
+
it('should record dismiss signal as negative trajectory', async () => {
|
|
71
|
+
await integration.recordDismiss('unwanted/skill', mockContext);
|
|
72
|
+
const verdict = await integration.getVerdict('unwanted/skill');
|
|
73
|
+
expect(verdict.skillId).toBe('unwanted/skill');
|
|
74
|
+
});
|
|
75
|
+
it('should record dismiss with reason', async () => {
|
|
76
|
+
await integration.recordDismiss('unwanted/skill', mockContext, DismissReason.NOT_RELEVANT);
|
|
77
|
+
const count = await integration.getSignalCount();
|
|
78
|
+
expect(count).toBeGreaterThanOrEqual(1);
|
|
79
|
+
});
|
|
80
|
+
it('should build negative confidence with multiple dismisses', async () => {
|
|
81
|
+
await integration.recordDismiss('rejected/skill', mockContext);
|
|
82
|
+
await integration.recordDismiss('rejected/skill', mockContext);
|
|
83
|
+
await integration.recordDismiss('rejected/skill', mockContext);
|
|
84
|
+
const verdict = await integration.getVerdict('rejected/skill');
|
|
85
|
+
expect(verdict.hasEnoughData).toBe(true);
|
|
86
|
+
expect(verdict.confidence).toBeLessThan(0);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('recordUsage', () => {
|
|
90
|
+
it('should record daily usage as reinforcement', async () => {
|
|
91
|
+
await integration.recordUsage('installed/skill', 'daily');
|
|
92
|
+
const count = await integration.getSignalCount();
|
|
93
|
+
expect(count).toBeGreaterThanOrEqual(1);
|
|
94
|
+
});
|
|
95
|
+
it('should record weekly usage as mild reinforcement', async () => {
|
|
96
|
+
await integration.recordUsage('installed/skill', 'weekly');
|
|
97
|
+
const count = await integration.getSignalCount();
|
|
98
|
+
expect(count).toBeGreaterThanOrEqual(1);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('recordAbandonment', () => {
|
|
102
|
+
it('should record abandonment as negative signal', async () => {
|
|
103
|
+
await integration.recordAbandonment('abandoned/skill', 45);
|
|
104
|
+
const verdict = await integration.getVerdict('abandoned/skill');
|
|
105
|
+
expect(verdict.skillId).toBe('abandoned/skill');
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe('recordUninstall', () => {
|
|
109
|
+
it('should record uninstall as strong negative signal', async () => {
|
|
110
|
+
await integration.recordUninstall('removed/skill', 30);
|
|
111
|
+
const verdict = await integration.getVerdict('removed/skill');
|
|
112
|
+
expect(verdict.skillId).toBe('removed/skill');
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('getVerdict', () => {
|
|
116
|
+
it('should return empty verdict for unknown skill', async () => {
|
|
117
|
+
const verdict = await integration.getVerdict('unknown/skill');
|
|
118
|
+
expect(verdict.skillId).toBe('unknown/skill');
|
|
119
|
+
expect(verdict.confidence).toBe(0);
|
|
120
|
+
expect(verdict.patternCount).toBe(0);
|
|
121
|
+
expect(verdict.hasEnoughData).toBe(false);
|
|
122
|
+
});
|
|
123
|
+
it('should calculate mixed confidence correctly', async () => {
|
|
124
|
+
// Record mixed signals
|
|
125
|
+
await integration.recordAccept('mixed/skill', mockContext);
|
|
126
|
+
await integration.recordAccept('mixed/skill', mockContext);
|
|
127
|
+
await integration.recordDismiss('mixed/skill', mockContext);
|
|
128
|
+
const verdict = await integration.getVerdict('mixed/skill');
|
|
129
|
+
expect(verdict.hasEnoughData).toBe(true);
|
|
130
|
+
// 2 accepts vs 1 dismiss should yield slightly positive confidence
|
|
131
|
+
expect(verdict.confidence).toBeGreaterThan(-1);
|
|
132
|
+
expect(verdict.confidence).toBeLessThan(1);
|
|
133
|
+
});
|
|
134
|
+
it('should include signal breakdown', async () => {
|
|
135
|
+
await integration.recordAccept('analyzed/skill', mockContext);
|
|
136
|
+
await integration.recordAccept('analyzed/skill', mockContext);
|
|
137
|
+
await integration.recordDismiss('analyzed/skill', mockContext);
|
|
138
|
+
await integration.recordUsage('analyzed/skill', 'daily');
|
|
139
|
+
const verdict = await integration.getVerdict('analyzed/skill');
|
|
140
|
+
expect(verdict.signalBreakdown).toBeDefined();
|
|
141
|
+
if (verdict.signalBreakdown) {
|
|
142
|
+
expect(verdict.signalBreakdown.accepts).toBe(2);
|
|
143
|
+
expect(verdict.signalBreakdown.dismisses).toBe(1);
|
|
144
|
+
expect(verdict.signalBreakdown.usages).toBe(1);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
describe('getBatchVerdicts', () => {
|
|
149
|
+
it('should return verdicts for multiple skills', async () => {
|
|
150
|
+
await integration.recordAccept('skill-a', mockContext);
|
|
151
|
+
await integration.recordAccept('skill-a', mockContext);
|
|
152
|
+
await integration.recordDismiss('skill-b', mockContext);
|
|
153
|
+
await integration.recordDismiss('skill-b', mockContext);
|
|
154
|
+
const result = await integration.getBatchVerdicts(['skill-a', 'skill-b', 'skill-c']);
|
|
155
|
+
expect(result.verdicts.length).toBe(3);
|
|
156
|
+
expect(result.latencyMs).toBeGreaterThanOrEqual(0);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
describe('getTopSkillsByConfidence', () => {
|
|
160
|
+
it('should return empty array when no patterns exist', async () => {
|
|
161
|
+
const top = await integration.getTopSkillsByConfidence(5);
|
|
162
|
+
expect(top).toEqual([]);
|
|
163
|
+
});
|
|
164
|
+
it('should return skills sorted by confidence', async () => {
|
|
165
|
+
// Create patterns with different confidence levels
|
|
166
|
+
await integration.recordAccept('high/skill', mockContext);
|
|
167
|
+
await integration.recordAccept('high/skill', mockContext);
|
|
168
|
+
await integration.recordAccept('high/skill', mockContext);
|
|
169
|
+
await integration.recordAccept('medium/skill', mockContext);
|
|
170
|
+
await integration.recordDismiss('medium/skill', mockContext);
|
|
171
|
+
const top = await integration.getTopSkillsByConfidence(10);
|
|
172
|
+
// high/skill should appear before medium/skill
|
|
173
|
+
if (top.length >= 2) {
|
|
174
|
+
expect(top[0].confidence).toBeGreaterThanOrEqual(top[1].confidence);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('getSignals', () => {
|
|
179
|
+
it('should return empty array without legacy collector', async () => {
|
|
180
|
+
const signals = await integration.getSignals({});
|
|
181
|
+
expect(signals).toEqual([]);
|
|
182
|
+
});
|
|
183
|
+
it('should return empty for skill without legacy collector', async () => {
|
|
184
|
+
const signals = await integration.getSignalsForSkill('any-skill');
|
|
185
|
+
expect(signals).toEqual([]);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe('TRAJECTORY_REWARDS', () => {
|
|
190
|
+
it('should have correct reward values', () => {
|
|
191
|
+
expect(TRAJECTORY_REWARDS.ACCEPT).toBe(1.0);
|
|
192
|
+
expect(TRAJECTORY_REWARDS.DISMISS).toBe(-0.5);
|
|
193
|
+
expect(TRAJECTORY_REWARDS.USAGE).toBe(0.3);
|
|
194
|
+
expect(TRAJECTORY_REWARDS.ABANDONMENT).toBe(-0.3);
|
|
195
|
+
expect(TRAJECTORY_REWARDS.UNINSTALL).toBe(-0.7);
|
|
196
|
+
});
|
|
197
|
+
it('should have positive reward for accept', () => {
|
|
198
|
+
expect(TRAJECTORY_REWARDS.ACCEPT).toBeGreaterThan(0);
|
|
199
|
+
});
|
|
200
|
+
it('should have negative rewards for rejections', () => {
|
|
201
|
+
expect(TRAJECTORY_REWARDS.DISMISS).toBeLessThan(0);
|
|
202
|
+
expect(TRAJECTORY_REWARDS.ABANDONMENT).toBeLessThan(0);
|
|
203
|
+
expect(TRAJECTORY_REWARDS.UNINSTALL).toBeLessThan(0);
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
describe('CONFIDENCE_THRESHOLDS', () => {
|
|
207
|
+
it('should have descending threshold values', () => {
|
|
208
|
+
expect(CONFIDENCE_THRESHOLDS.HIGH).toBeGreaterThan(CONFIDENCE_THRESHOLDS.MEDIUM);
|
|
209
|
+
expect(CONFIDENCE_THRESHOLDS.MEDIUM).toBeGreaterThan(CONFIDENCE_THRESHOLDS.LOW);
|
|
210
|
+
expect(CONFIDENCE_THRESHOLDS.LOW).toBeGreaterThan(CONFIDENCE_THRESHOLDS.MINIMUM);
|
|
211
|
+
});
|
|
212
|
+
it('should have MINIMUM less than LOW', () => {
|
|
213
|
+
expect(CONFIDENCE_THRESHOLDS.MINIMUM).toBeLessThan(CONFIDENCE_THRESHOLDS.LOW);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
describe('type guards', () => {
|
|
217
|
+
const highConfidenceVerdict = {
|
|
218
|
+
skillId: 'test',
|
|
219
|
+
confidence: 0.85,
|
|
220
|
+
patternCount: 10,
|
|
221
|
+
hasEnoughData: true,
|
|
222
|
+
};
|
|
223
|
+
const lowConfidenceVerdict = {
|
|
224
|
+
skillId: 'test',
|
|
225
|
+
confidence: 0.05,
|
|
226
|
+
patternCount: 1,
|
|
227
|
+
hasEnoughData: false,
|
|
228
|
+
};
|
|
229
|
+
const negativeVerdict = {
|
|
230
|
+
skillId: 'test',
|
|
231
|
+
confidence: -0.7,
|
|
232
|
+
patternCount: 5,
|
|
233
|
+
hasEnoughData: true,
|
|
234
|
+
};
|
|
235
|
+
describe('hasConfidentVerdict', () => {
|
|
236
|
+
it('should return true for confident verdict', () => {
|
|
237
|
+
expect(hasConfidentVerdict(highConfidenceVerdict)).toBe(true);
|
|
238
|
+
});
|
|
239
|
+
it('should return false for low confidence verdict', () => {
|
|
240
|
+
expect(hasConfidentVerdict(lowConfidenceVerdict)).toBe(false);
|
|
241
|
+
});
|
|
242
|
+
it('should return true for negative confident verdict', () => {
|
|
243
|
+
expect(hasConfidentVerdict(negativeVerdict)).toBe(true);
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
describe('indicatesPreference', () => {
|
|
247
|
+
it('should return true for positive confident verdict', () => {
|
|
248
|
+
expect(indicatesPreference(highConfidenceVerdict)).toBe(true);
|
|
249
|
+
});
|
|
250
|
+
it('should return false for negative verdict', () => {
|
|
251
|
+
expect(indicatesPreference(negativeVerdict)).toBe(false);
|
|
252
|
+
});
|
|
253
|
+
it('should return false for insufficient data', () => {
|
|
254
|
+
expect(indicatesPreference(lowConfidenceVerdict)).toBe(false);
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
describe('indicatesRejection', () => {
|
|
258
|
+
it('should return true for negative confident verdict', () => {
|
|
259
|
+
expect(indicatesRejection(negativeVerdict)).toBe(true);
|
|
260
|
+
});
|
|
261
|
+
it('should return false for positive verdict', () => {
|
|
262
|
+
expect(indicatesRejection(highConfidenceVerdict)).toBe(false);
|
|
263
|
+
});
|
|
264
|
+
it('should return false for insufficient data', () => {
|
|
265
|
+
expect(indicatesRejection(lowConfidenceVerdict)).toBe(false);
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
//# sourceMappingURL=ReasoningBankIntegration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReasoningBankIntegration.test.js","sourceRoot":"","sources":["../../../tests/learning/ReasoningBankIntegration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SONARouter.test.d.ts","sourceRoot":"","sources":["../../../tests/routing/SONARouter.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|