@sparkleideas/neural 3.5.2-patch.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +260 -0
  2. package/__tests__/README.md +235 -0
  3. package/__tests__/algorithms.test.ts +582 -0
  4. package/__tests__/patterns.test.ts +549 -0
  5. package/__tests__/sona.test.ts +445 -0
  6. package/docs/SONA_INTEGRATION.md +460 -0
  7. package/docs/SONA_QUICKSTART.md +168 -0
  8. package/examples/sona-usage.ts +318 -0
  9. package/package.json +23 -0
  10. package/src/algorithms/a2c.d.ts +86 -0
  11. package/src/algorithms/a2c.d.ts.map +1 -0
  12. package/src/algorithms/a2c.js +361 -0
  13. package/src/algorithms/a2c.js.map +1 -0
  14. package/src/algorithms/a2c.ts +478 -0
  15. package/src/algorithms/curiosity.d.ts +82 -0
  16. package/src/algorithms/curiosity.d.ts.map +1 -0
  17. package/src/algorithms/curiosity.js +392 -0
  18. package/src/algorithms/curiosity.js.map +1 -0
  19. package/src/algorithms/curiosity.ts +509 -0
  20. package/src/algorithms/decision-transformer.d.ts +82 -0
  21. package/src/algorithms/decision-transformer.d.ts.map +1 -0
  22. package/src/algorithms/decision-transformer.js +415 -0
  23. package/src/algorithms/decision-transformer.js.map +1 -0
  24. package/src/algorithms/decision-transformer.ts +521 -0
  25. package/src/algorithms/dqn.d.ts +72 -0
  26. package/src/algorithms/dqn.d.ts.map +1 -0
  27. package/src/algorithms/dqn.js +303 -0
  28. package/src/algorithms/dqn.js.map +1 -0
  29. package/src/algorithms/dqn.ts +382 -0
  30. package/src/algorithms/index.d.ts +32 -0
  31. package/src/algorithms/index.d.ts.map +1 -0
  32. package/src/algorithms/index.js +74 -0
  33. package/src/algorithms/index.js.map +1 -0
  34. package/src/algorithms/index.ts +122 -0
  35. package/src/algorithms/ppo.d.ts +72 -0
  36. package/src/algorithms/ppo.d.ts.map +1 -0
  37. package/src/algorithms/ppo.js +331 -0
  38. package/src/algorithms/ppo.js.map +1 -0
  39. package/src/algorithms/ppo.ts +429 -0
  40. package/src/algorithms/q-learning.d.ts +77 -0
  41. package/src/algorithms/q-learning.d.ts.map +1 -0
  42. package/src/algorithms/q-learning.js +259 -0
  43. package/src/algorithms/q-learning.js.map +1 -0
  44. package/src/algorithms/q-learning.ts +333 -0
  45. package/src/algorithms/sarsa.d.ts +82 -0
  46. package/src/algorithms/sarsa.d.ts.map +1 -0
  47. package/src/algorithms/sarsa.js +297 -0
  48. package/src/algorithms/sarsa.js.map +1 -0
  49. package/src/algorithms/sarsa.ts +383 -0
  50. package/src/algorithms/tmp.json +0 -0
  51. package/src/application/index.ts +11 -0
  52. package/src/application/services/neural-application-service.ts +217 -0
  53. package/src/domain/entities/pattern.ts +169 -0
  54. package/src/domain/index.ts +18 -0
  55. package/src/domain/services/learning-service.ts +256 -0
  56. package/src/index.d.ts +118 -0
  57. package/src/index.d.ts.map +1 -0
  58. package/src/index.js +201 -0
  59. package/src/index.js.map +1 -0
  60. package/src/index.ts +363 -0
  61. package/src/modes/balanced.d.ts +60 -0
  62. package/src/modes/balanced.d.ts.map +1 -0
  63. package/src/modes/balanced.js +234 -0
  64. package/src/modes/balanced.js.map +1 -0
  65. package/src/modes/balanced.ts +299 -0
  66. package/src/modes/base.ts +163 -0
  67. package/src/modes/batch.d.ts +82 -0
  68. package/src/modes/batch.d.ts.map +1 -0
  69. package/src/modes/batch.js +316 -0
  70. package/src/modes/batch.js.map +1 -0
  71. package/src/modes/batch.ts +434 -0
  72. package/src/modes/edge.d.ts +85 -0
  73. package/src/modes/edge.d.ts.map +1 -0
  74. package/src/modes/edge.js +310 -0
  75. package/src/modes/edge.js.map +1 -0
  76. package/src/modes/edge.ts +409 -0
  77. package/src/modes/index.d.ts +55 -0
  78. package/src/modes/index.d.ts.map +1 -0
  79. package/src/modes/index.js +83 -0
  80. package/src/modes/index.js.map +1 -0
  81. package/src/modes/index.ts +16 -0
  82. package/src/modes/real-time.d.ts +58 -0
  83. package/src/modes/real-time.d.ts.map +1 -0
  84. package/src/modes/real-time.js +196 -0
  85. package/src/modes/real-time.js.map +1 -0
  86. package/src/modes/real-time.ts +257 -0
  87. package/src/modes/research.d.ts +79 -0
  88. package/src/modes/research.d.ts.map +1 -0
  89. package/src/modes/research.js +389 -0
  90. package/src/modes/research.js.map +1 -0
  91. package/src/modes/research.ts +486 -0
  92. package/src/modes/tmp.json +0 -0
  93. package/src/pattern-learner.d.ts +117 -0
  94. package/src/pattern-learner.d.ts.map +1 -0
  95. package/src/pattern-learner.js +603 -0
  96. package/src/pattern-learner.js.map +1 -0
  97. package/src/pattern-learner.ts +757 -0
  98. package/src/reasoning-bank.d.ts +259 -0
  99. package/src/reasoning-bank.d.ts.map +1 -0
  100. package/src/reasoning-bank.js +993 -0
  101. package/src/reasoning-bank.js.map +1 -0
  102. package/src/reasoning-bank.ts +1279 -0
  103. package/src/reasoningbank-adapter.ts +697 -0
  104. package/src/sona-integration.d.ts +168 -0
  105. package/src/sona-integration.d.ts.map +1 -0
  106. package/src/sona-integration.js +316 -0
  107. package/src/sona-integration.js.map +1 -0
  108. package/src/sona-integration.ts +432 -0
  109. package/src/sona-manager.d.ts +147 -0
  110. package/src/sona-manager.d.ts.map +1 -0
  111. package/src/sona-manager.js +695 -0
  112. package/src/sona-manager.js.map +1 -0
  113. package/src/sona-manager.ts +835 -0
  114. package/src/tmp.json +0 -0
  115. package/src/types.d.ts +431 -0
  116. package/src/types.d.ts.map +1 -0
  117. package/src/types.js +11 -0
  118. package/src/types.js.map +1 -0
  119. package/src/types.ts +590 -0
  120. package/tmp.json +0 -0
  121. package/tsconfig.json +9 -0
  122. package/vitest.config.ts +19 -0
