@amaster.ai/pi-memory 0.1.2 → 0.1.4

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ![pi-memory preview](https://raw.githubusercontent.com/TGYD-helige/pi/master/packages/pi-memory/preview.png)
4
4
 
5
- Persistent curated memory for pi agents — `MEMORY.md` (the agent's own notes) and `USER.md` (what the agent knows about the user). Both are loaded from disk at session start, **frozen**, and injected into the system prompt for the entire session. Mid-session writes are durable on disk but do **not** mutate the system prompt — this preserves prefix-cache stability.
5
+ Persistent curated memory for pi agents — `MEMORY.md` (the agent's own notes) and `USER.md` (what the agent knows about the user). The extension initializes storage at session start, then reloads both files before each agent run and injects a sanitized snapshot into that run's system prompt. Writes are durable on disk immediately; they are visible through `memory_read` right away and appear in the prompt snapshot on the next agent run.
6
6
 
7
7
  Modeled after hermes' default `MemoryStore` mechanism (no provider/manager abstraction).
8
8
 
@@ -52,14 +52,14 @@ These are total chars after `§`-joining all entries. The limit is enforced at w
52
52
  When installed as a dependency with the `pi.extensions` field declared in `package.json`, the runtime auto-discovers and loads the extension. The extension creates its own `MemoryStore` with file-based storage at `<agentDir>/memories/` — fully self-contained.
53
53
 
54
54
  ```
55
- pi.extensions → session_start → load MEMORY.md/USER.md → freeze snapshot → register tools
56
- → before_agent_start → append snapshot to systemPrompt
55
+ pi.extensions → session_start → initialize store → register tools
56
+ → before_agent_start → reload MEMORY.md/USER.md → append snapshot to systemPrompt
57
57
  → session_shutdown → release
58
58
  ```
59
59
 
60
60
  - **Storage**: `<agentDir>/memories/MEMORY.md` and `<agentDir>/memories/USER.md`
61
- - **Lifecycle**: load on `session_start`, snapshot held until `session_shutdown`
62
- - **Status command**: `/pi-memory-status` shows entry counts per file
61
+ - **Lifecycle**: initialize on `session_start`, rebuild the prompt snapshot before each agent run
62
+ - **Status command**: `/memory status` shows entry counts per file
63
63
  - **LLM tools**: `memory_add`, `memory_replace`, `memory_remove`, `memory_read`
64
64
 
65
65
  Configure via the `pi-memory` settings key:
@@ -90,7 +90,7 @@ await store.loadFromDisk();
90
90
  // ToolDefinition[] — wire into your tool registry directly
91
91
  const tools = createMemoryTools(store);
92
92
 
93
- // System prompt fragment (frozen at loadFromDisk; safe to use repeatedly)
93
+ // System prompt fragment (rebuilt by loadFromDisk; call it before each agent run)
94
94
  const promptBlock = store.formatAllForSystemPrompt();
95
95
  ```
96
96
 
@@ -114,18 +114,72 @@ To recover:
114
114
 
115
115
  The drift guard exists to prevent silent data loss — never bypass it by deleting `.bak.<ts>` snapshots blindly.
116
116
 
117
- ## Frozen snapshot
117
+ ## Prompt snapshot
118
118
 
119
- `loadFromDisk()` captures the system-prompt block once; subsequent `add` / `replace` / `remove` calls update **live state** but not the snapshot. Why:
119
+ `loadFromDisk()` refreshes live entries from disk and rebuilds the sanitized system-prompt block. The extension calls it before each agent run. Subsequent `add` / `replace` / `remove` calls update **live state** and disk, but not the snapshot already attached to the current agent run. Why:
120
120
 
121
- - The system prompt is the prefix-cache key for every model call. Mutating it mid-session invalidates the entire prefix.
121
+ - The system prompt is the prefix-cache key for a model call. Mutating it mid-run invalidates the prefix and makes the model's context harder to reason about.
122
122
  - Tool responses always reflect live state, so the model still sees its own writes — just via tool-result tail, not system-prompt head.
123
- - The snapshot picks up changes on the **next** `loadFromDisk()` (typically the next session start).
123
+ - The prompt snapshot picks up changes on the **next** `before_agent_start` / `loadFromDisk()`.
124
124
 
125
125
  ## Lifecycle reference
126
126
 
127
127
  | Hook | Behavior |
128
128
  |-----------------------|---------------------------------------------------------------------------|
129
- | `session_start` | Resolve `dataDir`, build `MemoryStore`, `loadFromDisk()`, capture snapshot, register 4 tools, set status `memory: loaded`/`memory: empty`. |
130
- | `before_agent_start` | Append snapshot to assembled `systemPrompt` (no-op when empty). |
131
- | `session_shutdown` | Drop store + snapshot references. |
129
+ | `session_start` | Resolve `dataDir`, build `MemoryStore`, `loadFromDisk()`, register 4 tools, set status `memory: loaded`/`memory: empty`. Auto-register dreaming cron job if not already installed. |
130
+ | `before_agent_start` | Reload memory from disk, rebuild the prompt snapshot, and append it to assembled `systemPrompt` (guidance only when empty). |
131
+ | `session_shutdown` | Drop store references. |
132
+
133
+ ## Dreaming (Periodic Memory Consolidation)
134
+
135
+ On first session start, pi-memory automatically registers a system-level scheduled task that periodically reviews recent conversations and consolidates durable facts into memory. No manual cron configuration needed.
136
+
137
+ ### How it works
138
+
139
+ 1. **System cron registration** — On first load, the extension registers a platform-native scheduled job:
140
+ - macOS: `launchd` LaunchAgent
141
+ - Linux: user `crontab` entry
142
+ - Windows: Task Scheduler
143
+
144
+ 2. **Gate check** — Each run checks whether enough time and sessions have elapsed since the last consolidation before proceeding.
145
+
146
+ 3. **Phase 1 — Consolidation** — An agentic loop (using pi-agent-core) reviews recent conversation transcripts and updates `MEMORY.md`/`USER.md` via the memory tools. Follows a 4-phase prompt: Orient → Gather → Consolidate → Prune.
147
+
148
+ 4. **Phase 2 — Dedup** — If `pi-memory-mem0` is configured, exact-duplicate entries in the vector store are identified and deleted.
149
+
150
+ ### Configuration
151
+
152
+ Add to `settings.json` under the `pi-memory` key:
153
+
154
+ ```json
155
+ {
156
+ "pi-memory": {
157
+ "dreaming": {
158
+ "enabled": true,
159
+ "intervalHours": 4,
160
+ "minHoursSinceLastRun": 24,
161
+ "minTurnsSinceLastRun": 5,
162
+ "model": {
163
+ "provider": "openai",
164
+ "model": "gpt-4.1-mini"
165
+ }
166
+ }
167
+ }
168
+ }
169
+ ```
170
+
171
+ All fields are optional with sensible defaults. The `model` field accepts any provider/model pair configured in your `~/.pi/agent/models.json` (built-in or custom). `minSessionsSinceLastRun` is accepted as a deprecated alias for `minTurnsSinceLastRun`.
172
+
173
+ Set `"enabled": false` to disable dreaming and remove the scheduled task.
174
+
175
+ ### CLI
176
+
177
+ The dreaming logic is also available as a standalone CLI:
178
+
179
+ ```bash
180
+ # Run once (called by the system scheduler)
181
+ npx pi-memory-dream
182
+
183
+ # Or via the installed bin
184
+ pi-memory-dream
185
+ ```
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=dream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dream.d.ts","sourceRoot":"","sources":["../../src/cli/dream.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * pi-memory-dream CLI — one-shot dreaming execution.
4
+ *
5
+ * Designed to be called by system cron (launchd/crontab/schtasks).
6
+ * Performs gate check, consolidation, and dedup, then exits.
7
+ */
8
+ import { join } from 'node:path';
9
+ import { dedupMemories } from '@amaster.ai/pi-memory-mem0/dedup';
10
+ import { loadPiSettings, resolveHome } from '@amaster.ai/pi-shared/settings';
11
+ import { JsonFileTranscriptStore } from '@amaster.ai/pi-storage/json';
12
+ import { AuthStorage, ModelRegistry } from '@earendil-works/pi-coding-agent';
13
+ import { runConsolidation } from '../consolidation.js';
14
+ import { readDreamingState, writeDreamingState } from '../dreaming-state.js';
15
+ const DEFAULT_MIN_HOURS = 24;
16
+ const DEFAULT_MIN_TURNS = 5;
17
+ const DEFAULT_MODEL = { provider: 'openai', model: 'gpt-4.1-mini' };
18
+ function log(msg) {
19
+ process.stderr.write(`[pi-memory-dream ${new Date().toISOString()}] ${msg}\n`);
20
+ }
21
+ async function main() {
22
+ const settings = loadPiSettings('pi-memory');
23
+ const config = settings.dreaming ?? {};
24
+ if (config.enabled === false) {
25
+ process.exit(0);
26
+ }
27
+ const home = resolveHome();
28
+ const state = await readDreamingState();
29
+ const now = Date.now();
30
+ const minHours = config.minHoursSinceLastRun ?? DEFAULT_MIN_HOURS;
31
+ const minTurns = config.minTurnsSinceLastRun ?? config.minSessionsSinceLastRun ?? DEFAULT_MIN_TURNS;
32
+ // Gate check: enough time since last run?
33
+ if (state.lastConsolidatedAt) {
34
+ const elapsed = now - new Date(state.lastConsolidatedAt).getTime();
35
+ if (elapsed < minHours * 60 * 60 * 1000) {
36
+ process.exit(0);
37
+ }
38
+ }
39
+ // Gate check: enough turns since last run?
40
+ const transcriptsPath = join(home, 'transcripts.json');
41
+ const transcripts = new JsonFileTranscriptStore(transcriptsPath);
42
+ const turns = await transcripts.listTurns({ tenantId: 'default' });
43
+ const recentTurns = state.lastConsolidatedAt
44
+ ? turns.filter((t) => t.createdAt &&
45
+ new Date(t.createdAt).getTime() > new Date(state.lastConsolidatedAt).getTime())
46
+ : turns;
47
+ if (recentTurns.length < minTurns) {
48
+ process.exit(0);
49
+ }
50
+ log(`starting: ${recentTurns.length} turns since last run`);
51
+ const abortController = new AbortController();
52
+ process.on('SIGTERM', () => abortController.abort());
53
+ process.on('SIGINT', () => abortController.abort());
54
+ // Phase 1: Consolidation
55
+ const modelConfig = config.model ?? DEFAULT_MODEL;
56
+ const authStorage = AuthStorage.create();
57
+ const modelRegistry = ModelRegistry.create(authStorage);
58
+ let consolidationSucceeded = false;
59
+ try {
60
+ consolidationSucceeded = await runConsolidation({
61
+ memoryDir: join(home, 'memories'),
62
+ turns: recentTurns,
63
+ modelConfig,
64
+ modelRegistry: {
65
+ find: (p, m) => modelRegistry.find(p, m),
66
+ getApiKeyAndHeaders: (model) => modelRegistry.getApiKeyAndHeaders(model),
67
+ },
68
+ signal: abortController.signal,
69
+ });
70
+ if (consolidationSucceeded)
71
+ log('consolidation done');
72
+ else
73
+ log('consolidation skipped (model/auth unavailable)');
74
+ }
75
+ catch (err) {
76
+ log(`consolidation failed: ${err instanceof Error ? err.message : String(err)}`);
77
+ }
78
+ if (abortController.signal.aborted)
79
+ process.exit(0);
80
+ // Phase 2: Dedup (only if pi-memory-mem0 is configured)
81
+ const mem0Settings = loadPiSettings('pi-memory-mem0');
82
+ if (mem0Settings && Object.keys(mem0Settings).length > 0) {
83
+ const mode = mem0Settings.mode ?? 'platform';
84
+ const userId = config.mem0UserId ?? mem0Settings.userId;
85
+ if (!userId) {
86
+ log('dedup skipped: no explicit userId configured (set pi-memory.dreaming.mem0UserId or pi-memory-mem0.userId)');
87
+ }
88
+ else {
89
+ try {
90
+ const result = await dedupMemories({
91
+ userId,
92
+ config: { ...mem0Settings, mode },
93
+ signal: abortController.signal,
94
+ });
95
+ log(`dedup done: ${result.duplicatesRemoved} removed from ${result.total}`);
96
+ }
97
+ catch (err) {
98
+ log(`dedup failed: ${err instanceof Error ? err.message : String(err)}`);
99
+ }
100
+ }
101
+ }
102
+ // Only update state if consolidation ran successfully
103
+ if (consolidationSucceeded) {
104
+ await writeDreamingState({
105
+ lastConsolidatedAt: new Date(now).toISOString(),
106
+ lastSessionCount: recentTurns.length,
107
+ });
108
+ }
109
+ log('done');
110
+ }
111
+ main().catch((err) => {
112
+ log(`fatal: ${err instanceof Error ? err.message : String(err)}`);
113
+ process.exit(1);
114
+ });
115
+ //# sourceMappingURL=dream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/cli/dream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Memory consolidation logic — agentic review of recent conversations.
3
+ *
4
+ * Spawns a pi-agent-core Agent with memory tools to review transcripts and
5
+ * update entries. Follows a 4-phase prompt: Orient → Gather → Consolidate → Prune.
6
+ */
7
+ import type { ConversationTurn } from '@amaster.ai/pi-shared';
8
+ export interface ConsolidationModelRegistry {
9
+ find(provider: string, model: string): unknown;
10
+ getApiKeyAndHeaders(model: unknown): Promise<{
11
+ ok: boolean;
12
+ apiKey?: string;
13
+ headers?: Record<string, string>;
14
+ error?: string;
15
+ }>;
16
+ }
17
+ export interface ConsolidationOptions {
18
+ memoryDir: string;
19
+ turns: ConversationTurn[];
20
+ modelConfig: {
21
+ provider: string;
22
+ model: string;
23
+ };
24
+ modelRegistry: ConsolidationModelRegistry;
25
+ signal?: AbortSignal;
26
+ maxTurns?: number;
27
+ }
28
+ export declare const CONSOLIDATION_SYSTEM_PROMPT = "You are a memory consolidation assistant performing a \"dream\" \u2014 a reflective pass over recent conversations to synthesize durable knowledge into long-term memory.\n\nYou have access to memory tools:\n- memory_read: Read current memory entries (targets: \"memory\" for agent notes, \"user\" for user profile)\n- memory_add: Add a new entry to a target\n- memory_replace: Update an existing entry by substring match\n- memory_remove: Remove an outdated or redundant entry\n\n## Phase 1 \u2014 Orient\n\n- Call memory_read for both \"memory\" and \"user\" targets to see what is currently stored.\n- Understand the existing structure so you can merge into it rather than duplicating.\n- Note entries that look stale, overly verbose, or contradicted by recent context.\n\n## Phase 2 \u2014 Gather recent signal\n\nReview the conversation transcripts provided. Look for:\n1. New durable facts worth remembering (user preferences, project decisions, recurring patterns)\n2. Information that contradicts or updates existing memory entries\n3. Context that existing memories reference but got wrong\n\nDon't try to capture everything. Focus on what a future session would benefit from knowing.\n\n## Phase 3 \u2014 Consolidate\n\nMake targeted updates using the memory tools:\n- Use memory_replace to update stale entries with current information\n- Use memory_add only for genuinely new facts not already captured\n- Use memory_remove for entries that are clearly wrong, redundant, or superseded\n- When multiple entries cover related facts, merge them into one via memory_replace\n\nImportant:\n- Convert relative dates (\"yesterday\", \"last week\") to absolute dates\n- Merge related entries rather than keeping fragments \u2014 one complete entry is better than three partial ones\n- Keep entries terse and third-person\n\n## Phase 4 \u2014 Prune\n\nAfter consolidating, check capacity:\n- The \"memory\" target has a ~2200 character limit\n- The \"user\" target has a ~1375 character limit\n- If approaching limits, compress verbose entries (remove filler words, combine related points)\n- Remove entries that are subsumed by more complete ones\n\n## Constraints\n\n- ZERO information loss: every distinct, correct fact must survive unless clearly superseded\n- Don't add trivial or ephemeral information (greetings, debugging steps, temporary state)\n- Don't duplicate what is already stored \u2014 always check first via memory_read\n- Focus on: user identity, preferences, project decisions, recurring patterns, important context\n- If nothing meaningful has changed, say so \u2014 don't make changes for the sake of it\n";
29
+ export declare function buildConsolidationUserPrompt(turns: ConversationTurn[]): string;
30
+ export declare function runConsolidation(opts: ConsolidationOptions): Promise<boolean>;
31
+ //# sourceMappingURL=consolidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../src/consolidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQ9D,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,mBAAmB,CACjB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChG;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,aAAa,EAAE,0BAA0B,CAAC;IAC1C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,2BAA2B,0kFAmDvC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAuB9E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8CnF"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Memory consolidation logic — agentic review of recent conversations.
3
+ *
4
+ * Spawns a pi-agent-core Agent with memory tools to review transcripts and
5
+ * update entries. Follows a 4-phase prompt: Orient → Gather → Consolidate → Prune.
6
+ */
7
+ import { Agent } from '@earendil-works/pi-agent-core';
8
+ import { streamSimple } from '@earendil-works/pi-ai';
9
+ import { MemoryStore } from './store.js';
10
+ import { createMemoryTools } from './tools.js';
11
+ const MAX_CONSOLIDATION_TURNS = 8;
12
+ export const CONSOLIDATION_SYSTEM_PROMPT = `You are a memory consolidation assistant performing a "dream" — a reflective pass over recent conversations to synthesize durable knowledge into long-term memory.
13
+
14
+ You have access to memory tools:
15
+ - memory_read: Read current memory entries (targets: "memory" for agent notes, "user" for user profile)
16
+ - memory_add: Add a new entry to a target
17
+ - memory_replace: Update an existing entry by substring match
18
+ - memory_remove: Remove an outdated or redundant entry
19
+
20
+ ## Phase 1 — Orient
21
+
22
+ - Call memory_read for both "memory" and "user" targets to see what is currently stored.
23
+ - Understand the existing structure so you can merge into it rather than duplicating.
24
+ - Note entries that look stale, overly verbose, or contradicted by recent context.
25
+
26
+ ## Phase 2 — Gather recent signal
27
+
28
+ Review the conversation transcripts provided. Look for:
29
+ 1. New durable facts worth remembering (user preferences, project decisions, recurring patterns)
30
+ 2. Information that contradicts or updates existing memory entries
31
+ 3. Context that existing memories reference but got wrong
32
+
33
+ Don't try to capture everything. Focus on what a future session would benefit from knowing.
34
+
35
+ ## Phase 3 — Consolidate
36
+
37
+ Make targeted updates using the memory tools:
38
+ - Use memory_replace to update stale entries with current information
39
+ - Use memory_add only for genuinely new facts not already captured
40
+ - Use memory_remove for entries that are clearly wrong, redundant, or superseded
41
+ - When multiple entries cover related facts, merge them into one via memory_replace
42
+
43
+ Important:
44
+ - Convert relative dates ("yesterday", "last week") to absolute dates
45
+ - Merge related entries rather than keeping fragments — one complete entry is better than three partial ones
46
+ - Keep entries terse and third-person
47
+
48
+ ## Phase 4 — Prune
49
+
50
+ After consolidating, check capacity:
51
+ - The "memory" target has a ~2200 character limit
52
+ - The "user" target has a ~1375 character limit
53
+ - If approaching limits, compress verbose entries (remove filler words, combine related points)
54
+ - Remove entries that are subsumed by more complete ones
55
+
56
+ ## Constraints
57
+
58
+ - ZERO information loss: every distinct, correct fact must survive unless clearly superseded
59
+ - Don't add trivial or ephemeral information (greetings, debugging steps, temporary state)
60
+ - Don't duplicate what is already stored — always check first via memory_read
61
+ - Focus on: user identity, preferences, project decisions, recurring patterns, important context
62
+ - If nothing meaningful has changed, say so — don't make changes for the sake of it
63
+ `;
64
+ export function buildConsolidationUserPrompt(turns) {
65
+ if (turns.length === 0) {
66
+ return 'No recent conversations to review. Call memory_read to check current state and verify everything is still accurate.';
67
+ }
68
+ const maxChars = 8000;
69
+ const header = '## Recent Conversations\n\nBelow are recent conversation turns (newest last). Review them for signal worth persisting.\n\n';
70
+ const footer = '\n---\nBegin by calling memory_read for both targets to orient yourself, then consolidate as needed.';
71
+ let totalChars = header.length + footer.length;
72
+ const selected = [];
73
+ for (let i = turns.length - 1; i >= 0; i--) {
74
+ const turn = turns[i];
75
+ const entry = `### Session ${turn.sessionId} (${turn.createdAt})\n**User:** ${turn.userMessage}\n**Assistant:** ${turn.assistantMessage}\n\n`;
76
+ if (totalChars + entry.length > maxChars)
77
+ break;
78
+ selected.unshift(entry);
79
+ totalChars += entry.length;
80
+ }
81
+ return header + selected.join('') + footer;
82
+ }
83
+ export async function runConsolidation(opts) {
84
+ const { memoryDir, turns, modelConfig, modelRegistry, signal, maxTurns } = opts;
85
+ const model = modelRegistry.find(modelConfig.provider, modelConfig.model);
86
+ if (!model)
87
+ return false;
88
+ const auth = await modelRegistry.getApiKeyAndHeaders(model);
89
+ if (!auth.ok)
90
+ return false;
91
+ const store = new MemoryStore({ dir: memoryDir });
92
+ await store.loadFromDisk();
93
+ const tools = createMemoryTools(store);
94
+ const userPrompt = buildConsolidationUserPrompt(turns);
95
+ const agent = new Agent({
96
+ initialState: {
97
+ systemPrompt: CONSOLIDATION_SYSTEM_PROMPT,
98
+ model: model,
99
+ tools: tools,
100
+ },
101
+ streamFn: (m, c, streamOpts) => {
102
+ const existingSignal = streamOpts?.signal;
103
+ return streamSimple(m, c, {
104
+ ...streamOpts,
105
+ ...(auth.apiKey ? { apiKey: auth.apiKey } : {}),
106
+ ...(auth.headers ? { headers: auth.headers } : {}),
107
+ ...(existingSignal ? { signal: existingSignal } : signal ? { signal } : {}),
108
+ });
109
+ },
110
+ convertToLlm: (msgs) => msgs,
111
+ });
112
+ const limit = maxTurns ?? MAX_CONSOLIDATION_TURNS;
113
+ let turnCount = 0;
114
+ agent.subscribe((event) => {
115
+ if (event.type === 'turn_end') {
116
+ turnCount++;
117
+ if (turnCount >= limit || signal?.aborted) {
118
+ void agent.abort();
119
+ }
120
+ }
121
+ });
122
+ await agent.prompt(userPrompt);
123
+ return true;
124
+ }
125
+ //# sourceMappingURL=consolidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../src/consolidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface DreamingState {
2
+ lastConsolidatedAt: string | null;
3
+ lastSessionCount: number;
4
+ }
5
+ export declare function readDreamingState(): Promise<DreamingState>;
6
+ export declare function writeDreamingState(state: DreamingState): Promise<void>;
7
+ //# sourceMappingURL=dreaming-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreaming-state.d.ts","sourceRoot":"","sources":["../src/dreaming-state.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAQD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CAOhE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Dreaming state persistence — tracks when the last consolidation ran.
3
+ */
4
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
5
+ import { dirname, join } from 'node:path';
6
+ import { resolveHome } from '@amaster.ai/pi-shared/settings';
7
+ const STATE_FILE = 'memories/dreaming-state.json';
8
+ function statePath() {
9
+ return join(resolveHome(), STATE_FILE);
10
+ }
11
+ export async function readDreamingState() {
12
+ try {
13
+ const raw = await readFile(statePath(), 'utf-8');
14
+ return JSON.parse(raw);
15
+ }
16
+ catch {
17
+ return { lastConsolidatedAt: null, lastSessionCount: 0 };
18
+ }
19
+ }
20
+ export async function writeDreamingState(state) {
21
+ const filePath = statePath();
22
+ await mkdir(dirname(filePath), { recursive: true });
23
+ await writeFile(filePath, JSON.stringify(state, null, 2), 'utf-8');
24
+ }
25
+ //# sourceMappingURL=dreaming-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dreaming-state.js","sourceRoot":"","sources":["../src/dreaming-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAO7D,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAoB;IAC3D,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC"}
@@ -14,6 +14,14 @@ export type PiMemoryExtensionConfig = {
14
14
  extractionModel?: ExtractionModelConfig;
15
15
  /** Turns between extraction runs. Default: 5. */
16
16
  extractionInterval?: number;
17
+ /** Dreaming (periodic consolidation + dedup) config. */
18
+ dreaming?: DreamingConfig;
19
+ };
20
+ export type DreamingConfig = {
21
+ /** Set to false to disable dreaming entirely and unregister the cron job. Default: true. */
22
+ enabled?: boolean;
23
+ /** Interval in hours between dream runs. Default: 4. */
24
+ intervalHours?: number;
17
25
  };
