@llumiverse/drivers 0.23.0-dev.20251121 → 0.24.0-dev.202601221707

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 (229) hide show
  1. package/README.md +141 -218
  2. package/lib/cjs/azure/azure_foundry.js +46 -2
  3. package/lib/cjs/azure/azure_foundry.js.map +1 -1
  4. package/lib/cjs/bedrock/index.js +239 -19
  5. package/lib/cjs/bedrock/index.js.map +1 -1
  6. package/lib/cjs/groq/index.js +115 -85
  7. package/lib/cjs/groq/index.js.map +1 -1
  8. package/lib/cjs/index.js +1 -0
  9. package/lib/cjs/index.js.map +1 -1
  10. package/lib/cjs/openai/index.js +310 -114
  11. package/lib/cjs/openai/index.js.map +1 -1
  12. package/lib/cjs/openai/openai_compatible.js +62 -0
  13. package/lib/cjs/openai/openai_compatible.js.map +1 -0
  14. package/lib/cjs/openai/openai_format.js +32 -39
  15. package/lib/cjs/openai/openai_format.js.map +1 -1
  16. package/lib/cjs/vertexai/index.js +211 -5
  17. package/lib/cjs/vertexai/index.js.map +1 -1
  18. package/lib/cjs/vertexai/models/claude.js +201 -3
  19. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  20. package/lib/cjs/vertexai/models/gemini.js +74 -25
  21. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  22. package/lib/cjs/vertexai/models/imagen.js +0 -3
  23. package/lib/cjs/vertexai/models/imagen.js.map +1 -1
  24. package/lib/cjs/xai/index.js +10 -16
  25. package/lib/cjs/xai/index.js.map +1 -1
  26. package/lib/esm/azure/azure_foundry.js +46 -2
  27. package/lib/esm/azure/azure_foundry.js.map +1 -1
  28. package/lib/esm/bedrock/index.js +239 -20
  29. package/lib/esm/bedrock/index.js.map +1 -1
  30. package/lib/esm/groq/index.js +115 -85
  31. package/lib/esm/groq/index.js.map +1 -1
  32. package/lib/esm/index.js +1 -0
  33. package/lib/esm/index.js.map +1 -1
  34. package/lib/esm/openai/index.js +311 -115
  35. package/lib/esm/openai/index.js.map +1 -1
  36. package/lib/esm/openai/openai_compatible.js +55 -0
  37. package/lib/esm/openai/openai_compatible.js.map +1 -0
  38. package/lib/esm/openai/openai_format.js +32 -39
  39. package/lib/esm/openai/openai_format.js.map +1 -1
  40. package/lib/esm/vertexai/index.js +212 -6
  41. package/lib/esm/vertexai/index.js.map +1 -1
  42. package/lib/esm/vertexai/models/claude.js +199 -3
  43. package/lib/esm/vertexai/models/claude.js.map +1 -1
  44. package/lib/esm/vertexai/models/gemini.js +75 -26
  45. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  46. package/lib/esm/vertexai/models/imagen.js +1 -4
  47. package/lib/esm/vertexai/models/imagen.js.map +1 -1
  48. package/lib/esm/xai/index.js +10 -16
  49. package/lib/esm/xai/index.js.map +1 -1
  50. package/lib/types/azure/azure_foundry.d.ts +7 -5
  51. package/lib/types/azure/azure_foundry.d.ts.map +1 -1
  52. package/lib/types/bedrock/index.d.ts +22 -1
  53. package/lib/types/bedrock/index.d.ts.map +1 -1
  54. package/lib/types/groq/index.d.ts.map +1 -1
  55. package/lib/types/index.d.ts +1 -0
  56. package/lib/types/index.d.ts.map +1 -1
  57. package/lib/types/openai/index.d.ts +13 -7
  58. package/lib/types/openai/index.d.ts.map +1 -1
  59. package/lib/types/openai/openai_compatible.d.ts +26 -0
  60. package/lib/types/openai/openai_compatible.d.ts.map +1 -0
  61. package/lib/types/openai/openai_format.d.ts +4 -2
  62. package/lib/types/openai/openai_format.d.ts.map +1 -1
  63. package/lib/types/vertexai/index.d.ts +16 -0
  64. package/lib/types/vertexai/index.d.ts.map +1 -1
  65. package/lib/types/vertexai/models/claude.d.ts +20 -0
  66. package/lib/types/vertexai/models/claude.d.ts.map +1 -1
  67. package/lib/types/vertexai/models/gemini.d.ts +1 -1
  68. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  69. package/lib/types/vertexai/models/imagen.d.ts.map +1 -1
  70. package/lib/types/xai/index.d.ts +2 -3
  71. package/lib/types/xai/index.d.ts.map +1 -1
  72. package/package.json +17 -17
  73. package/src/azure/azure_foundry.ts +56 -7
  74. package/src/bedrock/index.ts +301 -29
  75. package/src/groq/index.ts +120 -94
  76. package/src/index.ts +1 -0
  77. package/src/openai/index.ts +363 -136
  78. package/src/openai/openai_compatible.ts +74 -0
  79. package/src/openai/openai_format.ts +44 -54
  80. package/src/vertexai/index.ts +255 -6
  81. package/src/vertexai/models/claude.ts +233 -3
  82. package/src/vertexai/models/gemini.ts +95 -32
  83. package/src/vertexai/models/imagen.ts +1 -5
  84. package/src/xai/index.ts +10 -17
  85. package/lib/cjs/test/TestErrorCompletionStream.js +0 -20
  86. package/lib/cjs/test/TestErrorCompletionStream.js.map +0 -1
  87. package/lib/cjs/test/TestValidationErrorCompletionStream.js +0 -24
  88. package/lib/cjs/test/TestValidationErrorCompletionStream.js.map +0 -1
  89. package/lib/cjs/test/index.js +0 -109
  90. package/lib/cjs/test/index.js.map +0 -1
  91. package/lib/cjs/test/utils.js +0 -30
  92. package/lib/cjs/test/utils.js.map +0 -1
  93. package/lib/esm/src/adobe/firefly.js +0 -116
  94. package/lib/esm/src/adobe/firefly.js.map +0 -1
  95. package/lib/esm/src/azure/azure_foundry.js +0 -382
  96. package/lib/esm/src/azure/azure_foundry.js.map +0 -1
  97. package/lib/esm/src/bedrock/converse.js +0 -278
  98. package/lib/esm/src/bedrock/converse.js.map +0 -1
  99. package/lib/esm/src/bedrock/index.js +0 -962
  100. package/lib/esm/src/bedrock/index.js.map +0 -1
  101. package/lib/esm/src/bedrock/nova-image-payload.js +0 -203
  102. package/lib/esm/src/bedrock/nova-image-payload.js.map +0 -1
  103. package/lib/esm/src/bedrock/payloads.js +0 -2
  104. package/lib/esm/src/bedrock/payloads.js.map +0 -1
  105. package/lib/esm/src/bedrock/s3.js +0 -99
  106. package/lib/esm/src/bedrock/s3.js.map +0 -1
  107. package/lib/esm/src/bedrock/twelvelabs.js +0 -84
  108. package/lib/esm/src/bedrock/twelvelabs.js.map +0 -1
  109. package/lib/esm/src/groq/index.js +0 -286
  110. package/lib/esm/src/groq/index.js.map +0 -1
  111. package/lib/esm/src/huggingface_ie.js +0 -197
  112. package/lib/esm/src/huggingface_ie.js.map +0 -1
  113. package/lib/esm/src/index.js +0 -14
  114. package/lib/esm/src/index.js.map +0 -1
  115. package/lib/esm/src/mistral/index.js +0 -169
  116. package/lib/esm/src/mistral/index.js.map +0 -1
  117. package/lib/esm/src/mistral/types.js +0 -80
  118. package/lib/esm/src/mistral/types.js.map +0 -1
  119. package/lib/esm/src/openai/azure_openai.js +0 -68
  120. package/lib/esm/src/openai/azure_openai.js.map +0 -1
  121. package/lib/esm/src/openai/index.js +0 -464
  122. package/lib/esm/src/openai/index.js.map +0 -1
  123. package/lib/esm/src/openai/openai.js +0 -14
  124. package/lib/esm/src/openai/openai.js.map +0 -1
  125. package/lib/esm/src/openai/openai_format.js +0 -134
  126. package/lib/esm/src/openai/openai_format.js.map +0 -1
  127. package/lib/esm/src/replicate.js +0 -268
  128. package/lib/esm/src/replicate.js.map +0 -1
  129. package/lib/esm/src/test/TestErrorCompletionStream.js +0 -16
  130. package/lib/esm/src/test/TestErrorCompletionStream.js.map +0 -1
  131. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +0 -20
  132. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +0 -1
  133. package/lib/esm/src/test/index.js +0 -91
  134. package/lib/esm/src/test/index.js.map +0 -1
  135. package/lib/esm/src/test/utils.js +0 -25
  136. package/lib/esm/src/test/utils.js.map +0 -1
  137. package/lib/esm/src/test-driver/TestErrorCompletionStream.js +0 -16
  138. package/lib/esm/src/test-driver/TestErrorCompletionStream.js.map +0 -1
  139. package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js +0 -20
  140. package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  141. package/lib/esm/src/test-driver/index.js +0 -91
  142. package/lib/esm/src/test-driver/index.js.map +0 -1
  143. package/lib/esm/src/test-driver/utils.js +0 -25
  144. package/lib/esm/src/test-driver/utils.js.map +0 -1
  145. package/lib/esm/src/togetherai/index.js +0 -122
  146. package/lib/esm/src/togetherai/index.js.map +0 -1
  147. package/lib/esm/src/togetherai/interfaces.js +0 -2
  148. package/lib/esm/src/togetherai/interfaces.js.map +0 -1
  149. package/lib/esm/src/vertexai/debug.js +0 -6
  150. package/lib/esm/src/vertexai/debug.js.map +0 -1
  151. package/lib/esm/src/vertexai/embeddings/embeddings-image.js +0 -24
  152. package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +0 -1
  153. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +0 -20
  154. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +0 -1
  155. package/lib/esm/src/vertexai/index.js +0 -383
  156. package/lib/esm/src/vertexai/index.js.map +0 -1
  157. package/lib/esm/src/vertexai/models/claude.js +0 -394
  158. package/lib/esm/src/vertexai/models/claude.js.map +0 -1
  159. package/lib/esm/src/vertexai/models/gemini.js +0 -817
  160. package/lib/esm/src/vertexai/models/gemini.js.map +0 -1
  161. package/lib/esm/src/vertexai/models/imagen.js +0 -302
  162. package/lib/esm/src/vertexai/models/imagen.js.map +0 -1
  163. package/lib/esm/src/vertexai/models/llama.js +0 -179
  164. package/lib/esm/src/vertexai/models/llama.js.map +0 -1
  165. package/lib/esm/src/vertexai/models.js +0 -32
  166. package/lib/esm/src/vertexai/models.js.map +0 -1
  167. package/lib/esm/src/watsonx/index.js +0 -157
  168. package/lib/esm/src/watsonx/index.js.map +0 -1
  169. package/lib/esm/src/watsonx/interfaces.js +0 -2
  170. package/lib/esm/src/watsonx/interfaces.js.map +0 -1
  171. package/lib/esm/src/xai/index.js +0 -64
  172. package/lib/esm/src/xai/index.js.map +0 -1
  173. package/lib/esm/test/TestErrorCompletionStream.js +0 -16
  174. package/lib/esm/test/TestErrorCompletionStream.js.map +0 -1
  175. package/lib/esm/test/TestValidationErrorCompletionStream.js +0 -20
  176. package/lib/esm/test/TestValidationErrorCompletionStream.js.map +0 -1
  177. package/lib/esm/test/index.js +0 -91
  178. package/lib/esm/test/index.js.map +0 -1
  179. package/lib/esm/test/utils.js +0 -25
  180. package/lib/esm/test/utils.js.map +0 -1
  181. package/lib/esm/tsconfig.tsbuildinfo +0 -1
  182. package/lib/types/src/adobe/firefly.d.ts +0 -29
  183. package/lib/types/src/azure/azure_foundry.d.ts +0 -49
  184. package/lib/types/src/bedrock/converse.d.ts +0 -8
  185. package/lib/types/src/bedrock/index.d.ts +0 -61
  186. package/lib/types/src/bedrock/nova-image-payload.d.ts +0 -73
  187. package/lib/types/src/bedrock/payloads.d.ts +0 -11
  188. package/lib/types/src/bedrock/s3.d.ts +0 -22
  189. package/lib/types/src/bedrock/twelvelabs.d.ts +0 -49
  190. package/lib/types/src/groq/index.d.ts +0 -26
  191. package/lib/types/src/huggingface_ie.d.ts +0 -34
  192. package/lib/types/src/index.d.ts +0 -13
  193. package/lib/types/src/mistral/index.d.ts +0 -24
  194. package/lib/types/src/mistral/types.d.ts +0 -131
  195. package/lib/types/src/openai/azure_openai.d.ts +0 -24
  196. package/lib/types/src/openai/index.d.ts +0 -24
  197. package/lib/types/src/openai/openai.d.ts +0 -14
  198. package/lib/types/src/openai/openai_format.d.ts +0 -18
  199. package/lib/types/src/replicate.d.ts +0 -47
  200. package/lib/types/src/test/TestErrorCompletionStream.d.ts +0 -8
  201. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +0 -8
  202. package/lib/types/src/test/index.d.ts +0 -23
  203. package/lib/types/src/test/utils.d.ts +0 -4
  204. package/lib/types/src/test-driver/TestErrorCompletionStream.d.ts +0 -8
  205. package/lib/types/src/test-driver/TestValidationErrorCompletionStream.d.ts +0 -8
  206. package/lib/types/src/test-driver/index.d.ts +0 -23
  207. package/lib/types/src/test-driver/utils.d.ts +0 -4
  208. package/lib/types/src/togetherai/index.d.ts +0 -22
  209. package/lib/types/src/togetherai/interfaces.d.ts +0 -95
  210. package/lib/types/src/vertexai/debug.d.ts +0 -1
  211. package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +0 -10
  212. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +0 -9
  213. package/lib/types/src/vertexai/index.d.ts +0 -52
  214. package/lib/types/src/vertexai/models/claude.d.ts +0 -19
  215. package/lib/types/src/vertexai/models/gemini.d.ts +0 -17
  216. package/lib/types/src/vertexai/models/imagen.d.ts +0 -74
  217. package/lib/types/src/vertexai/models/llama.d.ts +0 -19
  218. package/lib/types/src/vertexai/models.d.ts +0 -14
  219. package/lib/types/src/watsonx/index.d.ts +0 -26
  220. package/lib/types/src/watsonx/interfaces.d.ts +0 -64
  221. package/lib/types/src/xai/index.d.ts +0 -18
  222. package/lib/types/test/TestErrorCompletionStream.d.ts +0 -9
  223. package/lib/types/test/TestErrorCompletionStream.d.ts.map +0 -1
  224. package/lib/types/test/TestValidationErrorCompletionStream.d.ts +0 -9
  225. package/lib/types/test/TestValidationErrorCompletionStream.d.ts.map +0 -1
  226. package/lib/types/test/index.d.ts +0 -24
  227. package/lib/types/test/index.d.ts.map +0 -1
  228. package/lib/types/test/utils.d.ts +0 -5
  229. package/lib/types/test/utils.d.ts.map +0 -1
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseOpenAIDriver = void 0;
4
4
  exports.collectTools = collectTools;
