/** * Personalization — a persisted profile per subject (user id, * account id, device). The agent reads it on every run to * condition responses; the runtime updates it when new facts * appear. */ interface PersonalizationProfile { subjectId: string; /** Human-editable notes, facts, preferences. */ traits: Record; /** ISO timestamp of the latest update. */ updatedAt: string; } interface PersonalizationStore { get: (subjectId: string) => Promise; set: (profile: PersonalizationProfile) => Promise; merge: (subjectId: string, traits: Record) => Promise; delete?: (subjectId: string) => Promise; } /** * In-memory personalization store — tests, single-process demos. * Bring your own for production (Postgres, Redis, DynamoDB). */ declare function createInMemoryPersonalization(): PersonalizationStore; /** * Render a profile into a system-prompt fragment the runtime can * prepend. Kept intentionally short — full profile dumps bloat * context and leak unnecessary detail to the model. */ declare function renderProfileContext(profile: PersonalizationProfile | null): string; export { type PersonalizationProfile, type PersonalizationStore, createInMemoryPersonalization, renderProfileContext };