@codehz/ai 0.1.6 → 0.1.7

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codehz/ai",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "module": "dist/index.mjs",
6
6
  "exports": {
@@ -273,6 +273,7 @@ export class MessagesAdapter extends AdapterBase {
273
273
  protected buildRequest(request: NormalizedRequest): MessagesAPIRequest {
274
274
  const messages: MessagesAPIMessage[] = [];
275
275
  let systemPrompt: string | undefined;
276
+ let pendingToolResultMessage: MessagesAPIMessage | undefined;
276
277
 
277
278
  // 处理 instructions → system prompt
278
279
  if (request.instructions) {
@@ -281,6 +282,10 @@ export class MessagesAdapter extends AdapterBase {
281
282
 
282
283
  // 处理 input items
283
284
  for (const item of request.input) {
285
+ if (item.type !== "tool_result") {
286
+ pendingToolResultMessage = undefined;
287
+ }
288
+
284
289
  switch (item.type) {
285
290
  case "message": {
286
291
  const role = item.role === "user" ? "user" : "assistant";
@@ -320,7 +325,12 @@ export class MessagesAdapter extends AdapterBase {
320
325
  content,
321
326
  is_error: item.outcome === "error",
322
327
  };
323
- messages.push({ role: "user", content: [block] });
328
+ if (pendingToolResultMessage && typeof pendingToolResultMessage.content !== "string") {
329
+ pendingToolResultMessage.content.push(block);
330
+ } else {
331
+ pendingToolResultMessage = { role: "user", content: [block] };
332
+ messages.push(pendingToolResultMessage);
333
+ }
324
334
  break;
325
335
  }
326
336
  case "reasoning": {