@just-every/ensemble 0.2.16 → 0.2.18

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.
@@ -3,8 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
3
3
  import { costTracker } from '../index.js';
4
4
  import { log_llm_error, log_llm_request, log_llm_response, } from '../utils/llm_logger.js';
5
5
  import { isPaused } from '../utils/communication.js';
6
- import { extractBase64Image, resizeAndTruncateForGemini, } from '../utils/image_utils.js';
7
- import { bufferDelta, flushBufferedDeltas, } from '../utils/delta_buffer.js';
6
+ import { appendMessageWithImage, resizeAndTruncateForGemini, } from '../utils/image_utils.js';
8
7
  function convertParameterToGeminiFormat(param) {
9
8
  let type = Type.STRING;
10
9
  switch (param.type) {
@@ -170,7 +169,7 @@ async function convertToGeminiFunctionDeclarations(tools) {
170
169
  }));
171
170
  return declarations.filter(Boolean);
172
171
  }
173
- function getImageMimeType(imageData) {
172
+ export function getImageMimeType(imageData) {
174
173
  if (imageData.includes('data:image/jpeg'))
175
174
  return 'image/jpeg';
176
175
  if (imageData.includes('data:image/png'))
@@ -181,7 +180,7 @@ function getImageMimeType(imageData) {
181
180
  return 'image/webp';
182
181
  return 'image/jpeg';
183
182
  }
184
- function cleanBase64Data(imageData) {
183
+ export function cleanBase64Data(imageData) {
185
184
  return imageData.replace(/^data:image\/[a-z]+;base64,/, '');
186
185
  }
187
186
  function formatGroundingChunks(chunks) {
@@ -190,8 +189,30 @@ function formatGroundingChunks(chunks) {
190
189
  .map((c, i) => `${i + 1}. ${c.web.title || 'Untitled'} – ${c.web.uri}`)
191
190
  .join('\n');
192
191
  }
193
- async function convertToGeminiContents(messages) {
194
- const contents = [];
192
+ async function addImagesToInput(input, images, source) {
193
+ for (const [image_id, imageData] of Object.entries(images)) {
194
+ const processedImageData = await resizeAndTruncateForGemini(imageData);
195
+ const mimeType = getImageMimeType(processedImageData);
196
+ const cleanedImageData = cleanBase64Data(processedImageData);
197
+ input.push({
198
+ role: 'user',
199
+ parts: [
200
+ {
201
+ text: `This is [image #${image_id}] from the ${source}`,
202
+ },
203
+ {
204
+ inlineData: {
205
+ mimeType: mimeType,
206
+ data: cleanedImageData,
207
+ },
208
+ },
209
+ ],
210
+ });
211
+ }
212
+ return input;
213
+ }
214
+ async function convertToGeminiContents(model, messages) {
215
+ let contents = [];
195
216
  for (const msg of messages) {
196
217
  if (msg.type === 'function_call') {
197
218
  let args = {};
@@ -222,110 +243,63 @@ async function convertToGeminiContents(messages) {
222
243
  });
223
244
  }
224
245
  else if (msg.type === 'function_call_output') {
246
+ let textOutput = '';
225
247
  if (typeof msg.output === 'string') {
226
- const extracted = extractBase64Image(msg.output);
227
- if (extracted.found && extracted.image_id !== null) {
228
- const image_id = extracted.image_id;
229
- const originalImageData = extracted.images[image_id];
230
- const processedImageData = await resizeAndTruncateForGemini(originalImageData);
231
- const mimeType = getImageMimeType(processedImageData);
232
- const cleanedImageData = cleanBase64Data(processedImageData);
233
- const parts = [];
234
- parts.push({
235
- functionResponse: {
236
- name: msg.name,
237
- response: {
238
- content: extracted.replaceContent.trim() ||
239
- `[image #${image_id}]`,
240
- },
241
- },
242
- });
243
- parts.push({
244
- inlineData: {
245
- mimeType: mimeType,
246
- data: cleanedImageData,
247
- },
248
- });
249
- contents.push({
250
- role: 'user',
251
- parts: parts,
252
- });
253
- }
254
- else {
255
- contents.push({
256
- role: 'user',
257
- parts: [
258
- {
259
- functionResponse: {
260
- name: msg.name,
261
- response: { content: msg.output || '' },
262
- },
263
- },
264
- ],
265
- });
266
- }
248
+ textOutput = msg.output;
267
249
  }
268
250
  else {
269
- contents.push({
270
- role: 'user',
271
- parts: [
272
- {
273
- functionResponse: {
274
- name: msg.name,
275
- response: { content: msg.output || '' },
276
- },
277
- },
278
- ],
279
- });
251
+ textOutput = JSON.stringify(msg.output);
280
252
  }
253
+ const message = {
254
+ role: 'user',
255
+ parts: [
256
+ {
257
+ functionResponse: {
258
+ name: msg.name,
259
+ response: { content: textOutput || '' },
260
+ },
261
+ },
262
+ ],
263
+ };
264
+ contents = await appendMessageWithImage(model, contents, message, {
265
+ read: () => textOutput,
266
+ write: value => {
267
+ message.parts[0].functionResponse.response.content =
268
+ value;
269
+ return message;
270
+ },
271
+ }, addImagesToInput);
281
272
  }
282
273
  else {
283
- const role = msg.role === 'assistant' ? 'model' : 'user';
284
274
  let textContent = '';
285
275
  if (typeof msg.content === 'string') {
286
- const extracted = extractBase64Image(msg.content);
287
- if (extracted.found && extracted.image_id !== null) {
288
- const image_id = extracted.image_id;
289
- const originalImageData = extracted.images[image_id];
290
- const processedImageData = await resizeAndTruncateForGemini(originalImageData);
291
- const mimeType = getImageMimeType(processedImageData);
292
- const cleanedImageData = cleanBase64Data(processedImageData);
293
- const parts = [];
294
- if (extracted.replaceContent.trim()) {
295
- parts.push({
296
- text: extracted.replaceContent.trim(),
297
- });
298
- }
299
- parts.push({
300
- inlineData: {
301
- mimeType: mimeType,
302
- data: cleanedImageData,
303
- },
304
- });
305
- contents.push({
306
- role,
307
- parts: parts,
308
- });
309
- continue;
310
- }
311
- else {
312
- textContent = msg.content;
313
- }
276
+ textContent = msg.content;
314
277
  }
315
278
  else if (msg.content &&
316
279
  typeof msg.content === 'object' &&
317
280
  'text' in msg.content) {
318
281
  textContent = msg.content.text;
319
282
  }
320
- if (textContent && textContent.trim() !== '') {
321
- if (msg.type === 'thinking') {
322
- textContent = 'Thinking: ' + textContent;
323
- }
324
- contents.push({
325
- role,
326
- parts: [{ text: textContent.trim() }],
327
- });
283
+ else {
284
+ textContent = JSON.stringify(msg.content);
328
285
  }
286
+ const role = msg.role === 'assistant' ? 'model' : 'user';
287
+ const message = {
288
+ role,
289
+ parts: [
290
+ {
291
+ thought: msg.type === 'thinking',
292
+ text: textContent.trim(),
293
+ },
294
+ ],
295
+ };
296
+ contents = await appendMessageWithImage(model, contents, message, {
297
+ read: () => textContent,
298
+ write: value => {
299
+ message.parts[0].text = value;
300
+ return message;
301
+ },
302
+ }, addImagesToInput);
329
303
  }
330
304
  }
331
305
  return contents;
@@ -484,16 +458,15 @@ export class GeminiProvider {
484
458
  ? await getToolsFromAgent(agent)
485
459
  : [];
486
460
  const settings = agent?.modelSettings;
461
+ let messageId = uuidv4();
487
462
  let contentBuffer = '';
488
- const messageId = uuidv4();
463
+ let thoughtBuffer = '';
489
464
  let eventOrder = 0;
490
- const deltaBuffers = new Map();
491
- let hasYieldedToolStart = false;
492
465
  const shownGrounding = new Set();
493
466
  let requestId = undefined;
494
467
  const chunks = [];
495
468
  try {
496
- const contents = await convertToGeminiContents(messages);
469
+ const contents = await convertToGeminiContents(model, messages);
497
470
  if (contents.length === 0) {
498
471
  throw new Error('No valid content found in messages after conversion.');
499
472
  }
@@ -628,6 +601,9 @@ export class GeminiProvider {
628
601
  let usageMetadata;
629
602
  for await (const chunk of response) {
630
603
  chunks.push(chunk);
604
+ if (chunk.responseId) {
605
+ messageId = chunk.responseId;
606
+ }
631
607
  if (isPaused()) {
632
608
  console.log(`[Gemini] System paused during stream for model ${model}. Aborting processing.`);
633
609
  yield {
@@ -641,11 +617,10 @@ export class GeminiProvider {
641
617
  if (chunk.functionCalls && chunk.functionCalls.length > 0) {
642
618
  for (const fc of chunk.functionCalls) {
643
619
  if (fc && fc.name) {
644
- const callId = `call_${uuidv4()}`;
645
620
  yield {
646
621
  type: 'tool_start',
647
622
  tool_call: {
648
- id: callId,
623
+ id: fc.id || `call_${uuidv4()}`,
649
624
  type: 'function',
650
625
  function: {
651
626
  name: fc.name,
@@ -656,35 +631,41 @@ export class GeminiProvider {
656
631
  }
657
632
  }
658
633
  }
659
- if (chunk.text) {
660
- contentBuffer += chunk.text;
661
- for (const ev of bufferDelta(deltaBuffers, messageId, chunk.text, content => ({
662
- type: 'message_delta',
663
- content,
664
- message_id: messageId,
665
- order: eventOrder++,
666
- }))) {
667
- yield ev;
668
- }
669
- }
670
- const gChunks = chunk.candidates?.[0]?.groundingMetadata?.groundingChunks;
671
- if (Array.isArray(gChunks)) {
672
- const newChunks = gChunks.filter(c => c?.web?.uri && !shownGrounding.has(c.web.uri));
673
- if (newChunks.length) {
674
- newChunks.forEach(c => shownGrounding.add(c.web.uri));
675
- const formatted = formatGroundingChunks(newChunks);
676
- yield {
677
- type: 'message_delta',
678
- content: '\n\nSearch Results:\n' + formatted + '\n',
679
- message_id: messageId,
680
- order: eventOrder++,
681
- };
682
- contentBuffer +=
683
- '\n\nSearch Results:\n' + formatted + '\n';
684
- }
685
- }
686
- if (chunk.candidates?.[0]?.content?.parts) {
687
- for (const part of chunk.candidates[0].content.parts) {
634
+ for (const candidate of chunk.candidates) {
635
+ for (const part of candidate.content.parts) {
636
+ let text = '';
637
+ if (part.text) {
638
+ text += part.text;
639
+ }
640
+ if (part.executableCode) {
641
+ if (text) {
642
+ text += '\n\n';
643
+ }
644
+ text += part.executableCode;
645
+ }
646
+ if (part.videoMetadata) {
647
+ if (text) {
648
+ text += '\n\n';
649
+ }
650
+ text += JSON.stringify(part.videoMetadata);
651
+ }
652
+ if (text.length > 0) {
653
+ const ev = {
654
+ type: 'message_delta',
655
+ content: '',
656
+ message_id: messageId,
657
+ order: eventOrder++,
658
+ };
659
+ if (part.thought) {
660
+ thoughtBuffer += text;
661
+ ev.thinking_content = text;
662
+ }
663
+ else {
664
+ contentBuffer += text;
665
+ ev.content = text;
666
+ }
667
+ yield ev;
668
+ }
688
669
  if (part.inlineData?.data) {
689
670
  yield {
690
671
  type: 'file_complete',
@@ -696,19 +677,27 @@ export class GeminiProvider {
696
677
  };
697
678
  }
698
679
  }
680
+ const gChunks = candidate.groundingMetadata?.groundingChunks;
681
+ if (Array.isArray(gChunks)) {
682
+ const newChunks = gChunks.filter(c => c?.web?.uri && !shownGrounding.has(c.web.uri));
683
+ if (newChunks.length) {
684
+ newChunks.forEach(c => shownGrounding.add(c.web.uri));
685
+ const formatted = formatGroundingChunks(newChunks);
686
+ yield {
687
+ type: 'message_delta',
688
+ content: '\n\nSearch Results:\n' + formatted + '\n',
689
+ message_id: messageId,
690
+ order: eventOrder++,
691
+ };
692
+ contentBuffer +=
693
+ '\n\nSearch Results:\n' + formatted + '\n';
694
+ }
695
+ }
699
696
  }
700
697
  if (chunk.usageMetadata) {
701
698
  usageMetadata = chunk.usageMetadata;
702
699
  }
703
700
  }
704
- for (const ev of flushBufferedDeltas(deltaBuffers, (_id, content) => ({
705
- type: 'message_delta',
706
- content,
707
- message_id: messageId,
708
- order: eventOrder++,
709
- }))) {
710
- yield ev;
711
- }
712
701
  if (usageMetadata) {
713
702
  costTracker.addUsage({
714
703
  model,
@@ -723,7 +712,7 @@ export class GeminiProvider {
723
712
  });
724
713
  }
725
714
  else {
726
- console.error('No usage metadata found in the response. This may affect token tracking.');
715
+ console.error('[Gemini] No usage metadata found in the response. This may affect token tracking.');
727
716
  costTracker.addUsage({
728
717
  model,
729
718
  input_tokens: 0,
@@ -735,10 +724,11 @@ export class GeminiProvider {
735
724
  },
736
725
  });
737
726
  }
738
- if (!hasYieldedToolStart && contentBuffer) {
727
+ if (contentBuffer || thoughtBuffer) {
739
728
  yield {
740
729
  type: 'message_complete',
741
730
  content: contentBuffer,
731
+ thinking_content: thoughtBuffer,
742
732
  message_id: messageId,
743
733
  };
744
734
  }
@@ -763,10 +753,11 @@ export class GeminiProvider {
763
753
  type: 'error',
764
754
  error: `Gemini error ${model}: ${errorMessage}`,
765
755
  };
766
- if (!hasYieldedToolStart && contentBuffer) {
756
+ if (contentBuffer || thoughtBuffer) {
767
757
  yield {
768
758
  type: 'message_complete',
769
759
  content: contentBuffer,
760
+ thinking_content: thoughtBuffer,
770
761
  message_id: messageId,
771
762
  };
772
763
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../model_providers/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../model_providers/gemini.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../model_providers/openai.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,aAAa,EAGb,mBAAmB,EAEnB,aAAa,EACb,eAAe,EACf,mBAAmB,EACtB,MAAM,mBAAmB,CAAC;AAsY3B,qBAAa,cAAe,YAAW,aAAa;IAChD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAS3B,OAAO,KAAK,MAAM,GAYjB;IASK,eAAe,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACpD,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IA0D3B,WAAW,CACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;IAwLpB,OAAO,CAAC,YAAY;IAmBb,oBAAoB,CACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,GACvB,cAAc,CAAC,mBAAmB,CAAC;CA00BzC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../model_providers/openai.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,aAAa,EAGb,mBAAmB,EAEnB,aAAa,EACb,eAAe,EACf,mBAAmB,EACtB,MAAM,mBAAmB,CAAC;AAsY3B,qBAAa,cAAe,YAAW,aAAa;IAChD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAS3B,OAAO,KAAK,MAAM,GAYjB;IASK,eAAe,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACpD,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;IA0D3B,WAAW,CACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC;IAwLpB,OAAO,CAAC,YAAY;IAmBb,oBAAoB,CACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,GACvB,cAAc,CAAC,mBAAmB,CAAC;CAkxBzC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -2,7 +2,7 @@ import OpenAI, { toFile } from 'openai';
2
2
  import { costTracker } from '../index.js';
3
3
  import { log_llm_request, log_llm_response, log_llm_error, } from '../utils/llm_logger.js';
4
4
  import { isPaused } from '../utils/communication.js';
5
- import { extractBase64Image, resizeAndSplitForOpenAI, } from '../utils/image_utils.js';
5
+ import { appendMessageWithImage, resizeAndSplitForOpenAI, } from '../utils/image_utils.js';
6
6
  import { bufferDelta, flushBufferedDeltas, } from '../utils/delta_buffer.js';
7
7
  const BROWSER_WIDTH = 1024;
8
8
  const BROWSER_HEIGHT = 1536;
@@ -501,22 +501,7 @@ export class OpenAIProvider {
501
501
  }
502
502
  if (message.type === 'function_call_output') {
503
503
  const { name, id, ...messageToAdd } = message;
504
- if (typeof message.output === 'string') {
505
- const extracted = extractBase64Image(message.output);
506
- if (extracted.found) {
507
- input.push({
508
- ...messageToAdd,
509
- output: extracted.replaceContent,
510
- });
511
- input = await addImagesToInput(input, extracted.images, `function call output of ${message.name}`);
512
- }
513
- else {
514
- input.push(messageToAdd);
515
- }
516
- }
517
- else {
518
- input.push(messageToAdd);
519
- }
504
+ input = await appendMessageWithImage(model, input, messageToAdd, 'output', addImagesToInput, `function call output of ${message.name}`);
520
505
  continue;
521
506
  }
522
507
  if ((message.type ?? 'message') === 'message' &&
@@ -529,37 +514,7 @@ export class OpenAIProvider {
529
514
  message = rest;
530
515
  console.log(`[OpenAI] Removed message ID: ${id} model: ${model} originalModel: ${originalModel}`);
531
516
  }
532
- if (typeof message.content === 'string') {
533
- const extracted = extractBase64Image(message.content);
534
- if (extracted.found) {
535
- input.push({
536
- ...message,
537
- type: 'message',
538
- content: extracted.replaceContent,
539
- });
540
- input = await addImagesToInput(input, extracted.images, `${message.role} message`);
541
- }
542
- else {
543
- if (message.type === undefined &&
544
- 'role' in message &&
545
- 'content' in message) {
546
- input.push({ ...message, type: 'message' });
547
- }
548
- else {
549
- input.push(message);
550
- }
551
- }
552
- }
553
- else {
554
- if (message.type === undefined &&
555
- 'role' in message &&
556
- 'content' in message) {
557
- input.push({ ...message, type: 'message' });
558
- }
559
- else {
560
- input.push(message);
561
- }
562
- }
517
+ input = await appendMessageWithImage(model, input, { ...message, type: 'message' }, 'content', addImagesToInput);
563
518
  continue;
564
519
  }
565
520
  }
@@ -712,7 +667,7 @@ export class OpenAIProvider {
712
667
  type: 'message_complete',
713
668
  content: '',
714
669
  message_id: event.item.id + '-0',
715
- thinking_content: '{empty}',
670
+ thinking_content: '',
716
671
  };
717
672
  }
718
673
  }