MCPcopy Create free account
hub / github.com/QuantiaAI/helm-agents / EngineService

Class EngineService

apps/api/src/engine/engine.service.ts:39–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37 */
38@Injectable()
39export class EngineService {
40 private cache = new Map<string, Engine>();
41
42 constructor(
43 private readonly settings: SettingsService,
44 private readonly keys: KeysService,
45 ) {}
46
47 getForUser(userId: string): Engine {
48 let engine = this.cache.get(userId);
49 if (!engine) {
50 const runtime = settingsToRuntime(this.settings.get(userId));
51 const config = resolveConfig({ runtime: runtime as never });
52 let overrides = demoOverrides();
53 if (!overrides) {
54 const env = this.keys.envMap(userId);
55 const base = {
56 provider: config.llmProvider,
57 baseUrl: config.backendUrl ?? undefined,
58 env,
59 };
60 overrides = {
61 quick: createLlmClient({ ...base, model: config.quickThinkLlm }),
62 deep: createLlmClient({ ...base, model: config.deepThinkLlm }),
63 };
64 }
65 engine = createEngine(config, overrides);
66 this.cache.set(userId, engine);
67 }
68 return engine;
69 }
70
71 /** Drop a user's cached engine so their next run picks up new settings/keys. */
72 invalidate(userId: string): void {
73 this.cache.delete(userId);
74 }
75}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected