agentic-qe 2.8.0 → 2.8.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 (142) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +128 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +256 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/supabase/index.d.ts +20 -0
  8. package/dist/cli/commands/supabase/index.d.ts.map +1 -0
  9. package/dist/cli/commands/supabase/index.js +632 -0
  10. package/dist/cli/commands/supabase/index.js.map +1 -0
  11. package/dist/cli/index.js +3 -0
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  14. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
  15. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
  16. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
  17. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  18. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  19. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  20. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  21. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  22. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  23. package/dist/mcp/handlers/ruvector/index.js +9 -0
  24. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  25. package/dist/mcp/server-instructions.d.ts +1 -1
  26. package/dist/mcp/server-instructions.js +1 -1
  27. package/dist/mcp/server.d.ts.map +1 -1
  28. package/dist/mcp/server.js +100 -22
  29. package/dist/mcp/server.js.map +1 -1
  30. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  31. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  32. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  33. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  34. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  35. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  36. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  37. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  38. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  39. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  40. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  41. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  42. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  43. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  44. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  45. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  46. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  47. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  48. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  49. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  50. package/dist/nervous-system/index.d.ts +25 -0
  51. package/dist/nervous-system/index.d.ts.map +1 -0
  52. package/dist/nervous-system/index.js +80 -0
  53. package/dist/nervous-system/index.js.map +1 -0
  54. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  55. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  56. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  57. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  58. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  59. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  60. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  61. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  62. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  63. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  64. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  65. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  66. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  67. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  68. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  69. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  70. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  71. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  72. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  73. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  74. package/dist/nervous-system/integration/index.d.ts +22 -0
  75. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  76. package/dist/nervous-system/integration/index.js +44 -0
  77. package/dist/nervous-system/integration/index.js.map +1 -0
  78. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  79. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  80. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  81. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  82. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  83. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  84. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  85. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  86. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  87. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  88. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  89. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  90. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  91. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  92. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  93. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  94. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  95. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  96. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  97. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  98. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  99. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  100. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  101. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  102. package/dist/nervous-system/persistence/index.d.ts +22 -0
  103. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  104. package/dist/nervous-system/persistence/index.js +45 -0
  105. package/dist/nervous-system/persistence/index.js.map +1 -0
  106. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  107. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  108. package/dist/nervous-system/wasm-loader.js +188 -0
  109. package/dist/nervous-system/wasm-loader.js.map +1 -0
  110. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  111. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  112. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  113. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  114. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  115. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  116. package/dist/persistence/IPersistenceProvider.js +11 -0
  117. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  118. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  119. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  120. package/dist/persistence/SupabaseConfig.js +277 -0
  121. package/dist/persistence/SupabaseConfig.js.map +1 -0
  122. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  123. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  124. package/dist/persistence/SupabasePersistenceProvider.js +955 -0
  125. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  126. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  127. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  128. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  129. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  130. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  131. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  132. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  133. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  134. package/dist/persistence/adapters/index.d.ts +11 -0
  135. package/dist/persistence/adapters/index.d.ts.map +1 -0
  136. package/dist/persistence/adapters/index.js +20 -0
  137. package/dist/persistence/adapters/index.js.map +1 -0
  138. package/dist/persistence/index.d.ts +14 -0
  139. package/dist/persistence/index.d.ts.map +1 -1
  140. package/dist/persistence/index.js +36 -1
  141. package/dist/persistence/index.js.map +1 -1
  142. package/package.json +3 -1
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ /**
3
+ * Circadian Controller Serializer
4
+ *
5
+ * Handles serialization and deserialization of CircadianController state.
6
+ * Since circadian state is all primitives and simple objects, we use JSON.
7
+ *
8
+ * @module nervous-system/persistence/CircadianSerializer
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.serializeCircadian = serializeCircadian;
12
+ exports.deserializeCircadian = deserializeCircadian;
13
+ exports.calculateStateSize = calculateStateSize;
14
+ exports.validateCircadianState = validateCircadianState;
15
+ exports.createDefaultCircadianState = createDefaultCircadianState;
16
+ exports.calculateEnergySavings = calculateEnergySavings;
17
+ /**
18
+ * Current serialization schema version
19
+ */
20
+ const SCHEMA_VERSION = 1;
21
+ /**
22
+ * Serialize a CircadianController to storable format
23
+ *
24
+ * @param controller - The controller to serialize
25
+ * @param options - Serialization options
26
+ * @returns Serialized state ready for storage
27
+ */
28
+ function serializeCircadian(controller, options = {}) {
29
+ const { includeMetrics = true, includeModulation = true, } = options;
30
+ const state = controller.getState();
31
+ const metrics = controller.getMetrics();
32
+ const lastPhaseChange = controller.getLastPhaseChangeTime();
33
+ const modulationStartTime = controller.getModulationStartTime();
34
+ // Build serialized state
35
+ const serialized = {
36
+ version: SCHEMA_VERSION,
37
+ state: {
38
+ phase: state.phase,
39
+ cycleTime: state.cycleTime,
40
+ phaseTime: state.phaseTime,
41
+ energyRemaining: state.energyRemaining,
42
+ cyclesCompleted: state.cyclesCompleted,
43
+ activeModulation: includeModulation ? state.activeModulation : null,
44
+ timeToNextPhase: state.timeToNextPhase,
45
+ wasmEnabled: state.wasmEnabled,
46
+ },
47
+ metrics: includeMetrics ? { ...metrics } : createEmptyMetrics(),
48
+ lastPhaseChange,
49
+ modulationStartTime: includeModulation ? modulationStartTime : undefined,
50
+ serializedAt: Date.now(),
51
+ };
52
+ return serialized;
53
+ }
54
+ /**
55
+ * Deserialize stored state back into a CircadianController
56
+ *
57
+ * @param state - Serialized state from storage
58
+ * @param controller - The controller to restore state into
59
+ */
60
+ function deserializeCircadian(state, controller) {
61
+ // Handle version migration if needed
62
+ if (state.version !== SCHEMA_VERSION) {
63
+ migrateState(state);
64
+ }
65
+ // Restore core state
66
+ controller.restoreState(state.state.phase, state.state.cycleTime, state.state.phaseTime, state.state.cyclesCompleted, state.state.energyRemaining, state.state.activeModulation);
67
+ // Restore metrics
68
+ if (state.metrics) {
69
+ controller.restoreMetrics(state.metrics);
70
+ }
71
+ // Restore timing
72
+ controller.restoreLastPhaseChangeTime(state.lastPhaseChange);
73
+ if (state.modulationStartTime !== undefined) {
74
+ controller.restoreModulationStartTime(state.modulationStartTime);
75
+ }
76
+ }
77
+ /**
78
+ * Migrate state from older schema versions
79
+ */
80
+ function migrateState(state) {
81
+ // Future: Add migration logic as schema evolves
82
+ state.version = SCHEMA_VERSION;
83
+ }
84
+ /**
85
+ * Create empty metrics structure
86
+ */
87
+ function createEmptyMetrics() {
88
+ return {
89
+ phaseTime: {
90
+ Active: 0,
91
+ Dawn: 0,
92
+ Dusk: 0,
93
+ Rest: 0,
94
+ },
95
+ reactionsPerPhase: {
96
+ Active: 0,
97
+ Dawn: 0,
98
+ Dusk: 0,
99
+ Rest: 0,
100
+ },
101
+ rejectionsPerPhase: {
102
+ Active: 0,
103
+ Dawn: 0,
104
+ Dusk: 0,
105
+ Rest: 0,
106
+ },
107
+ averageDutyFactor: 0,
108
+ totalEnergyConsumed: 0,
109
+ phaseTransitions: 0,
110
+ hysteresisActivations: 0,
111
+ wtaCompetitions: 0,
112
+ };
113
+ }
114
+ /**
115
+ * Calculate approximate size of serialized state in bytes
116
+ */
117
+ function calculateStateSize(state) {
118
+ // JSON serialization is compact for this simple structure
119
+ return JSON.stringify(state).length;
120
+ }
121
+ /**
122
+ * Validate serialized state integrity
123
+ */
124
+ function validateCircadianState(state) {
125
+ const errors = [];
126
+ // Check version
127
+ if (typeof state.version !== 'number' || state.version < 1) {
128
+ errors.push('Invalid schema version');
129
+ }
130
+ // Check state
131
+ if (!state.state) {
132
+ errors.push('Missing state object');
133
+ }
134
+ else {
135
+ // Check phase
136
+ const validPhases = ['Active', 'Dawn', 'Dusk', 'Rest'];
137
+ if (!validPhases.includes(state.state.phase)) {
138
+ errors.push(`Invalid phase: ${state.state.phase}`);
139
+ }
140
+ // Check numeric fields
141
+ if (typeof state.state.cycleTime !== 'number' || state.state.cycleTime < 0) {
142
+ errors.push('Invalid cycleTime');
143
+ }
144
+ if (typeof state.state.phaseTime !== 'number' || state.state.phaseTime < 0) {
145
+ errors.push('Invalid phaseTime');
146
+ }
147
+ if (typeof state.state.energyRemaining !== 'number') {
148
+ errors.push('Invalid energyRemaining');
149
+ }
150
+ if (typeof state.state.cyclesCompleted !== 'number' || state.state.cyclesCompleted < 0) {
151
+ errors.push('Invalid cyclesCompleted');
152
+ }
153
+ }
154
+ // Check metrics
155
+ if (!state.metrics) {
156
+ errors.push('Missing metrics object');
157
+ }
158
+ else {
159
+ // Check phase time records
160
+ const phases = ['Active', 'Dawn', 'Dusk', 'Rest'];
161
+ for (const phase of phases) {
162
+ if (typeof state.metrics.phaseTime[phase] !== 'number') {
163
+ errors.push(`Missing phaseTime for ${phase}`);
164
+ }
165
+ if (typeof state.metrics.reactionsPerPhase[phase] !== 'number') {
166
+ errors.push(`Missing reactionsPerPhase for ${phase}`);
167
+ }
168
+ if (typeof state.metrics.rejectionsPerPhase[phase] !== 'number') {
169
+ errors.push(`Missing rejectionsPerPhase for ${phase}`);
170
+ }
171
+ }
172
+ }
173
+ // Check timestamps
174
+ if (typeof state.lastPhaseChange !== 'number') {
175
+ errors.push('Invalid lastPhaseChange timestamp');
176
+ }
177
+ if (typeof state.serializedAt !== 'number') {
178
+ errors.push('Invalid serializedAt timestamp');
179
+ }
180
+ return {
181
+ valid: errors.length === 0,
182
+ errors,
183
+ };
184
+ }
185
+ /**
186
+ * Create a default serialized state for new controllers
187
+ */
188
+ function createDefaultCircadianState(initialPhase = 'Active', energyBudget = 0) {
189
+ return {
190
+ version: SCHEMA_VERSION,
191
+ state: {
192
+ phase: initialPhase,
193
+ cycleTime: 0,
194
+ phaseTime: 0,
195
+ energyRemaining: energyBudget,
196
+ cyclesCompleted: 0,
197
+ activeModulation: null,
198
+ timeToNextPhase: 0,
199
+ wasmEnabled: false,
200
+ },
201
+ metrics: createEmptyMetrics(),
202
+ lastPhaseChange: Date.now(),
203
+ serializedAt: Date.now(),
204
+ };
205
+ }
206
+ /**
207
+ * Calculate energy savings from metrics
208
+ */
209
+ function calculateEnergySavings(state) {
210
+ const { phaseTime } = state.metrics;
211
+ const totalTime = phaseTime.Active + phaseTime.Dawn + phaseTime.Dusk + phaseTime.Rest;
212
+ const totalRestTime = phaseTime.Rest;
213
+ const totalActiveTime = phaseTime.Active;
214
+ if (totalTime === 0) {
215
+ return {
216
+ savingsPercentage: 0,
217
+ totalRestTime: 0,
218
+ totalActiveTime: 0,
219
+ averageDutyFactor: 1,
220
+ costReductionFactor: 1,
221
+ };
222
+ }
223
+ // Calculate weighted average duty factor
224
+ // Active: 1.0, Dawn: 0.6, Dusk: 0.4, Rest: 0.1
225
+ const weightedDuty = (phaseTime.Active * 1.0 +
226
+ phaseTime.Dawn * 0.6 +
227
+ phaseTime.Dusk * 0.4 +
228
+ phaseTime.Rest * 0.1) / totalTime;
229
+ const savingsPercentage = (1 - weightedDuty) * 100;
230
+ const costReductionFactor = 1 / weightedDuty;
231
+ return {
232
+ savingsPercentage,
233
+ totalRestTime,
234
+ totalActiveTime,
235
+ averageDutyFactor: weightedDuty,
236
+ costReductionFactor,
237
+ };
238
+ }
239
+ //# sourceMappingURL=CircadianSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircadianSerializer.js","sourceRoot":"","sources":["../../../src/nervous-system/persistence/CircadianSerializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * HDC Memory Serializer
3
+ *
4
+ * Handles serialization and deserialization of Hyperdimensional Computing
5
+ * memory state, including codebooks, role vectors, and stored patterns.
6
+ *
7
+ * @module nervous-system/persistence/HdcSerializer
8
+ */
9
+ import type { HdcSerializedState } from './INervousSystemStore.js';
10
+ import type { Hypervector } from '../wasm-loader.js';
11
+ /**
12
+ * Options for serialization
13
+ */
14
+ export interface HdcSerializerOptions {
15
+ /** Include stored patterns in serialization (default: true) */
16
+ includePatterns?: boolean;
17
+ /** Include codebooks in serialization (default: true) */
18
+ includeCodebooks?: boolean;
19
+ /** Maximum patterns to include (0 = all) */
20
+ maxPatterns?: number;
21
+ }
22
+ /**
23
+ * Serializes a Hypervector to Uint8Array
24
+ * Uses the WASM to_bytes() method if available
25
+ */
26
+ export declare function serializeHypervector(vector: Hypervector): Uint8Array;
27
+ /**
28
+ * Deserializes Uint8Array back to Hypervector
29
+ * Uses the WASM from_bytes() static method
30
+ */
31
+ export declare function deserializeHypervector(bytes: Uint8Array, HypervectorClass: typeof Hypervector): Hypervector;
32
+ /**
33
+ * Serializes an HdcMemoryAdapter to a storable format
34
+ *
35
+ * @param adapter - The HDC memory adapter to serialize
36
+ * @param options - Serialization options
37
+ * @returns Serialized state ready for storage
38
+ */
39
+ export declare function serializeHdcMemory(adapter: {
40
+ getCodebooks: () => {
41
+ type: Map<string, Hypervector>;
42
+ domain: Map<string, Hypervector>;
43
+ framework: Map<string, Hypervector>;
44
+ };
45
+ getRoleVectors: () => {
46
+ type: Hypervector;
47
+ domain: Hypervector;
48
+ content: Hypervector;
49
+ framework: Hypervector;
50
+ };
51
+ getStoredPatterns: () => Map<string, {
52
+ vector: Hypervector;
53
+ metadata?: Record<string, unknown>;
54
+ }>;
55
+ getDimension: () => number;
56
+ }, options?: HdcSerializerOptions): HdcSerializedState;
57
+ /**
58
+ * Deserializes stored state back into an HdcMemoryAdapter
59
+ *
60
+ * @param state - Serialized state from storage
61
+ * @param adapter - The adapter to restore state into
62
+ * @param HypervectorClass - The Hypervector class for deserialization
63
+ */
64
+ export declare function deserializeHdcMemory(state: HdcSerializedState, adapter: {
65
+ restoreCodebooks: (codebooks: {
66
+ type: Map<string, Hypervector>;
67
+ domain: Map<string, Hypervector>;
68
+ framework: Map<string, Hypervector>;
69
+ }) => void;
70
+ restoreRoleVectors: (roleVectors: {
71
+ type: Hypervector;
72
+ domain: Hypervector;
73
+ content: Hypervector;
74
+ framework: Hypervector;
75
+ }) => void;
76
+ restorePatterns: (patterns: Map<string, {
77
+ vector: Hypervector;
78
+ metadata?: Record<string, unknown>;
79
+ }>) => void;
80
+ }, HypervectorClass: typeof Hypervector): void;
81
+ /**
82
+ * Calculate approximate size of serialized state in bytes
83
+ */
84
+ export declare function calculateStateSize(state: HdcSerializedState): number;
85
+ /**
86
+ * Validate serialized state integrity
87
+ */
88
+ export declare function validateHdcState(state: HdcSerializedState): {
89
+ valid: boolean;
90
+ errors: string[];
91
+ };
92
+ /**
93
+ * Alias for calculateStateSize (for naming consistency)
94
+ */
95
+ export declare const calculateHdcStateSize: typeof calculateStateSize;
96
+ /**
97
+ * Export types
98
+ */
99
+ export type { HdcSerializedState };
100
+ //# sourceMappingURL=HdcSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HdcSerializer.d.ts","sourceRoot":"","sources":["../../../src/nervous-system/persistence/HdcSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,mBAAmB,CAAC;AAoDhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAGpE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,UAAU,EACjB,gBAAgB,EAAE,OAAO,WAAW,GACnC,WAAW,CAEb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE;IACP,YAAY,EAAE,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACjC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACrC,CAAC;IACF,cAAc,EAAE,MAAM;QACpB,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE,WAAW,CAAC;QACrB,SAAS,EAAE,WAAW,CAAC;KACxB,CAAC;IACF,iBAAiB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAClG,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,EACD,OAAO,GAAE,oBAAyB,GACjC,kBAAkB,CAoEpB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE;IACP,gBAAgB,EAAE,CAAC,SAAS,EAAE;QAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACjC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACrC,KAAK,IAAI,CAAC;IACX,kBAAkB,EAAE,CAAC,WAAW,EAAE;QAChC,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE,WAAW,CAAC;QACrB,SAAS,EAAE,WAAW,CAAC;KACxB,KAAK,IAAI,CAAC;IACX,eAAe,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;CAC/G,EACD,gBAAgB,EAAE,OAAO,WAAW,GACnC,IAAI,CAgDN;AAWD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAoBpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CA2CA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,2BAAqB,CAAC;AAExD;;GAEG;AACH,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ /**
3
+ * HDC Memory Serializer
4
+ *
5
+ * Handles serialization and deserialization of Hyperdimensional Computing
6
+ * memory state, including codebooks, role vectors, and stored patterns.
7
+ *
8
+ * @module nervous-system/persistence/HdcSerializer
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.calculateHdcStateSize = void 0;
12
+ exports.serializeHypervector = serializeHypervector;
13
+ exports.deserializeHypervector = deserializeHypervector;
14
+ exports.serializeHdcMemory = serializeHdcMemory;
15
+ exports.deserializeHdcMemory = deserializeHdcMemory;
16
+ exports.calculateStateSize = calculateStateSize;
17
+ exports.validateHdcState = validateHdcState;
18
+ /**
19
+ * Expected size of a 10,000-bit hypervector in bytes
20
+ * 10,000 bits / 8 bits per byte = 1,250 bytes
21
+ */
22
+ const HYPERVECTOR_BYTES = 1250;
23
+ /**
24
+ * Current serialization schema version
25
+ */
26
+ const SCHEMA_VERSION = 1;
27
+ /**
28
+ * Codebook key names for type patterns
29
+ */
30
+ const TYPE_KEYS = [
31
+ 'edge-case',
32
+ 'boundary-condition',
33
+ 'null-handling',
34
+ 'exception',
35
+ 'performance',
36
+ 'security',
37
+ 'integration',
38
+ 'unit',
39
+ 'regression',
40
+ 'smoke',
41
+ ];
42
+ /**
43
+ * Codebook key names for domain patterns
44
+ */
45
+ const DOMAIN_KEYS = [
46
+ 'unit-test',
47
+ 'integration-test',
48
+ 'e2e-test',
49
+ 'performance-test',
50
+ 'security-test',
51
+ ];
52
+ /**
53
+ * Codebook key names for framework patterns
54
+ */
55
+ const FRAMEWORK_KEYS = [
56
+ 'jest',
57
+ 'mocha',
58
+ 'cypress',
59
+ 'vitest',
60
+ 'jasmine',
61
+ 'ava',
62
+ ];
63
+ /**
64
+ * Serializes a Hypervector to Uint8Array
65
+ * Uses the WASM to_bytes() method if available
66
+ */
67
+ function serializeHypervector(vector) {
68
+ // The Hypervector class has a to_bytes() method that returns Uint8Array
69
+ return vector.to_bytes();
70
+ }
71
+ /**
72
+ * Deserializes Uint8Array back to Hypervector
73
+ * Uses the WASM from_bytes() static method
74
+ */
75
+ function deserializeHypervector(bytes, HypervectorClass) {
76
+ return HypervectorClass.from_bytes(bytes);
77
+ }
78
+ /**
79
+ * Serializes an HdcMemoryAdapter to a storable format
80
+ *
81
+ * @param adapter - The HDC memory adapter to serialize
82
+ * @param options - Serialization options
83
+ * @returns Serialized state ready for storage
84
+ */
85
+ function serializeHdcMemory(adapter, options = {}) {
86
+ const { includePatterns = true, includeCodebooks = true, maxPatterns = 0, } = options;
87
+ const dimension = adapter.getDimension();
88
+ // Serialize codebooks
89
+ const codebooks = {
90
+ type: [],
91
+ domain: [],
92
+ framework: [],
93
+ };
94
+ if (includeCodebooks) {
95
+ const cb = adapter.getCodebooks();
96
+ for (const [key, vector] of cb.type) {
97
+ codebooks.type.push([key, serializeHypervector(vector)]);
98
+ }
99
+ for (const [key, vector] of cb.domain) {
100
+ codebooks.domain.push([key, serializeHypervector(vector)]);
101
+ }
102
+ for (const [key, vector] of cb.framework) {
103
+ codebooks.framework.push([key, serializeHypervector(vector)]);
104
+ }
105
+ }
106
+ // Serialize role vectors
107
+ const rv = adapter.getRoleVectors();
108
+ const roleVectors = {
109
+ type: serializeHypervector(rv.type),
110
+ domain: serializeHypervector(rv.domain),
111
+ content: serializeHypervector(rv.content),
112
+ framework: serializeHypervector(rv.framework),
113
+ };
114
+ // Serialize stored patterns
115
+ const patterns = [];
116
+ if (includePatterns) {
117
+ const storedPatterns = adapter.getStoredPatterns();
118
+ let count = 0;
119
+ for (const [key, { vector, metadata }] of storedPatterns) {
120
+ if (maxPatterns > 0 && count >= maxPatterns)
121
+ break;
122
+ patterns.push({
123
+ key,
124
+ vector: serializeHypervector(vector),
125
+ metadata,
126
+ });
127
+ count++;
128
+ }
129
+ }
130
+ return {
131
+ version: SCHEMA_VERSION,
132
+ dimension,
133
+ codebooks,
134
+ roleVectors,
135
+ patterns,
136
+ serializedAt: Date.now(),
137
+ };
138
+ }
139
+ /**
140
+ * Deserializes stored state back into an HdcMemoryAdapter
141
+ *
142
+ * @param state - Serialized state from storage
143
+ * @param adapter - The adapter to restore state into
144
+ * @param HypervectorClass - The Hypervector class for deserialization
145
+ */
146
+ function deserializeHdcMemory(state, adapter, HypervectorClass) {
147
+ // Handle version migration if needed
148
+ if (state.version !== SCHEMA_VERSION) {
149
+ migrateState(state);
150
+ }
151
+ // Restore codebooks
152
+ const codebooks = {
153
+ type: new Map(),
154
+ domain: new Map(),
155
+ framework: new Map(),
156
+ };
157
+ for (const [key, bytes] of state.codebooks.type) {
158
+ codebooks.type.set(key, deserializeHypervector(bytes, HypervectorClass));
159
+ }
160
+ for (const [key, bytes] of state.codebooks.domain) {
161
+ codebooks.domain.set(key, deserializeHypervector(bytes, HypervectorClass));
162
+ }
163
+ for (const [key, bytes] of state.codebooks.framework) {
164
+ codebooks.framework.set(key, deserializeHypervector(bytes, HypervectorClass));
165
+ }
166
+ adapter.restoreCodebooks(codebooks);
167
+ // Restore role vectors
168
+ const roleVectors = {
169
+ type: deserializeHypervector(state.roleVectors.type, HypervectorClass),
170
+ domain: deserializeHypervector(state.roleVectors.domain, HypervectorClass),
171
+ content: deserializeHypervector(state.roleVectors.content, HypervectorClass),
172
+ framework: deserializeHypervector(state.roleVectors.framework, HypervectorClass),
173
+ };
174
+ adapter.restoreRoleVectors(roleVectors);
175
+ // Restore patterns
176
+ const patterns = new Map();
177
+ for (const { key, vector, metadata } of state.patterns) {
178
+ patterns.set(key, {
179
+ vector: deserializeHypervector(vector, HypervectorClass),
180
+ metadata,
181
+ });
182
+ }
183
+ adapter.restorePatterns(patterns);
184
+ }
185
+ /**
186
+ * Migrate state from older schema versions
187
+ */
188
+ function migrateState(state) {
189
+ // Future: Add migration logic as schema evolves
190
+ // For now, just update version
191
+ state.version = SCHEMA_VERSION;
192
+ }
193
+ /**
194
+ * Calculate approximate size of serialized state in bytes
195
+ */
196
+ function calculateStateSize(state) {
197
+ let size = 0;
198
+ // Codebooks
199
+ size += state.codebooks.type.length * HYPERVECTOR_BYTES;
200
+ size += state.codebooks.domain.length * HYPERVECTOR_BYTES;
201
+ size += state.codebooks.framework.length * HYPERVECTOR_BYTES;
202
+ // Role vectors (4 vectors)
203
+ size += 4 * HYPERVECTOR_BYTES;
204
+ // Patterns
205
+ size += state.patterns.length * HYPERVECTOR_BYTES;
206
+ // Metadata overhead (rough estimate)
207
+ size += state.patterns.reduce((acc, p) => {
208
+ return acc + p.key.length + (p.metadata ? JSON.stringify(p.metadata).length : 0);
209
+ }, 0);
210
+ return size;
211
+ }
212
+ /**
213
+ * Validate serialized state integrity
214
+ */
215
+ function validateHdcState(state) {
216
+ const errors = [];
217
+ // Check version
218
+ if (typeof state.version !== 'number' || state.version < 1) {
219
+ errors.push('Invalid schema version');
220
+ }
221
+ // Check dimension
222
+ if (typeof state.dimension !== 'number' || state.dimension < 1) {
223
+ errors.push('Invalid dimension');
224
+ }
225
+ // Check role vectors
226
+ const expectedBytes = state.dimension / 8;
227
+ const roleVectorNames = ['type', 'domain', 'content', 'framework'];
228
+ for (const name of roleVectorNames) {
229
+ const rv = state.roleVectors[name];
230
+ if (!(rv instanceof Uint8Array)) {
231
+ errors.push(`Role vector ${name} is not Uint8Array`);
232
+ }
233
+ else if (rv.length !== expectedBytes) {
234
+ errors.push(`Role vector ${name} has wrong size: ${rv.length} vs expected ${expectedBytes}`);
235
+ }
236
+ }
237
+ // Check patterns
238
+ for (let i = 0; i < state.patterns.length; i++) {
239
+ const pattern = state.patterns[i];
240
+ if (!pattern.key || typeof pattern.key !== 'string') {
241
+ errors.push(`Pattern ${i} has invalid key`);
242
+ }
243
+ if (!(pattern.vector instanceof Uint8Array)) {
244
+ errors.push(`Pattern ${i} vector is not Uint8Array`);
245
+ }
246
+ else if (pattern.vector.length !== expectedBytes) {
247
+ errors.push(`Pattern ${i} vector has wrong size`);
248
+ }
249
+ }
250
+ return {
251
+ valid: errors.length === 0,
252
+ errors,
253
+ };
254
+ }
255
+ /**
256
+ * Alias for calculateStateSize (for naming consistency)
257
+ */
258
+ exports.calculateHdcStateSize = calculateStateSize;
259
+ //# sourceMappingURL=HdcSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HdcSerializer.js","sourceRoot":"","sources":["../../../src/nervous-system/persistence/HdcSerializer.ts"],"names":[],"mappings":"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"}