ai.matey.frontend 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/cjs/adapters/anthropic.js +156 -16
  3. package/dist/cjs/adapters/anthropic.js.map +1 -1
  4. package/dist/cjs/adapters/chrome-ai.js +58 -0
  5. package/dist/cjs/adapters/chrome-ai.js.map +1 -1
  6. package/dist/cjs/adapters/gemini.js +57 -0
  7. package/dist/cjs/adapters/gemini.js.map +1 -1
  8. package/dist/cjs/adapters/generic.js +56 -4
  9. package/dist/cjs/adapters/generic.js.map +1 -1
  10. package/dist/cjs/adapters/mistral.js +59 -0
  11. package/dist/cjs/adapters/mistral.js.map +1 -1
  12. package/dist/cjs/adapters/ollama.js +59 -0
  13. package/dist/cjs/adapters/ollama.js.map +1 -1
  14. package/dist/cjs/adapters/openai.js +199 -32
  15. package/dist/cjs/adapters/openai.js.map +1 -1
  16. package/dist/esm/adapters/anthropic.js +156 -16
  17. package/dist/esm/adapters/anthropic.js.map +1 -1
  18. package/dist/esm/adapters/chrome-ai.js +58 -0
  19. package/dist/esm/adapters/chrome-ai.js.map +1 -1
  20. package/dist/esm/adapters/gemini.js +57 -0
  21. package/dist/esm/adapters/gemini.js.map +1 -1
  22. package/dist/esm/adapters/generic.js +56 -4
  23. package/dist/esm/adapters/generic.js.map +1 -1
  24. package/dist/esm/adapters/mistral.js +59 -0
  25. package/dist/esm/adapters/mistral.js.map +1 -1
  26. package/dist/esm/adapters/ollama.js +59 -0
  27. package/dist/esm/adapters/ollama.js.map +1 -1
  28. package/dist/esm/adapters/openai.js +199 -32
  29. package/dist/esm/adapters/openai.js.map +1 -1
  30. package/dist/types/adapters/anthropic.d.ts +254 -8
  31. package/dist/types/adapters/anthropic.d.ts.map +1 -1
  32. package/dist/types/adapters/chrome-ai.d.ts +95 -0
  33. package/dist/types/adapters/chrome-ai.d.ts.map +1 -1
  34. package/dist/types/adapters/gemini.d.ts +170 -0
  35. package/dist/types/adapters/gemini.d.ts.map +1 -1
  36. package/dist/types/adapters/generic.d.ts +56 -4
  37. package/dist/types/adapters/generic.d.ts.map +1 -1
  38. package/dist/types/adapters/mistral.d.ts +143 -0
  39. package/dist/types/adapters/mistral.d.ts.map +1 -1
  40. package/dist/types/adapters/ollama.d.ts +132 -0
  41. package/dist/types/adapters/ollama.d.ts.map +1 -1
  42. package/dist/types/adapters/openai.d.ts +252 -8
  43. package/dist/types/adapters/openai.d.ts.map +1 -1
  44. package/package.json +2 -3
@@ -21,6 +21,27 @@ class MistralFrontendAdapter {
21
21
  supportsMultipleSystemMessages: false,
22
22
  },
23
23
  };
