| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| import { causalAdapter } from "./causal.adapter.ts"; |
| import { codeModelsAdapter } from "./code-models.adapter.ts"; |
| import { dataAdapter } from "./data.adapter.ts"; |
| import { drugAdapter } from "./drug.adapter.ts"; |
| import { internalExperienceAdapter } from "./internal-experience.adapter.ts"; |
| import { literatureAdapter } from "./literature.adapter.ts"; |
| import { userUploadsAdapter } from "./user-uploads.adapter.ts"; |
| import type { |
| KnowledgeAdapter, |
| KnowledgeKind, |
| KnowledgeQuery, |
| KnowledgeResult, |
| } from "./types.ts"; |
|
|
| const ADAPTERS: Readonly<Record<KnowledgeKind, KnowledgeAdapter>> = { |
| literature: literatureAdapter, |
| causal_network: causalAdapter, |
| drug_network: drugAdapter, |
| internal_experience: internalExperienceAdapter, |
| code_models: codeModelsAdapter, |
| data: dataAdapter, |
| user_uploads: userUploadsAdapter, |
| }; |
|
|
| export async function queryExternalKnowledge( |
| q: KnowledgeQuery, |
| ): Promise<KnowledgeResult> { |
| const adapter = ADAPTERS[q.kind]; |
| if (!adapter) { |
| throw new Error(`unknown knowledge kind: ${q.kind}`); |
| } |
| return adapter.query(q); |
| } |
|
|
| export function getAdapterStatus(): Array<{ |
| kind: KnowledgeKind; |
| status: "real" | "interface_only"; |
| }> { |
| return (Object.keys(ADAPTERS) as KnowledgeKind[]).map((k) => ({ |
| kind: k, |
| status: ADAPTERS[k].status, |
| })); |
| } |
|
|
| |
| |
| |
| |
| export function logAdapterStatusBanner( |
| log?: { info: (msg: string) => void }, |
| ): void { |
| const out = log ?? { info: (m: string) => console.info(m) }; |
| out.info("[external-knowledge] adapter status:"); |
| for (const { kind, status } of getAdapterStatus()) { |
| const tag = status === "real" ? "REAL" : "interface_only"; |
| out.info(` - ${kind.padEnd(22)} ${tag}`); |
| } |
| } |
|
|
| export type { KnowledgeAdapter, KnowledgeKind, KnowledgeQuery, KnowledgeResult } from "./types.ts"; |
| export { NotImplementedAdapter, KnowledgeBudgetExceeded } from "./errors.ts"; |
| export { _setTelemetryTestHook, fingerprintParams } from "./telemetry.ts"; |
| export { _resetBudgetCounters } from "./budget-guard.ts"; |
| export { _clearLiteratureCache } from "./literature.adapter.ts"; |
|
|