@just-every/ensemble 0.2.17 → 0.2.19

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 (42) hide show
  1. package/dist/core/ensemble_request.d.ts.map +1 -1
  2. package/dist/core/ensemble_request.js +7 -5
  3. package/dist/core/ensemble_request.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/model_providers/claude.d.ts +0 -2
  9. package/dist/model_providers/claude.d.ts.map +1 -1
  10. package/dist/model_providers/claude.js +38 -253
  11. package/dist/model_providers/claude.js.map +1 -1
  12. package/dist/model_providers/gemini.d.ts +2 -0
  13. package/dist/model_providers/gemini.d.ts.map +1 -1
  14. package/dist/model_providers/gemini.js +138 -150
  15. package/dist/model_providers/gemini.js.map +1 -1
  16. package/dist/model_providers/openai.d.ts.map +1 -1
  17. package/dist/model_providers/openai.js +10 -58
  18. package/dist/model_providers/openai.js.map +1 -1
  19. package/dist/model_providers/openai_chat.d.ts +1 -0
  20. package/dist/model_providers/openai_chat.d.ts.map +1 -1
  21. package/dist/model_providers/openai_chat.js +72 -133
  22. package/dist/model_providers/openai_chat.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/dist/types/types.d.ts +1 -0
  25. package/dist/types/types.d.ts.map +1 -1
  26. package/dist/utils/image_to_text.d.ts +1 -1
  27. package/dist/utils/image_to_text.d.ts.map +1 -1
  28. package/dist/utils/image_to_text.js +19 -46
  29. package/dist/utils/image_to_text.js.map +1 -1
  30. package/dist/utils/image_utils.d.ts +4 -1
  31. package/dist/utils/image_utils.d.ts.map +1 -1
  32. package/dist/utils/image_utils.js +33 -0
  33. package/dist/utils/image_utils.js.map +1 -1
  34. package/dist/utils/pause_controller.d.ts +14 -0
  35. package/dist/utils/pause_controller.d.ts.map +1 -0
  36. package/dist/utils/pause_controller.js +49 -0
  37. package/dist/utils/pause_controller.js.map +1 -0
  38. package/package.json +1 -1
  39. package/dist/utils/communication.d.ts +0 -2
  40. package/dist/utils/communication.d.ts.map +0 -1
  41. package/dist/utils/communication.js +0 -5
  42. package/dist/utils/communication.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ensemble_request.d.ts","sourceRoot":"","sources":["../../core/ensemble_request.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,mBAAmB,EACnB,aAAa,EAGb,eAAe,EAQlB,MAAM,mBAAmB,CAAC;AAe3B,wBAAuB,eAAe,CAClC,QAAQ,EAAE,aAAa,EACvB,KAAK,GAAE,eAAoB,GAC5B,cAAc,CAAC,mBAAmB,CAAC,CAkIrC;AA8TD,wBAAgB,kBAAkB,CAC9B,WAAW,EAAE,aAAa,EAC1B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACnB,IAAI,CAGN"}
