Skip to main content

Class: ToolCall

Defined in: src/lib/logger/components/toolCall.ts:61 Represents a function or tool call. Tool calls capture the invocation of external APIs, internal functions, or any callable operations made via tool calls in your AI application. They track the complete lifecycle including arguments, results, timing, and errors. ToolCall

Example

const toolCallArgs = {
  userId: '12345',
  fields: ['name', 'email', 'preferences']
};

const toolCall = container.toolCall({
  id: 'database-query-001',
  name: 'query_user_database',
  description: 'Queries the user database for customer information',
  args: JSON.stringify(toolCallArgs),
});

// Execute and record result
try {
  const userData = await query(toolCallArgs);
  toolCall.result(JSON.stringify(userData));
} catch (error) {
  toolCall.error({
    message: error.message,
    code: 'DB_CONNECTION_ERROR',
    type: 'DatabaseError'
  });
}

Extends

Constructors

Constructor

new ToolCall(config, writer): ToolCall
Defined in: src/lib/logger/components/toolCall.ts:78 Creates a new tool call log entry.

Parameters

config
ToolCallConfig Configuration object defining the tool call
writer
LogWriter Log writer instance for persisting tool call data

Returns

ToolCall

Example

const toolCall = container.toolCall({
  id: 'api-call-001',
  name: 'get_user_profile',
  description: 'Fetches user profile data from the database',
  args: JSON.stringify({ userId: '12345', fields: ['name', 'email'] }),
});

Overrides

BaseContainer.constructor

Accessors

id

Get Signature

get id(): string
Defined in: src/lib/logger/components/base.ts:80 Gets the unique identifier for this container.
Returns
string The container’s unique ID

Inherited from

BaseContainer.id

Methods

addMetadata()

addMetadata(metadata): void
Defined in: src/lib/logger/components/base.ts:124 Adds metadata to this container for additional context and debugging. Any data type could be added as the value in the metadata record.

Parameters

metadata
Record<string, unknown> Key-value pairs of metadata

Returns

void void

Example

container.addMetadata({
  requestId: 'req-123',
  userAgent: 'Mozilla/5.0...',
  processingTime: 1500
});

Inherited from

BaseContainer.addMetadata

addTag()

addTag(key, value): void
Defined in: src/lib/logger/components/base.ts:94 Adds a tag to this container for categorization and filtering.

Parameters

key
string The tag key
value
string The tag value

Returns

void void

Example

container.addTag('environment', 'production');
container.addTag('user_type', 'premium');

Inherited from

BaseContainer.addTag

data()

data(): Record<string, any>
Defined in: src/lib/logger/components/toolCall.ts:155 Returns the complete data representation of this tool call.

Returns

Record<string, any> Tool call data.

Example

const toolData = toolCall.data();

Overrides

BaseContainer.data

end()

end(): void
Defined in: src/lib/logger/components/base.ts:163 Marks this container as ended and records the end timestamp.

Returns

void void

Example

// End a container when processing is complete
container.end();

Inherited from

BaseContainer.end

error()

error(error): void
Defined in: src/lib/logger/components/toolCall.ts:128 Records an error that occurred during this tool call and ends it.

Parameters

error
ToolCallError Error information including message, code, and type

Returns

void void

Example

toolCall.error({
  message: 'Database connection failed',
  code: 'DB_CONNECTION_ERROR',
  type: 'DatabaseError'
});

result()

result(result): void
Defined in: src/lib/logger/components/toolCall.ts:96 Records the successful result of this tool call and ends it.

Parameters

result
string The result returned by the tool as a string

Returns

void void

Example

toolCall.result(JSON.stringify({
  userId: '12345',
  name: 'John Doe',
  email: '[email protected]'
}));

addMetadata_()

static addMetadata_(writer, entity, id, metadata): void
Defined in: src/lib/logger/components/base.ts:144 Static method to add metadata to any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
metadata
Record<string, unknown> The metadata to add

Returns

void void

Inherited from

BaseContainer.addMetadata_

addTag_()

static addTag_(writer, entity, id, key, value): void
Defined in: src/lib/logger/components/base.ts:108 Static method to add a tag to any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
key
string The tag key
value
string The tag value

Returns

void void

Inherited from

BaseContainer.addTag_

end_()

static end_(writer, entity, id, data?): void
Defined in: src/lib/logger/components/base.ts:177 Static method to end any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
data?
any Optional additional data to include with the end event

Returns

void void

Inherited from

BaseContainer.end_

error_()

static error_(writer, id, error): void
Defined in: src/lib/logger/components/toolCall.ts:141 Static method to record an error for any tool call by ID.

Parameters

writer
LogWriter The log writer instance
id
string The tool call ID
error
ToolCallError Error information

Returns

void void

result_()

static result_(writer, id, result): void
Defined in: src/lib/logger/components/toolCall.ts:109 Static method to record a result for any tool call by ID.

Parameters

writer
LogWriter The log writer instance
id
string The tool call ID
result
string The result returned by the tool

Returns

void void