AIDK API Reference / aidk-kernel / ProcedureOptions
Interface: ProcedureOptions ​
Defined in: packages/kernel/src/procedure.ts:188
Configuration options for creating a procedure.
Example ​
typescript
const proc = createProcedure({
name: 'myProcedure',
schema: z.object({ input: z.string() }),
middleware: [loggingMiddleware],
timeout: 5000,
}, async ({ input }) => input.toUpperCase());See ​
createProcedure - Create a procedure with these options
Properties ​
| Property | Type | Description | Defined in |
|---|---|---|---|
executionBoundary? | ExecutionBoundaryConfig | Declarative execution boundary configuration. - 'always': Always create a new root execution (engine:execute, engine:stream) - 'child': Always create a new child execution (component_tool, fork, spawn) - 'auto': Create only if not already in an execution (model:generate, model:stream) - false: Never create an execution boundary (compile:tick, internal procedures) Default 'auto' | packages/kernel/src/procedure.ts:228 |
executionType? | string | Explicit execution type (e.g., 'engine', 'model', 'component_tool', 'fork', 'spawn'). If not provided, derived from procedure name. Only used when this procedure becomes an execution boundary. | packages/kernel/src/procedure.ts:235 |
handleFactory? | HandleFactory<ExecutionHandle<any>, KernelContext> | Custom factory for creating execution handles | packages/kernel/src/procedure.ts:194 |
metadata? | Record<string, any> | Metadata for telemetry span attributes (e.g., { type: 'tool', id: 'myTool' }) | packages/kernel/src/procedure.ts:204 |
middleware? | ( | Middleware<any[]> | MiddlewarePipeline)[] | Middleware pipeline to apply to this procedure | packages/kernel/src/procedure.ts:192 |
name? | string | Name of the procedure (used in telemetry and logging) | packages/kernel/src/procedure.ts:190 |
parentProcedure? | string | Parent procedure name (for hooks) | packages/kernel/src/procedure.ts:198 |
schema? | ZodType<any, unknown, $ZodTypeInternals<any, unknown>> | Zod schema for input validation | packages/kernel/src/procedure.ts:196 |
timeout? | number | Timeout in milliseconds. If exceeded, throws AbortError.timeout() | packages/kernel/src/procedure.ts:206 |