@soulcraft/brainy 0.40.0 → 0.43.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 (152) hide show
  1. package/README.md +605 -194
  2. package/dist/augmentations/conduitAugmentations.js +1158 -0
  3. package/dist/augmentations/conduitAugmentations.js.map +1 -0
  4. package/dist/augmentations/memoryAugmentations.d.ts +2 -0
  5. package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
  6. package/dist/augmentations/memoryAugmentations.js +270 -0
  7. package/dist/augmentations/memoryAugmentations.js.map +1 -0
  8. package/dist/augmentations/serverSearchAugmentations.js +531 -0
  9. package/dist/augmentations/serverSearchAugmentations.js.map +1 -0
  10. package/dist/browserFramework.d.ts +15 -0
  11. package/dist/demo.d.ts +106 -0
  12. package/dist/examples/basicUsage.js +118 -0
  13. package/dist/examples/basicUsage.js.map +1 -0
  14. package/dist/hnsw/distributedSearch.js +452 -0
  15. package/dist/hnsw/distributedSearch.js.map +1 -0
  16. package/dist/hnsw/hnswIndex.js +602 -0
  17. package/dist/hnsw/hnswIndex.js.map +1 -0
  18. package/dist/hnsw/hnswIndexOptimized.js +471 -0
  19. package/dist/hnsw/hnswIndexOptimized.js.map +1 -0
  20. package/dist/hnsw/optimizedHNSWIndex.js +313 -0
  21. package/dist/hnsw/optimizedHNSWIndex.js.map +1 -0
  22. package/dist/hnsw/partitionedHNSWIndex.js +304 -0
  23. package/dist/hnsw/partitionedHNSWIndex.js.map +1 -0
  24. package/dist/hnsw/scaledHNSWSystem.js +559 -0
  25. package/dist/hnsw/scaledHNSWSystem.js.map +1 -0
  26. package/dist/index.d.ts +5 -3
  27. package/dist/index.js +81 -0
  28. package/dist/mcp/brainyMCPAdapter.js +142 -0
  29. package/dist/mcp/brainyMCPAdapter.js.map +1 -0
  30. package/dist/mcp/brainyMCPService.js +248 -0
  31. package/dist/mcp/brainyMCPService.js.map +1 -0
  32. package/dist/mcp/index.js +17 -0
  33. package/dist/mcp/index.js.map +1 -0
  34. package/dist/mcp/mcpAugmentationToolset.js +180 -0
  35. package/dist/mcp/mcpAugmentationToolset.js.map +1 -0
  36. package/dist/storage/adapters/baseStorageAdapter.js +349 -0
  37. package/dist/storage/adapters/baseStorageAdapter.js.map +1 -0
  38. package/dist/storage/adapters/batchS3Operations.js +287 -0
  39. package/dist/storage/adapters/batchS3Operations.js.map +1 -0
  40. package/dist/storage/adapters/fileSystemStorage.js +846 -0
  41. package/dist/storage/adapters/fileSystemStorage.js.map +1 -0
  42. package/dist/storage/adapters/memoryStorage.js +532 -0
  43. package/dist/storage/adapters/memoryStorage.js.map +1 -0
  44. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  45. package/dist/storage/adapters/opfsStorage.js +1118 -0
  46. package/dist/storage/adapters/opfsStorage.js.map +1 -0
  47. package/dist/storage/adapters/optimizedS3Search.d.ts +79 -0
  48. package/dist/storage/adapters/optimizedS3Search.d.ts.map +1 -0
  49. package/dist/storage/adapters/optimizedS3Search.js +248 -0
  50. package/dist/storage/adapters/optimizedS3Search.js.map +1 -0
  51. package/dist/storage/adapters/s3CompatibleStorage.d.ts +21 -0
  52. package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +1 -1
  53. package/dist/storage/adapters/s3CompatibleStorage.js +2026 -0
  54. package/dist/storage/adapters/s3CompatibleStorage.js.map +1 -0
  55. package/dist/storage/baseStorage.d.ts +1 -0
  56. package/dist/storage/baseStorage.d.ts.map +1 -1
  57. package/dist/storage/baseStorage.js +603 -0
  58. package/dist/storage/baseStorage.js.map +1 -0
  59. package/dist/storage/cacheManager.js +1306 -0
  60. package/dist/storage/cacheManager.js.map +1 -0
  61. package/dist/storage/enhancedCacheManager.js +520 -0
  62. package/dist/storage/enhancedCacheManager.js.map +1 -0
  63. package/dist/storage/readOnlyOptimizations.js +425 -0
  64. package/dist/storage/readOnlyOptimizations.js.map +1 -0
  65. package/dist/storage/storageFactory.d.ts +0 -1
  66. package/dist/storage/storageFactory.d.ts.map +1 -1
  67. package/dist/storage/storageFactory.js +227 -0
  68. package/dist/storage/storageFactory.js.map +1 -0
  69. package/dist/types/augmentations.js +16 -0
  70. package/dist/types/augmentations.js.map +1 -0
  71. package/dist/types/brainyDataInterface.js +8 -0
  72. package/dist/types/brainyDataInterface.js.map +1 -0
  73. package/dist/types/distributedTypes.js +6 -0
  74. package/dist/types/distributedTypes.js.map +1 -0
  75. package/dist/types/fileSystemTypes.js +8 -0
  76. package/dist/types/fileSystemTypes.js.map +1 -0
  77. package/dist/types/graphTypes.js +247 -0
  78. package/dist/types/graphTypes.js.map +1 -0
  79. package/dist/types/mcpTypes.js +22 -0
  80. package/dist/types/mcpTypes.js.map +1 -0
  81. package/dist/types/paginationTypes.js +5 -0
  82. package/dist/types/paginationTypes.js.map +1 -0
  83. package/dist/types/pipelineTypes.js +7 -0
  84. package/dist/types/pipelineTypes.js.map +1 -0
  85. package/dist/types/tensorflowTypes.js +6 -0
  86. package/dist/types/tensorflowTypes.js.map +1 -0
  87. package/dist/unified.js +52 -128048
  88. package/dist/utils/autoConfiguration.js +341 -0
  89. package/dist/utils/autoConfiguration.js.map +1 -0
  90. package/dist/utils/cacheAutoConfig.js +261 -0
  91. package/dist/utils/cacheAutoConfig.js.map +1 -0
  92. package/dist/utils/crypto.js +45 -0
  93. package/dist/utils/crypto.js.map +1 -0
  94. package/dist/utils/distance.js +239 -0
  95. package/dist/utils/distance.js.map +1 -0
  96. package/dist/utils/embedding.d.ts.map +1 -1
  97. package/dist/utils/embedding.js +702 -0
  98. package/dist/utils/embedding.js.map +1 -0
  99. package/dist/utils/environment.js +75 -0
  100. package/dist/utils/environment.js.map +1 -0
  101. package/dist/utils/fieldNameTracking.js +90 -0
  102. package/dist/utils/fieldNameTracking.js.map +1 -0
  103. package/dist/utils/index.d.ts +1 -0
  104. package/dist/utils/index.d.ts.map +1 -1
  105. package/dist/utils/index.js +8 -0
  106. package/dist/utils/index.js.map +1 -0
  107. package/dist/utils/jsonProcessing.js +179 -0
  108. package/dist/utils/jsonProcessing.js.map +1 -0
  109. package/dist/utils/logger.d.ts +45 -92
  110. package/dist/utils/logger.d.ts.map +1 -1
  111. package/dist/utils/logger.js +129 -0
  112. package/dist/utils/logger.js.map +1 -0
  113. package/dist/utils/operationUtils.js +126 -0
  114. package/dist/utils/operationUtils.js.map +1 -0
  115. package/dist/utils/robustModelLoader.d.ts +14 -0
  116. package/dist/utils/robustModelLoader.d.ts.map +1 -1
  117. package/dist/utils/robustModelLoader.js +537 -0
  118. package/dist/utils/robustModelLoader.js.map +1 -0
  119. package/dist/utils/searchCache.js +248 -0
  120. package/dist/utils/searchCache.js.map +1 -0
  121. package/dist/utils/statistics.js +25 -0
  122. package/dist/utils/statistics.js.map +1 -0
  123. package/dist/utils/statisticsCollector.js +224 -0
  124. package/dist/utils/statisticsCollector.js.map +1 -0
  125. package/dist/utils/textEncoding.js +309 -0
  126. package/dist/utils/textEncoding.js.map +1 -0
  127. package/dist/utils/typeUtils.js +40 -0
  128. package/dist/utils/typeUtils.js.map +1 -0
  129. package/dist/utils/version.d.ts +15 -3
  130. package/dist/utils/version.d.ts.map +1 -1
  131. package/dist/utils/version.js +24 -0
  132. package/dist/utils/version.js.map +1 -0
  133. package/dist/utils/workerUtils.js +458 -0
  134. package/dist/utils/workerUtils.js.map +1 -0
  135. package/package.json +23 -15
  136. package/dist/brainy.js +0 -90220
  137. package/dist/brainy.min.js +0 -12511
  138. package/dist/patched-platform-node.d.ts +0 -17
  139. package/dist/statistics/statisticsManager.d.ts +0 -121
  140. package/dist/storage/fileSystemStorage.d.ts +0 -73
  141. package/dist/storage/fileSystemStorage.d.ts.map +0 -1
  142. package/dist/storage/opfsStorage.d.ts +0 -236
  143. package/dist/storage/opfsStorage.d.ts.map +0 -1
  144. package/dist/storage/s3CompatibleStorage.d.ts +0 -157
  145. package/dist/storage/s3CompatibleStorage.d.ts.map +0 -1
  146. package/dist/testing/prettyReporter.d.ts +0 -23
  147. package/dist/testing/prettySummaryReporter.d.ts +0 -22
  148. package/dist/unified.min.js +0 -16153
  149. package/dist/utils/environmentDetection.d.ts +0 -47
  150. package/dist/utils/environmentDetection.d.ts.map +0 -1
  151. package/dist/utils/tensorflowUtils.d.ts +0 -17
  152. package/dist/utils/tensorflowUtils.d.ts.map +0 -1
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Centralized logging utility for Brainy
3
+ * Provides configurable log levels and consistent logging across the codebase
4
+ */
5
+ export var LogLevel;
6
+ (function (LogLevel) {
7
+ LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
8
+ LogLevel[LogLevel["WARN"] = 1] = "WARN";
9
+ LogLevel[LogLevel["INFO"] = 2] = "INFO";
10
+ LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
11
+ LogLevel[LogLevel["TRACE"] = 4] = "TRACE";
12
+ })(LogLevel || (LogLevel = {}));
13
+ class Logger {
14
+ constructor() {
15
+ this.config = {
16
+ level: LogLevel.WARN, // Default to WARN - only critical messages
17
+ timestamps: true,
18
+ includeModule: true
19
+ };
20
+ // Set log level from environment variable if available
21
+ const envLogLevel = process.env.BRAINY_LOG_LEVEL;
22
+ if (envLogLevel) {
23
+ const level = LogLevel[envLogLevel.toUpperCase()];
24
+ if (level !== undefined) {
25
+ this.config.level = level;
26
+ }
27
+ }
28
+ // Parse module-specific log levels
29
+ const moduleLogLevels = process.env.BRAINY_MODULE_LOG_LEVELS;
30
+ if (moduleLogLevels) {
31
+ try {
32
+ this.config.modules = JSON.parse(moduleLogLevels);
33
+ }
34
+ catch (e) {
35
+ // Ignore parsing errors
36
+ }
37
+ }
38
+ }
39
+ static getInstance() {
40
+ if (!Logger.instance) {
41
+ Logger.instance = new Logger();
42
+ }
43
+ return Logger.instance;
44
+ }
45
+ configure(config) {
46
+ this.config = { ...this.config, ...config };
47
+ }
48
+ shouldLog(level, module) {
49
+ // Check module-specific level first
50
+ if (this.config.modules && this.config.modules[module] !== undefined) {
51
+ return level <= this.config.modules[module];
52
+ }
53
+ // Otherwise use global level
54
+ return level <= this.config.level;
55
+ }
56
+ formatMessage(level, module, message) {
57
+ const parts = [];
58
+ if (this.config.timestamps) {
59
+ parts.push(`[${new Date().toISOString()}]`);
60
+ }
61
+ parts.push(`[${LogLevel[level]}]`);
62
+ if (this.config.includeModule) {
63
+ parts.push(`[${module}]`);
64
+ }
65
+ parts.push(message);
66
+ return parts.join(' ');
67
+ }
68
+ log(level, module, message, ...args) {
69
+ if (!this.shouldLog(level, module)) {
70
+ return;
71
+ }
72
+ if (this.config.handler) {
73
+ this.config.handler(level, module, message, ...args);
74
+ return;
75
+ }
76
+ const formattedMessage = this.formatMessage(level, module, message);
77
+ switch (level) {
78
+ case LogLevel.ERROR:
79
+ console.error(formattedMessage, ...args);
80
+ break;
81
+ case LogLevel.WARN:
82
+ console.warn(formattedMessage, ...args);
83
+ break;
84
+ case LogLevel.INFO:
85
+ console.info(formattedMessage, ...args);
86
+ break;
87
+ case LogLevel.DEBUG:
88
+ case LogLevel.TRACE:
89
+ console.log(formattedMessage, ...args);
90
+ break;
91
+ }
92
+ }
93
+ error(module, message, ...args) {
94
+ this.log(LogLevel.ERROR, module, message, ...args);
95
+ }
96
+ warn(module, message, ...args) {
97
+ this.log(LogLevel.WARN, module, message, ...args);
98
+ }
99
+ info(module, message, ...args) {
100
+ this.log(LogLevel.INFO, module, message, ...args);
101
+ }
102
+ debug(module, message, ...args) {
103
+ this.log(LogLevel.DEBUG, module, message, ...args);
104
+ }
105
+ trace(module, message, ...args) {
106
+ this.log(LogLevel.TRACE, module, message, ...args);
107
+ }
108
+ // Create a module-specific logger
109
+ createModuleLogger(module) {
110
+ return {
111
+ error: (message, ...args) => this.error(module, message, ...args),
112
+ warn: (message, ...args) => this.warn(module, message, ...args),
113
+ info: (message, ...args) => this.info(module, message, ...args),
114
+ debug: (message, ...args) => this.debug(module, message, ...args),
115
+ trace: (message, ...args) => this.trace(module, message, ...args)
116
+ };
117
+ }
118
+ }
119
+ // Export singleton instance
120
+ export const logger = Logger.getInstance();
121
+ // Export convenience function for creating module loggers
122
+ export function createModuleLogger(module) {
123
+ return logger.createModuleLogger(module);
124
+ }
125
+ // Export function to configure logger
126
+ export function configureLogger(config) {
127
+ logger.configure(config);
128
+ }
129
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Utility functions for timeout and retry logic
3
+ * Used by storage adapters to handle network operations reliably
4
+ */
5
+ import { BrainyError } from '../errors/brainyError.js';
6
+ // Default configuration values
7
+ export const DEFAULT_TIMEOUTS = {
8
+ get: 30000, // 30 seconds
9
+ add: 60000, // 1 minute
10
+ delete: 30000 // 30 seconds
11
+ };
12
+ export const DEFAULT_RETRY_POLICY = {
13
+ maxRetries: 3,
14
+ initialDelay: 1000,
15
+ maxDelay: 10000,
16
+ backoffMultiplier: 2
17
+ };
18
+ /**
19
+ * Wraps a promise with a timeout
20
+ */
21
+ export function withTimeout(promise, timeoutMs, operation) {
22
+ return new Promise((resolve, reject) => {
23
+ const timeoutId = setTimeout(() => {
24
+ reject(BrainyError.timeout(operation, timeoutMs));
25
+ }, timeoutMs);
26
+ promise
27
+ .then((result) => {
28
+ clearTimeout(timeoutId);
29
+ resolve(result);
30
+ })
31
+ .catch((error) => {
32
+ clearTimeout(timeoutId);
33
+ reject(error);
34
+ });
35
+ });
36
+ }
37
+ /**
38
+ * Calculates the delay for exponential backoff
39
+ */
40
+ function calculateBackoffDelay(attemptNumber, initialDelay, maxDelay, backoffMultiplier) {
41
+ const delay = initialDelay * Math.pow(backoffMultiplier, attemptNumber - 1);
42
+ return Math.min(delay, maxDelay);
43
+ }
44
+ /**
45
+ * Sleeps for the specified number of milliseconds
46
+ */
47
+ function sleep(ms) {
48
+ return new Promise(resolve => setTimeout(resolve, ms));
49
+ }
50
+ /**
51
+ * Executes an operation with retry logic and exponential backoff
52
+ */
53
+ export async function withRetry(operation, operationName, config = {}) {
54
+ const { maxRetries = DEFAULT_RETRY_POLICY.maxRetries, initialDelay = DEFAULT_RETRY_POLICY.initialDelay, maxDelay = DEFAULT_RETRY_POLICY.maxDelay, backoffMultiplier = DEFAULT_RETRY_POLICY.backoffMultiplier } = config;
55
+ let lastError;
56
+ for (let attempt = 1; attempt <= maxRetries + 1; attempt++) {
57
+ try {
58
+ return await operation();
59
+ }
60
+ catch (error) {
61
+ lastError = error instanceof Error ? error : new Error(String(error));
62
+ // If this is the last attempt, don't retry
63
+ if (attempt > maxRetries) {
64
+ break;
65
+ }
66
+ // Check if the error is retryable
67
+ if (!BrainyError.isRetryable(lastError)) {
68
+ throw BrainyError.fromError(lastError, operationName);
69
+ }
70
+ // Calculate delay for exponential backoff
71
+ const delay = calculateBackoffDelay(attempt, initialDelay, maxDelay, backoffMultiplier);
72
+ console.warn(`Operation '${operationName}' failed on attempt ${attempt}/${maxRetries + 1}. ` +
73
+ `Retrying in ${delay}ms. Error: ${lastError.message}`);
74
+ // Wait before retrying
75
+ await sleep(delay);
76
+ }
77
+ }
78
+ // All retries exhausted
79
+ throw BrainyError.retryExhausted(operationName, maxRetries, lastError);
80
+ }
81
+ /**
82
+ * Executes an operation with both timeout and retry logic
83
+ */
84
+ export async function withTimeoutAndRetry(operation, operationName, timeoutMs, retryConfig = {}) {
85
+ return withRetry(() => withTimeout(operation(), timeoutMs, operationName), operationName, retryConfig);
86
+ }
87
+ /**
88
+ * Creates a configured operation executor for a specific operation type
89
+ */
90
+ export function createOperationExecutor(operationType, config = {}) {
91
+ const timeouts = { ...DEFAULT_TIMEOUTS, ...config.timeouts };
92
+ const retryPolicy = { ...DEFAULT_RETRY_POLICY, ...config.retryPolicy };
93
+ const timeoutMs = timeouts[operationType];
94
+ return async function executeOperation(operation, operationName) {
95
+ return withTimeoutAndRetry(operation, operationName, timeoutMs, retryPolicy);
96
+ };
97
+ }
98
+ /**
99
+ * Storage operation executors for different operation types
100
+ */
101
+ export class StorageOperationExecutors {
102
+ constructor(config = {}) {
103
+ this.getExecutor = createOperationExecutor('get', config);
104
+ this.addExecutor = createOperationExecutor('add', config);
105
+ this.deleteExecutor = createOperationExecutor('delete', config);
106
+ }
107
+ /**
108
+ * Execute a get operation with timeout and retry
109
+ */
110
+ async executeGet(operation, operationName) {
111
+ return this.getExecutor(operation, operationName);
112
+ }
113
+ /**
114
+ * Execute an add operation with timeout and retry
115
+ */
116
+ async executeAdd(operation, operationName) {
117
+ return this.addExecutor(operation, operationName);
118
+ }
119
+ /**
120
+ * Execute a delete operation with timeout and retry
121
+ */
122
+ async executeDelete(operation, operationName) {
123
+ return this.deleteExecutor(operation, operationName);
124
+ }
125
+ }
126
+ //# sourceMappingURL=operationUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationUtils.js","sourceRoot":"","sources":["../../src/utils/operationUtils.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface ModelLoadOptions {
26
26
  verbose?: boolean;
