@soulcraft/brainy 0.58.0 → 0.59.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 (154) hide show
  1. package/bin/brainy.js +539 -387
  2. package/dist/augmentations/conduitAugmentations.js +1 -1
  3. package/dist/augmentations/conduitAugmentations.js.map +1 -1
  4. package/dist/augmentations/cortexSense.js +3 -3
  5. package/dist/augmentations/cortexSense.js.map +1 -1
  6. package/dist/brainyData.js +2 -1
  7. package/dist/brainyData.js.map +1 -1
  8. package/dist/browserFramework.minimal.d.ts +14 -0
  9. package/dist/browserFramework.minimal.js +31 -0
  10. package/dist/browserFramework.minimal.js.map +1 -0
  11. package/dist/cortex/backupRestore.js +2 -2
  12. package/dist/cortex/backupRestore.js.map +1 -1
  13. package/dist/cortex/cortex.d.ts +17 -2
  14. package/dist/cortex/cortex.js +262 -103
  15. package/dist/cortex/cortex.js.map +1 -1
  16. package/dist/cortex/neuralImport.js +2 -2
  17. package/dist/cortex/neuralImport.js.map +1 -1
  18. package/dist/cortex/serviceIntegration.js +2 -2
  19. package/dist/cortex/serviceIntegration.js.map +1 -1
  20. package/dist/distributed/configManager.js +1 -1
  21. package/dist/distributed/configManager.js.map +1 -1
  22. package/dist/index.d.ts +0 -1
  23. package/dist/index.js +2 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/mcp/brainyMCPAdapter.js +1 -1
  26. package/dist/mcp/brainyMCPAdapter.js.map +1 -1
  27. package/dist/mcp/brainyMCPBroadcast.d.ts +82 -0
  28. package/dist/mcp/brainyMCPBroadcast.js +303 -0
  29. package/dist/mcp/brainyMCPBroadcast.js.map +1 -0
  30. package/dist/mcp/brainyMCPClient.d.ts +92 -0
  31. package/dist/mcp/brainyMCPClient.js +254 -0
  32. package/dist/mcp/brainyMCPClient.js.map +1 -0
  33. package/dist/mcp/brainyMCPService.js +1 -1
  34. package/dist/mcp/brainyMCPService.js.map +1 -1
  35. package/dist/mcp/mcpAugmentationToolset.js +1 -1
  36. package/dist/mcp/mcpAugmentationToolset.js.map +1 -1
  37. package/dist/universal/crypto.d.ts +64 -0
  38. package/dist/universal/crypto.js +215 -0
  39. package/dist/universal/crypto.js.map +1 -0
  40. package/dist/universal/events.d.ts +31 -0
  41. package/dist/universal/events.js +156 -0
  42. package/dist/universal/events.js.map +1 -0
  43. package/dist/universal/fs.d.ts +102 -0
  44. package/dist/universal/fs.js +304 -0
  45. package/dist/universal/fs.js.map +1 -0
  46. package/dist/universal/index.d.ts +16 -0
  47. package/dist/universal/index.js +23 -0
  48. package/dist/universal/index.js.map +1 -0
  49. package/dist/universal/path.d.ts +51 -0
  50. package/dist/universal/path.js +161 -0
  51. package/dist/universal/path.js.map +1 -0
  52. package/dist/universal/uuid.d.ts +10 -0
  53. package/dist/universal/uuid.js +21 -0
  54. package/dist/universal/uuid.js.map +1 -0
  55. package/package.json +55 -2
  56. package/dist/augmentationFactory.d.ts.map +0 -1
  57. package/dist/augmentationPipeline.d.ts.map +0 -1
  58. package/dist/augmentationRegistry.d.ts.map +0 -1
  59. package/dist/augmentationRegistryLoader.d.ts.map +0 -1
  60. package/dist/augmentations/conduitAugmentations.d.ts.map +0 -1
  61. package/dist/augmentations/memoryAugmentations.d.ts.map +0 -1
  62. package/dist/augmentations/serverSearchAugmentations.d.ts.map +0 -1
  63. package/dist/brainyData.d.ts.map +0 -1
  64. package/dist/browserFramework.d.ts.map +0 -1
  65. package/dist/coreTypes.d.ts.map +0 -1
  66. package/dist/cortex/cli.d.ts +0 -8
  67. package/dist/cortex/cli.js +0 -207
  68. package/dist/cortex/cli.js.map +0 -1
  69. package/dist/cortex/commands/index.d.ts +0 -79
  70. package/dist/cortex/commands/index.js +0 -614
  71. package/dist/cortex/commands/index.js.map +0 -1
  72. package/dist/cortex/config.d.ts +0 -112
  73. package/dist/cortex/config.js +0 -312
  74. package/dist/cortex/config.js.map +0 -1
  75. package/dist/cortex/licensingSystem.d.ts +0 -126
  76. package/dist/cortex/licensingSystem.js +0 -474
  77. package/dist/cortex/licensingSystem.js.map +0 -1
  78. package/dist/cortex/webhookManager.d.ts +0 -39
  79. package/dist/cortex/webhookManager.js +0 -326
  80. package/dist/cortex/webhookManager.js.map +0 -1
  81. package/dist/demo.d.ts.map +0 -1
  82. package/dist/distributed/configManager.d.ts.map +0 -1
  83. package/dist/distributed/domainDetector.d.ts.map +0 -1
  84. package/dist/distributed/hashPartitioner.d.ts.map +0 -1
  85. package/dist/distributed/healthMonitor.d.ts.map +0 -1
  86. package/dist/distributed/index.d.ts.map +0 -1
  87. package/dist/distributed/operationalModes.d.ts.map +0 -1
  88. package/dist/errors/brainyError.d.ts.map +0 -1
  89. package/dist/examples/basicUsage.d.ts.map +0 -1
  90. package/dist/hnsw/distributedSearch.d.ts.map +0 -1
  91. package/dist/hnsw/hnswIndex.d.ts.map +0 -1
  92. package/dist/hnsw/hnswIndexOptimized.d.ts.map +0 -1
  93. package/dist/hnsw/optimizedHNSWIndex.d.ts.map +0 -1
  94. package/dist/hnsw/partitionedHNSWIndex.d.ts.map +0 -1
  95. package/dist/hnsw/scaledHNSWSystem.d.ts.map +0 -1
  96. package/dist/index.d.ts.map +0 -1
  97. package/dist/mcp/brainyMCPAdapter.d.ts.map +0 -1
  98. package/dist/mcp/brainyMCPService.d.ts.map +0 -1
  99. package/dist/mcp/index.d.ts.map +0 -1
  100. package/dist/mcp/mcpAugmentationToolset.d.ts.map +0 -1
  101. package/dist/pipeline.d.ts.map +0 -1
  102. package/dist/sequentialPipeline.d.ts.map +0 -1
  103. package/dist/setup.d.ts.map +0 -1
  104. package/dist/storage/adapters/baseStorageAdapter.d.ts.map +0 -1
  105. package/dist/storage/adapters/batchS3Operations.d.ts.map +0 -1
  106. package/dist/storage/adapters/fileSystemStorage.d.ts.map +0 -1
  107. package/dist/storage/adapters/memoryStorage.d.ts.map +0 -1
  108. package/dist/storage/adapters/opfsStorage.d.ts.map +0 -1
  109. package/dist/storage/adapters/optimizedS3Search.d.ts.map +0 -1
  110. package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +0 -1
  111. package/dist/storage/baseStorage.d.ts.map +0 -1
  112. package/dist/storage/cacheManager.d.ts.map +0 -1
  113. package/dist/storage/enhancedCacheManager.d.ts.map +0 -1
  114. package/dist/storage/readOnlyOptimizations.d.ts.map +0 -1
  115. package/dist/storage/storageFactory.d.ts.map +0 -1
  116. package/dist/types/augmentations.d.ts.map +0 -1
  117. package/dist/types/brainyDataInterface.d.ts.map +0 -1
  118. package/dist/types/distributedTypes.d.ts.map +0 -1
  119. package/dist/types/fileSystemTypes.d.ts.map +0 -1
  120. package/dist/types/graphTypes.d.ts.map +0 -1
  121. package/dist/types/mcpTypes.d.ts.map +0 -1
  122. package/dist/types/paginationTypes.d.ts.map +0 -1
  123. package/dist/types/pipelineTypes.d.ts.map +0 -1
  124. package/dist/types/tensorflowTypes.d.ts +0 -26
  125. package/dist/types/tensorflowTypes.d.ts.map +0 -1
  126. package/dist/types/tensorflowTypes.js +0 -6
  127. package/dist/types/tensorflowTypes.js.map +0 -1
  128. package/dist/unified.d.ts.map +0 -1
  129. package/dist/utils/autoConfiguration.d.ts.map +0 -1
  130. package/dist/utils/cacheAutoConfig.d.ts.map +0 -1
  131. package/dist/utils/crypto.d.ts.map +0 -1
  132. package/dist/utils/distance.d.ts.map +0 -1
  133. package/dist/utils/embedding.d.ts.map +0 -1
  134. package/dist/utils/environment.d.ts.map +0 -1
  135. package/dist/utils/fieldNameTracking.d.ts.map +0 -1
  136. package/dist/utils/index.d.ts.map +0 -1
  137. package/dist/utils/jsonProcessing.d.ts.map +0 -1
  138. package/dist/utils/logger.d.ts.map +0 -1
  139. package/dist/utils/operationUtils.d.ts.map +0 -1
  140. package/dist/utils/robustModelLoader.d.ts +0 -112
  141. package/dist/utils/robustModelLoader.d.ts.map +0 -1
  142. package/dist/utils/robustModelLoader.js +0 -624
  143. package/dist/utils/robustModelLoader.js.map +0 -1
  144. package/dist/utils/searchCache.d.ts.map +0 -1
  145. package/dist/utils/statistics.d.ts.map +0 -1
  146. package/dist/utils/statisticsCollector.d.ts.map +0 -1
  147. package/dist/utils/textEncoding.d.ts.map +0 -1
  148. package/dist/utils/typeUtils.d.ts.map +0 -1
  149. package/dist/utils/version.d.ts.map +0 -1
  150. package/dist/utils/workerUtils.d.ts.map +0 -1
  151. package/dist/webhooks/webhookSystem.d.ts +0 -114
  152. package/dist/webhooks/webhookSystem.js +0 -321
  153. package/dist/webhooks/webhookSystem.js.map +0 -1
  154. package/dist/worker.d.ts.map +0 -1
