MCPcopy Index your code
hub / github.com/di-sukharev/opencommit / getEngine

Function getEngine

src/utils/engine.ts:20–83  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

18import { resolveProxy } from './proxy';
19
20export function getEngine(): AiEngine {
21 const config = getConfig();
22 const provider = config.OCO_AI_PROVIDER;
23
24 const customHeaders = parseCustomHeaders(config.OCO_API_CUSTOM_HEADERS);
25 const resolvedProxy = resolveProxy(config.OCO_PROXY);
26
27 const DEFAULT_CONFIG = {
28 model: config.OCO_MODEL!,
29 maxTokensOutput: config.OCO_TOKENS_MAX_OUTPUT!,
30 maxTokensInput: config.OCO_TOKENS_MAX_INPUT!,
31 baseURL: config.OCO_API_URL!,
32 proxy: resolvedProxy,
33 apiKey: config.OCO_API_KEY!,
34 customHeaders
35 };
36
37 switch (provider) {
38 case OCO_AI_PROVIDER_ENUM.OLLAMA:
39 return new OllamaEngine({
40 ...DEFAULT_CONFIG,
41 ollamaThink: config.OCO_OLLAMA_THINK
42 });
43
44 case OCO_AI_PROVIDER_ENUM.LLAMACPP:
45 return new LlamaCppEngine(DEFAULT_CONFIG);
46
47 case OCO_AI_PROVIDER_ENUM.ANTHROPIC:
48 return new AnthropicEngine(DEFAULT_CONFIG);
49
50 case OCO_AI_PROVIDER_ENUM.TEST:
51 return new TestAi(config.OCO_TEST_MOCK_TYPE as TestMockType);
52
53 case OCO_AI_PROVIDER_ENUM.GEMINI:
54 return new GeminiEngine(DEFAULT_CONFIG);
55
56 case OCO_AI_PROVIDER_ENUM.AZURE:
57 return new AzureEngine(DEFAULT_CONFIG);
58
59 case OCO_AI_PROVIDER_ENUM.FLOWISE:
60 return new FlowiseEngine(DEFAULT_CONFIG);
61
62 case OCO_AI_PROVIDER_ENUM.GROQ:
63 return new GroqEngine(DEFAULT_CONFIG);
64
65 case OCO_AI_PROVIDER_ENUM.MISTRAL:
66 return new MistralAiEngine(DEFAULT_CONFIG);
67
68 case OCO_AI_PROVIDER_ENUM.MLX:
69 return new MLXEngine(DEFAULT_CONFIG);
70
71 case OCO_AI_PROVIDER_ENUM.DEEPSEEK:
72 return new DeepseekEngine(DEFAULT_CONFIG);
73
74 case OCO_AI_PROVIDER_ENUM.AIMLAPI:
75 return new AimlApiEngine(DEFAULT_CONFIG);
76
77 case OCO_AI_PROVIDER_ENUM.OPENROUTER:

Calls 3

getConfigFunction · 0.90
parseCustomHeadersFunction · 0.90
resolveProxyFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…