import type { Logger } from "@onenomad/przm-cortex-core"; import type { LLMRouter } from "@onenomad/przm-cortex-llm-core"; import type { MemoryConfig } from "../config.js"; import type { EngramClient } from "./engram.js"; export interface MemoryBootResult { /** The backend Cortex will use for ingest/search/health from this point. */ client: EngramClient; /** Which backend was actually selected. Always 'pgvector' since * Cortex 0.3 — the engram backend was dropped to make Cortex * standalone-deployable (no @onenomad/engram-memory runtime dep). * Old yamls with primary='engram' get auto-translated to pgvector * embedded with a warn-level log so operators notice the change. */ selected: "pgvector"; /** Always true now (single backend, no fallback). Kept on the * result shape for back-compat with callers reading it. */ primaryHealthy: boolean; } /** * Boot the memory backend. * * Cortex 0.3+ uses pgvector exclusively. Two modes: * - embedded: PGlite in-process (zero deps, default for personal installs) * - external: connection string to your own Postgres + pgvector * * Embeddings come from a Cortex-internal Xenova model (MiniLM-L6-v2, * 384-dim) by default; an LLM router takes over when one is wired * (provider-specific embedding model for higher quality on cloud * deploys with credentials). * * Migration: yamls that still say `memory.primary: engram` are * auto-translated to pgvector embedded (warn-logged so the operator * sees the rewrite). The engram backend was Pyre's per-user memory * concern; Cortex is the multi-tenant knowledge engine and is now * entirely separate. */ export declare function createMemoryClient(args: { memory: MemoryConfig; /** Optional. When wired, embeddings come from the configured * provider's embed task. When omitted, Cortex's local Xenova * embedder (Cortex-internal) handles embeddings. */ llmRouter?: LLMRouter; logger: Logger; }): Promise; //# sourceMappingURL=memory.d.ts.map