18
26
  export default function memoryExtension(pi: ExtensionAPI, injectedConfig?: PiMemoryExtensionConfig): void;
19
27
  //# sourceMappingURL=extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAoBzC,MAAM,MAAM,uBAAuB,GAAG;IACpC,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAkCF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,EAAE,EAAE,YAAY,EAChB,cAAc,CAAC,EAAE,uBAAuB,GACvC,IAAI,CAkMN"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsBzC,MAAM,MAAM,uBAAuB,GAAG;IACpC,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAkEF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,EAAE,EAAE,YAAY,EAChB,cAAc,CAAC,EAAE,uBAAuB,GACvC,IAAI,CAuMN"}
package/dist/extension.js CHANGED
@@ -1,8 +1,11 @@
1
- import path from 'node:path';
1
+ import path, { dirname } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { install, status, uninstall } from '@amaster.ai/pi-shared/scheduler';
2
4
  import { loadPiSettings, resolveHome } from '@amaster.ai/pi-shared/settings';
3
5
  import { createExtractionRunner, } from './background-extraction.js';
4
6
  import { MemoryStore } from './store.js';
5
7
  import { createMemoryTools } from './tools.js';
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
6
9
  const SETTINGS_KEY = 'pi-memory';
7
10
  const STATUS_KEY = 'pi-memory';
