@agentscope-ai/agentscope 0.0.2 → 0.0.4

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 (90) hide show
  1. package/LICENSE +202 -0
  2. package/dist/agent/index.d.mts +10 -10
  3. package/dist/agent/index.d.ts +10 -10
  4. package/dist/agent/index.js +104 -93
  5. package/dist/agent/index.js.map +1 -1
  6. package/dist/agent/index.mjs +104 -93
  7. package/dist/agent/index.mjs.map +1 -1
  8. package/dist/{base-BOx3UzOl.d.mts → base-1YVBgB4n.d.mts} +2 -2
  9. package/dist/{base-DYlBMCy_.d.mts → base-B_MQMHWr.d.mts} +3 -3
  10. package/dist/{base-Cwi4bjze.d.ts → base-BherSLRs.d.ts} +3 -3
  11. package/dist/{base-NX-knWOv.d.ts → base-CY4DMBH1.d.ts} +1 -1
  12. package/dist/{base-BoIps2RL.d.ts → base-ChWjyzPL.d.ts} +2 -2
  13. package/dist/{base-C7jwyH4Z.d.mts → base-ClilytRZ.d.mts} +1 -1
  14. package/dist/{block-VsnHrllL.d.mts → block-B72uPF1H.d.mts} +7 -5
  15. package/dist/{block-VsnHrllL.d.ts → block-B72uPF1H.d.ts} +7 -5
  16. package/dist/event/index.d.mts +105 -89
  17. package/dist/event/index.d.ts +105 -89
  18. package/dist/event/index.js +8 -8
  19. package/dist/event/index.js.map +1 -1
  20. package/dist/event/index.mjs +8 -8
  21. package/dist/event/index.mjs.map +1 -1
  22. package/dist/formatter/index.d.mts +4 -3
  23. package/dist/formatter/index.d.ts +4 -3
  24. package/dist/formatter/index.js +17 -17
  25. package/dist/formatter/index.js.map +1 -1
  26. package/dist/formatter/index.mjs +17 -17
  27. package/dist/formatter/index.mjs.map +1 -1
  28. package/dist/{index-BcatlwXQ.d.ts → index-BNfyKbQN.d.ts} +1 -1
  29. package/dist/{index-BTJDlKvQ.d.mts → index-UQCwdfet.d.mts} +1 -1
  30. package/dist/mcp/index.d.mts +2 -2
  31. package/dist/mcp/index.d.ts +2 -2
  32. package/dist/mcp/index.js +1 -1
  33. package/dist/mcp/index.js.map +1 -1
  34. package/dist/mcp/index.mjs +1 -1
  35. package/dist/mcp/index.mjs.map +1 -1
  36. package/dist/message/index.d.mts +3 -2
  37. package/dist/message/index.d.ts +3 -2
  38. package/dist/message/index.js +204 -5
  39. package/dist/message/index.js.map +1 -1
  40. package/dist/message/index.mjs +200 -5
  41. package/dist/message/index.mjs.map +1 -1
  42. package/dist/message-CPZd0NIc.d.ts +133 -0
  43. package/dist/message-DgpfAaHK.d.mts +133 -0
  44. package/dist/model/index.d.mts +6 -5
  45. package/dist/model/index.d.ts +6 -5
  46. package/dist/model/index.js +39 -28
  47. package/dist/model/index.js.map +1 -1
  48. package/dist/model/index.mjs +39 -28
  49. package/dist/model/index.mjs.map +1 -1
  50. package/dist/storage/index.d.mts +4 -3
  51. package/dist/storage/index.d.ts +4 -3
  52. package/dist/storage/index.js +4 -4
  53. package/dist/storage/index.js.map +1 -1
  54. package/dist/storage/index.mjs +4 -4
  55. package/dist/storage/index.mjs.map +1 -1
  56. package/dist/tool/index.d.mts +4 -4
  57. package/dist/tool/index.d.ts +4 -4
  58. package/dist/{toolkit-CEpulFi0.d.ts → toolkit-DeOlul5Y.d.ts} +2 -2
  59. package/dist/{toolkit-CGEZSZPa.d.mts → toolkit-jwe7NmVJ.d.mts} +2 -2
  60. package/package.json +87 -87
  61. package/src/agent/agent.test.ts +104 -71
  62. package/src/agent/agent.ts +112 -104
  63. package/src/agent/test-compression.ts +1 -1
  64. package/src/event/index.ts +96 -98
  65. package/src/formatter/base.ts +3 -3
  66. package/src/formatter/dashscope-chat-formatter.test.ts +11 -8
  67. package/src/formatter/dashscope-chat-formatter.ts +3 -3
  68. package/src/formatter/openai-chat-formatter.test.ts +13 -5
  69. package/src/formatter/openai-chat-formatter.ts +6 -6
  70. package/src/mcp/base.ts +1 -1
  71. package/src/mcp/http.test.ts +2 -0
  72. package/src/mcp/stdio.test.ts +1 -0
  73. package/src/message/append-event.test.ts +783 -0
  74. package/src/message/block.ts +8 -4
  75. package/src/message/index.ts +12 -1
  76. package/src/message/message.test.ts +3 -1
  77. package/src/message/message.ts +310 -47
  78. package/src/model/dashscope-model.test.ts +4 -0
  79. package/src/model/dashscope-model.ts +3 -0
  80. package/src/model/deepseek-model.test.ts +2 -0
  81. package/src/model/deepseek-model.ts +3 -0
  82. package/src/model/ollama-model.test.ts +1 -0
  83. package/src/model/ollama-model.ts +2 -0
  84. package/src/model/openai-model.ts +3 -0
  85. package/src/permission/index.ts +13 -0
  86. package/src/storage/file-system.test.ts +4 -3
  87. package/src/storage/file-system.ts +4 -4
  88. package/src/tool/toolkit.test.ts +12 -0
  89. package/dist/message-CkN21KaY.d.mts +0 -99
  90. package/dist/message-CzLeTlua.d.ts +0 -99