27
27
  /** Whether to prefer local bundled model if available */
28
28
  preferLocalModel?: boolean;
29
+ /** Custom directory path where models are stored (for Docker deployments) */
30
+ customModelsPath?: string;
29
31
  }
30
32
  export interface RetryConfig {
31
33
  attempt: number;
@@ -37,6 +39,14 @@ export declare class RobustModelLoader {
37
39
  private options;
38
40
  private loadAttempts;
39
41
  constructor(options?: ModelLoadOptions);
42
+ /**
43
+ * Auto-detect extracted models directory
44
+ */
45
+ private autoDetectModelsPath;
46
+ /**
47
+ * Load model with all available fallback strategies
48
+ */
49
+ loadModelWithFallbacks(): Promise<EmbeddingModel>;
40
50
  /**
41
51
  * Load a model with robust retry and fallback mechanisms
42
52
  */
@@ -49,6 +59,10 @@ export declare class RobustModelLoader {
49
59
  * Try to load a locally bundled model
50
60
  */
51
61
  private tryLoadLocalBundledModel;
62
+ /**
63
+ * Try to load model from a custom directory path
64
+ */
65
+ private tryLoadFromCustomPath;
52
66
  /**
53
67
  * Load model from a specific URL
54
68
  */
@@ -1 +1 @@
1
- {"version":3,"file":"robustModelLoader.d.ts","sourceRoot":"","sources":["../../src/utils/robustModelLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAMhD,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yCAAyC;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,YAAY,CAAiC;gBAEzC,OAAO,GAAE,gBAAqB;IAa1C;;OAEG;IACG,SAAS,CACb,mBAAmB,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EAClD,eAAe,GAAE,MAAkB,GAClC,OAAO,CAAC,cAAc,CAAC;IAqD1B;;OAEG;YACW,eAAe;IA2C7B;;OAEG;YACW,wBAAwB;IAwEtC;;OAEG;YACW,WAAW;IAMzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,eAAe,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAQ5C;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAErF;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,MAAM,EAAE,CAM/D"}
1
+ {"version":3,"file":"robustModelLoader.d.ts","sourceRoot":"","sources":["../../src/utils/robustModelLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAMhD,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yCAAyC;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAsF;IACrG,OAAO,CAAC,YAAY,CAAiC;gBAEzC,OAAO,GAAE,gBAAqB;IAoB1C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6D5B;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC;IAgDvD;;OAEG;IACG,SAAS,CACb,mBAAmB,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EAClD,eAAe,GAAE,MAAkB,GAClC,OAAO,CAAC,cAAc,CAAC;IAqD1B;;OAEG;YACW,eAAe;IA2C7B;;OAEG;YACW,wBAAwB;IAoItC;;OAEG;YACW,qBAAqB;IAgFnC;;OAEG;YACW,WAAW;IAmBzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,eAAe,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAQ5C;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAErF;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,MAAM,EAAE,CAM/D"}