@@ -0,0 +1,168 @@
1
+ /**
2
+ * SONA Integration for V3 Neural Module
3
+ *
4
+ * Wraps @ruvector/sona package for V3 usage with:
5
+ * - Trajectory tracking and verdict judgment
6
+ * - Pattern extraction and memory distillation
7
+ * - Sub-0.05ms learning performance target
8
+ * - Clean TypeScript API with proper types
9
+ *
10
+ * @module sona-integration
11
+ */
12
+ import { type JsSonaConfig, type JsLearnedPattern } from '@ruvector/sona';
13
+ import type { Trajectory, SONAMode, SONAModeConfig } from './types.js';
14
+ /**
15
+ * Context for SONA learning adaptation
16
+ */
17
+ export interface Context {
18
+ /** Task domain */
19
+ domain: 'code' | 'creative' | 'reasoning' | 'chat' | 'math' | 'general';
20
+ /** Current query embedding */
21
+ queryEmbedding: Float32Array;
22
+ /** Additional context metadata */
23
+ metadata?: Record<string, unknown>;
24
+ }
25
+ /**
26
+ * Adapted behavior result from SONA
27
+ */
28
+ export interface AdaptedBehavior {
29
+ /** Transformed query embedding after micro-LoRA */
30
+ transformedQuery: Float32Array;
31
+ /** Similar learned patterns */
32
+ patterns: JsLearnedPattern[];
33
+ /** Suggested route/model */
34
+ suggestedRoute?: string;
35
+ /** Confidence score */
36
+ confidence: number;
37
+ }
38
+ /**
39
+ * SONA engine statistics
40
+ */
41
+ export interface SONAStats {
42
+ /** Total trajectories recorded */
43
+ totalTrajectories: number;
44
+ /** Patterns learned */
45
+ patternsLearned: number;
46
+ /** Average quality */
47
+ avgQuality: number;
48
+ /** Last learning time (ms) */
49
+ lastLearningMs: number;
50
+ /** Engine enabled state */
51
+ enabled: boolean;
52
+ }
53
+ /**
54
+ * SONA Learning Engine - wraps @ruvector/sona for V3 usage
55
+ *
56
+ * Performance targets:
57
+ * - learn(): <0.05ms
58
+ * - adapt(): <0.1ms
59
+ * - Full learning cycle: <10ms
60
+ */
61
+ export declare class SONALearningEngine {
62
+ private engine;
63
+ private trajectoryMap;
64
+ private adaptationTimeMs;
65
+ private learningTimeMs;
66
+ private mode;
67
+ private modeConfig;
68
+ constructor(mode: SONAMode, modeConfig: SONAModeConfig);
69
+ /**
70
+ * Learn from a trajectory
71
+ *
72
+ * Performance target: <0.05ms
73
+ *
74
+ * @param trajectory - Trajectory to learn from
75
+ */
76
+ learn(trajectory: Trajectory): Promise<void>;
77
+ /**
78
+ * Adapt behavior based on context
79
+ *
80
+ * @param context - Current context for adaptation
81
+ * @returns Adapted behavior with transformed embeddings
82
+ */
83
+ adapt(context: Context): Promise<AdaptedBehavior>;
84
+ /**
85
+ * Get last adaptation time
86
+ *
87
+ * @returns Adaptation time in milliseconds
88
+ */
89
+ getAdaptationTime(): number;
90
+ /**
91
+ * Get last learning time
92
+ *
93
+ * @returns Learning time in milliseconds
94
+ */
95
+ getLearningTime(): number;
96
+ /**
97
+ * Reset learning state
98
+ */
99
+ resetLearning(): void;
100
+ /**
101
+ * Force immediate learning cycle
102
+ *
103
+ * @returns Status message
104
+ */
105
+ forceLearning(): string;
106
+ /**
107
+ * Tick background learning (call periodically)
108
+ *
109
+ * @returns Status message if learning occurred
110
+ */
111
+ tick(): string | null;
112
+ /**
113
+ * Get engine statistics
114
+ *
115
+ * @returns SONA engine statistics
116
+ */
117
+ getStats(): SONAStats;
118
+ /**
119
+ * Enable or disable the engine
120
+ *
121
+ * @param enabled - Whether to enable the engine
122
+ */
123
+ setEnabled(enabled: boolean): void;
124
+ /**
125
+ * Check if engine is enabled
126
+ *
127
+ * @returns Whether the engine is enabled
128
+ */
129
+ isEnabled(): boolean;
130
+ /**
131
+ * Find learned patterns similar to query
132
+ *
133
+ * @param queryEmbedding - Query embedding
134
+ * @param k - Number of patterns to return
135
+ * @returns Learned patterns
136
+ */
137
+ findPatterns(queryEmbedding: Float32Array, k?: number): JsLearnedPattern[];
138
+ /**
139
+ * Convert trajectory to query embedding
140
+ */
141
+ private trajectoryToQueryEmbedding;
142
+ /**
143
+ * Convert state embedding to activations
144
+ */
145
+ private stateToActivations;
146
+ /**
147
+ * Convert state embedding to attention weights
148
+ */
149
+ private stateToAttentionWeights;
150
+ /**
151
+ * Calculate quality score for trajectory
152
+ */
153
+ private calculateQuality;
154
+ /**
155
+ * Infer suggested route from patterns and context
156
+ */
157
+ private inferRoute;
158
+ }
159
+ /**
160
+ * Create a SONA learning engine
161
+ *
162
+ * @param mode - SONA learning mode
163
+ * @param modeConfig - Mode configuration
164
+ * @returns SONA learning engine instance
165
+ */
166
+ export declare function createSONALearningEngine(mode: SONAMode, modeConfig: SONAModeConfig): SONALearningEngine;
167
+ export type { JsLearnedPattern, JsSonaConfig };
168
+ //# sourceMappingURL=sona-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sona-integration.d.ts","sourceRoot":"","sources":["sona-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EAIV,QAAQ,EACR,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,kBAAkB;IAClB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxE,8BAA8B;IAC9B,cAAc,EAAE,YAAY,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,gBAAgB,EAAE,YAAY,CAAC;IAC/B,+BAA+B;IAC/B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAiED;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,UAAU,CAAiB;gBAEvB,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc;IAOtD;;;;;;OAMG;IACG,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyClD;;;;;OAKG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAgCvD;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,IAAI,IAAI,MAAM,GAAG,IAAI;IAIrB;;;;OAIG;IACH,QAAQ,IAAI,SAAS;IAarB;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;;OAMG;IACH,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,GAAE,MAAU,GAAG,gBAAgB,EAAE;IAQ7E;;OAEG;IACH,OAAO,CAAC,0BAA0B;IASlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,UAAU;CAUnB;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,cAAc,GACzB,kBAAkB,CAEpB;AAMD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,316 @@
1
+ /**
2
+ * SONA Integration for V3 Neural Module
3
+ *
4
+ * Wraps @ruvector/sona package for V3 usage with:
5
+ * - Trajectory tracking and verdict judgment
6
+ * - Pattern extraction and memory distillation
7
+ * - Sub-0.05ms learning performance target
8
+ * - Clean TypeScript API with proper types
9
+ *
10
+ * @module sona-integration
11
+ */
12
+ import { SonaEngine } from '@ruvector/sona';
13
+ // =============================================================================
14
+ // Mode Configuration Mapping
15
+ // =============================================================================
16
+ /**
17
+ * Convert V3 SONA mode to @ruvector/sona config
18
+ */
19
+ function modeToConfig(mode, modeConfig) {
20
+ const baseConfig = {
21
+ hiddenDim: 768, // Standard transformer dimension
22
+ embeddingDim: 768,
23
+ microLoraRank: modeConfig.loraRank <= 2 ? modeConfig.loraRank : 1,
24
+ baseLoraRank: modeConfig.loraRank,
25
+ microLoraLr: modeConfig.learningRate,
26
+ baseLoraLr: modeConfig.learningRate * 0.1,
27
+ ewcLambda: modeConfig.ewcLambda,
28
+ patternClusters: modeConfig.patternClusters,
29
+ trajectoryCapacity: modeConfig.trajectoryCapacity,
30
+ qualityThreshold: modeConfig.qualityThreshold,
31
+ enableSimd: true,
32
+ };
33
+ // Mode-specific adjustments
34
+ switch (mode) {
35
+ case 'real-time':
36
+ return {
37
+ ...baseConfig,
38
+ microLoraRank: 1,
39
+ backgroundIntervalMs: 60000, // 1 minute
40
+ };
41
+ case 'edge':
42
+ return {
43
+ ...baseConfig,
44
+ hiddenDim: 384, // Smaller for edge devices
45
+ embeddingDim: 384,
46
+ microLoraRank: 1,
47
+ patternClusters: 25,
48
+ backgroundIntervalMs: 300000, // 5 minutes
49
+ };
50
+ case 'research':
51
+ return {
52
+ ...baseConfig,
53
+ baseLoraRank: 16,
54
+ backgroundIntervalMs: 3600000, // 1 hour
55
+ };
56
+ case 'batch':
57
+ return {
58
+ ...baseConfig,
59
+ backgroundIntervalMs: 7200000, // 2 hours
60
+ };
61
+ case 'balanced':
62
+ default:
63
+ return {
64
+ ...baseConfig,
65
+ backgroundIntervalMs: 1800000, // 30 minutes
66
+ };
67
+ }
68
+ }
69
+ // =============================================================================
70
+ // SONA Learning Engine
71
+ // =============================================================================
72
+ /**
73
+ * SONA Learning Engine - wraps @ruvector/sona for V3 usage
74
+ *
75
+ * Performance targets:
76
+ * - learn(): <0.05ms
77
+ * - adapt(): <0.1ms
78
+ * - Full learning cycle: <10ms
79
+ */
80
+ export class SONALearningEngine {
81
+ engine;
82
+ trajectoryMap = new Map();
83
+ adaptationTimeMs = 0;
84
+ learningTimeMs = 0;
85
+ mode;
86
+ modeConfig;
87
+ constructor(mode, modeConfig) {
88
+ this.mode = mode;
89
+ this.modeConfig = modeConfig;
90
+ const config = modeToConfig(mode, modeConfig);
91
+ this.engine = SonaEngine.withConfig(config);
92
+ }
93
+ /**
94
+ * Learn from a trajectory
95
+ *
96
+ * Performance target: <0.05ms
97
+ *
98
+ * @param trajectory - Trajectory to learn from
99
+ */
100
+ async learn(trajectory) {
101
+ const startTime = performance.now();
102
+ try {
103
+ // Begin trajectory recording
104
+ const queryEmbedding = this.trajectoryToQueryEmbedding(trajectory);
105
+ const trajectoryId = this.engine.beginTrajectory(Array.from(queryEmbedding));
106
+ // Add trajectory steps
107
+ for (const step of trajectory.steps) {
108
+ const activations = this.stateToActivations(step.stateBefore);
109
+ const attentionWeights = this.stateToAttentionWeights(step.stateAfter);
110
+ this.engine.addTrajectoryStep(trajectoryId, Array.from(activations), Array.from(attentionWeights), step.reward);
111
+ }
112
+ // Set context if available
113
+ if (trajectory.domain) {
114
+ this.engine.addTrajectoryContext(trajectoryId, trajectory.domain);
115
+ }
116
+ // Complete trajectory with quality score
117
+ const quality = this.calculateQuality(trajectory);
118
+ this.engine.endTrajectory(trajectoryId, quality);
119
+ // Flush instant updates
120
+ this.engine.flush();
121
+ this.learningTimeMs = performance.now() - startTime;
122
+ }
123
+ catch (error) {
124
+ throw new Error(`SONA learning failed: ${error}`);
125
+ }
126
+ }
127
+ /**
128
+ * Adapt behavior based on context
129
+ *
130
+ * @param context - Current context for adaptation
131
+ * @returns Adapted behavior with transformed embeddings
132
+ */
133
+ async adapt(context) {
134
+ const startTime = performance.now();
135
+ try {
136
+ // Apply micro-LoRA transformation
137
+ const transformedQuery = this.engine.applyMicroLora(Array.from(context.queryEmbedding));
138
+ // Find similar patterns
139
+ const patterns = this.engine.findPatterns(Array.from(context.queryEmbedding), 5);
140
+ // Determine suggested route from patterns
141
+ const suggestedRoute = this.inferRoute(patterns, context);
142
+ const confidence = patterns.length > 0 ? patterns[0].avgQuality : 0.5;
143
+ this.adaptationTimeMs = performance.now() - startTime;
144
+ return {
145
+ transformedQuery: new Float32Array(transformedQuery),
146
+ patterns,
147
+ suggestedRoute,
148
+ confidence,
149
+ };
150
+ }
151
+ catch (error) {
152
+ throw new Error(`SONA adaptation failed: ${error}`);
153
+ }
154
+ }
155
+ /**
156
+ * Get last adaptation time
157
+ *
158
+ * @returns Adaptation time in milliseconds
159
+ */
160
+ getAdaptationTime() {
161
+ return this.adaptationTimeMs;
162
+ }
163
+ /**
164
+ * Get last learning time
165
+ *
166
+ * @returns Learning time in milliseconds
167
+ */
168
+ getLearningTime() {
169
+ return this.learningTimeMs;
170
+ }
171
+ /**
172
+ * Reset learning state
173
+ */
174
+ resetLearning() {
175
+ // Create a new engine with the same config
176
+ const config = modeToConfig(this.mode, this.modeConfig);
177
+ this.engine = SonaEngine.withConfig(config);
178
+ this.trajectoryMap.clear();
179
+ this.adaptationTimeMs = 0;
180
+ this.learningTimeMs = 0;
181
+ }
182
+ /**
183
+ * Force immediate learning cycle
184
+ *
185
+ * @returns Status message
186
+ */
187
+ forceLearning() {
188
+ return this.engine.forceLearn();
189
+ }
190
+ /**
191
+ * Tick background learning (call periodically)
192
+ *
193
+ * @returns Status message if learning occurred
194
+ */
195
+ tick() {
196
+ return this.engine.tick();
197
+ }
198
+ /**
199
+ * Get engine statistics
200
+ *
201
+ * @returns SONA engine statistics
202
+ */
203
+ getStats() {
204
+ const statsJson = this.engine.getStats();
205
+ const stats = JSON.parse(statsJson);
206
+ return {
207
+ totalTrajectories: stats.total_trajectories || 0,
208
+ patternsLearned: stats.patterns_learned || 0,
209
+ avgQuality: stats.avg_quality || 0,
210
+ lastLearningMs: this.learningTimeMs,
211
+ enabled: this.engine.isEnabled(),
212
+ };
213
+ }
214
+ /**
215
+ * Enable or disable the engine
216
+ *
217
+ * @param enabled - Whether to enable the engine
218
+ */
219
+ setEnabled(enabled) {
220
+ this.engine.setEnabled(enabled);
221
+ }
222
+ /**
223
+ * Check if engine is enabled
224
+ *
225
+ * @returns Whether the engine is enabled
226
+ */
227
+ isEnabled() {
228
+ return this.engine.isEnabled();
229
+ }
230
+ /**
231
+ * Find learned patterns similar to query
232
+ *
233
+ * @param queryEmbedding - Query embedding
234
+ * @param k - Number of patterns to return
235
+ * @returns Learned patterns
236
+ */
237
+ findPatterns(queryEmbedding, k = 5) {
238
+ return this.engine.findPatterns(Array.from(queryEmbedding), k);
239
+ }
240
+ // =============================================================================
241
+ // Private Helpers
242
+ // =============================================================================
243
+ /**
244
+ * Convert trajectory to query embedding
245
+ */
246
+ trajectoryToQueryEmbedding(trajectory) {
247
+ // Use the first step's state as query
248
+ if (trajectory.steps.length > 0) {
249
+ return trajectory.steps[0].stateBefore;
250
+ }
251
+ // Fallback to zero embedding
252
+ return new Float32Array(768);
253
+ }
254
+ /**
255
+ * Convert state embedding to activations
256
+ */
257
+ stateToActivations(state) {
258
+ // For now, use state directly as activations
259
+ // In a real implementation, this would extract layer activations
260
+ return state;
261
+ }
262
+ /**
263
+ * Convert state embedding to attention weights
264
+ */
265
+ stateToAttentionWeights(state) {
266
+ // For now, use normalized state as attention weights
267
+ // In a real implementation, this would extract attention patterns
268
+ const sum = state.reduce((acc, val) => acc + Math.abs(val), 0);
269
+ if (sum === 0)
270
+ return state;
271
+ const weights = new Float32Array(state.length);
272
+ for (let i = 0; i < state.length; i++) {
273
+ weights[i] = Math.abs(state[i]) / sum;
274
+ }
275
+ return weights;
276
+ }
277
+ /**
278
+ * Calculate quality score for trajectory
279
+ */
280
+ calculateQuality(trajectory) {
281
+ if (trajectory.qualityScore !== undefined) {
282
+ return trajectory.qualityScore;
283
+ }
284
+ // Calculate from steps
285
+ if (trajectory.steps.length === 0)
286
+ return 0.5;
287
+ const avgReward = trajectory.steps.reduce((sum, step) => sum + step.reward, 0) /
288
+ trajectory.steps.length;
289
+ // Normalize to [0, 1]
290
+ return Math.max(0, Math.min(1, (avgReward + 1) / 2));
291
+ }
292
+ /**
293
+ * Infer suggested route from patterns and context
294
+ */
295
+ inferRoute(patterns, context) {
296
+ if (patterns.length === 0)
297
+ return undefined;
298
+ // Use the highest quality pattern's type as route
299
+ const bestPattern = patterns.reduce((best, pattern) => pattern.avgQuality > best.avgQuality ? pattern : best);
300
+ return bestPattern.patternType || `${context.domain}-default`;
301
+ }
302
+ }
303
+ // =============================================================================
304
+ // Factory Functions
305
+ // =============================================================================
306
+ /**
307
+ * Create a SONA learning engine
308
+ *
309
+ * @param mode - SONA learning mode
310
+ * @param modeConfig - Mode configuration
311
+ * @returns SONA learning engine instance
312
+ */
313
+ export function createSONALearningEngine(mode, modeConfig) {
314
+ return new SONALearningEngine(mode, modeConfig);
315
+ }
316
+ //# sourceMappingURL=sona-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sona-integration.js","sourceRoot":"","sources":["sona-integration.ts"],"names":[],"mappings":"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"}