@xynehq/jaf
Version:
Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools
66 lines • 1.99 kB
JavaScript
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