@just-every/ensemble 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +245 -0
  2. package/dist/cost_tracker.d.ts +2 -0
  3. package/dist/cost_tracker.d.ts.map +1 -0
  4. package/dist/cost_tracker.js +2 -0
  5. package/dist/cost_tracker.js.map +1 -0
  6. package/dist/errors.d.ts +55 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +134 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/external_models.d.ts +10 -0
  11. package/dist/external_models.d.ts.map +1 -0
  12. package/dist/external_models.js +36 -0
  13. package/dist/external_models.js.map +1 -0
  14. package/dist/index.d.ts +31 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +47 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/model_data.d.ts +63 -0
  19. package/dist/model_data.d.ts.map +1 -0
  20. package/dist/model_data.js +1070 -0
  21. package/dist/model_data.js.map +1 -0
  22. package/dist/model_providers/base_provider.d.ts +37 -0
  23. package/dist/model_providers/base_provider.d.ts.map +1 -0
  24. package/dist/model_providers/base_provider.js +146 -0
  25. package/dist/model_providers/base_provider.js.map +1 -0
  26. package/dist/model_providers/claude.d.ts +11 -0
  27. package/dist/model_providers/claude.d.ts.map +1 -0
  28. package/dist/model_providers/claude.js +788 -0
  29. package/dist/model_providers/claude.js.map +1 -0
  30. package/dist/model_providers/deepseek.d.ts +8 -0
  31. package/dist/model_providers/deepseek.d.ts.map +1 -0
  32. package/dist/model_providers/deepseek.js +136 -0
  33. package/dist/model_providers/deepseek.js.map +1 -0
  34. package/dist/model_providers/gemini.d.ts +11 -0
  35. package/dist/model_providers/gemini.d.ts.map +1 -0
  36. package/dist/model_providers/gemini.js +711 -0
  37. package/dist/model_providers/gemini.js.map +1 -0
  38. package/dist/model_providers/grok.d.ts +8 -0
  39. package/dist/model_providers/grok.d.ts.map +1 -0
  40. package/dist/model_providers/grok.js +22 -0
  41. package/dist/model_providers/grok.js.map +1 -0
  42. package/dist/model_providers/model_provider.d.ts +11 -0
  43. package/dist/model_providers/model_provider.d.ts.map +1 -0
  44. package/dist/model_providers/model_provider.js +170 -0
  45. package/dist/model_providers/model_provider.js.map +1 -0
  46. package/dist/model_providers/openai.d.ts +13 -0
  47. package/dist/model_providers/openai.d.ts.map +1 -0
  48. package/dist/model_providers/openai.js +822 -0
  49. package/dist/model_providers/openai.js.map +1 -0
  50. package/dist/model_providers/openai_chat.d.ts +14 -0
  51. package/dist/model_providers/openai_chat.d.ts.map +1 -0
  52. package/dist/model_providers/openai_chat.js +719 -0
  53. package/dist/model_providers/openai_chat.js.map +1 -0
  54. package/dist/model_providers/openrouter.d.ts +6 -0
  55. package/dist/model_providers/openrouter.d.ts.map +1 -0
  56. package/dist/model_providers/openrouter.js +18 -0
  57. package/dist/model_providers/openrouter.js.map +1 -0
  58. package/dist/model_providers/refactored_openai.d.ts +22 -0
  59. package/dist/model_providers/refactored_openai.d.ts.map +1 -0
  60. package/dist/model_providers/refactored_openai.js +310 -0
  61. package/dist/model_providers/refactored_openai.js.map +1 -0
  62. package/dist/model_providers/test_provider.d.ts +27 -0
  63. package/dist/model_providers/test_provider.d.ts.map +1 -0
  64. package/dist/model_providers/test_provider.js +185 -0
  65. package/dist/model_providers/test_provider.js.map +1 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -0
  67. package/dist/types/api_types.d.ts +249 -0
  68. package/dist/types/api_types.d.ts.map +1 -0
  69. package/dist/types/api_types.js +2 -0
  70. package/dist/types/api_types.js.map +1 -0
  71. package/dist/types/extended_types.d.ts +43 -0
  72. package/dist/types/extended_types.d.ts.map +1 -0
  73. package/dist/types/extended_types.js +2 -0
  74. package/dist/types/extended_types.js.map +1 -0
  75. package/dist/types.d.ts +301 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +2 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/utils/async_queue.d.ts +14 -0
  80. package/dist/utils/async_queue.d.ts.map +1 -0
  81. package/dist/utils/async_queue.js +68 -0
  82. package/dist/utils/async_queue.js.map +1 -0
  83. package/dist/utils/cache.d.ts +60 -0
  84. package/dist/utils/cache.d.ts.map +1 -0
  85. package/dist/utils/cache.js +205 -0
  86. package/dist/utils/cache.js.map +1 -0
  87. package/dist/utils/communication.d.ts +3 -0
  88. package/dist/utils/communication.d.ts.map +1 -0
  89. package/dist/utils/communication.js +8 -0
  90. package/dist/utils/communication.js.map +1 -0
  91. package/dist/utils/cost_tracker.d.ts +26 -0
  92. package/dist/utils/cost_tracker.d.ts.map +1 -0
  93. package/dist/utils/cost_tracker.js +177 -0
  94. package/dist/utils/cost_tracker.js.map +1 -0
  95. package/dist/utils/delta_buffer.d.ts +14 -0
  96. package/dist/utils/delta_buffer.d.ts.map +1 -0
  97. package/dist/utils/delta_buffer.js +60 -0
  98. package/dist/utils/delta_buffer.js.map +1 -0
  99. package/dist/utils/image_to_text.d.ts +3 -0
  100. package/dist/utils/image_to_text.d.ts.map +1 -0
  101. package/dist/utils/image_to_text.js +81 -0
  102. package/dist/utils/image_to_text.js.map +1 -0
  103. package/dist/utils/image_utils.d.ts +18 -0
  104. package/dist/utils/image_utils.d.ts.map +1 -0
  105. package/dist/utils/image_utils.js +132 -0
  106. package/dist/utils/image_utils.js.map +1 -0
  107. package/dist/utils/llm_logger.d.ts +8 -0
  108. package/dist/utils/llm_logger.d.ts.map +1 -0
  109. package/dist/utils/llm_logger.js +24 -0
  110. package/dist/utils/llm_logger.js.map +1 -0
  111. package/dist/utils/quota_tracker.d.ts +22 -0
  112. package/dist/utils/quota_tracker.d.ts.map +1 -0
  113. package/dist/utils/quota_tracker.js +338 -0
  114. package/dist/utils/quota_tracker.js.map +1 -0
  115. package/dist/utils/stream_converter.d.ts +19 -0
  116. package/dist/utils/stream_converter.d.ts.map +1 -0
  117. package/dist/utils/stream_converter.js +172 -0
  118. package/dist/utils/stream_converter.js.map +1 -0
  119. package/dist/validation.d.ts +1789 -0
  120. package/dist/validation.d.ts.map +1 -0
  121. package/dist/validation.js +289 -0
  122. package/dist/validation.js.map +1 -0
  123. package/dist/vitest.config.d.ts +3 -0
  124. package/dist/vitest.config.d.ts.map +1 -0
  125. package/dist/vitest.config.js +34 -0
  126. package/dist/vitest.config.js.map +1 -0
  127. package/package.json +86 -0