@@ -1,614 +0,0 @@
1
- /**
2
- * Cortex Commands Implementation
3
- *
4
- * All CLI commands for managing Brainy through Cortex
5
- */
6
- import { CortexConfig } from '../config.js';
7
- import * as fs from 'fs/promises';
8
- import * as path from 'path';
9
- import * as readline from 'readline/promises';
10
- import { stdin as input, stdout as output } from 'process';
11
- // CLI utilities - to be added later
12
- const chalk = { cyan: (s) => s, green: (s) => s, red: (s) => s, yellow: (s) => s, gray: (s) => s };
13
- class Table {
14
- constructor(opts) {
15
- this.rows = [];
16
- this.head = opts.head || [];
17
- }
18
- push(row) { this.rows.push(row); }
19
- toString() { return [this.head.join(' | '), ...this.rows.map(r => r.join(' | '))].join('\n'); }
20
- }
21
- export class CortexCommands {
22
- /**
23
- * Initialize Cortex in a project
24
- */
25
- static async init(options) {
26
- const config = CortexConfig.getInstance();
27
- if (options.interactive) {
28
- const rl = readline.createInterface({ input, output });
29
- console.log(chalk.cyan('\n🧠 Welcome to Cortex - Brainy Command Center\n'));
30
- // Storage type
31
- const storageType = await rl.question('Storage type (s3/filesystem/memory/opfs) [s3]: ') || 's3';
32
- let storageConfig = { type: storageType };
33
- // Storage-specific configuration
34
- if (storageType === 's3') {
35
- storageConfig.bucket = await rl.question('S3 bucket name: ');
36
- storageConfig.region = await rl.question('AWS region [us-east-1]: ') || 'us-east-1';
37
- const useEnvCreds = await rl.question('Use AWS credentials from environment? (y/n) [y]: ') || 'y';
38
- if (useEnvCreds !== 'y') {
39
- storageConfig.accessKeyId = await rl.question('AWS Access Key ID: ');
40
- storageConfig.secretAccessKey = await rl.question('AWS Secret Access Key: ');
41
- }
42
- }
43
- else if (storageType === 'filesystem') {
44
- storageConfig.path = await rl.question(`Storage path [${path.join(process.cwd(), '.brainy-data')}]: `) || path.join(process.cwd(), '.brainy-data');
45
- }
46
- // Encryption
47
- const enableEncryption = await rl.question('Enable encrypted configuration? (y/n) [y]: ') || 'y';
48
- // Coordination
49
- const enableCoordination = await rl.question('Enable distributed coordination? (y/n) [y]: ') || 'y';
50
- rl.close();
51
- await config.init({
52
- storage: storageConfig,
53
- encryption: {
54
- enabled: enableEncryption === 'y',
55
- keyDerivation: 'pbkdf2'
56
- },
57
- coordination: {
58
- enabled: enableCoordination === 'y',
59
- realtime: false,
60
- pollInterval: 30000
61
- }
62
- });
63
- console.log(chalk.green('\nāœ… Cortex initialized successfully!'));
64
- console.log(chalk.gray('Configuration saved to .brainy/cortex.json'));
65
- console.log(chalk.gray('Master key saved to .brainy/cortex.key'));
66
- console.log(chalk.yellow('\nāš ļø Keep your master key safe!'));
67
- }
68
- else {
69
- // Non-interactive mode
70
- await config.init({
71
- storage: options.storage ? { type: options.storage } : undefined
72
- });
73
- }
74
- }
75
- /**
76
- * Set a configuration value
77
- */
78
- static async configSet(key, value, options) {
79
- const config = CortexConfig.getInstance();
80
- await config.load();
81
- // If no value provided, prompt for it
82
- if (!value) {
83
- const rl = readline.createInterface({ input, output });
84
- value = await rl.question(`Enter value for ${key}: `);
85
- rl.close();
86
- }
87
- await config.set(key, value, { encrypt: options.encrypt });
88
- console.log(chalk.green(`āœ… Set ${key}`));
89
- }
90
- /**
91
- * Get a configuration value
92
- */
93
- static async configGet(key) {
94
- const config = CortexConfig.getInstance();
95
- await config.load();
96
- const value = await config.get(key);
97
- if (value === undefined) {
98
- console.log(chalk.yellow(`Configuration key '${key}' not found`));
99
- }
100
- else {
101
- console.log(value);
102
- }
103
- }
104
- /**
105
- * List all configuration keys
106
- */
107
- static async configList(options) {
108
- const config = CortexConfig.getInstance();
109
- await config.load();
110
- const configs = await config.list();
111
- if (configs.length === 0) {
112
- console.log(chalk.yellow('No configurations found'));
113
- return;
114
- }
115
- const table = new Table({
116
- head: ['Key', 'Encrypted', 'Environment'],
117
- style: { head: ['cyan'] }
118
- });
119
- for (const cfg of configs) {
120
- const row = [
121
- cfg.key,
122
- cfg.encrypted ? chalk.green('āœ“') : chalk.gray('-'),
123
- cfg.environment
124
- ];
125
- if (options.showValues) {
126
- const value = await config.get(cfg.key);
127
- row.push(value ? String(value).substring(0, 50) : '');
128
- }
129
- table.push(row);
130
- }
131
- console.log(table.toString());
132
- }
133
- /**
134
- * Import configuration from .env file
135
- */
136
- static async configImport(file) {
137
- const config = CortexConfig.getInstance();
138
- await config.load();
139
- await config.importEnv(file);
140
- console.log(chalk.green(`āœ… Imported configuration from ${file}`));
141
- }
142
- /**
143
- * Load environment variables
144
- */
145
- static async envLoad(options) {
146
- const config = CortexConfig.getInstance();
147
- await config.load();
148
- const env = await config.loadEnvironment();
149
- if (options.export) {
150
- // Output as shell export commands
151
- for (const [key, value] of Object.entries(env)) {
152
- console.log(`export ${key}="${value}"`);
153
- }
154
- }
155
- else {
156
- // Set in current process
157
- Object.assign(process.env, env);
158
- console.log(chalk.green(`āœ… Loaded ${Object.keys(env).length} environment variables`));
159
- }
160
- }
161
- /**
162
- * Migrate to new storage
163
- */
164
- static async migrate(options) {
165
- const config = CortexConfig.getInstance();
166
- await config.load();
167
- const brainy = config.getBrainy();
168
- // Parse target storage URL
169
- const targetUrl = new URL(options.to);
170
- let targetConfig = {};
171
- if (targetUrl.protocol === 's3:') {
172
- targetConfig = {
173
- type: 's3',
174
- bucket: targetUrl.hostname,
175
- region: targetUrl.searchParams.get('region') || 'us-east-1'
176
- };
177
- }
178
- else if (targetUrl.protocol === 'file:') {
179
- targetConfig = {
180
- type: 'filesystem',
181
- path: targetUrl.pathname
182
- };
183
- }
184
- // Create coordination plan
185
- const coordinationPlan = {
186
- version: 1,
187
- timestamp: new Date().toISOString(),
188
- migration: {
189
- enabled: true,
190
- target: targetConfig,
191
- strategy: options.strategy,
192
- dryRun: options.dryRun || false
193
- }
194
- };
195
- // Store coordination plan in current storage
196
- await brainy.addNoun({
197
- id: '_system/coordination',
198
- type: 'cortex_coordination',
199
- metadata: coordinationPlan
200
- });
201
- console.log(chalk.cyan('šŸ“‹ Migration plan created:'));
202
- console.log(JSON.stringify(coordinationPlan, null, 2));
203
- if (!options.dryRun) {
204
- console.log(chalk.yellow('\nā³ Migration will begin shortly...'));
205
- console.log(chalk.gray('All services will automatically detect and execute the migration'));
206
- }
207
- }
208
- /**
209
- * Synchronize services
210
- */
211
- static async sync(options) {
212
- const config = CortexConfig.getInstance();
213
- await config.load();
214
- const brainy = config.getBrainy();
215
- // Trigger sync by updating coordination timestamp
216
- await brainy.addNoun({
217
- id: '_system/sync',
218
- type: 'cortex_sync',
219
- metadata: {
220
- timestamp: new Date().toISOString(),
221
- force: options.force || false
222
- }
223
- });
224
- console.log(chalk.green('āœ… Sync signal sent to all services'));
225
- }
226
- /**
227
- * Query data with advanced filtering
228
- */
229
- static async query(pattern, options) {
230
- const config = CortexConfig.getInstance();
231
- await config.load();
232
- const brainy = config.getBrainy();
233
- // Parse metadata filter if provided
234
- let metadataFilter = null;
235
- if (options.filter || options.metadata) {
236
- try {
237
- metadataFilter = JSON.parse(options.filter || options.metadata);
238
- }
239
- catch (error) {
240
- console.log(chalk.red(`Invalid filter JSON: ${error instanceof Error ? error.message : String(error)}`));
241
- return;
242
- }
243
- }
244
- // Show query plan if requested
245
- if (options.explain) {
246
- console.log(chalk.cyan('\nšŸ“‹ Query Plan:'));
247
- console.log(`Pattern: "${pattern}"`);
248
- if (metadataFilter) {
249
- console.log(`Filter: ${JSON.stringify(metadataFilter, null, 2)}`);
250
- }
251
- console.log(`Limit: ${options.limit || 10}\n`);
252
- }
253
- // Perform search with metadata filtering
254
- const results = await brainy.searchNouns(pattern, {
255
- limit: parseInt(options.limit) || 10,
256
- metadata: metadataFilter
257
- });
258
- if (options.json) {
259
- console.log(JSON.stringify(results, null, 2));
260
- }
261
- else {
262
- if (results.length === 0) {
263
- console.log(chalk.yellow('No results found'));
264
- return;
265
- }
266
- const table = new Table({
267
- head: ['ID', 'Type', 'Score', 'Sample Metadata'],
268
- style: { head: ['cyan'] },
269
- colWidths: [30, 15, 10, 40]
270
- });
271
- for (const result of results) {
272
- // Show a sample of metadata
273
- let metaSample = '';
274
- if (result.metadata) {
275
- const keys = Object.keys(result.metadata).slice(0, 3);
276
- metaSample = keys.map(k => `${k}: ${JSON.stringify(result.metadata[k])}`).join(', ');
277
- if (Object.keys(result.metadata).length > 3) {
278
- metaSample += ', ...';
279
- }
280
- }
281
- table.push([
282
- result.id.substring(0, 28),
283
- result.type || '-',
284
- result.score?.toFixed(3) || '-',
285
- metaSample.substring(0, 38)
286
- ]);
287
- }
288
- console.log(table.toString());
289
- console.log(chalk.gray(`\nFound ${results.length} results`));
290
- }
291
- }
292
- /**
293
- * Show statistics
294
- */
295
- static async stats(options) {
296
- const config = CortexConfig.getInstance();
297
- await config.load();
298
- const brainy = config.getBrainy();
299
- const stats = await brainy.getStatistics();
300
- if (options.json) {
301
- console.log(JSON.stringify(stats, null, 2));
302
- }
303
- else {
304
- console.log(chalk.cyan('\nšŸ“Š Brainy Statistics\n'));
305
- console.log(`Nouns: ${chalk.green(stats.totalNouns)}`);
306
- console.log(`Verbs: ${chalk.green(stats.totalVerbs)}`);
307
- console.log(`Storage Used: ${chalk.green(this.formatBytes(stats.storageUsed || 0))}`);
308
- console.log(`Index Size: ${chalk.green(this.formatBytes(stats.indexSize || 0))}`);
309
- if (stats.metadata) {
310
- console.log(`\nMetadata:`);
311
- for (const [key, value] of Object.entries(stats.metadata)) {
312
- console.log(` ${key}: ${chalk.gray(JSON.stringify(value))}`);
313
- }
314
- }
315
- }
316
- }
317
- /**
318
- * Create backup
319
- */
320
- static async backup(destination, options) {
321
- const config = CortexConfig.getInstance();
322
- await config.load();
323
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
324
- const backupName = `brainy-backup-${timestamp}`;
325
- const backupPath = destination || path.join(process.cwd(), `${backupName}.json`);
326
- const brainy = config.getBrainy();
327
- // Export all data
328
- const backup = {
329
- version: 1,
330
- timestamp: new Date().toISOString(),
331
- data: {
332
- nouns: [],
333
- verbs: []
334
- }
335
- };
336
- // Export nouns with pagination
337
- let offset = 0;
338
- let hasMore = true;
339
- while (hasMore) {
340
- const result = await brainy.getNouns({
341
- pagination: { offset, limit: 100 }
342
- });
343
- backup.data.nouns.push(...result.items);
344
- hasMore = result.hasMore;
345
- offset += 100;
346
- }
347
- // Export verbs with pagination
348
- offset = 0;
349
- hasMore = true;
350
- while (hasMore) {
351
- const result = await brainy.getVerbs({
352
- pagination: { offset, limit: 100 }
353
- });
354
- backup.data.verbs.push(...result.items);
355
- hasMore = result.hasMore;
356
- offset += 100;
357
- }
358
- // Include configuration if requested
359
- if (options.includeConfig) {
360
- backup.config = await config.list();
361
- }
362
- // Save backup
363
- const backupContent = JSON.stringify(backup, null, 2);
364
- if (options.compress) {
365
- const zlib = await import('zlib');
366
- const compressed = await new Promise((resolve, reject) => {
367
- zlib.gzip(Buffer.from(backupContent), (err, result) => {
368
- if (err)
369
- reject(err);
370
- else
371
- resolve(result);
372
- });
373
- });
374
- await fs.writeFile(`${backupPath}.gz`, compressed);
375
- return `${backupPath}.gz`;
376
- }
377
- else {
378
- await fs.writeFile(backupPath, backupContent);
379
- return backupPath;
380
- }
381
- }
382
- /**
383
- * Restore from backup
384
- */
385
- static async restore(source, options) {
386
- const config = CortexConfig.getInstance();
387
- await config.load();
388
- let backupContent;
389
- if (source.endsWith('.gz')) {
390
- const zlib = await import('zlib');
391
- const compressed = await fs.readFile(source);
392
- backupContent = await new Promise((resolve, reject) => {
393
- zlib.gunzip(compressed, (err, result) => {
394
- if (err)
395
- reject(err);
396
- else
397
- resolve(result.toString());
398
- });
399
- });
400
- }
401
- else {
402
- backupContent = await fs.readFile(source, 'utf-8');
403
- }
404
- const backup = JSON.parse(backupContent);
405
- const brainy = config.getBrainy();
406
- if (!options.force) {
407
- const rl = readline.createInterface({ input, output });
408
- const confirm = await rl.question(chalk.yellow('āš ļø This will overwrite existing data. Continue? (y/n): '));
409
- rl.close();
410
- if (confirm !== 'y') {
411
- console.log('Restore cancelled');
412
- return;
413
- }
414
- }
415
- // Restore nouns
416
- for (const noun of backup.data.nouns) {
417
- await brainy.addNoun(noun);
418
- }
419
- // Restore verbs
420
- for (const verb of backup.data.verbs) {
421
- await brainy.addVerb(verb);
422
- }
423
- console.log(chalk.green(`āœ… Restored ${backup.data.nouns.length} nouns and ${backup.data.verbs.length} verbs`));
424
- }
425
- /**
426
- * Inspect an item
427
- */
428
- static async inspect(id, options) {
429
- const config = CortexConfig.getInstance();
430
- await config.load();
431
- const brainy = config.getBrainy();
432
- try {
433
- // Try as noun first
434
- const noun = await brainy.getNoun(id);
435
- if (noun) {
436
- if (options.raw) {
437
- console.log(JSON.stringify(noun, null, 2));
438
- }
439
- else {
440
- console.log(chalk.cyan(`\nšŸ“¦ Noun: ${id}\n`));
441
- console.log(`Type: ${chalk.green(noun.type || 'unknown')}`);
442
- if (noun.metadata) {
443
- console.log(`Metadata:`);
444
- console.log(JSON.stringify(noun.metadata, null, 2));
445
- }
446
- }
447
- return;
448
- }
449
- }
450
- catch (e) {
451
- // Not a noun, try verb
452
- }
453
- try {
454
- // Try as verb
455
- const verb = await brainy.getVerb(id);
456
- if (verb) {
457
- if (options.raw) {
458
- console.log(JSON.stringify(verb, null, 2));
459
- }
460
- else {
461
- console.log(chalk.cyan(`\nšŸ”— Verb: ${id}\n`));
462
- console.log(`Type: ${chalk.green(verb.type)}`);
463
- console.log(`Source: ${chalk.blue(verb.source)}`);
464
- console.log(`Target: ${chalk.blue(verb.target)}`);
465
- if (verb.metadata) {
466
- console.log(`Metadata:`);
467
- console.log(JSON.stringify(verb.metadata, null, 2));
468
- }
469
- }
470
- return;
471
- }
472
- }
473
- catch (e) {
474
- // Not found
475
- }
476
- console.log(chalk.red(`Item '${id}' not found`));
477
- }
478
- /**
479
- * Reindex database
480
- */
481
- static async reindex(options) {
482
- const config = CortexConfig.getInstance();
483
- await config.load();
484
- const brainy = config.getBrainy();
485
- if (options.type === 'metadata' || options.type === 'all') {
486
- await brainy.rebuildMetadataIndex();
487
- }
488
- if (options.type === 'hnsw' || options.type === 'all') {
489
- // HNSW reindex would go here
490
- console.log(chalk.yellow('HNSW reindexing not yet implemented'));
491
- }
492
- }
493
- /**
494
- * Health check
495
- */
496
- static async health(options) {
497
- const config = CortexConfig.getInstance();
498
- try {
499
- await config.load();
500
- const brainy = config.getBrainy();
501
- const stats = await brainy.getStatistics();
502
- console.log(chalk.green('āœ… Cortex: Healthy'));
503
- console.log(chalk.green('āœ… Brainy: Connected'));
504
- console.log(chalk.green(`āœ… Storage: Active (${stats.totalNouns} nouns, ${stats.totalVerbs} verbs)`));
505
- if (options.verbose) {
506
- console.log('\nDetailed Health:');
507
- console.log(`- Config Path: ${path.join(process.cwd(), '.brainy/cortex.json')}`);
508
- console.log(`- Storage Type: ${config.getStorageConfig()?.type}`);
509
- console.log(`- Environment: ${config.getCurrentEnvironment()}`);
510
- }
511
- }
512
- catch (error) {
513
- console.log(chalk.red('āŒ Cortex: Error'));
514
- console.log(chalk.red(` ${error.message}`));
515
- process.exit(1);
516
- }
517
- }
518
- /**
519
- * Interactive shell
520
- */
521
- static async shell() {
522
- const config = CortexConfig.getInstance();
523
- await config.load();
524
- console.log(chalk.cyan('\n🧠 Cortex Interactive Shell\n'));
525
- console.log(chalk.gray('Type "help" for commands, "exit" to quit\n'));
526
- const rl = readline.createInterface({ input, output });
527
- while (true) {
528
- const command = await rl.question(chalk.cyan('cortex> '));
529
- if (command === 'exit' || command === 'quit') {
530
- break;
531
- }
532
- if (command === 'help') {
533
- console.log(`
534
- Available commands:
535
- query <pattern> - Search for data
536
- get <key> - Get config value
537
- set <key> <value> - Set config value
538
- stats - Show statistics
539
- health - Check health
540
- exit - Exit shell
541
- `);
542
- continue;
543
- }
544
- // Parse and execute command
545
- const [cmd, ...args] = command.split(' ');
546
- try {
547
- switch (cmd) {
548
- case 'query':
549
- await this.query(args.join(' '), { limit: 5 });
550
- break;
551
- case 'get':
552
- await this.configGet(args[0]);
553
- break;
554
- case 'set':
555
- await this.configSet(args[0], args.slice(1).join(' '), { encrypt: true });
556
- break;
557
- case 'stats':
558
- await this.stats({});
559
- break;
560
- case 'health':
561
- await this.health({});
562
- break;
563
- default:
564
- console.log(chalk.yellow(`Unknown command: ${cmd}`));
565
- }
566
- }
567
- catch (error) {
568
- console.log(chalk.red(`Error: ${error.message}`));
569
- }
570
- }
571
- rl.close();
572
- console.log(chalk.gray('\nGoodbye!\n'));
573
- }
574
- /**
575
- * Show status
576
- */
577
- static async status() {
578
- const config = CortexConfig.getInstance();
579
- try {
580
- await config.load();
581
- const brainy = config.getBrainy();
582
- const stats = await brainy.getStatistics();
583
- console.log(chalk.cyan('\n🧠 Cortex Status\n'));
584
- const table = new Table({
585
- style: { head: ['cyan'] }
586
- });
587
- table.push({ 'Configuration': chalk.green('āœ“ Loaded') }, { 'Storage': `${config.getStorageConfig()?.type}` }, { 'Environment': config.getCurrentEnvironment() }, { 'Encryption': chalk.green('āœ“ Enabled') }, { 'Total Nouns': stats.totalNouns.toString() }, { 'Total Verbs': stats.totalVerbs.toString() }, { 'Storage Used': this.formatBytes(stats.storageUsed || 0) });
588
- console.log(table.toString());
589
- // Check for active migrations
590
- const coordinationNoun = await brainy.getNoun('_system/coordination');
591
- if (coordinationNoun?.metadata?.migration?.enabled) {
592
- console.log(chalk.yellow('\nāš ļø Active Migration:'));
593
- console.log(` Target: ${coordinationNoun.metadata.migration.target.type}`);
594
- console.log(` Strategy: ${coordinationNoun.metadata.migration.strategy}`);
595
- }
596
- }
597
- catch (error) {
598
- console.log(chalk.red('āŒ Cortex not initialized'));
599
- console.log(chalk.gray('Run "cortex init" to get started'));
600
- }
601
- }
602
- /**
603
- * Format bytes to human readable
604
- */
605
- static formatBytes(bytes) {
606
- if (bytes === 0)
607
- return '0 B';
608
- const k = 1024;
609
- const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
610
- const i = Math.floor(Math.log(bytes) / Math.log(k));
611
- return `${(bytes / Math.pow(k, i)).toFixed(2)} ${sizes[i]}`;
612
- }
613
- }
614
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cortex/commands/index.ts"],"names":[],"mappings":"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"}