API ReferenceClient Package

Client Package

The @dexwox-labs/a2a-client package provides client libraries for connecting to and interacting with A2A servers.

Overview

The client package includes three main client classes:

Installation

npm install @dexwox-labs/a2a-client
# or
npm install @dexwox-labs/a2a-node  # includes all packages

Quick Start

import { AgentClient, MessageClient, TaskClient } from '@dexwox-labs/a2a-client';
 
// Create clients
const agentClient = new AgentClient({ baseUrl: 'https://api.example.com' });
const messageClient = new MessageClient({ baseUrl: 'https://api.example.com' });
const taskClient = new TaskClient({ baseUrl: 'https://api.example.com' });
 
// Discover agents
const agents = await agentClient.resolveAgents();
 
// Send a message
const messageId = await messageClient.sendMessage([
  { type: 'text', content: 'Hello!' }
], agents[0].id);
 
// Create a task
const task = await taskClient.createTask({
  name: 'process-data',
  input: { data: 'example' }
});

Classes

AgentClient

AgentClient - Main class for agent discovery and management.

Key methods:

  • resolveAgents() - Discover available agents
  • getAgentCard(agentId) - Get specific agent information

MessageClient

MessageClient - Handle message sending and streaming.

Key methods:

  • sendMessage(parts, agentId) - Send messages to agents
  • streamMessages(conversationId) - Stream real-time messages

TaskClient

TaskClient - Manage task lifecycle and monitoring.

Key methods:

  • createTask(taskData) - Create new tasks
  • getTask(taskId) - Get task status
  • cancelTask(taskId) - Cancel running tasks

Interfaces

MessageClientOptions

MessageClientOptions - Configuration options for MessageClient.

StreamOptions

StreamOptions - Options for message streaming.

Error Handling

All client methods can throw A2A-specific errors:

import { A2AError, TaskNotFoundError } from '@dexwox-labs/a2a-core';
 
try {
  const task = await taskClient.getTask('invalid-id');
} catch (error) {
  if (error instanceof TaskNotFoundError) {
    console.log('Task not found');
  } else if (error instanceof A2AError) {
    console.log('A2A Error:', error.code, error.message);
  }
}

Configuration

All clients accept common configuration options:

const clientConfig = {
  baseUrl: 'https://api.example.com',
  timeout: 30000,
  retries: 3,
  headers: {
    'Authorization': 'Bearer token',
    'User-Agent': 'MyApp/1.0.0'
  }
};
 
const agentClient = new AgentClient(clientConfig);
const messageClient = new MessageClient(clientConfig);
const taskClient = new TaskClient(clientConfig);

Next Steps