5
5
  const core_1 = require("@llumiverse/core");
6
- const async_1 = require("@llumiverse/core/async");
7
6
  const openai_format_js_1 = require("./openai_format.js");
8
7
  // Helper function to convert string to CompletionResult[]
9
8
  function textToCompletionResult(text) {
@@ -21,17 +20,11 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
21
20
  constructor(opts) {
22
21
  super(opts);
23
22
  this.formatPrompt = openai_format_js_1.formatOpenAILikeMultimodalPrompt;
24
- //TODO: better type, we send back OpenAI.Chat.Completions.ChatCompletionMessageParam[] but just not compatible with Function call that we don't use here
25
23
  }
26
24
  extractDataFromResponse(_options, result) {
27
- const tokenInfo = {
28
- prompt: result.usage?.prompt_tokens,
29
- result: result.usage?.completion_tokens,
30
- total: result.usage?.total_tokens,
31
- };
32
- const choice = result.choices[0];
33
- const tools = collectTools(choice.message.tool_calls);
34
- const data = choice.message.content ?? undefined;
25
+ const tokenInfo = mapUsage(result.usage);
26
+ const tools = collectTools(result.output);
27
+ const data = extractTextFromResponse(result);
35
28
  if (!data && !tools) {
36
29
  this.logger.error({ result }, "[OpenAI] Response is not valid");
37
30
  throw new Error("Response is not valid: no data");
@@ -39,7 +32,7 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
39
32
  return {
40
33
  result: textToCompletionResult(data || ''),
41
34
  token_usage: tokenInfo,
42
- finish_reason: openAiFinishReason(choice.finish_reason),
35
+ finish_reason: responseFinishReason(result, tools),
43
36
  tool_use: tools,
44
37
  };
45
38
  }
@@ -47,26 +40,10 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
47
40
  if (options.model_options?._option_id !== "openai-text" && options.model_options?._option_id !== "openai-thinking") {
48
41
  this.logger.warn({ options: options.model_options }, "Invalid model options");
49
42
  }
43
+ // Include conversation history (same as non-streaming)
44
+ const conversation = updateConversation(options.conversation, prompt);
50
45
  const toolDefs = getToolDefinitions(options.tools);
51
- const useTools = toolDefs ? (0, core_1.supportsToolUse)(options.model, "openai", true) : false;
52
- const mapFn = (chunk) => {
53
- let result = undefined;
54
- if (useTools && this.provider !== "xai" && options.result_schema) {
55
- result = chunk.choices[0]?.delta?.tool_calls?.[0].function?.arguments ?? "";
56
- }
57
- else {
58
- result = chunk.choices[0]?.delta.content ?? "";
59
- }
60
- return {
61
- result: textToCompletionResult(result),
62
- finish_reason: openAiFinishReason(chunk.choices[0]?.finish_reason ?? undefined), //Uses expected "stop" , "length" format
63
- token_usage: {
64
- prompt: chunk.usage?.prompt_tokens,
65
- result: chunk.usage?.completion_tokens,
66
- total: (chunk.usage?.prompt_tokens ?? 0) + (chunk.usage?.completion_tokens ?? 0),
67
- }
68
- };
69
- };
46
+ const useTools = toolDefs ? (0, core_1.supportsToolUse)(options.model, this.provider, true) : false;
70
47
  convertRoles(prompt, options.model);
71
48
  const model_options = options.model_options;
72
49
  insert_image_detail(prompt, model_options?.image_detail ?? "auto");
@@ -82,30 +59,26 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
82
59
  strictMode = false;
83
60
  }
84
61
  }
