ai-protocol-adapters 1.0.0-alpha.19 → 1.0.0-alpha.20
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/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +23 -2
- package/dist/index.mjs +23 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1103,6 +1103,24 @@ var ToolConverter = class {
|
|
|
1103
1103
|
static isOpenAIToolFormat(tool) {
|
|
1104
1104
|
return tool && tool.type === "function" && tool.function && tool.function.name;
|
|
1105
1105
|
}
|
|
1106
|
+
/**
|
|
1107
|
+
* 确保OpenAI格式工具有有效描述
|
|
1108
|
+
* 处理空字符串、undefined、null等情况
|
|
1109
|
+
*/
|
|
1110
|
+
static ensureOpenAIToolDescription(tool) {
|
|
1111
|
+
if (!tool?.function) return tool;
|
|
1112
|
+
const description = tool.function.description?.trim();
|
|
1113
|
+
if (!description) {
|
|
1114
|
+
return {
|
|
1115
|
+
...tool,
|
|
1116
|
+
function: {
|
|
1117
|
+
...tool.function,
|
|
1118
|
+
description: TOOL_CONVERSION.DEFAULT_DESCRIPTION
|
|
1119
|
+
}
|
|
1120
|
+
};
|
|
1121
|
+
}
|
|
1122
|
+
return tool;
|
|
1123
|
+
}
|
|
1106
1124
|
/**
|
|
1107
1125
|
* 简化Claude的详细描述为OpenAI兼容的简短描述
|
|
1108
1126
|
*/
|
|
@@ -3782,14 +3800,17 @@ var A2ORequestAdapter = class {
|
|
|
3782
3800
|
}
|
|
3783
3801
|
/**
|
|
3784
3802
|
* 转换工具定义列表
|
|
3803
|
+
* 确保所有工具都有有效描述,无论是Anthropic还是OpenAI格式
|
|
3785
3804
|
*/
|
|
3786
3805
|
convertToolDefinitions(tools) {
|
|
3787
3806
|
return tools.map((tool) => {
|
|
3807
|
+
let openaiTool;
|
|
3788
3808
|
if (ToolConverter.isOpenAIToolFormat(tool)) {
|
|
3789
|
-
|
|
3809
|
+
openaiTool = tool;
|
|
3790
3810
|
} else {
|
|
3791
|
-
|
|
3811
|
+
openaiTool = ToolConverter.convertAnthropicToolToOpenAI(tool);
|
|
3792
3812
|
}
|
|
3813
|
+
return ToolConverter.ensureOpenAIToolDescription(openaiTool);
|
|
3793
3814
|
});
|
|
3794
3815
|
}
|
|
3795
3816
|
/**
|
package/dist/index.mjs
CHANGED
|
@@ -993,6 +993,24 @@ var ToolConverter = class {
|
|
|
993
993
|
static isOpenAIToolFormat(tool) {
|
|
994
994
|
return tool && tool.type === "function" && tool.function && tool.function.name;
|
|
995
995
|
}
|
|
996
|
+
/**
|
|
997
|
+
* 确保OpenAI格式工具有有效描述
|
|
998
|
+
* 处理空字符串、undefined、null等情况
|
|
999
|
+
*/
|
|
1000
|
+
static ensureOpenAIToolDescription(tool) {
|
|
1001
|
+
if (!tool?.function) return tool;
|
|
1002
|
+
const description = tool.function.description?.trim();
|
|
1003
|
+
if (!description) {
|
|
1004
|
+
return {
|
|
1005
|
+
...tool,
|
|
1006
|
+
function: {
|
|
1007
|
+
...tool.function,
|
|
1008
|
+
description: TOOL_CONVERSION.DEFAULT_DESCRIPTION
|
|
1009
|
+
}
|
|
1010
|
+
};
|
|
1011
|
+
}
|
|
1012
|
+
return tool;
|
|
1013
|
+
}
|
|
996
1014
|
/**
|
|
997
1015
|
* 简化Claude的详细描述为OpenAI兼容的简短描述
|
|
998
1016
|
*/
|
|
@@ -3672,14 +3690,17 @@ var A2ORequestAdapter = class {
|
|
|
3672
3690
|
}
|
|
3673
3691
|
/**
|
|
3674
3692
|
* 转换工具定义列表
|
|
3693
|
+
* 确保所有工具都有有效描述,无论是Anthropic还是OpenAI格式
|
|
3675
3694
|
*/
|
|
3676
3695
|
convertToolDefinitions(tools) {
|
|
3677
3696
|
return tools.map((tool) => {
|
|
3697
|
+
let openaiTool;
|
|
3678
3698
|
if (ToolConverter.isOpenAIToolFormat(tool)) {
|
|
3679
|
-
|
|
3699
|
+
openaiTool = tool;
|
|
3680
3700
|
} else {
|
|
3681
|
-
|
|
3701
|
+
openaiTool = ToolConverter.convertAnthropicToolToOpenAI(tool);
|
|
3682
3702
|
}
|
|
3703
|
+
return ToolConverter.ensureOpenAIToolDescription(openaiTool);
|
|
3683
3704
|
});
|
|
3684
3705
|
}
|
|
3685
3706
|
/**
|
package/package.json
CHANGED