Skip to content
4 min read · 713 words

Class: ToolCall

Defined in: src/lib/classes/tool_call.ts:230

An immutable, validated tool call record associated with a turn.

Remarks

Represents a completed tool invocation from the conversation history — results, completedAt, isComplete, and isError are all present and required. Temporal fields are normalised to Luxon DateTime instances at construction time.

Constructors

Constructor

ts
new ToolCall(raw: RawToolCall): ToolCall;

Defined in: src/lib/classes/tool_call.ts:312

Parameters

ParameterTypeDescription
rawRawToolCallThe raw tool call input validated against rawToolCallSchema.

Returns

ToolCall

Throws

@nhtio/adk!E_INVALID_INITIAL_TOOL_CALL_VALUE when raw does not satisfy the schema.

Properties

PropertyModifierTypeDefault valueDescriptionDefined in
argsreadonlyRecord<string, unknown>undefinedArguments the model supplied for this tool call, always as a plain object.src/lib/classes/tool_call.ts:258
checksumreadonlystringundefinedIntegrity checksum over tool and args.src/lib/classes/tool_call.ts:260
completedAtreadonlyDateTimeundefinedWhen the tool call completed.src/lib/classes/tool_call.ts:293
createdAtreadonlyDateTimeundefinedWhen this tool call was first created.src/lib/classes/tool_call.ts:289
fromArtifactToolreadonlybooleanundefinedtrue when this tool call originated from an @nhtio/adk!ArtifactTool invocation. Used by SpooledArtifact.forgeTools(ctx) to filter out forged-tool results from the callId enum it builds.src/lib/classes/tool_call.ts:281
idreadonlystringundefinedStable unique identifier for this tool call; correlates the request with its result.src/lib/classes/tool_call.ts:254
inlinereadonlybooleanundefinedfalse (default) instructs LLM adapters to surface a SpooledArtifact result as a handle reference (body kept out of the prompt); true renders the result inline. See RawToolCall.inline.src/lib/classes/tool_call.ts:287
isCompletereadonlybooleanundefinedtrue once the tool call has finished (successfully or not).src/lib/classes/tool_call.ts:262
isErrorreadonlybooleanundefinedtrue when the tool execution produced an error; inspect results for detail.src/lib/classes/tool_call.ts:264
resultsreadonlyToolCallResultsundefinedResult returned by the tool, or error detail when isError is true. Remarks One of three silos — see ToolCallResults. @nhtio/adk!SpooledArtifact or SpooledArtifact[] for normal text-output @nhtio/adk!Tool calls; @nhtio/adk!Media or Media[] for tool calls whose handler returned binary modality output; @nhtio/adk!Tokenizable for @nhtio/adk!ArtifactTool calls (see ToolCall.fromArtifactTool).src/lib/classes/tool_call.ts:275
toolreadonlystringundefinedName of the tool the model has requested.src/lib/classes/tool_call.ts:256
updatedAtreadonlyDateTimeundefinedWhen this tool call was last modified.src/lib/classes/tool_call.ts:291
schemastaticObjectSchema<RawToolCall>rawToolCallSchemaValidator schema that accepts a RawToolCall object. Remarks Reusable fragment for any schema that needs to validate or nest a tool call entry.src/lib/classes/tool_call.ts:237

Methods

[ENCODE_METHOD]()

ts
ENCODE_METHOD: unknown;

Defined in: src/lib/classes/tool_call.ts:409

Serialise this ToolCall into an @nhtio/encoder snapshot.

Returns

unknown

A RawToolCall-shaped snapshot.

Remarks

Emits a RawToolCall-shaped object. results is the live ToolCallResults union — a @nhtio/adk!Tokenizable, @nhtio/adk!SpooledArtifact(s), or @nhtio/adk!Media(s) — which the encoder recurses into; reader-backed results round-trip as handles (and throw @nhtio/adk!E_READER_NOT_DESCRIBABLE if a backing reader cannot describe itself). The args object and the producer-supplied checksum are emitted verbatim, so the constructor's checksum re-validation passes on decode. Round-trips via ToolCall.[DECODE_METHOD].


[DECODE_METHOD]()

ts
static DECODE_METHOD: ToolCall;

Defined in: src/lib/classes/tool_call.ts:432

Reconstruct a ToolCall from a ToolCall.[ENCODE_METHOD] snapshot.

Parameters

ParameterTypeDescription
dataunknownThe snapshot produced by ToolCall.[ENCODE_METHOD].

Returns

ToolCall

A fully-validated ToolCall.


isToolCall()

ts
static isToolCall(value: unknown): value is ToolCall;

Defined in: src/lib/classes/tool_call.ts:249

Returns true if value is a ToolCall instance.

Parameters

ParameterTypeDescription
valueunknownThe value to test.

Returns

value is ToolCall

true when value is a ToolCall instance.

Remarks

Uses @nhtio/adk!isInstanceOf for cross-realm safety — instanceof would fail for instances created in a different module copy or VM context.