/** * Copyright 2025 Vybestack LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ export interface NormalizedToolCall { index: number; id?: string; name: string; args: Record; originalArgs?: string; } export interface ValidatedToolCall { index: number; id?: string; name: string; args?: string; isValid: boolean; validationErrors: string[]; } /** * ToolCallNormalizer - Responsible for normalizing tool calls */ export declare class ToolCallNormalizer { /** * Normalize tool calls */ normalize(validatedCall: ValidatedToolCall): NormalizedToolCall | null; /** * Normalize tool calls in batch */ normalizeBatch(validatedCalls: ValidatedToolCall[]): NormalizedToolCall[]; /** * Normalize tool name * * Handles Kimi-K2 style malformed tool names where the model concatenates * prefixes like "functions" or "call_functions" with the actual tool name: * - "functionslist_directory" -> "list_directory" * - "call_functionslist_directory6" -> "list_directory" * - "call_functionssearch_file_content9" -> "search_file_content" */ private normalizeToolName; /** * Parse arguments string to object using processToolParameters */ private parseArgs; /** * Validate normalization result */ validateNormalized(call: NormalizedToolCall): boolean; }