@psiclawops/hypermem 0.1.0 → 0.5.1

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.
Files changed (153) hide show
  1. package/ARCHITECTURE.md +4 -3
  2. package/README.md +457 -174
  3. package/dist/background-indexer.d.ts +19 -4
  4. package/dist/background-indexer.d.ts.map +1 -1
  5. package/dist/background-indexer.js +329 -17
  6. package/dist/cache.d.ts +110 -0
  7. package/dist/cache.d.ts.map +1 -0
  8. package/dist/cache.js +495 -0
  9. package/dist/compaction-fence.d.ts +1 -1
  10. package/dist/compaction-fence.js +1 -1
  11. package/dist/compositor.d.ts +114 -27
  12. package/dist/compositor.d.ts.map +1 -1
  13. package/dist/compositor.js +1678 -229
  14. package/dist/content-type-classifier.d.ts +41 -0
  15. package/dist/content-type-classifier.d.ts.map +1 -0
  16. package/dist/content-type-classifier.js +181 -0
  17. package/dist/cross-agent.d.ts +5 -0
  18. package/dist/cross-agent.d.ts.map +1 -1
  19. package/dist/cross-agent.js +5 -0
  20. package/dist/db.d.ts +1 -1
  21. package/dist/db.d.ts.map +1 -1
  22. package/dist/db.js +6 -2
  23. package/dist/desired-state-store.d.ts +1 -1
  24. package/dist/desired-state-store.d.ts.map +1 -1
  25. package/dist/desired-state-store.js +15 -5
  26. package/dist/doc-chunk-store.d.ts +26 -1
  27. package/dist/doc-chunk-store.d.ts.map +1 -1
  28. package/dist/doc-chunk-store.js +114 -1
  29. package/dist/doc-chunker.d.ts +1 -1
  30. package/dist/doc-chunker.js +1 -1
  31. package/dist/dreaming-promoter.d.ts +86 -0
  32. package/dist/dreaming-promoter.d.ts.map +1 -0
  33. package/dist/dreaming-promoter.js +381 -0
  34. package/dist/episode-store.d.ts +2 -1
  35. package/dist/episode-store.d.ts.map +1 -1
  36. package/dist/episode-store.js +4 -4
  37. package/dist/fact-store.d.ts +19 -1
  38. package/dist/fact-store.d.ts.map +1 -1
  39. package/dist/fact-store.js +64 -3
  40. package/dist/fleet-store.d.ts +1 -1
  41. package/dist/fleet-store.js +1 -1
  42. package/dist/fos-mod.d.ts +178 -0
  43. package/dist/fos-mod.d.ts.map +1 -0
  44. package/dist/fos-mod.js +416 -0
  45. package/dist/hybrid-retrieval.d.ts +5 -1
  46. package/dist/hybrid-retrieval.d.ts.map +1 -1
  47. package/dist/hybrid-retrieval.js +7 -3
  48. package/dist/image-eviction.d.ts +49 -0
  49. package/dist/image-eviction.d.ts.map +1 -0
  50. package/dist/image-eviction.js +251 -0
  51. package/dist/index.d.ts +50 -11
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +73 -43
  54. package/dist/keystone-scorer.d.ts +51 -0
  55. package/dist/keystone-scorer.d.ts.map +1 -0
  56. package/dist/keystone-scorer.js +52 -0
  57. package/dist/knowledge-graph.d.ts +1 -1
  58. package/dist/knowledge-graph.js +1 -1
  59. package/dist/knowledge-lint.d.ts +29 -0
  60. package/dist/knowledge-lint.d.ts.map +1 -0
  61. package/dist/knowledge-lint.js +116 -0
  62. package/dist/knowledge-store.d.ts +1 -1
  63. package/dist/knowledge-store.d.ts.map +1 -1
  64. package/dist/knowledge-store.js +8 -2
  65. package/dist/library-schema.d.ts +3 -3
  66. package/dist/library-schema.d.ts.map +1 -1
  67. package/dist/library-schema.js +324 -3
  68. package/dist/message-store.d.ts +15 -2
  69. package/dist/message-store.d.ts.map +1 -1
  70. package/dist/message-store.js +51 -1
  71. package/dist/metrics-dashboard.d.ts +114 -0
  72. package/dist/metrics-dashboard.d.ts.map +1 -0
  73. package/dist/metrics-dashboard.js +260 -0
  74. package/dist/obsidian-exporter.d.ts +57 -0
  75. package/dist/obsidian-exporter.d.ts.map +1 -0
  76. package/dist/obsidian-exporter.js +274 -0
  77. package/dist/obsidian-watcher.d.ts +147 -0
  78. package/dist/obsidian-watcher.d.ts.map +1 -0
  79. package/dist/obsidian-watcher.js +403 -0
  80. package/dist/open-domain.d.ts +46 -0
  81. package/dist/open-domain.d.ts.map +1 -0
  82. package/dist/open-domain.js +125 -0
  83. package/dist/preference-store.d.ts +1 -1
  84. package/dist/preference-store.js +1 -1
  85. package/dist/preservation-gate.d.ts +1 -1
  86. package/dist/preservation-gate.js +1 -1
  87. package/dist/proactive-pass.d.ts +63 -0
  88. package/dist/proactive-pass.d.ts.map +1 -0
  89. package/dist/proactive-pass.js +239 -0
  90. package/dist/profiles.d.ts +44 -0
  91. package/dist/profiles.d.ts.map +1 -0
  92. package/dist/profiles.js +227 -0
  93. package/dist/provider-translator.d.ts +13 -3
  94. package/dist/provider-translator.d.ts.map +1 -1
  95. package/dist/provider-translator.js +63 -9
  96. package/dist/rate-limiter.d.ts +1 -1
  97. package/dist/rate-limiter.js +1 -1
  98. package/dist/repair-tool-pairs.d.ts +38 -0
  99. package/dist/repair-tool-pairs.d.ts.map +1 -0
  100. package/dist/repair-tool-pairs.js +138 -0
  101. package/dist/retrieval-policy.d.ts +51 -0
  102. package/dist/retrieval-policy.d.ts.map +1 -0
  103. package/dist/retrieval-policy.js +77 -0
  104. package/dist/schema.d.ts +2 -2
  105. package/dist/schema.d.ts.map +1 -1
  106. package/dist/schema.js +28 -2
  107. package/dist/secret-scanner.d.ts +1 -1
  108. package/dist/secret-scanner.js +1 -1
  109. package/dist/seed.d.ts +2 -2
  110. package/dist/seed.js +2 -2
  111. package/dist/session-flusher.d.ts +53 -0
  112. package/dist/session-flusher.d.ts.map +1 -0
  113. package/dist/session-flusher.js +69 -0
  114. package/dist/session-topic-map.d.ts +41 -0
  115. package/dist/session-topic-map.d.ts.map +1 -0
  116. package/dist/session-topic-map.js +77 -0
  117. package/dist/spawn-context.d.ts +54 -0
  118. package/dist/spawn-context.d.ts.map +1 -0
  119. package/dist/spawn-context.js +159 -0
  120. package/dist/system-store.d.ts +1 -1
  121. package/dist/system-store.js +1 -1
  122. package/dist/temporal-store.d.ts +80 -0
  123. package/dist/temporal-store.d.ts.map +1 -0
  124. package/dist/temporal-store.js +149 -0
  125. package/dist/topic-detector.d.ts +35 -0
  126. package/dist/topic-detector.d.ts.map +1 -0
  127. package/dist/topic-detector.js +249 -0
  128. package/dist/topic-store.d.ts +1 -1
  129. package/dist/topic-store.js +1 -1
  130. package/dist/topic-synthesizer.d.ts +51 -0
  131. package/dist/topic-synthesizer.d.ts.map +1 -0
  132. package/dist/topic-synthesizer.js +315 -0
  133. package/dist/trigger-registry.d.ts +63 -0
  134. package/dist/trigger-registry.d.ts.map +1 -0
  135. package/dist/trigger-registry.js +163 -0
  136. package/dist/types.d.ts +214 -10
  137. package/dist/types.d.ts.map +1 -1
  138. package/dist/types.js +1 -1
  139. package/dist/vector-store.d.ts +43 -5
  140. package/dist/vector-store.d.ts.map +1 -1
  141. package/dist/vector-store.js +189 -10
  142. package/dist/version.d.ts +34 -0
  143. package/dist/version.d.ts.map +1 -0
  144. package/dist/version.js +34 -0
  145. package/dist/wiki-page-emitter.d.ts +65 -0
  146. package/dist/wiki-page-emitter.d.ts.map +1 -0
  147. package/dist/wiki-page-emitter.js +258 -0
  148. package/dist/work-store.d.ts +1 -1
  149. package/dist/work-store.js +1 -1
  150. package/package.json +15 -5
  151. package/dist/redis.d.ts +0 -188
  152. package/dist/redis.d.ts.map +0 -1
  153. package/dist/redis.js +0 -534
