export { bashTool, bashToolDefinition, createBashTool, createBashToolDefinition, createLocalBashOperations, } from "./bash.js";
export { createEditTool, createEditToolDefinition, editTool, editToolDefinition, } from "./edit.js";
export { withFileMutationQueue } from "./file-mutation-queue.js";
export { createFindTool, createFindToolDefinition, findTool, findToolDefinition, } from "./find.js";
export { createGrepTool, createGrepToolDefinition, grepTool, grepToolDefinition, } from "./grep.js";
export { createLsTool, createLsToolDefinition, lsTool, lsToolDefinition, } from "./ls.js";
export { createReadTool, createReadToolDefinition, readTool, readToolDefinition, } from "./read.js";
export { createSearchTool, createSearchToolDefinition, isSearchAvailable, searchTool, searchToolDefinition, } from "./search.js";
export { createSkillTool, createSkillToolDefinition, } from "./skill.js";
export { abortBackgroundAgents, createSubagentTool, createSubagentToolDefinition, discoverAgentTypes, filterSubagentTools, getBackgroundAgents, getRunningBackgroundAgents, pruneBackgroundAgents, subagentTool, subagentToolDefinition, } from "./subagent.js";
export { createSuggestNextToolDefinition, } from "./suggest-next.js";
export { createTasksToolDefinition, } from "./tasks.js";
export { createTmpReadToolDefinition } from "./tmp-read.js";
export { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateLine, truncateTail, } from "./truncate.js";
export { createWaitToolDefinition, formatWaitCall, formatWaitResult, waitToolDefinition, } from "./wait.js";
export { createWebFetchTool, createWebFetchToolDefinition, createWebSearchTool, createWebSearchToolDefinition, webFetchTool, webFetchToolDefinition, webSearchTool, webSearchToolDefinition, } from "./web.js";
export { createWriteTool, createWriteToolDefinition, writeTool, writeToolDefinition, } from "./write.js";
import { bashTool, bashToolDefinition, createBashTool, createBashToolDefinition, } from "./bash.js";
import { createEditTool, createEditToolDefinition, editTool, editToolDefinition } from "./edit.js";
import { createFindTool, createFindToolDefinition, findTool, findToolDefinition } from "./find.js";
import { createGrepTool, createGrepToolDefinition, grepTool, grepToolDefinition } from "./grep.js";
import { createLsTool, createLsToolDefinition, lsTool, lsToolDefinition } from "./ls.js";
import { createReadTool, createReadToolDefinition, readTool, readToolDefinition, } from "./read.js";
import { createSearchTool, createSearchToolDefinition, searchTool, searchToolDefinition } from "./search.js";
import { createSkillTool, createSkillToolDefinition } from "./skill.js";
import { createSubagentTool, createSubagentToolDefinition, getRunningBackgroundAgents, subagentTool, subagentToolDefinition, } from "./subagent.js";
import { createSuggestNextToolDefinition } from "./suggest-next.js";
import { createTasksToolDefinition } from "./tasks.js";
import { createTmpReadToolDefinition } from "./tmp-read.js";
import { wrapToolDefinition } from "./tool-definition-wrapper.js";
import { createWaitToolDefinition, waitToolDefinition } from "./wait.js";
import { createWebFetchTool, createWebFetchToolDefinition, createWebSearchTool, createWebSearchToolDefinition, webFetchTool, webFetchToolDefinition, webSearchTool, webSearchToolDefinition, } from "./web.js";
import { createWriteTool, createWriteToolDefinition, writeTool, writeToolDefinition } from "./write.js";
export const codingTools = [readTool, bashTool, editTool, writeTool];
export const readOnlyTools = [readTool, grepTool, findTool, lsTool];
const tmpReadToolDefinition = createTmpReadToolDefinition();
const tmpReadTool = wrapToolDefinition(tmpReadToolDefinition);
const waitTool = wrapToolDefinition(waitToolDefinition);
export const allTools = {
    read: readTool,
    bash: bashTool,
    edit: editTool,
    write: writeTool,
    grep: grepTool,
    find: findTool,
    ls: lsTool,
    web_search: webSearchTool,
    web_fetch: webFetchTool,
    subagent: subagentTool,
    tmp_read: tmpReadTool,
    wait: waitTool,
    search: searchTool,
};
export const allToolDefinitions = {
    read: readToolDefinition,
    bash: bashToolDefinition,
    edit: editToolDefinition,
    write: writeToolDefinition,
    grep: grepToolDefinition,
    find: findToolDefinition,
    ls: lsToolDefinition,
    web_search: webSearchToolDefinition,
    web_fetch: webFetchToolDefinition,
    subagent: subagentToolDefinition,
    tmp_read: tmpReadToolDefinition,
    wait: waitToolDefinition,
    search: searchToolDefinition,
};
export function createCodingToolDefinitions(cwd, options) {
    return [
        createReadToolDefinition(cwd, options?.read),
        createBashToolDefinition(cwd, options?.bash),
        createEditToolDefinition(cwd),
        createWriteToolDefinition(cwd),
    ];
}
export function createReadOnlyToolDefinitions(cwd, options) {
    return [
        createReadToolDefinition(cwd, options?.read),
        createGrepToolDefinition(cwd),
        createFindToolDefinition(cwd),
        createLsToolDefinition(cwd),
    ];
}
export function createAllToolDefinitions(cwd, options) {
    const tools = {
        read: createReadToolDefinition(cwd, options?.read),
        bash: createBashToolDefinition(cwd, options?.bash),
        edit: createEditToolDefinition(cwd),
        write: createWriteToolDefinition(cwd),
        grep: createGrepToolDefinition(cwd),
        find: createFindToolDefinition(cwd),
        ls: createLsToolDefinition(cwd),
        web_search: createWebSearchToolDefinition(cwd),
        web_fetch: createWebFetchToolDefinition(cwd),
        subagent: createSubagentToolDefinition(cwd, options?.subagent),
        tmp_read: createTmpReadToolDefinition(options?.read),
        wait: createWaitToolDefinition({ getRunningAgents: getRunningBackgroundAgents }),
        search: createSearchToolDefinition(cwd),
    };
    if (options?.skill) {
        tools.skill = createSkillToolDefinition(cwd, options.skill);
    }
    if (options?.tasks) {
        tools.tasks_update = createTasksToolDefinition(options.tasks.onUpdate);
    }
    if (options?.suggestNext) {
        tools.suggest_next = createSuggestNextToolDefinition(options.suggestNext.onSuggest);
    }
    return tools;
}
export function createCodingTools(cwd, options) {
    return [
        createReadTool(cwd, options?.read),
        createBashTool(cwd, options?.bash),
        createEditTool(cwd),
        createWriteTool(cwd),
    ];
}
export function createReadOnlyTools(cwd, options) {
    return [createReadTool(cwd, options?.read), createGrepTool(cwd), createFindTool(cwd), createLsTool(cwd)];
}
export function createAllTools(cwd, options) {
    const tools = {
        read: createReadTool(cwd, options?.read),
        bash: createBashTool(cwd, options?.bash),
        edit: createEditTool(cwd),
        write: createWriteTool(cwd),
        grep: createGrepTool(cwd),
        find: createFindTool(cwd),
        ls: createLsTool(cwd),
        web_search: createWebSearchTool(cwd),
        web_fetch: createWebFetchTool(cwd),
        subagent: createSubagentTool(cwd, options?.subagent),
        tmp_read: wrapToolDefinition(createTmpReadToolDefinition(options?.read)),
        wait: wrapToolDefinition(createWaitToolDefinition({ getRunningAgents: getRunningBackgroundAgents })),
        search: createSearchTool(cwd),
    };
    if (options?.skill) {
        tools.skill = createSkillTool(cwd, options.skill);
    }
    if (options?.tasks) {
        tools.tasks_update = wrapToolDefinition(createTasksToolDefinition(options.tasks.onUpdate));
    }
    if (options?.suggestNext) {
        tools.suggest_next = wrapToolDefinition(createSuggestNextToolDefinition(options.suggestNext.onSuggest));
    }
    return tools;
}
//# sourceMappingURL=index.js.map