Implement runtime tool ID and display name mapping in DuplexPipeline. Enhance Assistants and ToolLibrary components to utilize new mappings for improved tool identification and display. Update DebugDrawer to reflect changes in tool display names during interactions.
This commit is contained in:
@@ -2913,6 +2913,7 @@ export const DebugDrawer: React.FC<{
|
||||
const toolCall = payload?.tool_call || {};
|
||||
const toolCallId = String(toolCall?.id || '').trim();
|
||||
const toolName = String(toolCall?.function?.name || toolCall?.name || 'unknown_tool');
|
||||
const toolDisplayName = String(payload?.tool_display_name || toolCall?.displayName || toolName);
|
||||
const executor = String(toolCall?.executor || 'server').toLowerCase();
|
||||
const rawArgs = String(toolCall?.function?.arguments || '');
|
||||
const argText = rawArgs.length > 160 ? `${rawArgs.slice(0, 160)}...` : rawArgs;
|
||||
@@ -2920,7 +2921,7 @@ export const DebugDrawer: React.FC<{
|
||||
...prev,
|
||||
{
|
||||
role: 'tool',
|
||||
text: `call ${toolName} executor=${executor}${argText ? ` args=${argText}` : ''}`,
|
||||
text: `call ${toolDisplayName} executor=${executor}${argText ? ` args=${argText}` : ''}`,
|
||||
},
|
||||
]);
|
||||
if (executor === 'client' && toolCallId && ws.readyState === WebSocket.OPEN) {
|
||||
@@ -2950,8 +2951,8 @@ export const DebugDrawer: React.FC<{
|
||||
const statusMessage = String(resultPayload?.status?.message || 'error');
|
||||
const resultText =
|
||||
statusCode === 200 && typeof resultPayload?.output?.result === 'number'
|
||||
? `result ${toolName} = ${resultPayload.output.result}`
|
||||
: `result ${toolName} status=${statusCode} ${statusMessage}`;
|
||||
? `result ${toolDisplayName} = ${resultPayload.output.result}`
|
||||
: `result ${toolDisplayName} status=${statusCode} ${statusMessage}`;
|
||||
setMessages((prev) => [
|
||||
...prev,
|
||||
{
|
||||
@@ -3025,14 +3026,15 @@ export const DebugDrawer: React.FC<{
|
||||
if (type === 'assistant.tool_result') {
|
||||
const result = payload?.result || {};
|
||||
const toolName = String(result?.name || 'unknown_tool');
|
||||
const toolDisplayName = String(payload?.tool_display_name || toolName);
|
||||
const statusCode = Number(result?.status?.code || 500);
|
||||
const statusMessage = String(result?.status?.message || 'error');
|
||||
const source = String(payload?.source || 'server');
|
||||
const output = result?.output;
|
||||
const resultText =
|
||||
statusCode === 200
|
||||
? `result ${toolName} source=${source} ${JSON.stringify(output)}`
|
||||
: `result ${toolName} source=${source} status=${statusCode} ${statusMessage}`;
|
||||
? `result ${toolDisplayName} source=${source} ${JSON.stringify(output)}`
|
||||
: `result ${toolDisplayName} source=${source} status=${statusCode} ${statusMessage}`;
|
||||
setMessages((prev) => [...prev, { role: 'tool', text: resultText }]);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user