import { ToolInvocationContext, ToolRequest } from '@theia/ai-core'; import { MutableChatRequestModel, MutableChatResponseModel } from './chat-model'; /** * Checks if the given arguments string represents empty tool arguments. * Handles different representations: '', undefined, '{}', '{ }', etc. */ export declare function isEmptyToolArgs(args: string | undefined): boolean; /** * Normalizes tool arguments for comparison purposes. * Empty arguments (undefined, '', '{}') are normalized to '' for consistent comparison. */ export declare function normalizeToolArgs(args: string | undefined): string; /** * Context object passed to tool handlers when invoked within a chat session. * Extends ToolInvocationContext to include chat-specific information. */ export interface ChatToolContext extends ToolInvocationContext { readonly request: MutableChatRequestModel; readonly response: MutableChatResponseModel; readonly rootSessionId?: string; } export declare namespace ChatToolContext { function is(obj: unknown): obj is ChatToolContext; } /** * Asserts that the given context is a ChatToolContext. * Use this in tool handlers that require chat context to get type narrowing and runtime validation. * @throws Error if the context is not a valid ChatToolContext */ export declare function assertChatContext(ctx: unknown): asserts ctx is ChatToolContext; /** * A ToolRequest that expects a ChatToolContext. */ export type ChatToolRequest = ToolRequest; /** * Wraps tool requests in a chat context. * * This service extracts tool requests from a given chat request model and wraps their * handler functions to provide additional context, such as the chat request model. */ export declare class ChatToolRequestService { /** * Extracts tool requests from a chat request and wraps them to provide chat context. * @param request The chat request containing tool requests * @returns Tool requests with handlers that receive ChatToolContext */ getChatToolRequests(request: MutableChatRequestModel): ToolRequest[]; /** * Wraps multiple tool requests to provide chat context to their handlers. * @param toolRequests The original tool requests * @param request The chat request to use for context * @returns Wrapped tool requests whose handlers receive ChatToolContext */ toChatToolRequests(toolRequests: ToolRequest[] | undefined, request: MutableChatRequestModel): ToolRequest[]; /** * Wraps a single tool request to provide chat context to its handler. * The returned tool request accepts ToolInvocationContext but internally * enriches it to ChatToolContext before passing to the original handler. * @param toolRequest The original tool request * @param request The chat request to use for context * @returns A wrapped tool request */ protected toChatToolRequest(toolRequest: ToolRequest, request: MutableChatRequestModel): ToolRequest; /** * Creates a ChatToolContext by enriching a ToolInvocationContext with chat-specific data. * @param request The chat request providing context * @param ctx The base tool invocation context * @returns A ChatToolContext with request, response, and cancellation token */ protected createToolContext(request: MutableChatRequestModel, ctx?: ToolInvocationContext): ChatToolContext; } //# sourceMappingURL=chat-tool-request-service.d.ts.map