cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

40 lines
886 B
TypeScript

export class AdapterRegistry {
private readonly adapters = new Map<string, unknown>();
register<T>(slot: string, adapter: T): void {
this.adapters.set(slot, adapter);
}
get<T>(slot: string): T {
const adapter = this.adapters.get(slot);
if (!adapter) {
throw new Error(`No adapter registered for ${slot}`);
}
return adapter as T;
}
tryGet<T>(slot: string): T | undefined {
return this.adapters.get(slot) as T | undefined;
}
}
export const slots = {
runtime: "runtime",
sandbox: "sandbox",
memory: "memory",
home: "home",
artifacts: "artifacts",
secrets: "secrets",
jobs: "jobs",
realtime: "realtime",
notifications: "notifications",
models: "models",
connector: "connector",
auth: "connection-auth",
runner: "runner",
voice: "voice",
web: "web",
browser: "browser",
cloudAgent: "cloud-agent",
} as const;