@smythos/sre 1.6.0 → 1.6.8

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 (237) hide show
  1. package/CHANGELOG +111 -111
  2. package/LICENSE +18 -18
  3. package/README.md +135 -135
  4. package/dist/index.js +43 -43
  5. package/dist/index.js.map +1 -1
  6. package/dist/types/index.d.ts +1 -0
  7. package/dist/types/subsystems/LLMManager/LLM.service/connectors/Ollama.class.d.ts +45 -0
  8. package/dist/types/subsystems/LLMManager/ModelsProvider.service/connectors/SmythModelsProvider.class.d.ts +39 -0
  9. package/dist/types/types/LLM.types.d.ts +2 -0
  10. package/package.json +2 -1
  11. package/src/Components/APICall/APICall.class.ts +161 -161
  12. package/src/Components/APICall/AccessTokenManager.ts +166 -166
  13. package/src/Components/APICall/ArrayBufferResponse.helper.ts +58 -58
  14. package/src/Components/APICall/OAuth.helper.ts +447 -447
  15. package/src/Components/APICall/mimeTypeCategories.ts +46 -46
  16. package/src/Components/APICall/parseData.ts +167 -167
  17. package/src/Components/APICall/parseHeaders.ts +41 -41
  18. package/src/Components/APICall/parseProxy.ts +68 -68
  19. package/src/Components/APICall/parseUrl.ts +91 -91
  20. package/src/Components/APIEndpoint.class.ts +234 -234
  21. package/src/Components/APIOutput.class.ts +58 -58
  22. package/src/Components/AgentPlugin.class.ts +102 -102
  23. package/src/Components/Async.class.ts +155 -155
  24. package/src/Components/Await.class.ts +90 -90
  25. package/src/Components/Classifier.class.ts +158 -158
  26. package/src/Components/Component.class.ts +147 -147
  27. package/src/Components/ComponentHost.class.ts +38 -38
  28. package/src/Components/DataSourceCleaner.class.ts +92 -92
  29. package/src/Components/DataSourceIndexer.class.ts +181 -181
  30. package/src/Components/DataSourceLookup.class.ts +161 -161
  31. package/src/Components/ECMASandbox.class.ts +72 -72
  32. package/src/Components/FEncDec.class.ts +29 -29
  33. package/src/Components/FHash.class.ts +33 -33
  34. package/src/Components/FSign.class.ts +80 -80
  35. package/src/Components/FSleep.class.ts +25 -25
  36. package/src/Components/FTimestamp.class.ts +66 -66
  37. package/src/Components/FileStore.class.ts +78 -78
  38. package/src/Components/ForEach.class.ts +97 -97
  39. package/src/Components/GPTPlugin.class.ts +70 -70
  40. package/src/Components/GenAILLM.class.ts +586 -586
  41. package/src/Components/HuggingFace.class.ts +314 -314
  42. package/src/Components/Image/imageSettings.config.ts +70 -70
  43. package/src/Components/ImageGenerator.class.ts +483 -483
  44. package/src/Components/JSONFilter.class.ts +54 -54
  45. package/src/Components/LLMAssistant.class.ts +213 -213
  46. package/src/Components/LogicAND.class.ts +28 -28
  47. package/src/Components/LogicAtLeast.class.ts +85 -85
  48. package/src/Components/LogicAtMost.class.ts +86 -86
  49. package/src/Components/LogicOR.class.ts +29 -29
  50. package/src/Components/LogicXOR.class.ts +34 -34
  51. package/src/Components/MCPClient.class.ts +137 -137
  52. package/src/Components/MemoryDeleteKeyVal.class.ts +70 -70
  53. package/src/Components/MemoryReadKeyVal.class.ts +67 -67
  54. package/src/Components/MemoryWriteKeyVal.class.ts +62 -62
  55. package/src/Components/MemoryWriteObject.class.ts +97 -97
  56. package/src/Components/MultimodalLLM.class.ts +128 -128
  57. package/src/Components/OpenAPI.class.ts +72 -72
  58. package/src/Components/PromptGenerator.class.ts +122 -122
  59. package/src/Components/ScrapflyWebScrape.class.ts +183 -183
  60. package/src/Components/ServerlessCode.class.ts +123 -123
  61. package/src/Components/TavilyWebSearch.class.ts +103 -103
  62. package/src/Components/VisionLLM.class.ts +104 -104
  63. package/src/Components/ZapierAction.class.ts +127 -127
  64. package/src/Components/index.ts +97 -97
  65. package/src/Core/AgentProcess.helper.ts +240 -240
  66. package/src/Core/Connector.class.ts +123 -123
  67. package/src/Core/ConnectorsService.ts +197 -197
  68. package/src/Core/DummyConnector.ts +49 -49
  69. package/src/Core/HookService.ts +105 -105
  70. package/src/Core/SmythRuntime.class.ts +241 -241
  71. package/src/Core/SystemEvents.ts +16 -16
  72. package/src/Core/boot.ts +56 -56
  73. package/src/config.ts +15 -15
  74. package/src/constants.ts +126 -126
  75. package/src/data/hugging-face.params.json +579 -579
  76. package/src/helpers/AWSLambdaCode.helper.ts +624 -599
  77. package/src/helpers/BinaryInput.helper.ts +331 -331
  78. package/src/helpers/Conversation.helper.ts +1157 -1157
  79. package/src/helpers/ECMASandbox.helper.ts +64 -64
  80. package/src/helpers/JsonContent.helper.ts +97 -97
  81. package/src/helpers/LocalCache.helper.ts +97 -97
  82. package/src/helpers/Log.helper.ts +274 -274
  83. package/src/helpers/OpenApiParser.helper.ts +150 -150
  84. package/src/helpers/S3Cache.helper.ts +147 -147
  85. package/src/helpers/SmythURI.helper.ts +5 -5
  86. package/src/helpers/Sysconfig.helper.ts +95 -95
  87. package/src/helpers/TemplateString.helper.ts +243 -243
  88. package/src/helpers/TypeChecker.helper.ts +329 -329
  89. package/src/index.ts +4 -3
  90. package/src/index.ts.bak +4 -3
  91. package/src/subsystems/AgentManager/Agent.class.ts +1114 -1114
  92. package/src/subsystems/AgentManager/Agent.helper.ts +3 -3
  93. package/src/subsystems/AgentManager/AgentData.service/AgentDataConnector.ts +230 -230
  94. package/src/subsystems/AgentManager/AgentData.service/connectors/CLIAgentDataConnector.class.ts +66 -66
  95. package/src/subsystems/AgentManager/AgentData.service/connectors/LocalAgentDataConnector.class.ts +145 -145
  96. package/src/subsystems/AgentManager/AgentData.service/connectors/NullAgentData.class.ts +39 -39
  97. package/src/subsystems/AgentManager/AgentData.service/index.ts +18 -18
  98. package/src/subsystems/AgentManager/AgentLogger.class.ts +301 -301
  99. package/src/subsystems/AgentManager/AgentRequest.class.ts +51 -51
  100. package/src/subsystems/AgentManager/AgentRuntime.class.ts +557 -557
  101. package/src/subsystems/AgentManager/AgentSSE.class.ts +101 -101
  102. package/src/subsystems/AgentManager/AgentSettings.class.ts +52 -52
  103. package/src/subsystems/AgentManager/Component.service/ComponentConnector.ts +32 -32
  104. package/src/subsystems/AgentManager/Component.service/connectors/LocalComponentConnector.class.ts +60 -60
  105. package/src/subsystems/AgentManager/Component.service/index.ts +11 -11
  106. package/src/subsystems/AgentManager/EmbodimentSettings.class.ts +47 -47
  107. package/src/subsystems/AgentManager/ForkedAgent.class.ts +154 -154
  108. package/src/subsystems/AgentManager/OSResourceMonitor.ts +77 -77
  109. package/src/subsystems/ComputeManager/Code.service/CodeConnector.ts +98 -98
  110. package/src/subsystems/ComputeManager/Code.service/connectors/AWSLambdaCode.class.ts +171 -172
  111. package/src/subsystems/ComputeManager/Code.service/connectors/ECMASandbox.class.ts +131 -131
  112. package/src/subsystems/ComputeManager/Code.service/index.ts +13 -13
  113. package/src/subsystems/IO/CLI.service/CLIConnector.ts +47 -47
  114. package/src/subsystems/IO/CLI.service/index.ts +9 -9
  115. package/src/subsystems/IO/Log.service/LogConnector.ts +32 -32
  116. package/src/subsystems/IO/Log.service/connectors/ConsoleLog.class.ts +28 -28
  117. package/src/subsystems/IO/Log.service/index.ts +13 -13
  118. package/src/subsystems/IO/NKV.service/NKVConnector.ts +43 -43
  119. package/src/subsystems/IO/NKV.service/connectors/NKVLocalStorage.class.ts +234 -234
  120. package/src/subsystems/IO/NKV.service/connectors/NKVRAM.class.ts +204 -204
  121. package/src/subsystems/IO/NKV.service/connectors/NKVRedis.class.ts +182 -182
  122. package/src/subsystems/IO/NKV.service/index.ts +14 -14
  123. package/src/subsystems/IO/Router.service/RouterConnector.ts +21 -21
  124. package/src/subsystems/IO/Router.service/connectors/ExpressRouter.class.ts +48 -48
  125. package/src/subsystems/IO/Router.service/connectors/NullRouter.class.ts +40 -40
  126. package/src/subsystems/IO/Router.service/index.ts +11 -11
  127. package/src/subsystems/IO/Storage.service/SmythFS.class.ts +488 -488
  128. package/src/subsystems/IO/Storage.service/StorageConnector.ts +66 -66
  129. package/src/subsystems/IO/Storage.service/connectors/LocalStorage.class.ts +327 -327
  130. package/src/subsystems/IO/Storage.service/connectors/S3Storage.class.ts +482 -482
  131. package/src/subsystems/IO/Storage.service/index.ts +13 -13
  132. package/src/subsystems/IO/VectorDB.service/VectorDBConnector.ts +108 -108
  133. package/src/subsystems/IO/VectorDB.service/connectors/MilvusVectorDB.class.ts +465 -465
  134. package/src/subsystems/IO/VectorDB.service/connectors/PineconeVectorDB.class.ts +387 -387
  135. package/src/subsystems/IO/VectorDB.service/connectors/RAMVecrtorDB.class.ts +408 -408
  136. package/src/subsystems/IO/VectorDB.service/embed/BaseEmbedding.ts +107 -107
  137. package/src/subsystems/IO/VectorDB.service/embed/GoogleEmbedding.ts +118 -118
  138. package/src/subsystems/IO/VectorDB.service/embed/OpenAIEmbedding.ts +109 -109
  139. package/src/subsystems/IO/VectorDB.service/embed/index.ts +26 -26
  140. package/src/subsystems/IO/VectorDB.service/index.ts +14 -14
  141. package/src/subsystems/LLMManager/LLM.helper.ts +251 -251
  142. package/src/subsystems/LLMManager/LLM.inference.ts +345 -345
  143. package/src/subsystems/LLMManager/LLM.service/LLMConnector.ts +492 -492
  144. package/src/subsystems/LLMManager/LLM.service/LLMCredentials.helper.ts +171 -171
  145. package/src/subsystems/LLMManager/LLM.service/connectors/Anthropic.class.ts +666 -666
  146. package/src/subsystems/LLMManager/LLM.service/connectors/Bedrock.class.ts +407 -407
  147. package/src/subsystems/LLMManager/LLM.service/connectors/Echo.class.ts +92 -92
  148. package/src/subsystems/LLMManager/LLM.service/connectors/GoogleAI.class.ts +983 -983
  149. package/src/subsystems/LLMManager/LLM.service/connectors/Groq.class.ts +319 -319
  150. package/src/subsystems/LLMManager/LLM.service/connectors/Ollama.class.ts +362 -0
  151. package/src/subsystems/LLMManager/LLM.service/connectors/Perplexity.class.ts +257 -257
  152. package/src/subsystems/LLMManager/LLM.service/connectors/VertexAI.class.ts +430 -430
  153. package/src/subsystems/LLMManager/LLM.service/connectors/openai/OpenAIConnector.class.ts +503 -503
  154. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/ChatCompletionsApiInterface.ts +524 -524
  155. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterface.ts +100 -100
  156. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterfaceFactory.ts +81 -81
  157. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/ResponsesApiInterface.ts +1145 -1145
  158. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/constants.ts +13 -13
  159. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/index.ts +4 -4
  160. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/utils.ts +11 -11
  161. package/src/subsystems/LLMManager/LLM.service/connectors/openai/types.ts +32 -32
  162. package/src/subsystems/LLMManager/LLM.service/connectors/xAI.class.ts +478 -478
  163. package/src/subsystems/LLMManager/LLM.service/index.ts +47 -44
  164. package/src/subsystems/LLMManager/ModelsProvider.service/ModelsProviderConnector.ts +303 -303
  165. package/src/subsystems/LLMManager/ModelsProvider.service/connectors/JSONModelsProvider.class.ts +271 -271
  166. package/src/subsystems/LLMManager/ModelsProvider.service/index.ts +11 -11
  167. package/src/subsystems/LLMManager/custom-models.ts +854 -854
  168. package/src/subsystems/LLMManager/models.ts +2540 -2540
  169. package/src/subsystems/LLMManager/paramMappings.ts +69 -69
  170. package/src/subsystems/MemoryManager/Cache.service/CacheConnector.ts +86 -86
  171. package/src/subsystems/MemoryManager/Cache.service/connectors/LocalStorageCache.class.ts +297 -297
  172. package/src/subsystems/MemoryManager/Cache.service/connectors/RAMCache.class.ts +214 -214
  173. package/src/subsystems/MemoryManager/Cache.service/connectors/RedisCache.class.ts +252 -252
  174. package/src/subsystems/MemoryManager/Cache.service/connectors/S3Cache.class.ts +373 -373
  175. package/src/subsystems/MemoryManager/Cache.service/index.ts +15 -15
  176. package/src/subsystems/MemoryManager/LLMCache.ts +72 -72
  177. package/src/subsystems/MemoryManager/LLMContext.ts +124 -124
  178. package/src/subsystems/MemoryManager/LLMMemory.service/LLMMemoryConnector.ts +26 -26
  179. package/src/subsystems/MemoryManager/RuntimeContext.ts +277 -277
  180. package/src/subsystems/Security/AccessControl/ACL.class.ts +208 -208
  181. package/src/subsystems/Security/AccessControl/AccessCandidate.class.ts +82 -82
  182. package/src/subsystems/Security/AccessControl/AccessRequest.class.ts +52 -52
  183. package/src/subsystems/Security/Account.service/AccountConnector.ts +44 -44
  184. package/src/subsystems/Security/Account.service/connectors/DummyAccount.class.ts +130 -130
  185. package/src/subsystems/Security/Account.service/connectors/JSONFileAccount.class.ts +170 -170
  186. package/src/subsystems/Security/Account.service/connectors/MySQLAccount.class.ts +76 -76
  187. package/src/subsystems/Security/Account.service/index.ts +14 -14
  188. package/src/subsystems/Security/Credentials.helper.ts +62 -62
  189. package/src/subsystems/Security/ManagedVault.service/ManagedVaultConnector.ts +38 -38
  190. package/src/subsystems/Security/ManagedVault.service/connectors/NullManagedVault.class.ts +53 -53
  191. package/src/subsystems/Security/ManagedVault.service/connectors/SecretManagerManagedVault.ts +154 -154
  192. package/src/subsystems/Security/ManagedVault.service/index.ts +12 -12
  193. package/src/subsystems/Security/SecureConnector.class.ts +110 -110
  194. package/src/subsystems/Security/Vault.service/Vault.helper.ts +30 -30
  195. package/src/subsystems/Security/Vault.service/VaultConnector.ts +29 -29
  196. package/src/subsystems/Security/Vault.service/connectors/HashicorpVault.class.ts +46 -46
  197. package/src/subsystems/Security/Vault.service/connectors/JSONFileVault.class.ts +221 -221
  198. package/src/subsystems/Security/Vault.service/connectors/NullVault.class.ts +54 -54
  199. package/src/subsystems/Security/Vault.service/connectors/SecretsManager.class.ts +140 -140
  200. package/src/subsystems/Security/Vault.service/index.ts +12 -12
  201. package/src/types/ACL.types.ts +104 -104
  202. package/src/types/AWS.types.ts +10 -10
  203. package/src/types/Agent.types.ts +61 -61
  204. package/src/types/AgentLogger.types.ts +17 -17
  205. package/src/types/Cache.types.ts +1 -1
  206. package/src/types/Common.types.ts +2 -2
  207. package/src/types/LLM.types.ts +520 -519
  208. package/src/types/Redis.types.ts +8 -8
  209. package/src/types/SRE.types.ts +64 -64
  210. package/src/types/Security.types.ts +14 -14
  211. package/src/types/Storage.types.ts +5 -5
  212. package/src/types/VectorDB.types.ts +86 -86
  213. package/src/utils/base64.utils.ts +275 -275
  214. package/src/utils/cli.utils.ts +68 -68
  215. package/src/utils/data.utils.ts +322 -322
  216. package/src/utils/date-time.utils.ts +22 -22
  217. package/src/utils/general.utils.ts +238 -238
  218. package/src/utils/index.ts +12 -12
  219. package/src/utils/lazy-client.ts +261 -261
  220. package/src/utils/numbers.utils.ts +13 -13
  221. package/src/utils/oauth.utils.ts +35 -35
  222. package/src/utils/string.utils.ts +414 -414
  223. package/src/utils/url.utils.ts +19 -19
  224. package/src/utils/validation.utils.ts +74 -74
  225. package/dist/bundle-analysis-lazy.html +0 -4949
  226. package/dist/bundle-analysis.html +0 -4949
  227. package/dist/types/Components/Triggers/GmailTrigger.class.d.ts +0 -13
  228. package/dist/types/Components/Triggers/Trigger.class.d.ts +0 -3
  229. package/dist/types/helpers/AIPerformanceAnalyzer.helper.d.ts +0 -45
  230. package/dist/types/helpers/AIPerformanceCollector.helper.d.ts +0 -111
  231. package/dist/types/subsystems/IO/Storage.service/connectors/AzureBlobStorage.class.d.ts +0 -211
  232. package/dist/types/subsystems/IO/VectorDB.service/connectors/WeaviateVectorDB.class.d.ts +0 -187
  233. package/dist/types/subsystems/PerformanceManager/Performance.service/PerformanceConnector.d.ts +0 -102
  234. package/dist/types/subsystems/PerformanceManager/Performance.service/connectors/LocalPerformanceConnector.class.d.ts +0 -100
  235. package/dist/types/subsystems/PerformanceManager/Performance.service/index.d.ts +0 -22
  236. package/dist/types/types/Performance.types.d.ts +0 -468
  237. package/dist/types/utils/package-manager.utils.d.ts +0 -26