24
+ /**
25
+ * Convert Mistral API request to Universal IR format.
26
+ *
27
+ * This method transforms a Mistral-formatted request into the standardized
28
+ * Intermediate Representation (IR) format. Since Mistral's format is similar
29
+ * to OpenAI and close to IR, this is largely a pass-through adapter with
30
+ * field name mapping (e.g., random_seed → seed).
31
+ *
32
+ * @param request - Mistral API request
33
+ * @returns Promise resolving to IR chat request
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const adapter = new MistralFrontendAdapter();
38
+ * const irRequest = await adapter.toIR({
39
+ * model: 'mistral-small',
40
+ * messages: [{ role: 'user', content: 'Hello!' }],
41
+ * temperature: 0.7
42
+ * });
43
+ * ```
44
+ */
24
45
  toIR(request) {
25
46
  const messages = request.messages.map((msg) => ({
26
47
  role: msg.role,
@@ -43,6 +64,24 @@ class MistralFrontendAdapter {
43
64
  stream: request.stream,
44
65
  });
45
66
  }
67
+ /**
68
+ * Convert Universal IR response back to Mistral API format.
69
+ *
70
+ * This method transforms the standardized IR response into the format
71
+ * expected by Mistral's API. It handles message conversion, finish reason
72
+ * mapping (stop, length, model_length), and usage statistics formatting
73
+ * specific to Mistral's response structure.
74
+ *
75
+ * @param response - Universal IR chat response
76
+ * @returns Promise resolving to Mistral API response
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const adapter = new MistralFrontendAdapter();
81
+ * const mistralResponse = await adapter.fromIR(irResponse);
82
+ * console.log(mistralResponse.choices[0].message.content);
83
+ * ```
84
+ */
46
85
  fromIR(response) {
47
86
  return Promise.resolve({
48
87
  id: `mistral-${Date.now()}`,
@@ -72,6 +111,26 @@ class MistralFrontendAdapter {
72
111
  : { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 },
73
112
  });
74
113
  }
114
+ /**
115
+ * Convert Universal IR stream to Mistral Server-Sent Events format.
116
+ *
117
+ * This async generator method transforms a stream of IR chunks into
118
+ * Mistral-formatted SSE responses. It yields Server-Sent Event strings
119
+ * with the "data: " prefix containing JSON with delta content, and
120
+ * emits "data: [DONE]" when the stream completes.
121
+ *
122
+ * @param stream - Universal IR chat stream
123
+ * @param _options - Optional stream conversion options (currently unused)
124
+ * @yields Server-Sent Event formatted strings
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const adapter = new MistralFrontendAdapter();
129
+ * for await (const sseData of adapter.fromIRStream(irStream)) {
130
+ * console.log(sseData); // "data: {...}\n\n" or "data: [DONE]\n\n"
131
+ * }
132
+ * ```
133
+ */
75
134
  async *fromIRStream(stream, _options) {
76
135
  for await (const chunk of stream) {
77
136
  if (chunk.type === 'content') {
@@ -1 +1 @@
1
- {"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../../src/adapters/mistral.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mistral.js","sourceRoot":"","sources":["../../../src/adapters/mistral.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,27 @@ class OllamaFrontendAdapter {
22
22
  supportsMultipleSystemMessages: false,
23
23
  },
24
24
  };
25
+ /**
26
+ * Convert Ollama API request to Universal IR format.
27
+ *
28
+ * This method transforms an Ollama-formatted request into the standardized
29
+ * Intermediate Representation (IR) format. It handles Ollama's unique
30
+ * structure where parameters are nested in an `options` object, and maps
31
+ * Ollama-specific field names (e.g., num_predict → maxTokens).
32
+ *
33
+ * @param request - Ollama API request
34
+ * @returns Promise resolving to IR chat request
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const adapter = new OllamaFrontendAdapter();
39
+ * const irRequest = await adapter.toIR({
40
+ * model: 'llama2',
41
+ * messages: [{ role: 'user', content: 'Hello!' }],
42
+ * options: { temperature: 0.7, num_predict: 100 }
43
+ * });
44
+ * ```
45
+ */
25
46
  toIR(request) {
26
47
  const messages = request.messages.map((msg) => ({
27
48
  role: msg.role,
@@ -45,6 +66,24 @@ class OllamaFrontendAdapter {
45
66
  stream: request.stream,
46
67
  });
47
68
  }
69
+ /**
70
+ * Convert Universal IR response back to Ollama API format.
71
+ *
72
+ * This method transforms the standardized IR response into the format
73
+ * expected by Ollama's API. It handles message conversion, formats the
74
+ * timestamp as ISO string, and maps usage statistics to Ollama's format
75
+ * (prompt_eval_count and eval_count instead of token counts).
76
+ *
77
+ * @param response - Universal IR chat response
78
+ * @returns Promise resolving to Ollama API response
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const adapter = new OllamaFrontendAdapter();
83
+ * const ollamaResponse = await adapter.fromIR(irResponse);
84
+ * console.log(ollamaResponse.message.content);
85
+ * ```
86
+ */
48
87
  fromIR(response) {
49
88
  return Promise.resolve({
50
89
  model: response.metadata.custom?.model || 'unknown',
@@ -58,6 +97,26 @@ class OllamaFrontendAdapter {
58
97
  eval_count: response.usage?.completionTokens,
59
98
  });
60
99
  }
100
+ /**
101
+ * Convert Universal IR stream to Ollama streaming format.
102
+ *
103
+ * This async generator method transforms a stream of IR chunks into
104
+ * Ollama-formatted responses. It yields newline-delimited JSON objects
105
+ * (not SSE format) with each chunk containing a message and done flag,
106
+ * emitting `done: true` when the stream completes.
107
+ *
108
+ * @param stream - Universal IR chat stream
109
+ * @param _options - Optional stream conversion options (currently unused)
110
+ * @yields Newline-delimited JSON strings
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const adapter = new OllamaFrontendAdapter();
115
+ * for await (const jsonLine of adapter.fromIRStream(irStream)) {
116
+ * console.log(jsonLine); // '{"message":{"content":"text"},"done":false}\n'
117
+ * }
118
+ * ```
119
+ */
61
120
  async *fromIRStream(stream, _options) {
62
121
  for await (const chunk of stream) {
63
122
  if (chunk.type === 'content') {
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/adapters/ollama.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAuCH,MAAa,qBAAqB;IACvB,QAAQ,GAAoB;QACnC,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,KAAK;YACZ,qBAAqB,EAAE,aAAa;YACpC,8BAA8B,EAAE,KAAK;SACtC;KACF,CAAC;IAEF,IAAI,CAAC,OAAsB;QACzB,MAAM,QAAQ,GAAgB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC;YAC1E,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC,CAAC;QAEJ,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,QAAQ;YACR,UAAU,EAAE;gBACV,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW;gBACzC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK;gBAC5B,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK;gBAC5B,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW;gBACvC,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI;aACrC;YACD,QAAQ,EAAE;gBACR,SAAS,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;gBACjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;aAC7C;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,QAAwB;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK,EAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAgB,IAAI,SAAS;YAC/D,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;aACtF;YACD,IAAI,EAAE,IAAI;YACV,iBAAiB,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY;YAC/C,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,YAAY,CACjB,MAAqC,EACrC,QAAkC;QAElC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;YAClF,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAjED,sDAiEC"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/adapters/ollama.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,26 @@ class OpenAIFrontendAdapter {
39
39
  },
40
40
  };
41
41
  /**
42
- * Convert OpenAI request to Universal IR.
42
+ * Convert OpenAI Chat Completions API request to Universal IR format.
43
+ *
44
+ * This method transforms an OpenAI-formatted request into the standardized
45
+ * Intermediate Representation (IR) format used across all AI Matey adapters.
46
+ * Since OpenAI's format is similar to IR, this is largely a pass-through
47
+ * with field name mapping.
48
+ *
49
+ * @param request - OpenAI Chat Completions API request
50
+ * @returns Promise resolving to IR chat request
51
+ * @throws {AdapterConversionError} If conversion fails
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const adapter = new OpenAIFrontendAdapter();
56
+ * const irRequest = await adapter.toIR({
57
+ * model: 'gpt-4',
58
+ * messages: [{ role: 'user', content: 'Hello!' }],
59
+ * temperature: 0.7
60
+ * });
61
+ * ```
43
62
  */
44
63
  toIR(request) {
45
64
  try {
@@ -59,6 +78,19 @@ class OpenAIFrontendAdapter {
59
78
  seed: request.seed,
60
79
  user: request.user,
61
80
  },
81
+ tools: request.tools?.map((tool) => ({
82
+ name: tool.function.name,
83
+ description: tool.function.description ?? '',
84
+ parameters: (tool.function.parameters ?? {
85
+ type: 'object',
86
+ properties: {},
87
+ }),
88
+ })),
89
+ toolChoice: request.tool_choice === undefined
90
+ ? undefined
91
+ : typeof request.tool_choice === 'string'
92
+ ? request.tool_choice
93
+ : { name: request.tool_choice.function.name },
62
94
  stream: request.stream ?? false,
63
95
  metadata: {
64
96
  requestId: crypto.randomUUID(),
@@ -82,7 +114,22 @@ class OpenAIFrontendAdapter {
82
114
  }
83
115
  }
84
116
  /**
85
- * Convert Universal IR response to OpenAI format.
117
+ * Convert Universal IR response back to OpenAI Chat Completions API format.
118
+ *
119
+ * This method transforms the standardized IR response into the format
120
+ * expected by OpenAI's Chat Completions API. It handles message conversion,
121
+ * finish reason mapping, and usage statistics formatting.
122
+ *
123
+ * @param response - Universal IR chat response
124
+ * @returns Promise resolving to OpenAI Chat Completions response
125
+ * @throws {AdapterConversionError} If conversion fails
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const adapter = new OpenAIFrontendAdapter();
130
+ * const openaiResponse = await adapter.fromIR(irResponse);
131
+ * console.log(openaiResponse.choices[0].message.content);
132
+ * ```
86
133
  */
87
134
  fromIR(response) {
88
135
  try {
@@ -125,7 +172,25 @@ class OpenAIFrontendAdapter {
125
172
  }
126
173
  }
127
174
  /**
128
- * Convert Universal IR stream to OpenAI SSE format.
175
+ * Convert Universal IR stream to OpenAI Server-Sent Events (SSE) format.
176
+ *
177
+ * This async generator method transforms a stream of IR chunks into
178
+ * OpenAI-formatted streaming chunks. It handles stream mode conversion
179
+ * (delta/full/text), tracks message metadata, and emits properly
180
+ * formatted SSE events compatible with OpenAI's streaming API.
181
+ *
182
+ * @param stream - Universal IR chat stream
183
+ * @param options - Optional stream conversion options (stream mode, etc.)
184
+ * @yields OpenAI-formatted streaming chunks
185
+ * @throws {AdapterConversionError} If stream conversion fails
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const adapter = new OpenAIFrontendAdapter();
190
+ * for await (const chunk of adapter.fromIRStream(irStream)) {
191
+ * console.log(chunk.choices[0].delta.content);
192
+ * }
193
+ * ```
129
194
  */
130
195
  async *fromIRStream(stream, options) {
131
196
  try {
@@ -134,6 +199,8 @@ class OpenAIFrontendAdapter {
134
199
  let messageId = '';
135
200
  let model = '';
136
201
  let created = 0;
202
+ // Tool-call ids already announced (id/name are only emitted once per call)
203
+ const announcedToolCalls = new Map();
137
204
  for await (const chunk of processedStream) {
138
205
  switch (chunk.type) {
139
206
  case 'start':
@@ -142,6 +209,47 @@ class OpenAIFrontendAdapter {
142
209
  model = chunk.metadata.provenance?.backend || 'unknown';
143
210
  created = Math.floor(chunk.metadata.timestamp / 1000);
144
211
  break;
212
+ case 'tool_use': {
213
+ const isFirst = !announcedToolCalls.has(chunk.id);
214
+ const index = isFirst
215
+ ? (chunk.index ?? announcedToolCalls.size)
216
+ : announcedToolCalls.get(chunk.id);
217
+ if (isFirst) {
218
+ announcedToolCalls.set(chunk.id, index);
219
+ }
220
+ yield {
221
+ id: messageId,
222
+ object: 'chat.completion.chunk',
223
+ created,
224
+ model,
225
+ choices: [
226
+ {
227
+ index: 0,
228
+ delta: {
229
+ tool_calls: [
230
+ {
231
+ index,
232
+ ...(isFirst
233
+ ? {
234
+ id: chunk.id,
235
+ type: 'function',
236
+ function: {
237
+ name: chunk.name,
238
+ arguments: chunk.inputDelta ?? '',
239
+ },
240
+ }
241
+ : {
242
+ function: { arguments: chunk.inputDelta ?? '' },
243
+ }),
244
+ },
245
+ ],
246
+ },
247
+ finish_reason: null,
248
+ },
249
+ ],
250
+ };
251
+ break;
252
+ }
145
253
  case 'content':
146
254
  // Emit content delta
147
255
  yield {
@@ -197,6 +305,24 @@ class OpenAIFrontendAdapter {
197
305
  * Convert OpenAI message to IR message.
198
306
  */
199
307
  convertMessageToIR(message) {
308
+ // Tool result message (role 'tool') becomes a tool_result content block
309
+ if (message.role === 'tool' && message.tool_call_id) {
310
+ return {
311
+ role: 'tool',
312
+ content: [
313
+ {
314
+ type: 'tool_result',
315
+ toolUseId: message.tool_call_id,
316
+ content: typeof message.content === 'string'
317
+ ? message.content
318
+ : message.content
319
+ .map((block) => (block.type === 'text' ? block.text : ''))
320
+ .join(''),
321
+ },
322
+ ],
323
+ name: message.name,
324
+ };
325
+ }
200
326
  // Convert content
201
327
  let content;
202
328
  if (typeof message.content === 'string') {
@@ -218,51 +344,92 @@ class OpenAIFrontendAdapter {
218
344
  }
219
345
  });
220
346
  }
347
+ // Assistant tool calls become tool_use content blocks
348
+ if (message.tool_calls && message.tool_calls.length > 0) {
349
+ const blocks = typeof content === 'string' ? (content ? [{ type: 'text', text: content }] : []) : content;
350
+ content = [
351
+ ...blocks,
352
+ ...message.tool_calls.map((call) => ({
353
+ type: 'tool_use',
354
+ id: call.id,
355
+ name: call.function.name,
356
+ input: this.parseToolArguments(call.function.arguments),
357
+ })),
358
+ ];
359
+ }
221
360
  return {
222
361
  role: message.role,
223
362
  content,
224
363
  name: message.name,
225
364
  };
226
365
  }
366
+ /**
367
+ * Parse tool-call arguments defensively (malformed JSON degrades to {}).
368
+ */
369
+ parseToolArguments(args) {
370
+ try {
371
+ const parsed = JSON.parse(args);
372
+ if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)) {
373
+ return parsed;
374
+ }
375
+ return {};
376
+ }
377
+ catch {
378
+ return {};
379
+ }
380
+ }
227
381
  /**
228
382
  * Convert IR message to OpenAI message.
229
383
  */
230
384
  convertMessageFromIR(message) {
231
- // Convert content
232
- let content;
233
385
  if (typeof message.content === 'string') {
234
- content = message.content;
235
- }
236
- else {
237
- content = message.content.map((block) => {
238
- switch (block.type) {
239
- case 'text':
240
- return { type: 'text', text: block.text };
241
- case 'image':
242
- if (block.source.type === 'url') {
243
- return {
244
- type: 'image_url',
245
- image_url: { url: block.source.url },
246
- };
247
- }
248
- else {
249
- // Convert base64 to data URL
250
- const dataUrl = `data:${block.source.mediaType};base64,${block.source.data}`;
251
- return {
252
- type: 'image_url',
253
- image_url: { url: dataUrl },
254
- };
255
- }
256
- default:
257
- // Fallback to text
258
- return { type: 'text', text: JSON.stringify(block) };
259
- }
260
- });
386
+ return {
387
+ role: message.role,
388
+ content: message.content,
389
+ name: message.name,
390
+ };
261
391
  }
392
+ // Separate tool calls from displayable content
393
+ const toolUses = message.content.filter((block) => block.type === 'tool_use');
394
+ const otherBlocks = message.content.filter((block) => block.type !== 'tool_use');
395
+ const content = otherBlocks.map((block) => {
396
+ switch (block.type) {
397
+ case 'text':
398
+ return { type: 'text', text: block.text };
399
+ case 'image':
400
+ if (block.source.type === 'url') {
401
+ return {
402
+ type: 'image_url',
403
+ image_url: { url: block.source.url },
404
+ };
405
+ }
406
+ else {
407
+ // Convert base64 to data URL
408
+ const dataUrl = `data:${block.source.mediaType};base64,${block.source.data}`;
409
+ return {
410
+ type: 'image_url',
411
+ image_url: { url: dataUrl },
412
+ };
413
+ }
414
+ default:
415
+ // Fallback to text
416
+ return { type: 'text', text: JSON.stringify(block) };
417
+ }
418
+ });
262
419
  return {
263
420
  role: message.role,
264
421
  content,
265
422
  name: message.name,
423
+ tool_calls: toolUses.length > 0
424
+ ? toolUses.map((block) => ({
425
+ id: block.id,
426
+ type: 'function',
427
+ function: {
428
+ name: block.name,
429
+ arguments: JSON.stringify(block.input),
430
+ },
431
+ }))
432
+ : undefined,
266
433
  };
267
434
  }
268
435
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/adapters/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/adapters/openai.ts"],"names":[],"mappings":"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"}