import type { ToolDef } from './types.js'; import { editFileTool } from './edit_file.js'; import { createFileTool } from './create_file.js'; import { deleteFileTool } from './delete_file.js'; import { applyPendingTool } from './apply_pending.js'; import { rewindTool } from './rewind.js'; import { newTaskTool } from './new_task.js'; import { listTasksTool } from './list_tasks.js'; import { checkTaskStatusTool } from './check_task_status.js'; export type { ToolDef, ToolContext, ToolJsonSchema } from './types.js'; // All BooCoder write tools. The inference loop (Phase 2B) will combine these // with BooChat's read-only tools to form the full tool set available to agents. // eslint-disable-next-line @typescript-eslint/no-explicit-any export const WRITE_TOOLS: readonly ToolDef[] = [ applyPendingTool, createFileTool, deleteFileTool, editFileTool, rewindTool, // Boomerang subtask tools — orchestrator agents call these to spawn/monitor child tasks. // An "Orchestrator" agent profile would whitelist [new_task, list_tasks, check_task_status]. newTaskTool, listTasksTool, checkTaskStatusTool, ]; // eslint-disable-next-line @typescript-eslint/no-explicit-any export const WRITE_TOOLS_BY_NAME: ReadonlyMap> = new Map( WRITE_TOOLS.map((t) => [t.name, t]), ); export { editFileTool, createFileTool, deleteFileTool, applyPendingTool, rewindTool, newTaskTool, listTasksTool, checkTaskStatusTool };