@ank1015/providers 0.0.1 → 0.0.3

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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -383
  3. package/dist/agent/conversation.d.ts +97 -0
  4. package/dist/agent/conversation.d.ts.map +1 -0
  5. package/dist/agent/conversation.js +328 -0
  6. package/dist/agent/conversation.js.map +1 -0
  7. package/dist/agent/runner.d.ts +37 -0
  8. package/dist/agent/runner.d.ts.map +1 -0
  9. package/dist/agent/runner.js +169 -0
  10. package/dist/agent/runner.js.map +1 -0
  11. package/dist/agent/tools/calculate.d.ts +15 -0
  12. package/dist/agent/tools/calculate.d.ts.map +1 -0
  13. package/dist/agent/tools/calculate.js +23 -0
  14. package/dist/agent/tools/calculate.js.map +1 -0
  15. package/dist/agent/tools/get-current-time.d.ts +15 -0
  16. package/dist/agent/tools/get-current-time.d.ts.map +1 -0
  17. package/dist/agent/tools/get-current-time.js +38 -0
  18. package/dist/agent/tools/get-current-time.js.map +1 -0
  19. package/dist/agent/tools/index.d.ts +3 -0
  20. package/dist/agent/tools/index.d.ts.map +1 -0
  21. package/dist/agent/tools/index.js +3 -0
  22. package/dist/agent/tools/index.js.map +1 -0
  23. package/dist/agent/types.d.ts +53 -31
  24. package/dist/agent/types.d.ts.map +1 -1
  25. package/dist/agent/types.js +1 -2
  26. package/dist/agent/utils.d.ts +14 -0
  27. package/dist/agent/utils.d.ts.map +1 -0
  28. package/dist/agent/utils.js +59 -0
  29. package/dist/agent/utils.js.map +1 -0
  30. package/dist/index.d.ts +16 -9
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +16 -28
  33. package/dist/index.js.map +1 -1
  34. package/dist/llm.d.ts +15 -0
  35. package/dist/llm.d.ts.map +1 -0
  36. package/dist/llm.js +92 -0
  37. package/dist/llm.js.map +1 -0
  38. package/dist/models.d.ts +8 -1
  39. package/dist/models.d.ts.map +1 -1
  40. package/dist/models.generated.d.ts +25 -112
  41. package/dist/models.generated.d.ts.map +1 -1
  42. package/dist/models.generated.js +72 -227
  43. package/dist/models.generated.js.map +1 -1
  44. package/dist/models.js +30 -32
  45. package/dist/models.js.map +1 -1
  46. package/dist/providers/google/complete.d.ts +3 -0
  47. package/dist/providers/google/complete.d.ts.map +1 -0
  48. package/dist/providers/google/complete.js +53 -0
  49. package/dist/providers/google/complete.js.map +1 -0
  50. package/dist/providers/google/index.d.ts +6 -0
  51. package/dist/providers/google/index.d.ts.map +1 -0
  52. package/dist/providers/google/index.js +6 -0
  53. package/dist/providers/google/index.js.map +1 -0
  54. package/dist/providers/google/stream.d.ts +3 -0
  55. package/dist/providers/google/stream.d.ts.map +1 -0
  56. package/dist/providers/{google.js → google/stream.js} +67 -231
  57. package/dist/providers/google/stream.js.map +1 -0
  58. package/dist/providers/google/types.d.ts +8 -0
  59. package/dist/providers/google/types.d.ts.map +1 -0
  60. package/dist/providers/google/types.js +2 -0
  61. package/dist/providers/google/types.js.map +1 -0
  62. package/dist/providers/google/utils.d.ts +30 -0
  63. package/dist/providers/google/utils.d.ts.map +1 -0
  64. package/dist/providers/google/utils.js +354 -0
  65. package/dist/providers/google/utils.js.map +1 -0
  66. package/dist/providers/openai/complete.d.ts +3 -0
  67. package/dist/providers/openai/complete.d.ts.map +1 -0
  68. package/dist/providers/openai/complete.js +57 -0
  69. package/dist/providers/openai/complete.js.map +1 -0
  70. package/dist/providers/openai/index.d.ts +4 -0
  71. package/dist/providers/openai/index.d.ts.map +1 -0
  72. package/dist/providers/openai/index.js +4 -0
  73. package/dist/providers/openai/index.js.map +1 -0
  74. package/dist/providers/openai/stream.d.ts +3 -0
  75. package/dist/providers/openai/stream.d.ts.map +1 -0
  76. package/dist/providers/{openai.js → openai/stream.js} +74 -152
  77. package/dist/providers/openai/stream.js.map +1 -0
  78. package/dist/providers/openai/types.d.ts +8 -0
  79. package/dist/providers/openai/types.d.ts.map +1 -0
  80. package/dist/providers/openai/types.js +2 -0
  81. package/dist/providers/openai/types.js.map +1 -0
  82. package/dist/providers/openai/utils.d.ts +13 -0
  83. package/dist/providers/openai/utils.d.ts.map +1 -0
  84. package/dist/providers/openai/utils.js +285 -0
  85. package/dist/providers/openai/utils.js.map +1 -0
  86. package/dist/types.d.ts +95 -87
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js +1 -9
  89. package/dist/types.js.map +1 -1
  90. package/dist/utils/event-stream.d.ts +2 -2
  91. package/dist/utils/event-stream.d.ts.map +1 -1
  92. package/dist/utils/event-stream.js +2 -7
  93. package/dist/utils/event-stream.js.map +1 -1
  94. package/dist/utils/json-parse.js +3 -6
  95. package/dist/utils/json-parse.js.map +1 -1
  96. package/dist/utils/overflow.d.ts +51 -0
  97. package/dist/utils/overflow.d.ts.map +1 -0
  98. package/dist/utils/overflow.js +106 -0
  99. package/dist/utils/overflow.js.map +1 -0
  100. package/dist/utils/sanitize-unicode.js +1 -4
  101. package/dist/utils/sanitize-unicode.js.map +1 -1
  102. package/dist/utils/uuid.d.ts +6 -0
  103. package/dist/utils/uuid.d.ts.map +1 -0
  104. package/dist/utils/uuid.js +9 -0
  105. package/dist/utils/uuid.js.map +1 -0
  106. package/dist/utils/validation.d.ts +10 -3
  107. package/dist/utils/validation.d.ts.map +1 -1
  108. package/dist/utils/validation.js +20 -12
  109. package/dist/utils/validation.js.map +1 -1
  110. package/package.json +47 -8
  111. package/biome.json +0 -43
  112. package/dist/agent/agent-loop.d.ts +0 -5
  113. package/dist/agent/agent-loop.d.ts.map +0 -1
  114. package/dist/agent/agent-loop.js +0 -219
  115. package/dist/agent/agent-loop.js.map +0 -1
  116. package/dist/providers/convert.d.ts +0 -6
  117. package/dist/providers/convert.d.ts.map +0 -1
  118. package/dist/providers/convert.js +0 -207
  119. package/dist/providers/convert.js.map +0 -1
  120. package/dist/providers/google.d.ts +0 -26
  121. package/dist/providers/google.d.ts.map +0 -1
  122. package/dist/providers/google.js.map +0 -1
  123. package/dist/providers/openai.d.ts +0 -17
  124. package/dist/providers/openai.d.ts.map +0 -1
  125. package/dist/providers/openai.js.map +0 -1
  126. package/dist/stream.d.ts +0 -4
  127. package/dist/stream.d.ts.map +0 -1
  128. package/dist/stream.js +0 -40
  129. package/dist/stream.js.map +0 -1
  130. package/dist/test-google-agent-loop.d.ts +0 -2
  131. package/dist/test-google-agent-loop.d.ts.map +0 -1
  132. package/dist/test-google-agent-loop.js +0 -186
  133. package/dist/test-google-agent-loop.js.map +0 -1
  134. package/dist/test-google.d.ts +0 -2
  135. package/dist/test-google.d.ts.map +0 -1
  136. package/dist/test-google.js +0 -41
  137. package/dist/test-google.js.map +0 -1
  138. package/src/agent/agent-loop.ts +0 -275
  139. package/src/agent/types.ts +0 -80
  140. package/src/index.ts +0 -72
  141. package/src/models.generated.ts +0 -314
  142. package/src/models.ts +0 -45
  143. package/src/providers/convert.ts +0 -222
  144. package/src/providers/google.ts +0 -496
  145. package/src/providers/openai.ts +0 -437
  146. package/src/stream.ts +0 -60
  147. package/src/types.ts +0 -198
  148. package/src/utils/event-stream.ts +0 -60
  149. package/src/utils/json-parse.ts +0 -28
  150. package/src/utils/sanitize-unicode.ts +0 -25
  151. package/src/utils/validation.ts +0 -69
  152. package/test/core/agent-loop.test.ts +0 -958
  153. package/test/core/stream.test.ts +0 -409
  154. package/test/data/red-circle.png +0 -0
  155. package/test/data/superintelligentwill.pdf +0 -0
  156. package/test/edge-cases/general.test.ts +0 -565
  157. package/test/integration/e2e.test.ts +0 -530
  158. package/test/models/cost.test.ts +0 -499
  159. package/test/models/registry.test.ts +0 -298
  160. package/test/providers/convert.test.ts +0 -846
  161. package/test/providers/google-schema.test.ts +0 -666
  162. package/test/providers/google-stream.test.ts +0 -369
  163. package/test/providers/openai-stream.test.ts +0 -251
  164. package/test/utils/event-stream.test.ts +0 -289
  165. package/test/utils/json-parse.test.ts +0 -344
  166. package/test/utils/sanitize-unicode.test.ts +0 -329
  167. package/test/utils/validation.test.ts +0 -614
  168. package/tsconfig.json +0 -21
  169. package/vitest.config.ts +0 -9