@@ -1,5 +1,5 @@
1
1
  /**
2
- * HyperMem Compositor
2
+ * hypermem Compositor
3
3
  *
4
4
  * Assembles context for LLM calls by orchestrating all four memory layers:
5
5
  * L1 Redis — hot session working memory (system, identity, recent msgs)
@@ -11,36 +11,55 @@
11
11
  * Provider-neutral internally, translates at the output boundary.
12
12
  */
13
13
  import type { DatabaseSync } from 'node:sqlite';
14
- import type { ComposeRequest, ComposeResult, CompositorConfig } from './types.js';
15
- import { RedisLayer } from './redis.js';
14
+ import type { ComposeRequest, ComposeResult, NeutralMessage, CompositorConfig } from './types.js';
15
+ import { CollectionTrigger } from './trigger-registry.js';
16
+ import { CacheLayer } from './cache.js';
17
+ type AnyCache = CacheLayer;
16
18
  import { VectorStore } from './vector-store.js';
19
+ import { type OrgRegistry } from './cross-agent.js';
20
+ export { CollectionTrigger, DEFAULT_TRIGGERS, matchTriggers } from './trigger-registry.js';
21
+ export { getTurnAge, applyToolGradient, appendToolSummary, truncateWithHeadTail, applyTierPayloadCap, evictLargeToolResults };
17
22
  /**
18
- * A trigger definition maps a collection to the conversation signals that
19
- * indicate it should be queried. When any keyword matches the user's latest
20
- * message, the compositor fetches relevant chunks from that collection.
23
+ * Public reshape helper: apply tool gradient then trim to fit within a token budget.
21
24
  *
22
- * Centralizing trigger logic here (not in workspace stubs) means:
23
- * - One update propagates to all agents
24
- * - Stubs become documentation, not code
25
- * - Trigger logic can be tested independently
25
+ * Used by the plugin's budget-downshift pass to pre-process a Redis history window
26
+ * after a model switch to a smaller context window, before the full compose pipeline
27
+ * runs. Trims from oldest to newest until estimated token cost fits within
28
+ * tokenBudget * 0.65 (using the standard char/4 heuristic).
29
+ *
30
+ * @param messages NeutralMessage array from the Redis hot window
31
+ * @param tokenBudget Effective token budget for this session
32
+ * @returns Trimmed message array ready for setWindow()
26
33
  */
