UNPKG

@artinet/sdk

Version:

A TypeScript SDK for building collaborative AI agents.

120 lines (119 loc) 6.09 kB
/** * Copyright 2025 The Artinet Project * SPDX-License-Identifier: Apache-2.0 */ import { A2A } from "../types/index.js"; import * as describe from "../create/describe.js"; import { ClientFactoryOptions, ClientConfig, Client, Transport, RequestOptions } from "@a2a-js/sdk/client"; export interface MessengerParams { baseUrl: URL | string; headers?: Record<string, string>; fallbackPath?: string; factory?: ClientFactoryOptions; config?: ClientConfig; } /** * Messenger is the main communication client for interacting with remote A2A-compatible services. * It provides methods for sending messages, retrieving tasks, canceling operations, and handling streaming responses. */ declare class Messenger implements Omit<Transport, "getAuthenticatedExtendedAgentCard" | "getExtendedAgentCard"> { private _headers; private _fallbackPath?; private _baseUrl; private _factory; private clientPromise; constructor(baseUrl: URL | string, _headers?: Record<string, string>, _fallbackPath?: string | undefined, factory?: ClientFactoryOptions, config?: ClientConfig); reset(baseUrl?: URL | string, fallbackPath?: string | undefined): Promise<Client>; get baseUrl(): string; get headers(): Record<string, string>; set headers(headers: Record<string, string>); protected get _client(): Promise<Client>; /** * Retrieves the AgentCard from the A2A server. * @returns A promise resolving to the AgentCard. */ getAgentCard(requestOptions?: RequestOptions): Promise<A2A.AgentCard>; sendMessage(params: A2A.MessageSendParams, options?: RequestOptions): Promise<A2A.SendMessageSuccessResult>; sendMessage(params: describe.MessageParams, options?: RequestOptions): Promise<A2A.SendMessageSuccessResult>; sendMessage(params: describe.MessageSendParamsParams, options?: RequestOptions): Promise<A2A.SendMessageSuccessResult>; sendMessageStream(params: A2A.MessageSendParams, options?: RequestOptions): AsyncGenerator<A2A.Update, void, undefined>; sendMessageStream(params: describe.MessageSendParamsParams, options?: RequestOptions): AsyncGenerator<A2A.Update, void, undefined>; sendMessageStream(params: describe.MessageParams, options?: RequestOptions): AsyncGenerator<A2A.Update, void, undefined>; /** * Retrieves the current state of a task. * @param params The parameters for the tasks/get method. * @returns A promise resolving to the Task object or null. */ getTask(params: A2A.TaskQueryParams, options?: RequestOptions): Promise<A2A.Task>; /** * Cancels a currently running task. * @param params The parameters for the tasks/cancel method. * @returns A promise resolving to the updated Task object (usually canceled state) or null. */ cancelTask(params: A2A.TaskIdParams, options?: RequestOptions): Promise<A2A.Task>; /** * Sets or updates the push notification config for a task. * @param params The parameters for the tasks/pushNotificationConfig/set method (which is TaskPushNotificationConfig). * @returns A promise resolving to the confirmed TaskPushNotificationConfig or null. */ setTaskPushNotificationConfig(params: A2A.TaskPushNotificationConfig, options?: RequestOptions): Promise<A2A.TaskPushNotificationConfig>; /** * Retrieves the currently configured push notification config for a task. * @param params The parameters for the tasks/pushNotificationConfig/get method. * @returns A promise resolving to the TaskPushNotificationConfig or null. */ getTaskPushNotificationConfig(params: A2A.TaskIdParams, options?: RequestOptions): Promise<A2A.TaskPushNotificationConfig>; listTaskPushNotificationConfig(params: A2A.ListTaskPushNotificationConfigParams, options?: RequestOptions): Promise<A2A.ListTaskPushNotificationConfigResult>; deleteTaskPushNotificationConfig(params: A2A.DeleteTaskPushNotificationConfigParams, options?: RequestOptions): Promise<void>; /** * Resubscribes to an existing task's update stream. * @param params Parameters identifying the task to resubscribe to * @returns An AsyncIterable that yields TaskStatusUpdateEvent or TaskArtifactUpdateEvent payloads. */ resubscribeTask(params: A2A.TaskQueryParams, options?: RequestOptions): AsyncGenerator<A2A.Update>; /** * Checks if the server supports a specific capability based on the agent card. * @param capability The capability to check (e.g., 'streaming', 'pushNotifications'). * @returns A promise resolving to true if the capability is supported. */ supports(capability: "streaming" | "pushNotifications" | "stateTransitionHistory" | "extentions"): Promise<boolean>; /** * Adds a single header to be included in all requests. * @param name The header name. * @param value The header value. */ addHeader(name: string, value: string): void; /** * Removes a header. * @param name The header name to remove. */ removeHeader(name: string): void; static create({ baseUrl, headers, fallbackPath, factory, config, }: MessengerParams): Promise<Messenger>; } /** * Creates a new Messenger instance. * @param baseUrl The base URL for the A2A server. * @param headers Optional custom headers to include in all requests. * @param fallbackPath Optional fallback path to use if the agent card is not found at the base URL. * @example * const messenger = createMessenger({ * baseUrl: "http://localhost:4000/a2a", * }); * const card = await messenger.getAgentCard(); * console.log(card); * @example * const messenger = createMessenger({ * baseUrl: "http://localhost:4000/a2a", * fallbackPath: "/agent-card", * }); * const card = await messenger.getAgentCard(); * console.log(card); */ export declare const createMessenger: typeof Messenger.create; export declare const AgentMessenger: typeof Messenger; export type AgentMessenger = Messenger; /** * @deprecated Use {@link createMessenger} instead. */ export declare const A2AClient: typeof Messenger; export {};