UNPKG

n8n

Version:

n8n Workflow Automation Tool

77 lines 3.46 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAddDataTableRowsTool = void 0; const zod_1 = __importDefault(require("zod")); const mcp_constants_1 = require("../../mcp.constants"); const schemas_1 = require("../schemas"); const ADD_ROWS_MAX = 1000; const addRowsInputSchema = { dataTableId: zod_1.default.string().describe('The ID of the data table to insert rows into'), projectId: schemas_1.dataTableProjectIdSchema, rows: zod_1.default .array(zod_1.default.record(zod_1.default.string(), zod_1.default.union([zod_1.default.string(), zod_1.default.number(), zod_1.default.boolean(), zod_1.default.null()]))) .min(1) .max(ADD_ROWS_MAX) .describe(`Array of row objects to insert. Each object maps column names to values. Maximum ${ADD_ROWS_MAX} rows per call.`), }; const addRowsOutputSchema = { success: zod_1.default.boolean().describe('Whether the insert operation succeeded'), insertedCount: zod_1.default.number().int().min(0).describe('Number of rows successfully inserted'), }; const createAddDataTableRowsTool = (user, dataTableOps, telemetry) => ({ name: 'add_data_table_rows', config: { description: 'Insert rows into an existing data table. Each row is an object mapping column names to values. Use search_data_tables to find the data table ID first.', inputSchema: addRowsInputSchema, outputSchema: addRowsOutputSchema, annotations: { title: 'Add Data Table Rows', readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false, }, }, handler: async ({ dataTableId, projectId, rows, }) => { const telemetryPayload = { user_id: user.id, tool_name: 'add_data_table_rows', parameters: { dataTableId, projectId, rowCount: rows.length }, }; try { const result = await dataTableOps.insertRows(dataTableId, projectId, rows, 'count'); const output = { success: true, insertedCount: result.insertedRows, }; telemetryPayload.results = { success: true, data: { insertedCount: result.insertedRows }, }; telemetry.track(mcp_constants_1.USER_CALLED_MCP_TOOL_EVENT, telemetryPayload); return { content: [{ type: 'text', text: JSON.stringify(output) }], structuredContent: output, }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); telemetryPayload.results = { success: false, error: errorMessage, }; telemetry.track(mcp_constants_1.USER_CALLED_MCP_TOOL_EVENT, telemetryPayload); const output = { success: false, insertedCount: 0, error: errorMessage }; return { content: [{ type: 'text', text: JSON.stringify(output) }], structuredContent: output, isError: true, }; } }, }); exports.createAddDataTableRowsTool = createAddDataTableRowsTool; //# sourceMappingURL=add-data-table-rows.tool.js.map