@@ -5,16 +5,16 @@ function createMsg({
5
5
  role,
6
6
  metadata = {},
7
7
  id = crypto.randomUUID(),
8
- timestamp = (/* @__PURE__ */ new Date()).toISOString(),
8
+ created_at = (/* @__PURE__ */ new Date()).toISOString(),
9
+ finished_at,
9
10
  usage
10
11
  }) {
11
- return { id, name, role, content, metadata, timestamp, usage };
12
+ const contentBlocks = typeof content === "string" ? [{ id: crypto.randomUUID(), type: "text", text: content }] : content;
13
+ return { id, name, role, content: contentBlocks, metadata, created_at, finished_at, usage };
12
14
  }
13
15
  function getTextContent(msg, separator = "\n") {
14
16
  const textBlocks = msg.content.filter((block) => block.type === "text");
15
- if (textBlocks.length === 0) {
16
- return null;
17
- }
17
+ if (textBlocks.length === 0) return null;
18
18
  return textBlocks.map((block) => block.text).join(separator);
19
19
  }
20
20
  function getContentBlocks(msg, blockType) {
@@ -226,10 +226,10 @@ var FormatterBase = class {
226
226
  textualOutput.push(block.text);
227
227
  break;
228
228
  default:
229
- const type = block.source.mediaType.split("/")[0];
229
+ const type = block.source.media_type.split("/")[0];
230
230
  if (type !== "image" && type !== "audio" && type !== "video") {
231
231
  console.log(
232
- `Unsupported media type '${block.source.mediaType}' in tool output. Only image, audio and video are supported.`
232
+ `Unsupported media type '${block.source.media_type}' in tool output. Only image, audio and video are supported.`
233
233
  );
234
234
  break;
235
235
  }
@@ -253,7 +253,7 @@ var FormatterBase = class {
253
253
  }
254
254
  const promotedBlocks = [];
255
255
  promotedData.forEach(({ id, block }) => {
256
- const type = block.source.mediaType.split("/")[0];
256
+ const type = block.source.media_type.split("/")[0];
257
257
  promotedBlocks.push({
258
258
  id: crypto.randomUUID(),
259
259
  type: "text",
@@ -399,10 +399,10 @@ var DashScopeChatFormatter = class extends FormatterBase {
399
399
  * @returns An object representing the formatted multimodal content.
400
400
  */
401
401
  _formatMultimodalBlock(block) {
402
- const type = block.source.mediaType.split("/")[0];
402
+ const type = block.source.media_type.split("/")[0];
403
403
  if (!["image", "audio", "video"].includes(type)) {
404
404
  console.log(
405
- `Skip unsupported media type ${block.source.mediaType} in DashScopeChatFormatter. Only image, audio and video are supported.`
405
+ `Skip unsupported media type ${block.source.media_type} in DashScopeChatFormatter. Only image, audio and video are supported.`
406
406
  );
407
407
  return [];
408
408
  }
@@ -411,7 +411,7 @@ var DashScopeChatFormatter = class extends FormatterBase {
411
411
  }
412
412
  return [
413
413
  {
414
- [type]: `data:${block.source.mediaType};base64,${block.source.data}`
414
+ [type]: `data:${block.source.media_type};base64,${block.source.data}`
415
415
  }
416
416
  ];
417
417
  }
@@ -662,7 +662,7 @@ var OpenAIChatFormatter = class extends FormatterBase {
662
662
  block,
663
663
  role
664
664
  }) {
665
- const type = block.source.mediaType.split("/")[0];
665
+ const type = block.source.media_type.split("/")[0];
666
666
  if (type === "image") {
667
667
  return [
668
668
  {
@@ -685,7 +685,7 @@ var OpenAIChatFormatter = class extends FormatterBase {
685
685
  ];
686
686
  }
687
687
  console.log(
688
- `Skip unsupported media type ${block.source.mediaType} in OpenAIChatFormatter. Only image and audio are supported.`
688
+ `Skip unsupported media type ${block.source.media_type} in OpenAIChatFormatter. Only image and audio are supported.`
689
689
  );
690
690
  return [];
691
691
  }
@@ -696,7 +696,7 @@ var OpenAIChatFormatter = class extends FormatterBase {
696
696
  */
697
697
  async _toOpenAIImageURL(block) {
698
698
  if (block.source.type === "base64") {
699
- return `data:${block.source.mediaType};base64,${block.source.data}`;
699
+ return `data:${block.source.media_type};base64,${block.source.data}`;
700
700
  }
701
701
  const sourceUrl = block.source.url;
702
702
  if (sourceUrl.startsWith("http://") || sourceUrl.startsWith("https://")) {
@@ -717,7 +717,7 @@ var OpenAIChatFormatter = class extends FormatterBase {
717
717
  );
718
718
  }
719
719
  const file = await readFile(localPath);
720
- const mime = block.source.mediaType || `image/${ext.slice(1)}`;
720
+ const mime = block.source.media_type || `image/${ext.slice(1)}`;
721
721
  return `data:${mime};base64,${file.toString("base64")}`;
722
722
  }
723
723
  /**
@@ -733,10 +733,10 @@ var OpenAIChatFormatter = class extends FormatterBase {
733
733
  ["audio/mpeg", "mp3"]
734
734
  ]);
735
735
  if (block.source.type === "base64") {
736
- const format2 = supportedMediaTypes.get(block.source.mediaType);
736
+ const format2 = supportedMediaTypes.get(block.source.media_type);
737
737
  if (!format2) {
738
738
  throw new TypeError(
739
- `Unsupported audio media type: ${block.source.mediaType}, only audio/wav and audio/mp3 are supported.`
739
+ `Unsupported audio media type: ${block.source.media_type}, only audio/wav and audio/mp3 are supported.`
740
740
  );
741
741
  }
742
742
  return { data: block.source.data, format: format2 };
@@ -908,7 +908,8 @@ var DashScopeChatModel = class extends ChatModelBase {
908
908
  type: "tool_call",
909
909
  id: String(toolCall.id),
910
910
  name: String(toolCall.function.name),
911
- input: inputString
911
+ input: inputString,
912
+ state: "pending"
912
913
  });
913
914
  }
914
915
  });
@@ -1007,7 +1008,8 @@ var DashScopeChatModel = class extends ChatModelBase {
1007
1008
  type: "tool_call",
1008
1009
  id: meta.id,
1009
1010
  name: meta.name,
1010
- input: deltaArgs
1011
+ input: deltaArgs,
1012
+ state: "pending"
1011
1013
  });
1012
1014
  }
1013
1015
  });
@@ -1034,7 +1036,8 @@ var DashScopeChatModel = class extends ChatModelBase {
1034
1036
  type: "tool_call",
1035
1037
  id: meta.id,
1036
1038
  name: meta.name,
1037
- input: accToolInputs.get(index) || "{}"
1039
+ input: accToolInputs.get(index) || "{}",
1040
+ state: "pending"
1038
1041
  });
1039
1042
  });
1040
1043
  const blocks = this._dataToBlocks(accText, accThinking, finalToolCalls);
@@ -1182,7 +1185,8 @@ var DeepSeekChatModel = class extends ChatModelBase {
1182
1185
  type: "tool_call",
1183
1186
  id: String(toolCall.id),
1184
1187
  name: String(toolCall.function.name),
1185
- input: inputString
1188
+ input: inputString,
1189
+ state: "pending"
1186
1190
  });
1187
1191
  }
1188
1192
  });
@@ -1279,7 +1283,8 @@ var DeepSeekChatModel = class extends ChatModelBase {
1279
1283
  type: "tool_call",
1280
1284
  id: meta.id,
1281
1285
  name: meta.name,
1282
- input: deltaArgs
1286
+ input: deltaArgs,
1287
+ state: "pending"
1283
1288
  });
1284
1289
  }
1285
1290
  });
@@ -1306,7 +1311,8 @@ var DeepSeekChatModel = class extends ChatModelBase {
1306
1311
  type: "tool_call",
1307
1312
  id: meta.id,
1308
1313
  name: meta.name,
1309
- input: accToolInputs.get(index) || "{}"
1314
+ input: accToolInputs.get(index) || "{}",
1315
+ state: "pending"
1310
1316
  });
1311
1317
  });
1312
1318
  const blocks = this._accDataToBlocks(accText, accThinking, finalToolCalls);
@@ -1479,7 +1485,8 @@ var OllamaChatModel = class extends ChatModelBase {
1479
1485
  type: "tool_call",
1480
1486
  id: toolId,
1481
1487
  name: func.name,
1482
- input: JSON.stringify(func.arguments)
1488
+ input: JSON.stringify(func.arguments),
1489
+ state: "pending"
1483
1490
  };
1484
1491
  toolCalls.set(toolId, toolCallBlock);
1485
1492
  deltaToolCalls.set(toolId, toolCallBlock);
@@ -1539,7 +1546,8 @@ var OllamaChatModel = class extends ChatModelBase {
1539
1546
  type: "tool_call",
1540
1547
  id: `${idx}_${toolCall.function.name}`,
1541
1548
  name: toolCall.function.name,
1542
- input: JSON.stringify(toolCall.function.arguments)
1549
+ input: JSON.stringify(toolCall.function.arguments),
1550
+ state: "pending"
1543
1551
  });
1544
1552
  }
1545
1553
  }
@@ -1676,7 +1684,8 @@ var OpenAIChatModel = class extends ChatModelBase {
1676
1684
  type: "tool_call",
1677
1685
  id: toolCall.id,
1678
1686
  name: toolCall.function.name,
1679
- input: toolCall.function.arguments
1687
+ input: toolCall.function.arguments,
1688
+ state: "pending"
1680
1689
  });
1681
1690
  }
1682
1691
  });
@@ -1770,7 +1779,8 @@ var OpenAIChatModel = class extends ChatModelBase {
1770
1779
  type: "tool_call",
1771
1780
  id: meta.id,
1772
1781
  name: meta.name,
1773
- input: deltaArgs
1782
+ input: deltaArgs,
1783
+ state: "pending"
1774
1784
  });
1775
1785
  }
1776
1786
  });
@@ -1799,7 +1809,8 @@ var OpenAIChatModel = class extends ChatModelBase {
1799
1809
  type: "tool_call",
1800
1810
  id: meta.id,
1801
1811
  name: meta.name,
1802
- input: accToolInputs.get(index) || "{}"
1812
+ input: accToolInputs.get(index) || "{}",
1813
+ state: "pending"
1803
1814
  });
1804
1815
  });
1805
1816
  const blocks = this._accDataToBlocks(accText, finalToolCalls);