Function: executeCrudOperation()
Makaio Framework / tools-core / executeCrudOperation
Function: executeCrudOperation()
Section titled “Function: executeCrudOperation()”executeCrudOperation<
TInput,TOutput>(input,context,entityName,handlers):Promise<ToolResult<TOutput>>
Defined in: ../../../tools/core/src/tool-utils.ts:127
Executes a CRUD tool operation with session validation and operation routing.
This helper consolidates the common pattern of:
- Validating sessionId from context
- Routing to operation-specific handlers based on discriminated union
The input type must be a discriminated union with an op field.
Handler functions are provided in a map keyed by operation name.
Type parameters:
- TInput: Discriminated union input type with
opfield - TOutput: Tool output type
Type Parameters
Section titled “Type Parameters”TInput
Section titled “TInput”TInput extends object
TOutput
Section titled “TOutput”TOutput
Parameters
Section titled “Parameters”TInput
The tool input with operation discriminator
context
Section titled “context”Tool execution context
entityName
Section titled “entityName”string
Entity name for validation error messages (e.g., ‘task’, ‘artifact’)
handlers
Section titled “handlers”OperationHandlers<TInput, TOutput>
Map of operation names to handler functions
Returns
Section titled “Returns”Promise<ToolResult<TOutput>>
Tool result from the appropriate operation handler
Example
Section titled “Example”export const myTool = defineTool({ name: 'my_tool', inputSchema: z.discriminatedUnion('op', [ z.object({ op: z.literal('create'), data: z.string() }), z.object({ op: z.literal('list') }), ]), execute: async (input, context) => { return executeCrudOperation(input, context, 'item', { create: async (input, sessionId, context) => { // Handle create... }, list: async (input, sessionId, context) => { // Handle list... }, }); },});