@just-every/ensemble 0.2.212 → 0.2.214

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 (106) hide show
  1. package/README.md +152 -91
  2. package/dist/cjs/core/ensemble_request.cjs +734 -333
  3. package/dist/cjs/core/ensemble_request.d.ts.map +1 -1
  4. package/dist/cjs/core/ensemble_request.js.map +1 -1
  5. package/dist/cjs/data/model_data.cjs +28 -1
  6. package/dist/cjs/data/model_data.d.ts.map +1 -1
  7. package/dist/cjs/data/model_data.js.map +1 -1
  8. package/dist/cjs/model_providers/base_provider.d.ts.map +1 -1
  9. package/dist/cjs/model_providers/base_provider.js.map +1 -1
  10. package/dist/cjs/model_providers/claude.cjs +72 -72
  11. package/dist/cjs/model_providers/claude.d.ts.map +1 -1
  12. package/dist/cjs/model_providers/claude.js.map +1 -1
  13. package/dist/cjs/model_providers/gemini.cjs +3 -0
  14. package/dist/cjs/model_providers/gemini.d.ts.map +1 -1
  15. package/dist/cjs/model_providers/gemini.js.map +1 -1
  16. package/dist/cjs/model_providers/openai.cjs +72 -168
  17. package/dist/cjs/model_providers/openai.d.ts.map +1 -1
  18. package/dist/cjs/model_providers/openai.js.map +1 -1
  19. package/dist/cjs/model_providers/openai_chat.cjs +55 -24
  20. package/dist/cjs/model_providers/openai_chat.d.ts.map +1 -1
  21. package/dist/cjs/model_providers/openai_chat.js.map +1 -1
  22. package/dist/cjs/model_providers/openai_image_pricing.cjs +184 -0
  23. package/dist/cjs/model_providers/openai_image_pricing.d.ts +19 -0
  24. package/dist/cjs/model_providers/openai_image_pricing.d.ts.map +1 -0
  25. package/dist/cjs/model_providers/openai_image_pricing.js.map +1 -0
  26. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  27. package/dist/cjs/types/types.d.ts +22 -4
  28. package/dist/cjs/types/types.d.ts.map +1 -1
  29. package/dist/cjs/utils/agent.cjs +4 -6
  30. package/dist/cjs/utils/agent.d.ts.map +1 -1
  31. package/dist/cjs/utils/agent.js.map +1 -1
  32. package/dist/cjs/utils/cost_tracker.cjs +15 -10
  33. package/dist/cjs/utils/cost_tracker.d.ts.map +1 -1
  34. package/dist/cjs/utils/cost_tracker.js.map +1 -1
  35. package/dist/cjs/utils/ensemble_result.cjs +43 -4
  36. package/dist/cjs/utils/ensemble_result.d.ts +10 -1
  37. package/dist/cjs/utils/ensemble_result.d.ts.map +1 -1
  38. package/dist/cjs/utils/ensemble_result.js.map +1 -1
  39. package/dist/cjs/utils/failure_detection.cjs +292 -0
  40. package/dist/cjs/utils/failure_detection.d.ts +51 -0
  41. package/dist/cjs/utils/failure_detection.d.ts.map +1 -0
  42. package/dist/cjs/utils/failure_detection.js.map +1 -0
  43. package/dist/cjs/utils/json_schema.cjs +490 -0
  44. package/dist/cjs/utils/json_schema.d.ts +10 -0
  45. package/dist/cjs/utils/json_schema.d.ts.map +1 -0
  46. package/dist/cjs/utils/json_schema.js.map +1 -0
  47. package/dist/cjs/utils/tool_execution_manager.cjs +28 -4
  48. package/dist/cjs/utils/tool_execution_manager.d.ts +1 -1
  49. package/dist/cjs/utils/tool_execution_manager.d.ts.map +1 -1
  50. package/dist/cjs/utils/tool_execution_manager.js.map +1 -1
  51. package/dist/cjs/utils/verification.cjs +26 -13
  52. package/dist/cjs/utils/verification.d.ts.map +1 -1
  53. package/dist/cjs/utils/verification.js.map +1 -1
  54. package/dist/core/ensemble_request.d.ts.map +1 -1
  55. package/dist/core/ensemble_request.js +734 -333
  56. package/dist/core/ensemble_request.js.map +1 -1
  57. package/dist/data/model_data.d.ts.map +1 -1
  58. package/dist/data/model_data.js +28 -1
  59. package/dist/data/model_data.js.map +1 -1
  60. package/dist/model_providers/base_provider.d.ts.map +1 -1
  61. package/dist/model_providers/base_provider.js.map +1 -1
  62. package/dist/model_providers/claude.d.ts.map +1 -1
  63. package/dist/model_providers/claude.js +72 -72
  64. package/dist/model_providers/claude.js.map +1 -1
  65. package/dist/model_providers/gemini.d.ts.map +1 -1
  66. package/dist/model_providers/gemini.js +3 -0
  67. package/dist/model_providers/gemini.js.map +1 -1
  68. package/dist/model_providers/openai.d.ts.map +1 -1
  69. package/dist/model_providers/openai.js +72 -168
  70. package/dist/model_providers/openai.js.map +1 -1
  71. package/dist/model_providers/openai_chat.d.ts.map +1 -1
  72. package/dist/model_providers/openai_chat.js +55 -24
  73. package/dist/model_providers/openai_chat.js.map +1 -1
  74. package/dist/model_providers/openai_image_pricing.d.ts +19 -0
  75. package/dist/model_providers/openai_image_pricing.d.ts.map +1 -0
  76. package/dist/model_providers/openai_image_pricing.js +176 -0
  77. package/dist/model_providers/openai_image_pricing.js.map +1 -0
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/dist/types/types.d.ts +22 -4
  80. package/dist/types/types.d.ts.map +1 -1
  81. package/dist/utils/agent.d.ts.map +1 -1
  82. package/dist/utils/agent.js +4 -6
  83. package/dist/utils/agent.js.map +1 -1
  84. package/dist/utils/cost_tracker.d.ts.map +1 -1
  85. package/dist/utils/cost_tracker.js +15 -10
  86. package/dist/utils/cost_tracker.js.map +1 -1
  87. package/dist/utils/ensemble_result.d.ts +10 -1
  88. package/dist/utils/ensemble_result.d.ts.map +1 -1
  89. package/dist/utils/ensemble_result.js +43 -4
  90. package/dist/utils/ensemble_result.js.map +1 -1
  91. package/dist/utils/failure_detection.d.ts +51 -0
  92. package/dist/utils/failure_detection.d.ts.map +1 -0
  93. package/dist/utils/failure_detection.js +280 -0
  94. package/dist/utils/failure_detection.js.map +1 -0
  95. package/dist/utils/json_schema.d.ts +10 -0
  96. package/dist/utils/json_schema.d.ts.map +1 -0
  97. package/dist/utils/json_schema.js +486 -0
  98. package/dist/utils/json_schema.js.map +1 -0
  99. package/dist/utils/tool_execution_manager.d.ts +1 -1
  100. package/dist/utils/tool_execution_manager.d.ts.map +1 -1
  101. package/dist/utils/tool_execution_manager.js +28 -4
  102. package/dist/utils/tool_execution_manager.js.map +1 -1
  103. package/dist/utils/verification.d.ts.map +1 -1
  104. package/dist/utils/verification.js +26 -13
  105. package/dist/utils/verification.js.map +1 -1
  106. package/package.json +1 -1