@@ -1,13 +0,0 @@
1
- import { IAgent as Agent } from '@sre/types/Agent.types';
2
- import { Trigger } from './Trigger.class';
3
- export declare class GmailTrigger extends Trigger {
4
- init(): void;
5
- process(input: any, config: any, agent: Agent): Promise<{
6
- Payload: {};
7
- Result: any;
8
- _temp_result: any;
9
- _error: any;
10
- _in_progress: boolean;
11
- _debug: string;
12
- }>;
13
- }
@@ -1,3 +0,0 @@
1
- import { Component } from '../Component.class';
2
- export declare class Trigger extends Component {
3
- }
@@ -1,45 +0,0 @@
1
- import { AIComponentMetrics, AIAgentPerformanceReport, AIPerformanceBottleneck } from '@sre/types/Performance.types';
2
- /**
3
- * Advanced AI Performance Analyzer
4
- */
5
- export declare class AIPerformanceAnalyzer {
6
- private behaviorAnalyzer;
7
- private logger;
8
- /**
9
- * Generate comprehensive AI agent performance report
10
- */
11
- analyzeAgentPerformance(agentId: string, agentName: string, metrics: AIComponentMetrics[], timeWindow?: {
12
- start: number;
13
- end: number;
14
- }): Promise<AIAgentPerformanceReport>;
15
- /**
16
- * Real-time bottleneck detection
17
- */
18
- detectRealTimeBottleneck(metric: AIComponentMetrics): Promise<AIPerformanceBottleneck | null>;
19
- private calculateSummaryStats;
20
- private analyzeComponentPerformance;
21
- private detectBottlenecks;
22
- private generateOptimizationRecommendations;
23
- private analyzeAISpecificPatterns;
24
- private analyzeTrends;
25
- private calculatePerformanceGrade;
26
- private findCriticalPath;
27
- private findParallelizationOpportunities;
28
- private classifyBottleneckType;
29
- private generateBottleneckDescription;
30
- private identifyRootCause;
31
- private calculatePerformanceImpact;
32
- private generateFixSuggestion;
33
- private assessImplementationComplexity;
34
- private estimateResolutionTime;
35
- private estimatePerformanceGain;
36
- private estimateCostReduction;
37
- private getPrerequisites;
38
- private analyzeComponentSequences;
39
- private findDuplicatePrompts;
40
- private findModelDowngradeOpportunities;
41
- private findCachingOpportunities;
42
- private findBatchingOpportunities;
43
- private calculateDataFlowEfficiency;
44
- private calculateInformationLossRate;
45
- }
@@ -1,111 +0,0 @@
1
- import { AIComponentMetrics, AIPerformanceConfig, MetricWindow } from '@sre/types/Performance.types';
2
- import { EventEmitter } from 'events';
3
- /**
4
- * Zero-overhead performance timer with AI-specific tracking
5
- */
6
- export declare class AIPerformanceTimer {
7
- private componentName;
8
- private agentId;
9
- private configHash;
10
- private startTime;
11
- private startMemory;
12
- private checkpoints;
13
- private llmMetrics;
14
- constructor(componentName: string, agentId: string, configHash: string);
15
- /**
16
- * Add checkpoint for detailed timing analysis
17
- */
18
- checkpoint(name: string): void;
19
- /**
20
- * Track LLM-specific metrics
21
- */
22
- trackLLM(llmData: {
23
- model: string;
24
- promptTokens: number;
25
- completionTokens: number;
26
- estimatedCost: number;
27
- contextUtilization?: number;
28
- qualityScore?: number;
29
- }): void;
30
- /**
31
- * Complete timing and generate comprehensive metrics
32
- */
33
- finish(inputData?: any, outputData?: any, success?: boolean, errorType?: string, retryCount?: number): AIComponentMetrics;
34
- private calculateDataSize;
35
- private calculateComplexityScore;
36
- private getObjectComplexity;
37
- private calculateMemoryPressure;
38
- private estimateCPUUsage;
39
- }
40
- /**
41
- * Main AI Performance Collector - Enterprise-grade monitoring system
42
- */
43
- export declare class AIPerformanceCollector extends EventEmitter {
44
- private static instance;
45
- private metricsBuffer;
46
- private config;
47
- private logger;
48
- private activeTimers;
49
- private eventSequence;
50
- private batchBuffer;
51
- private flushTimer?;
52
- private constructor();
53
- /**
54
- * Get singleton instance with configuration
55
- */
56
- static getInstance(config?: AIPerformanceConfig): AIPerformanceCollector;
57
- /**
58
- * Start monitoring a component execution
59
- */
60
- startComponentExecution(componentName: string, agentId: string, config?: any): AIPerformanceTimer | null;
61
- /**
62
- * Record completed component execution
63
- */
64
- recordMetrics(agentId: string, metrics: AIComponentMetrics): void;
65
- /**
66
- * Get metrics for specific agent within time window
67
- */
68
- getAgentMetrics(agentId: string, window?: MetricWindow): AIComponentMetrics[];
69
- /**
70
- * Get aggregated metrics across all agents
71
- */
72
- getGlobalMetrics(window?: MetricWindow): AIComponentMetrics[];
73
- /**
74
- * Clear metrics for specific agent
75
- */
76
- clearAgentMetrics(agentId: string): void;
77
- /**
78
- * Get current system statistics
79
- */
80
- getSystemStats(): {
81
- activeTimers: number;
82
- totalMetrics: number;
83
- memoryUsage: number;
84
- eventBufferSize: number;
85
- };
86
- /**
87
- * Update configuration at runtime
88
- */
89
- updateConfig(newConfig: Partial<AIPerformanceConfig>): void;
90
- /**
91
- * Export metrics for external monitoring systems
92
- */
93
- exportMetrics(format?: 'json' | 'prometheus' | 'csv'): string;
94
- private shouldMonitorComponent;
95
- private shouldSample;
96
- private generateConfigHash;
97
- private emitEvent;
98
- private setupFlushTimer;
99
- private checkPerformanceThresholds;
100
- private formatPrometheusMetrics;
101
- private formatCSVMetrics;
102
- /**
103
- * Graceful shutdown
104
- */
105
- private flushBatch;
106
- shutdown(): Promise<void>;
107
- }
108
- /**
109
- * Default configuration for development
110
- */
111
- export declare const DEFAULT_AI_PERFORMANCE_CONFIG: AIPerformanceConfig;
@@ -1,211 +0,0 @@
1
- import { StorageConnector } from '@sre/IO/Storage.service/StorageConnector';
2
- import { ACL } from '@sre/Security/AccessControl/ACL.class';
3
- import { IAccessCandidate, IACL } from '@sre/types/ACL.types';
4
- import { StorageData, StorageMetadata } from '@sre/types/Storage.types';
5
- import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
6
- export type AzureBlobConfig = {
7
- storageAccountName: string;
8
- storageAccountAccessKey: string;
9
- blobContainerName: string;
10
- };
11
- export declare class AzureBlobStorage extends StorageConnector {
12
- protected _settings: AzureBlobConfig;
13
- name: string;
14
- private blobServiceClient;
15
- private containerClient;
16
- private isInitialized;
17
- private initializationPromise;
18
- constructor(_settings: AzureBlobConfig);
19
- private ensureInitialized;
20
- private initialize;
21
- /**
22
- * Reads a blob's content from the Azure Storage container.
23
- * This method fetches the entire blob content into a Buffer. If the specified
24
- * blob does not exist, it gracefully returns undefined.
25
- *
26
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
27
- * @param {string} resourceId - The unique identifier (name) of the blob to be read from the container.
28
- * @returns {Promise<StorageData | undefined>} A promise that resolves with the blob's content as a Buffer (`StorageData`), or undefined if the blob is not found.
29
- * @throws Throws an error if any other issue occurs during the download process (e.g., network issues, permissions problems).
30
- */
31
- read(acRequest: AccessRequest, resourceId: string): Promise<StorageData | undefined>;
32
- /**
33
- * Writes or overwrites a blob in the Azure Storage container.
34
- *
35
- * This method uploads data to a specified blob. It automatically handles the SmythOS
36
- * Access Control List (ACL) by ensuring the writer is made the owner of the object.
37
- * Any provided metadata is merged with this ACL and stored with the blob.
38
- * If a blob with the same `resourceId` already exists, this operation will completely replace its content and metadata.
39
- *
40
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
41
- * @param {string} resourceId - The unique identifier (name) of the blob to be written or overwritten.
42
- * @param {StorageData} value - The content to be written to the blob, typically a Buffer.
43
- * @param {IACL} [acl] - An optional Access Control List to apply to the blob. If not provided, a default ACL is generated.
44
- * @param {StorageMetadata} [metadata] - Optional key-value metadata to associate with the blob, including properties like `ContentType`.
45
- * @returns {Promise<void>} A promise that resolves when the upload operation is complete.
46
- * @throws Throws an error if the upload fails due to network issues, invalid credentials, or other storage-related problems.
47
- */
48
- write(acRequest: AccessRequest, resourceId: string, value: StorageData, acl?: IACL, metadata?: StorageMetadata): Promise<void>;
49
- /**
50
- * Deletes a blob from the Azure Storage container.
51
- *
52
- * This method permanently removes the specified blob. The operation is idempotent,
53
- * meaning it will complete successfully without error even if the blob does not
54
- * already exist. This is useful for ensuring a resource is gone without needing to
55
- * check for its existence first.
56
- *
57
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
58
- * @param {string} resourceId - The unique identifier (name) of the blob to be deleted.
59
- * @returns {Promise<void>} A promise that resolves when the delete operation is complete.
60
- * @throws Throws an error if the deletion fails for reasons other than the blob not existing (e.g., network issues, permissions problems).
61
- */
62
- delete(acRequest: AccessRequest, resourceId: string): Promise<void>;
63
- /**
64
- * Checks for the existence of a blob in the Azure Storage container.
65
- *
66
- * This method efficiently verifies if a blob with the specified `resourceId` is
67
- * present without downloading its content. It's the most performant way to
68
- * check for a blob's presence before performing other operations.
69
- *
70
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
71
- * @param {string} resourceId - The unique identifier (name) of the blob to check.
72
- * @returns {Promise<boolean>} A promise that resolves with `true` if the blob exists, and `false` otherwise.
73
- * @throws Throws an error for any issue other than the blob not being found (e.g., network issues, invalid credentials).
74
- */
75
- exists(acRequest: AccessRequest, resourceId: string): Promise<boolean>;
76
- /**
77
- * Retrieves the user-defined metadata for a specific blob.
78
- *
79
- * This method fetches the key-value metadata associated with a blob without
80
- * downloading the blob's content. It's an efficient way to read custom
81
- * information stored with an object. If the blob is not found, it returns undefined.
82
- *
83
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
84
- * @param {string} resourceId - The unique identifier (name) of the blob whose metadata is to be retrieved.
85
- * @returns {Promise<StorageMetadata | undefined>} A promise that resolves with the blob's metadata object, or undefined if the blob does not exist.
86
- * @throws Throws an error for any issue other than the blob not being found (e.g., network issues, invalid credentials).
87
- */
88
- getMetadata(acRequest: AccessRequest, resourceId: string): Promise<StorageMetadata | undefined>;
89
- /**
90
- * Sets or updates the user-defined metadata for a specific blob.
91
- *
92
- * This method applies new metadata to an existing blob. It performs a "merge and
93
- * update" operation: it first reads the blob's current metadata, then merges
94
- * the provided metadata with it (new values overwrite existing ones).
95
- * This operation does not affect the blob's content.
96
- *
97
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
98
- * @param {string} resourceId - The unique identifier (name) of the blob whose metadata is to be updated.
99
- * @param {StorageMetadata} metadata - An object containing the key-value pairs to set. These will be merged with any existing metadata.
100
- * @returns {Promise<void>} A promise that resolves when the metadata has been successfully updated.
101
- * @throws Throws an error if the blob does not exist, or if the update fails for other reasons (e.g., network issues).
102
- */
103
- setMetadata(acRequest: AccessRequest, resourceId: string, metadata: StorageMetadata): Promise<void>;
104
- /**
105
- * Retrieves the Access Control List (ACL) for a specific blob.
106
- *
107
- * This method fetches the blob's metadata and specifically extracts the
108
- * SmythOS-native ACL object. It provides a direct way to inspect the
109
- * permissions of a blob without downloading its content.
110
- *
111
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
112
- * @param {string} resourceId - The unique identifier (name) of the blob whose ACL is to be retrieved.
113
- * @returns {Promise<ACL | undefined>} A promise that resolves with the `ACL` object for the blob. Returns undefined if the blob does not exist or has no ACL.
114
- * @throws Throws an error for any issue other than the blob not being found (e.g., network issues, invalid credentials).
115
- */
116
- getACL(acRequest: AccessRequest, resourceId: string): Promise<ACL | undefined>;
117
- /**
118
- * Sets or updates the Access Control List (ACL) for a specific blob.
119
- *
120
- * This method applies a new SmythOS ACL to an existing blob. It reads the blob's
121
- * full metadata, replaces the ACL portion, and writes the updated metadata back.
122
- * A crucial security feature of this method is that it automatically ensures the
123
- * user/agent making the request always retains ownership of the blob.
124
- *
125
- * @param {AccessRequest} acRequest - The access request object, used to identify the user/agent to ensure they retain ownership.
126
- * @param {string} resourceId - The unique identifier (name) of the blob whose ACL is to be updated.
127
- * @param {IACL} acl - The new Access Control List object to apply to the blob.
128
- * @returns {Promise<void>} A promise that resolves when the ACL has been successfully updated.
129
- * @throws Throws an error if the blob does not exist or if the update fails for other reasons.
130
- */
131
- setACL(acRequest: AccessRequest, resourceId: string, acl: IACL): Promise<void>;
132
- /**
133
- * Determines the effective Access Control List (ACL) for a given resource.
134
- *
135
- * This crucial security method is called by the access control system to fetch a
136
- * resource's ACL before making an authorization decision. If the resource does
137
- * not exist (and thus has no ACL), this method dynamically generates a new ACL
138
- * that grants 'Owner' access to the requesting candidate. This is the mechanism
139
- * that allows authorized users to create new resources.
140
- *
141
- * @param {string} resourceId - The unique identifier (name) of the blob whose ACL is to be determined.
142
- * @param {IAccessCandidate} candidate - The user or agent attempting to access the resource, used to grant ownership if the resource is new.
143
- * @returns {Promise<ACL>} A promise that resolves with the existing ACL object if the blob is found, or a new ACL object granting ownership if the blob does not exist.
144
- * @throws Throws an error if there is an unexpected issue fetching the blob's metadata (e.g., network issues).
145
- */
146
- getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
147
- /**
148
- * Schedules a blob for automatic deletion after a specified time-to-live (TTL).
149
- *
150
- * This method applies a Blob Index Tag ('deleteAfterDays') to an existing blob.
151
- * It does not delete the blob immediately. Instead, it relies on a pre-configured
152
- * Lifecycle Management rule on the Azure Storage Account to automatically delete the
153
- * blob after the specified number of days.
154
- *
155
- * @param {AccessRequest} acRequest - The access request object, handled by the @SecureConnector decorator to authorize the operation.
156
- * @param {string} resourceId - The unique identifier (name) of the blob to schedule for deletion.
157
- * @param {number} ttl - The time-to-live for the blob, in seconds. Must be a positive number.
158
- * @returns {Promise<void>} A promise that resolves when the expiration tag has been successfully applied.
159
- * @throws Throws an error if the blob does not exist, if the TTL is invalid, or if applying the tag fails.
160
- */
161
- expire(acRequest: AccessRequest, resourceId: string, ttl: number): Promise<void>;
162
- /**
163
- * Migrates legacy ACL metadata to the new structured format.
164
- *
165
- * This internal helper function checks for an outdated ACL format where permissions
166
- * were stored in separate keys like `userid`, `teamid`, or `agentid`. If found,
167
- * it converts them into the modern, structured `azure-acl` object, granting full
168
- * ownership. This ensures seamless backward compatibility with older data.
169
- *
170
- * @param {Record<string, string>} metadata - The raw metadata object which may contain legacy ACL keys.
171
- * @returns {Record<string, any>} The metadata object, with legacy keys converted into a new `azure-acl` property.
172
- * @private
173
- */
174
- private _migrateMetadata;
175
- /**
176
- * Serializes the internal metadata object into a format compatible with Azure Blob Storage.
177
- *
178
- * This internal helper prepares the metadata for upload. It converts the `ACL` object
179
- * into its serialized string representation and stringifies any other non-string
180
- * metadata values. The `ContentType` property is intentionally excluded as it's
181
- * handled separately in the blob's HTTP headers.
182
- *
183
- * @param {Record<string, any>} metadata - The internal metadata object, containing mixed-type values.
184
- * @returns {Record<string, string>} A flat key-value object where all values are strings.
185
- * @private
186
- */
187
- private _serializeAzureMetadata;
188
- /**
189
- * Deserializes a flat metadata object from Azure into the rich internal format.
190
- *
191
- * This internal helper processes the raw string-based metadata retrieved from a blob.
192
- * It reconstructs the `ACL` object from its string representation and parses any
193
- * other JSON-stringified values back into their original object/data types. It then
194
- * calls the migration helper to ensure backward compatibility with legacy ACL formats.
195
- *
196
- * @param {Record<string, string>} metadata - The flat, string-only key-value metadata from the Azure SDK.
197
- * @returns {Record<string, any>} The rich internal metadata object with complex data types restored.
198
- * @private
199
- */
200
- private _deserializeAzureMetadata;
201
- /**
202
- * Private helper to fetch and deserialize metadata from Azure.
203
- * @private
204
- */
205
- private _getAzureMetadata;
206
- /**
207
- * Private helper to serialize and write metadata to Azure.
208
- * @private
209
- */
210
- private _setAzureMetadata;
211
- }
@@ -1,187 +0,0 @@
1
- import { ACL } from '@sre/Security/AccessControl/ACL.class';
2
- import { IAccessCandidate } from '@sre/types/ACL.types';
3
- import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
4
- import { VectorDBConnector, DeleteTarget } from '../VectorDBConnector';
5
- import { DatasourceDto, IStorageVectorDataSource, IVectorDataSourceDto, QueryOptions, VectorsResultData } from '@sre/types/VectorDB.types';
6
- import { TEmbeddings } from '../embed/BaseEmbedding';
7
- export type WeaviateConfig = {
8
- /**
9
- * The Weaviate instance URL
10
- */
11
- url: string;
12
- /**
13
- * The Weaviate API key (optional for open source)
14
- */
15
- apiKey?: string;
16
- /**
17
- * The class name to use for storing vectors
18
- */
19
- className?: string;
20
- /**
21
- * The embeddings model to use
22
- */
23
- embeddings: TEmbeddings;
24
- /**
25
- * Additional Weaviate client options
26
- */
27
- clientOptions?: {
28
- timeout?: number;
29
- headers?: Record<string, string>;
30
- };
31
- };
32
- export declare class WeaviateVectorDB extends VectorDBConnector {
33
- protected _settings: WeaviateConfig;
34
- name: string;
35
- id: string;
36
- private client;
37
- private className;
38
- private cache;
39
- private accountConnector;
40
- private nkvConnector;
41
- embedder: any;
42
- constructor(_settings: WeaviateConfig);
43
- /**
44
- * @async
45
- * @method getResourceACL
46
- * @description Gets the ACL for a specific resource in Weaviate
47
- * @param {string} resourceId - The resource identifier
48
- * @param {IAccessCandidate} candidate - The access candidate
49
- * @returns {Promise<ACL>} The ACL for the resource
50
- * @throws {Error} If there's an error retrieving the ACL
51
- */
52
- getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
53
- /**
54
- * @async
55
- * @method getACL
56
- * @description Gets the ACL for a specific namespace in Weaviate
57
- * @param {AccessCandidate} candidate - The access candidate
58
- * @param {string} preparedNs - The prepared namespace name
59
- * @returns {Promise<IACL | null>} The ACL for the namespace or null if not found
60
- * @throws {Error} If there's an error retrieving the ACL
61
- */
62
- private getACL;
63
- /**
64
- * @async
65
- * @method createNamespace
66
- * @description Creates a namespace in Weaviate by creating a class
67
- * @param {AccessRequest} acRequest - The access request
68
- * @param {string} namespace - The namespace name
69
- * @param {object} metadata - Optional metadata
70
- * @returns {Promise<void>}
71
- * @throws {Error} If there's an error creating the namespace
72
- */
73
- protected createNamespace(acRequest: AccessRequest, namespace: string, metadata?: {
74
- [key: string]: any;
75
- }): Promise<void>;
76
- /**
77
- * @async
78
- * @method deleteNamespace
79
- * @description Deletes a namespace by removing the class
80
- * @param {AccessRequest} acRequest - The access request
81
- * @param {string} namespace - The namespace name
82
- * @returns {Promise<void>}
83
- * @throws {Error} If there's an error deleting the namespace
84
- */
85
- protected deleteNamespace(acRequest: AccessRequest, namespace: string): Promise<void>;
86
- /**
87
- * @async
88
- * @method namespaceExists
89
- * @description Checks if a namespace exists in Weaviate
90
- * @param {AccessRequest} acRequest - The access request
91
- * @param {string} namespace - The namespace name
92
- * @returns {Promise<boolean>} True if namespace exists
93
- * @throws {Error} If there's an error checking namespace existence
94
- */
95
- protected namespaceExists(acRequest: AccessRequest, namespace: string): Promise<boolean>;
96
- /**
97
- * @async
98
- * @method search
99
- * @description Performs vector search in Weaviate
100
- * @param {AccessRequest} acRequest - The access request
101
- * @param {string} namespace - The namespace to search in
102
- * @param {string | number[]} query - The search query (text or vector)
103
- * @param {QueryOptions} options - Search options
104
- * @returns {Promise<VectorsResultData>} Search results
105
- * @throws {Error} If there's an error performing the search
106
- */
107
- protected search(acRequest: AccessRequest, namespace: string, query: string | number[], options: QueryOptions): Promise<VectorsResultData>;
108
- /**
109
- * @async
110
- * @method insert
111
- * @description Inserts vectors into Weaviate
112
- * @param {AccessRequest} acRequest - The access request
113
- * @param {string} namespace - The namespace to insert into
114
- * @param {IVectorDataSourceDto | IVectorDataSourceDto[]} source - The data to insert
115
- * @returns {Promise<string[]>} Array of inserted IDs
116
- * @throws {Error} If there's an error inserting data
117
- */
118
- protected insert(acRequest: AccessRequest, namespace: string, source: IVectorDataSourceDto | IVectorDataSourceDto[]): Promise<string[]>;
119
- /**
120
- * @async
121
- * @method delete
122
- * @description Deletes vectors from Weaviate
123
- * @param {AccessRequest} acRequest - The access request
124
- * @param {string} namespace - The namespace to delete from
125
- * @param {DeleteTarget} deleteTarget - What to delete
126
- * @returns {Promise<void>}
127
- * @throws {Error} If there's an error deleting data
128
- */
129
- protected delete(acRequest: AccessRequest, namespace: string, deleteTarget: DeleteTarget): Promise<void>;
130
- /**
131
- * @async
132
- * @method createDatasource
133
- * @description Creates a datasource in Weaviate
134
- * @param {AccessRequest} acRequest - The access request
135
- * @param {string} namespace - The namespace
136
- * @param {DatasourceDto} datasource - The datasource data
137
- * @returns {Promise<IStorageVectorDataSource>} The created datasource
138
- * @throws {Error} If there's an error creating the datasource
139
- */
140
- protected createDatasource(acRequest: AccessRequest, namespace: string, datasource: DatasourceDto): Promise<IStorageVectorDataSource>;
141
- /**
142
- * @async
143
- * @method deleteDatasource
144
- * @description Deletes a datasource from Weaviate
145
- * @param {AccessRequest} acRequest - The access request
146
- * @param {string} namespace - The namespace
147
- * @param {string} datasourceId - The datasource ID
148
- * @returns {Promise<void>}
149
- * @throws {Error} If there's an error deleting the datasource
150
- */
151
- protected deleteDatasource(acRequest: AccessRequest, namespace: string, datasourceId: string): Promise<void>;
152
- /**
153
- * @async
154
- * @method listDatasources
155
- * @description Lists all datasources in a namespace
156
- * @param {AccessRequest} acRequest - The access request
157
- * @param {string} namespace - The namespace
158
- * @returns {Promise<IStorageVectorDataSource[]>} Array of datasources
159
- * @throws {Error} If there's an error listing datasources
160
- */
161
- protected listDatasources(acRequest: AccessRequest, namespace: string): Promise<IStorageVectorDataSource[]>;
162
- /**
163
- * @async
164
- * @method getDatasource
165
- * @description Gets a specific datasource
166
- * @param {AccessRequest} acRequest - The access request
167
- * @param {string} namespace - The namespace
168
- * @param {string} datasourceId - The datasource ID
169
- * @returns {Promise<IStorageVectorDataSource | undefined>} The datasource or undefined
170
- * @throws {Error} If there's an error getting the datasource
171
- */
172
- protected getDatasource(acRequest: AccessRequest, namespace: string, datasourceId: string): Promise<IStorageVectorDataSource | undefined>;
173
- /**
174
- * @method buildWhereClause
175
- * @description Builds a Weaviate where clause from filter options
176
- * @param {any} filter - The filter object
177
- * @returns {object} Weaviate where clause
178
- */
179
- private buildWhereClause;
180
- /**
181
- * @async
182
- * @method stop
183
- * @description Stops the Weaviate connector
184
- * @returns {Promise<void>}
185
- */
186
- stop(): Promise<void>;
187
- }
@@ -1,102 +0,0 @@
1
- import { SecureConnector } from '@sre/Security/SecureConnector.class';
2
- import { IAccessCandidate } from '@sre/types/ACL.types';
3
- import { ACL } from '@sre/Security/AccessControl/ACL.class';
4
- import { AccessCandidate } from '@sre/Security/AccessControl/AccessCandidate.class';
5
- import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
6
- import { AIComponentMetrics, AIAgentPerformanceReport, AIPerformanceEvent, AIPerformanceConfig, MetricWindow, ComponentBaseline, ExternalMonitoringExport } from '@sre/types/Performance.types';
7
- /**
8
- * Performance request interface for secure access
9
- */
10
- export interface IPerformanceRequest {
11
- /** Store performance metrics for an agent */
12
- storeMetrics(metrics: AIComponentMetrics[]): Promise<void>;
13
- /** Retrieve metrics within a time window */
14
- getMetrics(timeWindow?: MetricWindow): Promise<AIComponentMetrics[]>;
15
- /** Generate comprehensive performance report */
16
- generateReport(): Promise<AIAgentPerformanceReport>;
17
- /** Clear stored metrics */
18
- clearMetrics(): Promise<void>;
19
- /** Get real-time performance events */
20
- getEvents(since?: number): Promise<AIPerformanceEvent[]>;
21
- /** Update performance monitoring configuration */
22
- updateConfig(config: Partial<AIPerformanceConfig>): Promise<void>;
23
- /** Export metrics in various formats */
24
- exportMetrics(format: 'json' | 'prometheus' | 'csv'): Promise<string>;
25
- /** Get component performance baselines */
26
- getBaselines(): Promise<ComponentBaseline[]>;
27
- /** Establish baseline for specific component */
28
- establishBaseline(componentName: string): Promise<ComponentBaseline>;
29
- }
30
- /**
31
- * Abstract base class for performance connectors
32
- */
33
- export declare abstract class PerformanceConnector extends SecureConnector {
34
- abstract id: string;
35
- /**
36
- * Get ACL for performance resources
37
- */
38
- abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
39
- /**
40
- * Create secure requester interface scoped to access candidate
41
- */
42
- requester(candidate: AccessCandidate): IPerformanceRequest;
43
- /**
44
- * Store performance metrics with access control
45
- */
46
- protected abstract storeMetrics(accessRequest: AccessRequest, metrics: AIComponentMetrics[]): Promise<void>;
47
- /**
48
- * Retrieve metrics with time window filtering
49
- */
50
- protected abstract getMetrics(accessRequest: AccessRequest, timeWindow?: MetricWindow): Promise<AIComponentMetrics[]>;
51
- /**
52
- * Generate comprehensive performance report
53
- */
54
- protected abstract generateReport(accessRequest: AccessRequest): Promise<AIAgentPerformanceReport>;
55
- /**
56
- * Clear stored metrics
57
- */
58
- protected abstract clearMetrics(accessRequest: AccessRequest): Promise<void>;
59
- /**
60
- * Get performance events
61
- */
62
- protected abstract getEvents(accessRequest: AccessRequest, since?: number): Promise<AIPerformanceEvent[]>;
63
- /**
64
- * Update monitoring configuration
65
- */
66
- protected abstract updateConfig(accessRequest: AccessRequest, config: Partial<AIPerformanceConfig>): Promise<void>;
67
- /**
68
- * Export metrics in various formats
69
- */
70
- protected abstract exportMetrics(accessRequest: AccessRequest, format: 'json' | 'prometheus' | 'csv'): Promise<string>;
71
- /**
72
- * Get component baselines
73
- */
74
- protected abstract getBaselines(accessRequest: AccessRequest): Promise<ComponentBaseline[]>;
75
- /**
76
- * Establish baseline for component
77
- */
78
- protected abstract establishBaseline(accessRequest: AccessRequest, componentName: string): Promise<ComponentBaseline>;
79
- /**
80
- * Export to external monitoring systems
81
- */
82
- protected exportToExternal(accessRequest: AccessRequest, exportConfig: ExternalMonitoringExport): Promise<void>;
83
- /**
84
- * Perform health check on the connector
85
- */
86
- healthCheck(): Promise<{
87
- status: 'healthy' | 'degraded' | 'unhealthy';
88
- details: Record<string, any>;
89
- }>;
90
- /**
91
- * Get connector statistics
92
- */
93
- getStats(): Promise<{
94
- totalMetrics: number;
95
- agentCount: number;
96
- timeRange: {
97
- start: number;
98
- end: number;
99
- };
100
- storageSize: number;
101
- }>;
102
- }