Skip to content

AIDK API Reference / aidk-kernel / ProcedureWithHandle

Type Alias: ProcedureWithHandle()<THandler> ​

ts
type ProcedureWithHandle<THandler> = {
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
};

Defined in: packages/kernel/src/procedure.ts:402

A procedure variant that returns an execution handle along with the result.

Obtained by calling .withHandle() on a Procedure. Useful for:

  • Subscribing to execution events (progress, errors, completion)
  • Correlating execution via trace ID
  • Cancelling long-running operations

Example ​

typescript
const proc = createProcedure(async function* (count: number) {
  for (let i = 0; i < count; i++) {
    yield { progress: i / count };
  }
});

const { handle, result } = proc.withHandle()(10);
handle.events.on('stream:chunk', (e) => console.log('Progress:', e.payload));
const final = await result;

See ​

Type Parameters ​

Type ParameterDescription
THandler extends (...args: any[]) => anyThe function type being wrapped
ts
type ProcedureWithHandle(...args: ExtractArgs<THandler>): {
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
};

Defined in: packages/kernel/src/procedure.ts:404

Call the procedure, returning both handle and result promise

Parameters ​

ParameterType
...argsExtractArgs<THandler>

Returns ​

ts
{
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
}
NameTypeDefined in
handleExecutionHandle<ExtractReturn<THandler>>packages/kernel/src/procedure.ts:405
resultPromise<ExtractReturn<THandler>>packages/kernel/src/procedure.ts:406

Methods ​

call() ​

ts
call(...args: ExtractArgs<THandler>): {
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
};

Defined in: packages/kernel/src/procedure.ts:409

Parameters ​

ParameterType
...argsExtractArgs<THandler>

Returns ​

ts
{
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
}
NameTypeDefined in
handleExecutionHandle<ExtractReturn<THandler>>packages/kernel/src/procedure.ts:410
resultPromise<ExtractReturn<THandler>>packages/kernel/src/procedure.ts:411

Deprecated ​

Use direct call or .run() instead


run() ​

ts
run(...args: ExtractArgs<THandler>): {
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
};

Defined in: packages/kernel/src/procedure.ts:414

Run the procedure, returning both handle and result promise

Parameters ​

ParameterType
...argsExtractArgs<THandler>

Returns ​

ts
{
  handle: ExecutionHandle<ExtractReturn<THandler>>;
  result: Promise<ExtractReturn<THandler>>;
}
NameTypeDefined in
handleExecutionHandle<ExtractReturn<THandler>>packages/kernel/src/procedure.ts:415
resultPromise<ExtractReturn<THandler>>packages/kernel/src/procedure.ts:416

use() ​

ts
use(...middleware: (
  | MiddlewarePipeline
  | Middleware<ExtractArgs<THandler>>)[]): ProcedureWithHandle<THandler>;

Defined in: packages/kernel/src/procedure.ts:419

Add middleware. Returns a new ProcedureWithHandle.

Parameters ​

ParameterType
...middleware( | MiddlewarePipeline | Middleware<ExtractArgs<THandler>>)[]

Returns ​

ProcedureWithHandle<THandler>


withContext() ​

ts
withContext(ctx: Partial<KernelContext>): ProcedureWithHandle<THandler>;

Defined in: packages/kernel/src/procedure.ts:423

Create variant with merged context. Returns a new ProcedureWithHandle.

Parameters ​

ParameterType
ctxPartial<KernelContext>

Returns ​

ProcedureWithHandle<THandler>


withMetadata() ​

ts
withMetadata(metadata: Record<string, unknown>): ProcedureWithHandle<THandler>;

Defined in: packages/kernel/src/procedure.ts:431

Create variant with merged metadata. Returns a new ProcedureWithHandle.

Parameters ​

ParameterType
metadataRecord<string, unknown>

Returns ​

ProcedureWithHandle<THandler>


withMiddleware() ​

ts
withMiddleware(mw: 
  | MiddlewarePipeline
  | Middleware<ExtractArgs<THandler>>): ProcedureWithHandle<THandler>;

Defined in: packages/kernel/src/procedure.ts:425

Add single middleware. Returns a new ProcedureWithHandle.

Parameters ​

ParameterType
mw| MiddlewarePipeline | Middleware<ExtractArgs<THandler>>

Returns ​

ProcedureWithHandle<THandler>


withTimeout() ​

ts
withTimeout(ms: number): ProcedureWithHandle<THandler>;

Defined in: packages/kernel/src/procedure.ts:429

Create variant with timeout. Returns a new ProcedureWithHandle.

Parameters ​

ParameterType
msnumber

Returns ​

ProcedureWithHandle<THandler>

Released under the MIT License.