From 51067735730d9d5ff0831b290c6a4408a4de54c5 Mon Sep 17 00:00:00 2001 From: CJACK Date: Tue, 17 Feb 2026 14:18:47 +0800 Subject: [PATCH] feat: Standardize tool name fallback to 'unknown' for parity with Go and ensure `parseTool` consistently returns raw input on parsing failures. --- api/helpers/stream-tool-sieve.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/helpers/stream-tool-sieve.js b/api/helpers/stream-tool-sieve.js index 83bb265..3ced63d 100644 --- a/api/helpers/stream-tool-sieve.js +++ b/api/helpers/stream-tool-sieve.js @@ -14,9 +14,9 @@ function extractToolNames(tools) { } const fn = t.function && typeof t.function === 'object' ? t.function : t; const name = toStringSafe(fn.name); - if (name) { - out.push(name); - } + // Keep parity with Go injectToolPrompt: object tools without name still + // enter tool mode via fallback name "unknown". + out.push(name || 'unknown'); } return out; } @@ -413,10 +413,10 @@ function parseToolCallInput(v) { if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) { return parsed; } + return { _raw: raw }; } catch (_err) { return { _raw: raw }; } - return {}; } if (typeof v === 'object' && !Array.isArray(v)) { return v;