27
- export interface CollectionTrigger {
28
- /** Collection path: governance/policy, identity/job, etc. */
29
- collection: string;
30
- /** Keywords that trigger this collection (case-insensitive) */
31
- keywords: string[];
32
- /** Max tokens to inject from this collection */
33
- maxTokens?: number;
34
- /** Max chunks to retrieve */
35
- maxChunks?: number;
36
- }
34
+ export declare function applyToolGradientToWindow(messages: NeutralMessage[], tokenBudget: number, totalWindowTokens?: number): NeutralMessage[];
37
35
  /**
38
- * Default trigger registry for standard ACA collections.
39
- * Covers the core ACA offload use case from Anvil's spec.
36
+ * Canonical history must remain lossless for tool turns.
37
+ *
38
+ * If a window contains any structured tool calls or tool results, the caller
39
+ * should treat applyToolGradientToWindow() as a view-only transform for the
40
+ * current compose pass and avoid writing the reshaped messages back into the
41
+ * canonical cache/history store.
40
42
  */
41
- export declare const DEFAULT_TRIGGERS: CollectionTrigger[];
43
+ export declare function canPersistReshapedHistory(messages: NeutralMessage[]): boolean;
44
+ declare function truncateWithHeadTail(content: string, maxChars: number, maxTailChars?: number): string;
45
+ declare function appendToolSummary(textContent: string | null, summary: string): string;
46
+ declare function getTurnAge(messages: NeutralMessage[], index: number): number;
47
+ declare function applyTierPayloadCap(msg: NeutralMessage, perResultCap: number, perTurnCap?: number, usedSoFar?: number, maxTailChars?: number): {
48
+ msg: NeutralMessage;
49
+ usedChars: number;
50
+ };
51
+ declare function evictLargeToolResults<T extends NeutralMessage>(messages: T[]): T[];
52
+ /**
53
+ * Apply gradient tool treatment to a message array.
54
+ *
55
+ * Tiers are based on turn age, where turn age is the number of newer user
56
+ * messages after the current message.
57
+ */
58
+ declare function applyToolGradient<T extends NeutralMessage>(messages: T[], opts?: {
59
+ totalWindowTokens?: number;
60
+ }): T[];
42
61
  export interface CompositorDeps {
43
- redis: RedisLayer;
62
+ cache: AnyCache;
44
63
  vectorStore?: VectorStore | null;
45
64
  libraryDb?: DatabaseSync | null;
46
65
  /** Custom trigger registry; defaults to DEFAULT_TRIGGERS if not provided */
@@ -48,16 +67,29 @@ export interface CompositorDeps {
48
67
  }
49
68
  export declare class Compositor {
50
69
  private readonly config;
51
- private readonly redis;
70
+ private readonly cache;
52
71
  private vectorStore;
53
72
  private readonly libraryDb;
54
73
  private readonly triggerRegistry;
55
- constructor(deps: CompositorDeps | RedisLayer, config?: Partial<CompositorConfig>);
74
+ /** Cached org registry loaded from fleet_agents at construction time. */
75
+ private _orgRegistry;
76
+ constructor(deps: CompositorDeps, config?: Partial<CompositorConfig>);
56
77
  /**
57
78
  * Set or replace the vector store after construction.
58
- * Called by HyperMem.create() once sqlite-vec is confirmed available.
79
+ * Called by hypermem.create() once sqlite-vec is confirmed available.
59
80
  */
60
81
  setVectorStore(vs: VectorStore): void;
82
+ /**
83
+ * Hot-reload the org registry from the fleet_agents table.
84
+ * Call after fleet membership changes (new agent, org restructure)
85
+ * to pick up the latest without a full restart.
86
+ * Falls back to the current cached registry if the DB is unavailable.
87
+ */
88
+ refreshOrgRegistry(): OrgRegistry;
89
+ /**
90
+ * Return the currently cached org registry.
91
+ */
92
+ get orgRegistry(): OrgRegistry;
61
93
  /**
62
94
  * Compose a complete message array for sending to an LLM.
63
95
  *
@@ -81,24 +113,43 @@ export declare class Compositor {
81
113
  systemPrompt?: string;
82
114
  identity?: string;
83
115
  libraryDb?: DatabaseSync;
116
+ /** Model string for budget resolution. If omitted, falls back to defaultTokenBudget. */
117
+ model?: string;
84
118
  }): Promise<void>;