1
+ {"version":3,"file":"ensemble_request.d.ts","sourceRoot":"","sources":["../../core/ensemble_request.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,mBAAmB,EACnB,aAAa,EAGb,eAAe,EAQlB,MAAM,mBAAmB,CAAC;AAgB3B,wBAAuB,eAAe,CAClC,QAAQ,EAAE,aAAa,EACvB,KAAK,GAAE,eAAoB,GAC5B,cAAc,CAAC,mBAAmB,CAAC,CAkIrC;AAkUD,wBAAgB,kBAAkB,CAC9B,WAAW,EAAE,aAAa,EAC1B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACnB,IAAI,CAGN"}
@@ -3,6 +3,7 @@ import { MessageHistory } from '../utils/message_history.js';
3
3
  import { handleToolCall } from '../utils/tool_execution_manager.js';
4
4
  import { processToolResult } from '../utils/tool_result_processor.js';
5
5
  import { verifyOutput } from '../utils/verification.js';
6
+ import { waitWhilePaused } from '../utils/pause_controller.js';
6
7
  const MAX_ERROR_ATTEMPTS = 5;
7
8
  export async function* ensembleRequest(messages, agent = {}) {
8
9
  const conversationHistory = agent?.historyThread || messages;
@@ -99,6 +100,7 @@ async function* executeRound(model, agent, history, currentToolCalls, maxToolCal
99
100
  if (agent.onRequest) {
100
101
  [agent, messages] = await agent.onRequest(agent, messages);
101
102
  }
103
+ await waitWhilePaused(100, agent.abortSignal);
102
104
  const provider = getModelProvider(model);
103
105
  const stream = provider.createResponseStream(messages, model, agent);
104
106
  const toolPromises = [];
@@ -110,14 +112,12 @@ async function* executeRound(model, agent, history, currentToolCalls, maxToolCal
110
112
  switch (event.type) {
111
113
  case 'message_complete': {
112
114
  const messageEvent = event;
113
- if (messageEvent.thinking_content) {
115
+ if (messageEvent.thinking_content ||
116
+ (!messageEvent.content && messageEvent.message_id)) {
114
117
  const thinkingMessage = {
115
118
  type: 'thinking',
116
119
  role: 'assistant',
117
- content: messageEvent.thinking_content &&
118
- messageEvent.thinking_content !== '{empty}'
119
- ? messageEvent.thinking_content
120
- : '',
120
+ content: messageEvent.thinking_content || '',
121
121
  signature: messageEvent.thinking_signature || '',
122
122
  thinking_id: messageEvent.message_id || '',
123
123
  status: 'completed',
@@ -170,6 +170,7 @@ async function* executeRound(model, agent, history, currentToolCalls, maxToolCal
170
170
  name: toolCall.function.name,
171
171
  arguments: toolCall.function.arguments,
172
172
  model,
173
+ status: 'completed',
173
174
  };
174
175
  toolPromises.push(processToolCall(toolCall, agent));
175
176
  history.add(functionCall);
@@ -203,6 +204,7 @@ async function* executeRound(model, agent, history, currentToolCalls, maxToolCal
203
204
  name: toolResult.toolCall.function.name,
204
205
  output: toolResult.output + (toolResult.error || ''),
205
206
  model,
207
+ status: 'completed',
206
208
  };
207
209
  history.add(functionOutput);
208
210
  yield {
@@ -1 +1 @@
1
- {"version":3,"file":"ensemble_request.js","sourceRoot":"","sources":["../../core/ensemble_request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensemble_request.js","sourceRoot":"","sources":["../../core/ensemble_request.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from './utils/quota_tracker.js';
9
9
  export * from './utils/image_utils.js';
10
10
  export * from './utils/llm_logger.js';
11
11
  export { createToolFunction } from './utils/create_tool_function.js';
12
+ export { getPauseController, isPaused, pause, resume, waitWhilePaused, type PauseController } from './utils/pause_controller.js';
12
13
  export { runningToolTracker, RunningToolTracker, RunningTool, ToolCompletionEvent, } from './utils/running_tool_tracker.js';
13
14
  export { sequentialQueue, SequentialQueue, runSequential, } from './utils/sequential_queue.js';
14
15
  export { executeToolWithLifecycle, handleToolCall, timeoutPromise, agentHasStatusTracking, prepareToolArguments, } from './utils/tool_execution_manager.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GAChB,MAAM,qCAAqC,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,GACb,MAAM,sBAAsB,CAAC;AAG9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,eAAe,EACf,eAAe,EACf,aAAa,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,YAAY,EACZ,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EACH,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,cAAc,GACjB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,WAAW,+CAAe,CAAC;AACxC,eAAO,MAAM,YAAY,iDAAgB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GAChB,MAAM,qCAAqC,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,GACb,MAAM,sBAAsB,CAAC;AAG9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EACH,kBAAkB,EAClB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,eAAe,EACf,KAAK,eAAe,EACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,eAAe,EACf,eAAe,EACf,aAAa,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,YAAY,EACZ,kBAAkB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EACH,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,cAAc,GACjB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,WAAW,+CAAe,CAAC;AACxC,eAAO,MAAM,YAAY,iDAAgB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ export * from './utils/quota_tracker.js';
9
9
  export * from './utils/image_utils.js';
10
10
  export * from './utils/llm_logger.js';
11
11
  export { createToolFunction } from './utils/create_tool_function.js';
12
+ export { getPauseController, isPaused, pause, resume, waitWhilePaused } from './utils/pause_controller.js';
12
13
  export { runningToolTracker, RunningToolTracker, } from './utils/running_tool_tracker.js';
13
14
  export { sequentialQueue, SequentialQueue, runSequential, } from './utils/sequential_queue.js';
14
15
  export { executeToolWithLifecycle, handleToolCall, timeoutPromise, agentHasStatusTracking, prepareToolArguments, } from './utils/tool_execution_manager.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GAErB,MAAM,qCAAqC,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,GAMZ,MAAM,sBAAsB,CAAC;AAG9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EACH,kBAAkB,EAClB,kBAAkB,GAGrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,eAAe,EACf,eAAe,EACf,aAAa,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,YAAY,GAEf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EACH,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,cAAc,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACH,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GAErB,MAAM,qCAAqC,CAAC;AAG7C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACH,cAAc,EACd,aAAa,EACb,SAAS,GAMZ,MAAM,sBAAsB,CAAC;AAG9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EACH,kBAAkB,EAClB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,eAAe,EAElB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACH,kBAAkB,EAClB,kBAAkB,GAGrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,eAAe,EACf,eAAe,EACf,aAAa,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACH,YAAY,GAEf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,EACH,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,cAAc,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
@@ -4,9 +4,7 @@ export declare class ClaudeProvider implements ModelProvider {
4
4
  private apiKey?;
5
5
  constructor(apiKey?: string);
6
6
  private get client();
7
- private preprocessMessagesForImageSupport;
8
7
  private prepareClaudeMessages;
9
- private isMessageWithStringContent;
10
8
  createResponseStream(messages: ResponseInput, model: string, agent: AgentDefinition): AsyncGenerator<ProviderStreamEvent>;
11
9
  }
12
10
  export declare const claudeProvider: ClaudeProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../model_providers/claude.ts"],"names":[],"mappings":"AAsFA,OAAO,EACH,aAAa,EAGb,mBAAmB,EAEnB,aAAa,EAKb,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAuV3B,qBAAa,cAAe,YAAW,aAAa;IAChD,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAQ3B,OAAO,KAAK,MAAM,GAYjB;YAUa,iCAAiC;YA2IjC,qBAAqB;IAwKnC,OAAO,CAAC,0BAA0B;IAgC3B,oBAAoB,CACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,GACvB,cAAc,CAAC,mBAAmB,CAAC;CAsnBzC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../model_providers/claude.ts"],"names":[],"mappings":"AAsFA,OAAO,EACH,aAAa,EAGb,mBAAmB,EAEnB,aAAa,EAEb,eAAe,EAClB,MAAM,mBAAmB,CAAC;AAoS3B,qBAAa,cAAe,YAAW,aAAa;IAChD,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM;IAQ3B,OAAO,KAAK,MAAM,GAYjB;YASa,qBAAqB;IAmE5B,oBAAoB,CACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,GACvB,cAAc,CAAC,mBAAmB,CAAC;CA0nBzC;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -42,9 +42,8 @@ function generateFootnotes(tracker) {
42
42
  }
43
43
  import { costTracker } from '../index.js';
44
44
  import { log_llm_error, log_llm_request, log_llm_response, } from '../utils/llm_logger.js';
45
- import { isPaused } from '../utils/communication.js';
46
- import { extractBase64Image, resizeAndTruncateForClaude, } from '../utils/image_utils.js';
47
- import { convertImageToTextIfNeeded } from '../utils/image_to_text.js';
45
+ import { isPaused } from '../utils/pause_controller.js';
46
+ import { appendMessageWithImage, resizeAndTruncateForClaude, } from '../utils/image_utils.js';
48
47
  import { bufferDelta, flushBufferedDeltas, } from '../utils/delta_buffer.js';
49
48
  async function resolveAsyncEnums(params) {
50
49
  if (!params || typeof params !== 'object') {
@@ -110,7 +109,23 @@ function getImageMediaType(imageData) {
110
109
  function cleanBase64Data(imageData) {
111
110
  return imageData.replace(/^data:image\/[a-z]+;base64,/, '');
112
111
  }
113
- async function convertToClaudeMessage(role, content, msg, result) {
112
+ async function addImagesToInput(input, images) {
113
+ for (const [, imageData] of Object.entries(images)) {
114
+ const processedImageData = await resizeAndTruncateForClaude(imageData);
115
+ const mediaType = getImageMediaType(processedImageData);
116
+ const cleanedImageData = cleanBase64Data(processedImageData);
117
+ input.push({
118
+ type: 'image',
119
+ source: {
120
+ type: 'base64',
121
+ media_type: mediaType,
122
+ data: cleanedImageData,
123
+ },
124
+ });
125
+ }
126
+ return input;
127
+ }
128
+ async function convertToClaudeMessage(model, role, content, msg, result) {
114
129
  if (!msg)
115
130
  return null;
116
131
  if (msg.type === 'function_call') {
@@ -153,52 +168,15 @@ async function convertToClaudeMessage(role, content, msg, result) {
153
168
  return { role: 'assistant', content: [toolUseBlock] };
154
169
  }
155
170
  else if (msg.type === 'function_call_output') {
156
- if (typeof msg.output === 'string') {
157
- const extracted = extractBase64Image(msg.output);
158
- if (extracted.found && extracted.image_id !== null) {
159
- const image_id = extracted.image_id;
160
- try {
161
- const originalImageData = extracted.images[image_id];
162
- const processedImageData = await resizeAndTruncateForClaude(originalImageData);
163
- const mediaType = getImageMediaType(processedImageData);
164
- const cleanedImageData = cleanBase64Data(processedImageData);
165
- const toolResultBlock = {
166
- type: 'tool_result',
167
- tool_use_id: msg.call_id,
168
- content: extracted.replaceContent.trim() || '',
169
- ...(msg.status === 'incomplete'
170
- ? { is_error: true }
171
- : {}),
172
- };
173
- const contentBlocks = [
174
- toolResultBlock,
175
- {
176
- type: 'image',
177
- source: {
178
- type: 'base64',
179
- media_type: mediaType,
180
- data: cleanedImageData,
181
- },
182
- },
183
- {
184
- type: 'text',
185
- text: `This is [image #${image_id}] from the function call output of ${msg.name}`,
186
- },
187
- ];
188
- return { role: 'user', content: contentBlocks };
189
- }
190
- catch (error) {
191
- console.error('Error processing image in function call output:', error);
192
- }
193
- }
194
- }
195
171
  const toolResultBlock = {
196
172
  type: 'tool_result',
197
173
  tool_use_id: msg.call_id,
198
174
  content: msg.output || '',
199
175
  ...(msg.status === 'incomplete' ? { is_error: true } : {}),
200
176
  };
201
- return { role: 'user', content: [toolResultBlock] };
177
+ let contentBlocks = [];
178
+ contentBlocks = await appendMessageWithImage(model, contentBlocks, toolResultBlock, 'content', addImagesToInput);
179
+ return { role: 'user', content: contentBlocks };
202
180
  }
203
181
  else if (msg.type === 'thinking') {
204
182
  if (!content) {
@@ -222,49 +200,19 @@ async function convertToClaudeMessage(role, content, msg, result) {
222
200
  if (!content) {
223
201
  return null;
224
202
  }
225
- let messageRole = role === 'assistant'
203
+ const messageRole = role === 'assistant'
226
204
  ? 'assistant'
227
205
  : (role === 'system' || role === 'developer') && !result?.length
228
206
  ? 'system'
229
207
  : 'user';
230
- if (messageRole !== 'system') {
231
- const extracted = extractBase64Image(content);
232
- if (extracted.found && extracted.image_id !== null) {
233
- messageRole = 'user';
234
- try {
235
- const image_id = extracted.image_id;
236
- const originalImageData = extracted.images[image_id];
237
- const processedImageData = await resizeAndTruncateForClaude(originalImageData);
238
- const mediaType = getImageMediaType(processedImageData);
239
- const cleanedImageData = cleanBase64Data(processedImageData);
240
- const contentBlocks = [];
241
- contentBlocks.push({
242
- type: 'image',
243
- source: {
244
- type: 'base64',
245
- media_type: mediaType,
246
- data: cleanedImageData,
247
- },
248
- });
249
- if (extracted.replaceContent.trim()) {
250
- contentBlocks.push({
251
- type: 'text',
252
- text: extracted.replaceContent.trim(),
253
- });
254
- }
255
- return {
256
- role: messageRole,
257
- content: contentBlocks,
258
- };
259
- }
260
- catch (error) {
261
- console.error('Error processing image in message:', error);
262
- }
263
- }
264
- }
208
+ let contentBlocks = [];
209
+ contentBlocks = await appendMessageWithImage(model, contentBlocks, {
210
+ type: 'text',
211
+ text: content,
212
+ }, 'text', addImagesToInput);
265
213
  return {
266
214
  role: messageRole,
267
- content: content.trim(),
215
+ content: contentBlocks,
268
216
  };
269
217
  }
270
218
  }
@@ -285,154 +233,10 @@ export class ClaudeProvider {
285
233
  }
286
234
  return this._client;
287
235
  }
288
- async preprocessMessagesForImageSupport(messages, modelId) {
289
- const processedMessages = [...messages];
290
- for (let i = 0; i < processedMessages.length; i++) {
291
- const msg = processedMessages[i];
292
- if (!this.isMessageWithStringContent(msg)) {
293
- continue;
294
- }
295
- if (typeof msg.content === 'string') {
296
- const extracted = extractBase64Image(msg.content);
297
- if (extracted.found && extracted.image_id !== null) {
298
- try {
299
- const image_id = extracted.image_id;
300
- const imageData = extracted.images[image_id];
301
- const processedImageData = await convertImageToTextIfNeeded(imageData, modelId);
302
- if (!processedImageData.startsWith('data:image/')) {
303
- const newContent = extracted.replaceContent.trim()
304
- ? extracted.replaceContent.trim() +
305
- ' ' +
306
- processedImageData
307
- : processedImageData;
308
- processedMessages[i] = {
309
- ...msg,
310
- content: newContent,
311
- };
312
- console.log(`Converted image to text description for model ${modelId}`);
313
- }
314
- }
315
- catch (error) {
316
- console.error('Error converting image to text:', error);
317
- }
318
- }
319
- }
320
- else if (Array.isArray(msg.content)) {
321
- let hasChanges = false;
322
- const newContentItems = [...msg.content];
323
- for (let j = 0; j < newContentItems.length; j++) {
324
- const item = newContentItems[j];
325
- if (item.type === 'input_text' &&
326
- typeof item.text === 'string') {
327
- const extracted = extractBase64Image(item.text);
328
- if (extracted.found && extracted.image_id !== null) {
329
- try {
330
- const image_id = extracted.image_id;
331
- const imageData = extracted.images[image_id];
332
- const processedImageData = await convertImageToTextIfNeeded(imageData, modelId);
333
- if (!processedImageData.startsWith('data:image/')) {
334
- const newText = extracted.replaceContent.trim()
335
- ? extracted.replaceContent.trim() +
336
- ' ' +
337
- processedImageData
338
- : processedImageData;
339
- newContentItems[j] = {
340
- ...item,
341
- text: newText,
342
- };
343
- hasChanges = true;
344
- console.log(`Converted image to text description in array content for model ${modelId}`);
345
- }
346
- }
347
- catch (error) {
348
- console.error('Error converting image to text in array content:', error);
349
- }
350
- }
351
- }
352
- }
353
- if (hasChanges) {
354
- processedMessages[i] = {
355
- ...msg,
356
- content: newContentItems,
357
- };
358
- }
359
- }
360
- }
361
- return processedMessages;
362
- }
363
236
  async prepareClaudeMessages(messages, modelId) {
364
237
  const result = [];
365
238
  const seenToolUseIds = new Set();
366
- for (const originalMsg of messages) {
367
- let msg = originalMsg;
368
- if (this.isMessageWithStringContent(msg)) {
369
- if (typeof msg.content === 'string') {
370
- const extracted = extractBase64Image(msg.content);
371
- if (extracted.found && extracted.image_id !== null) {
372
- try {
373
- const image_id = extracted.image_id;
374
- const imageData = extracted.images[image_id];
375
- const processedImageData = await convertImageToTextIfNeeded(imageData, modelId);
376
- if (processedImageData &&
377
- !processedImageData.startsWith('data:image/')) {
378
- const newContent = extracted.replaceContent.trim()
379
- ? extracted.replaceContent.trim() +
380
- ' ' +
381
- processedImageData
382
- : processedImageData;
383
- msg = {
384
- ...msg,
385
- content: newContent,
386
- };
387
- }
388
- }
389
- catch (error) {
390
- console.error('Error converting image to text:', error);
391
- }
392
- }
393
- }
394
- else if (Array.isArray(msg.content)) {
395
- let hasChanges = false;
396
- const newContentItems = [...msg.content];
397
- for (let j = 0; j < newContentItems.length; j++) {
398
- const item = newContentItems[j];
399
- if (item.type === 'input_text' &&
400
- typeof item.text === 'string') {
401
- const extracted = extractBase64Image(item.text);
402
- if (extracted.found &&
403
- extracted.image_id !== null) {
404
- try {
405
- const image_id = extracted.image_id;
406
- const imageData = extracted.images[image_id];
407
- const processedImageData = await convertImageToTextIfNeeded(imageData, modelId);
408
- if (processedImageData &&
409
- !processedImageData.startsWith('data:image/')) {
410
- const newText = extracted.replaceContent.trim()
411
- ? extracted.replaceContent.trim() +
412
- ' ' +
413
- processedImageData
414
- : processedImageData;
415
- newContentItems[j] = {
416
- ...item,
417
- text: newText,
418
- };
419
- hasChanges = true;
420
- }
421
- }
422
- catch (error) {
423
- console.error('Error converting image to text in array content:', error);
424
- }
425
- }
426
- }
427
- }
428
- if (hasChanges) {
429
- msg = {
430
- ...msg,
431
- content: newContentItems,
432
- };
433
- }
434
- }
435
- }
239
+ for (const msg of messages) {
436
240
  const role = 'role' in msg && msg.role !== 'developer' ? msg.role : 'system';
437
241
  let content = '';
438
242
  if ('content' in msg) {
@@ -444,9 +248,10 @@ export class ClaudeProvider {
444
248
  content = msg.content.text;
445
249
  }
446
250
  }
447
- const structuredMsg = await convertToClaudeMessage(role, content, msg, result);
251
+ const structuredMsg = await convertToClaudeMessage(modelId, role, content, msg, result);
448
252
  if (structuredMsg) {
449
- if (structuredMsg.role === 'assistant' && Array.isArray(structuredMsg.content)) {
253
+ if (structuredMsg.role === 'assistant' &&
254
+ Array.isArray(structuredMsg.content)) {
450
255
  let hasDuplicateToolUse = false;
451
256
  for (const contentBlock of structuredMsg.content) {
452
257
  if (contentBlock.type === 'tool_use') {
@@ -471,22 +276,6 @@ export class ClaudeProvider {
471
276
  }
472
277
  return result;
473
278
  }
474
- isMessageWithStringContent(msg) {
475
- if (!('content' in msg))
476
- return false;
477
- if (!msg.content)
478
- return false;
479
- if (msg.type &&
480
- ['function_call', 'function_call_output'].includes(msg.type))
481
- return false;
482
- if (typeof msg.content === 'string') {
483
- return true;
484
- }
485
- else if (Array.isArray(msg.content)) {
486
- return msg.content.some(item => item.type === 'input_text' && typeof item.text === 'string');
487
- }
488
- return false;
489
- }
490
279
  async *createResponseStream(messages, model, agent) {
491
280
  let totalInputTokens = 0;
492
281
  let totalOutputTokens = 0;
@@ -580,21 +369,17 @@ export class ClaudeProvider {
580
369
  let deltaPosition = 0;
581
370
  const deltaBuffers = new Map();
582
371
  const citationTracker = createCitationTracker();
372
+ const { waitWhilePaused } = await import('../utils/pause_controller.js');
373
+ await waitWhilePaused(100, agent.abortSignal);
583
374
  const stream = await this.client.messages.create(requestParams);
584
375
  const events = [];
585
376
  try {
586
377
  for await (const event of stream) {
587
378
  events.push(event);
588
379
  if (isPaused()) {
589
- console.log(`[Claude] System paused during stream for model ${model}. Aborting processing.`);
590
- yield {
591
- type: 'message_delta',
592
- content: '\n⏸️ Stream paused by user.',
593
- message_id: messageId,
594
- order: 999,
595
- };
596
- streamCompletedSuccessfully = false;
597
- break;
380
+ console.log(`[Claude] System paused during stream for model ${model}. Waiting...`);
381
+ await waitWhilePaused(100, agent.abortSignal);
382
+ console.log(`[Claude] System resumed, continuing stream for model ${model}`);
598
383
  }
599
384
  if (event.type === 'message_start' &&
600
385
  event.message?.usage) {