@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
@@ -8,6 +8,7 @@ import { appendMessageWithImage, normalizeImageDataUrl, resizeAndSplitForOpenAI
8
8
  import { bufferDelta, flushBufferedDeltas } from '../utils/delta_buffer.js';
9
9
  import { createCitationTracker, formatCitation, generateFootnotes } from '../utils/citation_tracker.js';
10
10
  import { hasEventHandler } from '../utils/event_controller.js';
11
+ import { createProviderErrorEvent } from '../utils/failure_detection.js';
11
12
  import { findModel } from '../data/model_data.js';
12
13
  const SIMULATED_TOOL_CALL_REGEX = /\n?\s*(?:```(?:json)?\s*)?\s*TOOL_CALLS:\s*(\[.*\])(?:\s*```)?/gs;
13
14
  const TOOL_CALL_CLEANUP_REGEX = /\n?\s*(?:```(?:json)?\s*)?\s*TOOL_CALLS:\s*\[.*\](?:\s*```)?/gms;
@@ -520,7 +521,9 @@ export class OpenAIChat extends BaseModelProvider {
520
521
  requestId = loggedRequestId;
521
522
  const { waitWhilePaused } = await import('../utils/pause_controller.js');
522
523
  await waitWhilePaused(100, agent.abortSignal);
523
- const stream = await this.client.chat.completions.create(requestParams);
524
+ const stream = await this.client.chat.completions.create(requestParams, {
525
+ signal: agent.abortSignal,
526
+ });
524
527
  let aggregatedContent = '';
525
528
  let aggregatedThinking = '';
526
529
  const messageId = uuidv4();
@@ -760,8 +763,11 @@ export class OpenAIChat extends BaseModelProvider {
760
763
  }
761
764
  else if (finishReason === 'tool_calls') {
762
765
  const completedToolCalls = Array.from(partialToolCallsByIndex.values()).filter(call => call.id && call.function.name);
766
+ const validatedToolCalls = [];
767
+ const malformedToolCallNames = [];
763
768
  if (completedToolCalls.length > 0) {
764
769
  for (const completedToolCall of completedToolCalls) {
770
+ let toolCallMalformed = false;
765
771
  if (completedToolCall.function.arguments) {
766
772
  try {
767
773
  const parsed = JSON.parse(completedToolCall.function.arguments);
@@ -777,20 +783,40 @@ export class OpenAIChat extends BaseModelProvider {
777
783
  completedToolCall.function.arguments = JSON.stringify(parsed);
778
784
  }
779
785
  catch {
780
- completedToolCall.function.arguments = '{}';
781
- console.error(`(${this.provider}) Could not parse arguments, using empty object`);
786
+ toolCallMalformed = true;
787
+ console.error(`(${this.provider}) Could not parse tool arguments.`);
782
788
  }
783
789
  }
784
790
  else {
785
- completedToolCall.function.arguments = '{}';
791
+ toolCallMalformed = true;
786
792
  }
787
793
  }
788
794
  }
795
+ if (toolCallMalformed) {
796
+ malformedToolCallNames.push(completedToolCall.function.name);
797
+ continue;
798
+ }
799
+ validatedToolCalls.push(completedToolCall);
800
+ }
801
+ if (malformedToolCallNames.length > 0) {
802
+ const malformedToolCallError = malformedToolCallNames.length === 1
803
+ ? `Error (${this.provider}): Model emitted malformed tool arguments for ${malformedToolCallNames[0]}.`
804
+ : `Error (${this.provider}): Model emitted malformed tool arguments for ${malformedToolCallNames.join(', ')}.`;
805
+ log_llm_error(requestId, malformedToolCallError);
789
806
  yield {
790
- type: 'tool_start',
791
- tool_call: completedToolCall,
807
+ type: 'error',
808
+ error: malformedToolCallError,
809
+ recoverable: false,
792
810
  };
793
811
  }
812
+ else {
813
+ for (const completedToolCall of validatedToolCalls) {
814
+ yield {
815
+ type: 'tool_start',
816
+ tool_call: completedToolCall,
817
+ };
818
+ }
819
+ }
794
820
  }
795
821
  else {
796
822
  log_llm_error(requestId, `Error (${this.provider}): Model indicated tool calls, but none were parsed correctly.`);
@@ -798,6 +824,7 @@ export class OpenAIChat extends BaseModelProvider {
798
824
  yield {
799
825
  type: 'error',
800
826
  error: `Error (${this.provider}): Model indicated tool calls, but none were parsed correctly.`,
827
+ recoverable: false,
801
828
  };
802
829
  }
803
830
  }
@@ -807,6 +834,7 @@ export class OpenAIChat extends BaseModelProvider {
807
834
  yield {
808
835
  type: 'error',
809
836
  error: `Error (${this.provider}): Response truncated (max_tokens). Partial: ${cleanedPartialContent.substring(0, 100)}...`,
837
+ recoverable: false,
810
838
  };
811
839
  }
812
840
  else if (finishReason) {
@@ -815,6 +843,7 @@ export class OpenAIChat extends BaseModelProvider {
815
843
  yield {
816
844
  type: 'error',
817
845
  error: `Error (${this.provider}): Response stopped due to: ${finishReason}. Content: ${cleanedReasonContent.substring(0, 100)}...`,
846
+ recoverable: false,
818
847
  };
819
848
  }
820
849
  else {
@@ -841,6 +870,7 @@ export class OpenAIChat extends BaseModelProvider {
841
870
  yield {
842
871
  type: 'error',
843
872
  error: `Error (${this.provider}): Stream ended unexpectedly during native tool call generation.`,
873
+ recoverable: false,
844
874
  };
845
875
  }
846
876
  else {
@@ -849,6 +879,7 @@ export class OpenAIChat extends BaseModelProvider {
849
879
  yield {
850
880
  type: 'error',
851
881
  error: `Error (${this.provider}): Stream finished unexpectedly empty.`,
882
+ recoverable: false,
852
883
  };
853
884
  }
854
885
  }
@@ -856,15 +887,16 @@ export class OpenAIChat extends BaseModelProvider {
856
887
  catch (streamError) {
857
888
  log_llm_error(requestId, streamError);
858
889
  console.error(`(${this.provider}) Error processing chat completions stream:`, streamError);
859
- yield {
860
- type: 'error',
861
- error: `Stream processing error (${this.provider} ${model}): ` +
862
- (streamError instanceof OpenAI.APIError || streamError instanceof APIError
863
- ? `${streamError.status} ${streamError.name} ${streamError.message} ${JSON.stringify(streamError.error)}`
864
- : streamError instanceof Error
865
- ? streamError.stack
866
- : Object.getPrototypeOf(streamError) + ' ' + String(streamError)),
867
- };
890
+ yield createProviderErrorEvent(streamError, {
891
+ prefix: `Stream processing error (${this.provider} ${model}): `,
892
+ request_id: requestId,
893
+ reason: 'request_stream_failed',
894
+ details: streamError instanceof OpenAI.APIError || streamError instanceof APIError
895
+ ? streamError.error
896
+ : undefined,
897
+ retryableErrors: agent.retryOptions?.additionalRetryableErrors,
898
+ retryableStatusCodes: agent.retryOptions?.additionalRetryableStatusCodes,
899
+ });
868
900
  }
869
901
  finally {
870
902
  partialToolCallsByIndex.clear();
@@ -874,15 +906,14 @@ export class OpenAIChat extends BaseModelProvider {
874
906
  catch (error) {
875
907
  log_llm_error(requestId, error);
876
908
  console.error(`Error running ${this.provider} chat completions stream:`, error);
877
- yield {
878
- type: 'error',
879
- error: `API Error (${this.provider} - ${model}): ` +
880
- (error instanceof OpenAI.APIError || error instanceof APIError
881
- ? `${error.status} ${error.name} ${error.message}`
882
- : error instanceof Error
883
- ? error.stack
884
- : Object.getPrototypeOf(error) + ' ' + String(error)),
885
- };
909
+ yield createProviderErrorEvent(error, {
910
+ prefix: `API Error (${this.provider} - ${model}): `,
911
+ request_id: requestId,
912
+ reason: 'request_setup_failed',
913
+ details: error instanceof OpenAI.APIError || error instanceof APIError ? error.error : undefined,
914
+ retryableErrors: agent.retryOptions?.additionalRetryableErrors,
915
+ retryableStatusCodes: agent.retryOptions?.additionalRetryableStatusCodes,
916
+ });
886
917
  }
887
918
  }
888
919
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai_chat.js","sourceRoot":"","sources":["../../model_providers/openai_chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai_chat.js","sourceRoot":"","sources":["../../model_providers/openai_chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ImageGenerationOpts, ModelUsage } from '../types/types.js';
2
+ export type OpenAIImageQuality = 'low' | 'medium' | 'high' | 'auto';
3
+ export type OpenAIImageSize = 'auto' | `${number}x${number}`;
4
+ export interface OpenAIImageUsage {
5
+ input_tokens?: number;
6
+ input_tokens_details?: {
7
+ text_tokens?: number;
8
+ image_tokens?: number;
9
+ };
10
+ output_tokens?: number;
11
+ total_tokens?: number;
12
+ }
13
+ export declare function normalizeOpenAIImageQuality(quality?: ImageGenerationOpts['quality']): OpenAIImageQuality;
14
+ export declare function normalizeOpenAIImageSize(model: string, size?: ImageGenerationOpts['size']): OpenAIImageSize;
15
+ export declare function getOpenAIImageCostEstimate(model: string, quality: OpenAIImageQuality, size: OpenAIImageSize): number;
16
+ export declare function getOpenAIImageCostMetadata(model: string, quality: OpenAIImageQuality, size: OpenAIImageSize): Record<string, unknown>;
17
+ export declare function calculateOpenAIImageUsageCost(model: string, usage: OpenAIImageUsage): number | undefined;
18
+ export declare function buildOpenAIImageUsageRecord(model: string, usage: OpenAIImageUsage, imageCount: number, requestId: string | undefined, metadata: Record<string, unknown>): ModelUsage | undefined;
19
+ //# sourceMappingURL=openai_image_pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai_image_pricing.d.ts","sourceRoot":"","sources":["../../model_providers/openai_image_pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAa,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAGnG,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AA6BD,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAKxG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,eAAe,CAa3G;AAED,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,eAAe,GACtB,MAAM,CAcR;AAED,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,eAAe,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAqBxG;AAED,wBAAgB,2BAA2B,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,UAAU,GAAG,SAAS,CAkBxB"}
@@ -0,0 +1,176 @@
1
+ import { findModel } from '../data/model_data.js';
2
+ const GPT_IMAGE_2_COSTS = {
3
+ low: { square: 0.006, large: 0.005 },
4
+ medium: { square: 0.053, large: 0.041 },
5
+ high: { square: 0.211, large: 0.165 },
6
+ };
7
+ const GPT_IMAGE_2_OUTPUT_PRICE_PER_MILLION = 30;
8
+ const GPT_IMAGE_2_SQUARE_PIXELS = 1024 * 1024;
9
+ const GPT_IMAGE_2_LARGE_PIXELS = 1536 * 1024;
10
+ const GPT_IMAGE_15_COSTS = {
11
+ low: { square: 0.009, large: 0.013 },
12
+ medium: { square: 0.034, large: 0.05 },
13
+ high: { square: 0.133, large: 0.2 },
14
+ };
15
+ const GPT_IMAGE_1_COSTS = {
16
+ low: { square: 0.007, large: 0.011 },
17
+ medium: { square: 0.026, large: 0.042 },
18
+ high: { square: 0.103, large: 0.167 },
19
+ };
20
+ const GPT_IMAGE_1_MINI_COSTS = {
21
+ low: { square: 0.005, large: 0.006 },
22
+ medium: { square: 0.011, large: 0.015 },
23
+ high: { square: 0.015, large: 0.02 },
24
+ };
25
+ export function normalizeOpenAIImageQuality(quality) {
26
+ if (quality === 'standard')
27
+ return 'medium';
28
+ if (quality === 'hd')
29
+ return 'high';
30
+ if (quality === 'low' || quality === 'medium' || quality === 'high' || quality === 'auto')
31
+ return quality;
32
+ return 'auto';
33
+ }
34
+ export function normalizeOpenAIImageSize(model, size) {
35
+ if (!size || size === 'auto')
36
+ return 'auto';
37
+ if (size === 'square')
38
+ return '1024x1024';
39
+ if (size === 'landscape')
40
+ return '1536x1024';
41
+ if (size === 'portrait')
42
+ return '1024x1536';
43
+ if (size === '1024x1024' || size === '1536x1024' || size === '1024x1536')
44
+ return size;
45
+ if (isGptImage2(model) && isPixelSize(size)) {
46
+ assertValidGptImage2Size(size);
47
+ return size;
48
+ }
49
+ return 'auto';
50
+ }
51
+ export function getOpenAIImageCostEstimate(model, quality, size) {
52
+ const normalizedQuality = quality === 'auto' ? 'medium' : quality;
53
+ const sizeClass = size === '1536x1024' || size === '1024x1536' ? 'large' : 'square';
54
+ if (isGptImage2(model)) {
55
+ return estimateGptImage2Cost(normalizedQuality, size);
56
+ }
57
+ if (model === 'chatgpt-image-latest' || model === 'gpt-image-1.5') {
58
+ return GPT_IMAGE_15_COSTS[normalizedQuality][sizeClass];
59
+ }
60
+ if (model === 'gpt-image-1')
61
+ return GPT_IMAGE_1_COSTS[normalizedQuality][sizeClass];
62
+ if (model === 'gpt-image-1-mini')
63
+ return GPT_IMAGE_1_MINI_COSTS[normalizedQuality][sizeClass];
64
+ return 0.04;
65
+ }
66
+ export function getOpenAIImageCostMetadata(model, quality, size) {
67
+ if (!isGptImage2(model))
68
+ return {};
69
+ const cost = estimateGptImage2Cost(quality === 'auto' ? 'medium' : quality, size);
70
+ const outputTokens = Math.round((cost / GPT_IMAGE_2_OUTPUT_PRICE_PER_MILLION) * 1_000_000);
71
+ return {
72
+ pricing_source: hasPublishedGptImage2Estimate(size) ? 'openai_published_estimate' : 'ensemble_size_estimate',
73
+ estimated_output_tokens: outputTokens,
74
+ output_price_per_million: GPT_IMAGE_2_OUTPUT_PRICE_PER_MILLION,
75
+ };
76
+ }
77
+ export function calculateOpenAIImageUsageCost(model, usage) {
78
+ const modelCost = findModel(model)?.cost;
79
+ if (!modelCost)
80
+ return undefined;
81
+ const textInputTokens = usage.input_tokens_details?.text_tokens;
82
+ const imageInputTokens = usage.input_tokens_details?.image_tokens;
83
+ const outputTokens = usage.output_tokens || 0;
84
+ let cost = 0;
85
+ if (typeof textInputTokens === 'number') {
86
+ cost += tokenCost(textInputTokens, modelCost.input_per_million, 'text');
87
+ }
88
+ if (typeof imageInputTokens === 'number') {
89
+ cost += tokenCost(imageInputTokens, modelCost.input_per_million, 'image');
90
+ }
91
+ if (outputTokens > 0) {
92
+ cost += tokenCost(outputTokens, modelCost.output_per_million, 'image');
93
+ }
94
+ if (cost === 0 && !textInputTokens && !imageInputTokens && outputTokens === 0)
95
+ return undefined;
96
+ return cost;
97
+ }
98
+ export function buildOpenAIImageUsageRecord(model, usage, imageCount, requestId, metadata) {
99
+ const cost = calculateOpenAIImageUsageCost(model, usage);
100
+ if (typeof cost !== 'number')
101
+ return undefined;
102
+ return {
103
+ model,
104
+ input_tokens: usage.input_tokens,
105
+ output_tokens: usage.output_tokens,
106
+ total_tokens: usage.total_tokens,
107
+ image_count: imageCount,
108
+ cost,
109
+ request_id: requestId,
110
+ metadata: {
111
+ ...metadata,
112
+ token_priced: true,
113
+ input_tokens_details: usage.input_tokens_details,
114
+ },
115
+ };
116
+ }
117
+ function tokenCost(tokens, costStructure, modality) {
118
+ const price = getModalityPrice(costStructure, modality);
119
+ if (typeof price !== 'number')
120
+ return 0;
121
+ return (tokens / 1_000_000) * price;
122
+ }
123
+ function getModalityPrice(costStructure, modality) {
124
+ if (typeof costStructure === 'number')
125
+ return costStructure;
126
+ if (!costStructure || typeof costStructure !== 'object')
127
+ return undefined;
128
+ if ('text' in costStructure || 'audio' in costStructure || 'video' in costStructure || 'image' in costStructure) {
129
+ const modalityCost = costStructure[modality];
130
+ return typeof modalityCost === 'number' ? modalityCost : undefined;
131
+ }
132
+ return undefined;
133
+ }
134
+ function isGptImage2(model) {
135
+ return model === 'gpt-image-2' || model.startsWith('gpt-image-2-');
136
+ }
137
+ function estimateGptImage2Cost(quality, size) {
138
+ if (size === 'auto' || size === '1024x1024')
139
+ return GPT_IMAGE_2_COSTS[quality].square;
140
+ if (size === '1536x1024' || size === '1024x1536')
141
+ return GPT_IMAGE_2_COSTS[quality].large;
142
+ const [width, height] = size.split('x').map(Number);
143
+ const pixels = width * height;
144
+ const aspectRatio = Math.max(width, height) / Math.min(width, height);
145
+ const squareCost = GPT_IMAGE_2_COSTS[quality].square;
146
+ const largeCost = GPT_IMAGE_2_COSTS[quality].large;
147
+ const ratioProgress = Math.min(1, Math.max(0, (aspectRatio - 1) / 0.5));
148
+ const anchorCost = squareCost + (largeCost - squareCost) * ratioProgress;
149
+ const anchorPixels = GPT_IMAGE_2_SQUARE_PIXELS + (GPT_IMAGE_2_LARGE_PIXELS - GPT_IMAGE_2_SQUARE_PIXELS) * ratioProgress;
150
+ return roundCost(anchorCost * (pixels / anchorPixels));
151
+ }
152
+ function hasPublishedGptImage2Estimate(size) {
153
+ return size === 'auto' || size === '1024x1024' || size === '1536x1024' || size === '1024x1536';
154
+ }
155
+ function roundCost(cost) {
156
+ return Math.round(cost * 1_000_000) / 1_000_000;
157
+ }
158
+ function isPixelSize(size) {
159
+ return /^\d+x\d+$/.test(size);
160
+ }
161
+ function assertValidGptImage2Size(size) {
162
+ const [width, height] = size.split('x').map(Number);
163
+ const shortEdge = Math.min(width, height);
164
+ const longEdge = Math.max(width, height);
165
+ const pixels = width * height;
166
+ if (width % 16 !== 0 || height % 16 !== 0) {
167
+ throw new Error(`gpt-image-2 size ${size} is invalid: both edges must be multiples of 16px.`);
168
+ }
169
+ if (longEdge / shortEdge > 3) {
170
+ throw new Error(`gpt-image-2 size ${size} is invalid: long edge to short edge ratio must not exceed 3:1.`);
171
+ }
172
+ if (pixels < 655_360 || pixels > 8_294_400) {
173
+ throw new Error(`gpt-image-2 size ${size} is invalid: total pixels must be between 655,360 and 8,294,400.`);
174
+ }
175
+ }
176
+ //# sourceMappingURL=openai_image_pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai_image_pricing.js","sourceRoot":"","sources":["../../model_providers/openai_image_pricing.ts"],"names":[],"mappings":"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"}