@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.
- package/bin/brainy.js +539 -387
- package/dist/augmentations/conduitAugmentations.js +1 -1
- package/dist/augmentations/conduitAugmentations.js.map +1 -1
- package/dist/augmentations/cortexSense.js +3 -3
- package/dist/augmentations/cortexSense.js.map +1 -1
- package/dist/brainyData.js +2 -1
- package/dist/brainyData.js.map +1 -1
- package/dist/browserFramework.minimal.d.ts +14 -0
- package/dist/browserFramework.minimal.js +31 -0
- package/dist/browserFramework.minimal.js.map +1 -0
- package/dist/cortex/backupRestore.js +2 -2
- package/dist/cortex/backupRestore.js.map +1 -1
- package/dist/cortex/cortex.d.ts +17 -2
- package/dist/cortex/cortex.js +262 -103
- package/dist/cortex/cortex.js.map +1 -1
- package/dist/cortex/neuralImport.js +2 -2
- package/dist/cortex/neuralImport.js.map +1 -1
- package/dist/cortex/serviceIntegration.js +2 -2
- package/dist/cortex/serviceIntegration.js.map +1 -1
- package/dist/distributed/configManager.js +1 -1
- package/dist/distributed/configManager.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/brainyMCPAdapter.js +1 -1
- package/dist/mcp/brainyMCPAdapter.js.map +1 -1
- package/dist/mcp/brainyMCPBroadcast.d.ts +82 -0
- package/dist/mcp/brainyMCPBroadcast.js +303 -0
- package/dist/mcp/brainyMCPBroadcast.js.map +1 -0
- package/dist/mcp/brainyMCPClient.d.ts +92 -0
- package/dist/mcp/brainyMCPClient.js +254 -0
- package/dist/mcp/brainyMCPClient.js.map +1 -0
- package/dist/mcp/brainyMCPService.js +1 -1
- package/dist/mcp/brainyMCPService.js.map +1 -1
- package/dist/mcp/mcpAugmentationToolset.js +1 -1
- package/dist/mcp/mcpAugmentationToolset.js.map +1 -1
- package/dist/universal/crypto.d.ts +64 -0
- package/dist/universal/crypto.js +215 -0
- package/dist/universal/crypto.js.map +1 -0
- package/dist/universal/events.d.ts +31 -0
- package/dist/universal/events.js +156 -0
- package/dist/universal/events.js.map +1 -0
- package/dist/universal/fs.d.ts +102 -0
- package/dist/universal/fs.js +304 -0
- package/dist/universal/fs.js.map +1 -0
- package/dist/universal/index.d.ts +16 -0
- package/dist/universal/index.js +23 -0
- package/dist/universal/index.js.map +1 -0
- package/dist/universal/path.d.ts +51 -0
- package/dist/universal/path.js +161 -0
- package/dist/universal/path.js.map +1 -0
- package/dist/universal/uuid.d.ts +10 -0
- package/dist/universal/uuid.js +21 -0
- package/dist/universal/uuid.js.map +1 -0
- package/package.json +55 -2
- package/dist/augmentationFactory.d.ts.map +0 -1
- package/dist/augmentationPipeline.d.ts.map +0 -1
- package/dist/augmentationRegistry.d.ts.map +0 -1
- package/dist/augmentationRegistryLoader.d.ts.map +0 -1
- package/dist/augmentations/conduitAugmentations.d.ts.map +0 -1
- package/dist/augmentations/memoryAugmentations.d.ts.map +0 -1
- package/dist/augmentations/serverSearchAugmentations.d.ts.map +0 -1
- package/dist/brainyData.d.ts.map +0 -1
- package/dist/browserFramework.d.ts.map +0 -1
- package/dist/coreTypes.d.ts.map +0 -1
- package/dist/cortex/cli.d.ts +0 -8
- package/dist/cortex/cli.js +0 -207
- package/dist/cortex/cli.js.map +0 -1
- package/dist/cortex/commands/index.d.ts +0 -79
- package/dist/cortex/commands/index.js +0 -614
- package/dist/cortex/commands/index.js.map +0 -1
- package/dist/cortex/config.d.ts +0 -112
- package/dist/cortex/config.js +0 -312
- package/dist/cortex/config.js.map +0 -1
- package/dist/cortex/licensingSystem.d.ts +0 -126
- package/dist/cortex/licensingSystem.js +0 -474
- package/dist/cortex/licensingSystem.js.map +0 -1
- package/dist/cortex/webhookManager.d.ts +0 -39
- package/dist/cortex/webhookManager.js +0 -326
- package/dist/cortex/webhookManager.js.map +0 -1
- package/dist/demo.d.ts.map +0 -1
- package/dist/distributed/configManager.d.ts.map +0 -1
- package/dist/distributed/domainDetector.d.ts.map +0 -1
- package/dist/distributed/hashPartitioner.d.ts.map +0 -1
- package/dist/distributed/healthMonitor.d.ts.map +0 -1
- package/dist/distributed/index.d.ts.map +0 -1
- package/dist/distributed/operationalModes.d.ts.map +0 -1
- package/dist/errors/brainyError.d.ts.map +0 -1
- package/dist/examples/basicUsage.d.ts.map +0 -1
- package/dist/hnsw/distributedSearch.d.ts.map +0 -1
- package/dist/hnsw/hnswIndex.d.ts.map +0 -1
- package/dist/hnsw/hnswIndexOptimized.d.ts.map +0 -1
- package/dist/hnsw/optimizedHNSWIndex.d.ts.map +0 -1
- package/dist/hnsw/partitionedHNSWIndex.d.ts.map +0 -1
- package/dist/hnsw/scaledHNSWSystem.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mcp/brainyMCPAdapter.d.ts.map +0 -1
- package/dist/mcp/brainyMCPService.d.ts.map +0 -1
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/mcpAugmentationToolset.d.ts.map +0 -1
- package/dist/pipeline.d.ts.map +0 -1
- package/dist/sequentialPipeline.d.ts.map +0 -1
- package/dist/setup.d.ts.map +0 -1
- package/dist/storage/adapters/baseStorageAdapter.d.ts.map +0 -1
- package/dist/storage/adapters/batchS3Operations.d.ts.map +0 -1
- package/dist/storage/adapters/fileSystemStorage.d.ts.map +0 -1
- package/dist/storage/adapters/memoryStorage.d.ts.map +0 -1
- package/dist/storage/adapters/opfsStorage.d.ts.map +0 -1
- package/dist/storage/adapters/optimizedS3Search.d.ts.map +0 -1
- package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +0 -1
- package/dist/storage/baseStorage.d.ts.map +0 -1
- package/dist/storage/cacheManager.d.ts.map +0 -1
- package/dist/storage/enhancedCacheManager.d.ts.map +0 -1
- package/dist/storage/readOnlyOptimizations.d.ts.map +0 -1
- package/dist/storage/storageFactory.d.ts.map +0 -1
- package/dist/types/augmentations.d.ts.map +0 -1
- package/dist/types/brainyDataInterface.d.ts.map +0 -1
- package/dist/types/distributedTypes.d.ts.map +0 -1
- package/dist/types/fileSystemTypes.d.ts.map +0 -1
- package/dist/types/graphTypes.d.ts.map +0 -1
- package/dist/types/mcpTypes.d.ts.map +0 -1
- package/dist/types/paginationTypes.d.ts.map +0 -1
- package/dist/types/pipelineTypes.d.ts.map +0 -1
- package/dist/types/tensorflowTypes.d.ts +0 -26
- package/dist/types/tensorflowTypes.d.ts.map +0 -1
- package/dist/types/tensorflowTypes.js +0 -6
- package/dist/types/tensorflowTypes.js.map +0 -1
- package/dist/unified.d.ts.map +0 -1
- package/dist/utils/autoConfiguration.d.ts.map +0 -1
- package/dist/utils/cacheAutoConfig.d.ts.map +0 -1
- package/dist/utils/crypto.d.ts.map +0 -1
- package/dist/utils/distance.d.ts.map +0 -1
- package/dist/utils/embedding.d.ts.map +0 -1
- package/dist/utils/environment.d.ts.map +0 -1
- package/dist/utils/fieldNameTracking.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/jsonProcessing.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/operationUtils.d.ts.map +0 -1
- package/dist/utils/robustModelLoader.d.ts +0 -112
- package/dist/utils/robustModelLoader.d.ts.map +0 -1
- package/dist/utils/robustModelLoader.js +0 -624
- package/dist/utils/robustModelLoader.js.map +0 -1
- package/dist/utils/searchCache.d.ts.map +0 -1
- package/dist/utils/statistics.d.ts.map +0 -1
- package/dist/utils/statisticsCollector.d.ts.map +0 -1
- package/dist/utils/textEncoding.d.ts.map +0 -1
- package/dist/utils/typeUtils.d.ts.map +0 -1
- package/dist/utils/version.d.ts.map +0 -1
- package/dist/utils/workerUtils.d.ts.map +0 -1
- package/dist/webhooks/webhookSystem.d.ts +0 -114
- package/dist/webhooks/webhookSystem.js +0 -321
- package/dist/webhooks/webhookSystem.js.map +0 -1
- package/dist/worker.d.ts.map +0 -1
package/dist/cortex/config.d.ts
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cortex Configuration Management
|
|
3
|
-
*
|
|
4
|
-
* Handles encrypted configuration storage, environment loading,
|
|
5
|
-
* and distributed coordination through Brainy.
|
|
6
|
-
*/
|
|
7
|
-
import { BrainyData } from '../brainyData.js';
|
|
8
|
-
import { StorageConfig } from '../coreTypes.js';
|
|
9
|
-
export interface CortexConfigData {
|
|
10
|
-
version: number;
|
|
11
|
-
storage: StorageConfig;
|
|
12
|
-
encryption?: {
|
|
13
|
-
enabled: boolean;
|
|
14
|
-
keyDerivation: 'pbkdf2' | 'scrypt';
|
|
15
|
-
iterations?: number;
|
|
16
|
-
};
|
|
17
|
-
coordination?: {
|
|
18
|
-
enabled: boolean;
|
|
19
|
-
realtime: boolean;
|
|
20
|
-
pollInterval: number;
|
|
21
|
-
};
|
|
22
|
-
environments?: {
|
|
23
|
-
current: string;
|
|
24
|
-
available: string[];
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export interface EncryptedValue {
|
|
28
|
-
encrypted: true;
|
|
29
|
-
algorithm: string;
|
|
30
|
-
iv: string;
|
|
31
|
-
authTag: string;
|
|
32
|
-
data: string;
|
|
33
|
-
}
|
|
34
|
-
export declare class CortexConfig {
|
|
35
|
-
private static instance;
|
|
36
|
-
private brainy?;
|
|
37
|
-
private config?;
|
|
38
|
-
private configPath;
|
|
39
|
-
private masterKey?;
|
|
40
|
-
private constructor();
|
|
41
|
-
static getInstance(): CortexConfig;
|
|
42
|
-
/**
|
|
43
|
-
* Initialize Cortex configuration
|
|
44
|
-
*/
|
|
45
|
-
init(options?: Partial<CortexConfigData>): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Load existing configuration
|
|
48
|
-
*/
|
|
49
|
-
load(): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Save configuration to disk
|
|
52
|
-
*/
|
|
53
|
-
private saveConfig;
|
|
54
|
-
/**
|
|
55
|
-
* Initialize Brainy instance
|
|
56
|
-
*/
|
|
57
|
-
private initBrainy;
|
|
58
|
-
/**
|
|
59
|
-
* Initialize or load master encryption key
|
|
60
|
-
*/
|
|
61
|
-
private initMasterKey;
|
|
62
|
-
/**
|
|
63
|
-
* Get Brainy instance
|
|
64
|
-
*/
|
|
65
|
-
getBrainy(): BrainyData;
|
|
66
|
-
/**
|
|
67
|
-
* Encrypt a value
|
|
68
|
-
*/
|
|
69
|
-
encrypt(value: string): EncryptedValue;
|
|
70
|
-
/**
|
|
71
|
-
* Decrypt a value
|
|
72
|
-
*/
|
|
73
|
-
decrypt(encryptedValue: EncryptedValue): string;
|
|
74
|
-
/**
|
|
75
|
-
* Set a configuration value in Brainy
|
|
76
|
-
*/
|
|
77
|
-
set(key: string, value: any, options?: {
|
|
78
|
-
encrypt?: boolean;
|
|
79
|
-
}): Promise<void>;
|
|
80
|
-
/**
|
|
81
|
-
* Get a configuration value from Brainy
|
|
82
|
-
*/
|
|
83
|
-
get(key: string): Promise<any>;
|
|
84
|
-
/**
|
|
85
|
-
* List all configuration keys
|
|
86
|
-
*/
|
|
87
|
-
list(): Promise<Array<{
|
|
88
|
-
key: string;
|
|
89
|
-
encrypted: boolean;
|
|
90
|
-
environment: string;
|
|
91
|
-
}>>;
|
|
92
|
-
/**
|
|
93
|
-
* Load all configurations as environment variables
|
|
94
|
-
*/
|
|
95
|
-
loadEnvironment(): Promise<Record<string, string>>;
|
|
96
|
-
/**
|
|
97
|
-
* Import configuration from .env file
|
|
98
|
-
*/
|
|
99
|
-
importEnv(filePath: string): Promise<void>;
|
|
100
|
-
/**
|
|
101
|
-
* Get storage configuration
|
|
102
|
-
*/
|
|
103
|
-
getStorageConfig(): StorageConfig | undefined;
|
|
104
|
-
/**
|
|
105
|
-
* Get current environment
|
|
106
|
-
*/
|
|
107
|
-
getCurrentEnvironment(): string;
|
|
108
|
-
/**
|
|
109
|
-
* Switch environment
|
|
110
|
-
*/
|
|
111
|
-
switchEnvironment(environment: string): Promise<void>;
|
|
112
|
-
}
|
package/dist/cortex/config.js
DELETED
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cortex Configuration Management
|
|
3
|
-
*
|
|
4
|
-
* Handles encrypted configuration storage, environment loading,
|
|
5
|
-
* and distributed coordination through Brainy.
|
|
6
|
-
*/
|
|
7
|
-
import { BrainyData } from '../brainyData.js';
|
|
8
|
-
import * as crypto from 'crypto';
|
|
9
|
-
import * as fs from 'fs/promises';
|
|
10
|
-
import * as path from 'path';
|
|
11
|
-
import { fileURLToPath } from 'url';
|
|
12
|
-
import { dirname } from 'path';
|
|
13
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const __dirname = dirname(__filename);
|
|
15
|
-
export class CortexConfig {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.configPath = path.join(process.cwd(), '.brainy', 'cortex.json');
|
|
18
|
-
}
|
|
19
|
-
static getInstance() {
|
|
20
|
-
if (!CortexConfig.instance) {
|
|
21
|
-
CortexConfig.instance = new CortexConfig();
|
|
22
|
-
}
|
|
23
|
-
return CortexConfig.instance;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Initialize Cortex configuration
|
|
27
|
-
*/
|
|
28
|
-
async init(options = {}) {
|
|
29
|
-
// Create .brainy directory if it doesn't exist
|
|
30
|
-
const brainyDir = path.dirname(this.configPath);
|
|
31
|
-
await fs.mkdir(brainyDir, { recursive: true });
|
|
32
|
-
// Default configuration
|
|
33
|
-
const defaultConfig = {
|
|
34
|
-
version: 1,
|
|
35
|
-
storage: options.storage || { type: 'memory' },
|
|
36
|
-
encryption: {
|
|
37
|
-
enabled: true,
|
|
38
|
-
keyDerivation: 'pbkdf2',
|
|
39
|
-
iterations: 100000
|
|
40
|
-
},
|
|
41
|
-
coordination: {
|
|
42
|
-
enabled: true,
|
|
43
|
-
realtime: false,
|
|
44
|
-
pollInterval: 30000 // 30 seconds
|
|
45
|
-
},
|
|
46
|
-
environments: {
|
|
47
|
-
current: process.env.NODE_ENV || 'development',
|
|
48
|
-
available: ['development', 'staging', 'production']
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
this.config = { ...defaultConfig, ...options };
|
|
52
|
-
// Save configuration
|
|
53
|
-
await this.saveConfig();
|
|
54
|
-
// Initialize Brainy with the configuration
|
|
55
|
-
await this.initBrainy();
|
|
56
|
-
// Generate or load master key
|
|
57
|
-
await this.initMasterKey();
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Load existing configuration
|
|
61
|
-
*/
|
|
62
|
-
async load() {
|
|
63
|
-
try {
|
|
64
|
-
const configData = await fs.readFile(this.configPath, 'utf-8');
|
|
65
|
-
this.config = JSON.parse(configData);
|
|
66
|
-
await this.initBrainy();
|
|
67
|
-
await this.initMasterKey();
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
throw new Error(`No Cortex configuration found. Run 'cortex init' first.`);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Save configuration to disk
|
|
75
|
-
*/
|
|
76
|
-
async saveConfig() {
|
|
77
|
-
await fs.writeFile(this.configPath, JSON.stringify(this.config, null, 2), 'utf-8');
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Initialize Brainy instance
|
|
81
|
-
*/
|
|
82
|
-
async initBrainy() {
|
|
83
|
-
if (!this.config) {
|
|
84
|
-
throw new Error('Configuration not loaded');
|
|
85
|
-
}
|
|
86
|
-
this.brainy = new BrainyData({
|
|
87
|
-
storage: this.config.storage,
|
|
88
|
-
writeOnlyMode: false,
|
|
89
|
-
enableMetadataIndexing: true
|
|
90
|
-
});
|
|
91
|
-
await this.brainy.init();
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Initialize or load master encryption key
|
|
95
|
-
*/
|
|
96
|
-
async initMasterKey() {
|
|
97
|
-
const keyPath = path.join(process.cwd(), '.brainy', 'cortex.key');
|
|
98
|
-
// Try to load from environment first
|
|
99
|
-
if (process.env.CORTEX_MASTER_KEY) {
|
|
100
|
-
this.masterKey = Buffer.from(process.env.CORTEX_MASTER_KEY, 'base64');
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
// Try to load from file
|
|
104
|
-
try {
|
|
105
|
-
const keyData = await fs.readFile(keyPath, 'utf-8');
|
|
106
|
-
this.masterKey = Buffer.from(keyData, 'base64');
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
// Generate new key
|
|
110
|
-
this.masterKey = crypto.randomBytes(32);
|
|
111
|
-
await fs.writeFile(keyPath, this.masterKey.toString('base64'), 'utf-8');
|
|
112
|
-
// Set restrictive permissions (Unix-like systems)
|
|
113
|
-
try {
|
|
114
|
-
await fs.chmod(keyPath, 0o600);
|
|
115
|
-
}
|
|
116
|
-
catch (e) {
|
|
117
|
-
// Windows doesn't support chmod, ignore
|
|
118
|
-
}
|
|
119
|
-
console.log('🔐 Generated new master key at .brainy/cortex.key');
|
|
120
|
-
console.log('⚠️ Keep this key safe! You\'ll need it to decrypt your configs.');
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Get Brainy instance
|
|
125
|
-
*/
|
|
126
|
-
getBrainy() {
|
|
127
|
-
if (!this.brainy) {
|
|
128
|
-
throw new Error('Brainy not initialized. Run load() first.');
|
|
129
|
-
}
|
|
130
|
-
return this.brainy;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Encrypt a value
|
|
134
|
-
*/
|
|
135
|
-
encrypt(value) {
|
|
136
|
-
if (!this.masterKey) {
|
|
137
|
-
throw new Error('Master key not initialized');
|
|
138
|
-
}
|
|
139
|
-
const algorithm = 'aes-256-gcm';
|
|
140
|
-
const iv = crypto.randomBytes(16);
|
|
141
|
-
const cipher = crypto.createCipheriv(algorithm, this.masterKey, iv);
|
|
142
|
-
let encrypted = cipher.update(value, 'utf8', 'hex');
|
|
143
|
-
encrypted += cipher.final('hex');
|
|
144
|
-
const authTag = cipher.getAuthTag();
|
|
145
|
-
return {
|
|
146
|
-
encrypted: true,
|
|
147
|
-
algorithm,
|
|
148
|
-
iv: iv.toString('hex'),
|
|
149
|
-
authTag: authTag.toString('hex'),
|
|
150
|
-
data: encrypted
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Decrypt a value
|
|
155
|
-
*/
|
|
156
|
-
decrypt(encryptedValue) {
|
|
157
|
-
if (!this.masterKey) {
|
|
158
|
-
throw new Error('Master key not initialized');
|
|
159
|
-
}
|
|
160
|
-
const decipher = crypto.createDecipheriv(encryptedValue.algorithm, this.masterKey, Buffer.from(encryptedValue.iv, 'hex'));
|
|
161
|
-
decipher.setAuthTag(Buffer.from(encryptedValue.authTag, 'hex'));
|
|
162
|
-
let decrypted = decipher.update(encryptedValue.data, 'hex', 'utf8');
|
|
163
|
-
decrypted += decipher.final('utf8');
|
|
164
|
-
return decrypted;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Set a configuration value in Brainy
|
|
168
|
-
*/
|
|
169
|
-
async set(key, value, options = {}) {
|
|
170
|
-
if (!this.brainy) {
|
|
171
|
-
await this.load();
|
|
172
|
-
}
|
|
173
|
-
const configKey = `_cortex/config/${key}`;
|
|
174
|
-
const configValue = options.encrypt && typeof value === 'string'
|
|
175
|
-
? this.encrypt(value)
|
|
176
|
-
: value;
|
|
177
|
-
await this.brainy.addNoun({
|
|
178
|
-
id: configKey,
|
|
179
|
-
type: 'cortex_config',
|
|
180
|
-
metadata: {
|
|
181
|
-
key,
|
|
182
|
-
value: configValue,
|
|
183
|
-
encrypted: options.encrypt || false,
|
|
184
|
-
environment: this.config?.environments?.current,
|
|
185
|
-
updatedAt: new Date().toISOString()
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Get a configuration value from Brainy
|
|
191
|
-
*/
|
|
192
|
-
async get(key) {
|
|
193
|
-
if (!this.brainy) {
|
|
194
|
-
await this.load();
|
|
195
|
-
}
|
|
196
|
-
const configKey = `_cortex/config/${key}`;
|
|
197
|
-
try {
|
|
198
|
-
const noun = await this.brainy.getNoun(configKey);
|
|
199
|
-
if (!noun?.metadata?.value) {
|
|
200
|
-
return undefined;
|
|
201
|
-
}
|
|
202
|
-
const value = noun.metadata.value;
|
|
203
|
-
// Decrypt if needed
|
|
204
|
-
if (value.encrypted === true) {
|
|
205
|
-
return this.decrypt(value);
|
|
206
|
-
}
|
|
207
|
-
return value;
|
|
208
|
-
}
|
|
209
|
-
catch (error) {
|
|
210
|
-
return undefined;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* List all configuration keys
|
|
215
|
-
*/
|
|
216
|
-
async list() {
|
|
217
|
-
if (!this.brainy) {
|
|
218
|
-
await this.load();
|
|
219
|
-
}
|
|
220
|
-
const result = await this.brainy.getNouns({
|
|
221
|
-
filter: { type: 'cortex_config' },
|
|
222
|
-
pagination: { limit: 1000 }
|
|
223
|
-
});
|
|
224
|
-
return result.items.map(noun => ({
|
|
225
|
-
key: noun.metadata?.key || noun.id.replace('_cortex/config/', ''),
|
|
226
|
-
encrypted: noun.metadata?.encrypted || false,
|
|
227
|
-
environment: noun.metadata?.environment || 'default'
|
|
228
|
-
}));
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Load all configurations as environment variables
|
|
232
|
-
*/
|
|
233
|
-
async loadEnvironment() {
|
|
234
|
-
if (!this.brainy) {
|
|
235
|
-
await this.load();
|
|
236
|
-
}
|
|
237
|
-
const configs = await this.brainy.getNouns({
|
|
238
|
-
filter: {
|
|
239
|
-
type: 'cortex_config',
|
|
240
|
-
'metadata.environment': this.config?.environments?.current
|
|
241
|
-
},
|
|
242
|
-
pagination: { limit: 1000 }
|
|
243
|
-
});
|
|
244
|
-
const env = {};
|
|
245
|
-
for (const config of configs.items) {
|
|
246
|
-
const key = config.metadata?.key || config.id.replace('_cortex/config/', '');
|
|
247
|
-
let value = config.metadata?.value;
|
|
248
|
-
// Decrypt if needed
|
|
249
|
-
if (value?.encrypted === true) {
|
|
250
|
-
value = this.decrypt(value);
|
|
251
|
-
}
|
|
252
|
-
// Convert to string if needed
|
|
253
|
-
if (typeof value !== 'string') {
|
|
254
|
-
value = JSON.stringify(value);
|
|
255
|
-
}
|
|
256
|
-
// Use the key as-is (could be nested like 'database.url')
|
|
257
|
-
// Or convert to UPPER_SNAKE_CASE
|
|
258
|
-
const envKey = key.toUpperCase().replace(/\./g, '_').replace(/-/g, '_');
|
|
259
|
-
env[envKey] = value;
|
|
260
|
-
}
|
|
261
|
-
return env;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Import configuration from .env file
|
|
265
|
-
*/
|
|
266
|
-
async importEnv(filePath) {
|
|
267
|
-
const content = await fs.readFile(filePath, 'utf-8');
|
|
268
|
-
const lines = content.split('\n');
|
|
269
|
-
for (const line of lines) {
|
|
270
|
-
// Skip comments and empty lines
|
|
271
|
-
if (!line.trim() || line.startsWith('#')) {
|
|
272
|
-
continue;
|
|
273
|
-
}
|
|
274
|
-
const [key, ...valueParts] = line.split('=');
|
|
275
|
-
const value = valueParts.join('=').trim();
|
|
276
|
-
if (key && value) {
|
|
277
|
-
// Detect if it looks like a secret
|
|
278
|
-
const isSecret = key.includes('KEY') ||
|
|
279
|
-
key.includes('SECRET') ||
|
|
280
|
-
key.includes('PASSWORD') ||
|
|
281
|
-
key.includes('TOKEN');
|
|
282
|
-
await this.set(key.trim(), value, { encrypt: isSecret });
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Get storage configuration
|
|
288
|
-
*/
|
|
289
|
-
getStorageConfig() {
|
|
290
|
-
return this.config?.storage;
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Get current environment
|
|
294
|
-
*/
|
|
295
|
-
getCurrentEnvironment() {
|
|
296
|
-
return this.config?.environments?.current || 'development';
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Switch environment
|
|
300
|
-
*/
|
|
301
|
-
async switchEnvironment(environment) {
|
|
302
|
-
if (!this.config) {
|
|
303
|
-
await this.load();
|
|
304
|
-
}
|
|
305
|
-
if (!this.config.environments?.available.includes(environment)) {
|
|
306
|
-
throw new Error(`Unknown environment: ${environment}`);
|
|
307
|
-
}
|
|
308
|
-
this.config.environments.current = environment;
|
|
309
|
-
await this.saveConfig();
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cortex/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Brainy Premium Licensing System - Atomic Age Revenue Engine
|
|
3
|
-
*
|
|
4
|
-
* 🧠 Manages premium augmentation licenses and subscriptions
|
|
5
|
-
* ⚛️ 1950s retro sci-fi themed licensing with atomic age aesthetics
|
|
6
|
-
* 🚀 Scalable license validation for premium features
|
|
7
|
-
*/
|
|
8
|
-
export interface License {
|
|
9
|
-
id: string;
|
|
10
|
-
type: 'premium' | 'enterprise' | 'trial';
|
|
11
|
-
product: string;
|
|
12
|
-
tier: 'basic' | 'professional' | 'enterprise';
|
|
13
|
-
status: 'active' | 'expired' | 'suspended' | 'trial';
|
|
14
|
-
issuedTo: string;
|
|
15
|
-
issuedAt: string;
|
|
16
|
-
expiresAt: string;
|
|
17
|
-
features: string[];
|
|
18
|
-
limits: {
|
|
19
|
-
apiCallsPerMonth?: number;
|
|
20
|
-
dataVolumeGB?: number;
|
|
21
|
-
concurrentConnections?: number;
|
|
22
|
-
customConnectors?: number;
|
|
23
|
-
};
|
|
24
|
-
metadata: {
|
|
25
|
-
customerName: string;
|
|
26
|
-
customerEmail: string;
|
|
27
|
-
subscriptionId?: string;
|
|
28
|
-
paymentStatus?: 'active' | 'past_due' | 'canceled';
|
|
29
|
-
};
|
|
30
|
-
signature: string;
|
|
31
|
-
}
|
|
32
|
-
export interface LicenseValidationResult {
|
|
33
|
-
valid: boolean;
|
|
34
|
-
license?: License;
|
|
35
|
-
reason?: string;
|
|
36
|
-
expiresIn?: number;
|
|
37
|
-
usage?: {
|
|
38
|
-
apiCalls: number;
|
|
39
|
-
dataUsed: number;
|
|
40
|
-
connectionsUsed: number;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export interface PremiumFeature {
|
|
44
|
-
id: string;
|
|
45
|
-
name: string;
|
|
46
|
-
description: string;
|
|
47
|
-
category: 'connector' | 'intelligence' | 'enterprise';
|
|
48
|
-
requiredTier: 'basic' | 'professional' | 'enterprise';
|
|
49
|
-
monthlyPrice: number;
|
|
50
|
-
yearlyPrice: number;
|
|
51
|
-
trialDays: number;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Premium Licensing and Revenue Management System
|
|
55
|
-
*/
|
|
56
|
-
export declare class LicensingSystem {
|
|
57
|
-
private licensePath;
|
|
58
|
-
private premiumFeatures;
|
|
59
|
-
private activeLicenses;
|
|
60
|
-
private colors;
|
|
61
|
-
private emojis;
|
|
62
|
-
constructor();
|
|
63
|
-
/**
|
|
64
|
-
* Initialize the licensing system
|
|
65
|
-
*/
|
|
66
|
-
initialize(): Promise<void>;
|
|
67
|
-
/**
|
|
68
|
-
* Check if a premium feature is licensed and available
|
|
69
|
-
*/
|
|
70
|
-
validateFeature(featureId: string, customerId?: string): Promise<LicenseValidationResult>;
|
|
71
|
-
/**
|
|
72
|
-
* Display premium features catalog
|
|
73
|
-
*/
|
|
74
|
-
displayFeatureCatalog(): Promise<void>;
|
|
75
|
-
/**
|
|
76
|
-
* Activate a trial license for a feature
|
|
77
|
-
*/
|
|
78
|
-
startTrial(featureId: string, customerInfo: {
|
|
79
|
-
name: string;
|
|
80
|
-
email: string;
|
|
81
|
-
}): Promise<License | null>;
|
|
82
|
-
/**
|
|
83
|
-
* Check license status and display information
|
|
84
|
-
*/
|
|
85
|
-
checkLicenseStatus(licenseId?: string): Promise<void>;
|
|
86
|
-
/**
|
|
87
|
-
* Initialize premium features catalog
|
|
88
|
-
*/
|
|
89
|
-
private initializePremiumFeatures;
|
|
90
|
-
/**
|
|
91
|
-
* Load licenses from storage
|
|
92
|
-
*/
|
|
93
|
-
private loadLicenses;
|
|
94
|
-
/**
|
|
95
|
-
* Save licenses to storage
|
|
96
|
-
*/
|
|
97
|
-
private saveLicenses;
|
|
98
|
-
/**
|
|
99
|
-
* Validate all loaded licenses
|
|
100
|
-
*/
|
|
101
|
-
private validateAllLicenses;
|
|
102
|
-
/**
|
|
103
|
-
* Generate cryptographic signature for license
|
|
104
|
-
*/
|
|
105
|
-
private generateLicenseSignature;
|
|
106
|
-
/**
|
|
107
|
-
* Validate license signature
|
|
108
|
-
*/
|
|
109
|
-
private validateLicenseSignature;
|
|
110
|
-
/**
|
|
111
|
-
* Generate unique license ID
|
|
112
|
-
*/
|
|
113
|
-
private generateLicenseId;
|
|
114
|
-
/**
|
|
115
|
-
* Get current usage statistics for a license
|
|
116
|
-
*/
|
|
117
|
-
private getCurrentUsage;
|
|
118
|
-
/**
|
|
119
|
-
* Display detailed license information
|
|
120
|
-
*/
|
|
121
|
-
private displayLicenseDetails;
|
|
122
|
-
/**
|
|
123
|
-
* Display all active licenses
|
|
124
|
-
*/
|
|
125
|
-
private displayAllLicenses;
|
|
126
|
-
}
|