UNPKG

@xynehq/jaf

Version:

Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools

66 lines 1.99 kB
import { createJAFServer } from './server'; /** * Start a development server for testing agents locally (functional approach) * * @param agents - Map of agent name to agent definition, or array of agents * @param runConfig - Configuration for running agents * @param options - Server configuration options (including optional memory provider) * @returns Promise that resolves to server instance * * @example * ```typescript * import { runServer, makeLiteLLMProvider, createInMemoryProvider } from 'functional-agent-framework'; * * const myAgent = { * name: 'MyAgent', * instructions: 'You are a helpful assistant', * tools: [] * }; * * const modelProvider = makeLiteLLMProvider('http://localhost:4000'); * const memoryProvider = createInMemoryProvider(); * * const server = await runServer( * [myAgent], * { modelProvider }, * { port: 3000, defaultMemoryProvider: memoryProvider } * ); * ``` */ export async function runServer(agents, runConfig, options = {}) { // Convert agents array to Map if needed let agentRegistry; if (Array.isArray(agents)) { agentRegistry = new Map(); for (const agent of agents) { agentRegistry.set(agent.name, agent); } } else { agentRegistry = agents; } // Validate that we have at least one agent if (agentRegistry.size === 0) { throw new Error('At least one agent must be provided'); } // Create complete run config const completeRunConfig = { agentRegistry, ...runConfig }; // Create server config const serverConfig = { port: 3000, host: '127.0.0.1', cors: false, ...options, runConfig: completeRunConfig, agentRegistry }; // Create and start functional server const server = createJAFServer(serverConfig); await server.start(); return server; } export { createJAFServer } from './server'; //# sourceMappingURL=index.js.map