@@ -0,0 +1,280 @@
1
+ const RETRYABLE_ERROR_CODES = new Set([
2
+ 'ECONNRESET',
3
+ 'ETIMEDOUT',
4
+ 'ENOTFOUND',
5
+ 'ECONNREFUSED',
6
+ 'EPIPE',
7
+ 'EHOSTUNREACH',
8
+ 'EAI_AGAIN',
9
+ 'ENETUNREACH',
10
+ 'ECONNABORTED',
11
+ 'ESOCKETTIMEDOUT',
12
+ ]);
13
+ const RETRYABLE_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504, 522, 524]);
14
+ const RETRYABLE_MESSAGE_SNIPPETS = [
15
+ 'fetch failed',
16
+ 'network error',
17
+ 'ECONNRESET',
18
+ 'ETIMEDOUT',
19
+ 'Incomplete JSON segment',
20
+ 'Connection error',
21
+ 'Request timeout',
22
+ ];
23
+ function createGuardError(operationName, kind, timeoutMs) {
24
+ const error = new Error(kind === 'aborted' ? `${operationName} aborted` : `${operationName} timed out after ${timeoutMs}ms`);
25
+ error.code = kind === 'aborted' ? 'ABORT_ERR' : 'ETIMEDOUT';
26
+ error.recoverable = false;
27
+ if (kind === 'aborted') {
28
+ error.name = 'AbortError';
29
+ }
30
+ return error;
31
+ }
32
+ export function createOperationStatusEvent(event) {
33
+ return {
34
+ type: 'operation_status',
35
+ timestamp: new Date().toISOString(),
36
+ ...event,
37
+ };
38
+ }
39
+ export function normalizeFailure(failure, overrides = {}) {
40
+ const candidate = failure;
41
+ const code = overrides.code ?? candidate?.code;
42
+ let recoverable = overrides.recoverable ?? candidate?.recoverable;
43
+ const message = overrides.error ??
44
+ candidate?.error ??
45
+ candidate?.message ??
46
+ (failure instanceof Error ? failure.message : String(failure));
47
+ if (recoverable === undefined &&
48
+ (code === 'ETIMEDOUT' ||
49
+ code === 'ABORT_ERR' ||
50
+ code === 'ABORT_ERROR' ||
51
+ candidate?.name === 'AbortError')) {
52
+ recoverable = false;
53
+ }
54
+ if (recoverable === undefined) {
55
+ const retryableErrors = overrides.retryableErrors !== undefined
56
+ ? new Set([...RETRYABLE_ERROR_CODES, ...overrides.retryableErrors])
57
+ : RETRYABLE_ERROR_CODES;
58
+ const retryableStatusCodes = overrides.retryableStatusCodes !== undefined
59
+ ? new Set([...RETRYABLE_STATUS_CODES, ...overrides.retryableStatusCodes])
60
+ : RETRYABLE_STATUS_CODES;
61
+ recoverable =
62
+ (typeof code === 'string' && retryableErrors.has(code)) ||
63
+ (typeof candidate?.status === 'number' && retryableStatusCodes.has(candidate.status)) ||
64
+ RETRYABLE_MESSAGE_SNIPPETS.some(snippet => message.includes(snippet));
65
+ }
66
+ return {
67
+ error: message,
68
+ recoverable,
69
+ terminal: !recoverable,
70
+ code,
71
+ details: overrides.details ?? candidate?.details,
72
+ reason: overrides.reason ?? candidate?.reason,
73
+ };
74
+ }
75
+ export function selectMoreSevereFailure(current, next) {
76
+ if (!current) {
77
+ return next;
78
+ }
79
+ if (next.terminal && !current.terminal) {
80
+ return next;
81
+ }
82
+ return current;
83
+ }
84
+ export function toErrorEvent(failure, event = {}) {
85
+ return {
86
+ type: 'error',
87
+ timestamp: new Date().toISOString(),
88
+ ...event,
89
+ error: failure.error,
90
+ code: failure.code,
91
+ details: failure.details,
92
+ recoverable: failure.recoverable,
93
+ };
94
+ }
95
+ export function createProviderErrorEvent(error, options) {
96
+ const failure = normalizeFailure(error, {
97
+ recoverable: options.recoverable,
98
+ reason: options.reason,
99
+ details: options.details,
100
+ retryableErrors: options.retryableErrors,
101
+ retryableStatusCodes: options.retryableStatusCodes,
102
+ });
103
+ return toErrorEvent({
104
+ ...failure,
105
+ error: `${options.prefix}${failure.error}`,
106
+ }, {
107
+ request_id: options.request_id,
108
+ });
109
+ }
110
+ export function isTerminalFailureEvent(event) {
111
+ if (event.type === 'operation_status') {
112
+ const statusEvent = event;
113
+ return statusEvent.status === 'failed' && statusEvent.terminal === true;
114
+ }
115
+ if (event.type === 'error') {
116
+ return event.recoverable === false;
117
+ }
118
+ return false;
119
+ }
120
+ export class RequestLifecycleController {
121
+ state = 'idle';
122
+ requestId;
123
+ begin(requestId) {
124
+ if (this.isTerminal()) {
125
+ return null;
126
+ }
127
+ if (!this.requestId) {
128
+ this.requestId = requestId;
129
+ }
130
+ if (this.state !== 'idle') {
131
+ this.state = 'running';
132
+ return null;
133
+ }
134
+ this.state = 'running';
135
+ return createOperationStatusEvent({
136
+ operation: 'request',
137
+ request_id: this.requestId,
138
+ status: 'started',
139
+ terminal: false,
140
+ will_continue: true,
141
+ });
142
+ }
143
+ retrying(failure, attempt, maxAttempts) {
144
+ if (this.isTerminal() || !this.requestId) {
145
+ return null;
146
+ }
147
+ this.state = 'retrying';
148
+ return createOperationStatusEvent({
149
+ operation: 'request',
150
+ request_id: this.requestId,
151
+ status: 'retrying',
152
+ error: failure.error,
153
+ reason: failure.reason ?? 'retryable_failure',
154
+ recoverable: true,
155
+ terminal: false,
156
+ will_continue: true,
157
+ attempt,
158
+ max_attempts: maxAttempts,
159
+ });
160
+ }
161
+ complete() {
162
+ if (this.isTerminal() || !this.requestId) {
163
+ return null;
164
+ }
165
+ this.state = 'completed';
166
+ return createOperationStatusEvent({
167
+ operation: 'request',
168
+ request_id: this.requestId,
169
+ status: 'completed',
170
+ terminal: true,
171
+ recoverable: false,
172
+ will_continue: false,
173
+ });
174
+ }
175
+ fail(failure, attempt, maxAttempts) {
176
+ if (this.isTerminal() || !this.requestId) {
177
+ return null;
178
+ }
179
+ this.state = 'failed';
180
+ return createOperationStatusEvent({
181
+ operation: 'request',
182
+ request_id: this.requestId,
183
+ status: 'failed',
184
+ error: failure.error,
185
+ reason: failure.reason ?? 'terminal_failure',
186
+ recoverable: false,
187
+ terminal: true,
188
+ will_continue: false,
189
+ attempt,
190
+ max_attempts: maxAttempts,
191
+ });
192
+ }
193
+ getRequestId() {
194
+ return this.requestId;
195
+ }
196
+ isTerminal() {
197
+ return this.state === 'completed' || this.state === 'failed';
198
+ }
199
+ }
200
+ export function createOperationGuard(options) {
201
+ const { operationName, abortSignal, timeoutMs } = options;
202
+ const controller = new AbortController();
203
+ const abortWith = (reason) => {
204
+ if (!controller.signal.aborted) {
205
+ controller.abort(reason);
206
+ }
207
+ };
208
+ if (abortSignal?.aborted) {
209
+ abortWith(createGuardError(operationName, 'aborted'));
210
+ }
211
+ let timeoutId;
212
+ let abortListener;
213
+ if (abortSignal) {
214
+ abortListener = () => abortWith(createGuardError(operationName, 'aborted'));
215
+ abortSignal.addEventListener('abort', abortListener, { once: true });
216
+ }
217
+ if (typeof timeoutMs === 'number' && timeoutMs > 0) {
218
+ timeoutId = setTimeout(() => {
219
+ abortWith(createGuardError(operationName, 'timed_out', timeoutMs));
220
+ }, timeoutMs);
221
+ }
222
+ return {
223
+ signal: controller.signal,
224
+ abort: (reason) => {
225
+ abortWith(reason ?? createGuardError(operationName, 'aborted'));
226
+ },
227
+ cleanup: () => {
228
+ if (abortSignal && abortListener) {
229
+ abortSignal.removeEventListener('abort', abortListener);
230
+ }
231
+ if (timeoutId) {
232
+ clearTimeout(timeoutId);
233
+ }
234
+ },
235
+ };
236
+ }
237
+ export async function* streamWithAbortAndTimeout(stream, options) {
238
+ const { abortSignal } = options;
239
+ if (abortSignal?.aborted) {
240
+ throw abortSignal.reason ?? createGuardError('Operation', 'aborted');
241
+ }
242
+ let abortListener;
243
+ let streamCompleted = false;
244
+ const abortPromise = new Promise((_, reject) => {
245
+ if (!abortSignal) {
246
+ return;
247
+ }
248
+ abortListener = () => reject(abortSignal.reason ?? createGuardError('Operation', 'aborted'));
249
+ abortSignal.addEventListener('abort', abortListener, { once: true });
250
+ });
251
+ try {
252
+ while (true) {
253
+ const nextPromise = stream.next();
254
+ let iteration;
255
+ try {
256
+ iteration = abortSignal ? await Promise.race([nextPromise, abortPromise]) : await nextPromise;
257
+ }
258
+ catch (error) {
259
+ nextPromise.catch(() => {
260
+ });
261
+ throw error;
262
+ }
263
+ if (iteration.done) {
264
+ streamCompleted = true;
265
+ return;
266
+ }
267
+ yield iteration.value;
268
+ }
269
+ }
270
+ finally {
271
+ if (abortSignal && abortListener) {
272
+ abortSignal.removeEventListener('abort', abortListener);
273
+ }
274
+ if (!streamCompleted && typeof stream.return === 'function') {
275
+ void stream.return(undefined).catch(() => {
276
+ });
277
+ }
278
+ }
279
+ }
280
+ //# sourceMappingURL=failure_detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure_detection.js","sourceRoot":"","sources":["../../utils/failure_detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ToolParameter } from '../types/types.js';
2
+ export declare function processSchemaForOpenAI(schema: any, originalProperties?: Record<string, ToolParameter>, mode?: 'tool_parameters' | 'json_schema'): any;
3
+ export declare function validateJsonResponseContent(content: string, schema?: Record<string, unknown>): {
4
+ ok: true;
5
+ value: unknown;
6
+ } | {
7
+ ok: false;
8
+ error: string;
9
+ };
10
+ //# sourceMappingURL=json_schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json_schema.d.ts","sourceRoot":"","sources":["../../utils/json_schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAobvD,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,GAAG,EACX,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAClD,IAAI,GAAE,iBAAiB,GAAG,aAAiC,GAC5D,GAAG,CAsHL;AAED,wBAAgB,2BAA2B,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuB7D"}