agentic-qe 3.6.19 → 3.7.0

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 (118) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/README.md +29 -1
  3. package/package.json +2 -1
  4. package/scripts/rvf-baseline-benchmark.ts +843 -0
  5. package/v3/CHANGELOG.md +30 -0
  6. package/v3/dist/audit/witness-chain.d.ts +148 -0
  7. package/v3/dist/audit/witness-chain.d.ts.map +1 -0
  8. package/v3/dist/audit/witness-chain.js +269 -0
  9. package/v3/dist/audit/witness-chain.js.map +1 -0
  10. package/v3/dist/cli/brain-commands.d.ts +39 -0
  11. package/v3/dist/cli/brain-commands.d.ts.map +1 -0
  12. package/v3/dist/cli/brain-commands.js +60 -0
  13. package/v3/dist/cli/brain-commands.js.map +1 -0
  14. package/v3/dist/cli/bundle.js +4509 -2452
  15. package/v3/dist/cli/command-registry.d.ts.map +1 -1
  16. package/v3/dist/cli/command-registry.js +3 -1
  17. package/v3/dist/cli/command-registry.js.map +1 -1
  18. package/v3/dist/cli/handlers/brain-handler.d.ts +22 -0
  19. package/v3/dist/cli/handlers/brain-handler.d.ts.map +1 -0
  20. package/v3/dist/cli/handlers/brain-handler.js +148 -0
  21. package/v3/dist/cli/handlers/brain-handler.js.map +1 -0
  22. package/v3/dist/cli/handlers/index.d.ts +1 -0
  23. package/v3/dist/cli/handlers/index.d.ts.map +1 -1
  24. package/v3/dist/cli/handlers/index.js +1 -0
  25. package/v3/dist/cli/handlers/index.js.map +1 -1
  26. package/v3/dist/domains/coverage-analysis/services/hnsw-index.d.ts +31 -44
  27. package/v3/dist/domains/coverage-analysis/services/hnsw-index.d.ts.map +1 -1
  28. package/v3/dist/domains/coverage-analysis/services/hnsw-index.js +73 -178
  29. package/v3/dist/domains/coverage-analysis/services/hnsw-index.js.map +1 -1
  30. package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
  31. package/v3/dist/domains/quality-assessment/coordinator.js +8 -0
  32. package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
  33. package/v3/dist/domains/test-execution/coordinator.d.ts +14 -0
  34. package/v3/dist/domains/test-execution/coordinator.d.ts.map +1 -1
  35. package/v3/dist/domains/test-execution/coordinator.js +18 -0
  36. package/v3/dist/domains/test-execution/coordinator.js.map +1 -1
  37. package/v3/dist/domains/test-execution/services/index.d.ts +1 -0
  38. package/v3/dist/domains/test-execution/services/index.d.ts.map +1 -1
  39. package/v3/dist/domains/test-execution/services/index.js +1 -0
  40. package/v3/dist/domains/test-execution/services/index.js.map +1 -1
  41. package/v3/dist/domains/test-execution/services/mincut-test-optimizer.d.ts +118 -0
  42. package/v3/dist/domains/test-execution/services/mincut-test-optimizer.d.ts.map +1 -0
  43. package/v3/dist/domains/test-execution/services/mincut-test-optimizer.js +358 -0
  44. package/v3/dist/domains/test-execution/services/mincut-test-optimizer.js.map +1 -0
  45. package/v3/dist/integrations/ruvector/brain-exporter.d.ts +66 -0
  46. package/v3/dist/integrations/ruvector/brain-exporter.d.ts.map +1 -0
  47. package/v3/dist/integrations/ruvector/brain-exporter.js +537 -0
  48. package/v3/dist/integrations/ruvector/brain-exporter.js.map +1 -0
  49. package/v3/dist/integrations/ruvector/index.d.ts +4 -0
  50. package/v3/dist/integrations/ruvector/index.d.ts.map +1 -1
  51. package/v3/dist/integrations/ruvector/index.js +5 -0
  52. package/v3/dist/integrations/ruvector/index.js.map +1 -1
  53. package/v3/dist/integrations/ruvector/mincut-wrapper.d.ts +204 -0
  54. package/v3/dist/integrations/ruvector/mincut-wrapper.d.ts.map +1 -0
  55. package/v3/dist/integrations/ruvector/mincut-wrapper.js +310 -0
  56. package/v3/dist/integrations/ruvector/mincut-wrapper.js.map +1 -0
  57. package/v3/dist/integrations/ruvector/rvf-dual-writer.d.ts +141 -0
  58. package/v3/dist/integrations/ruvector/rvf-dual-writer.d.ts.map +1 -0
  59. package/v3/dist/integrations/ruvector/rvf-dual-writer.js +367 -0
  60. package/v3/dist/integrations/ruvector/rvf-dual-writer.js.map +1 -0
  61. package/v3/dist/integrations/ruvector/rvf-native-adapter.d.ts +60 -0
  62. package/v3/dist/integrations/ruvector/rvf-native-adapter.d.ts.map +1 -0
  63. package/v3/dist/integrations/ruvector/rvf-native-adapter.js +240 -0
  64. package/v3/dist/integrations/ruvector/rvf-native-adapter.js.map +1 -0
  65. package/v3/dist/kernel/hnsw-adapter.d.ts +99 -0
  66. package/v3/dist/kernel/hnsw-adapter.d.ts.map +1 -0
  67. package/v3/dist/kernel/hnsw-adapter.js +218 -0
  68. package/v3/dist/kernel/hnsw-adapter.js.map +1 -0
  69. package/v3/dist/kernel/hnsw-index-provider.d.ts +90 -0
  70. package/v3/dist/kernel/hnsw-index-provider.d.ts.map +1 -0
  71. package/v3/dist/kernel/hnsw-index-provider.js +23 -0
  72. package/v3/dist/kernel/hnsw-index-provider.js.map +1 -0
  73. package/v3/dist/kernel/progressive-hnsw-backend.d.ts +67 -0
  74. package/v3/dist/kernel/progressive-hnsw-backend.d.ts.map +1 -0
  75. package/v3/dist/kernel/progressive-hnsw-backend.js +266 -0
  76. package/v3/dist/kernel/progressive-hnsw-backend.js.map +1 -0
  77. package/v3/dist/kernel/unified-memory-hnsw.d.ts +71 -0
  78. package/v3/dist/kernel/unified-memory-hnsw.d.ts.map +1 -1
  79. package/v3/dist/kernel/unified-memory-hnsw.js +87 -0
  80. package/v3/dist/kernel/unified-memory-hnsw.js.map +1 -1
  81. package/v3/dist/kernel/unified-memory-schemas.d.ts +1 -0
  82. package/v3/dist/kernel/unified-memory-schemas.d.ts.map +1 -1
  83. package/v3/dist/kernel/unified-memory-schemas.js +16 -0
  84. package/v3/dist/kernel/unified-memory-schemas.js.map +1 -1
  85. package/v3/dist/learning/dream/dream-engine.d.ts +16 -0
  86. package/v3/dist/learning/dream/dream-engine.d.ts.map +1 -1
  87. package/v3/dist/learning/dream/dream-engine.js +70 -0
  88. package/v3/dist/learning/dream/dream-engine.js.map +1 -1
  89. package/v3/dist/learning/dream/index.d.ts +2 -0
  90. package/v3/dist/learning/dream/index.d.ts.map +1 -1
  91. package/v3/dist/learning/dream/index.js +8 -0
  92. package/v3/dist/learning/dream/index.js.map +1 -1
  93. package/v3/dist/learning/dream/rvcow-branch-manager.d.ts +170 -0
  94. package/v3/dist/learning/dream/rvcow-branch-manager.d.ts.map +1 -0
  95. package/v3/dist/learning/dream/rvcow-branch-manager.js +263 -0
  96. package/v3/dist/learning/dream/rvcow-branch-manager.js.map +1 -0
  97. package/v3/dist/learning/dream/speculative-dreamer.d.ts +129 -0
  98. package/v3/dist/learning/dream/speculative-dreamer.d.ts.map +1 -0
  99. package/v3/dist/learning/dream/speculative-dreamer.js +214 -0
  100. package/v3/dist/learning/dream/speculative-dreamer.js.map +1 -0
  101. package/v3/dist/learning/qe-reasoning-bank.d.ts +9 -0
  102. package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
  103. package/v3/dist/learning/qe-reasoning-bank.js +50 -1
  104. package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
  105. package/v3/dist/mcp/bundle.js +8900 -7163
  106. package/v3/dist/mcp/services/mincut-routing-service.d.ts +148 -0
  107. package/v3/dist/mcp/services/mincut-routing-service.d.ts.map +1 -0
  108. package/v3/dist/mcp/services/mincut-routing-service.js +198 -0
  109. package/v3/dist/mcp/services/mincut-routing-service.js.map +1 -0
  110. package/v3/dist/mcp/services/task-router.d.ts +4 -0
  111. package/v3/dist/mcp/services/task-router.d.ts.map +1 -1
  112. package/v3/dist/mcp/services/task-router.js +57 -15
  113. package/v3/dist/mcp/services/task-router.js.map +1 -1
  114. package/v3/dist/monitoring/structural-health.d.ts +142 -0
  115. package/v3/dist/monitoring/structural-health.d.ts.map +1 -0
  116. package/v3/dist/monitoring/structural-health.js +201 -0
  117. package/v3/dist/monitoring/structural-health.js.map +1 -0
  118. package/v3/package.json +1 -1
