ToolCall
Unpublished development API. This package is under development and is not available as a published release.
A mapped union preserves each declared name's argument/result relationship. pending means decoded, finalized arguments awaiting execution, not partial streamed JSON. Adapters keep argument fragments private until finalized.
import type { ToolCall } from '@threadplane/core';Declaration
export type ToolCall<TTools extends {
[K in keyof TTools]: ToolContract;
} = Record<string, ToolContract>> = {
[K in keyof TTools & string]: TTools[K] extends {
readonly args: infer A;
readonly result: infer R;
} ? {
readonly id: string;
readonly name: K;
readonly args: SnapshotValue<A>;
} & ({
readonly status: 'pending' | 'running';
} | {
readonly status: 'complete';
readonly result: SnapshotValue<R>;
} | {
readonly status: 'error';
readonly error: string;
}) : never;
}[keyof TTools & string];Type parameters
TTools{ [K in keyof TTools]: ToolContract; }Default:Record<string, ToolContract>