UNPKG

autoagent-cli

Version:

Run autonomous AI agents using Claude or Gemini for task execution

66 lines (65 loc) 2.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MockProvider = exports.GeminiProvider = exports.ClaudeProvider = exports.Provider = void 0; exports.createProvider = createProvider; exports.getAvailableProviders = getAvailableProviders; exports.getFirstAvailableProvider = getFirstAvailableProvider; const Provider_1 = require("./Provider"); Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_1.Provider; } }); const ClaudeProvider_1 = require("./ClaudeProvider"); Object.defineProperty(exports, "ClaudeProvider", { enumerable: true, get: function () { return ClaudeProvider_1.ClaudeProvider; } }); const GeminiProvider_1 = require("./GeminiProvider"); Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return GeminiProvider_1.GeminiProvider; } }); const MockProvider_1 = require("./MockProvider"); Object.defineProperty(exports, "MockProvider", { enumerable: true, get: function () { return MockProvider_1.MockProvider; } }); function createProvider(providerType) { switch (providerType) { case 'claude': return new ClaudeProvider_1.ClaudeProvider(); case 'gemini': return new GeminiProvider_1.GeminiProvider(); case 'mock': return new MockProvider_1.MockProvider(); default: throw new Error(`Invalid provider type: ${providerType}`); } } async function getAvailableProviders() { const providers = [ new ClaudeProvider_1.ClaudeProvider(), new GeminiProvider_1.GeminiProvider(), new MockProvider_1.MockProvider() ]; const availabilityChecks = await Promise.all(providers.map(async (provider) => ({ name: provider.name, available: await provider.checkAvailability() }))); return availabilityChecks .filter(({ available }) => available) .map(({ name }) => name); } async function getFirstAvailableProvider(preferredProviders) { if (process.env.AUTOAGENT_MOCK_PROVIDER === 'true') { try { const mockProvider = createProvider('mock'); if (await mockProvider.checkAvailability()) { return mockProvider; } } catch (error) { } } const checkOrder = preferredProviders || ['claude', 'gemini', 'mock']; for (const providerType of checkOrder) { try { const provider = createProvider(providerType); if (await provider.checkAvailability()) { return provider; } } catch (error) { continue; } } return null; }