/** * Workspace Tools — Factory * * Creates the built-in workspace tools for agents. Individual tools are * defined in their own files; this module applies WorkspaceToolsConfig * (enabled, requireApproval, requireReadBeforeWrite) and injects workspace * into the tool execution context. */ import type { WorkspaceToolName } from '../constants/index.js'; import type { Workspace } from '../workspace.js'; import type { WorkspaceToolsConfig, DynamicToolConfigValue, ToolConfigContext, ToolConfigWithArgsContext } from './types.js'; export type { WorkspaceToolConfig, WorkspaceToolsConfig, ExecuteCommandToolConfig, BackgroundProcessConfig, BackgroundProcessMeta, BackgroundProcessExitMeta, ToolConfigContext, ToolConfigWithArgsContext, DynamicToolConfigValue, } from './types.js'; /** Resolved tool config with `enabled` as a boolean and execution-time values as raw config. */ export interface ResolvedToolConfig { enabled: boolean; requireApproval: DynamicToolConfigValue; requireReadBeforeWrite?: DynamicToolConfigValue; maxOutputTokens?: number; name?: string; } /** * Resolves the effective configuration for a specific tool. * * Resolution order (later overrides earlier): * 1. Built-in defaults (enabled: true, requireApproval: false) * 2. Top-level config (tools.enabled, tools.requireApproval) * 3. Per-tool config (tools[toolName].enabled, tools[toolName].requireApproval) * * `enabled` is resolved to a boolean immediately (requires context if dynamic). * `requireApproval` and `requireReadBeforeWrite` are passed through as-is * for execution-time evaluation (they may need args). */ export declare function resolveToolConfig(toolsConfig: WorkspaceToolsConfig | undefined, toolName: WorkspaceToolName, context?: ToolConfigContext): Promise; /** * Creates workspace tools that will be auto-injected into agents. * * @param workspace - The workspace instance to bind tools to * @returns Record of workspace tools */ export declare function createWorkspaceTools(workspace: Workspace, configContext?: Omit & { requestContext?: unknown; }): Promise>; //# sourceMappingURL=tools.d.ts.map