@@ -0,0 +1,301 @@
1
+ export type ToolParameterType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null';
2
+ export interface ToolParameter {
3
+ type?: ToolParameterType;
4
+ description?: string | (() => string);
5
+ enum?: string[] | (() => Promise<string[]>);
6
+ items?: ToolParameter | {
7
+ type: ToolParameterType;
8
+ enum?: string[] | (() => Promise<string[]>);
9
+ };
10
+ properties?: Record<string, ToolParameter>;
11
+ required?: string[];
12
+ optional?: boolean;
13
+ minItems?: number;
14
+ additionalProperties?: boolean;
15
+ default?: unknown;
16
+ minimum?: number;
17
+ maximum?: number;
18
+ minLength?: number;
19
+ maxLength?: number;
20
+ pattern?: string;
21
+ }
22
+ export type ExecutableFunction = (...args: unknown[]) => Promise<string> | string;
23
+ export interface ToolFunction {
24
+ function: ExecutableFunction;
25
+ definition: ToolDefinition;
26
+ injectAgentId?: boolean;
27
+ injectAbortSignal?: boolean;
28
+ }
29
+ export interface ToolDefinition {
30
+ type: 'function';
31
+ function: {
32
+ name: string;
33
+ description: string;
34
+ parameters: {
35
+ type: 'object';
36
+ properties: Record<string, ToolParameter>;
37
+ required: string[];
38
+ };
39
+ };
40
+ }
41
+ export interface ResponseJSONSchema {
42
+ name: string;
43
+ schema: Record<string, unknown>;
44
+ type: 'json_schema';
45
+ description?: string;
46
+ strict?: boolean | null;
47
+ }
48
+ export interface ModelSettings {
49
+ temperature?: number;
50
+ top_p?: number;
51
+ top_k?: number;
52
+ max_tokens?: number;
53
+ stop_sequence?: string;
54
+ seed?: number;
55
+ text?: {
56
+ format: string;
57
+ };
58
+ tool_choice?: 'auto' | 'none' | 'required' | {
59
+ type: string;
60
+ function: {
61
+ name: string;
62
+ };
63
+ };
64
+ sequential_tools?: boolean;
65
+ json_schema?: ResponseJSONSchema;
66
+ force_json?: boolean;
67
+ }
68
+ export interface ToolCall {
69
+ id: string;
70
+ type: 'function';
71
+ call_id?: string;
72
+ function: {
73
+ name: string;
74
+ arguments: string;
75
+ };
76
+ }
77
+ export interface ResponseContentText {
78
+ type: 'input_text';
79
+ text: string;
80
+ }
81
+ export interface ResponseContentImage {
82
+ type: 'input_image';
83
+ detail: 'high' | 'low' | 'auto';
84
+ file_id?: string;
85
+ image_url?: string;
86
+ }
87
+ export interface ResponseContentFileInput {
88
+ type: 'input_file';
89
+ file_data?: string;
90
+ file_id?: string;
91
+ filename?: string;
92
+ }
93
+ export type ResponseContent = string | Array<ResponseContentText | ResponseContentImage | ResponseContentFileInput>;
94
+ export type ResponseInput = Array<ResponseInputItem>;
95
+ export type ResponseInputItem = ResponseInputMessage | ResponseThinkingMessage | ResponseOutputMessage | ResponseInputFunctionCall | ResponseInputFunctionCallOutput;
96
+ export interface ResponseBaseMessage {
97
+ type: string;
98
+ model?: string;
99
+ timestamp?: number;
100
+ }
101
+ export interface ResponseInputMessage extends ResponseBaseMessage {
102
+ type: 'message';
103
+ name?: string;
104
+ content: ResponseContent;
105
+ role: 'user' | 'system' | 'developer';
106
+ status?: 'in_progress' | 'completed' | 'incomplete';
107
+ }
108
+ export interface ResponseThinkingMessage extends ResponseBaseMessage {
109
+ type: 'thinking';
110
+ content: ResponseContent;
111
+ signature?: ResponseContent;
112
+ thinking_id?: string;
113
+ role: 'assistant';
114
+ status?: 'in_progress' | 'completed' | 'incomplete';
115
+ }
116
+ export interface ResponseOutputMessage extends ResponseBaseMessage {
117
+ id?: string;
118
+ type: 'message';
119
+ content: ResponseContent;
120
+ role: 'assistant';
121
+ status: 'in_progress' | 'completed' | 'incomplete';
122
+ }
123
+ export interface ResponseInputFunctionCall extends ResponseBaseMessage {
124
+ type: 'function_call';
125
+ call_id: string;
126
+ name: string;
127
+ arguments: string;
128
+ id?: string;
129
+ status?: 'in_progress' | 'completed' | 'incomplete';
130
+ }
131
+ export interface ResponseInputFunctionCallOutput extends ResponseBaseMessage {
132
+ type: 'function_call_output';
133
+ call_id: string;
134
+ name?: string;
135
+ output: string;
136
+ id?: string;
137
+ status?: 'in_progress' | 'completed' | 'incomplete';
138
+ }
139
+ export type StreamEventType = 'connected' | 'command_start' | 'command_done' | 'project_create' | 'project_update' | 'process_start' | 'process_running' | 'process_updated' | 'process_done' | 'process_failed' | 'process_waiting' | 'process_terminated' | 'agent_start' | 'agent_updated' | 'agent_done' | 'agent_status' | 'message_start' | 'message_delta' | 'message_complete' | 'talk_start' | 'talk_delta' | 'talk_complete' | 'audio_stream' | 'tool_start' | 'tool_delta' | 'tool_done' | 'file_start' | 'file_delta' | 'file_complete' | 'cost_update' | 'system_status' | 'system_update' | 'quota_update' | 'screenshot' | 'design_grid' | 'console' | 'error' | 'tool_wait_start' | 'tool_waiting' | 'tool_wait_complete' | 'task_wait_start' | 'task_waiting' | 'task_wait_complete' | 'git_pull_request' | 'stream_end';
140
+ export interface StreamEvent {
141
+ type: StreamEventType;
142
+ timestamp?: string;
143
+ }
144
+ export interface MessageEventBase extends StreamEvent {
145
+ type: StreamEventType;
146
+ content: string;
147
+ message_id: string;
148
+ order?: number;
149
+ thinking_content?: string;
150
+ thinking_signature?: string;
151
+ }
152
+ export interface MessageEvent extends MessageEventBase {
153
+ type: 'message_start' | 'message_delta' | 'message_complete';
154
+ }
155
+ export interface FileEvent extends StreamEvent {
156
+ type: 'file_start' | 'file_delta' | 'file_complete';
157
+ message_id: string;
158
+ mime_type?: string;
159
+ data_format: 'base64';
160
+ data: string;
161
+ order?: number;
162
+ }
163
+ export interface TalkEvent extends MessageEventBase {
164
+ type: 'talk_start' | 'talk_delta' | 'talk_complete';
165
+ }
166
+ export interface ToolEvent extends StreamEvent {
167
+ type: 'tool_start' | 'tool_delta' | 'tool_done';
168
+ tool_calls: ToolCall[];
169
+ results?: Array<{
170
+ call_id: string;
171
+ output: string;
172
+ error?: string;
173
+ }>;
174
+ }
175
+ export interface ErrorEvent extends StreamEvent {
176
+ type: 'error';
177
+ error: string;
178
+ }
179
+ export interface CostUpdateEvent extends StreamEvent {
180
+ type: 'cost_update';
181
+ usage: {
182
+ input_tokens: number;
183
+ output_tokens: number;
184
+ total_tokens?: number;
185
+ cached_tokens?: number;
186
+ };
187
+ thought_delay?: number;
188
+ }
189
+ export type EnsembleStreamEvent = StreamEvent | MessageEvent | FileEvent | TalkEvent | ToolEvent | ErrorEvent | CostUpdateEvent;
190
+ export interface ModelProvider {
191
+ createResponseStream(model: string, messages: ResponseInput, agent: EnsembleAgent): AsyncGenerator<EnsembleStreamEvent>;
192
+ }
193
+ export type ModelClassID = 'standard' | 'mini' | 'reasoning' | 'reasoning_mini' | 'monologue' | 'metacognition' | 'code' | 'writing' | 'summary' | 'vision' | 'vision_mini' | 'search' | 'image_generation' | 'embedding';
194
+ export type ModelProviderID = 'openai' | 'anthropic' | 'google' | 'xai' | 'deepseek' | 'openrouter' | 'test';
195
+ export interface TieredPrice {
196
+ threshold_tokens: number;
197
+ price_below_threshold_per_million: number;
198
+ price_above_threshold_per_million: number;
199
+ }
200
+ export interface TimeBasedPrice {
201
+ peak_price_per_million: number;
202
+ off_peak_price_per_million: number;
203
+ peak_utc_start_hour: number;
204
+ peak_utc_start_minute: number;
205
+ peak_utc_end_hour: number;
206
+ peak_utc_end_minute: number;
207
+ }
208
+ export interface ModelCost {
209
+ input_per_million?: number | TieredPrice | TimeBasedPrice;
210
+ output_per_million?: number | TieredPrice | TimeBasedPrice;
211
+ cached_input_per_million?: number | TieredPrice | TimeBasedPrice;
212
+ per_image?: number;
213
+ }
214
+ export interface ModelFeatures {
215
+ context_length?: number;
216
+ input_modality?: ('text' | 'image' | 'audio' | 'video')[];
217
+ output_modality?: ('text' | 'image' | 'audio' | 'embedding')[];
218
+ tool_use?: boolean;
219
+ streaming?: boolean;
220
+ json_output?: boolean;
221
+ max_output_tokens?: number;
222
+ reasoning_output?: boolean;
223
+ }
224
+ export interface ModelEntry {
225
+ id: string;
226
+ aliases?: string[];
227
+ provider: ModelProviderID;
228
+ cost: ModelCost;
229
+ features: ModelFeatures;
230
+ class?: string;
231
+ description?: string;
232
+ rate_limit_fallback?: string;
233
+ openrouter_id?: string;
234
+ embedding?: boolean;
235
+ dim?: number;
236
+ score?: number;
237
+ scores?: {
238
+ monologue?: number;
239
+ code?: number;
240
+ reasoning?: number;
241
+ };
242
+ }
243
+ export interface ModelUsage {
244
+ model: string;
245
+ cost?: number;
246
+ input_tokens?: number;
247
+ output_tokens?: number;
248
+ cached_tokens?: number;
249
+ image_count?: number;
250
+ metadata?: Record<string, unknown>;
251
+ timestamp?: Date;
252
+ isFreeTierUsage?: boolean;
253
+ }
254
+ export interface ModelClass {
255
+ models: string[];
256
+ random?: boolean;
257
+ }
258
+ export interface ModelSpecificQuota {
259
+ model: string;
260
+ dailyTokenLimit: number;
261
+ dailyTokensUsed: number;
262
+ dailyRequestLimit: number;
263
+ dailyRequestsUsed: number;
264
+ rateLimit?: {
265
+ requestsPerMinute: number;
266
+ tokensPerMinute: number;
267
+ };
268
+ lastResetDate?: Date;
269
+ }
270
+ export interface ProviderQuota {
271
+ provider: ModelProviderID;
272
+ creditBalance?: number;
273
+ creditLimit?: number;
274
+ info?: Record<string, unknown>;
275
+ models: Record<string, ModelSpecificQuota>;
276
+ lastResetDate?: Date;
277
+ }
278
+ export interface EnsembleLogger {
279
+ log_llm_request(agentId: string, providerName: string, model: string, requestData: unknown, timestamp?: Date): string;
280
+ log_llm_response(requestId: string | undefined, responseData: unknown, timestamp?: Date): void;
281
+ log_llm_error(requestId: string | undefined, errorData: unknown, timestamp?: Date): void;
282
+ }
283
+ export interface ExtractBase64ImageResult {
284
+ found: boolean;
285
+ originalContent: string;
286
+ replaceContent: string;
287
+ image_id: string | null;
288
+ images: Record<string, string>;
289
+ }
290
+ export interface EmbedOpts {
291
+ taskType?: string;
292
+ dimensions?: number;
293
+ normalize?: boolean;
294
+ }
295
+ export interface EnsembleAgent {
296
+ agent_id: string;
297
+ getTools(): Promise<ToolFunction[]>;
298
+ modelSettings?: ModelSettings;
299
+ modelClass?: ModelClassID;
300
+ }
301
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export declare class AsyncQueue<T> {
2
+ private queue;
3
+ private waiters;
4
+ private completed;
5
+ private errorState;
6
+ push(item: T): void;
7
+ complete(): void;
8
+ setError(err: unknown): void;
9
+ [Symbol.asyncIterator](): AsyncIterator<T>;
10
+ get size(): number;
11
+ get isCompleted(): boolean;
12
+ get hasError(): boolean;
13
+ }
14
+ //# sourceMappingURL=async_queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async_queue.d.ts","sourceRoot":"","sources":["../../utils/async_queue.ts"],"names":[],"mappings":"AAIA,qBAAa,UAAU,CAAC,CAAC;IACrB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAiB;IAKnC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAkBnB,QAAQ,IAAI,IAAI;IAWhB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAYrB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IAoCjD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAKD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAKD,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACJ"}
@@ -0,0 +1,68 @@
1
+ export class AsyncQueue {
2
+ queue = [];
3
+ waiters = [];
4
+ completed = false;
5
+ errorState = null;
6
+ push(item) {
7
+ if (this.completed) {
8
+ return;
9
+ }
10
+ if (this.waiters.length > 0) {
11
+ const waiter = this.waiters.shift();
12
+ waiter({ value: item, done: false });
13
+ }
14
+ else {
15
+ this.queue.push(item);
16
+ }
17
+ }
18
+ complete() {
19
+ this.completed = true;
20
+ while (this.waiters.length > 0) {
21
+ const waiter = this.waiters.shift();
22
+ waiter({ value: undefined, done: true });
23
+ }
24
+ }
25
+ setError(err) {
26
+ this.errorState = err;
27
+ this.completed = true;
28
+ while (this.waiters.length > 0) {
29
+ const waiter = this.waiters.shift();
30
+ waiter({ value: undefined, done: true });
31
+ }
32
+ }
33
+ async *[Symbol.asyncIterator]() {
34
+ while (true) {
35
+ if (this.queue.length > 0) {
36
+ const item = this.queue.shift();
37
+ yield item;
38
+ continue;
39
+ }
40
+ if (this.completed) {
41
+ if (this.errorState) {
42
+ throw this.errorState;
43
+ }
44
+ return;
45
+ }
46
+ const result = await new Promise((resolve) => {
47
+ this.waiters.push(resolve);
48
+ });
49
+ if (result.done) {
50
+ if (this.errorState) {
51
+ throw this.errorState;
52
+ }
53
+ return;
54
+ }
55
+ yield result.value;
56
+ }
57
+ }
58
+ get size() {
59
+ return this.queue.length;
60
+ }
61
+ get isCompleted() {
62
+ return this.completed;
63
+ }
64
+ get hasError() {
65
+ return this.errorState !== null;
66
+ }
67
+ }
68
+ //# sourceMappingURL=async_queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async_queue.js","sourceRoot":"","sources":["../../utils/async_queue.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,UAAU;IACX,KAAK,GAAQ,EAAE,CAAC;IAChB,OAAO,GAA8C,EAAE,CAAC;IACxD,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,GAAY,IAAI,CAAC;IAKnC,IAAI,CAAC,IAAO;QACR,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC;YACrC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAMD,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC;YACrC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAKD,QAAQ,CAAC,GAAY;QACjB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC;YACrC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QACzB,OAAO,IAAI,EAAE,CAAC;YAEV,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;gBACjC,MAAM,IAAI,CAAC;gBACX,SAAS;YACb,CAAC;YAGD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,UAAU,CAAC;gBAC1B,CAAC;gBACD,OAAO;YACX,CAAC;YAGD,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;gBAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,UAAU,CAAC;gBAC1B,CAAC;gBACD,OAAO;YACX,CAAC;YAED,MAAM,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC;IACL,CAAC;IAKD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAKD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAKD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IACpC,CAAC;CACJ"}
@@ -0,0 +1,60 @@
1
+ import { ModelEntry } from '../types.js';
2
+ export declare class LRUCache<K, V> {
3
+ private maxSize;
4
+ private ttlMs;
5
+ private cache;
6
+ private accessOrder;
7
+ constructor(maxSize: number, ttlMs?: number);
8
+ get(key: K): V | undefined;
9
+ set(key: K, value: V): void;
10
+ delete(key: K): boolean;
11
+ clear(): void;
12
+ private updateAccessOrder;
13
+ private evictLRU;
14
+ }
15
+ declare class ModelMetadataCache {
16
+ private cache;
17
+ get(modelId: string): ModelEntry | undefined;
18
+ set(modelId: string, entry: ModelEntry): void;
19
+ clear(): void;
20
+ }
21
+ export declare const modelMetadataCache: ModelMetadataCache;
22
+ export declare class ConnectionPool<T> {
23
+ private factory;
24
+ private maxConnections;
25
+ private available;
26
+ private inUse;
27
+ private waitQueue;
28
+ constructor(factory: () => T, maxConnections?: number);
29
+ acquire(): Promise<T>;
30
+ release(conn: T): void;
31
+ withConnection<R>(fn: (conn: T) => Promise<R>): Promise<R>;
32
+ destroy(): void;
33
+ }
34
+ export declare class RequestDeduplicator<K, V> {
35
+ private pending;
36
+ deduplicate(key: K, factory: () => Promise<V>): Promise<V>;
37
+ clear(): void;
38
+ }
39
+ export declare class TokenBucket {
40
+ private capacity;
41
+ private refillRate;
42
+ private initialTokens?;
43
+ private tokens;
44
+ private lastRefill;
45
+ constructor(capacity: number, refillRate: number, initialTokens?: number);
46
+ consume(count?: number): Promise<boolean>;
47
+ waitAndConsume(count?: number): Promise<void>;
48
+ private refill;
49
+ }
50
+ export declare class ResponseCache {
51
+ private cache;
52
+ generateKey(model: string, messages: any[], options?: any): string;
53
+ get(key: string): any | undefined;
54
+ set(key: string, value: any): void;
55
+ clear(): void;
56
+ }
57
+ export declare const responseCache: ResponseCache;
58
+ export declare const requestDeduplicator: RequestDeduplicator<string, any>;
59
+ export {};
60
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../utils/cache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAKtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IALf,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,WAAW,CAAW;gBAGpB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAsB;IAGvC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAe1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAU3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAWvB,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,QAAQ;CAMjB;AAKD,cAAM,kBAAkB;IACtB,OAAO,CAAC,KAAK,CAAyD;IAEtE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI5C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAI7C,KAAK,IAAI,IAAI;CAGd;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AAK3D,qBAAa,cAAc,CAAC,CAAC;IAMzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IANxB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAgC;gBAGvC,OAAO,EAAE,MAAM,CAAC,EAChB,cAAc,GAAE,MAAW;IAQ/B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAqB3B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAahB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAShE,OAAO,IAAI,IAAI;CAKhB;AAKD,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC;IACnC,OAAO,CAAC,OAAO,CAA4B;IAErC,WAAW,CACf,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC;IAgBb,KAAK,IAAI,IAAI;CAGd;AAKD,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IANxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;gBAGjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM;IAM1B,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5C,cAAc,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IActD,OAAO,CAAC,MAAM;CAQf;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAA4C;IAEzD,WAAW,CACT,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,EAAE,EACf,OAAO,CAAC,EAAE,GAAG,GACZ,MAAM;IAcT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAIjC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;CAGd;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC;AACjD,eAAO,MAAM,mBAAmB,kCAAyC,CAAC"}