@soulcraft/brainy 0.55.0 → 0.57.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 (128) hide show
  1. package/README.md +172 -730
  2. package/bin/brainy.js +592 -0
  3. package/dist/augmentations/cortexSense.d.ts +196 -0
  4. package/dist/augmentations/cortexSense.js +747 -0
  5. package/dist/augmentations/cortexSense.js.map +1 -0
  6. package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
  7. package/dist/augmentations/neuralImportSense.d.ts +196 -0
  8. package/dist/augmentations/neuralImportSense.js +747 -0
  9. package/dist/augmentations/neuralImportSense.js.map +1 -0
  10. package/dist/brainyData.d.ts.map +1 -1
  11. package/dist/brainyData.js +12 -0
  12. package/dist/brainyData.js.map +1 -1
  13. package/dist/chat/brainyChat.d.ts +42 -0
  14. package/dist/chat/brainyChat.js +340 -0
  15. package/dist/chat/brainyChat.js.map +1 -0
  16. package/dist/connectors/interfaces/IConnector.d.ts +143 -0
  17. package/dist/connectors/interfaces/IConnector.js +8 -0
  18. package/dist/connectors/interfaces/IConnector.js.map +1 -0
  19. package/dist/coreTypes.d.ts.map +1 -1
  20. package/dist/cortex/backupRestore.d.ts +85 -0
  21. package/dist/cortex/backupRestore.js +326 -0
  22. package/dist/cortex/backupRestore.js.map +1 -0
  23. package/dist/cortex/cortex.d.ts +249 -0
  24. package/dist/cortex/cortex.js +2304 -0
  25. package/dist/cortex/cortex.js.map +1 -0
  26. package/dist/cortex/healthCheck.d.ts +85 -0
  27. package/dist/cortex/healthCheck.js +546 -0
  28. package/dist/cortex/healthCheck.js.map +1 -0
  29. package/dist/cortex/licensingSystem.d.ts +126 -0
  30. package/dist/cortex/licensingSystem.js +474 -0
  31. package/dist/cortex/licensingSystem.js.map +1 -0
  32. package/dist/cortex/neuralImport.d.ts +145 -0
  33. package/dist/cortex/neuralImport.js +620 -0
  34. package/dist/cortex/neuralImport.js.map +1 -0
  35. package/dist/cortex/performanceMonitor.d.ts +150 -0
  36. package/dist/cortex/performanceMonitor.js +371 -0
  37. package/dist/cortex/performanceMonitor.js.map +1 -0
  38. package/dist/cortex/serviceIntegration.d.ts +156 -0
  39. package/dist/cortex/serviceIntegration.js +384 -0
  40. package/dist/cortex/serviceIntegration.js.map +1 -0
  41. package/dist/cortex/webhookManager.d.ts +39 -0
  42. package/dist/cortex/webhookManager.js +326 -0
  43. package/dist/cortex/webhookManager.js.map +1 -0
  44. package/dist/hnsw/hnswIndex.d.ts.map +1 -1
  45. package/dist/hnsw/hnswIndexOptimized.d.ts.map +1 -1
  46. package/dist/index.d.ts +4 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +5 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/patched-platform-node.d.ts +17 -0
  51. package/dist/patched-platform-node.d.ts.map +1 -0
  52. package/dist/shared/default-augmentations.d.ts +41 -0
  53. package/dist/shared/default-augmentations.js +112 -0
  54. package/dist/shared/default-augmentations.js.map +1 -0
  55. package/dist/storage/adapters/baseStorageAdapter.d.ts.map +1 -1
  56. package/dist/storage/adapters/fileSystemStorage.d.ts +14 -0
  57. package/dist/storage/adapters/fileSystemStorage.d.ts.map +1 -1
  58. package/dist/storage/adapters/fileSystemStorage.js +68 -0
  59. package/dist/storage/adapters/fileSystemStorage.js.map +1 -1
  60. package/dist/storage/adapters/memoryStorage.d.ts +13 -0
  61. package/dist/storage/adapters/memoryStorage.d.ts.map +1 -1
  62. package/dist/storage/adapters/memoryStorage.js +19 -0
  63. package/dist/storage/adapters/memoryStorage.js.map +1 -1
  64. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  65. package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +1 -1
  66. package/dist/storage/baseStorage.d.ts.map +1 -1
  67. package/dist/storage/storageFactory.d.ts.map +1 -1
  68. package/dist/testing/prettyReporter.d.ts +23 -0
  69. package/dist/testing/prettyReporter.d.ts.map +1 -0
  70. package/dist/testing/prettySummaryReporter.d.ts +22 -0
  71. package/dist/testing/prettySummaryReporter.d.ts.map +1 -0
  72. package/dist/types/augmentations.d.ts +48 -1
  73. package/dist/unified.min.js +12511 -0
  74. package/dist/unified.min.js.map +1 -0
  75. package/dist/utils/embedding.d.ts.map +1 -1
  76. package/dist/utils/embedding.js +1 -0
  77. package/dist/utils/embedding.js.map +1 -1
  78. package/dist/utils/index.d.ts.map +1 -1
  79. package/dist/utils/tensorflowUtils.d.ts +17 -0
  80. package/dist/utils/tensorflowUtils.d.ts.map +1 -0
  81. package/dist/webhooks/webhookSystem.d.ts +114 -0
  82. package/dist/webhooks/webhookSystem.js +321 -0
  83. package/dist/webhooks/webhookSystem.js.map +1 -0
  84. package/package.json +11 -1
  85. package/dist/browserFramework.d.ts.map +0 -1
  86. package/dist/cortex/cli.d.ts +0 -8
  87. package/dist/cortex/cli.js +0 -207
  88. package/dist/cortex/cli.js.map +0 -1
  89. package/dist/cortex/commands/index.d.ts +0 -79
  90. package/dist/cortex/commands/index.js +0 -614
  91. package/dist/cortex/commands/index.js.map +0 -1
  92. package/dist/cortex/config.d.ts +0 -112
  93. package/dist/cortex/config.js +0 -312
  94. package/dist/cortex/config.js.map +0 -1
  95. package/dist/demo.d.ts.map +0 -1
  96. package/dist/distributed/configManager.d.ts.map +0 -1
  97. package/dist/distributed/domainDetector.d.ts.map +0 -1
  98. package/dist/distributed/hashPartitioner.d.ts.map +0 -1
  99. package/dist/distributed/healthMonitor.d.ts.map +0 -1
  100. package/dist/distributed/index.d.ts.map +0 -1
  101. package/dist/distributed/operationalModes.d.ts.map +0 -1
  102. package/dist/hnsw/distributedSearch.d.ts.map +0 -1
  103. package/dist/hnsw/optimizedHNSWIndex.d.ts.map +0 -1
  104. package/dist/hnsw/partitionedHNSWIndex.d.ts.map +0 -1
  105. package/dist/hnsw/scaledHNSWSystem.d.ts.map +0 -1
  106. package/dist/storage/adapters/batchS3Operations.d.ts.map +0 -1
  107. package/dist/storage/adapters/optimizedS3Search.d.ts.map +0 -1
  108. package/dist/storage/cacheManager.d.ts.map +0 -1
  109. package/dist/storage/enhancedCacheManager.d.ts.map +0 -1
  110. package/dist/storage/readOnlyOptimizations.d.ts.map +0 -1
  111. package/dist/types/distributedTypes.d.ts.map +0 -1
  112. package/dist/types/paginationTypes.d.ts.map +0 -1
  113. package/dist/types/tensorflowTypes.js +0 -6
  114. package/dist/types/tensorflowTypes.js.map +0 -1
  115. package/dist/utils/autoConfiguration.d.ts.map +0 -1
  116. package/dist/utils/cacheAutoConfig.d.ts.map +0 -1
  117. package/dist/utils/crypto.d.ts.map +0 -1
  118. package/dist/utils/fieldNameTracking.d.ts.map +0 -1
  119. package/dist/utils/jsonProcessing.d.ts.map +0 -1
  120. package/dist/utils/logger.d.ts.map +0 -1
  121. package/dist/utils/robustModelLoader.d.ts +0 -112
  122. package/dist/utils/robustModelLoader.d.ts.map +0 -1
  123. package/dist/utils/robustModelLoader.js +0 -624
  124. package/dist/utils/robustModelLoader.js.map +0 -1
  125. package/dist/utils/searchCache.d.ts.map +0 -1
  126. package/dist/utils/statisticsCollector.d.ts.map +0 -1
  127. package/dist/utils/typeUtils.d.ts.map +0 -1
  128. package/dist/utils/version.d.ts.map +0 -1
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Brainy Chat - Talk to Your Data
3
+ *
4
+ * Simple, powerful conversational AI for your Brainy database.
5
+ * Works with zero configuration, optionally enhanced with LLM.
6
+ */
7
+ import { BrainyData } from '../brainyData.js';
8
+ export interface ChatOptions {
9
+ /** Optional LLM model name or provider:model format */
10
+ llm?: string;
11
+ /** Include source references in responses */
12
+ sources?: boolean;
13
+ /** API key for LLM provider (if needed) */
14
+ apiKey?: string;
15
+ }
16
+ export declare class BrainyChat {
17
+ private brainy;
18
+ private llmProvider?;
19
+ private options;
20
+ private history;
21
+ constructor(brainy: BrainyData, options?: ChatOptions);
22
+ /**
23
+ * Initialize LLM provider based on model string
24
+ */
25
+ private initializeLLM;
26
+ /**
27
+ * Ask a question - works with or without LLM
28
+ */
29
+ ask(question: string): Promise<string>;
30
+ /**
31
+ * Generate response using LLM
32
+ */
33
+ private generateWithLLM;
34
+ /**
35
+ * Generate response with smart templates (no LLM needed)
36
+ */
37
+ private generateWithTemplate;
38
+ /**
39
+ * Interactive chat mode (Node.js only)
40
+ */
41
+ chat(): Promise<void>;
42
+ }
@@ -0,0 +1,340 @@
1
+ /**
2
+ * Brainy Chat - Talk to Your Data
3
+ *
4
+ * Simple, powerful conversational AI for your Brainy database.
5
+ * Works with zero configuration, optionally enhanced with LLM.
6
+ */
7
+ export class BrainyChat {
8
+ constructor(brainy, options = {}) {
9
+ this.history = [];
10
+ this.brainy = brainy;
11
+ this.options = options;
12
+ // Load LLM if specified
13
+ if (options.llm) {
14
+ this.initializeLLM(options.llm, options.apiKey);
15
+ }
16
+ }
17
+ /**
18
+ * Initialize LLM provider based on model string
19
+ */
20
+ async initializeLLM(model, apiKey) {
21
+ // Parse provider from model string (e.g., "claude-3-5-sonnet", "gpt-4", "Xenova/LaMini")
22
+ if (model.startsWith('claude') || model.includes('anthropic')) {
23
+ this.llmProvider = new ClaudeLLMProvider(model, apiKey);
24
+ }
25
+ else if (model.startsWith('gpt') || model.includes('openai')) {
26
+ this.llmProvider = new OpenAILLMProvider(model, apiKey);
27
+ }
28
+ else if (model.includes('/')) {
29
+ // Hugging Face model format
30
+ this.llmProvider = new HuggingFaceLLMProvider(model);
31
+ }
32
+ else {
33
+ console.warn(`Unknown LLM model: ${model}, falling back to templates`);
34
+ }
35
+ }
36
+ /**
37
+ * Ask a question - works with or without LLM
38
+ */
39
+ async ask(question) {
40
+ // Find relevant context using vector search
41
+ const searchResults = await this.brainy.search(question, 10);
42
+ // Generate response
43
+ let answer;
44
+ if (this.llmProvider) {
45
+ answer = await this.generateWithLLM(question, searchResults);
46
+ }
47
+ else {
48
+ answer = this.generateWithTemplate(question, searchResults);
49
+ }
50
+ // Add sources if requested
51
+ if (this.options.sources && searchResults.length > 0) {
52
+ const sources = searchResults
53
+ .slice(0, 3)
54
+ .map(r => r.id)
55
+ .join(', ');
56
+ answer += `\n[Sources: ${sources}]`;
57
+ }
58
+ // Track history (keep last 10 exchanges)
59
+ this.history.push({ question, answer });
60
+ if (this.history.length > 10) {
61
+ this.history = this.history.slice(-10);
62
+ }
63
+ return answer;
64
+ }
65
+ /**
66
+ * Generate response using LLM
67
+ */
68
+ async generateWithLLM(question, context) {
69
+ if (!this.llmProvider) {
70
+ return this.generateWithTemplate(question, context);
71
+ }
72
+ // Build context from search results
73
+ const contextData = context.map(item => ({
74
+ id: item.id,
75
+ score: item.score,
76
+ metadata: item.metadata || {}
77
+ }));
78
+ // Include conversation history for context
79
+ const historyContext = this.history.slice(-3).map(h => `Q: ${h.question}\nA: ${h.answer}`).join('\n\n');
80
+ try {
81
+ const response = await this.llmProvider.generate(question, {
82
+ searchResults: contextData,
83
+ history: historyContext
84
+ });
85
+ return response;
86
+ }
87
+ catch (error) {
88
+ console.warn('LLM generation failed, using template:', error);
89
+ return this.generateWithTemplate(question, context);
90
+ }
91
+ }
92
+ /**
93
+ * Generate response with smart templates (no LLM needed)
94
+ */
95
+ generateWithTemplate(question, context) {
96
+ if (context.length === 0) {
97
+ return "I couldn't find relevant information to answer that question.";
98
+ }
99
+ const q = question.toLowerCase();
100
+ // Quantitative questions
101
+ if (q.includes('how many') || q.includes('count')) {
102
+ const count = context.length;
103
+ const items = context.slice(0, 3).map(c => c.id).join(', ');
104
+ return `I found ${count} relevant items. The top matches are: ${items}.`;
105
+ }
106
+ // Comparison questions
107
+ if (q.includes('compare') || q.includes('difference') || q.includes('vs')) {
108
+ if (context.length < 2) {
109
+ return "I need at least two items to make a comparison.";
110
+ }
111
+ const first = context[0];
112
+ const second = context[1];
113
+ return `Comparing "${first.id}" (${(first.score * 100).toFixed(0)}% relevance) with "${second.id}" (${(second.score * 100).toFixed(0)}% relevance). Both are related to your query but ${first.id} shows stronger similarity.`;
114
+ }
115
+ // List questions
116
+ if (q.includes('list') || q.includes('what are') || q.includes('show me')) {
117
+ const items = context.slice(0, 5).map((c, i) => `${i + 1}. ${c.id}${c.metadata?.description ? ': ' + c.metadata.description : ''}`).join('\n');
118
+ return `Here are the top results:\n${items}`;
119
+ }
120
+ // Analysis questions
121
+ if (q.includes('analyze') || q.includes('explain') || q.includes('why')) {
122
+ const top = context[0];
123
+ const metadata = top.metadata || {};
124
+ const details = Object.entries(metadata)
125
+ .slice(0, 3)
126
+ .map(([k, v]) => `${k}: ${JSON.stringify(v)}`)
127
+ .join(', ');
128
+ return `Based on my analysis of "${top.id}" (${(top.score * 100).toFixed(0)}% relevant): ${details || 'This item matches your query based on semantic similarity.'}`;
129
+ }
130
+ // Trend/pattern questions
131
+ if (q.includes('trend') || q.includes('pattern')) {
132
+ const items = context.slice(0, 3).map(c => c.id);
133
+ return `I identified patterns across ${context.length} related items. Key examples include: ${items.join(', ')}. These show common characteristics related to "${question}".`;
134
+ }
135
+ // Yes/No questions
136
+ if (q.startsWith('is') || q.startsWith('are') || q.startsWith('does') || q.startsWith('do')) {
137
+ const confidence = context[0].score;
138
+ if (confidence > 0.8) {
139
+ return `Yes, based on "${context[0].id}" with ${(confidence * 100).toFixed(0)}% confidence.`;
140
+ }
141
+ else if (confidence > 0.5) {
142
+ return `Possibly. I found "${context[0].id}" with ${(confidence * 100).toFixed(0)}% relevance to your question.`;
143
+ }
144
+ else {
145
+ return `I'm not certain. The closest match is "${context[0].id}" but with only ${(confidence * 100).toFixed(0)}% relevance.`;
146
+ }
147
+ }
148
+ // Default response - provide the most relevant information
149
+ const top = context[0];
150
+ const metadata = top.metadata ?
151
+ Object.entries(top.metadata)
152
+ .slice(0, 3)
153
+ .map(([k, v]) => `${k}: ${JSON.stringify(v)}`)
154
+ .join(', ') :
155
+ 'no additional details';
156
+ return `Based on "${top.id}" (${(top.score * 100).toFixed(0)}% relevant): ${metadata}`;
157
+ }
158
+ /**
159
+ * Interactive chat mode (Node.js only)
160
+ */
161
+ async chat() {
162
+ // Check if we're in Node.js
163
+ if (typeof process === 'undefined' || !process.stdin) {
164
+ console.log('Interactive chat is only available in Node.js environment');
165
+ return;
166
+ }
167
+ const readline = await import('readline');
168
+ const rl = readline.createInterface({
169
+ input: process.stdin,
170
+ output: process.stdout,
171
+ prompt: 'You> '
172
+ });
173
+ console.log('\n🧠 Brainy Chat - Interactive Mode');
174
+ console.log('Type your questions or "exit" to quit\n');
175
+ rl.prompt();
176
+ rl.on('line', async (line) => {
177
+ const input = line.trim();
178
+ if (input.toLowerCase() === 'exit' || input.toLowerCase() === 'quit') {
179
+ console.log('\nGoodbye! 👋');
180
+ rl.close();
181
+ return;
182
+ }
183
+ if (input) {
184
+ try {
185
+ const answer = await this.ask(input);
186
+ console.log(`\n🤖 ${answer}\n`);
187
+ }
188
+ catch (error) {
189
+ console.log(`\n❌ Error: ${error instanceof Error ? error.message : String(error)}\n`);
190
+ }
191
+ }
192
+ rl.prompt();
193
+ });
194
+ rl.on('close', () => {
195
+ process.exit(0);
196
+ });
197
+ }
198
+ }
199
+ /**
200
+ * Claude LLM Provider
201
+ */
202
+ class ClaudeLLMProvider {
203
+ constructor(model, apiKey) {
204
+ this.model = model.includes('claude') ? model : `claude-3-5-sonnet-20241022`;
205
+ this.apiKey = apiKey || process.env.ANTHROPIC_API_KEY;
206
+ }
207
+ async generate(prompt, context) {
208
+ if (!this.apiKey) {
209
+ throw new Error('Claude API key required. Set ANTHROPIC_API_KEY or pass apiKey option.');
210
+ }
211
+ const systemPrompt = `You are a helpful AI assistant with access to a vector database.
212
+ Answer questions based on the provided context from semantic search results.
213
+ Be concise and accurate. If the context doesn't contain relevant information, say so.`;
214
+ const userPrompt = `Context from database search:
215
+ ${JSON.stringify(context.searchResults, null, 2)}
216
+
217
+ Recent conversation:
218
+ ${context.history || 'No previous conversation'}
219
+
220
+ Question: ${prompt}
221
+
222
+ Please provide a helpful answer based on the context above.`;
223
+ try {
224
+ const response = await fetch('https://api.anthropic.com/v1/messages', {
225
+ method: 'POST',
226
+ headers: {
227
+ 'Content-Type': 'application/json',
228
+ 'x-api-key': this.apiKey,
229
+ 'anthropic-version': '2023-06-01'
230
+ },
231
+ body: JSON.stringify({
232
+ model: this.model,
233
+ max_tokens: 1024,
234
+ messages: [
235
+ { role: 'user', content: userPrompt }
236
+ ],
237
+ system: systemPrompt
238
+ })
239
+ });
240
+ if (!response.ok) {
241
+ throw new Error(`Claude API error: ${response.status}`);
242
+ }
243
+ const data = await response.json();
244
+ return data.content[0].text;
245
+ }
246
+ catch (error) {
247
+ throw new Error(`Failed to generate with Claude: ${error instanceof Error ? error.message : String(error)}`);
248
+ }
249
+ }
250
+ }
251
+ /**
252
+ * OpenAI LLM Provider
253
+ */
254
+ class OpenAILLMProvider {
255
+ constructor(model, apiKey) {
256
+ this.model = model.includes('gpt') ? model : 'gpt-4o-mini';
257
+ this.apiKey = apiKey || process.env.OPENAI_API_KEY;
258
+ }
259
+ async generate(prompt, context) {
260
+ if (!this.apiKey) {
261
+ throw new Error('OpenAI API key required. Set OPENAI_API_KEY or pass apiKey option.');
262
+ }
263
+ const systemPrompt = `You are a helpful AI assistant with access to a vector database.
264
+ Answer questions based on the provided context from semantic search results.`;
265
+ const userPrompt = `Context: ${JSON.stringify(context.searchResults)}
266
+ History: ${context.history || 'None'}
267
+ Question: ${prompt}`;
268
+ try {
269
+ const response = await fetch('https://api.openai.com/v1/chat/completions', {
270
+ method: 'POST',
271
+ headers: {
272
+ 'Content-Type': 'application/json',
273
+ 'Authorization': `Bearer ${this.apiKey}`
274
+ },
275
+ body: JSON.stringify({
276
+ model: this.model,
277
+ messages: [
278
+ { role: 'system', content: systemPrompt },
279
+ { role: 'user', content: userPrompt }
280
+ ],
281
+ max_tokens: 500,
282
+ temperature: 0.7
283
+ })
284
+ });
285
+ if (!response.ok) {
286
+ throw new Error(`OpenAI API error: ${response.status}`);
287
+ }
288
+ const data = await response.json();
289
+ return data.choices[0].message.content;
290
+ }
291
+ catch (error) {
292
+ throw new Error(`Failed to generate with OpenAI: ${error instanceof Error ? error.message : String(error)}`);
293
+ }
294
+ }
295
+ }
296
+ /**
297
+ * Hugging Face Local LLM Provider
298
+ */
299
+ class HuggingFaceLLMProvider {
300
+ constructor(model) {
301
+ this.model = model;
302
+ this.initializePipeline();
303
+ }
304
+ async initializePipeline() {
305
+ try {
306
+ // Lazy load transformers.js - this is optional and may not be installed
307
+ // @ts-ignore - Optional dependency
308
+ const transformersModule = await import('@huggingface/transformers').catch(() => null);
309
+ if (transformersModule) {
310
+ const { pipeline } = transformersModule;
311
+ this.pipeline = await pipeline('text2text-generation', this.model);
312
+ }
313
+ else {
314
+ console.warn(`Transformers.js not installed. Install with: npm install @huggingface/transformers`);
315
+ }
316
+ }
317
+ catch (error) {
318
+ console.warn(`Failed to load Hugging Face model ${this.model}:`, error);
319
+ }
320
+ }
321
+ async generate(prompt, context) {
322
+ if (!this.pipeline) {
323
+ throw new Error('Hugging Face model not loaded');
324
+ }
325
+ const input = `Answer based on context: ${JSON.stringify(context.searchResults).slice(0, 500)}
326
+ Question: ${prompt}
327
+ Answer:`;
328
+ try {
329
+ const result = await this.pipeline(input, {
330
+ max_new_tokens: 150,
331
+ temperature: 0.7
332
+ });
333
+ return result[0].generated_text.trim();
334
+ }
335
+ catch (error) {
336
+ throw new Error(`Failed to generate with Hugging Face: ${error instanceof Error ? error.message : String(error)}`);
337
+ }
338
+ }
339
+ }
340
+ //# sourceMappingURL=brainyChat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainyChat.js","sourceRoot":"","sources":["../../src/chat/brainyChat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Brainy Connector Interface - Atomic Age Integration Framework
3
+ *
4
+ * 🧠 Base interface for all premium connectors in the Quantum Vault
5
+ * ⚛️ Open source interface, implementations are premium-only
6
+ */
7
+ export interface ConnectorConfig {
8
+ /** Connector identifier (e.g., 'notion', 'salesforce') */
9
+ connectorId: string;
10
+ /** Premium license key (required for Quantum Vault connectors) */
11
+ licenseKey: string;
12
+ /** API credentials for the external service */
13
+ credentials: {
14
+ apiKey?: string;
15
+ accessToken?: string;
16
+ refreshToken?: string;
17
+ clientId?: string;
18
+ clientSecret?: string;
19
+ [key: string]: any;
20
+ };
21
+ /** Connector-specific configuration */
22
+ options?: {
23
+ syncInterval?: number;
24
+ batchSize?: number;
25
+ retryAttempts?: number;
26
+ [key: string]: any;
27
+ };
28
+ /** Brainy database instance configuration */
29
+ brainy?: {
30
+ endpoint?: string;
31
+ storage?: string;
32
+ [key: string]: any;
33
+ };
34
+ }
35
+ export interface SyncResult {
36
+ /** Number of items successfully synced */
37
+ synced: number;
38
+ /** Number of items that failed to sync */
39
+ failed: number;
40
+ /** Number of items skipped (duplicates, etc.) */
41
+ skipped: number;
42
+ /** Total processing time in milliseconds */
43
+ duration: number;
44
+ /** Sync operation timestamp */
45
+ timestamp: string;
46
+ /** Error details for failed items */
47
+ errors?: Array<{
48
+ item: string;
49
+ error: string;
50
+ retryable: boolean;
51
+ }>;
52
+ /** Metadata about the sync operation */
53
+ metadata?: {
54
+ lastSyncId?: string;
55
+ nextPageToken?: string;
56
+ hasMore?: boolean;
57
+ [key: string]: any;
58
+ };
59
+ }
60
+ export interface ConnectorStatus {
61
+ /** Current connector state */
62
+ status: 'connected' | 'disconnected' | 'error' | 'syncing' | 'paused';
63
+ /** Human-readable status message */
64
+ message: string;
65
+ /** Last successful sync timestamp */
66
+ lastSync?: string;
67
+ /** Next scheduled sync timestamp */
68
+ nextSync?: string;
69
+ /** Connection health indicators */
70
+ health: {
71
+ apiReachable: boolean;
72
+ credentialsValid: boolean;
73
+ licenseValid: boolean;
74
+ quotaRemaining?: number;
75
+ };
76
+ /** Usage statistics */
77
+ stats?: {
78
+ totalSyncs: number;
79
+ totalItems: number;
80
+ averageDuration: number;
81
+ errorRate: number;
82
+ };
83
+ }
84
+ /**
85
+ * Base interface for all Brainy premium connectors
86
+ *
87
+ * Implementations live in the Quantum Vault (brainy-quantum-vault)
88
+ */
89
+ export interface IConnector {
90
+ /** Unique connector identifier */
91
+ readonly id: string;
92
+ /** Human-readable connector name */
93
+ readonly name: string;
94
+ /** Connector version */
95
+ readonly version: string;
96
+ /** Supported data types this connector can handle */
97
+ readonly supportedTypes: string[];
98
+ /**
99
+ * Initialize the connector with configuration
100
+ */
101
+ initialize(config: ConnectorConfig): Promise<void>;
102
+ /**
103
+ * Test connection to the external service
104
+ */
105
+ testConnection(): Promise<boolean>;
106
+ /**
107
+ * Get current connector status and health
108
+ */
109
+ getStatus(): Promise<ConnectorStatus>;
110
+ /**
111
+ * Start syncing data from the external service
112
+ */
113
+ startSync(): Promise<SyncResult>;
114
+ /**
115
+ * Stop any ongoing sync operations
116
+ */
117
+ stopSync(): Promise<void>;
118
+ /**
119
+ * Perform incremental sync (delta changes only)
120
+ */
121
+ incrementalSync(): Promise<SyncResult>;
122
+ /**
123
+ * Perform full sync (all data)
124
+ */
125
+ fullSync(): Promise<SyncResult>;
126
+ /**
127
+ * Preview what would be synced without actually syncing
128
+ */
129
+ previewSync(limit?: number): Promise<{
130
+ items: Array<{
131
+ type: string;
132
+ title: string;
133
+ preview: string;
134
+ relationships: string[];
135
+ }>;
136
+ totalCount: number;
137
+ estimatedDuration: number;
138
+ }>;
139
+ /**
140
+ * Clean up resources and disconnect
141
+ */
142
+ disconnect(): Promise<void>;
143
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Brainy Connector Interface - Atomic Age Integration Framework
3
+ *
4
+ * 🧠 Base interface for all premium connectors in the Quantum Vault
5
+ * ⚛️ Open source interface, implementations are premium-only
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=IConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IConnector.js","sourceRoot":"","sources":["../../../src/connectors/interfaces/IConnector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"coreTypes.d.ts","sourceRoot":"","sources":["../src/coreTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coreTypes.d.ts","sourceRoot":"","sources":["../src/coreTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Backup & Restore System - Atomic Age Data Preservation Protocol
3
+ *
4
+ * 🧠 Complete backup/restore with compression and verification
5
+ * ⚛️ 1950s retro sci-fi aesthetic maintained throughout
6
+ */
7
+ import { BrainyData } from '../brainyData.js';
8
+ export interface BackupOptions {
9
+ compress?: boolean;
10
+ output?: string;
11
+ includeMetadata?: boolean;
12
+ includeStatistics?: boolean;
13
+ verify?: boolean;
14
+ password?: string;
15
+ }
16
+ export interface RestoreOptions {
17
+ verify?: boolean;
18
+ overwrite?: boolean;
19
+ password?: string;
20
+ dryRun?: boolean;
21
+ }
22
+ export interface BackupManifest {
23
+ version: string;
24
+ timestamp: string;
25
+ brainyVersion: string;
26
+ entityCount: number;
27
+ relationshipCount: number;
28
+ storageType: string;
29
+ compressed: boolean;
30
+ encrypted: boolean;
31
+ checksum: string;
32
+ metadata: {
33
+ created: string;
34
+ description?: string;
35
+ tags?: string[];
36
+ };
37
+ }
38
+ /**
39
+ * Backup & Restore Engine - The Brain's Memory Preservation System
40
+ */
41
+ export declare class BackupRestore {
42
+ private brainy;
43
+ private colors;
44
+ private emojis;
45
+ constructor(brainy: BrainyData);
46
+ /**
47
+ * Create a complete backup of Brainy data
48
+ */
49
+ createBackup(options?: BackupOptions): Promise<string>;
50
+ /**
51
+ * Restore Brainy data from backup
52
+ */
53
+ restoreBackup(backupPath: string, options?: RestoreOptions): Promise<void>;
54
+ /**
55
+ * List available backups in a directory
56
+ */
57
+ listBackups(directory?: string): Promise<BackupManifest[]>;
58
+ /**
59
+ * Get backup manifest without loading full backup
60
+ */
61
+ private getBackupManifest;
62
+ /**
63
+ * Collect all data for backup
64
+ */
65
+ private collectBackupData;
66
+ /**
67
+ * Create backup manifest
68
+ */
69
+ private createManifest;
70
+ /**
71
+ * Helper methods
72
+ */
73
+ private generateBackupPath;
74
+ private compressData;
75
+ private decompressData;
76
+ private encryptData;
77
+ private decryptData;
78
+ private verifyBackup;
79
+ private verifyRestoreData;
80
+ private executeRestore;
81
+ private collectMetadata;
82
+ private restoreMetadata;
83
+ private calculateChecksum;
84
+ private formatFileSize;
85
+ }