@xynehq/jaf
Version:
Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools
343 lines • 14 kB
TypeScript
/**
* Pure functional A2A server integration with JAF
* Extends JAF server with A2A protocol support
*/
import { FastifyInstance } from 'fastify';
import type { A2AServerConfig, JSONRPCRequest, JSONRPCResponse, A2AAgent } from './types.js';
export declare const createA2AServerConfig: (config: A2AServerConfig) => Promise<{
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
}>;
export declare const createA2AServer: (config: A2AServerConfig) => Promise<{
app: FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>;
config: {
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
};
start: () => Promise<void>;
stop: () => Promise<void>;
addAgent: (name: string, agent: A2AAgent) => {
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
};
removeAgent: (name: string) => {
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
};
getAgentCard: () => {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
handleRequest: (request: JSONRPCRequest) => Promise<JSONRPCResponse | AsyncIterable<JSONRPCResponse>>;
}>;
export declare const startA2AServer: (config: A2AServerConfig) => Promise<{
app: FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>;
config: {
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
};
start: () => Promise<void>;
stop: () => Promise<void>;
addAgent: (name: string, agent: A2AAgent) => {
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
};
removeAgent: (name: string) => {
host: string;
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
agentCard: {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
taskProvider: import("./index.js").A2ATaskProvider;
protocolHandler: {
agents: ReadonlyMap<string, A2AAgent>;
modelProvider: any;
agentCard: any;
taskProvider: import("./index.js").A2ATaskProvider | undefined;
handleRequest: (request: JSONRPCRequest, agentName?: string) => Promise<JSONRPCResponse> | AsyncGenerator<JSONRPCResponse, void, unknown>;
};
agents: ReadonlyMap<string, A2AAgent>;
port: number;
};
getAgentCard: () => {
capabilities: Partial<{
readonly streaming?: boolean;
readonly pushNotifications?: boolean;
readonly stateTransitionHistory?: boolean;
}>;
protocolVersion: string;
name: string;
description: string;
url: string;
preferredTransport?: string;
version: string;
provider?: {
readonly organization: string;
readonly url: string;
};
defaultInputModes: readonly string[];
defaultOutputModes: readonly string[];
skills: readonly import("./types.js").AgentSkill[];
securitySchemes?: Readonly<Record<string, any>>;
security?: readonly Record<string, readonly string[]>[];
};
handleRequest: (request: JSONRPCRequest) => Promise<JSONRPCResponse | AsyncIterable<JSONRPCResponse>>;
}>;
//# sourceMappingURL=server.d.ts.map