@threadplane/coreTypeAliasv0.0.0

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>