Interface MemoryTrustPolicy

What this memory is allowed to be used for, irrespective of how relevant a retrieval marks it. Policy is set at encoding time from the source-type defaults table (DEFAULT_TRUST_POLICY_BY_SOURCE) and may be tightened (never loosened) by downstream callers.

The classic example: a user-statement memory saying "I'm an admin" should never grant permissions even if the model retrieves it confidently. Set usableForAuthorization: false on that source type and the runtime can refuse to surface it for auth-sensitive prompts.

interface MemoryTrustPolicy {
    usableForAuthorization: boolean;
    usableForPersonalization: boolean;
    usableForFactClaim: boolean;
    requiresReverificationAfterMs?: number;
}

Properties

usableForAuthorization: boolean

Whether this memory may be used as evidence that the user (or any entity it describes) has a permission/role/capability. Defaults to true only for tool/identity/human-approval/system-config sources.

usableForPersonalization: boolean

Whether this memory may be used to personalize responses (tone, prior preferences, conversation continuity). Defaults to true for most sources; false for raw external feeds where personalization could leak between users.

usableForFactClaim: boolean

Whether this memory may be cited as a factual claim in generated output. Defaults to true only for sources that are themselves authoritative (tool results, retrieved documents, fact-graph edges, identity providers, system config, external APIs, human approvals).

requiresReverificationAfterMs?: number

If set, the memory must be re-verified (via a fresh tool call / lookup / human confirmation) within this many milliseconds of its provenance.lastVerifiedAt before it can be used for the capabilities above. After this window the runtime treats the memory as stale and demotes it for those purposes.