@@ -1,27 +1,18 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.streamOpenAI = void 0;
7
- // Return a abstracted event stream
8
- // Return the final response as it is.
9
- const openai_1 = __importDefault(require("openai"));
10
- const event_stream_1 = require("../utils/event-stream");
11
- const convert_1 = require("./convert");
12
- const json_parse_1 = require("../utils/json-parse");
13
- const validation_1 = require("../utils/validation");
14
- const models_1 = require("../models");
15
- // takes in model, built in message
16
- const streamOpenAI = (model, context, options) => {
17
- const stream = new event_stream_1.AssistantMessageEventStream();
18
- // Start async processing
1
+ import { createClient, buildParams, mapStopReason } from "./utils.js";
2
+ import { AssistantMessageEventStream } from "../../utils/event-stream.js";
3
+ import { parseStreamingJson } from "../../utils/json-parse.js";
4
+ import { validateToolArguments } from "../../utils/validation.js";
5
+ import { calculateCost } from "../../models.js";
6
+ export const streamOpenAI = (model, context, options, id) => {
7
+ const stream = new AssistantMessageEventStream();
19
8
  (async () => {
9
+ const startTimestamp = Date.now();
20
10
  const output = {
21
11
  role: "assistant",
12
+ api: model.api,
13
+ model: model,
14
+ id,
22
15
  content: [],
23
- api: "openai",
24
- model: model.id,
25
16
  usage: {
26
17
  input: 0,
27
18
  output: 0,
@@ -31,7 +22,8 @@ const streamOpenAI = (model, context, options) => {
31
22
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
32
23
  },
33
24
  stopReason: "stop",
34
- timestamp: Date.now(),
25
+ timestamp: startTimestamp,
26
+ duration: 0
35
27
  };
36
28
  let finalResponse = {
37
29
  id: "resp_123",
@@ -70,8 +62,12 @@ const streamOpenAI = (model, context, options) => {
70
62
  try {
71
63
  const client = createClient(model, options?.apiKey);
72
64
  const params = buildParams(model, context, options);
73
- const openaiStream = await client.responses.create(params, { signal: options?.signal });
74
- stream.push({ type: "start", partial: output });
65
+ const paramsStreaming = {
66
+ ...params,
67
+ stream: true
68
+ };
69
+ const openaiStream = await client.responses.create(paramsStreaming, { signal: options?.signal });
70
+ stream.push({ type: "start", message: { ...output, timestamp: Date.now() } });
75
71
  let currentItem = null;
76
72
  let currentBlock = null;
77
73
  const blocks = output.content;
@@ -82,27 +78,27 @@ const streamOpenAI = (model, context, options) => {
82
78
  const item = event.item;
83
79
  if (item.type === "reasoning") {
84
80
  currentItem = item;
85
- currentBlock = { type: "thinking", thinking: "" };
81
+ currentBlock = { type: "thinking", thinkingText: "" };
86
82
  output.content.push(currentBlock);
87
- stream.push({ type: "thinking_start", contentIndex: blockIndex(), partial: output });
83
+ stream.push({ type: "thinking_start", contentIndex: blockIndex(), message: { ...output, timestamp: Date.now() } });
88
84
  }
89
85
  else if (item.type === "message") {
90
86
  currentItem = item;
91
- currentBlock = { type: "text", text: "" };
87
+ currentBlock = { type: "response", content: [{ type: 'text', content: "" }] };
92
88
  output.content.push(currentBlock);
93
- stream.push({ type: "text_start", contentIndex: blockIndex(), partial: output });
89
+ stream.push({ type: "text_start", contentIndex: blockIndex(), message: { ...output, timestamp: Date.now() } });
94
90
  }
95
91
  else if (item.type === "function_call") {
96
92
  currentItem = item;
97
93
  currentBlock = {
98
94
  type: "toolCall",
99
- id: item.call_id,
95
+ toolCallId: item.call_id,
100
96
  name: item.name,
101
97
  arguments: {},
102
98
  partialJson: item.arguments || "",
103
99
  };
104
100
  output.content.push(currentBlock);
105
- stream.push({ type: "toolcall_start", contentIndex: blockIndex(), partial: output });
101
+ stream.push({ type: "toolcall_start", contentIndex: blockIndex(), message: { ...output, timestamp: Date.now() } });
106
102
  }
107
103
  }
108
104
  // Handle reasoning summary deltas
@@ -120,13 +116,13 @@ const streamOpenAI = (model, context, options) => {
120
116
  currentItem.summary = currentItem.summary || [];
121
117
  const lastPart = currentItem.summary[currentItem.summary.length - 1];
122
118
  if (lastPart) {
123
- currentBlock.thinking += event.delta;
119
+ currentBlock.thinkingText += event.delta;
124
120
  lastPart.text += event.delta;
125
121
  stream.push({
126
122
  type: "thinking_delta",
127
123
  contentIndex: blockIndex(),
128
124
  delta: event.delta,
129
- partial: output,
125
+ message: { ...output, timestamp: Date.now() },
130
126
  });
131
127
  }
132
128
  }
@@ -140,13 +136,13 @@ const streamOpenAI = (model, context, options) => {
140
136
  currentItem.summary = currentItem.summary || [];
141
137
  const lastPart = currentItem.summary[currentItem.summary.length - 1];
142
138
  if (lastPart) {
143
- currentBlock.thinking += "\n\n";
139
+ currentBlock.thinkingText += "\n\n";
144
140
  lastPart.text += "\n\n";
145
141
  stream.push({
146
142
  type: "thinking_delta",
147
143
  contentIndex: blockIndex(),
148
144
  delta: "\n\n",
149
- partial: output,
145
+ message: { ...output, timestamp: Date.now() },
150
146
  });
151
147
  }
152
148
  }
@@ -159,31 +155,37 @@ const streamOpenAI = (model, context, options) => {
159
155
  }
160
156
  }
161
157
  else if (event.type === "response.output_text.delta") {
162
- if (currentItem && currentItem.type === "message" && currentBlock && currentBlock.type === "text") {
158
+ if (currentItem && currentItem.type === "message" && currentBlock && currentBlock.type === "response") {
163
159
  const lastPart = currentItem.content[currentItem.content.length - 1];
164
160
  if (lastPart && lastPart.type === "output_text") {
165
- currentBlock.text += event.delta;
161
+ const index = currentBlock.content.findIndex((c) => c.type === 'text');
162
+ if (index !== -1) {
163
+ currentBlock.content[index].content += event.delta;
164
+ }
166
165
  lastPart.text += event.delta;
167
166
  stream.push({
168
167
  type: "text_delta",
169
168
  contentIndex: blockIndex(),
170
169
  delta: event.delta,
171
- partial: output,
170
+ message: { ...output, timestamp: Date.now() },
172
171
  });
173
172
  }
174
173
  }
175
174
  }
176
175
  else if (event.type === "response.refusal.delta") {
177
- if (currentItem && currentItem.type === "message" && currentBlock && currentBlock.type === "text") {
176
+ if (currentItem && currentItem.type === "message" && currentBlock && currentBlock.type === "response") {
178
177
  const lastPart = currentItem.content[currentItem.content.length - 1];
179
178
  if (lastPart && lastPart.type === "refusal") {
180
- currentBlock.text += event.delta;
179
+ const index = currentBlock.content.findIndex((c) => c.type === 'text');
180
+ if (index !== -1) {
181
+ currentBlock.content[index].content += event.delta;
182
+ }
181
183
  lastPart.refusal += event.delta;
182
184
  stream.push({
183
185
  type: "text_delta",
184
186
  contentIndex: blockIndex(),
185
187
  delta: event.delta,
186
- partial: output,
188
+ message: { ...output, timestamp: Date.now() },
187
189
  });
188
190
  }
189
191
  }
@@ -195,12 +197,12 @@ const streamOpenAI = (model, context, options) => {
195
197
  currentBlock &&
196
198
  currentBlock.type === "toolCall") {
197
199
  currentBlock.partialJson += event.delta;
198
- currentBlock.arguments = (0, json_parse_1.parseStreamingJson)(currentBlock.partialJson);
200
+ currentBlock.arguments = parseStreamingJson(currentBlock.partialJson);
199
201
  stream.push({
200
202
  type: "toolcall_delta",
201
203
  contentIndex: blockIndex(),
202
204
  delta: event.delta,
203
- partial: output,
205
+ message: { ...output, timestamp: Date.now() },
204
206
  });
205
207
  }
206
208
  }
@@ -208,29 +210,32 @@ const streamOpenAI = (model, context, options) => {
208
210
  else if (event.type === "response.output_item.done") {
209
211
  const item = event.item;
210
212
  if (item.type === "reasoning" && currentBlock && currentBlock.type === "thinking") {
211
- currentBlock.thinking = item.summary?.map((s) => s.text).join("\n\n") || "";
213
+ currentBlock.thinkingText = item.summary?.map((s) => s.text).join("\n\n") || "";
212
214
  stream.push({
213
215
  type: "thinking_end",
214
216
  contentIndex: blockIndex(),
215
- content: currentBlock.thinking,
216
- partial: output,
217
+ content: currentBlock.thinkingText,
218
+ message: { ...output, timestamp: Date.now() },
217
219
  });
218
220
  currentBlock = null;
219
221
  }
220
- else if (item.type === "message" && currentBlock && currentBlock.type === "text") {
221
- currentBlock.text = item.content.map((c) => (c.type === "output_text" ? c.text : c.refusal)).join("");
222
+ else if (item.type === "message" && currentBlock && currentBlock.type === "response") {
223
+ const index = currentBlock.content.findIndex(c => c.type === 'text');
224
+ if (index !== -1) {
225
+ currentBlock.content[index].content = item.content.map((c) => (c.type === "output_text" ? c.text : c.refusal)).join("");
226
+ }
222
227
  stream.push({
223
228
  type: "text_end",
224
229
  contentIndex: blockIndex(),
225
- content: currentBlock.text,
226
- partial: output,
230
+ content: currentBlock.content,
231
+ message: { ...output, timestamp: Date.now() },
227
232
  });
228
233
  currentBlock = null;
229
234
  }
230
235
  else if (item.type === "function_call") {
231
236
  const toolCall = {
232
237
  type: "toolCall",
233
- id: item.call_id,
238
+ toolCallId: item.call_id,
234
239
  name: item.name,
235
240
  arguments: JSON.parse(item.arguments),
236
241
  };
@@ -238,10 +243,10 @@ const streamOpenAI = (model, context, options) => {
238
243
  if (context.tools) {
239
244
  const tool = context.tools.find((t) => t.name === toolCall.name);
240
245
  if (tool) {
241
- toolCall.arguments = (0, validation_1.validateToolArguments)(tool, toolCall);
246
+ toolCall.arguments = validateToolArguments(tool, toolCall);
242
247
  }
243
248
  }
244
- stream.push({ type: "toolcall_end", contentIndex: blockIndex(), toolCall, partial: output });
249
+ stream.push({ type: "toolcall_end", contentIndex: blockIndex(), toolCall, message: { ...output, timestamp: Date.now() } });
245
250
  }
246
251
  }
247
252
  // Handle completion
@@ -261,7 +266,7 @@ const streamOpenAI = (model, context, options) => {
261
266
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
262
267
  };
263
268
  }
264
- (0, models_1.calculateCost)(model, output.usage);
269
+ calculateCost(model, output.usage);
265
270
  // Map status to stop reason
266
271
  output.stopReason = mapStopReason(response?.status);
267
272
  if (output.content.some((b) => b.type === "toolCall") && output.stopReason === "stop") {
@@ -282,115 +287,32 @@ const streamOpenAI = (model, context, options) => {
282
287
  if (output.stopReason === "aborted" || output.stopReason === "error") {
283
288
  throw new Error(`Stream ended with status: ${output.stopReason}${output.errorMessage ? ` - ${output.errorMessage}` : ""}`);
284
289
  }
285
- stream.push({ type: "done", reason: output.stopReason, message: output });
286
- stream.end({
287
- _provider: 'openai',
288
- role: 'assistant',
289
- message: finalResponse
290
- });
290
+ stream.push({ type: "done", reason: output.stopReason, message: { ...output, timestamp: Date.now() } });
291
+ const baseAssistantMessage = {
292
+ ...output,
293
+ message: finalResponse,
294
+ timestamp: Date.now(),
295
+ duration: Date.now() - startTimestamp
296
+ };
297
+ stream.end(baseAssistantMessage);
291
298
  }
292
299
  catch (error) {
293
300
  for (const block of output.content)
294
301
  delete block.index;
295
302
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
296
303
  output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
297
- stream.push({ type: "error", reason: output.stopReason, error: output });
304
+ stream.push({ type: "error", reason: output.stopReason, message: { ...output, timestamp: Date.now() } });
298
305
  // Update finalResponse to reflect the error state
299
306
  finalResponse.status = options?.signal?.aborted ? "cancelled" : "failed";
300
- finalResponse.error = error instanceof Error ? {
301
- message: error.message,
302
- code: error.code || "unknown_error",
303
- type: error.name || "Error"
304
- } : { message: String(error) };
305
- stream.end({
306
- _provider: 'openai',
307
- role: 'assistant',
308
- message: finalResponse
309
- });
307
+ const baseAssistantMessage = {
308
+ ...output,
309
+ message: finalResponse,
310
+ timestamp: Date.now(),
311
+ duration: Date.now() - startTimestamp
312
+ };
313
+ stream.end(baseAssistantMessage);
310
314
  }
311
315
  })();
312
316
  return stream;
313
317
  };
314
- exports.streamOpenAI = streamOpenAI;
315
- function createClient(model, apiKey) {
316
- if (!apiKey) {
317
- if (!process.env.OPENAI_API_KEY) {
318
- throw new Error("OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.");
319
- }
320
- apiKey = process.env.OPENAI_API_KEY;
321
- }
322
- return new openai_1.default({
323
- apiKey,
324
- baseURL: model.baseUrl,
325
- dangerouslyAllowBrowser: true,
326
- defaultHeaders: model.headers,
327
- });
328
- }
329
- function buildParams(model, context, options) {
330
- const messages = (0, convert_1.buildOpenAIMessages)(model, context);
331
- const params = {
332
- include: ['reasoning.encrypted_content'],
333
- input: messages,
334
- model: model.id,
335
- stream: true
336
- };
337
- if (options?.maxOutputTokens) {
338
- params.max_output_tokens = options.maxOutputTokens;
339
- }
340
- if (options?.parallelToolCalls) {
341
- params.parallel_tool_calls = options.parallelToolCalls;
342
- }
343
- if (options?.prompt_cache_key) {
344
- params.prompt_cache_key = options.prompt_cache_key;
345
- }
346
- if (options?.promptCacheRetention) {
347
- params.prompt_cache_retention = options.promptCacheRetention;
348
- }
349
- if (options?.reasoning) {
350
- params.reasoning = {
351
- effort: options.reasoning.effort || "medium",
352
- summary: options.reasoning.summary || "auto"
353
- };
354
- }
355
- if (options?.temperature) {
356
- params.temperature = options.temperature;
357
- }
358
- if (context.tools) {
359
- params.tools = convertTools(context.tools);
360
- }
361
- if (options?.truncation) {
362
- params.truncation = options.truncation;
363
- }
364
- return params;
365
- }
366
- function convertTools(tools) {
367
- return tools.map((tool) => ({
368
- type: "function",
369
- name: tool.name,
370
- description: tool.description,
371
- parameters: tool.parameters, // TypeBox already generates JSON Schema
372
- strict: null,
373
- }));
374
- }
375
- function mapStopReason(status) {
376
- if (!status)
377
- return "stop";
378
- switch (status) {
379
- case "completed":
380
- return "stop";
381
- case "incomplete":
382
- return "length";
383
- case "failed":
384
- case "cancelled":
385
- return "error";
386
- // These two are wonky ...
387
- case "in_progress":
388
- case "queued":
389
- return "stop";
390
- default: {
391
- const _exhaustive = status;
392
- throw new Error(`Unhandled stop reason: ${_exhaustive}`);
393
- }
394
- }
395
- }
396
- //# sourceMappingURL=openai.js.map
318
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/providers/openai/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ResponseCreateParamsBase } from "openai/resources/responses/responses.js";
2
+ type Props = {
3
+ apiKey?: string;
4
+ signal?: AbortSignal;
5
+ };
6
+ export type OpenAIProviderOptions = Omit<ResponseCreateParamsBase, 'model' | 'input'> & Props;
7
+ export {};
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAElF,KAAK,KAAK,GAAG;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,KAAK,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/providers/openai/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import OpenAI from "openai";
2
+ import { AssistantResponse, Context, Model, StopReason, Tool, Usage } from "../../types.js";
3
+ import type { Response, Tool as OpenAITool, ResponseInput, ResponseCreateParamsNonStreaming } from "openai/resources/responses/responses.js";
4
+ import { OpenAIProviderOptions } from "./types.js";
5
+ export declare function createClient(model: Model<"openai">, apiKey?: string): OpenAI;
6
+ export declare function getResponseAssistantResponse(response: Response): AssistantResponse;
7
+ export declare function getResponseUsage(response: Response, model: Model<'openai'>): Usage;
8
+ export declare function buildParams(model: Model<"openai">, context: Context, options: OpenAIProviderOptions): ResponseCreateParamsNonStreaming;
9
+ export declare function buildOpenAIMessages(model: Model<'openai'>, context: Context): ResponseInput;
10
+ export declare function convertTools(tools: readonly Tool[]): OpenAITool[];
11
+ export declare function mapStopReason(status: OpenAI.Responses.ResponseStatus | undefined): StopReason;
12
+ export declare function getMockOpenaiMessage(): Response;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAwB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,aAAa,EAA0F,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAGrO,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,UAenE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,CAsDlF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAYlF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,oCA6BnG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAkH3F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,UAAU,EAAE,CAQjE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,GAAG,UAAU,CAmB7F;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,CAmC/C"}