Spaces:
Running
Running
| import OpenAI from 'openai'; | |
| import { AgentManager } from './agent-manager'; | |
| import { FilePersistenceAdapter } from './file-persistence-adapter'; | |
| let sharedAgentManager: AgentManager | null = null; | |
| let sharedOpenAIClient: OpenAI | null = null; | |
| export function getSharedOpenAIClient(): OpenAI { | |
| if (!sharedOpenAIClient) { | |
| sharedOpenAIClient = new OpenAI({ | |
| apiKey: process.env.CZ_OPENAI_API_KEY || '', | |
| }); | |
| console.log('Shared OpenAI client created for Responses API'); | |
| } | |
| return sharedOpenAIClient; | |
| } | |
| export function getSharedAgentManager(): AgentManager { | |
| if (!sharedAgentManager) { | |
| // Legacy support - using AI SDK for backwards compatibility | |
| const { createOpenAI } = require('@ai-sdk/openai'); | |
| const customOpenAI = createOpenAI({ | |
| apiKey: process.env.CZ_OPENAI_API_KEY || '', | |
| }); | |
| const persistenceAdapter = new FilePersistenceAdapter(); | |
| sharedAgentManager = new AgentManager(customOpenAI.chat(process.env.MODEL_NAME || 'gpt-5'), persistenceAdapter); | |
| console.log('Shared Agent Manager created with file persistence'); | |
| } | |
| return sharedAgentManager; | |
| } | |
| /** | |
| * Reset the shared singleton instances for testing purposes. | |
| * This should ONLY be called in test environments. | |
| */ | |
| export function resetSharedAgentManagerForTesting(): void { | |
| sharedAgentManager = null; | |
| sharedOpenAIClient = null; | |
| console.log('Shared Agent Manager and OpenAI client reset for testing'); | |
| } |