mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	refactor(llm): improve type safety in tool calling stage and simplify tool call handling
This commit is contained in:
		@@ -69,9 +69,19 @@ export class ToolCallingStage extends BasePipelineStage<ToolExecutionInput, { re
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Check if the registry has any tools
 | 
			
		||||
        // Convert from ToolHandler[] to ToolInterface[] with proper type conversion
 | 
			
		||||
        const registryTools = toolRegistry.getAllTools();
 | 
			
		||||
        const availableTools: ToolInterface[] = registryTools.map(tool => tool as unknown as ToolInterface);
 | 
			
		||||
        
 | 
			
		||||
        // Convert ToolHandler[] to ToolInterface[] with proper type safety
 | 
			
		||||
        const availableTools: ToolInterface[] = registryTools.map(tool => {
 | 
			
		||||
            // Create a proper ToolInterface from the ToolHandler
 | 
			
		||||
            const toolInterface: ToolInterface = {
 | 
			
		||||
                // Pass through the execute method
 | 
			
		||||
                execute: (args: Record<string, unknown>) => tool.execute(args),
 | 
			
		||||
                // Include other properties from the tool definition
 | 
			
		||||
                ...tool.definition
 | 
			
		||||
            };
 | 
			
		||||
            return toolInterface;
 | 
			
		||||
        });
 | 
			
		||||
        log.info(`Available tools in registry: ${availableTools.length}`);
 | 
			
		||||
 | 
			
		||||
        // Log available tools for debugging
 | 
			
		||||
 
 | 
			
		||||
@@ -366,7 +366,6 @@ export class OllamaService extends BaseAIService {
 | 
			
		||||
                },
 | 
			
		||||
                async (callback) => {
 | 
			
		||||
                    let completeText = '';
 | 
			
		||||
                    let responseToolCalls: ToolCall[] = [];
 | 
			
		||||
                    let chunkCount = 0;
 | 
			
		||||
                    
 | 
			
		||||
                    // Create a response object that will be updated during streaming
 | 
			
		||||
@@ -410,9 +409,7 @@ export class OllamaService extends BaseAIService {
 | 
			
		||||
                            const toolCalls = StreamProcessor.extractToolCalls(chunk);
 | 
			
		||||
                            // Update response tool calls if any are found
 | 
			
		||||
                            if (toolCalls.length > 0) {
 | 
			
		||||
                                // Update tool calls in the overall response
 | 
			
		||||
                                responseToolCalls = toolCalls;
 | 
			
		||||
                                // Also update the response object's tool_calls for final return
 | 
			
		||||
                                // Update the response object's tool_calls for final return
 | 
			
		||||
                                response.tool_calls = toolCalls;
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user