@psiclawops/hypermem 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +31 -39
- package/README.md +20 -14
- package/bin/hypermem-status.mjs +1 -1
- package/dist/background-indexer.d.ts +14 -3
- package/dist/background-indexer.d.ts.map +1 -1
- package/dist/background-indexer.js +135 -27
- package/dist/budget-policy.d.ts +22 -0
- package/dist/budget-policy.d.ts.map +1 -0
- package/dist/budget-policy.js +27 -0
- package/dist/cache.d.ts +11 -0
- package/dist/cache.d.ts.map +1 -1
- package/dist/compositor-utils.d.ts +31 -0
- package/dist/compositor-utils.d.ts.map +1 -0
- package/dist/compositor-utils.js +47 -0
- package/dist/compositor.d.ts +163 -1
- package/dist/compositor.d.ts.map +1 -1
- package/dist/compositor.js +862 -130
- package/dist/content-hash.d.ts +43 -0
- package/dist/content-hash.d.ts.map +1 -0
- package/dist/content-hash.js +75 -0
- package/dist/context-store.d.ts +54 -0
- package/dist/context-store.d.ts.map +1 -1
- package/dist/context-store.js +102 -0
- package/dist/contradiction-audit-store.d.ts +54 -0
- package/dist/contradiction-audit-store.d.ts.map +1 -0
- package/dist/contradiction-audit-store.js +88 -0
- package/dist/contradiction-resolution-policy.d.ts +21 -0
- package/dist/contradiction-resolution-policy.d.ts.map +1 -0
- package/dist/contradiction-resolution-policy.js +17 -0
- package/dist/cross-agent.d.ts +1 -1
- package/dist/cross-agent.js +17 -17
- package/dist/degradation.d.ts +102 -0
- package/dist/degradation.d.ts.map +1 -0
- package/dist/degradation.js +141 -0
- package/dist/dreaming-promoter.d.ts +39 -1
- package/dist/dreaming-promoter.d.ts.map +1 -1
- package/dist/dreaming-promoter.js +70 -4
- package/dist/index.d.ts +70 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +405 -29
- package/dist/knowledge-lint.d.ts +2 -0
- package/dist/knowledge-lint.d.ts.map +1 -1
- package/dist/knowledge-lint.js +40 -1
- package/dist/library-schema.d.ts +7 -2
- package/dist/library-schema.d.ts.map +1 -1
- package/dist/library-schema.js +236 -1
- package/dist/message-store.d.ts +64 -1
- package/dist/message-store.d.ts.map +1 -1
- package/dist/message-store.js +137 -1
- package/dist/proactive-pass.d.ts +2 -2
- package/dist/proactive-pass.d.ts.map +1 -1
- package/dist/proactive-pass.js +66 -12
- package/dist/replay-recovery.d.ts +29 -0
- package/dist/replay-recovery.d.ts.map +1 -0
- package/dist/replay-recovery.js +82 -0
- package/dist/reranker.d.ts +95 -0
- package/dist/reranker.d.ts.map +1 -0
- package/dist/reranker.js +308 -0
- package/dist/schema.d.ts +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +46 -1
- package/dist/seed.d.ts +1 -1
- package/dist/seed.js +1 -1
- package/dist/session-flusher.d.ts +4 -4
- package/dist/session-flusher.d.ts.map +1 -1
- package/dist/session-flusher.js +3 -3
- package/dist/spawn-context.d.ts +1 -1
- package/dist/spawn-context.js +1 -1
- package/dist/tool-artifact-store.d.ts +98 -0
- package/dist/tool-artifact-store.d.ts.map +1 -0
- package/dist/tool-artifact-store.js +244 -0
- package/dist/topic-detector.js +2 -2
- package/dist/topic-store.d.ts +6 -0
- package/dist/topic-store.d.ts.map +1 -1
- package/dist/topic-store.js +39 -0
- package/dist/topic-synthesizer.js +1 -1
- package/dist/trigger-registry.d.ts +1 -1
- package/dist/trigger-registry.js +4 -4
- package/dist/types.d.ts +235 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/vector-store.d.ts +2 -1
- package/dist/vector-store.d.ts.map +1 -1
- package/dist/vector-store.js +3 -0
- package/dist/version.d.ts +10 -10
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +10 -10
- package/package.json +6 -4
package/dist/compositor.d.ts
CHANGED
|
@@ -17,12 +17,80 @@ import { CacheLayer } from './cache.js';
|
|
|
17
17
|
type AnyCache = CacheLayer;
|
|
18
18
|
import { VectorStore } from './vector-store.js';
|
|
19
19
|
import { type OrgRegistry } from './cross-agent.js';
|
|
20
|
+
import { type DegradationReason } from './degradation.js';
|
|
20
21
|
/**
|
|
21
22
|
* Files that OpenClaw's contextInjection injects into the system prompt.
|
|
22
23
|
* HyperMem must not re-inject these via doc chunk retrieval to avoid duplication.
|
|
23
24
|
* Exported so plugin and other consumers can share the same dedup set.
|
|
24
25
|
*/
|
|
25
26
|
export declare const OPENCLAW_BOOTSTRAP_FILES: Set<string>;
|
|
27
|
+
/**
|
|
28
|
+
* B4: Compute model-aware lane budget fractions.
|
|
29
|
+
*
|
|
30
|
+
* Resolves the effective historyFraction and memoryFraction for a compose pass
|
|
31
|
+
* given the model and its effective budget. Uses the MECW catalog to blend
|
|
32
|
+
* away from fixed fractions when the budget approaches the MECW ceiling,
|
|
33
|
+
* so the compositor allocates proportionally for what the model can actually use.
|
|
34
|
+
*
|
|
35
|
+
* Returns:
|
|
36
|
+
* historyFraction — fraction of effective budget to give history
|
|
37
|
+
* memoryFraction — fraction of effective budget to give memory pool
|
|
38
|
+
* mecwProfile — which MECW entry matched (undefined = no match / full window)
|
|
39
|
+
* mecwApplied — true when MECW adjustment changed the fractions
|
|
40
|
+
* mecwBlend — 0..1 blend factor (0 = below floor, 1 = at/above ceiling)
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveModelLaneBudgets(model: string | undefined, effectiveBudget: number, configHistoryFraction: number, configMemoryFraction: number): {
|
|
43
|
+
historyFraction: number;
|
|
44
|
+
memoryFraction: number;
|
|
45
|
+
mecwProfile: string | undefined;
|
|
46
|
+
mecwApplied: boolean;
|
|
47
|
+
mecwBlend: number;
|
|
48
|
+
};
|
|
49
|
+
/** Session classification labels — used for adaptive depth selection. */
|
|
50
|
+
export type SessionType = 'plain-chat' | 'tool-heavy';
|
|
51
|
+
/**
|
|
52
|
+
* Classify a session based on the ratio of tool messages in the recent sample.
|
|
53
|
+
* 'tool-heavy': >= 20% of sampled messages carry tool calls or tool results.
|
|
54
|
+
* 'plain-chat': below that threshold (text-only or occasional tool use).
|
|
55
|
+
*
|
|
56
|
+
* The 20% threshold is intentionally conservative: most tool-heavy agents
|
|
57
|
+
* have tool messages on every assistant turn, so the ratio quickly exceeds
|
|
58
|
+
* the threshold without false-positive risk for light tool users.
|
|
59
|
+
*/
|
|
60
|
+
export declare function classifySessionType(messages: NeutralMessage[]): SessionType;
|
|
61
|
+
/**
|
|
62
|
+
* Estimate the average token cost per message from a recent message sample.
|
|
63
|
+
* Uses the same estimateMessageTokens heuristic as the compositor budget walk
|
|
64
|
+
* so the returned depth is directly comparable to the historyFillCap check.
|
|
65
|
+
*
|
|
66
|
+
* Returns a conservative floor (100 tokens) when the sample is empty to avoid
|
|
67
|
+
* returning Infinity when historyBudget is divided by density.
|
|
68
|
+
*/
|
|
69
|
+
export declare function estimateObservedMsgDensity(messages: NeutralMessage[]): number;
|
|
70
|
+
/**
|
|
71
|
+
* Compute an adaptive history depth that pre-fits the session type.
|
|
72
|
+
*
|
|
73
|
+
* For plain-chat sessions: divides historyBudget by observed density to get a
|
|
74
|
+
* depth that fills the budget without overflow, bounded by the default maximum.
|
|
75
|
+
* Recall quality is preserved because the density estimate is honest for
|
|
76
|
+
* text-only turns.
|
|
77
|
+
*
|
|
78
|
+
* For tool-heavy sessions: applies a post-gradient compression factor
|
|
79
|
+
* (TOOL_GRADIENT_DENSITY_FACTOR = 0.30) to the observed pre-gradient density.
|
|
80
|
+
* This accounts for the gradient transform collapsing large tool payloads to
|
|
81
|
+
* prose stubs before the budget-fit walk runs. A tighter depth is chosen so
|
|
82
|
+
* the gradient-compressed messages fit inside historyFillCap without triggering
|
|
83
|
+
* a rescue trim.
|
|
84
|
+
*
|
|
85
|
+
* A 0.85 safety margin is applied to both paths so estimates that are
|
|
86
|
+
* slightly off don't cause immediate overflow on the first warm compose.
|
|
87
|
+
*
|
|
88
|
+
* Min/max bounds ensure the compositor always sees a meaningful window:
|
|
89
|
+
* - plain-chat min: 20 messages (enough for short recent context)
|
|
90
|
+
* - tool-heavy min: 15 messages (recent tool context + a few prior turns)
|
|
91
|
+
* - shared max: config.maxHistoryMessages (never exceed the DB fetch ceiling)
|
|
92
|
+
*/
|
|
93
|
+
export declare function computeAdaptiveHistoryDepth(sessionType: SessionType, observedDensity: number, historyBudgetTokens: number, maxHistoryMessages: number): number;
|
|
26
94
|
export { CollectionTrigger, DEFAULT_TRIGGERS, matchTriggers } from './trigger-registry.js';
|
|
27
95
|
export { getTurnAge, applyToolGradient, appendToolSummary, truncateWithHeadTail, applyTierPayloadCap, evictLargeToolResults };
|
|
28
96
|
/**
|
|
@@ -55,6 +123,78 @@ declare function applyTierPayloadCap(msg: NeutralMessage, perResultCap: number,
|
|
|
55
123
|
usedChars: number;
|
|
56
124
|
};
|
|
57
125
|
declare function evictLargeToolResults<T extends NeutralMessage>(messages: T[]): T[];
|
|
126
|
+
export declare function resolveArtifactOversizeThreshold(effectiveBudget: number): number;
|
|
127
|
+
/**
|
|
128
|
+
* C2: Degrade an oversized doc chunk to a canonical ArtifactRef string.
|
|
129
|
+
*
|
|
130
|
+
* When a retrieved chunk's content exceeds the oversize threshold (in tokens),
|
|
131
|
+
* replace it with a fetchable canonical reference instead of injecting raw content.
|
|
132
|
+
* This preserves headroom in the lane instead of filling it with a large payload.
|
|
133
|
+
*
|
|
134
|
+
* Returns:
|
|
135
|
+
* - `null` → content is within the threshold; caller should inject as-is.
|
|
136
|
+
* - `string` → canonical artifact reference; caller should inject this instead of raw content.
|
|
137
|
+
*
|
|
138
|
+
* The sizeTokens reported in the reference is the ACTUAL estimated size so downstream
|
|
139
|
+
* tooling can make informed decisions about whether to fetch.
|
|
140
|
+
*/
|
|
141
|
+
export declare function degradeOversizedDocChunk(chunkId: string, sourcePath: string, content: string, thresholdTokens: number): string | null;
|
|
142
|
+
/**
|
|
143
|
+
* C2: Resolve oversized artifacts in a history message array.
|
|
144
|
+
*
|
|
145
|
+
* Scans the message array and replaces user/assistant messages whose text content
|
|
146
|
+
* exceeds the model-aware artifact oversize threshold with canonical ArtifactRef
|
|
147
|
+
* strings. System messages, tool-call messages, and tool-result messages are always
|
|
148
|
+
* passed through unchanged.
|
|
149
|
+
*
|
|
150
|
+
* @param messages — neutral message array (already-assembled history window)
|
|
151
|
+
* @param effectiveBudget — effective model budget from B4 (drives the threshold)
|
|
152
|
+
* @returns { messages, refCount, tokensSaved }
|
|
153
|
+
*/
|
|
154
|
+
export declare function resolveOversizedArtifacts<T extends NeutralMessage>(messages: T[], effectiveBudget: number): {
|
|
155
|
+
messages: T[];
|
|
156
|
+
refCount: number;
|
|
157
|
+
tokensSaved: number;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Result of a single tool-chain ejection pass.
|
|
161
|
+
* Returned by resolveToolChainEjections so callers can accumulate telemetry.
|
|
162
|
+
*/
|
|
163
|
+
export interface ToolChainEjectionResult<T extends NeutralMessage> {
|
|
164
|
+
/** The transformed message array (may contain stubs in place of results). */
|
|
165
|
+
messages: T[];
|
|
166
|
+
/** Number of tool-result messages fully co-ejected (removed from the array). */
|
|
167
|
+
coEjections: number;
|
|
168
|
+
/** Number of tool-result payloads replaced with a canonical stub string. */
|
|
169
|
+
stubReplacements: number;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* C1: Centralized tool-chain dependency ejection.
|
|
173
|
+
*
|
|
174
|
+
* Given a set of tool-use message indices that are being ejected from the
|
|
175
|
+
* context window, this function ensures that no orphaned tool-results survive:
|
|
176
|
+
*
|
|
177
|
+
* - For each ejected assistant message carrying toolCalls, collect the set
|
|
178
|
+
* of call IDs being removed.
|
|
179
|
+
* - Walk the remaining messages: if a message's toolResults reference any
|
|
180
|
+
* of those ejected IDs:
|
|
181
|
+
* a) If the message carries ONLY tool-results and no other text, co-eject
|
|
182
|
+
* it (remove it entirely). This is the zero-cost path.
|
|
183
|
+
* b) If the message also carries text content, replace only the dependent
|
|
184
|
+
* toolResults entries with canonical ToolChainStub strings so the
|
|
185
|
+
* message is not silently mutilated.
|
|
186
|
+
*
|
|
187
|
+
* The caller is responsible for removing the ejected messages by index BEFORE
|
|
188
|
+
* or AFTER calling this function; this function operates on the full array and
|
|
189
|
+
* marks the ejected indices for removal, returning the cleaned result.
|
|
190
|
+
*
|
|
191
|
+
* @param messages Full message array (order preserved)
|
|
192
|
+
* @param ejectIndices Set of indices into `messages` that are being ejected
|
|
193
|
+
* (these are the tool-use / assistant messages being removed).
|
|
194
|
+
* @param reason DegradationReason to embed in any canonical stubs.
|
|
195
|
+
* @returns Cleaned message array + telemetry counters.
|
|
196
|
+
*/
|
|
197
|
+
export declare function resolveToolChainEjections<T extends NeutralMessage>(messages: T[], ejectIndices: Set<number>, reason?: DegradationReason): ToolChainEjectionResult<T>;
|
|
58
198
|
/**
|
|
59
199
|
* Apply gradient tool treatment to a message array.
|
|
60
200
|
*
|
|
@@ -96,6 +236,27 @@ export declare class Compositor {
|
|
|
96
236
|
* Return the currently cached org registry.
|
|
97
237
|
*/
|
|
98
238
|
get orgRegistry(): OrgRegistry;
|
|
239
|
+
/**
|
|
240
|
+
* Sprint 2.1: Hydrate tool-artifact stubs in the active turn.
|
|
241
|
+
*
|
|
242
|
+
* The active turn is the contiguous trailing block of tool-bearing messages
|
|
243
|
+
* at the tail of the assembled window (positional, NOT turn_id-based):
|
|
244
|
+
* - Walk backward from the last message
|
|
245
|
+
* - Collect tool-bearing messages (toolCalls != null OR toolResults != null)
|
|
246
|
+
* - Plus the bounding user message that opened the turn
|
|
247
|
+
* - Stop at the first plain message once at least one tool message was found
|
|
248
|
+
*
|
|
249
|
+
* For every toolResult stub with an `artifact=<id>` pointer, look up the
|
|
250
|
+
* full payload in ToolArtifactStore and replace the stub content in-place.
|
|
251
|
+
* Uses a single batched `WHERE id IN (...)` lookup (no N+1 queries).
|
|
252
|
+
* Touches `last_used_at` on every hydrated artifact in a single batch.
|
|
253
|
+
*
|
|
254
|
+
* Failure mode: if a lookup returns null (artifact missing), leave the stub
|
|
255
|
+
* unchanged and increment hydrationMisses.
|
|
256
|
+
*
|
|
257
|
+
* Returns diagnostics counters.
|
|
258
|
+
*/
|
|
259
|
+
private hydrateActiveTurnArtifacts;
|
|
99
260
|
/**
|
|
100
261
|
* Compose a complete message array for sending to an LLM.
|
|
101
262
|
*
|
|
@@ -122,7 +283,7 @@ export declare class Compositor {
|
|
|
122
283
|
/** Model string for budget resolution. If omitted, falls back to defaultTokenBudget. */
|
|
123
284
|
model?: string;
|
|
124
285
|
}): Promise<void>;
|
|
125
|
-
refreshRedisGradient(agentId: string, sessionKey: string, db: DatabaseSync, tokenBudget?: number): Promise<void>;
|
|
286
|
+
refreshRedisGradient(agentId: string, sessionKey: string, db: DatabaseSync, tokenBudget?: number, historyDepth?: number): Promise<void>;
|
|
126
287
|
/**
|
|
127
288
|
* Get slot content: try Redis first, fall back to SQLite.
|
|
128
289
|
*/
|
|
@@ -145,6 +306,7 @@ export declare class Compositor {
|
|
|
145
306
|
* Returns [content, factCount, scopeFilteredCount] or null if DB unavailable.
|
|
146
307
|
*/
|
|
147
308
|
private buildFactsFromDb;
|
|
309
|
+
private buildFactSectionsFromDb;
|
|
148
310
|
/**
|
|
149
311
|
* Build knowledge content from library DB.
|
|
150
312
|
* Prioritizes high-confidence, non-superseded entries.
|
package/dist/compositor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"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"}
|