119
+ refreshRedisGradient(agentId: string, sessionKey: string, db: DatabaseSync, tokenBudget?: number): Promise<void>;
85
120
  /**
86
121
  * Get slot content: try Redis first, fall back to SQLite.
87
122
  */
88
123
  private getSlotContent;
89
124
  /**
90
125
  * Get conversation history: try Redis first, fall back to SQLite.
126
+ *
127
+ * When topicId is provided (P3.4), the SQLite path filters to messages
128
+ * matching that topic OR with topic_id IS NULL (Option B transition safety).
129
+ * The Redis path is unaffected — Redis doesn't index by topic, so topic
130
+ * filtering only applies to the SQLite fallback.
91
131
  */
92
132
  private getHistory;
93
133
  /**
94
134
  * Build facts content from library DB.
95
135
  */
136
+ /**
137
+ * Build facts content from library DB.
138
+ * Applies filterByScope (W1) to enforce retrieval access control.
139
+ * Returns [content, factCount, scopeFilteredCount] or null if DB unavailable.
140
+ */
96
141
  private buildFactsFromDb;
97
142
  /**
98
143
  * Build knowledge content from library DB.
99
144
  * Prioritizes high-confidence, non-superseded entries.
100
145
  */
101
146
  private buildKnowledgeFromDb;
