import { DocumentManager } from "../services/document-manager.js";
const documentManager = new DocumentManager();
export async function handleToolCall(toolName: string, args: any) {
switch (toolName) {
case "create_document":
const docId = documentManager.createDocument(args.filepath, args.title);
return {
content: [
{
type: "text",
text: `Document created successfully with ID: ${docId}. Use this ID for all future operations on this document.`,
},
],
};
case "add_heading":
documentManager.addHeading(args.docId, args.text, args.level);
return {
content: [
{
type: "text",
text: `Heading level ${args.level} added: "${args.text}"`,
},
],
};
case "add_paragraph":
documentManager.addParagraph(args.docId, args.text, args.formatting);
return {
content: [
{
type: "text",
text: `Paragraph added successfully.`,
},
],
};
case "add_bullet_list":
documentManager.addBulletList(args.docId, args.items);
return {
content: [
{
type: "text",
text: `Bullet list added with ${args.items.length} items.`,
},
],
};
case "add_numbered_list":
documentManager.addNumberedList(args.docId, args.items);
return {
content: [
{
type: "text",
text: `Numbered list added with ${args.items.length} items.`,
},
],
};
case "add_table":
documentManager.addTable(args.docId, args.headers, args.rows);
return {
content: [
{
type: "text",
text: `Table added with ${args.headers.length} columns and ${args.rows.length} rows.`,
},
],
};
case "find_and_replace":
const count = documentManager.findAndReplace(
args.docId,
args.findText,
args.replaceText,
args.replaceAll ?? true
);
return {
content: [
{
type: "text",
text: `Replaced ${count} occurrence(s) of "${args.findText}" with "${args.replaceText}".`,
},
],
};
case "save_document":
const filepath = await documentManager.saveDocument(args.docId);
return {
content: [
{
type: "text",
text: `Document saved successfully to: ${filepath}`,
},
],
};
case "get_document_structure":
const structure = documentManager.getDocumentStructure(args.docId);
return {
content: [
{
type: "text",
text: `Document structure:\n${structure}`,
},
],
};
default:
throw new Error(`Unknown tool: ${toolName}`);
}
}