8
11
  const MEMORY_GUIDANCE = [
@@ -31,6 +34,8 @@ function resolveConfig(raw) {
31
34
  resolved.store = raw.store;
32
35
  if (raw?.extractionModel)
33
36
  resolved.extractionModel = raw.extractionModel;
37
+ if (raw?.dreaming)
38
+ resolved.dreaming = raw.dreaming;
34
39
  return resolved;
35
40
  }
36
41
  function loadSettings(cwd) {
@@ -44,9 +49,36 @@ function loadSettings(cwd) {
44
49
  return undefined;
45
50
  }
46
51
  }
52
+ const DREAM_JOB_NAME = 'ai.pi.memory-dream';
53
+ const DEFAULT_DREAM_INTERVAL_HOURS = 4;
54
+ async function registerDreamingCron(dreaming) {
55
+ try {
56
+ if (dreaming?.enabled === false) {
57
+ const current = await status(DREAM_JOB_NAME);
58
+ if (current === 'installed') {
59
+ await uninstall(DREAM_JOB_NAME);
60
+ }
61
+ return;
62
+ }
63
+ const current = await status(DREAM_JOB_NAME);
64
+ if (current === 'installed')
65
+ return;
66
+ const dreamBin = path.resolve(__dirname, 'cli/dream.js');
67
+ const intervalHours = dreaming?.intervalHours ?? DEFAULT_DREAM_INTERVAL_HOURS;
68
+ await install({
69
+ name: DREAM_JOB_NAME,
70
+ command: process.execPath,
71
+ args: [dreamBin, '--once'],
72
+ intervalSeconds: intervalHours * 3600,
73
+ description: 'Pi memory consolidation and dedup',
74
+ });
75
+ }
76
+ catch {
77
+ // Non-fatal: cron registration failure should not block the extension
78
+ }
79
+ }
47
80
  export default function memoryExtension(pi, injectedConfig) {
48
81
  let store;
49
- let snapshot = '';
50
82
  let extractionRunner;
51
83
  pi.on('session_start', async (_event, ctx) => {
52
84
  const fileConfig = loadSettings(ctx.cwd);
@@ -64,7 +96,7 @@ export default function memoryExtension(pi, injectedConfig) {
64
96
  store = new MemoryStore(opts);
65
97
  }
66
98
  await store.loadFromDisk();
67
- snapshot = store.formatAllForSystemPrompt();
99
+ const snapshot = store.formatAllForSystemPrompt();
68
100
  ctx.ui.setStatus(STATUS_KEY, snapshot ? 'memory: loaded' : 'memory: empty');
69
101
  for (const tool of createMemoryTools(store)) {
70
102
  pi.registerTool(tool);
@@ -78,6 +110,8 @@ export default function memoryExtension(pi, injectedConfig) {
78
110
  onNotify: (msg, level) => ctx.ui.notify(msg, level),
79
111
  });
80
112
  }
113
+ // Auto-register dreaming cron job
114
+ await registerDreamingCron(config.dreaming);
81
115
  }
82
116
  catch (err) {
83
117
  ctx.ui.setStatus(STATUS_KEY, 'memory: unavailable');
@@ -90,6 +124,10 @@ export default function memoryExtension(pi, injectedConfig) {
90
124
  extractionRunner.onTurnEnd(event);
91
125
  });
92
126
  pi.on('before_agent_start', async (event) => {
127
+ if (store) {
128
+ await store.loadFromDisk();
129
+ }
130
+ const snapshot = store?.formatAllForSystemPrompt() ?? '';
93
131
  const block = snapshot ? `${MEMORY_GUIDANCE}\n\n${snapshot}` : MEMORY_GUIDANCE;
94
132
  return {
95
133
  systemPrompt: event.systemPrompt ? `${event.systemPrompt}\n\n${block}` : block,
@@ -99,7 +137,6 @@ export default function memoryExtension(pi, injectedConfig) {
99
137
  extractionRunner?.shutdown();
100
138
  extractionRunner = undefined;
101
139
  store = undefined;
102
- snapshot = '';
103
140
  });
104
141
  pi.registerCommand('memory', {
105
142
  description: 'Manage persistent memory. Subcommands: status, read, add, replace, remove.',
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -34,10 +34,10 @@ export type MemoryResult = MemorySuccessResult | MemoryDriftError | MemoryErrorR
34
34
  * Bounded curated memory with file persistence.
35
35
  *
36
36
  * Two parallel states:
37
- * - `_systemPromptSnapshot`: frozen at `loadFromDisk()`, used for system
38
- * prompt injection. Never mutated mid-session — keeps prefix cache stable.
39
- * - `memoryEntries` / `userEntries`: live state, mutated by tool calls,
40
- * persisted to disk. Tool responses always reflect this live state.
37
+ * - `_systemPromptSnapshot`: a sanitized prompt snapshot rebuilt explicitly
38
+ * by `loadFromDisk()`.
39
+ * - `memoryEntries` / `userEntries`: live state, refreshed by `read()`,
40
+ * mutated by tool calls, and persisted to disk.
41
41
  */
42
42
  export declare class MemoryStore {
43
43
  readonly dir: string;
@@ -75,6 +75,8 @@ export declare class MemoryStore {
75
75
  private charLimit;
76
76
  private charCount;
77
77
  private successResponse;
78
+ private refreshLiveEntries;
79
+ private rebuildSystemPromptSnapshot;
78
80
  private renderBlock;
79
81
  private saveToDisk;
80
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,eAAU,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAetF;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,oBAAoB,CAA0D;IACtF,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,kBAAkB;IAMpC;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC,sFAAsF;IACtF,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAInD,6EAA6E;IAC7E,wBAAwB,IAAI,MAAM;IAOlC,6CAA6C;IAC7C,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE;IAIpC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0CjE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2DzF,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCpE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAS9D,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,WAAW;YAWL,UAAU;IAKxB;;;;;;OAMG;YACW,YAAY;YAOZ,mBAAmB;YAgCnB,YAAY;CA4B3B"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,eAAU,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;AAetF;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,oBAAoB,CAA0D;IACtF,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,kBAAkB;IAMpC;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC,sFAAsF;IACtF,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAInD,6EAA6E;IAC7E,wBAAwB,IAAI,MAAM;IAOlC,6CAA6C;IAC7C,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE;IAIpC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0CjE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2DzF,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCpE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAW9D,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;YAgBT,kBAAkB;IAShC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,WAAW;YAWL,UAAU;IAKxB;;;;;;OAMG;YACW,YAAY;YAOZ,mBAAmB;YAgCnB,YAAY;CA4B3B"}
package/dist/store.js CHANGED
@@ -18,10 +18,10 @@ const DEFAULT_USER_CHAR_LIMIT = 1375;
18
18
  * Bounded curated memory with file persistence.
19
19
  *
20
20
  * Two parallel states:
21
- * - `_systemPromptSnapshot`: frozen at `loadFromDisk()`, used for system
22
- * prompt injection. Never mutated mid-session — keeps prefix cache stable.
23
- * - `memoryEntries` / `userEntries`: live state, mutated by tool calls,
24
- * persisted to disk. Tool responses always reflect this live state.
21
+ * - `_systemPromptSnapshot`: a sanitized prompt snapshot rebuilt explicitly
22
+ * by `loadFromDisk()`.
23
+ * - `memoryEntries` / `userEntries`: live state, refreshed by `read()`,
24
+ * mutated by tool calls, and persisted to disk.
25
25
  */
26
26
  export class MemoryStore {
27
27
  dir;
@@ -48,12 +48,8 @@ export class MemoryStore {
48
48
  */
49
49
  async loadFromDisk() {
50
50
  await fs.mkdir(this.dir, { recursive: true });
51
- this.memoryEntries = dedupe(await readEntriesFile(this.pathFor('memory')));
52
- this.userEntries = dedupe(await readEntriesFile(this.pathFor('user')));
53
- this.systemPromptSnapshot = {
54
- memory: this.renderBlock('memory', sanitizeForSnapshot(this.memoryEntries, FILENAME.memory)),
55
- user: this.renderBlock('user', sanitizeForSnapshot(this.userEntries, FILENAME.user)),
56
- };
51
+ await this.refreshLiveEntries();
52
+ this.rebuildSystemPromptSnapshot();
57
53
  this.loaded = true;
58
54
  }
59
55
  /** Return frozen snapshot for system prompt injection. Empty string if no entries. */
@@ -192,6 +188,9 @@ export class MemoryStore {
192
188
  if (!this.loaded) {
193
189
  await this.loadFromDisk();
194
190
  }
191
+ else {
192
+ await this.refreshLiveEntries(target);
193
+ }
195
194
  return this.successResponse(target);
196
195
  }
197
196
  // -- internals -----------------------------------------------------------
@@ -230,6 +229,20 @@ export class MemoryStore {
230
229
  result.message = message;
231
230
  return result;
232
231
  }
232
+ async refreshLiveEntries(target) {
233
+ if (!target || target === 'memory') {
234
+ this.memoryEntries = dedupe(await readEntriesFile(this.pathFor('memory')));
235
+ }
236
+ if (!target || target === 'user') {
237
+ this.userEntries = dedupe(await readEntriesFile(this.pathFor('user')));
238
+ }
239
+ }
240
+ rebuildSystemPromptSnapshot() {
241
+ this.systemPromptSnapshot = {
242
+ memory: this.renderBlock('memory', sanitizeForSnapshot(this.memoryEntries, FILENAME.memory)),
243
+ user: this.renderBlock('user', sanitizeForSnapshot(this.userEntries, FILENAME.user)),
244
+ };
245
+ }
233
246
  renderBlock(target, entries) {
234
247
  if (entries.length === 0)
235
248
  return '';
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAuCvC,MAAM,QAAQ,GAAiC;IAC7C,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,YAAY,GAAiC;IACjD,MAAM,EAAE,8BAA8B;IACtC,IAAI,EAAE,gCAAgC;CACvC,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,OAAO,WAAW;IACb,GAAG,CAAS;IACZ,eAAe,CAAS;IACxB,aAAa,CAAS;IAEvB,aAAa,GAAa,EAAE,CAAC;IAC7B,WAAW,GAAa,EAAE,CAAC;IAC3B,oBAAoB,GAAiC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC9E,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,IAAwB;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,yBAAyB,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC;IACrE,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,sFAAsF;IACtF,qBAAqB,CAAC,MAAoB;QACxC,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,6EAA6E;IAC7E,wBAAwB;QACtB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAC7F,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CACpB,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,6CAA6C;IAC7C,UAAU,CAAC,MAAoB;QAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAoB,EAAE,OAAe;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK;gBAAE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YACzD,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EACH,aAAa,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,UAAU;wBACzE,sBAAsB,OAAO,CAAC,MAAM,kCAAkC;wBACtE,2CAA2C;oBAC7C,cAAc,EAAE,CAAC,GAAG,OAAO,CAAC;oBAC5B,KAAK,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;iBAC/D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB,EAAE,OAAe,EAAE,UAAkB;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC3E,IAAI,CAAC,OAAO;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,6DAA6D;aACrE,CAAC;QAEJ,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAE3D,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK;gBAAE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,OAAO;iBACpB,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;iBACjC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,OAAO,IAAI,EAAE,CAAC;YACrE,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,6BAA6B,OAAO,sBAAsB;wBACjE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACjC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACvD;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EACH,mCAAmC,QAAQ,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,UAAU;wBAChG,wDAAwD;iBAC3D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB,EAAE,OAAe;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAE3E,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK;gBAAE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,OAAO;iBACpB,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;iBACjC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,OAAO,IAAI,EAAE,CAAC;YACrE,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,6BAA6B,OAAO,sBAAsB;wBACjE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACjC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACvD;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,2EAA2E;IAEnE,OAAO,CAAC,MAAoB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,UAAU,CAAC,MAAoB;QACrC,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IACnE,CAAC;IAEO,UAAU,CAAC,MAAoB,EAAE,OAAiB;QACxD,IAAI,MAAM,KAAK,MAAM;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;;YAC7C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IACpC,CAAC;IAEO,SAAS,CAAC,MAAoB;QACpC,OAAO,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IACvE,CAAC;IAEO,SAAS,CAAC,MAAoB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;IACzE,CAAC;IAEO,eAAe,CAAC,MAAoB,EAAE,OAAgB;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAwB;YAClC,OAAO,EAAE,IAAI;YACb,MAAM;YACN,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;YACrB,KAAK,EAAE,GAAG,GAAG,OAAO,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,QAAQ;YAC9E,UAAU,EAAE,OAAO,CAAC,MAAM;SAC3B,CAAC;QACF,IAAI,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAqB;QACpD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,2BAA2B;QACjC,IAAI,CAAC,oBAAoB,GAAG;YAC1B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5F,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrF,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,MAAoB,EAAE,OAAiB;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;QACjH,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,GAAG,GAAG,KAAK,MAAM,KAAK,GAAG,KAAK,OAAO,EAAE,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAoB;QAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,MAAoB;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAoB;QACpD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,MAAM,GAAG,GAAG;aACf,KAAK,CAAC,eAAe,CAAC;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,WAAW,GAAG,SAAS,CAAC;QAClE,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,OAAO,2CAA2C,CAAC;QAC/D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAI,MAAoB,EAAE,EAAoB;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,uEAAuE;QACvE,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE;YAC9C,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACtE,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,MAAM,CAAI,GAAQ;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,CAAS;IACtC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,GAAG;SACP,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAiB,EAAE,QAAgB;IAC9D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CACN,aAAa,QAAQ,uCAAuC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjF,mGAAmG,CACtG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB,EAAE,OAAe;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EACH,qBAAqB,IAAI,8EAA8E;YACvG,0FAA0F;YAC1F,2BAA2B,OAAO,iEAAiE;YACnG,yHAAyH;QAC3H,WAAW,EAAE,OAAO;QACpB,WAAW,EACT,uGAAuG;YACvG,4DAA4D;KAC/D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,OAAe;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACxD,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amaster.ai/pi-memory",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Pi extension providing persistent curated memory (MEMORY.md + USER.md) injected into the system prompt as a frozen snapshot.",
5
5
  "keywords": [
6
6
  "pi-package",
@@ -14,6 +14,9 @@
14
14
  "sideEffects": false,
15
15
  "main": "./dist/index.js",
16
16
  "types": "./dist/index.d.ts",
17
+ "bin": {
18
+ "pi-memory-dream": "./dist/cli/dream.js"
19
+ },
17
20
  "exports": {
18
21
  ".": {
19
22
  "types": "./dist/index.d.ts",
@@ -39,6 +42,14 @@
39
42
  "types": "./dist/background-extraction.d.ts",
40
43
  "default": "./dist/background-extraction.js"
41
44
  },
45
+ "./consolidation": {
46
+ "types": "./dist/consolidation.d.ts",
47
+ "default": "./dist/consolidation.js"
48
+ },
49
+ "./dreaming-state": {
50
+ "types": "./dist/dreaming-state.d.ts",
51
+ "default": "./dist/dreaming-state.js"
52
+ },
42
53
  "./package.json": {
43
54
  "default": "./package.json"
44
55
  }
@@ -64,7 +75,9 @@
64
75
  },
65
76
  "dependencies": {
66
77
  "proper-lockfile": "^4.1.2",
67
- "@amaster.ai/pi-shared": "0.1.2"
78
+ "@amaster.ai/pi-shared": "0.1.4",
79
+ "@amaster.ai/pi-storage": "0.1.4",
80
+ "@amaster.ai/pi-memory-mem0": "0.1.4"
68
81
  },
69
82
  "peerDependencies": {
70
83
  "@earendil-works/pi-agent-core": ">=0.74.0",