Skip to content

Graphorin API reference v0.12.1


Graphorin API reference / @graphorin/memory / / ConsolidatorConfig

Interface: ConsolidatorConfig

Defined in: packages/memory/src/consolidator/types.ts:148

Locked-down configuration accepted by createConsolidator(...).

Stable

Properties

PropertyModifierTypeDescriptionDefined in
autoPromoteExtractionreadonlybooleanAuto-promotion policy (MCON-2). When true, the standard phase admits an injection-clean extraction fact as active instead of quarantined, so routine distillation surfaces in default recall without a manual memory review --promote. Injection-flagged facts always stay quarantined - the security gate is preserved - and episodes / insights / induced procedures are unaffected (they remain quarantined-until-validated). Defaults off at every tier: it trades the fail-safe default for convenience and is an explicit operator opt-in.packages/memory/src/consolidator/types.ts:238
budgetResetSemanticsreadonly"utc" | "local" | "sliding-24h"-packages/memory/src/consolidator/types.ts:167
ceilingsreadonlyConsolidatorCeilings-packages/memory/src/consolidator/types.ts:152
cheapModelreadonlystring | nullAdvisory label for the standard phase's model - recorded on spans / run telemetry only (MCON-7). Routing happens via CreateConsolidatorOptions.cheapProvider; this string disables nothing.packages/memory/src/consolidator/types.ts:160
contextualRetrievalreadonlyContextualRetrievalModeContextual retrieval for facts written by the standard phase (P1-3). 'late-chunk' (default at every tier) relies on the offline situating-context prefix the shared SemanticMemory computes for every write - no extra LLM call. 'llm' is the opt-in enrichment: the standard phase spends one budgeted cheap-model call per additive write to author a 1-2 sentence situating prefix, then passes it as the write's index text. 'off' indexes the bare text. The 'llm' mode is consolidator-only by construction - the hot write path never has a provider for contextualization.packages/memory/src/consolidator/types.ts:277
curatedBlocksreadonlyreadonly ResolvedCuratedBlock[]Curated working blocks the deep phase maintains (wave-D D3) - the generalisation of the learned-context pass to a registered list. Resolved: the learnedContext: true sugar contributes a learned_context entry; labels are unique and never profile. Empty ⇒ no curated-block rewrites run.packages/memory/src/consolidator/types.ts:296
decayArchiveThresholdreadonlynumber-packages/memory/src/consolidator/types.ts:176
decayCapacityreadonlynumber | nullCapacity-bounded eviction target for the light phase (X-1). When set, each light pass archives the lowest-salience live facts in the LRU decay window down to this many - cost / staleness control, not an accuracy lever. null (the default at every tier) leaves storage unbounded, so behaviour is identical to pre-X-1. Archiving is a soft, recoverable move; nothing is hard-deleted.packages/memory/src/consolidator/types.ts:185
decayTauDaysreadonlynumber-packages/memory/src/consolidator/types.ts:175
deepModelreadonlystring | nullAdvisory label for the deep phase's model - telemetry only (MCON-7). Routing happens via CreateConsolidatorOptions.deepProvider.packages/memory/src/consolidator/types.ts:166
dlqBaseBackoffMsreadonlynumber-packages/memory/src/consolidator/types.ts:210
dlqMaxBackoffMsreadonlynumber-packages/memory/src/consolidator/types.ts:211
dlqMaxRetriesreadonlynumber-packages/memory/src/consolidator/types.ts:209
formEpisodesreadonlybooleanAuto-form a quarantined episode from each processed standard-phase slice (P1-2). Defaults on at the standard+ tiers, off at free / cheap / custom. The episode summary is one budgeted LLM call; when the budget is exhausted (or no episodic tier is wired) the phase degrades to fact-only behaviour.packages/memory/src/consolidator/types.ts:219
importanceScoringreadonlybooleanAsk the episode-summarization call for an LLM importance score (1-10, normalized to [0, 1]) so episodic triple-signal retrieval (recency × relevance × importance) runs on all three signals (P1-2). Importance is always a soft signal - it never gates retention. Defaults track formEpisodes.packages/memory/src/consolidator/types.ts:227
importanceThresholdreadonlynumberSum of recent episode importance (each in [0, 1]) at or above which reflection fires. Below it the pass makes no LLM call. Defaults to 3.packages/memory/src/consolidator/types.ts:255
ingestGatereadonly| MemoryIngestGate | nullB3 (item 15): deterministic pre-extraction admission gate. null (default) admits everything. See MemoryIngestGate.packages/memory/src/consolidator/types.ts:173
learnedContextreadonlybooleanMaintain the learned-context digest block (D3): after the deep phase, one budgeted LLM call rewrites the reserved learned_context working block from the previous digest + recent episodes / active insights / active procedures, so the system prompt carries a compact standing summary. Defaults off at every tier (Wave-D trial) - a no-op without a working tier handle.packages/memory/src/consolidator/types.ts:286
learnedContextMaxCharsreadonlynumberCharacter bound enforced on the learned-context digest. Default 1200.packages/memory/src/consolidator/types.ts:288
lockWaitMsreadonlynumber-packages/memory/src/consolidator/types.ts:174
maxDeepConflictsPerRunreadonlynumber-packages/memory/src/consolidator/types.ts:208
maxStandardBatchSizereadonlynumber-packages/memory/src/consolidator/types.ts:193
maxTranscriptCharsreadonlynumberInput-side transcript budget for the standard phase, in characters (W-081; chars/4 is the package's deterministic token proxy, so the 60k default approximates 15k tokens). maxStandardBatchSize bounds only the MESSAGE COUNT of a slice; without a size budget a batch of near-cap messages can render to hundreds of kilobytes, overflow a cheap-tier model context on every retry and wedge the cursor permanently. A transcript over this budget is half-split BEFORE the provider call (same convergent recursion as the finishReason: 'length' output handling); a single message that alone exceeds the budget is tail-truncated and recorded on the phase span. Conservative for CJK scripts by design.packages/memory/src/consolidator/types.ts:207
noiseFiltersreadonlyreadonly ("default" | "minimal" | "none")[]-packages/memory/src/consolidator/types.ts:168
onExceedreadonlyOnBudgetExceed-packages/memory/src/consolidator/types.ts:153
phasesreadonlyreadonly ConsolidatorPhase[]-packages/memory/src/consolidator/types.ts:151
profileProjectionreadonlyResolvedProfileProjectionConfig | nullProfile-projection pass configuration (wave-D D2): after the curated-block passes, one budgeted LLM call projects ACTIVE facts into the reserved read-only profile working block (topic / sub-topic / content slots with fact-id provenance). null (the default at every tier) disables the pass. Configured through createMemory({ profile }), not per-tier.packages/memory/src/consolidator/types.ts:305
promotionreadonlyResolvedPromotionPolicy | nullDeterministic quarantine-exit policy (wave-D D4, D-7): the deep phase promotes quarantined facts whose recall evidence clears every threshold, through the audited SemanticMemory.validate path. null (default at every tier) disables the step. Enabling it REQUIRES the B3 ingest gate (fail-closed config check in createMemory).packages/memory/src/consolidator/types.ts:314
reflectionreadonlybooleanRun the deep-phase reflection pass (P1-1): when accumulated episode importance crosses importanceThreshold, synthesize higher-order, cited insights over recent memories (Generative Agents). Insights land quarantined + provenance: 'reflection' and are ranked below the facts they cite. Defaults on at the full tier only (off at free / cheap / standard / custom) - it is the most LLM-intensive phase. A no-op without an episodic tier or an insight-capable storage adapter.packages/memory/src/consolidator/types.ts:249
reflectionMaxQuarantinedInsightsreadonlynumberW-082: cap on the unreviewed (quarantined) insight queue. Quarantined insights are exempt from reflection pass-decay - their decay clock starts at validation - and this bound keeps the review queue from growing without limit: beyond it the oldest quarantined insights are pruned. Defaults to 100.packages/memory/src/consolidator/types.ts:265
reflectionMaxQuestionsreadonlynumberUpper bound on salient questions reflection asks per pass. Defaults to 3.packages/memory/src/consolidator/types.ts:257
salienceWeightsreadonlySalienceWeightsWeights for the multi-signal salience score (X-1) that orders both threshold archiving and capacity eviction. Defaults to DEFAULT_SALIENCE_WEIGHTS; with neutral importance, active status, and first-party provenance salience equals plain retention.packages/memory/src/consolidator/types.ts:192
tierreadonlyConsolidatorTier-packages/memory/src/consolidator/types.ts:150
triggersreadonlyreadonly ConsolidatorTriggerSpec[]-packages/memory/src/consolidator/types.ts:149