mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
fix: handle unsigned tool calls for gemini 3
This commit is contained in:
@@ -79,3 +79,55 @@ index 5f9a17e..48631a7 100644
|
|||||||
-//# sourceMappingURL=openai-responses.js.map
|
-//# sourceMappingURL=openai-responses.js.map
|
||||||
\ No newline at end of file
|
\ No newline at end of file
|
||||||
+//# sourceMappingURL=openai-responses.js.map
|
+//# sourceMappingURL=openai-responses.js.map
|
||||||
|
diff --git a/dist/providers/google-shared.js b/dist/providers/google-shared.js
|
||||||
|
index 47dc045..706157a 100644
|
||||||
|
--- a/dist/providers/google-shared.js
|
||||||
|
+++ b/dist/providers/google-shared.js
|
||||||
|
@@ -130,18 +130,30 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (block.type === "toolCall") {
|
||||||
|
- const part = {
|
||||||
|
- functionCall: {
|
||||||
|
- name: block.name,
|
||||||
|
- args: block.arguments,
|
||||||
|
- ...(requiresToolCallId(model.id) ? { id: block.id } : {}),
|
||||||
|
- },
|
||||||
|
- };
|
||||||
|
const thoughtSignature = resolveThoughtSignature(isSameProviderAndModel, block.thoughtSignature);
|
||||||
|
- if (thoughtSignature) {
|
||||||
|
- part.thoughtSignature = thoughtSignature;
|
||||||
|
+ // Gemini 3 requires thoughtSignature on all function calls when thinking mode is enabled.
|
||||||
|
+ // When switching from a provider that doesn't support signatures (e.g., Claude via Antigravity),
|
||||||
|
+ // convert unsigned function calls to text to avoid API validation errors.
|
||||||
|
+ const isGemini3 = model.id.toLowerCase().includes("gemini-3");
|
||||||
|
+ if (isGemini3 && !thoughtSignature) {
|
||||||
|
+ const argsStr = JSON.stringify(block.arguments, null, 2);
|
||||||
|
+ parts.push({
|
||||||
|
+ text: `[Tool Call: ${block.name}]\nArguments: ${argsStr}`,
|
||||||
|
+ });
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ const part = {
|
||||||
|
+ functionCall: {
|
||||||
|
+ name: block.name,
|
||||||
|
+ args: block.arguments,
|
||||||
|
+ ...(requiresToolCallId(model.id) ? { id: block.id } : {}),
|
||||||
|
+ },
|
||||||
|
+ };
|
||||||
|
+ if (thoughtSignature) {
|
||||||
|
+ part.thoughtSignature = thoughtSignature;
|
||||||
|
+ }
|
||||||
|
+ parts.push(part);
|
||||||
|
}
|
||||||
|
- parts.push(part);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (parts.length === 0)
|
||||||
|
@@ -280,4 +292,4 @@
|
||||||
|
return "error";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-//# sourceMappingURL=google-shared.js.map
|
||||||
|
\ No newline at end of file
|
||||||
|
+//# sourceMappingURL=google-shared.js.map
|
||||||
|
|||||||
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@@ -9,7 +9,7 @@ overrides:
|
|||||||
|
|
||||||
patchedDependencies:
|
patchedDependencies:
|
||||||
'@mariozechner/pi-ai@0.45.7':
|
'@mariozechner/pi-ai@0.45.7':
|
||||||
hash: 899187c39b551e0b611a32006f5f06bc329d3478fe4bac9bac044b2df079e2cd
|
hash: e8b10ed06e0bcda571016bc4979ef2c5bf8a99ccade0201a3f74bc1914754fe9
|
||||||
path: patches/@mariozechner__pi-ai@0.45.7.patch
|
path: patches/@mariozechner__pi-ai@0.45.7.patch
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
@@ -36,7 +36,7 @@ importers:
|
|||||||
version: 0.45.3(ws@8.19.0)(zod@4.3.5)
|
version: 0.45.3(ws@8.19.0)(zod@4.3.5)
|
||||||
'@mariozechner/pi-ai':
|
'@mariozechner/pi-ai':
|
||||||
specifier: 0.45.7
|
specifier: 0.45.7
|
||||||
version: 0.45.7(patch_hash=899187c39b551e0b611a32006f5f06bc329d3478fe4bac9bac044b2df079e2cd)(ws@8.19.0)(zod@4.3.5)
|
version: 0.45.7(patch_hash=e8b10ed06e0bcda571016bc4979ef2c5bf8a99ccade0201a3f74bc1914754fe9)(ws@8.19.0)(zod@4.3.5)
|
||||||
'@mariozechner/pi-coding-agent':
|
'@mariozechner/pi-coding-agent':
|
||||||
specifier: ^0.45.3
|
specifier: ^0.45.3
|
||||||
version: 0.45.3(ws@8.19.0)(zod@4.3.5)
|
version: 0.45.3(ws@8.19.0)(zod@4.3.5)
|
||||||
@@ -5067,7 +5067,7 @@ snapshots:
|
|||||||
|
|
||||||
'@mariozechner/pi-agent-core@0.45.3(ws@8.19.0)(zod@4.3.5)':
|
'@mariozechner/pi-agent-core@0.45.3(ws@8.19.0)(zod@4.3.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@mariozechner/pi-ai': 0.45.7(patch_hash=899187c39b551e0b611a32006f5f06bc329d3478fe4bac9bac044b2df079e2cd)(ws@8.19.0)(zod@4.3.5)
|
'@mariozechner/pi-ai': 0.45.7(patch_hash=e8b10ed06e0bcda571016bc4979ef2c5bf8a99ccade0201a3f74bc1914754fe9)(ws@8.19.0)(zod@4.3.5)
|
||||||
'@mariozechner/pi-tui': 0.45.3
|
'@mariozechner/pi-tui': 0.45.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@modelcontextprotocol/sdk'
|
- '@modelcontextprotocol/sdk'
|
||||||
@@ -5078,7 +5078,7 @@ snapshots:
|
|||||||
- ws
|
- ws
|
||||||
- zod
|
- zod
|
||||||
|
|
||||||
'@mariozechner/pi-ai@0.45.7(patch_hash=899187c39b551e0b611a32006f5f06bc329d3478fe4bac9bac044b2df079e2cd)(ws@8.19.0)(zod@4.3.5)':
|
'@mariozechner/pi-ai@0.45.7(patch_hash=e8b10ed06e0bcda571016bc4979ef2c5bf8a99ccade0201a3f74bc1914754fe9)(ws@8.19.0)(zod@4.3.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@anthropic-ai/sdk': 0.71.2(zod@4.3.5)
|
'@anthropic-ai/sdk': 0.71.2(zod@4.3.5)
|
||||||
'@aws-sdk/client-bedrock-runtime': 3.967.0
|
'@aws-sdk/client-bedrock-runtime': 3.967.0
|
||||||
@@ -5105,7 +5105,7 @@ snapshots:
|
|||||||
'@mariozechner/clipboard': 0.3.0
|
'@mariozechner/clipboard': 0.3.0
|
||||||
'@mariozechner/jiti': 2.6.2
|
'@mariozechner/jiti': 2.6.2
|
||||||
'@mariozechner/pi-agent-core': 0.45.3(ws@8.19.0)(zod@4.3.5)
|
'@mariozechner/pi-agent-core': 0.45.3(ws@8.19.0)(zod@4.3.5)
|
||||||
'@mariozechner/pi-ai': 0.45.7(patch_hash=899187c39b551e0b611a32006f5f06bc329d3478fe4bac9bac044b2df079e2cd)(ws@8.19.0)(zod@4.3.5)
|
'@mariozechner/pi-ai': 0.45.7(patch_hash=e8b10ed06e0bcda571016bc4979ef2c5bf8a99ccade0201a3f74bc1914754fe9)(ws@8.19.0)(zod@4.3.5)
|
||||||
'@mariozechner/pi-tui': 0.45.3
|
'@mariozechner/pi-tui': 0.45.3
|
||||||
chalk: 5.6.2
|
chalk: 5.6.2
|
||||||
cli-highlight: 2.1.11
|
cli-highlight: 2.1.11
|
||||||
|
|||||||
Reference in New Issue
Block a user