85
- const stream = await this.service.chat.completions.create({
62
+ const reasoning = model_options?.reasoning_effort ? { effort: model_options.reasoning_effort } : undefined;
63
+ const stream = await this.service.responses.create({
86
64
  stream: true,
87
- stream_options: { include_usage: true },
88
65
  model: options.model,
89
- messages: prompt,
90
- reasoning_effort: model_options?.reasoning_effort,
66
+ input: conversation,
67
+ reasoning,
91
68
  temperature: model_options?.temperature,
92
69
  top_p: model_options?.top_p,
93
- presence_penalty: model_options?.presence_penalty,
94
- frequency_penalty: model_options?.frequency_penalty,
95
- n: 1,
96
- max_completion_tokens: model_options?.max_tokens, //TODO: use max_tokens for older models, currently relying on OpenAI to handle it
70
+ max_output_tokens: model_options?.max_tokens,
97
71
  tools: useTools ? toolDefs : undefined,
98
- stop: model_options?.stop_sequence,
99
- response_format: parsedSchema ? {
100
- type: "json_schema",
101
- json_schema: {
72
+ text: parsedSchema ? {
73
+ format: {
74
+ type: "json_schema",
102
75
  name: "format_output",
103
76
  schema: parsedSchema,
104
77
  strict: strictMode,
105
78
  }
106
79
  } : undefined,
107
80
  });
108
- return (0, async_1.asyncMap)(stream, mapFn);
81
+ return mapResponseStream(stream);
109
82
  }
110
83
  async requestTextCompletion(prompt, options) {
111
84
  if (options.model_options?._option_id !== "openai-text" && options.model_options?._option_id !== "openai-thinking") {
@@ -115,7 +88,7 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
115
88
  const model_options = options.model_options;
116
89
  insert_image_detail(prompt, model_options?.image_detail ?? "auto");
117
90
  const toolDefs = getToolDefinitions(options.tools);
118
- const useTools = toolDefs ? (0, core_1.supportsToolUse)(options.model, "openai") : false;
91
+ const useTools = toolDefs ? (0, core_1.supportsToolUse)(options.model, this.provider) : false;
119
92
  let conversation = updateConversation(options.conversation, prompt);
120
93
  let parsedSchema = undefined;
121
94
  let strictMode = false;
@@ -129,22 +102,19 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
129
102
  strictMode = false;
130
103
  }
131
104
  }
132
- const res = await this.service.chat.completions.create({
105
+ const reasoning = model_options?.reasoning_effort ? { effort: model_options.reasoning_effort } : undefined;
106
+ const res = await this.service.responses.create({
133
107
  stream: false,
134
108
  model: options.model,
135
- messages: conversation,
136
- reasoning_effort: model_options?.reasoning_effort,
109
+ input: conversation,
110
+ reasoning,
137
111
  temperature: model_options?.temperature,
138
112
  top_p: model_options?.top_p,
139
- presence_penalty: model_options?.presence_penalty,
140
- frequency_penalty: model_options?.frequency_penalty,
141
- n: 1,
142
- max_completion_tokens: model_options?.max_tokens, //TODO: use max_tokens for older models, currently relying on OpenAI to handle it
113
+ max_output_tokens: model_options?.max_tokens, //TODO: use max_tokens for older models, currently relying on OpenAI to handle it
143
114
  tools: useTools ? toolDefs : undefined,
144
- stop: model_options?.stop_sequence,
145
- response_format: parsedSchema ? {
146
- type: "json_schema",
147
- json_schema: {
115
+ text: parsedSchema ? {
116
+ format: {
117
+ type: "json_schema",
148
118
  name: "format_output",
149
119
  schema: parsedSchema,
150
120
  strict: strictMode,
@@ -155,8 +125,20 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
155
125
  if (options.include_original_response) {
156
126
  completion.original_response = res;
157
127
  }
158
- conversation = updateConversation(conversation, createPromptFromResponse(res.choices[0].message));
159
- completion.conversation = conversation;
128
+ conversation = updateConversation(conversation, createAssistantMessageFromCompletion(completion));
129
+ // Increment turn counter for deferred stripping
130
+ conversation = (0, core_1.incrementConversationTurn)(conversation);
131
+ // Strip large base64 image data based on options.stripImagesAfterTurns
132
+ const currentTurn = (0, core_1.getConversationMeta)(conversation).turnNumber;
133
+ const stripOptions = {
134
+ keepForTurns: options.stripImagesAfterTurns ?? Infinity,
135
+ currentTurn,
136
+ textMaxTokens: options.stripTextMaxTokens
137
+ };
138
+ let processedConversation = (0, core_1.stripBase64ImagesFromConversation)(conversation, stripOptions);
139
+ // Truncate large text content if configured
140
+ processedConversation = (0, core_1.truncateLargeTextInConversation)(processedConversation, stripOptions);
141
+ completion.conversation = processedConversation;
160
142
  return completion;
161
143
  }
162
144
  canStream(_options) {
@@ -168,6 +150,47 @@ class BaseOpenAIDriver extends core_1.AbstractDriver {
168
150
  }
169
151
  return Promise.resolve(true);
170
152
  }
153
+ /**
154
+ * Build conversation context after streaming completion.
155
+ * Reconstructs the assistant message from accumulated results and applies stripping.
156
+ */
157
+ buildStreamingConversation(prompt, result, toolUse, options) {
158
+ // Build assistant message from accumulated CompletionResult[]
159
+ const completionResults = result;
160
+ const textContent = completionResultsToText(completionResults);
161
+ // Start with the conversation from options or the prompt
162
+ let conversation = updateConversation(options.conversation, prompt);
163
+ // Add assistant message as EasyInputMessage
164
+ if (textContent) {
165
+ const assistantMessage = {
166
+ role: 'assistant',
167
+ content: textContent,
168
+ };
169
+ conversation = updateConversation(conversation, [assistantMessage]);
170
+ }
171
+ // Add function calls as separate items (Response API format)
172
+ if (toolUse && toolUse.length > 0) {
173
+ const functionCalls = toolUse.map(t => ({
174
+ type: 'function_call',
175
+ call_id: t.id,
176
+ name: t.tool_name,
177
+ arguments: typeof t.tool_input === 'string' ? t.tool_input : JSON.stringify(t.tool_input ?? {}),
178
+ }));
179
+ conversation = updateConversation(conversation, functionCalls);
180
+ }
181
+ // Increment turn counter
182
+ conversation = (0, core_1.incrementConversationTurn)(conversation);
183
+ // Apply stripping based on options
184
+ const currentTurn = (0, core_1.getConversationMeta)(conversation).turnNumber;
185
+ const stripOptions = {
186
+ keepForTurns: options.stripImagesAfterTurns ?? Infinity,
187
+ currentTurn,
188
+ textMaxTokens: options.stripTextMaxTokens
189
+ };
190
+ let processedConversation = (0, core_1.stripBase64ImagesFromConversation)(conversation, stripOptions);
191
+ processedConversation = (0, core_1.truncateLargeTextInConversation)(processedConversation, stripOptions);
192
+ return processedConversation;
193
+ }
171
194
  createTrainingPrompt(options) {
172
195
  if (options.model.includes("gpt")) {
173
196
  return super.createTrainingPrompt(options);
@@ -291,44 +314,169 @@ function jobInfo(job) {
291
314
  details
292
315
  };
293
316
  }
294
- function insert_image_detail(messages, detail_level) {
295
- if (detail_level == "auto" || detail_level == "low" || detail_level == "high") {
296
- for (const message of messages) {
297
- if (message.role !== 'assistant' && message.content) {
298
- for (const part of message.content) {
299
- if (typeof part === "string") {
300
- continue;
317
+ function mapUsage(usage) {
318
+ if (!usage) {
319
+ return undefined;
320
+ }
321
+ return {
322
+ prompt: usage.input_tokens,
323
+ result: usage.output_tokens,
324
+ total: usage.total_tokens,
325
+ };
326
+ }
327
+ function completionResultsToText(completionResults) {
328
+ if (!completionResults) {
329
+ return '';
330
+ }
331
+ return completionResults
332
+ .map(r => {
333
+ switch (r.type) {
334
+ case 'text':
335
+ return r.value;
336
+ case 'json':
337
+ return typeof r.value === 'string' ? r.value : JSON.stringify(r.value);
338
+ case 'image':
339
+ // Skip images in conversation - they're in the result
340
+ return '';
341
+ default:
342
+ return String(r.value || '');
343
+ }
344
+ })
345
+ .join('');
346
+ }
347
+ function createAssistantMessageFromCompletion(completion) {
348
+ const textContent = completionResultsToText(completion.result);
349
+ const result = [];
350
+ // Add assistant text message if present
351
+ if (textContent) {
352
+ const assistantMessage = {
353
+ role: 'assistant',
354
+ content: textContent,
355
+ };
356
+ result.push(assistantMessage);
357
+ }
358
+ // Add function calls as separate items (Response API format)
359
+ if (completion.tool_use && completion.tool_use.length > 0) {
360
+ for (const t of completion.tool_use) {
361
+ const functionCall = {
362
+ type: 'function_call',
363
+ call_id: t.id,
364
+ name: t.tool_name,
365
+ arguments: typeof t.tool_input === 'string'
366
+ ? t.tool_input
367
+ : JSON.stringify(t.tool_input ?? {}),
368
+ };
369
+ result.push(functionCall);
370
+ }
371
+ }
372
+ return result;
373
+ }
374
+ function mapResponseStream(stream) {
375
+ const toolCallMetadata = new Map();
376
+ return {
377
+ async *[Symbol.asyncIterator]() {
378
+ for await (const event of stream) {
379
+ if (event.type === 'response.output_item.added' && event.item.type === 'function_call') {
380
+ const syntheticId = `tool_${event.output_index}`;
381
+ const actualId = event.item.id ?? event.item.call_id;
382
+ if (actualId) {
383
+ toolCallMetadata.set(actualId, { syntheticId, name: event.item.name });
301
384
  }
302
- if (part.type === 'image_url') {
303
- part.image_url = { ...part.image_url, detail: detail_level };
385
+ const toolUse = {
386
+ id: syntheticId,
387
+ _actual_id: actualId,
388
+ tool_name: event.item.name,
389
+ tool_input: '',
390
+ };
391
+ yield {
392
+ result: [],
393
+ tool_use: [toolUse],
394
+ };
395
+ }
396
+ else if (event.type === 'response.function_call_arguments.delta') {
397
+ const metadata = toolCallMetadata.get(event.item_id);
398
+ const syntheticId = metadata?.syntheticId ?? `tool_${event.output_index}`;
399
+ const toolUse = {
400
+ id: syntheticId,
401
+ _actual_id: event.item_id,
402
+ tool_name: metadata?.name ?? '',
403
+ tool_input: event.delta,
404
+ };
405
+ yield {
406
+ result: [],
407
+ tool_use: [toolUse],
408
+ };
409
+ }
410
+ // Note: We don't emit response.function_call_arguments.done because the arguments were already
411
+ // streamed via delta events. Emitting it again would duplicate the tool_input content.
412
+ // We only update the metadata to ensure the tool name is captured.
413
+ else if (event.type === 'response.function_call_arguments.done') {
414
+ // Just update metadata, don't yield (arguments already accumulated from delta events)
415
+ const metadata = toolCallMetadata.get(event.item_id);
416
+ const syntheticId = metadata?.syntheticId ?? `tool_${event.output_index}`;
417
+ const tool_name = metadata?.name ?? event.name ?? '';
418
+ if (event.item_id) {
419
+ toolCallMetadata.set(event.item_id, { syntheticId, name: tool_name });
420
+ }
421
+ }
422
+ else if (event.type === 'response.output_text.delta') {
423
+ yield {
424
+ result: textToCompletionResult(event.delta),
425
+ };
426
+ }
427
+ // Note: We don't emit response.output_text.done because the text was already
428
+ // streamed via delta events. Emitting it again would duplicate the content.
429
+ else if (event.type === 'response.completed' || event.type === 'response.incomplete' || event.type === 'response.failed') {
430
+ const finalTools = collectTools(event.response.output);
431
+ yield {
432
+ result: [],
433
+ finish_reason: responseFinishReason(event.response, finalTools),
434
+ token_usage: mapUsage(event.response.usage),
435
+ };
436
+ }
437
+ }
438
+ }
439
+ };
440
+ }
441
+ function insert_image_detail(items, detail_level) {
442
+ if (detail_level === "auto" || detail_level === "low" || detail_level === "high") {
443
+ for (const item of items) {
444
+ // Check if it's an EasyInputMessage or Message with content array
445
+ if ('role' in item && 'content' in item && item.role !== 'assistant') {
446
+ const content = item.content;
447
+ if (Array.isArray(content)) {
448
+ for (const part of content) {
449
+ if (typeof part === 'object' && part.type === 'input_image') {
450
+ part.detail = detail_level;
451
+ }
304
452
  }
305
453
  }
306
454
  }
307
455
  }
308
456
  }
309
- return messages;
457
+ return items;
310
458
  }
311
- function convertRoles(messages, model) {
459
+ function convertRoles(items, model) {
312
460
  //New openai models use developer role instead of system
313
461
  if (model.includes("o1") || model.includes("o3")) {
314
462
  if (model.includes("o1-mini") || model.includes("o1-preview")) {
315
463
  //o1-mini and o1-preview support neither system nor developer
316
- for (const message of messages) {
317
- if (message.role === 'system') {
318
- message.role = 'user';
464
+ for (const item of items) {
465
+ if ('role' in item && item.role === 'system') {
466
+ item.role = 'user';
319
467
  }
320
468
  }
321
469
  }
322
470
  else {
323
471
  //Models newer than o1 use developer role
324
- for (const message of messages) {
325
- if (message.role === 'system') {
326
- message.role = 'developer';
472
+ for (const item of items) {
473
+ if ('role' in item && item.role === 'system') {
474
+ item.role = 'developer';
327
475
  }
328
476
  }
329
477
  }
330
478
  }
331
- return messages;
479
+ return items;
332
480
  }
333
481
  //Structured output support is typically aligned with tool use support
334
482
  //Not true for realtime models, which do not support structured output, but do support tool use.
@@ -357,62 +505,63 @@ function getToolDefinition(toolDef) {
357
505
  }
358
506
  return {
359
507
  type: "function",
360
- function: {
361
- name: toolDef.name,
362
- description: toolDef.description,
363
- parameters: parsedSchema,
364
- strict: strictMode,
365
- },
508
+ name: toolDef.name,
509
+ description: toolDef.description,
510
+ parameters: parsedSchema ?? null,
511
+ strict: strictMode,
366
512
  };
367
513
  }
368
- function openAiFinishReason(finish_reason) {
369
- if (finish_reason === "tool_calls") {
370
- return "tool_use";
371
- }
372
- return finish_reason;
373
- }
374
- function updateConversation(conversation, message) {
375
- if (!message) {
376
- return conversation;
514
+ function updateConversation(conversation, items) {
515
+ if (!items) {
516
+ // Unwrap array if wrapped, otherwise treat as array
517
+ const unwrapped = (0, core_1.unwrapConversationArray)(conversation);
518
+ return unwrapped ?? (conversation || []);
377
519
  }
378
520
  if (!conversation) {
379
- return message;
521
+ return items;
380
522
  }
381
- return [...conversation, ...message];
523
+ // Unwrap array if wrapped, otherwise treat as array
524
+ const unwrapped = (0, core_1.unwrapConversationArray)(conversation);
525
+ const convArray = unwrapped ?? conversation;
526
+ return [...convArray, ...items];
382
527
  }
383
- function collectTools(toolCalls) {
384
- if (!toolCalls) {
528
+ function collectTools(output) {
529
+ if (!output) {
385
530
  return undefined;
386
531
  }
387
532
  const tools = [];
388
- for (const call of toolCalls) {
389
- tools.push({
390
- id: call.id,
391
- tool_name: call.function.name,
392
- tool_input: JSON.parse(call.function.arguments),
393
- });
533
+ for (const item of output) {
534
+ if (item.type === 'function_call') {
535
+ const id = item.call_id || item.id;
536
+ if (!id) {
537
+ continue;
538
+ }
539
+ tools.push({
540
+ id,
541
+ tool_name: item.name ?? '',
542
+ tool_input: safeJsonParse(item.arguments),
543
+ });
544
+ }
394
545
  }
395
546
  return tools.length > 0 ? tools : undefined;
396
547
  }
397
- function createPromptFromResponse(response) {
398
- const messages = [];
399
- if (response) {
400
- messages.push({
401
- role: response.role,
402
- content: [{
403
- type: "text",
404
- text: response.content ?? ""
405
- }],
406
- tool_calls: response.tool_calls,
407
- });
408
- }
409
- return messages;
410
- }
411
548
  //For strict mode false
412
549
  function limitedSchemaFormat(schema) {
413
550
  const formattedSchema = { ...schema };
414
551
  // Defaults not supported
415
552
  delete formattedSchema.default;
553
+ // OpenAI requires type field even in non-strict mode
554
+ // If no type is specified, default to 'object' for properties with format/editor hints,
555
+ // otherwise 'string' as a safe fallback
556
+ if (!formattedSchema.type && formattedSchema.description) {
557
+ // Properties with format: "document" or editor hints are typically objects
558
+ if (formattedSchema.format === 'document' || formattedSchema.editor) {
559
+ formattedSchema.type = 'object';
560
+ }
561
+ else {
562
+ formattedSchema.type = 'string';
563
+ }
564
+ }
416
565
  if (formattedSchema?.properties) {
417
566
  // Process each property recursively
418
567
  for (const propName of Object.keys(formattedSchema.properties)) {
@@ -448,6 +597,10 @@ function openAISchemaFormat(schema, nesting = 0) {
448
597
  // Process each property recursively
449
598
  for (const propName of Object.keys(formattedSchema.properties)) {
450
599
  const property = formattedSchema.properties[propName];
600
+ // OpenAI strict mode requires all properties to have a type
601
+ if (!property?.type) {
602
+ throw new Error(`Property '${propName}' is missing required 'type' field for OpenAI strict mode`);
603
+ }
451
604
  // Recursively process properties
452
605
  formattedSchema.properties[propName] = openAISchemaFormat(property, nesting + 1);
453
606
  // Process arrays with items of type object
@@ -466,4 +619,47 @@ function openAISchemaFormat(schema, nesting = 0) {
466
619
  }
467
620
  return formattedSchema;
468
621
  }
622
+ function extractTextFromResponse(response) {
623
+ if (response.output_text) {
624
+ return response.output_text;
625
+ }
626
+ const collected = [];
627
+ for (const item of response.output ?? []) {
628
+ if (item.type === 'message') {
629
+ const text = item.content
630
+ .map(part => part.type === 'output_text' ? part.text : '')
631
+ .join('');
632
+ if (text) {
633
+ collected.push(text);
634
+ }
635
+ }
636
+ }
637
+ return collected.join("\n");
638
+ }
639
+ function responseFinishReason(response, tools) {
640
+ if (tools && tools.length > 0) {
641
+ return "tool_use";
642
+ }
643
+ if (response.status === 'incomplete') {
644
+ if (response.incomplete_details?.reason === 'max_output_tokens') {
645
+ return 'length';
646
+ }
647
+ return response.incomplete_details?.reason ?? 'incomplete';
648
+ }
649
+ if (response.status && response.status !== 'completed') {
650
+ return response.status;
651
+ }
652
+ return 'stop';
653
+ }
654
+ function safeJsonParse(value) {
655
+ if (typeof value !== 'string') {
656
+ return value;
657
+ }
658
+ try {
659
+ return JSON.parse(value);
660
+ }
661
+ catch {
662
+ return value;
663
+ }
664
+ }
469
665
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/openai/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/openai/index.ts"],"names":[],"mappings":"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"}