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 @@
1
+ {"version":3,"file":"wasm-loader.d.ts","sourceRoot":"","sources":["../../src/nervous-system/wasm-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,eAAe,EACf,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAqDvC;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAKlE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAkBD"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ /**
3
+ * WASM Loader for RuVector Nervous System
4
+ *
5
+ * Provides Node.js-compatible WASM initialization for the nervous system module.
6
+ * The default WASM loader uses fetch() which isn't available in Node.js,
7
+ * so we load the .wasm file directly from the filesystem.
8
+ *
9
+ * @module nervous-system/wasm-loader
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.biological_references = exports.performance_targets = exports.available_mechanisms = exports.version = exports.WorkspaceItem = exports.GlobalWorkspace = exports.KWTALayer = exports.WTALayer = exports.HdcMemory = exports.Hypervector = exports.BTSPSynapse = exports.BTSPAssociativeMemory = exports.BTSPLayer = void 0;
49
+ exports.initNervousSystem = initNervousSystem;
50
+ exports.isWasmInitialized = isWasmInitialized;
51
+ exports.ensureInitialized = ensureInitialized;
52
+ exports.getWasmInfo = getWasmInfo;
53
+ const node_fs_1 = require("node:fs");
54
+ const node_path_1 = require("node:path");
55
+ // Re-export all WASM types and functions
56
+ var nervous_system_wasm_1 = require("@ruvector/nervous-system-wasm");
57
+ Object.defineProperty(exports, "BTSPLayer", { enumerable: true, get: function () { return nervous_system_wasm_1.BTSPLayer; } });
58
+ Object.defineProperty(exports, "BTSPAssociativeMemory", { enumerable: true, get: function () { return nervous_system_wasm_1.BTSPAssociativeMemory; } });
59
+ Object.defineProperty(exports, "BTSPSynapse", { enumerable: true, get: function () { return nervous_system_wasm_1.BTSPSynapse; } });
60
+ Object.defineProperty(exports, "Hypervector", { enumerable: true, get: function () { return nervous_system_wasm_1.Hypervector; } });
61
+ Object.defineProperty(exports, "HdcMemory", { enumerable: true, get: function () { return nervous_system_wasm_1.HdcMemory; } });
62
+ Object.defineProperty(exports, "WTALayer", { enumerable: true, get: function () { return nervous_system_wasm_1.WTALayer; } });
63
+ Object.defineProperty(exports, "KWTALayer", { enumerable: true, get: function () { return nervous_system_wasm_1.KWTALayer; } });
64
+ Object.defineProperty(exports, "GlobalWorkspace", { enumerable: true, get: function () { return nervous_system_wasm_1.GlobalWorkspace; } });
65
+ Object.defineProperty(exports, "WorkspaceItem", { enumerable: true, get: function () { return nervous_system_wasm_1.WorkspaceItem; } });
66
+ Object.defineProperty(exports, "version", { enumerable: true, get: function () { return nervous_system_wasm_1.version; } });
67
+ Object.defineProperty(exports, "available_mechanisms", { enumerable: true, get: function () { return nervous_system_wasm_1.available_mechanisms; } });
68
+ Object.defineProperty(exports, "performance_targets", { enumerable: true, get: function () { return nervous_system_wasm_1.performance_targets; } });
69
+ Object.defineProperty(exports, "biological_references", { enumerable: true, get: function () { return nervous_system_wasm_1.biological_references; } });
70
+ const nervous_system_wasm_2 = __importDefault(require("@ruvector/nervous-system-wasm"));
71
+ /**
72
+ * Tracks whether WASM has been initialized
73
+ */
74
+ let wasmInitialized = false;
75
+ /**
76
+ * Promise for pending initialization
77
+ */
78
+ let initPromise = null;
79
+ /**
80
+ * Find the WASM file path in node_modules
81
+ *
82
+ * Supports both ESM and CommonJS module systems by using multiple path resolution strategies.
83
+ */
84
+ function findWasmPath() {
85
+ const wasmFileName = 'ruvector_nervous_system_wasm_bg.wasm';
86
+ const packagePath = (0, node_path_1.join)('@ruvector', 'nervous-system-wasm', wasmFileName);
87
+ const possiblePaths = [];
88
+ // Try __dirname first (CommonJS)
89
+ if (typeof __dirname !== 'undefined') {
90
+ possiblePaths.push((0, node_path_1.join)(__dirname, '..', '..', 'node_modules', packagePath), (0, node_path_1.join)(__dirname, '..', 'node_modules', packagePath));
91
+ }
92
+ // Add common fallback paths
93
+ possiblePaths.push(
94
+ // From project root via cwd
95
+ (0, node_path_1.join)(process.cwd(), 'node_modules', packagePath),
96
+ // Absolute resolve
97
+ (0, node_path_1.resolve)('node_modules', packagePath));
98
+ for (const wasmPath of possiblePaths) {
99
+ if ((0, node_fs_1.existsSync)(wasmPath)) {
100
+ return wasmPath;
101
+ }
102
+ }
103
+ throw new Error('Could not find ruvector_nervous_system_wasm_bg.wasm. ' +
104
+ 'Ensure @ruvector/nervous-system-wasm is installed: npm install @ruvector/nervous-system-wasm');
105
+ }
106
+ /**
107
+ * Initialize the WASM module for Node.js
108
+ *
109
+ * This function is idempotent - calling it multiple times is safe.
110
+ * All subsequent calls will return immediately if already initialized,
111
+ * or wait for the pending initialization to complete.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * import { initNervousSystem, Hypervector } from './wasm-loader.js';
116
+ *
117
+ * await initNervousSystem();
118
+ * const v = Hypervector.random();
119
+ * ```
120
+ */
121
+ async function initNervousSystem() {
122
+ // Already initialized
123
+ if (wasmInitialized) {
124
+ return;
125
+ }
126
+ // Initialization in progress
127
+ if (initPromise) {
128
+ return initPromise;
129
+ }
130
+ // Start initialization
131
+ initPromise = (async () => {
132
+ try {
133
+ const wasmPath = findWasmPath();
134
+ const wasmBytes = (0, node_fs_1.readFileSync)(wasmPath);
135
+ await (0, nervous_system_wasm_2.default)(wasmBytes);
136
+ wasmInitialized = true;
137
+ }
138
+ catch (error) {
139
+ initPromise = null;
140
+ throw error;
141
+ }
142
+ })();
143
+ return initPromise;
144
+ }
145
+ /**
146
+ * Check if WASM is initialized
147
+ */
148
+ function isWasmInitialized() {
149
+ return wasmInitialized;
150
+ }
151
+ /**
152
+ * Ensure WASM is initialized before running a function
153
+ *
154
+ * Decorator pattern for automatic initialization.
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * const createVector = ensureInitialized(() => Hypervector.random());
159
+ * const v = await createVector(); // Auto-initializes if needed
160
+ * ```
161
+ */
162
+ function ensureInitialized(fn) {
163
+ return async () => {
164
+ await initNervousSystem();
165
+ return fn();
166
+ };
167
+ }
168
+ /**
169
+ * Get WASM module info
170
+ */
171
+ async function getWasmInfo() {
172
+ const { version, available_mechanisms, performance_targets } = await Promise.resolve().then(() => __importStar(require('@ruvector/nervous-system-wasm')));
173
+ if (!wasmInitialized) {
174
+ return {
175
+ version: 'not initialized',
176
+ mechanisms: [],
177
+ targets: [],
178
+ initialized: false,
179
+ };
180
+ }
181
+ return {
182
+ version: version(),
183
+ mechanisms: available_mechanisms(),
184
+ targets: performance_targets(),
185
+ initialized: true,
186
+ };
187
+ }
188
+ //# sourceMappingURL=wasm-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasm-loader.js","sourceRoot":"","sources":["../../src/nervous-system/wasm-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Hybrid Persistence Provider
3
+ *
4
+ * Local-first persistence with cloud sync capabilities.
5
+ * Uses SQLite for immediate local storage and syncs to Supabase in the background.
6
+ *
7
+ * Features:
8
+ * - Immediate local writes (low latency)
9
+ * - Background sync to cloud
10
+ * - Conflict resolution strategies
11
+ * - Offline support with sync on reconnect
12
+ * - Queue-based sync for reliability
13
+ *
14
+ * @module persistence/HybridPersistenceProvider
15
+ */
16
+ import { EventEmitter } from 'events';
17
+ import type { IPersistenceProvider, ProviderInfo, LearningExperience, ExperienceQuery, SharedExperienceQuery, StoredPattern, PatternQuery, NervousSystemComponent, PrivacyLevel, MemoryEntry, MemoryQuery, EventRecord, EventQuery, CodeChunk, CodeChunkQuery, CodeSearchResult, CodeLanguage } from './IPersistenceProvider.js';
18
+ import { type SupabaseConfig, type SyncConfig } from './SupabaseConfig.js';
19
+ /**
20
+ * Sync status
21
+ */
22
+ interface SyncStatus {
23
+ lastSyncTime: Date | null;
24
+ pendingUploads: number;
25
+ pendingDownloads: number;
26
+ conflicts: number;
27
+ isOnline: boolean;
28
+ isSyncing: boolean;
29
+ }
30
+ /**
31
+ * Hybrid provider configuration
32
+ */
33
+ export interface HybridProviderConfig {
34
+ /** Local SQLite database path */
35
+ localDbPath: string;
36
+ /** Supabase configuration (optional - can be added later) */
37
+ supabaseConfig?: Partial<SupabaseConfig>;
38
+ /** Sync configuration */
39
+ syncConfig?: Partial<SyncConfig>;
40
+ /** Enable auto-sync on changes */
41
+ autoSync?: boolean;
42
+ /** Maximum queue size before forcing sync */
43
+ maxQueueSize?: number;
44
+ }
45
+ /**
46
+ * Hybrid persistence provider with local-first approach
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const provider = new HybridPersistenceProvider({
51
+ * localDbPath: './data/aqe.db',
52
+ * supabaseConfig: {
53
+ * connection: {
54
+ * url: 'https://xxx.supabase.co',
55
+ * anonKey: 'xxx',
56
+ * },
57
+ * },
58
+ * });
59
+ *
60
+ * await provider.initialize();
61
+ *
62
+ * // Writes go to local first, then sync to cloud
63
+ * await provider.storeExperience(experience);
64
+ *
65
+ * // Force sync
66
+ * const result = await provider.syncToCloud();
67
+ * console.log(`Synced ${result.uploaded} items`);
68
+ * ```
69
+ */
70
+ export declare class HybridPersistenceProvider extends EventEmitter implements IPersistenceProvider {
71
+ private localStore;
72
+ private cloudProvider;
73
+ private syncQueue;
74
+ private syncTimer;
75
+ private initialized;
76
+ private syncStatus;
77
+ private readonly config;
78
+ private readonly syncConfig;
79
+ constructor(config: HybridProviderConfig);
80
+ initialize(): Promise<void>;
81
+ shutdown(): Promise<void>;
82
+ storeExperience(experience: LearningExperience): Promise<void>;
83
+ queryExperiences(query: ExperienceQuery): Promise<LearningExperience[]>;
84
+ searchSimilarExperiences(embedding: number[], limit: number): Promise<LearningExperience[]>;
85
+ storePattern(pattern: StoredPattern): Promise<void>;
86
+ queryPatterns(query: PatternQuery): Promise<StoredPattern[]>;
87
+ searchSimilarPatterns(embedding: number[], limit: number): Promise<StoredPattern[]>;
88
+ saveNervousSystemState(agentId: string, component: NervousSystemComponent, state: Uint8Array | Record<string, unknown>): Promise<void>;
89
+ loadNervousSystemState(agentId: string, component: NervousSystemComponent): Promise<Uint8Array | Record<string, unknown> | null>;
90
+ deleteNervousSystemState(agentId: string): Promise<void>;
91
+ listAgentsWithState(): Promise<string[]>;
92
+ shareExperience(experienceId: string, privacyLevel: PrivacyLevel): Promise<void>;
93
+ importSharedExperiences(query: SharedExperienceQuery): Promise<LearningExperience[]>;
94
+ sharePattern(patternId: string, privacyLevel: PrivacyLevel): Promise<void>;
95
+ importSharedPatterns(query: PatternQuery & {
96
+ includePublic?: boolean;
97
+ }): Promise<StoredPattern[]>;
98
+ storeMemoryEntry(entry: MemoryEntry): Promise<void>;
99
+ storeMemoryEntries(entries: MemoryEntry[]): Promise<void>;
100
+ getMemoryEntry(key: string, partition?: string): Promise<MemoryEntry | null>;
101
+ queryMemoryEntries(query: MemoryQuery): Promise<MemoryEntry[]>;
102
+ deleteMemoryEntries(keyPattern: string, partition?: string): Promise<number>;
103
+ storeEvent(event: EventRecord): Promise<void>;
104
+ storeEvents(events: EventRecord[]): Promise<void>;
105
+ queryEvents(query: EventQuery): Promise<EventRecord[]>;
106
+ deleteOldEvents(olderThan: Date): Promise<number>;
107
+ storeCodeChunk(chunk: CodeChunk): Promise<void>;
108
+ storeCodeChunks(chunks: CodeChunk[]): Promise<void>;
109
+ queryCodeChunks(query: CodeChunkQuery): Promise<CodeChunk[]>;
110
+ searchSimilarCode(embedding: number[], options?: {
111
+ limit?: number;
112
+ minScore?: number;
113
+ projectId?: string;
114
+ language?: CodeLanguage;
115
+ }): Promise<CodeSearchResult[]>;
116
+ deleteCodeChunksForFile(projectId: string, filePath: string): Promise<number>;
117
+ deleteCodeChunksForProject(projectId: string): Promise<number>;
118
+ syncToCloud(): Promise<{
119
+ uploaded: number;
120
+ conflicts: number;
121
+ }>;
122
+ syncFromCloud(): Promise<{
123
+ downloaded: number;
124
+ conflicts: number;
125
+ }>;
126
+ getSyncStatus(): Promise<SyncStatus>;
127
+ getProviderInfo(): ProviderInfo;
128
+ private ensureInitialized;
129
+ private ensureCloudAvailable;
130
+ private queueSync;
131
+ private processSyncEntry;
132
+ private isConflictError;
133
+ private resolveConflict;
134
+ private startBackgroundSync;
135
+ private stopBackgroundSync;
136
+ /**
137
+ * Get current sync statistics
138
+ */
139
+ getSyncStats(): {
140
+ pendingOperations: number;
141
+ lastSyncTime: Date | null;
142
+ isOnline: boolean;
143
+ isSyncing: boolean;
144
+ conflicts: number;
145
+ };
146
+ /**
147
+ * Force immediate sync of all pending operations
148
+ */
149
+ forceSyncNow(): Promise<{
150
+ synced: number;
151
+ failed: number;
152
+ }>;
153
+ /**
154
+ * Clear all pending sync operations
155
+ */
156
+ clearSyncQueue(): void;
157
+ /**
158
+ * Set online status (for offline/online detection)
159
+ */
160
+ setOnlineStatus(isOnline: boolean): void;
161
+ /**
162
+ * Migrate all local data from memory.db to Supabase cloud
163
+ * This is a one-time migration for existing local data
164
+ */
165
+ migrateLocalToCloud(memoryDbPath: string, options?: {
166
+ batchSize?: number;
167
+ onProgress?: (msg: string) => void;
168
+ }): Promise<{
169
+ experiences: number;
170
+ memories: number;
171
+ patterns: number;
172
+ events: number;
173
+ failed: number;
174
+ }>;
175
+ private safeJsonParse;
176
+ private isValidUUID;
177
+ private safeParseDate;
178
+ }
179
+ /**
180
+ * Factory function to create a hybrid persistence provider
181
+ */
182
+ export declare function createHybridPersistenceProvider(config: HybridProviderConfig): HybridPersistenceProvider;
183
+ export {};
184
+ //# sourceMappingURL=HybridPersistenceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HybridPersistenceProvider.d.ts","sourceRoot":"","sources":["../../src/persistence/HybridPersistenceProvider.ts"],"names":[],"mappings":"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"}