@@ -0,0 +1,358 @@
1
+ /**
2
+ * MinCut-Based Test Suite Optimization
3
+ * Task 2.3: RVF Integration Plan
4
+ *
5
+ * Uses mincut analysis to identify the minimum set of tests that provide
6
+ * maximum coverage assurance. Models the test suite as a bipartite graph
7
+ * (tests and source files as vertices, coverage as edges) and computes
8
+ * the minimum cut to find the critical test boundary.
9
+ *
10
+ * Algorithm:
11
+ * 1. Build bipartite graph: test nodes <-> source file nodes
12
+ * 2. Edge capacity = 1 / (number of tests covering that file) — rarer coverage is more valuable
13
+ * 3. Compute mincut via MinCutCalculator (weighted-degree heuristic)
14
+ * 4. Tests on the source side of the cut are critical
15
+ * 5. Remaining tests are skippable (their coverage is redundant)
16
+ * 6. Execution order: critical tests first, sorted by coverage breadth
17
+ *
18
+ * @module domains/test-execution/services/mincut-test-optimizer
19
+ */
20
+ import { MinCutCalculator } from '../../../coordination/mincut/mincut-calculator.js';
21
+ import { SwarmGraph } from '../../../coordination/mincut/swarm-graph.js';
22
+ // ============================================================================
23
+ // Implementation
24
+ // ============================================================================
25
+ /**
26
+ * Default implementation of MinCutTestOptimizer.
27
+ *
28
+ * Builds a bipartite graph from test nodes and their covered source files,
29
+ * then uses mincut analysis to partition tests into critical vs skippable.
30
+ */
31
+ export class MinCutTestOptimizerImpl {
32
+ calculator;
33
+ constructor(calculator) {
34
+ this.calculator = calculator ?? new MinCutCalculator();
35
+ }
36
+ /**
37
+ * Optimize a test suite using mincut analysis.
38
+ *
39
+ * @param tests - The test nodes to analyze
40
+ * @param coverageThreshold - Minimum fraction of files that must remain covered (0-1, default 1.0)
41
+ * @returns Optimization result with critical/skippable partitioning
42
+ */
43
+ optimize(tests, coverageThreshold = 1.0) {
44
+ // Edge case: empty test suite
45
+ if (tests.length === 0) {
46
+ return this.emptyResult();
47
+ }
48
+ // Edge case: single test is always critical
49
+ if (tests.length === 1) {
50
+ return this.singleTestResult(tests[0]);
51
+ }
52
+ // Build the bipartite coverage graph
53
+ const { graph, testIds, fileIds, edgeCount } = this.buildCoverageGraph(tests);
54
+ // Compute mincut
55
+ const mincutResult = this.calculator.approxMinCut(graph);
56
+ const stats = graph.getStats();
57
+ // Classify tests based on mincut partitioning
58
+ const sourceSideSet = new Set(mincutResult.sourceSide);
59
+ // Identify which tests are on the source side (critical boundary)
60
+ // and which are on the target side (potentially skippable)
61
+ const criticalFromCut = new Set();
62
+ const skippableFromCut = new Set();
63
+ for (const testId of testIds) {
64
+ if (sourceSideSet.has(testId)) {
65
+ criticalFromCut.add(testId);
66
+ }
67
+ else {
68
+ skippableFromCut.add(testId);
69
+ }
70
+ }
71
+ // Build file-to-tests coverage map for redundancy analysis
72
+ const fileCoverage = this.buildFileCoverageMap(tests);
73
+ const allCoveredFiles = new Set(fileCoverage.keys());
74
+ // Ensure tests with unique coverage are always critical
75
+ // A test is uniquely critical if it covers a file no other test covers
76
+ const uniquelyCritical = this.findUniquelyCriticalTests(tests, fileCoverage);
77
+ for (const testId of uniquelyCritical) {
78
+ criticalFromCut.add(testId);
79
+ skippableFromCut.delete(testId);
80
+ }
81
+ // Verify coverage threshold: ensure skipping tests doesn't drop coverage below threshold
82
+ const criticalTests = new Set(criticalFromCut);
83
+ const skippableTests = new Set(skippableFromCut);
84
+ if (coverageThreshold < 1.0) {
85
+ // Allow dropping some coverage
86
+ const requiredFileCount = Math.ceil(allCoveredFiles.size * coverageThreshold);
87
+ const criticalCoveredFiles = this.computeCoveredFiles(tests, criticalTests);
88
+ if (criticalCoveredFiles.size < requiredFileCount) {
89
+ // Promote skippable tests to critical until threshold is met
90
+ this.promoteToCritical(tests, criticalTests, skippableTests, requiredFileCount);
91
+ }
92
+ }
93
+ else {
94
+ // Full coverage required: promote any test whose removal would lose a file
95
+ this.ensureFullCoverage(tests, criticalTests, skippableTests, fileCoverage);
96
+ }
97
+ // Build execution order: critical first (sorted by coverage breadth desc), then skippable
98
+ const executionOrder = this.buildExecutionOrder(tests, criticalTests, skippableTests);
99
+ // Calculate time savings
100
+ const testMap = new Map(tests.map(t => [t.testId, t]));
101
+ const estimatedTimeSavingsMs = Array.from(skippableTests)
102
+ .reduce((sum, id) => sum + (testMap.get(id)?.estimatedDurationMs ?? 0), 0);
103
+ return {
104
+ criticalTests: Array.from(criticalTests),
105
+ skippableTests: Array.from(skippableTests),
106
+ executionOrder,
107
+ estimatedTimeSavingsMs,
108
+ graphStats: {
109
+ testCount: tests.length,
110
+ coverageEdges: edgeCount,
111
+ mincutValue: mincutResult.value,
112
+ connectedComponents: stats.componentCount,
113
+ },
114
+ };
115
+ }
116
+ // ==========================================================================
117
+ // Graph Construction
118
+ // ==========================================================================
119
+ /**
120
+ * Build a bipartite graph from test nodes and their covered files.
121
+ *
122
+ * Test nodes and file nodes are vertices. Edges connect tests to the
123
+ * files they cover, weighted inversely by the number of tests covering
124
+ * that file (rarer coverage = higher weight = more valuable).
125
+ */
126
+ buildCoverageGraph(tests) {
127
+ const graph = new SwarmGraph();
128
+ const testIds = [];
129
+ const fileIdSet = new Set();
130
+ // Count how many tests cover each file (for weight calculation)
131
+ const fileCoverCount = new Map();
132
+ for (const test of tests) {
133
+ for (const file of test.coveredFiles) {
134
+ fileCoverCount.set(file, (fileCoverCount.get(file) ?? 0) + 1);
135
+ }
136
+ }
137
+ // Add test vertices
138
+ for (const test of tests) {
139
+ const vertex = {
140
+ id: test.testId,
141
+ type: 'agent',
142
+ weight: test.coveredFiles.length,
143
+ createdAt: new Date(),
144
+ metadata: { nodeType: 'test', testFile: test.testFile },
145
+ };
146
+ graph.addVertex(vertex);
147
+ testIds.push(test.testId);
148
+ }
149
+ // Add file vertices
150
+ for (const [file] of fileCoverCount) {
151
+ const fileId = `file:${file}`;
152
+ const vertex = {
153
+ id: fileId,
154
+ type: 'domain',
155
+ weight: 1.0,
156
+ createdAt: new Date(),
157
+ metadata: { nodeType: 'file', filePath: file },
158
+ };
159
+ graph.addVertex(vertex);
160
+ fileIdSet.add(fileId);
161
+ }
162
+ // Add edges from tests to files
163
+ let edgeCount = 0;
164
+ for (const test of tests) {
165
+ for (const file of test.coveredFiles) {
166
+ const fileId = `file:${file}`;
167
+ const coverCount = fileCoverCount.get(file) ?? 1;
168
+ // Weight: rarer coverage is more valuable
169
+ const weight = 1.0 / coverCount;
170
+ const edge = {
171
+ source: test.testId,
172
+ target: fileId,
173
+ weight,
174
+ type: 'coordination',
175
+ bidirectional: true,
176
+ };
177
+ graph.addEdge(edge);
178
+ edgeCount++;
179
+ }
180
+ }
181
+ return {
182
+ graph,
183
+ testIds,
184
+ fileIds: Array.from(fileIdSet),
185
+ edgeCount,
186
+ };
187
+ }
188
+ // ==========================================================================
189
+ // Coverage Analysis
190
+ // ==========================================================================
191
+ /**
192
+ * Build a map from source file -> set of test IDs that cover it.
193
+ */
194
+ buildFileCoverageMap(tests) {
195
+ const map = new Map();
196
+ for (const test of tests) {
197
+ for (const file of test.coveredFiles) {
198
+ let testSet = map.get(file);
199
+ if (!testSet) {
200
+ testSet = new Set();
201
+ map.set(file, testSet);
202
+ }
203
+ testSet.add(test.testId);
204
+ }
205
+ }
206
+ return map;
207
+ }
208
+ /**
209
+ * Find tests that are the sole provider of coverage for at least one file.
210
+ * These tests are always critical regardless of mincut partitioning.
211
+ */
212
+ findUniquelyCriticalTests(tests, fileCoverage) {
213
+ const uniquelyCritical = new Set();
214
+ for (const [, testSet] of fileCoverage) {
215
+ if (testSet.size === 1) {
216
+ // Only one test covers this file; it is uniquely critical
217
+ const [testId] = testSet;
218
+ uniquelyCritical.add(testId);
219
+ }
220
+ }
221
+ return uniquelyCritical;
222
+ }
223
+ /**
224
+ * Compute the set of files covered by a given set of test IDs.
225
+ */
226
+ computeCoveredFiles(tests, testIds) {
227
+ const covered = new Set();
228
+ for (const test of tests) {
229
+ if (testIds.has(test.testId)) {
230
+ for (const file of test.coveredFiles) {
231
+ covered.add(file);
232
+ }
233
+ }
234
+ }
235
+ return covered;
236
+ }
237
+ /**
238
+ * Promote skippable tests to critical until the required file count is met.
239
+ * Greedy: pick the skippable test that adds the most new coverage each step.
240
+ */
241
+ promoteToCritical(tests, criticalTests, skippableTests, requiredFileCount) {
242
+ const covered = this.computeCoveredFiles(tests, criticalTests);
243
+ const testMap = new Map(tests.map(t => [t.testId, t]));
244
+ const remaining = Array.from(skippableTests);
245
+ while (covered.size < requiredFileCount && remaining.length > 0) {
246
+ // Find the skippable test that adds the most new files
247
+ let bestIdx = -1;
248
+ let bestNewCount = 0;
249
+ for (let i = 0; i < remaining.length; i++) {
250
+ const test = testMap.get(remaining[i]);
251
+ if (!test)
252
+ continue;
253
+ const newCount = test.coveredFiles.filter(f => !covered.has(f)).length;
254
+ if (newCount > bestNewCount) {
255
+ bestNewCount = newCount;
256
+ bestIdx = i;
257
+ }
258
+ }
259
+ if (bestIdx === -1 || bestNewCount === 0)
260
+ break;
261
+ const promotedId = remaining[bestIdx];
262
+ remaining.splice(bestIdx, 1);
263
+ criticalTests.add(promotedId);
264
+ skippableTests.delete(promotedId);
265
+ const promotedTest = testMap.get(promotedId);
266
+ for (const file of promotedTest.coveredFiles) {
267
+ covered.add(file);
268
+ }
269
+ }
270
+ }
271
+ /**
272
+ * Ensure that skipping the skippable tests does not lose any file coverage.
273
+ * Promote tests from skippable to critical as needed.
274
+ */
275
+ ensureFullCoverage(tests, criticalTests, skippableTests, fileCoverage) {
276
+ // For each file, check that at least one critical test covers it
277
+ const criticalCovered = this.computeCoveredFiles(tests, criticalTests);
278
+ for (const [file, testSet] of fileCoverage) {
279
+ if (!criticalCovered.has(file)) {
280
+ // No critical test covers this file; promote one
281
+ for (const testId of testSet) {
282
+ if (skippableTests.has(testId)) {
283
+ criticalTests.add(testId);
284
+ skippableTests.delete(testId);
285
+ // Update covered files
286
+ const test = tests.find(t => t.testId === testId);
287
+ if (test) {
288
+ for (const f of test.coveredFiles) {
289
+ criticalCovered.add(f);
290
+ }
291
+ }
292
+ break;
293
+ }
294
+ }
295
+ }
296
+ }
297
+ }
298
+ // ==========================================================================
299
+ // Execution Order
300
+ // ==========================================================================
301
+ /**
302
+ * Build optimal execution order:
303
+ * 1. Critical tests first, sorted by coverage breadth (most files first)
304
+ * 2. Skippable tests after, sorted by coverage breadth
305
+ */
306
+ buildExecutionOrder(tests, criticalTests, skippableTests) {
307
+ const testMap = new Map(tests.map(t => [t.testId, t]));
308
+ const byCoverage = (a, b) => {
309
+ const aCount = testMap.get(a)?.coveredFiles.length ?? 0;
310
+ const bCount = testMap.get(b)?.coveredFiles.length ?? 0;
311
+ return bCount - aCount; // descending
312
+ };
313
+ const critical = Array.from(criticalTests).sort(byCoverage);
314
+ const skippable = Array.from(skippableTests).sort(byCoverage);
315
+ return [...critical, ...skippable];
316
+ }
317
+ // ==========================================================================
318
+ // Edge Case Results
319
+ // ==========================================================================
320
+ emptyResult() {
321
+ return {
322
+ criticalTests: [],
323
+ skippableTests: [],
324
+ executionOrder: [],
325
+ estimatedTimeSavingsMs: 0,
326
+ graphStats: {
327
+ testCount: 0,
328
+ coverageEdges: 0,
329
+ mincutValue: 0,
330
+ connectedComponents: 0,
331
+ },
332
+ };
333
+ }
334
+ singleTestResult(test) {
335
+ return {
336
+ criticalTests: [test.testId],
337
+ skippableTests: [],
338
+ executionOrder: [test.testId],
339
+ estimatedTimeSavingsMs: 0,
340
+ graphStats: {
341
+ testCount: 1,
342
+ coverageEdges: test.coveredFiles.length,
343
+ mincutValue: 0,
344
+ connectedComponents: test.coveredFiles.length > 0 ? 1 : 1,
345
+ },
346
+ };
347
+ }
348
+ }
349
+ // ============================================================================
350
+ // Factory
351
+ // ============================================================================
352
+ /**
353
+ * Create a new MinCutTestOptimizer instance.
354
+ */
355
+ export function createMinCutTestOptimizer(calculator) {
356
+ return new MinCutTestOptimizerImpl(calculator);
357
+ }
358
+ //# sourceMappingURL=mincut-test-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincut-test-optimizer.js","sourceRoot":"","sources":["../../../../src/domains/test-execution/services/mincut-test-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AA8CzE,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IACjB,UAAU,CAAmB;IAE9C,YAAY,UAA6B;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,gBAAgB,EAAE,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,KAA0B,EAAE,oBAA4B,GAAG;QAClE,8BAA8B;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,qCAAqC;QACrC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE9E,iBAAiB;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE/B,8CAA8C;QAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEvD,kEAAkE;QAClE,2DAA2D;QAC3D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAErD,wDAAwD;QACxD,uEAAuE;QACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7E,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,yFAAyF;QACzF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEjD,IAAI,iBAAiB,GAAG,GAAG,EAAE,CAAC;YAC5B,+BAA+B;YAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;YAC9E,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAE5E,IAAI,oBAAoB,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC;gBAClD,6DAA6D;gBAC7D,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAC9E,CAAC;QAED,0FAA0F;QAC1F,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QAEtF,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;aACtD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7E,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;YACxC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;YAC1C,cAAc;YACd,sBAAsB;YACtB,UAAU,EAAE;gBACV,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,YAAY,CAAC,KAAK;gBAC/B,mBAAmB,EAAE,KAAK,CAAC,cAAc;aAC1C;SACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,qBAAqB;IACrB,6EAA6E;IAE7E;;;;;;OAMG;IACK,kBAAkB,CAAC,KAA0B;QAMnD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,gEAAgE;QAChE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAgB;gBAC1B,EAAE,EAAE,IAAI,CAAC,MAAM;gBACf,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;gBAChC,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;aACxD,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,QAAQ,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAgB;gBAC1B,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC/C,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,gCAAgC;QAChC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,QAAQ,IAAI,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,0CAA0C;gBAC1C,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC;gBAEhC,MAAM,IAAI,GAAc;oBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,MAAM;oBACd,MAAM;oBACN,IAAI,EAAE,cAAc;oBACpB,aAAa,EAAE,IAAI;iBACpB,CAAC;gBACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpB,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK;YACL,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,SAAS;SACV,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,oBAAoB;IACpB,6EAA6E;IAE7E;;OAEG;IACK,oBAAoB,CAAC,KAA0B;QACrD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAC/B,KAA0B,EAC1B,YAAsC;QAEtC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,0DAA0D;gBAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;gBACzB,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,KAA0B,EAC1B,OAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CACvB,KAA0B,EAC1B,aAA0B,EAC1B,cAA2B,EAC3B,iBAAyB;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE7C,OAAO,OAAO,CAAC,IAAI,GAAG,iBAAiB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,uDAAuD;YACvD,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;YACjB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvE,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;oBAC5B,YAAY,GAAG,QAAQ,CAAC;oBACxB,OAAO,GAAG,CAAC,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC;gBAAE,MAAM;YAEhD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACtC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB,CACxB,KAA0B,EAC1B,aAA0B,EAC1B,cAA2B,EAC3B,YAAsC;QAEtC,iEAAiE;QACjE,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAEvE,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,iDAAiD;gBACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC1B,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC9B,uBAAuB;wBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;wBAClD,IAAI,IAAI,EAAE,CAAC;4BACT,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gCAClC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BACzB,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;OAIG;IACK,mBAAmB,CACzB,KAA0B,EAC1B,aAA0B,EAC1B,cAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;YAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YACxD,OAAO,MAAM,GAAG,MAAM,CAAC,CAAC,aAAa;QACvC,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,6EAA6E;IAC7E,oBAAoB;IACpB,6EAA6E;IAErE,WAAW;QACjB,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,EAAE;YAClB,sBAAsB,EAAE,CAAC;YACzB,UAAU,EAAE;gBACV,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,mBAAmB,EAAE,CAAC;aACvB;SACF,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,IAAc;QACrC,OAAO;YACL,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5B,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,sBAAsB,EAAE,CAAC;YACzB,UAAU,EAAE;gBACV,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;gBACvC,WAAW,EAAE,CAAC;gBACd,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1D;SACF,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAA6B;IACrE,OAAO,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * QE Brain Export/Import System
3
+ *
4
+ * Exports learning state (patterns, Q-values, dream insights, witness chain)
5
+ * into a portable directory format that can be imported by another AQE instance.
6
+ *
7
+ * Export format (.aqe-brain directory):
8
+ * manifest.json — BrainExportManifest with checksum
9
+ * patterns.jsonl — One QE pattern per line
10
+ * q-values.jsonl — Q-learning state-action values
11
+ * dream-insights.jsonl — Dream cycle discoveries
12
+ * witness-chain.jsonl — Witness chain entries
13
+ *
14
+ * Safety: Export uses a READ-ONLY connection (WAL mode, no write lock).
15
+ * Import validates manifest checksum before merging.
16
+ */
17
+ import Database from 'better-sqlite3';
18
+ export interface BrainExportManifest {
19
+ readonly version: '1.0';
20
+ readonly exportedAt: string;
21
+ readonly sourceDb: string;
22
+ readonly stats: {
23
+ readonly patternCount: number;
24
+ readonly vectorCount: number;
25
+ readonly qValueCount: number;
26
+ readonly dreamInsightCount: number;
27
+ readonly witnessChainLength: number;
28
+ };
29
+ readonly domains: readonly string[];
30
+ readonly checksum: string;
31
+ }
32
+ export interface BrainExportOptions {
33
+ readonly domains?: readonly string[];
34
+ readonly includeVectors?: boolean;
35
+ readonly includeQValues?: boolean;
36
+ readonly includeDreamInsights?: boolean;
37
+ readonly includeWitnessChain?: boolean;
38
+ readonly outputPath: string;
39
+ }
40
+ export interface BrainImportOptions {
41
+ readonly mergeStrategy: 'latest-wins' | 'highest-confidence' | 'union' | 'skip-conflicts';
42
+ readonly dryRun?: boolean;
43
+ }
44
+ export interface BrainImportResult {
45
+ readonly imported: number;
46
+ readonly skipped: number;
47
+ readonly conflicts: number;
48
+ }
49
+ /**
50
+ * Export the QE brain state from a SQLite database into a portable directory.
51
+ *
52
+ * Uses a read-only connection to avoid acquiring write locks.
53
+ */
54
+ export declare function exportBrain(db: Database.Database, options: BrainExportOptions, sourceDbLabel?: string): BrainExportManifest;
55
+ /**
56
+ * Import a brain export directory into a target SQLite database.
57
+ *
58
+ * Validates the manifest checksum before proceeding. Applies the chosen
59
+ * merge strategy to resolve conflicts on existing IDs.
60
+ */
61
+ export declare function importBrain(db: Database.Database, containerPath: string, options: BrainImportOptions): BrainImportResult;
62
+ /**
63
+ * Read and return the manifest from a brain export directory.
64
+ */
65
+ export declare function brainInfo(containerPath: string): BrainExportManifest;
66
+ //# sourceMappingURL=brain-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-exporter.d.ts","sourceRoot":"","sources":["../../../src/integrations/ruvector/brain-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAMtC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,oBAAoB,GAAG,OAAO,GAAG,gBAAgB,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AA8ED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,kBAAkB,EAC3B,aAAa,SAAc,GAC1B,mBAAmB,CA8ErB;AAyED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CA6EnB;AAmYD;;GAEG;AACH,wBAAgB,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,CAOpE"}