147
+ /**
148
+ * Build wiki page context for the active topic.
149
+ * Queries the knowledge table for a synthesized topic page and returns it
150
+ * wrapped with a header. Capped at 600 tokens.
151
+ */
152
+ private buildWikiPageContext;
102
153
  /**
103
154
  * Build preferences content from library DB.
104
155
  * Shows user/operator preferences relevant to this agent.
@@ -110,6 +161,9 @@ export declare class Compositor {
110
161
  * Uses Reciprocal Rank Fusion to merge keyword and vector results.
111
162
  * Gracefully degrades: FTS5-only when no vector store, KNN-only
112
163
  * when FTS query is empty (all stop words), both when available.
164
+ *
165
+ * @param precomputedEmbedding — optional pre-computed embedding for the query.
166
+ * When provided, the Ollama call inside VectorStore.search() is skipped.
113
167
  */
114
168
  private buildSemanticRecall;
115
169
  /**
@@ -135,5 +189,38 @@ export declare class Compositor {
135
189
  * Truncates at line boundaries when possible.
136
190
  */
137
191
  private truncateToTokens;
192
+ /**
193
+ * Query and score keystone candidates from before the current history window.
194
+ *
195
+ * Trims the oldest messages from includedHistory to free a keystone budget,
196
+ * then queries the DB for older messages scored by episode significance,
197
+ * FTS5 relevance, and recency.
198
+ *
199
+ * Returns null if keystones cannot be injected (no cutoff ID found,
200
+ * no candidates, or all errors).
201
+ */
202
+ private buildKeystones;
203
+ /**
204
+ * Pull high-signal messages from OTHER topics in this session when their
205
+ * content is semantically relevant to the current active topic.
206
+ *
207
+ * Heuristic-only: no model calls. Token overlap between the current topic
208
+ * name + last 3 user messages and candidate message content.
209
+ *
210
+ * @param agentId - The agent's ID
211
+ * @param sessionKey - Current session key
212
+ * @param activeTopic - The current active topic (id + name)
213
+ * @param currentMessages - Recently included history messages for query extraction
214
+ * @param db - The messages database
215
+ * @param maxKeystones - Max cross-topic keystones to return (default 3)
216
+ * @returns Scored keystones sorted by score DESC, deduplicated by message id
217
+ */
218
+ private getKeystonesByTopic;
219
+ /**
220
+ * Extract lowercase key terms from a topic name and the last 3 user messages.
221
+ * Terms are: tokens with ≥4 characters (skip short stop words).
222
+ * Returns a Set for O(1) lookup.
223
+ */
224
+ private extractQueryTerms;
138
225
  }
139
226
  //# sourceMappingURL=compositor.d.ts.map
@@ -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;AAChD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAKb,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAiBzE;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,EAkE/C,CAAC;AA6KF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,4EAA4E;IAC5E,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;gBAGpD,IAAI,EAAE,cAAc,GAAG,UAAU,EACjC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAkBpC;;;OAGG;IACH,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIrC;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAqjB1G;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,YAAY,EAChB,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,YAAY,CAAC;KAC1B,GACA,OAAO,CAAC,IAAI,CAAC;IA8DhB;;OAEG;YACW,cAAc;IAoB5B;;OAEG;YACW,UAAU;IAoBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAyC5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA4C9B;;;;;;OAMG;YACW,mBAAmB;IA6DjC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA6ChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAezB"}
1
+ {"version":3,"file":"compositor.d.ts","sourceRoot":"","sources":["../src/compositor.ts"],"names":[],"mappings":"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"}