import type { StructuredTool } from "@langchain/core/tools"; import type { MCPServersConfig } from "@/types/mcp.js"; import type { SearchConfig } from "../../cli/config/schema.js"; import { type BrowserSessionManager } from "../tools/browser_session_manager.js"; import { type NodeInvokeRequest, type NodeInvokeResult } from "../tools/node_invoke.js"; import { type TerminalSessionManager } from "../tools/terminal_session_manager.js"; import type { AvailableToolName } from "./agentConfig.js"; export interface ToolOptions { workspace?: string; executionWorkspace?: string; blockedCommands?: string[]; allowScriptExecution?: boolean; timeout?: number; browserProfile?: string; browserTransport?: "auto" | "playwright" | "relay"; browserProfilesDirectory?: string; browserProfiles?: Record; browserExtensions?: string[]; browserExtensionsDirectory?: string; browserExtensionsById?: Record; browserDefaultExtensions?: string[]; browserRelay?: { enabled?: boolean; host?: string; port?: number; requireAuth?: boolean; authToken?: string; }; terminalOwnerId?: string; terminalSessionManager?: TerminalSessionManager; browserSessionOwnerId?: string; browserSessionManager?: BrowserSessionManager; searchConfig?: SearchConfig; mcpConfigs?: MCPServersConfig[]; skillsDirectory?: string; dynamicUiEnabled?: boolean; nodeInvoker?: (request: NodeInvokeRequest) => Promise; nodeDefaultTargetClientId?: string; } export declare const UI_TOOL_NAMES: AvailableToolName[]; export declare const NODE_TOOL_NAMES: AvailableToolName[]; /** * Create a tool by name with optional configuration */ export declare function createTool(name: AvailableToolName, options?: ToolOptions): StructuredTool | null; /** * Create multiple tools from an array of tool names * NOW ALSO includes MCP tools if configured */ export declare function createTools(toolNames: AvailableToolName[], options?: ToolOptions): Promise; /** * Get list of all available tool names */ export declare function getAvailableTools(): AvailableToolName[];