Graphorin API reference v0.7.0
Graphorin API reference / @graphorin/memory / / ConsolidatorConfig
Interface: ConsolidatorConfig
Defined in: packages/memory/src/consolidator/types.ts:111
Locked-down configuration accepted by createConsolidator(...).
Stable
Properties
| Property | Modifier | Type | Description | Defined in |
|---|---|---|---|---|
autoPromoteExtraction | readonly | boolean | Auto-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:196 |
budgetResetSemantics | readonly | "utc" | "local" | "sliding-24h" | - | packages/memory/src/consolidator/types.ts:130 |
ceilings | readonly | ConsolidatorCeilings | - | packages/memory/src/consolidator/types.ts:115 |
cheapModel | readonly | string | null | Advisory 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:123 |
contextualRetrieval | readonly | ContextualRetrievalMode | Contextual 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:235 |
decayArchiveThreshold | readonly | number | - | packages/memory/src/consolidator/types.ts:134 |
decayCapacity | readonly | number | null | Capacity-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:143 |
decayTauDays | readonly | number | - | packages/memory/src/consolidator/types.ts:133 |
deepModel | readonly | string | null | Advisory label for the deep phase's model - telemetry only (MCON-7). Routing happens via CreateConsolidatorOptions.deepProvider. | packages/memory/src/consolidator/types.ts:129 |
dlqBaseBackoffMs | readonly | number | - | packages/memory/src/consolidator/types.ts:168 |
dlqMaxBackoffMs | readonly | number | - | packages/memory/src/consolidator/types.ts:169 |
dlqMaxRetries | readonly | number | - | packages/memory/src/consolidator/types.ts:167 |
formEpisodes | readonly | boolean | Auto-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:177 |
importanceScoring | readonly | boolean | Ask 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:185 |
importanceThreshold | readonly | number | Sum 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:213 |
learnedContext | readonly | boolean | Maintain 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:244 |
learnedContextMaxChars | readonly | number | Character bound enforced on the learned-context digest. Default 1200. | packages/memory/src/consolidator/types.ts:246 |
lockWaitMs | readonly | number | - | packages/memory/src/consolidator/types.ts:132 |
maxDeepConflictsPerRun | readonly | number | - | packages/memory/src/consolidator/types.ts:166 |
maxStandardBatchSize | readonly | number | - | packages/memory/src/consolidator/types.ts:151 |
maxTranscriptChars | readonly | number | Input-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:165 |
noiseFilters | readonly | readonly ("default" | "minimal" | "none")[] | - | packages/memory/src/consolidator/types.ts:131 |
onExceed | readonly | OnBudgetExceed | - | packages/memory/src/consolidator/types.ts:116 |
phases | readonly | readonly ConsolidatorPhase[] | - | packages/memory/src/consolidator/types.ts:114 |
reflection | readonly | boolean | Run 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:207 |
reflectionMaxQuarantinedInsights | readonly | number | W-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:223 |
reflectionMaxQuestions | readonly | number | Upper bound on salient questions reflection asks per pass. Defaults to 3. | packages/memory/src/consolidator/types.ts:215 |
salienceWeights | readonly | SalienceWeights | Weights 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:150 |
tier | readonly | ConsolidatorTier | - | packages/memory/src/consolidator/types.ts:113 |
triggers | readonly | readonly ConsolidatorTriggerSpec[] | - | packages/memory/src/consolidator/types.ts:112 |