@soulcraft/brainy 0.36.0 → 0.38.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 (31) hide show
  1. package/README.md +712 -1474
  2. package/dist/brainyData.d.ts +37 -0
  3. package/dist/distributed/configManager.d.ts +97 -0
  4. package/dist/distributed/domainDetector.d.ts +77 -0
  5. package/dist/distributed/hashPartitioner.d.ts +77 -0
  6. package/dist/distributed/healthMonitor.d.ts +110 -0
  7. package/dist/distributed/index.d.ts +10 -0
  8. package/dist/distributed/operationalModes.d.ts +104 -0
  9. package/dist/hnsw/distributedSearch.d.ts +118 -0
  10. package/dist/hnsw/distributedSearch.d.ts.map +1 -0
  11. package/dist/hnsw/optimizedHNSWIndex.d.ts +97 -0
  12. package/dist/hnsw/optimizedHNSWIndex.d.ts.map +1 -0
  13. package/dist/hnsw/partitionedHNSWIndex.d.ts +101 -0
  14. package/dist/hnsw/partitionedHNSWIndex.d.ts.map +1 -0
  15. package/dist/hnsw/scaledHNSWSystem.d.ts +142 -0
  16. package/dist/hnsw/scaledHNSWSystem.d.ts.map +1 -0
  17. package/dist/storage/adapters/batchS3Operations.d.ts +71 -0
  18. package/dist/storage/adapters/batchS3Operations.d.ts.map +1 -0
  19. package/dist/storage/enhancedCacheManager.d.ts +141 -0
  20. package/dist/storage/enhancedCacheManager.d.ts.map +1 -0
  21. package/dist/storage/readOnlyOptimizations.d.ts +133 -0
  22. package/dist/storage/readOnlyOptimizations.d.ts.map +1 -0
  23. package/dist/types/distributedTypes.d.ts +197 -0
  24. package/dist/types/distributedTypes.d.ts.map +1 -0
  25. package/dist/unified.js +1383 -2
  26. package/dist/unified.min.js +991 -991
  27. package/dist/utils/autoConfiguration.d.ts +125 -0
  28. package/dist/utils/autoConfiguration.d.ts.map +1 -0
  29. package/dist/utils/crypto.d.ts +25 -0
  30. package/dist/utils/crypto.d.ts.map +1 -0
  31. package/package.json +1 -1
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Automatic Configuration System for Brainy Vector Database
3
+ * Detects environment, resources, and data patterns to provide optimal settings
4
+ */
5
+ export interface AutoConfigResult {
6
+ environment: 'browser' | 'nodejs' | 'serverless' | 'unknown';
7
+ availableMemory: number;
8
+ cpuCores: number;
9
+ threadingAvailable: boolean;
10
+ persistentStorageAvailable: boolean;
11
+ s3StorageDetected: boolean;
12
+ recommendedConfig: {
13
+ expectedDatasetSize: number;
14
+ maxMemoryUsage: number;
15
+ targetSearchLatency: number;
16
+ enablePartitioning: boolean;
17
+ enableCompression: boolean;
18
+ enableDistributedSearch: boolean;
19
+ enablePredictiveCaching: boolean;
20
+ partitionStrategy: 'semantic' | 'hash';
21
+ maxNodesPerPartition: number;
22
+ semanticClusters: number;
23
+ };
24
+ optimizationFlags: {
25
+ useMemoryMapping: boolean;
26
+ aggressiveCaching: boolean;
27
+ backgroundOptimization: boolean;
28
+ compressionLevel: 'none' | 'light' | 'aggressive';
29
+ };
30
+ }
31
+ export interface DatasetAnalysis {
32
+ estimatedSize: number;
33
+ vectorDimension?: number;
34
+ growthRate?: number;
35
+ accessPatterns?: 'read-heavy' | 'write-heavy' | 'balanced';
36
+ }
37
+ /**
38
+ * Automatic configuration system that detects environment and optimizes settings
39
+ */
40
+ export declare class AutoConfiguration {
41
+ private static instance;
42
+ private cachedConfig;
43
+ private datasetStats;
44
+ private constructor();
45
+ static getInstance(): AutoConfiguration;
46
+ /**
47
+ * Detect environment and generate optimal configuration
48
+ */
49
+ detectAndConfigure(hints?: {
50
+ expectedDataSize?: number;
51
+ s3Available?: boolean;
52
+ memoryBudget?: number;
53
+ }): Promise<AutoConfigResult>;
54
+ /**
55
+ * Update configuration based on runtime dataset analysis
56
+ */
57
+ adaptToDataset(analysis: DatasetAnalysis): Promise<AutoConfigResult>;
58
+ /**
59
+ * Learn from performance metrics and adjust configuration
60
+ */
61
+ learnFromPerformance(metrics: {
62
+ averageSearchTime: number;
63
+ memoryUsage: number;
64
+ cacheHitRate: number;
65
+ errorRate: number;
66
+ }): Promise<Partial<AutoConfigResult['recommendedConfig']>>;
67
+ /**
68
+ * Get minimal configuration for quick setup
69
+ */
70
+ getQuickSetupConfig(scenario: 'small' | 'medium' | 'large' | 'enterprise'): Promise<{
71
+ expectedDatasetSize: number;
72
+ maxMemoryUsage: number;
73
+ targetSearchLatency: number;
74
+ s3Required: boolean;
75
+ }>;
76
+ /**
77
+ * Detect the current runtime environment
78
+ */
79
+ private detectEnvironment;
80
+ /**
81
+ * Detect available system resources
82
+ */
83
+ private detectResources;
84
+ /**
85
+ * Detect available storage capabilities
86
+ */
87
+ private detectStorageCapabilities;
88
+ /**
89
+ * Generate recommended configuration based on detected environment and resources
90
+ */
91
+ private generateRecommendedConfig;
92
+ /**
93
+ * Generate optimization flags based on environment and resources
94
+ */
95
+ private generateOptimizationFlags;
96
+ /**
97
+ * Adapt configuration based on actual dataset analysis
98
+ */
99
+ private adaptConfigurationToData;
100
+ /**
101
+ * Estimate dataset size if not provided
102
+ */
103
+ private estimateDatasetSize;
104
+ /**
105
+ * Reset cached configuration (for testing or manual refresh)
106
+ */
107
+ resetCache(): void;
108
+ }
109
+ /**
110
+ * Convenience function for quick auto-configuration
111
+ */
112
+ export declare function autoConfigureBrainy(hints?: {
113
+ expectedDataSize?: number;
114
+ s3Available?: boolean;
115
+ memoryBudget?: number;
116
+ }): Promise<AutoConfigResult>;
117
+ /**
118
+ * Get quick setup configuration for common scenarios
119
+ */
120
+ export declare function getQuickSetup(scenario: 'small' | 'medium' | 'large' | 'enterprise'): Promise<{
121
+ expectedDatasetSize: number;
122
+ maxMemoryUsage: number;
123
+ targetSearchLatency: number;
124
+ s3Required: boolean;
125
+ }>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoConfiguration.d.ts","sourceRoot":"","sources":["../../src/utils/autoConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Cross-platform crypto utilities
3
+ * Provides hashing functions that work in both Node.js and browser environments
4
+ */
5
+ /**
6
+ * Simple string hash function that works in all environments
7
+ * Uses djb2 algorithm - fast and good distribution
8
+ * @param str - String to hash
9
+ * @returns Positive integer hash
10
+ */
11
+ export declare function hashString(str: string): number;
12
+ /**
13
+ * Alternative: FNV-1a hash algorithm
14
+ * Good distribution and fast
15
+ * @param str - String to hash
16
+ * @returns Positive integer hash
17
+ */
18
+ export declare function fnv1aHash(str: string): number;
19
+ /**
20
+ * Generate a deterministic hash for partitioning
21
+ * Uses the most appropriate algorithm for the environment
22
+ * @param input - Input string to hash
23
+ * @returns Positive integer hash suitable for modulo operations
24
+ */
25
+ export declare function getPartitionHash(input: string): number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ9C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAItD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulcraft/brainy",
3
- "version": "0.36.0",
3
+ "version": "0.38.0",
4
4
  "description": "A vector graph database using HNSW indexing with Origin Private File System storage",
5
5
  "main": "dist/unified.js",
6
6
  "module": "dist/unified.js",