@revenium/openai 1.0.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.
- package/LICENSE +21 -0
- package/README.md +1095 -0
- package/dist/cjs/core/config/azure-config.js +64 -0
- package/dist/cjs/core/config/azure-config.js.map +1 -0
- package/dist/cjs/core/config/index.js +41 -0
- package/dist/cjs/core/config/index.js.map +1 -0
- package/dist/cjs/core/config/loader.js +63 -0
- package/dist/cjs/core/config/loader.js.map +1 -0
- package/dist/cjs/core/config/manager.js +93 -0
- package/dist/cjs/core/config/manager.js.map +1 -0
- package/dist/cjs/core/config/validator.js +73 -0
- package/dist/cjs/core/config/validator.js.map +1 -0
- package/dist/cjs/core/providers/detector.js +140 -0
- package/dist/cjs/core/providers/detector.js.map +1 -0
- package/dist/cjs/core/providers/index.js +18 -0
- package/dist/cjs/core/providers/index.js.map +1 -0
- package/dist/cjs/core/tracking/api-client.js +68 -0
- package/dist/cjs/core/tracking/api-client.js.map +1 -0
- package/dist/cjs/core/tracking/index.js +23 -0
- package/dist/cjs/core/tracking/index.js.map +1 -0
- package/dist/cjs/core/tracking/payload-builder.js +107 -0
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -0
- package/dist/cjs/core/tracking/usage-tracker.js +120 -0
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -0
- package/dist/cjs/core/wrapper/index.js +15 -0
- package/dist/cjs/core/wrapper/index.js.map +1 -0
- package/dist/cjs/core/wrapper/instance-patcher.js +202 -0
- package/dist/cjs/core/wrapper/instance-patcher.js.map +1 -0
- package/dist/cjs/core/wrapper/request-handler.js +317 -0
- package/dist/cjs/core/wrapper/request-handler.js.map +1 -0
- package/dist/cjs/core/wrapper/stream-wrapper.js +82 -0
- package/dist/cjs/core/wrapper/stream-wrapper.js.map +1 -0
- package/dist/cjs/index.js +195 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types/function-parameters.js +14 -0
- package/dist/cjs/types/function-parameters.js.map +1 -0
- package/dist/cjs/types/index.js +49 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/openai-augmentation.js +55 -0
- package/dist/cjs/types/openai-augmentation.js.map +1 -0
- package/dist/cjs/types/responses-api.js +30 -0
- package/dist/cjs/types/responses-api.js.map +1 -0
- package/dist/cjs/utils/azure-model-resolver.js +211 -0
- package/dist/cjs/utils/azure-model-resolver.js.map +1 -0
- package/dist/cjs/utils/constants.js +24 -0
- package/dist/cjs/utils/constants.js.map +1 -0
- package/dist/cjs/utils/error-handler.js +194 -0
- package/dist/cjs/utils/error-handler.js.map +1 -0
- package/dist/cjs/utils/metadata-builder.js +184 -0
- package/dist/cjs/utils/metadata-builder.js.map +1 -0
- package/dist/cjs/utils/provider-detection.js +212 -0
- package/dist/cjs/utils/provider-detection.js.map +1 -0
- package/dist/cjs/utils/request-handler-factory.js +185 -0
- package/dist/cjs/utils/request-handler-factory.js.map +1 -0
- package/dist/cjs/utils/stop-reason-mapper.js +70 -0
- package/dist/cjs/utils/stop-reason-mapper.js.map +1 -0
- package/dist/cjs/utils/type-guards.js +175 -0
- package/dist/cjs/utils/type-guards.js.map +1 -0
- package/dist/cjs/utils/url-builder.js +43 -0
- package/dist/cjs/utils/url-builder.js.map +1 -0
- package/dist/esm/core/config/azure-config.js +61 -0
- package/dist/esm/core/config/azure-config.js.map +1 -0
- package/dist/esm/core/config/index.js +13 -0
- package/dist/esm/core/config/index.js.map +1 -0
- package/dist/esm/core/config/loader.js +58 -0
- package/dist/esm/core/config/loader.js.map +1 -0
- package/dist/esm/core/config/manager.js +85 -0
- package/dist/esm/core/config/manager.js.map +1 -0
- package/dist/esm/core/config/validator.js +69 -0
- package/dist/esm/core/config/validator.js.map +1 -0
- package/dist/esm/core/providers/detector.js +134 -0
- package/dist/esm/core/providers/detector.js.map +1 -0
- package/dist/esm/core/providers/index.js +10 -0
- package/dist/esm/core/providers/index.js.map +1 -0
- package/dist/esm/core/tracking/api-client.js +65 -0
- package/dist/esm/core/tracking/api-client.js.map +1 -0
- package/dist/esm/core/tracking/index.js +13 -0
- package/dist/esm/core/tracking/index.js.map +1 -0
- package/dist/esm/core/tracking/payload-builder.js +104 -0
- package/dist/esm/core/tracking/payload-builder.js.map +1 -0
- package/dist/esm/core/tracking/usage-tracker.js +114 -0
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -0
- package/dist/esm/core/wrapper/index.js +9 -0
- package/dist/esm/core/wrapper/index.js.map +1 -0
- package/dist/esm/core/wrapper/instance-patcher.js +199 -0
- package/dist/esm/core/wrapper/instance-patcher.js.map +1 -0
- package/dist/esm/core/wrapper/request-handler.js +310 -0
- package/dist/esm/core/wrapper/request-handler.js.map +1 -0
- package/dist/esm/core/wrapper/stream-wrapper.js +79 -0
- package/dist/esm/core/wrapper/stream-wrapper.js.map +1 -0
- package/dist/esm/index.js +175 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/function-parameters.js +13 -0
- package/dist/esm/types/function-parameters.js.map +1 -0
- package/dist/esm/types/index.js +32 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/openai-augmentation.js +54 -0
- package/dist/esm/types/openai-augmentation.js.map +1 -0
- package/dist/esm/types/responses-api.js +26 -0
- package/dist/esm/types/responses-api.js.map +1 -0
- package/dist/esm/utils/azure-model-resolver.js +204 -0
- package/dist/esm/utils/azure-model-resolver.js.map +1 -0
- package/dist/esm/utils/constants.js +21 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/error-handler.js +182 -0
- package/dist/esm/utils/error-handler.js.map +1 -0
- package/dist/esm/utils/metadata-builder.js +176 -0
- package/dist/esm/utils/metadata-builder.js.map +1 -0
- package/dist/esm/utils/provider-detection.js +206 -0
- package/dist/esm/utils/provider-detection.js.map +1 -0
- package/dist/esm/utils/request-handler-factory.js +146 -0
- package/dist/esm/utils/request-handler-factory.js.map +1 -0
- package/dist/esm/utils/stop-reason-mapper.js +65 -0
- package/dist/esm/utils/stop-reason-mapper.js.map +1 -0
- package/dist/esm/utils/type-guards.js +158 -0
- package/dist/esm/utils/type-guards.js.map +1 -0
- package/dist/esm/utils/url-builder.js +39 -0
- package/dist/esm/utils/url-builder.js.map +1 -0
- package/dist/types/core/config/azure-config.d.ts +16 -0
- package/dist/types/core/config/azure-config.d.ts.map +1 -0
- package/dist/types/core/config/index.d.ts +11 -0
- package/dist/types/core/config/index.d.ts.map +1 -0
- package/dist/types/core/config/loader.d.ts +20 -0
- package/dist/types/core/config/loader.d.ts.map +1 -0
- package/dist/types/core/config/manager.d.ts +32 -0
- package/dist/types/core/config/manager.d.ts.map +1 -0
- package/dist/types/core/config/validator.d.ts +23 -0
- package/dist/types/core/config/validator.d.ts.map +1 -0
- package/dist/types/core/providers/detector.d.ts +44 -0
- package/dist/types/core/providers/detector.d.ts.map +1 -0
- package/dist/types/core/providers/index.d.ts +9 -0
- package/dist/types/core/providers/index.d.ts.map +1 -0
- package/dist/types/core/tracking/api-client.d.ts +17 -0
- package/dist/types/core/tracking/api-client.d.ts.map +1 -0
- package/dist/types/core/tracking/index.d.ts +11 -0
- package/dist/types/core/tracking/index.d.ts.map +1 -0
- package/dist/types/core/tracking/payload-builder.d.ts +24 -0
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -0
- package/dist/types/core/tracking/usage-tracker.d.ts +48 -0
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -0
- package/dist/types/core/wrapper/index.d.ts +8 -0
- package/dist/types/core/wrapper/index.d.ts.map +1 -0
- package/dist/types/core/wrapper/instance-patcher.d.ts +33 -0
- package/dist/types/core/wrapper/instance-patcher.d.ts.map +1 -0
- package/dist/types/core/wrapper/request-handler.d.ts +29 -0
- package/dist/types/core/wrapper/request-handler.d.ts.map +1 -0
- package/dist/types/core/wrapper/stream-wrapper.d.ts +13 -0
- package/dist/types/core/wrapper/stream-wrapper.d.ts.map +1 -0
- package/dist/types/index.d.ts +179 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/function-parameters.d.ts +229 -0
- package/dist/types/types/function-parameters.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +283 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/openai-augmentation.d.ts +226 -0
- package/dist/types/types/openai-augmentation.d.ts.map +1 -0
- package/dist/types/types/responses-api.d.ts +247 -0
- package/dist/types/types/responses-api.d.ts.map +1 -0
- package/dist/types/utils/azure-model-resolver.d.ts +41 -0
- package/dist/types/utils/azure-model-resolver.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +4 -0
- package/dist/types/utils/constants.d.ts.map +1 -0
- package/dist/types/utils/error-handler.d.ts +95 -0
- package/dist/types/utils/error-handler.d.ts.map +1 -0
- package/dist/types/utils/metadata-builder.d.ts +64 -0
- package/dist/types/utils/metadata-builder.d.ts.map +1 -0
- package/dist/types/utils/provider-detection.d.ts +51 -0
- package/dist/types/utils/provider-detection.d.ts.map +1 -0
- package/dist/types/utils/request-handler-factory.d.ts +81 -0
- package/dist/types/utils/request-handler-factory.d.ts.map +1 -0
- package/dist/types/utils/stop-reason-mapper.d.ts +29 -0
- package/dist/types/utils/stop-reason-mapper.d.ts.map +1 -0
- package/dist/types/utils/type-guards.d.ts +73 -0
- package/dist/types/utils/type-guards.d.ts.map +1 -0
- package/dist/types/utils/url-builder.d.ts +25 -0
- package/dist/types/utils/url-builder.d.ts.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for OpenAI Responses API support
|
|
3
|
+
*
|
|
4
|
+
* This module defines types for the new OpenAI Responses API that replaces
|
|
5
|
+
* the traditional Chat Completions API. The Responses API provides a unified
|
|
6
|
+
* interface for building agent-like applications with built-in tools and capabilities.
|
|
7
|
+
*
|
|
8
|
+
* Reference: https://platform.openai.com/docs/guides/migrate-to-responses
|
|
9
|
+
*/
|
|
10
|
+
import { UsageMetadata } from './index.js';
|
|
11
|
+
/**
|
|
12
|
+
* OpenAI Responses API request parameters
|
|
13
|
+
* Based on the official OpenAI Responses API documentation
|
|
14
|
+
* Reference: https://platform.openai.com/docs/guides/migrate-to-responses
|
|
15
|
+
*/
|
|
16
|
+
export interface OpenAIResponsesRequest {
|
|
17
|
+
/** The model to use for the response */
|
|
18
|
+
model: string;
|
|
19
|
+
/** Input for the response - can be string or message array */
|
|
20
|
+
input: string | Array<{
|
|
21
|
+
role: 'user' | 'assistant' | 'system';
|
|
22
|
+
content: string;
|
|
23
|
+
}>;
|
|
24
|
+
/** Whether to stream the response */
|
|
25
|
+
stream?: boolean;
|
|
26
|
+
/** Maximum number of output tokens to generate */
|
|
27
|
+
max_output_tokens?: number;
|
|
28
|
+
/** Temperature for response generation (0.0 to 2.0) */
|
|
29
|
+
temperature?: number;
|
|
30
|
+
/** Top-p sampling parameter (0.0 to 1.0) */
|
|
31
|
+
top_p?: number;
|
|
32
|
+
/** Instructions for the model (replaces system messages) */
|
|
33
|
+
instructions?: string;
|
|
34
|
+
/** Tools available to the model */
|
|
35
|
+
tools?: Array<{
|
|
36
|
+
type: 'function' | 'web_search' | 'file_search' | 'code_interpreter' | 'image_generation';
|
|
37
|
+
name?: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
parameters?: {
|
|
40
|
+
type: 'object';
|
|
41
|
+
properties: Record<string, unknown>;
|
|
42
|
+
required?: string[];
|
|
43
|
+
additionalProperties?: boolean;
|
|
44
|
+
};
|
|
45
|
+
[key: string]: unknown;
|
|
46
|
+
}>;
|
|
47
|
+
/** Tool choice configuration */
|
|
48
|
+
tool_choice?: 'auto' | 'none' | {
|
|
49
|
+
type: 'function';
|
|
50
|
+
name: string;
|
|
51
|
+
};
|
|
52
|
+
/** Structured output configuration */
|
|
53
|
+
text?: {
|
|
54
|
+
format?: {
|
|
55
|
+
type: 'json_schema';
|
|
56
|
+
name: string;
|
|
57
|
+
strict?: boolean;
|
|
58
|
+
schema: {
|
|
59
|
+
type: 'object';
|
|
60
|
+
properties: Record<string, unknown>;
|
|
61
|
+
required?: string[];
|
|
62
|
+
additionalProperties?: boolean;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/** Metadata for the request */
|
|
67
|
+
metadata?: Record<string, unknown>;
|
|
68
|
+
/** ID of previous response to continue from */
|
|
69
|
+
previous_response_id?: string;
|
|
70
|
+
/** Whether to run in background mode */
|
|
71
|
+
background?: boolean;
|
|
72
|
+
/** Whether to store the response (default: true) */
|
|
73
|
+
store?: boolean;
|
|
74
|
+
/** Parallel tool calls configuration */
|
|
75
|
+
parallel_tool_calls?: boolean;
|
|
76
|
+
/** Reasoning effort level */
|
|
77
|
+
reasoning_effort?: 'low' | 'medium' | 'high';
|
|
78
|
+
/** Include additional data in response */
|
|
79
|
+
include?: Array<'reasoning.encrypted_content'>;
|
|
80
|
+
/** Custom metadata field for Revenium tracking */
|
|
81
|
+
usageMetadata?: UsageMetadata;
|
|
82
|
+
/** Additional parameters */
|
|
83
|
+
[key: string]: unknown;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* OpenAI Responses API response structure
|
|
87
|
+
* Based on the official Azure OpenAI Responses API documentation
|
|
88
|
+
*/
|
|
89
|
+
export interface OpenAIResponsesResponse {
|
|
90
|
+
/** Unique identifier for the response */
|
|
91
|
+
id: string;
|
|
92
|
+
/** Timestamp when the response was created */
|
|
93
|
+
created_at: number;
|
|
94
|
+
/** The model used for the response */
|
|
95
|
+
model: string;
|
|
96
|
+
/** Response object type */
|
|
97
|
+
object: 'response';
|
|
98
|
+
/** Response status */
|
|
99
|
+
status: 'queued' | 'in_progress' | 'completed' | 'incomplete' | 'cancelled' | 'failed';
|
|
100
|
+
/** Response output array */
|
|
101
|
+
output: Array<{
|
|
102
|
+
id: string;
|
|
103
|
+
type: 'message' | 'function_call' | 'function_call_output' | 'image_generation_call';
|
|
104
|
+
role?: 'assistant';
|
|
105
|
+
content?: Array<{
|
|
106
|
+
type: 'output_text' | 'text';
|
|
107
|
+
text?: string;
|
|
108
|
+
annotations?: Array<unknown>;
|
|
109
|
+
}>;
|
|
110
|
+
name?: string;
|
|
111
|
+
call_id?: string;
|
|
112
|
+
output?: string;
|
|
113
|
+
result?: string;
|
|
114
|
+
status?: string | null;
|
|
115
|
+
}>;
|
|
116
|
+
/** Simplified output text (convenience field) */
|
|
117
|
+
output_text?: string;
|
|
118
|
+
/** Usage statistics */
|
|
119
|
+
usage?: {
|
|
120
|
+
input_tokens: number;
|
|
121
|
+
output_tokens: number;
|
|
122
|
+
total_tokens: number;
|
|
123
|
+
output_tokens_details?: {
|
|
124
|
+
reasoning_tokens: number;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
/** Response metadata */
|
|
128
|
+
metadata?: Record<string, unknown>;
|
|
129
|
+
/** Instructions used */
|
|
130
|
+
instructions?: string | null;
|
|
131
|
+
/** Tools configuration */
|
|
132
|
+
tools?: Array<unknown>;
|
|
133
|
+
/** Tool choice configuration */
|
|
134
|
+
tool_choice?: unknown;
|
|
135
|
+
/** Parallel tool calls setting */
|
|
136
|
+
parallel_tool_calls?: boolean | null;
|
|
137
|
+
/** Temperature used */
|
|
138
|
+
temperature?: number;
|
|
139
|
+
/** Top-p used */
|
|
140
|
+
top_p?: number;
|
|
141
|
+
/** Max output tokens */
|
|
142
|
+
max_output_tokens?: number | null;
|
|
143
|
+
/** Previous response ID */
|
|
144
|
+
previous_response_id?: string | null;
|
|
145
|
+
/** Error information */
|
|
146
|
+
error?: unknown | null;
|
|
147
|
+
/** Incomplete details */
|
|
148
|
+
incomplete_details?: unknown | null;
|
|
149
|
+
/** Reasoning information */
|
|
150
|
+
reasoning?: unknown | null;
|
|
151
|
+
/** Text field */
|
|
152
|
+
text?: unknown | null;
|
|
153
|
+
/** Truncation information */
|
|
154
|
+
truncation?: unknown | null;
|
|
155
|
+
/** User information */
|
|
156
|
+
user?: unknown | null;
|
|
157
|
+
/** Reasoning effort */
|
|
158
|
+
reasoning_effort?: unknown | null;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Streaming chunk for Responses API
|
|
162
|
+
*/
|
|
163
|
+
export interface OpenAIResponsesStreamChunk {
|
|
164
|
+
/** Unique identifier for the response */
|
|
165
|
+
id: string;
|
|
166
|
+
/** The model used */
|
|
167
|
+
model: string;
|
|
168
|
+
/** Delta content for this chunk */
|
|
169
|
+
delta?: {
|
|
170
|
+
content?: Array<{
|
|
171
|
+
type: 'text' | 'tool_use';
|
|
172
|
+
text?: string;
|
|
173
|
+
[key: string]: unknown;
|
|
174
|
+
}>;
|
|
175
|
+
};
|
|
176
|
+
/** Usage information (typically in final chunk) */
|
|
177
|
+
usage?: {
|
|
178
|
+
input_tokens?: number;
|
|
179
|
+
output_tokens?: number;
|
|
180
|
+
total_tokens?: number;
|
|
181
|
+
reasoning_tokens?: number;
|
|
182
|
+
cached_tokens?: number;
|
|
183
|
+
};
|
|
184
|
+
/** Finish reason (in final chunk) */
|
|
185
|
+
finish_reason?: string | null;
|
|
186
|
+
/** Additional chunk fields */
|
|
187
|
+
[key: string]: unknown;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Type guard to check if a request is for Responses API
|
|
191
|
+
*/
|
|
192
|
+
export declare function isResponsesRequest(params: unknown): params is OpenAIResponsesRequest;
|
|
193
|
+
/**
|
|
194
|
+
* Type guard to check if a response is from Responses API
|
|
195
|
+
*/
|
|
196
|
+
export declare function isResponsesResponse(response: unknown): response is OpenAIResponsesResponse;
|
|
197
|
+
/**
|
|
198
|
+
* Simplified interface for Responses API create parameters (for examples)
|
|
199
|
+
*/
|
|
200
|
+
export interface ResponsesCreateParams {
|
|
201
|
+
model: string;
|
|
202
|
+
input: string | Array<{
|
|
203
|
+
role: 'user' | 'assistant' | 'system';
|
|
204
|
+
content: string;
|
|
205
|
+
}>;
|
|
206
|
+
stream?: boolean;
|
|
207
|
+
max_output_tokens?: number;
|
|
208
|
+
temperature?: number;
|
|
209
|
+
instructions?: string;
|
|
210
|
+
tools?: Array<{
|
|
211
|
+
type: 'function' | 'web_search' | 'file_search' | 'code_interpreter' | 'image_generation';
|
|
212
|
+
function?: {
|
|
213
|
+
name: string;
|
|
214
|
+
description?: string;
|
|
215
|
+
parameters?: Record<string, unknown>;
|
|
216
|
+
};
|
|
217
|
+
}>;
|
|
218
|
+
usageMetadata?: UsageMetadata;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Simplified interface for Responses API response (for examples)
|
|
222
|
+
*/
|
|
223
|
+
export interface ResponsesResponse {
|
|
224
|
+
id: string;
|
|
225
|
+
model: string;
|
|
226
|
+
object: 'response';
|
|
227
|
+
status: string;
|
|
228
|
+
output: Array<{
|
|
229
|
+
id: string;
|
|
230
|
+
type: string;
|
|
231
|
+
role?: string;
|
|
232
|
+
content?: Array<{
|
|
233
|
+
type: 'output_text' | 'text';
|
|
234
|
+
text?: string;
|
|
235
|
+
}>;
|
|
236
|
+
}>;
|
|
237
|
+
output_text?: string;
|
|
238
|
+
usage?: {
|
|
239
|
+
input_tokens: number;
|
|
240
|
+
output_tokens: number;
|
|
241
|
+
total_tokens: number;
|
|
242
|
+
output_tokens_details?: {
|
|
243
|
+
reasoning_tokens: number;
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=responses-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses-api.d.ts","sourceRoot":"","sources":["../../../src/types/responses-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve Azure deployment name to LiteLLM-compatible model name
|
|
3
|
+
*
|
|
4
|
+
* @param deploymentName - Azure deployment name
|
|
5
|
+
* @param useCache - Whether to use cached results (default: true)
|
|
6
|
+
* @returns LiteLLM-compatible model name
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveAzureModelName(deploymentName: string, useCache?: boolean): string;
|
|
9
|
+
/**
|
|
10
|
+
* Clear the model name cache
|
|
11
|
+
* Useful for testing or when deployment configurations change
|
|
12
|
+
*/
|
|
13
|
+
export declare function clearModelNameCache(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Get cache statistics for monitoring
|
|
16
|
+
*/
|
|
17
|
+
export declare function getModelNameCacheStats(): {
|
|
18
|
+
cacheSize: number;
|
|
19
|
+
failedResolutionCount: number;
|
|
20
|
+
cacheEntries: Array<{
|
|
21
|
+
deployment: string;
|
|
22
|
+
resolved: string;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Batch resolve multiple deployment names
|
|
27
|
+
* Useful for pre-warming cache or bulk operations
|
|
28
|
+
*
|
|
29
|
+
* @param deploymentNames - Array of deployment names to resolve
|
|
30
|
+
* @returns Map of deployment name to resolved model name
|
|
31
|
+
*/
|
|
32
|
+
export declare function batchResolveModelNames(deploymentNames: string[]): Map<string, string>;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a deployment name would be resolved to a different model name
|
|
35
|
+
* Useful for validation and testing
|
|
36
|
+
*
|
|
37
|
+
* @param deploymentName - Azure deployment name
|
|
38
|
+
* @returns true if the deployment name would be transformed
|
|
39
|
+
*/
|
|
40
|
+
export declare function wouldTransformDeploymentName(deploymentName: string): boolean;
|
|
41
|
+
//# sourceMappingURL=azure-model-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-model-resolver.d.ts","sourceRoot":"","sources":["../../../src/utils/azure-model-resolver.ts"],"names":[],"mappings":"AAgCA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,MAAM,CA0C9F;AAuED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBrF;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAG5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,UAgBvB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAAuC,CAAC;AAClF,eAAO,MAAM,kCAAkC,UAAoC,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Handler Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized error handling patterns to eliminate repetitive try/catch blocks
|
|
5
|
+
* and provide consistent error logging and recovery strategies.
|
|
6
|
+
*/
|
|
7
|
+
import { Logger } from '../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Error handling strategy configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface ErrorHandlingStrategy {
|
|
12
|
+
/** Whether to log the error */
|
|
13
|
+
logError?: boolean;
|
|
14
|
+
/** Whether to re-throw the error */
|
|
15
|
+
rethrow?: boolean;
|
|
16
|
+
/** Custom error message prefix */
|
|
17
|
+
messagePrefix?: string;
|
|
18
|
+
/** Fallback value to return on error */
|
|
19
|
+
fallbackValue?: unknown;
|
|
20
|
+
/** Custom error transformation function */
|
|
21
|
+
transformError?: (error: unknown) => Error;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Safe async operation wrapper with comprehensive error handling
|
|
25
|
+
*
|
|
26
|
+
* @param operation - The async operation to execute
|
|
27
|
+
* @param context - Context information for logging
|
|
28
|
+
* @param strategy - Error handling strategy
|
|
29
|
+
* @param logger - Logger instance
|
|
30
|
+
* @returns Promise with result or fallback value
|
|
31
|
+
*/
|
|
32
|
+
export declare function safeAsyncOperation<T>(operation: () => Promise<T>, context: string, strategy?: ErrorHandlingStrategy, logger?: Logger): Promise<T | undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* Safe sync operation wrapper
|
|
35
|
+
*
|
|
36
|
+
* @param operation - The sync operation to execute
|
|
37
|
+
* @param context - Context information for logging
|
|
38
|
+
* @param strategy - Error handling strategy
|
|
39
|
+
* @param logger - Logger instance
|
|
40
|
+
* @returns Result or fallback value
|
|
41
|
+
*/
|
|
42
|
+
export declare function safeSyncOperation<T>(operation: () => T, context: string, strategy?: ErrorHandlingStrategy, logger?: Logger): T | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Validation wrapper that provides clear error messages
|
|
45
|
+
*
|
|
46
|
+
* @param value - Value to validate
|
|
47
|
+
* @param validator - Validation function
|
|
48
|
+
* @param errorMessage - Error message if validation fails
|
|
49
|
+
* @returns Validated value
|
|
50
|
+
*/
|
|
51
|
+
export declare function validateOrThrow<T>(value: unknown, validator: (value: unknown) => value is T, errorMessage: string): T;
|
|
52
|
+
/**
|
|
53
|
+
* Validation wrapper that returns undefined on failure
|
|
54
|
+
*
|
|
55
|
+
* @param value - Value to validate
|
|
56
|
+
* @param validator - Validation function
|
|
57
|
+
* @param logger - Optional logger for warnings
|
|
58
|
+
* @param context - Context for logging
|
|
59
|
+
* @returns Validated value or undefined
|
|
60
|
+
*/
|
|
61
|
+
export declare function validateOrUndefined<T>(value: unknown, validator: (value: unknown) => value is T, logger?: Logger, context?: string): T | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Create a retry wrapper for operations that might fail temporarily
|
|
64
|
+
*
|
|
65
|
+
* @param operation - Operation to retry
|
|
66
|
+
* @param maxRetries - Maximum number of retries
|
|
67
|
+
* @param delayMs - Delay between retries in milliseconds
|
|
68
|
+
* @param logger - Logger for retry attempts
|
|
69
|
+
* @returns Promise with operation result
|
|
70
|
+
*/
|
|
71
|
+
export declare function withRetry<T>(operation: () => Promise<T>, maxRetries?: number, delayMs?: number, logger?: Logger): Promise<T>;
|
|
72
|
+
/**
|
|
73
|
+
* Common error types for better error handling
|
|
74
|
+
*/
|
|
75
|
+
export declare class ValidationError extends Error {
|
|
76
|
+
readonly context?: Record<string, unknown> | undefined;
|
|
77
|
+
constructor(message: string, context?: Record<string, unknown> | undefined);
|
|
78
|
+
}
|
|
79
|
+
export declare class ConfigurationError extends Error {
|
|
80
|
+
readonly context?: Record<string, unknown> | undefined;
|
|
81
|
+
constructor(message: string, context?: Record<string, unknown> | undefined);
|
|
82
|
+
}
|
|
83
|
+
export declare class NetworkError extends Error {
|
|
84
|
+
readonly context?: Record<string, unknown> | undefined;
|
|
85
|
+
constructor(message: string, context?: Record<string, unknown> | undefined);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Error classification utility
|
|
89
|
+
*/
|
|
90
|
+
export declare function classifyError(error: unknown): {
|
|
91
|
+
type: 'validation' | 'configuration' | 'network' | 'unknown';
|
|
92
|
+
message: string;
|
|
93
|
+
isRetryable: boolean;
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;CAC5C;AAaD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,qBAA0B,EACpC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAkBxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,CAAC,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,qBAA0B,EACpC,MAAM,CAAC,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAkBf;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,EACzC,YAAY,EAAE,MAAM,GACnB,CAAC,CAGH;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,EACzC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,GAAG,SAAS,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,GAAE,MAAU,EACtB,OAAO,GAAE,MAAa,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBADjD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBADjD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED,qBAAa,YAAa,SAAQ,KAAK;aAGnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBADjD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG;IAC7C,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB,CAwBA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata Builder Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized metadata handling to eliminate repetitive spreading
|
|
5
|
+
* and provide consistent metadata processing across the codebase.
|
|
6
|
+
*/
|
|
7
|
+
import { UsageMetadata } from '../types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build metadata object for payload inclusion
|
|
10
|
+
*
|
|
11
|
+
* This function eliminates the repetitive spreading pattern and provides
|
|
12
|
+
* a clean, testable way to handle metadata transformation.
|
|
13
|
+
* Subscriber object is passed through directly without transformation.
|
|
14
|
+
*
|
|
15
|
+
* @param usageMetadata - Source metadata from request
|
|
16
|
+
* @returns Clean metadata object for payload
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildMetadataFields(usageMetadata?: UsageMetadata): Record<string, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Validate metadata completeness for specific use cases
|
|
21
|
+
*
|
|
22
|
+
* @param usageMetadata - Metadata to validate
|
|
23
|
+
* @param requiredFields - List of required field names
|
|
24
|
+
* @returns Validation result
|
|
25
|
+
*/
|
|
26
|
+
export declare function validateMetadata(usageMetadata?: UsageMetadata, requiredFields?: (keyof UsageMetadata)[]): {
|
|
27
|
+
isValid: boolean;
|
|
28
|
+
missingFields: string[];
|
|
29
|
+
warnings: string[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Merge multiple metadata sources with priority
|
|
33
|
+
*
|
|
34
|
+
* @param sources - Metadata sources in priority order (first wins)
|
|
35
|
+
* @returns Merged metadata object
|
|
36
|
+
*/
|
|
37
|
+
export declare function mergeMetadata(...sources: (UsageMetadata | undefined)[]): UsageMetadata;
|
|
38
|
+
/**
|
|
39
|
+
* Extract metadata from request parameters safely
|
|
40
|
+
*
|
|
41
|
+
* @param params - Request parameters that might contain usageMetadata
|
|
42
|
+
* @returns Extracted metadata and cleaned parameters
|
|
43
|
+
*/
|
|
44
|
+
export declare function extractMetadata<T extends Record<string, unknown>>(params: T & {
|
|
45
|
+
usageMetadata?: UsageMetadata;
|
|
46
|
+
}): {
|
|
47
|
+
metadata: UsageMetadata | undefined;
|
|
48
|
+
cleanParams: Omit<T, 'usageMetadata'>;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Create a metadata context for consistent logging
|
|
52
|
+
*
|
|
53
|
+
* @param usageMetadata - Source metadata
|
|
54
|
+
* @returns Logging context object
|
|
55
|
+
*/
|
|
56
|
+
export declare function createLoggingContext(usageMetadata?: UsageMetadata): Record<string, unknown>;
|
|
57
|
+
/**
|
|
58
|
+
* Sanitize metadata for logging (remove sensitive fields)
|
|
59
|
+
*
|
|
60
|
+
* @param usageMetadata - Source metadata
|
|
61
|
+
* @returns Sanitized metadata safe for logging
|
|
62
|
+
*/
|
|
63
|
+
export declare function sanitizeMetadataForLogging(usageMetadata?: UsageMetadata): Record<string, unknown>;
|
|
64
|
+
//# sourceMappingURL=metadata-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAC;AAuC9D;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoB1F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,GAAE,CAAC,MAAM,aAAa,CAAC,EAAO,GAC3C;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAmCA;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,OAAO,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,GAAG,aAAa,CAQtF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAC5C;IACD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;CACvC,CAMA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW3F;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BjG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Detection Utilities
|
|
3
|
+
*
|
|
4
|
+
* Simplifies complex provider detection logic using strategy pattern
|
|
5
|
+
* instead of nested conditionals.
|
|
6
|
+
*/
|
|
7
|
+
import { Provider, ProviderInfo, AzureConfig } from '../types/index.js';
|
|
8
|
+
import { OpenAIClientInstance } from '../types/function-parameters.js';
|
|
9
|
+
import { Logger } from '../types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Detect provider using strategy pattern
|
|
12
|
+
*
|
|
13
|
+
* This replaces the complex nested conditional logic with a clean,
|
|
14
|
+
* testable strategy pattern.
|
|
15
|
+
*
|
|
16
|
+
* @param client - OpenAI client instance
|
|
17
|
+
* @param logger - Logger for debugging
|
|
18
|
+
* @returns Provider detection result
|
|
19
|
+
*/
|
|
20
|
+
export declare function detectProviderStrategy(client: OpenAIClientInstance, logger?: Logger): {
|
|
21
|
+
provider: Provider;
|
|
22
|
+
strategy?: string;
|
|
23
|
+
context?: Record<string, unknown>;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Gather Azure configuration using strategy pattern
|
|
27
|
+
*
|
|
28
|
+
* @param client - OpenAI client instance
|
|
29
|
+
* @param logger - Logger for debugging
|
|
30
|
+
* @returns Merged Azure configuration
|
|
31
|
+
*/
|
|
32
|
+
export declare function gatherAzureConfigStrategy(client: OpenAIClientInstance, logger?: Logger): AzureConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Create complete provider info using strategies
|
|
35
|
+
*
|
|
36
|
+
* @param client - OpenAI client instance
|
|
37
|
+
* @param logger - Logger for debugging
|
|
38
|
+
* @returns Complete provider information
|
|
39
|
+
*/
|
|
40
|
+
export declare function createProviderInfo(client: OpenAIClientInstance, logger?: Logger): ProviderInfo;
|
|
41
|
+
/**
|
|
42
|
+
* Validate provider detection result
|
|
43
|
+
*
|
|
44
|
+
* @param providerInfo - Provider info to validate
|
|
45
|
+
* @returns Validation result
|
|
46
|
+
*/
|
|
47
|
+
export declare function validateProviderInfo(providerInfo: ProviderInfo): {
|
|
48
|
+
isValid: boolean;
|
|
49
|
+
warnings: string[];
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=provider-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-detection.d.ts","sourceRoot":"","sources":["../../../src/utils/provider-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAuE3C;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,CAAC,EAAE,MAAM,GACd;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAkC9E;AA+BD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CA+Bb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAkB9F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAmBA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Handler Factory
|
|
3
|
+
*
|
|
4
|
+
* Eliminates dynamic require() calls and provides a clean factory pattern
|
|
5
|
+
* for creating request handlers with proper dependency injection.
|
|
6
|
+
*/
|
|
7
|
+
import { OpenAIChatRequest, OpenAIEmbeddingRequest, OpenAIRequestOptions, OpenAIClientInstance, OpenAIOriginalFunction, OpenAIResponsesOriginalFunction } from '../types/function-parameters.js';
|
|
8
|
+
import { UsageMetadata, OpenAIResponsesRequest } from '../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Request handler function signatures
|
|
11
|
+
*/
|
|
12
|
+
export type StreamingRequestHandler = (originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIChatRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance) => Promise<AsyncIterable<unknown>>;
|
|
13
|
+
export type NonStreamingRequestHandler = (originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIChatRequest, 'usageMetadata'> | Omit<OpenAIEmbeddingRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance) => Promise<unknown>;
|
|
14
|
+
export type EmbeddingsRequestHandler = (originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIEmbeddingRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance) => Promise<unknown>;
|
|
15
|
+
export type ResponsesStreamingRequestHandler = (originalCreate: OpenAIResponsesOriginalFunction, params: Omit<OpenAIResponsesRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance) => Promise<AsyncIterable<unknown>>;
|
|
16
|
+
export type ResponsesNonStreamingRequestHandler = (originalCreate: OpenAIResponsesOriginalFunction, params: Omit<OpenAIResponsesRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance) => Promise<unknown>;
|
|
17
|
+
/**
|
|
18
|
+
* Request handler dependencies
|
|
19
|
+
*/
|
|
20
|
+
export interface RequestHandlerDependencies {
|
|
21
|
+
handleStreamingRequest: StreamingRequestHandler;
|
|
22
|
+
handleNonStreamingRequest: NonStreamingRequestHandler;
|
|
23
|
+
handleEmbeddingsRequest: EmbeddingsRequestHandler;
|
|
24
|
+
handleResponsesStreamingRequest: ResponsesStreamingRequestHandler;
|
|
25
|
+
handleResponsesNonStreamingRequest: ResponsesNonStreamingRequestHandler;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Request handler factory class
|
|
29
|
+
*
|
|
30
|
+
* This eliminates the need for dynamic require() calls and provides
|
|
31
|
+
* a clean dependency injection pattern.
|
|
32
|
+
*/
|
|
33
|
+
export declare class RequestHandlerFactory {
|
|
34
|
+
private dependencies;
|
|
35
|
+
/**
|
|
36
|
+
* Initialize the factory with dependencies
|
|
37
|
+
*/
|
|
38
|
+
initialize(dependencies: RequestHandlerDependencies): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get streaming request handler
|
|
41
|
+
*/
|
|
42
|
+
getStreamingHandler(): StreamingRequestHandler;
|
|
43
|
+
/**
|
|
44
|
+
* Get non-streaming request handler
|
|
45
|
+
*/
|
|
46
|
+
getNonStreamingHandler(): NonStreamingRequestHandler;
|
|
47
|
+
/**
|
|
48
|
+
* Get embeddings request handler
|
|
49
|
+
*/
|
|
50
|
+
getEmbeddingsHandler(): EmbeddingsRequestHandler;
|
|
51
|
+
/**
|
|
52
|
+
* Route chat request to appropriate handler
|
|
53
|
+
*/
|
|
54
|
+
routeChatRequest(originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIChatRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<unknown>;
|
|
55
|
+
/**
|
|
56
|
+
* Route embeddings request to appropriate handler
|
|
57
|
+
*/
|
|
58
|
+
routeEmbeddingsRequest(originalCreate: OpenAIOriginalFunction, params: Omit<OpenAIEmbeddingRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<unknown>;
|
|
59
|
+
/**
|
|
60
|
+
* Route responses request to appropriate handler (new OpenAI Responses API)
|
|
61
|
+
*/
|
|
62
|
+
routeResponsesRequest(originalCreate: OpenAIResponsesOriginalFunction, params: Omit<OpenAIResponsesRequest, 'usageMetadata'>, options: OpenAIRequestOptions | undefined, usageMetadata: UsageMetadata | undefined, requestStartTime: number, instance: OpenAIClientInstance): Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Check if factory is initialized
|
|
65
|
+
*/
|
|
66
|
+
isInitialized(): boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Global factory instance
|
|
70
|
+
*/
|
|
71
|
+
export declare const requestHandlerFactory: RequestHandlerFactory;
|
|
72
|
+
/**
|
|
73
|
+
* Initialize the global factory (called once during module setup)
|
|
74
|
+
* Uses dynamic import to avoid circular dependencies
|
|
75
|
+
*/
|
|
76
|
+
export declare function initializeRequestHandlerFactory(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Utility function to ensure factory is initialized
|
|
79
|
+
*/
|
|
80
|
+
export declare function ensureFactoryInitialized(): Promise<void>;
|
|
81
|
+
//# sourceMappingURL=request-handler-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-handler-factory.d.ts","sourceRoot":"","sources":["../../../src/utils/request-handler-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stop Reason Mapper Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized stop reason mapping logic using lookup tables
|
|
5
|
+
* instead of nested conditionals. Based on the good example
|
|
6
|
+
* from the anthropic-node middleware.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Map provider stop reasons to Revenium stop reasons
|
|
10
|
+
*
|
|
11
|
+
* This replaces the nested if/switch logic with a clean lookup table approach.
|
|
12
|
+
* Based on the good example from the anthropic-node middleware.
|
|
13
|
+
*
|
|
14
|
+
* @param providerStopReason - Stop reason from the AI provider
|
|
15
|
+
* @param logger - Optional logger for warnings about unknown reasons
|
|
16
|
+
* @returns Standardized Revenium stop reason
|
|
17
|
+
*/
|
|
18
|
+
export declare function mapStopReason(providerStopReason: string | null | undefined, logger?: {
|
|
19
|
+
warn: (message: string, ...args: any[]) => void;
|
|
20
|
+
}): string;
|
|
21
|
+
/**
|
|
22
|
+
* Get all supported stop reasons for documentation/testing
|
|
23
|
+
*/
|
|
24
|
+
export declare function getSupportedStopReasons(): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Check if a stop reason is supported
|
|
27
|
+
*/
|
|
28
|
+
export declare function isStopReasonSupported(reason: string): boolean;
|
|
29
|
+
//# sourceMappingURL=stop-reason-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-reason-mapper.d.ts","sourceRoot":"","sources":["../../../src/utils/stop-reason-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7C,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAAE,GAC3D,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|