@smythos/sre 1.5.46 → 1.5.50
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/CHANGELOG +98 -90
- package/LICENSE +18 -18
- package/README.md +135 -135
- package/dist/bundle-analysis-lazy.html +4949 -0
- package/dist/bundle-analysis.html +4949 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/Components/MCPClient.class.d.ts +1 -0
- package/dist/types/subsystems/LLMManager/LLM.service/connectors/openai/OpenAIConnector.class.d.ts +1 -6
- package/dist/types/utils/package-manager.utils.d.ts +26 -0
- package/package.json +1 -1
- package/src/Components/APICall/APICall.class.ts +156 -156
- package/src/Components/APICall/AccessTokenManager.ts +130 -130
- package/src/Components/APICall/ArrayBufferResponse.helper.ts +58 -58
- package/src/Components/APICall/OAuth.helper.ts +294 -294
- package/src/Components/APICall/mimeTypeCategories.ts +46 -46
- package/src/Components/APICall/parseData.ts +167 -167
- package/src/Components/APICall/parseHeaders.ts +41 -41
- package/src/Components/APICall/parseProxy.ts +68 -68
- package/src/Components/APICall/parseUrl.ts +91 -91
- package/src/Components/APIEndpoint.class.ts +234 -234
- package/src/Components/APIOutput.class.ts +58 -58
- package/src/Components/AgentPlugin.class.ts +102 -102
- package/src/Components/Async.class.ts +155 -155
- package/src/Components/Await.class.ts +90 -90
- package/src/Components/Classifier.class.ts +158 -158
- package/src/Components/Component.class.ts +132 -132
- package/src/Components/ComponentHost.class.ts +38 -38
- package/src/Components/DataSourceCleaner.class.ts +92 -92
- package/src/Components/DataSourceIndexer.class.ts +181 -181
- package/src/Components/DataSourceLookup.class.ts +161 -161
- package/src/Components/ECMASandbox.class.ts +71 -71
- package/src/Components/FEncDec.class.ts +29 -29
- package/src/Components/FHash.class.ts +33 -33
- package/src/Components/FSign.class.ts +80 -80
- package/src/Components/FSleep.class.ts +25 -25
- package/src/Components/FTimestamp.class.ts +25 -25
- package/src/Components/FileStore.class.ts +78 -78
- package/src/Components/ForEach.class.ts +97 -97
- package/src/Components/GPTPlugin.class.ts +70 -70
- package/src/Components/GenAILLM.class.ts +586 -586
- package/src/Components/HuggingFace.class.ts +314 -314
- package/src/Components/Image/imageSettings.config.ts +70 -70
- package/src/Components/ImageGenerator.class.ts +502 -502
- package/src/Components/JSONFilter.class.ts +54 -54
- package/src/Components/LLMAssistant.class.ts +213 -213
- package/src/Components/LogicAND.class.ts +28 -28
- package/src/Components/LogicAtLeast.class.ts +85 -85
- package/src/Components/LogicAtMost.class.ts +86 -86
- package/src/Components/LogicOR.class.ts +29 -29
- package/src/Components/LogicXOR.class.ts +34 -34
- package/src/Components/MCPClient.class.ts +138 -112
- package/src/Components/MemoryDeleteKeyVal.class.ts +70 -70
- package/src/Components/MemoryReadKeyVal.class.ts +66 -66
- package/src/Components/MemoryWriteKeyVal.class.ts +62 -62
- package/src/Components/MemoryWriteObject.class.ts +97 -97
- package/src/Components/MultimodalLLM.class.ts +128 -128
- package/src/Components/OpenAPI.class.ts +72 -72
- package/src/Components/PromptGenerator.class.ts +122 -122
- package/src/Components/ScrapflyWebScrape.class.ts +159 -159
- package/src/Components/ServerlessCode.class.ts +123 -123
- package/src/Components/TavilyWebSearch.class.ts +98 -98
- package/src/Components/VisionLLM.class.ts +104 -104
- package/src/Components/ZapierAction.class.ts +127 -127
- package/src/Components/index.ts +97 -97
- package/src/Core/AgentProcess.helper.ts +240 -240
- package/src/Core/Connector.class.ts +123 -123
- package/src/Core/ConnectorsService.ts +197 -197
- package/src/Core/DummyConnector.ts +49 -49
- package/src/Core/HookService.ts +105 -105
- package/src/Core/SmythRuntime.class.ts +235 -235
- package/src/Core/SystemEvents.ts +16 -16
- package/src/Core/boot.ts +56 -56
- package/src/config.ts +15 -15
- package/src/constants.ts +126 -126
- package/src/data/hugging-face.params.json +579 -579
- package/src/helpers/AWSLambdaCode.helper.ts +587 -587
- package/src/helpers/BinaryInput.helper.ts +331 -331
- package/src/helpers/Conversation.helper.ts +1119 -1119
- package/src/helpers/ECMASandbox.helper.ts +54 -54
- package/src/helpers/JsonContent.helper.ts +97 -97
- package/src/helpers/LocalCache.helper.ts +97 -97
- package/src/helpers/Log.helper.ts +274 -274
- package/src/helpers/OpenApiParser.helper.ts +150 -150
- package/src/helpers/S3Cache.helper.ts +147 -147
- package/src/helpers/SmythURI.helper.ts +5 -5
- package/src/helpers/Sysconfig.helper.ts +77 -77
- package/src/helpers/TemplateString.helper.ts +243 -243
- package/src/helpers/TypeChecker.helper.ts +329 -329
- package/src/index.ts +3 -3
- package/src/index.ts.bak +3 -3
- package/src/subsystems/AgentManager/Agent.class.ts +1114 -1114
- package/src/subsystems/AgentManager/Agent.helper.ts +3 -3
- package/src/subsystems/AgentManager/AgentData.service/AgentDataConnector.ts +230 -230
- package/src/subsystems/AgentManager/AgentData.service/connectors/CLIAgentDataConnector.class.ts +66 -66
- package/src/subsystems/AgentManager/AgentData.service/connectors/LocalAgentDataConnector.class.ts +142 -142
- package/src/subsystems/AgentManager/AgentData.service/connectors/NullAgentData.class.ts +39 -39
- package/src/subsystems/AgentManager/AgentData.service/index.ts +18 -18
- package/src/subsystems/AgentManager/AgentLogger.class.ts +297 -297
- package/src/subsystems/AgentManager/AgentRequest.class.ts +51 -51
- package/src/subsystems/AgentManager/AgentRuntime.class.ts +559 -559
- package/src/subsystems/AgentManager/AgentSSE.class.ts +101 -101
- package/src/subsystems/AgentManager/AgentSettings.class.ts +52 -52
- package/src/subsystems/AgentManager/Component.service/ComponentConnector.ts +32 -32
- package/src/subsystems/AgentManager/Component.service/connectors/LocalComponentConnector.class.ts +60 -60
- package/src/subsystems/AgentManager/Component.service/index.ts +11 -11
- package/src/subsystems/AgentManager/EmbodimentSettings.class.ts +47 -47
- package/src/subsystems/AgentManager/ForkedAgent.class.ts +154 -154
- package/src/subsystems/AgentManager/OSResourceMonitor.ts +77 -77
- package/src/subsystems/ComputeManager/Code.service/CodeConnector.ts +98 -98
- package/src/subsystems/ComputeManager/Code.service/connectors/AWSLambdaCode.class.ts +172 -172
- package/src/subsystems/ComputeManager/Code.service/connectors/ECMASandbox.class.ts +131 -131
- package/src/subsystems/ComputeManager/Code.service/index.ts +13 -13
- package/src/subsystems/IO/CLI.service/CLIConnector.ts +47 -47
- package/src/subsystems/IO/CLI.service/index.ts +9 -9
- package/src/subsystems/IO/Log.service/LogConnector.ts +32 -32
- package/src/subsystems/IO/Log.service/connectors/ConsoleLog.class.ts +28 -28
- package/src/subsystems/IO/Log.service/index.ts +13 -13
- package/src/subsystems/IO/NKV.service/NKVConnector.ts +43 -43
- package/src/subsystems/IO/NKV.service/connectors/NKVLocalStorage.class.ts +234 -234
- package/src/subsystems/IO/NKV.service/connectors/NKVRAM.class.ts +204 -204
- package/src/subsystems/IO/NKV.service/connectors/NKVRedis.class.ts +182 -182
- package/src/subsystems/IO/NKV.service/index.ts +14 -14
- package/src/subsystems/IO/Router.service/RouterConnector.ts +21 -21
- package/src/subsystems/IO/Router.service/connectors/ExpressRouter.class.ts +48 -48
- package/src/subsystems/IO/Router.service/connectors/NullRouter.class.ts +40 -40
- package/src/subsystems/IO/Router.service/index.ts +11 -11
- package/src/subsystems/IO/Storage.service/SmythFS.class.ts +489 -489
- package/src/subsystems/IO/Storage.service/StorageConnector.ts +66 -66
- package/src/subsystems/IO/Storage.service/connectors/LocalStorage.class.ts +327 -327
- package/src/subsystems/IO/Storage.service/connectors/S3Storage.class.ts +482 -482
- package/src/subsystems/IO/Storage.service/index.ts +13 -13
- package/src/subsystems/IO/VectorDB.service/VectorDBConnector.ts +108 -108
- package/src/subsystems/IO/VectorDB.service/connectors/MilvusVectorDB.class.ts +454 -454
- package/src/subsystems/IO/VectorDB.service/connectors/PineconeVectorDB.class.ts +384 -384
- package/src/subsystems/IO/VectorDB.service/connectors/RAMVecrtorDB.class.ts +421 -421
- package/src/subsystems/IO/VectorDB.service/embed/BaseEmbedding.ts +107 -107
- package/src/subsystems/IO/VectorDB.service/embed/OpenAIEmbedding.ts +109 -109
- package/src/subsystems/IO/VectorDB.service/embed/index.ts +21 -21
- package/src/subsystems/IO/VectorDB.service/index.ts +14 -14
- package/src/subsystems/LLMManager/LLM.helper.ts +251 -251
- package/src/subsystems/LLMManager/LLM.inference.ts +339 -339
- package/src/subsystems/LLMManager/LLM.service/LLMConnector.ts +489 -489
- package/src/subsystems/LLMManager/LLM.service/LLMCredentials.helper.ts +171 -171
- package/src/subsystems/LLMManager/LLM.service/connectors/Anthropic.class.ts +659 -659
- package/src/subsystems/LLMManager/LLM.service/connectors/Bedrock.class.ts +400 -400
- package/src/subsystems/LLMManager/LLM.service/connectors/Echo.class.ts +77 -77
- package/src/subsystems/LLMManager/LLM.service/connectors/GoogleAI.class.ts +757 -757
- package/src/subsystems/LLMManager/LLM.service/connectors/Groq.class.ts +304 -304
- package/src/subsystems/LLMManager/LLM.service/connectors/Perplexity.class.ts +250 -250
- package/src/subsystems/LLMManager/LLM.service/connectors/VertexAI.class.ts +423 -423
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/OpenAIConnector.class.ts +488 -488
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/ChatCompletionsApiInterface.ts +524 -524
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterface.ts +100 -100
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterfaceFactory.ts +81 -81
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/ResponsesApiInterface.ts +1145 -1145
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/constants.ts +13 -13
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/index.ts +4 -4
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/utils.ts +11 -11
- package/src/subsystems/LLMManager/LLM.service/connectors/openai/types.ts +32 -32
- package/src/subsystems/LLMManager/LLM.service/connectors/xAI.class.ts +471 -471
- package/src/subsystems/LLMManager/LLM.service/index.ts +44 -44
- package/src/subsystems/LLMManager/ModelsProvider.service/ModelsProviderConnector.ts +300 -300
- package/src/subsystems/LLMManager/ModelsProvider.service/connectors/JSONModelsProvider.class.ts +252 -252
- package/src/subsystems/LLMManager/ModelsProvider.service/index.ts +11 -11
- package/src/subsystems/LLMManager/custom-models.ts +854 -854
- package/src/subsystems/LLMManager/models.ts +2540 -2540
- package/src/subsystems/LLMManager/paramMappings.ts +69 -69
- package/src/subsystems/MemoryManager/Cache.service/CacheConnector.ts +86 -86
- package/src/subsystems/MemoryManager/Cache.service/connectors/LocalStorageCache.class.ts +297 -297
- package/src/subsystems/MemoryManager/Cache.service/connectors/RAMCache.class.ts +201 -201
- package/src/subsystems/MemoryManager/Cache.service/connectors/RedisCache.class.ts +252 -252
- package/src/subsystems/MemoryManager/Cache.service/connectors/S3Cache.class.ts +373 -373
- package/src/subsystems/MemoryManager/Cache.service/index.ts +15 -15
- package/src/subsystems/MemoryManager/LLMCache.ts +72 -72
- package/src/subsystems/MemoryManager/LLMContext.ts +124 -124
- package/src/subsystems/MemoryManager/LLMMemory.service/LLMMemoryConnector.ts +26 -26
- package/src/subsystems/MemoryManager/RuntimeContext.ts +266 -266
- package/src/subsystems/Security/AccessControl/ACL.class.ts +208 -208
- package/src/subsystems/Security/AccessControl/AccessCandidate.class.ts +82 -82
- package/src/subsystems/Security/AccessControl/AccessRequest.class.ts +52 -52
- package/src/subsystems/Security/Account.service/AccountConnector.ts +44 -44
- package/src/subsystems/Security/Account.service/connectors/AWSAccount.class.ts +76 -76
- package/src/subsystems/Security/Account.service/connectors/DummyAccount.class.ts +130 -130
- package/src/subsystems/Security/Account.service/connectors/JSONFileAccount.class.ts +159 -159
- package/src/subsystems/Security/Account.service/index.ts +14 -14
- package/src/subsystems/Security/Credentials.helper.ts +62 -62
- package/src/subsystems/Security/ManagedVault.service/ManagedVaultConnector.ts +38 -38
- package/src/subsystems/Security/ManagedVault.service/connectors/NullManagedVault.class.ts +53 -53
- package/src/subsystems/Security/ManagedVault.service/connectors/SecretManagerManagedVault.ts +154 -154
- package/src/subsystems/Security/ManagedVault.service/index.ts +12 -12
- package/src/subsystems/Security/SecureConnector.class.ts +110 -110
- package/src/subsystems/Security/Vault.service/Vault.helper.ts +30 -30
- package/src/subsystems/Security/Vault.service/VaultConnector.ts +29 -29
- package/src/subsystems/Security/Vault.service/connectors/HashicorpVault.class.ts +46 -46
- package/src/subsystems/Security/Vault.service/connectors/JSONFileVault.class.ts +221 -221
- package/src/subsystems/Security/Vault.service/connectors/NullVault.class.ts +54 -54
- package/src/subsystems/Security/Vault.service/connectors/SecretsManager.class.ts +140 -140
- package/src/subsystems/Security/Vault.service/index.ts +12 -12
- package/src/types/ACL.types.ts +104 -104
- package/src/types/AWS.types.ts +10 -10
- package/src/types/Agent.types.ts +61 -61
- package/src/types/AgentLogger.types.ts +17 -17
- package/src/types/Cache.types.ts +1 -1
- package/src/types/Common.types.ts +2 -2
- package/src/types/LLM.types.ts +496 -496
- package/src/types/Redis.types.ts +8 -8
- package/src/types/SRE.types.ts +64 -64
- package/src/types/Security.types.ts +14 -14
- package/src/types/Storage.types.ts +5 -5
- package/src/types/VectorDB.types.ts +86 -86
- package/src/utils/base64.utils.ts +275 -275
- package/src/utils/cli.utils.ts +68 -68
- package/src/utils/data.utils.ts +322 -322
- package/src/utils/date-time.utils.ts +22 -22
- package/src/utils/general.utils.ts +238 -238
- package/src/utils/index.ts +12 -12
- package/src/utils/lazy-client.ts +261 -261
- package/src/utils/numbers.utils.ts +13 -13
- package/src/utils/oauth.utils.ts +35 -35
- package/src/utils/string.utils.ts +414 -414
- package/src/utils/url.utils.ts +19 -19
- package/src/utils/validation.utils.ts +74 -74
- package/dist/types/subsystems/LLMManager/ModelsProvider.service/connectors/SmythModelsProvider.class.d.ts +0 -39
package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterface.ts
CHANGED
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
import EventEmitter from 'events';
|
|
2
|
-
import { BinaryInput } from '@sre/helpers/BinaryInput.helper';
|
|
3
|
-
import { TLLMParams, ILLMRequestContext, TLLMToolChoice, OpenAIToolDefinition, LegacyToolDefinition, LLMModelInfo } from '@sre/types/LLM.types';
|
|
4
|
-
import { HandlerDependencies } from '../types';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* OpenAI-specific tool configuration interface
|
|
8
|
-
* Only deals with OpenAI tool definitions for clean separation
|
|
9
|
-
*/
|
|
10
|
-
export interface ToolConfig {
|
|
11
|
-
type?: string;
|
|
12
|
-
toolDefinitions: (OpenAIToolDefinition | LegacyToolDefinition)[];
|
|
13
|
-
toolChoice?: TLLMToolChoice;
|
|
14
|
-
modelInfo?: LLMModelInfo | null;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Abstract base class for OpenAI API interfaces
|
|
19
|
-
* Defines the contract that all OpenAI API implementations must follow
|
|
20
|
-
*
|
|
21
|
-
* This follows the Strategy pattern - each API interface (responses, chat.completions)
|
|
22
|
-
* implements this interface with its own specific behavior
|
|
23
|
-
*/
|
|
24
|
-
export abstract class OpenAIApiInterface {
|
|
25
|
-
protected context: ILLMRequestContext;
|
|
26
|
-
|
|
27
|
-
constructor(context: ILLMRequestContext) {
|
|
28
|
-
this.context = context;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Create a regular (non-streaming) request for this API interface
|
|
33
|
-
* @param body - The request body prepared for this API
|
|
34
|
-
* @param context - The request context
|
|
35
|
-
*/
|
|
36
|
-
abstract createRequest(body: any, context: ILLMRequestContext): Promise<any>;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Create a stream for this API interface
|
|
40
|
-
* @param body - The request body prepared for this API
|
|
41
|
-
* @param context - The request context
|
|
42
|
-
*/
|
|
43
|
-
abstract createStream(body: any, context: ILLMRequestContext): Promise<any>;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Handle the stream response from this API interface
|
|
47
|
-
* @param stream - The stream returned from createStream
|
|
48
|
-
* @param context - The request context
|
|
49
|
-
*/
|
|
50
|
-
abstract handleStream(stream: any, context: ILLMRequestContext): EventEmitter;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Prepare the request body for this API interface
|
|
54
|
-
* @param params - The LLM parameters
|
|
55
|
-
*/
|
|
56
|
-
abstract prepareRequestBody(params: TLLMParams): Promise<any>;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Transform tools configuration for this API interface
|
|
60
|
-
* @param config - The tool configuration
|
|
61
|
-
*/
|
|
62
|
-
abstract transformToolsConfig(config: ToolConfig): any[];
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Handle file attachments for this API interface
|
|
66
|
-
* @param files - The files to attach
|
|
67
|
-
* @param agentId - The agent ID
|
|
68
|
-
* @param messages - The messages to attach files to
|
|
69
|
-
*/
|
|
70
|
-
abstract handleFileAttachments(files: BinaryInput[], agentId: string, messages: any[]): Promise<any[]>;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Get the API interface name
|
|
74
|
-
*/
|
|
75
|
-
abstract getInterfaceName(): string;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Validate if this interface supports the given parameters
|
|
79
|
-
* @param params - The parameters to validate
|
|
80
|
-
*/
|
|
81
|
-
abstract validateParameters(params: TLLMParams): boolean;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Factory interface for creating OpenAI API interfaces
|
|
86
|
-
*/
|
|
87
|
-
export interface OpenAIApiInterfaceFactory {
|
|
88
|
-
/**
|
|
89
|
-
* Create an API interface instance for the specified type
|
|
90
|
-
* @param interfaceType - The type of interface to create
|
|
91
|
-
* @param context - The context for the interface
|
|
92
|
-
* @param deps - The handler dependencies for the interface
|
|
93
|
-
*/
|
|
94
|
-
createInterface(interfaceType: string, context: ILLMRequestContext, deps: HandlerDependencies): OpenAIApiInterface;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Get supported interface types
|
|
98
|
-
*/
|
|
99
|
-
getSupportedInterfaces(): string[];
|
|
100
|
-
}
|
|
1
|
+
import EventEmitter from 'events';
|
|
2
|
+
import { BinaryInput } from '@sre/helpers/BinaryInput.helper';
|
|
3
|
+
import { TLLMParams, ILLMRequestContext, TLLMToolChoice, OpenAIToolDefinition, LegacyToolDefinition, LLMModelInfo } from '@sre/types/LLM.types';
|
|
4
|
+
import { HandlerDependencies } from '../types';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* OpenAI-specific tool configuration interface
|
|
8
|
+
* Only deals with OpenAI tool definitions for clean separation
|
|
9
|
+
*/
|
|
10
|
+
export interface ToolConfig {
|
|
11
|
+
type?: string;
|
|
12
|
+
toolDefinitions: (OpenAIToolDefinition | LegacyToolDefinition)[];
|
|
13
|
+
toolChoice?: TLLMToolChoice;
|
|
14
|
+
modelInfo?: LLMModelInfo | null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Abstract base class for OpenAI API interfaces
|
|
19
|
+
* Defines the contract that all OpenAI API implementations must follow
|
|
20
|
+
*
|
|
21
|
+
* This follows the Strategy pattern - each API interface (responses, chat.completions)
|
|
22
|
+
* implements this interface with its own specific behavior
|
|
23
|
+
*/
|
|
24
|
+
export abstract class OpenAIApiInterface {
|
|
25
|
+
protected context: ILLMRequestContext;
|
|
26
|
+
|
|
27
|
+
constructor(context: ILLMRequestContext) {
|
|
28
|
+
this.context = context;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Create a regular (non-streaming) request for this API interface
|
|
33
|
+
* @param body - The request body prepared for this API
|
|
34
|
+
* @param context - The request context
|
|
35
|
+
*/
|
|
36
|
+
abstract createRequest(body: any, context: ILLMRequestContext): Promise<any>;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Create a stream for this API interface
|
|
40
|
+
* @param body - The request body prepared for this API
|
|
41
|
+
* @param context - The request context
|
|
42
|
+
*/
|
|
43
|
+
abstract createStream(body: any, context: ILLMRequestContext): Promise<any>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Handle the stream response from this API interface
|
|
47
|
+
* @param stream - The stream returned from createStream
|
|
48
|
+
* @param context - The request context
|
|
49
|
+
*/
|
|
50
|
+
abstract handleStream(stream: any, context: ILLMRequestContext): EventEmitter;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Prepare the request body for this API interface
|
|
54
|
+
* @param params - The LLM parameters
|
|
55
|
+
*/
|
|
56
|
+
abstract prepareRequestBody(params: TLLMParams): Promise<any>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Transform tools configuration for this API interface
|
|
60
|
+
* @param config - The tool configuration
|
|
61
|
+
*/
|
|
62
|
+
abstract transformToolsConfig(config: ToolConfig): any[];
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Handle file attachments for this API interface
|
|
66
|
+
* @param files - The files to attach
|
|
67
|
+
* @param agentId - The agent ID
|
|
68
|
+
* @param messages - The messages to attach files to
|
|
69
|
+
*/
|
|
70
|
+
abstract handleFileAttachments(files: BinaryInput[], agentId: string, messages: any[]): Promise<any[]>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Get the API interface name
|
|
74
|
+
*/
|
|
75
|
+
abstract getInterfaceName(): string;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Validate if this interface supports the given parameters
|
|
79
|
+
* @param params - The parameters to validate
|
|
80
|
+
*/
|
|
81
|
+
abstract validateParameters(params: TLLMParams): boolean;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Factory interface for creating OpenAI API interfaces
|
|
86
|
+
*/
|
|
87
|
+
export interface OpenAIApiInterfaceFactory {
|
|
88
|
+
/**
|
|
89
|
+
* Create an API interface instance for the specified type
|
|
90
|
+
* @param interfaceType - The type of interface to create
|
|
91
|
+
* @param context - The context for the interface
|
|
92
|
+
* @param deps - The handler dependencies for the interface
|
|
93
|
+
*/
|
|
94
|
+
createInterface(interfaceType: string, context: ILLMRequestContext, deps: HandlerDependencies): OpenAIApiInterface;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Get supported interface types
|
|
98
|
+
*/
|
|
99
|
+
getSupportedInterfaces(): string[];
|
|
100
|
+
}
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import { OpenAIApiInterface, OpenAIApiInterfaceFactory as IOpenAIApiInterfaceFactory } from './OpenAIApiInterface';
|
|
2
|
-
import { ResponsesApiInterface } from './ResponsesApiInterface';
|
|
3
|
-
import { ChatCompletionsApiInterface } from './ChatCompletionsApiInterface';
|
|
4
|
-
import { HandlerDependencies } from '../types';
|
|
5
|
-
import { ILLMRequestContext } from '@sre/types/LLM.types';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Factory for creating OpenAI API interfaces
|
|
9
|
-
* Implements the Factory pattern to provide clean abstraction for different OpenAI API types
|
|
10
|
-
* Each API interface now handles its own streaming functionality
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* ```typescript
|
|
14
|
-
* const factory = new OpenAIApiInterfaceFactory();
|
|
15
|
-
* const apiInterface = factory.createInterface('responses', context, deps);
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export class OpenAIApiInterfaceFactory implements IOpenAIApiInterfaceFactory {
|
|
19
|
-
constructor() {
|
|
20
|
-
// No dependencies needed at factory level anymore
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Create an API interface instance for the specified type
|
|
25
|
-
* @param interfaceType - The type of interface to create ('responses', 'chat.completions')
|
|
26
|
-
* @param context - The context for the interface
|
|
27
|
-
* @param deps - The handler dependencies for the interface
|
|
28
|
-
* @returns The appropriate OpenAI API interface instance
|
|
29
|
-
*/
|
|
30
|
-
createInterface(interfaceType: string, context: ILLMRequestContext, deps: HandlerDependencies): OpenAIApiInterface {
|
|
31
|
-
if (!context || !deps) {
|
|
32
|
-
throw new Error('Context and dependencies (getClient(), reportUsage()) are required to create an interface');
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
switch (interfaceType) {
|
|
36
|
-
case 'responses':
|
|
37
|
-
return new ResponsesApiInterface(context, deps);
|
|
38
|
-
case 'chat.completions':
|
|
39
|
-
return new ChatCompletionsApiInterface(context, deps);
|
|
40
|
-
default:
|
|
41
|
-
throw new Error(
|
|
42
|
-
`Unsupported OpenAI API interface type: ${interfaceType}. Supported types: ${this.getSupportedInterfaces().join(', ')}`
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Get list of supported interface types
|
|
49
|
-
* @returns Array of supported interface type strings
|
|
50
|
-
*/
|
|
51
|
-
getSupportedInterfaces(): string[] {
|
|
52
|
-
return ['responses', 'chat.completions'];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Check if an interface type is supported
|
|
57
|
-
* @param interfaceType - The interface type to check
|
|
58
|
-
* @returns True if supported, false otherwise
|
|
59
|
-
*/
|
|
60
|
-
isInterfaceSupported(interfaceType: string): boolean {
|
|
61
|
-
return this.getSupportedInterfaces().includes(interfaceType);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Get the default interface type
|
|
66
|
-
* @returns The default interface type string
|
|
67
|
-
*/
|
|
68
|
-
getDefaultInterfaceType(): string {
|
|
69
|
-
return 'chat.completions';
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Get interface type based on model information
|
|
74
|
-
* @param modelInfo - Model information object
|
|
75
|
-
* @returns The appropriate interface type for the model
|
|
76
|
-
*/
|
|
77
|
-
getInterfaceTypeFromModelInfo(modelInfo?: { interface?: string } | unknown): string {
|
|
78
|
-
const info = modelInfo as { interface?: string } | undefined;
|
|
79
|
-
return info?.interface || this.getDefaultInterfaceType();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
1
|
+
import { OpenAIApiInterface, OpenAIApiInterfaceFactory as IOpenAIApiInterfaceFactory } from './OpenAIApiInterface';
|
|
2
|
+
import { ResponsesApiInterface } from './ResponsesApiInterface';
|
|
3
|
+
import { ChatCompletionsApiInterface } from './ChatCompletionsApiInterface';
|
|
4
|
+
import { HandlerDependencies } from '../types';
|
|
5
|
+
import { ILLMRequestContext } from '@sre/types/LLM.types';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Factory for creating OpenAI API interfaces
|
|
9
|
+
* Implements the Factory pattern to provide clean abstraction for different OpenAI API types
|
|
10
|
+
* Each API interface now handles its own streaming functionality
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const factory = new OpenAIApiInterfaceFactory();
|
|
15
|
+
* const apiInterface = factory.createInterface('responses', context, deps);
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class OpenAIApiInterfaceFactory implements IOpenAIApiInterfaceFactory {
|
|
19
|
+
constructor() {
|
|
20
|
+
// No dependencies needed at factory level anymore
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Create an API interface instance for the specified type
|
|
25
|
+
* @param interfaceType - The type of interface to create ('responses', 'chat.completions')
|
|
26
|
+
* @param context - The context for the interface
|
|
27
|
+
* @param deps - The handler dependencies for the interface
|
|
28
|
+
* @returns The appropriate OpenAI API interface instance
|
|
29
|
+
*/
|
|
30
|
+
createInterface(interfaceType: string, context: ILLMRequestContext, deps: HandlerDependencies): OpenAIApiInterface {
|
|
31
|
+
if (!context || !deps) {
|
|
32
|
+
throw new Error('Context and dependencies (getClient(), reportUsage()) are required to create an interface');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
switch (interfaceType) {
|
|
36
|
+
case 'responses':
|
|
37
|
+
return new ResponsesApiInterface(context, deps);
|
|
38
|
+
case 'chat.completions':
|
|
39
|
+
return new ChatCompletionsApiInterface(context, deps);
|
|
40
|
+
default:
|
|
41
|
+
throw new Error(
|
|
42
|
+
`Unsupported OpenAI API interface type: ${interfaceType}. Supported types: ${this.getSupportedInterfaces().join(', ')}`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Get list of supported interface types
|
|
49
|
+
* @returns Array of supported interface type strings
|
|
50
|
+
*/
|
|
51
|
+
getSupportedInterfaces(): string[] {
|
|
52
|
+
return ['responses', 'chat.completions'];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Check if an interface type is supported
|
|
57
|
+
* @param interfaceType - The interface type to check
|
|
58
|
+
* @returns True if supported, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
isInterfaceSupported(interfaceType: string): boolean {
|
|
61
|
+
return this.getSupportedInterfaces().includes(interfaceType);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Get the default interface type
|
|
66
|
+
* @returns The default interface type string
|
|
67
|
+
*/
|
|
68
|
+
getDefaultInterfaceType(): string {
|
|
69
|
+
return 'chat.completions';
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Get interface type based on model information
|
|
74
|
+
* @param modelInfo - Model information object
|
|
75
|
+
* @returns The appropriate interface type for the model
|
|
76
|
+
*/
|
|
77
|
+
getInterfaceTypeFromModelInfo(modelInfo?: { interface?: string } | unknown): string {
|
|
78
|
+
const info = modelInfo as { interface?: string } | undefined;
|
|
79
|
+
return info?.interface || this.getDefaultInterfaceType();
|
|
80
|
+
}
|
|
81
|
+
}
|