@deposition.cloud/memory 1.0.2 → 1.2.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.
@@ -8,4 +8,5 @@ export interface CurrentThoughtsSnapshot {
8
8
  }
9
9
  export declare function createCurrentThoughtsTemplate(startedAt?: string): string;
10
10
  export declare function initializeCurrentThoughts(thoughtsDir: string, startedAt?: string): CurrentThoughtsResult;
11
+ export declare function extractKeywords(content: string): string[];
11
12
  export declare function snapshotCurrentThoughts(thoughtsDir: string, timestamp?: string): CurrentThoughtsSnapshot;
@@ -47,6 +47,15 @@ export function initializeCurrentThoughts(thoughtsDir, startedAt = new Date().to
47
47
  currentThoughtsPath
48
48
  };
49
49
  }
50
+ export function extractKeywords(content) {
51
+ const match = content.match(/^-\s*keywords:\s*\[([^\]]*)\]/m);
52
+ if (!match)
53
+ return [];
54
+ return match[1]
55
+ .split(',')
56
+ .map((k) => k.trim().toLowerCase().replace(/\s+/g, '-'))
57
+ .filter(Boolean);
58
+ }
50
59
  export function snapshotCurrentThoughts(thoughtsDir, timestamp = new Date().toISOString().replaceAll(':', '-')) {
51
60
  const currentThoughtsPath = path.join(thoughtsDir, 'current-thoughts.md');
52
61
  if (!fs.existsSync(currentThoughtsPath)) {
@@ -56,7 +65,9 @@ export function snapshotCurrentThoughts(thoughtsDir, timestamp = new Date().toIS
56
65
  if (current === '') {
57
66
  throw new Error('Current thoughts file is empty.');
58
67
  }
59
- const snapshotPath = path.join(thoughtsDir, `thought-${timestamp}.md`);
68
+ const keywords = extractKeywords(current);
69
+ const suffix = keywords.length > 0 ? `--${keywords.join(',')}` : '';
70
+ const snapshotPath = path.join(thoughtsDir, `thought-${timestamp}${suffix}.md`);
60
71
  fs.writeFileSync(snapshotPath, `${current}\n`);
61
72
  fs.writeFileSync(currentThoughtsPath, createCurrentThoughtsTemplate());
62
73
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"current-thoughts.js","sourceRoot":"","sources":["../src/current-thoughts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAY5B,MAAM,UAAU,6BAA6B,CAAC,SAAS,GAAG,SAAS;IACjE,OAAO;;;;gBAIO,SAAS;;;;;;;;;;;;;;;;;;;;;;CAsBxB,CAAA;AACD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,WAAmB,EACnB,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAEpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAA;IACzE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QAC7D,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3B,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,mBAAmB;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAA;IAE/E,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,mBAAmB;KACpB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IAEzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAA;IAEzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,qCAAqC,mBAAmB,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACnE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,SAAS,KAAK,CAAC,CAAA;IACtE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,OAAO,IAAI,CAAC,CAAA;IAC9C,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAEtE,OAAO;QACL,YAAY;QACZ,mBAAmB;KACpB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"current-thoughts.js","sourceRoot":"","sources":["../src/current-thoughts.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import fs from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { afterEach, describe, expect, it } from 'vitest';
5
- import { createCurrentThoughtsTemplate, initializeCurrentThoughts, snapshotCurrentThoughts } from './current-thoughts.js';
5
+ import { createCurrentThoughtsTemplate, extractKeywords, initializeCurrentThoughts, snapshotCurrentThoughts } from './current-thoughts.js';
6
6
  const tempDirs = [];
7
7
  function makeTempDir() {
8
8
  const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'governance-memory-thoughts-'));
@@ -46,9 +46,65 @@ describe('current thought utilities', () => {
46
46
  expect(result.snapshotPath).toMatch(/thought-2026-03-22T00-00-00.000Z\.md$/);
47
47
  expect(current).toMatch(/# Current Thoughts/);
48
48
  });
49
+ it('includes keywords in snapshot filename when present', () => {
50
+ const thoughtsDir = makeTempDir();
51
+ fs.mkdirSync(thoughtsDir, { recursive: true });
52
+ const content = `# Current Thoughts
53
+
54
+ ## Session
55
+
56
+ - started_at: 2026-03-22T00:00:00.000Z
57
+ - topic: governance refactor
58
+ - keywords: [delegation, codex, memory]
59
+
60
+ ## Working Notes
61
+
62
+ - Updated delegation docs
63
+ `;
64
+ fs.writeFileSync(path.join(thoughtsDir, 'current-thoughts.md'), content);
65
+ const result = snapshotCurrentThoughts(thoughtsDir, '2026-03-22T00-00-00.000Z');
66
+ expect(result.snapshotPath).toMatch(/thought-2026-03-22T00-00-00\.000Z--delegation,codex,memory\.md$/);
67
+ });
68
+ it('omits keyword suffix when keywords list is empty', () => {
69
+ const thoughtsDir = makeTempDir();
70
+ fs.mkdirSync(thoughtsDir, { recursive: true });
71
+ const content = `# Current Thoughts
72
+
73
+ ## Session
74
+
75
+ - started_at: 2026-03-22T00:00:00.000Z
76
+ - topic: pending
77
+ - keywords: []
78
+
79
+ ## Working Notes
80
+
81
+ - something
82
+ `;
83
+ fs.writeFileSync(path.join(thoughtsDir, 'current-thoughts.md'), content);
84
+ const result = snapshotCurrentThoughts(thoughtsDir, '2026-03-22T00-00-00.000Z');
85
+ expect(result.snapshotPath).toMatch(/thought-2026-03-22T00-00-00\.000Z\.md$/);
86
+ expect(result.snapshotPath).not.toMatch(/--/);
87
+ });
49
88
  it('throws when no current thoughts file exists', () => {
50
89
  const thoughtsDir = makeTempDir();
51
90
  expect(() => snapshotCurrentThoughts(thoughtsDir, '2026-03-22T00-00-00.000Z')).toThrow(/No current thoughts file found/);
52
91
  });
53
92
  });
93
+ describe('extractKeywords', () => {
94
+ it('extracts comma-separated keywords from markdown list item', () => {
95
+ const content = '- keywords: [delegation, codex, memory]\n';
96
+ expect(extractKeywords(content)).toEqual(['delegation', 'codex', 'memory']);
97
+ });
98
+ it('returns empty array for empty brackets', () => {
99
+ const content = '- keywords: []\n';
100
+ expect(extractKeywords(content)).toEqual([]);
101
+ });
102
+ it('returns empty array when no keywords line exists', () => {
103
+ expect(extractKeywords('# No keywords here\n')).toEqual([]);
104
+ });
105
+ it('lowercases and slugifies multi-word keywords', () => {
106
+ const content = '- keywords: [Supply Chain, Audit Trail]\n';
107
+ expect(extractKeywords(content)).toEqual(['supply-chain', 'audit-trail']);
108
+ });
109
+ });
54
110
  //# sourceMappingURL=current-thoughts.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"current-thoughts.test.js","sourceRoot":"","sources":["../src/current-thoughts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAExD,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,QAAQ,GAAa,EAAE,CAAA;AAE7B,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAA;IACjF,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,QAAQ,GAAG,6BAA6B,CAAC,0BAA0B,CAAC,CAAA;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;QAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,WAAW,GAAG,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,yBAAyB,CACtC,WAAW,EACX,0BAA0B,CAC3B,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,WAAW,GAAG,WAAW,EAAE,CAAA;QACjC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAA;QACzE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;QAErD,MAAM,MAAM,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,WAAW,GAAG,WAAW,EAAE,CAAA;QACjC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,EAAE,aAAa,CAAC,CAAA;QAE9E,MAAM,MAAM,GAAG,uBAAuB,CACpC,WAAW,EACX,0BAA0B,CAC3B,CAAA;QACD,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;QAEnE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;QAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,WAAW,GAAG,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,GAAG,EAAE,CACV,uBAAuB,CAAC,WAAW,EAAE,0BAA0B,CAAC,CACjE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"current-thoughts.test.js","sourceRoot":"","sources":["../src/current-thoughts.test.ts"],"names":[],"mappings":"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"}
package/dist/memory.d.ts CHANGED
@@ -13,9 +13,16 @@ export interface MemoryCompactionPromptOptions {
13
13
  thoughtsDir: string;
14
14
  monthlyDir: string;
15
15
  patternsDir: string;
16
+ keepLast?: number;
16
17
  now?: Date;
17
18
  }
18
19
  export declare function listArchivedThoughts(thoughtsDir: string): string[];
20
+ /**
21
+ * Returns the archived thought filenames that are safe to delete during
22
+ * compaction — all except the `keepLast` most-recent files (sorted ascending,
23
+ * so the tail is the most recent). Defaults to keeping 0 (delete all).
24
+ */
25
+ export declare function getThoughtsToCompact(thoughtsDir: string, keepLast?: number): string[];
19
26
  export declare function getMemoryVigor(thoughtsDir: string): MemoryVigor;
20
27
  export declare function formatMemoryVigor(vigor: MemoryVigor): string;
21
- export declare function createMemoryCompactionPrompt({ thoughtsDir, monthlyDir, patternsDir, now }: MemoryCompactionPromptOptions): string;
28
+ export declare function createMemoryCompactionPrompt({ thoughtsDir, monthlyDir, patternsDir, keepLast, now }: MemoryCompactionPromptOptions): string;
package/dist/memory.js CHANGED
@@ -14,6 +14,17 @@ export function listArchivedThoughts(thoughtsDir) {
14
14
  .map((entry) => entry.name)
15
15
  .sort();
16
16
  }
17
+ /**
18
+ * Returns the archived thought filenames that are safe to delete during
19
+ * compaction — all except the `keepLast` most-recent files (sorted ascending,
20
+ * so the tail is the most recent). Defaults to keeping 0 (delete all).
21
+ */
22
+ export function getThoughtsToCompact(thoughtsDir, keepLast = 0) {
23
+ const all = listArchivedThoughts(thoughtsDir);
24
+ if (keepLast <= 0)
25
+ return all;
26
+ return all.slice(0, Math.max(0, all.length - keepLast));
27
+ }
17
28
  export function getMemoryVigor(thoughtsDir) {
18
29
  const archivedThoughts = listArchivedThoughts(thoughtsDir);
19
30
  const count = archivedThoughts.length;
@@ -36,8 +47,10 @@ export function formatMemoryVigor(vigor) {
36
47
  }
37
48
  return lines.join('\n');
38
49
  }
39
- export function createMemoryCompactionPrompt({ thoughtsDir, monthlyDir, patternsDir, now = new Date() }) {
50
+ export function createMemoryCompactionPrompt({ thoughtsDir, monthlyDir, patternsDir, keepLast = 0, now = new Date() }) {
40
51
  const archivedThoughts = listArchivedThoughts(thoughtsDir);
52
+ const toCompact = getThoughtsToCompact(thoughtsDir, keepLast);
53
+ const toRetain = archivedThoughts.slice(toCompact.length);
41
54
  const currentMonth = now.toISOString().slice(0, 7);
42
55
  const monthlyPath = path.join(monthlyDir, `${currentMonth}.md`);
43
56
  const lines = [
@@ -51,19 +64,29 @@ export function createMemoryCompactionPrompt({ thoughtsDir, monthlyDir, patterns
51
64
  `- Monthly synthesis target: ${monthlyPath}`,
52
65
  `- Patterns directory: ${patternsDir}`,
53
66
  `- Archived thought files: ${archivedThoughts.length}`,
67
+ `- Files to compact: ${toCompact.length}`,
68
+ `- Files to retain (keepLast: ${keepLast}): ${toRetain.length}`,
54
69
  '',
55
70
  '## Actions',
56
71
  '',
57
- '1. Read the most relevant recent thought snapshots.',
72
+ '1. Read the thought snapshots listed under "To Compact" below.',
58
73
  '2. Update the monthly synthesis with durable developments.',
59
74
  '3. Promote repeatable standards into docs/patterns/ or .agents/codex/.',
60
75
  '4. Keep thoughts as episodic memory, not canonical law.',
61
- '5. Re-run `pnpm memory:vigor` after compaction.',
76
+ '5. Delete only the files listed under "To Compact".',
77
+ '6. Re-run `pnpm memory:vigor` after compaction.',
62
78
  ''
63
79
  ];
64
- if (archivedThoughts.length > 0) {
65
- lines.push('## Recent Thoughts', '');
66
- for (const thought of archivedThoughts.slice(-10)) {
80
+ if (toCompact.length > 0) {
81
+ lines.push('## To Compact (delete after synthesising)', '');
82
+ for (const thought of toCompact) {
83
+ lines.push(`- ${thought}`);
84
+ }
85
+ lines.push('');
86
+ }
87
+ if (toRetain.length > 0) {
88
+ lines.push('## To Retain (keep as recent context)', '');
89
+ for (const thought of toRetain) {
67
90
  lines.push(`- ${thought}`);
68
91
  }
69
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import fs from 'node:fs';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { afterEach, describe, expect, it } from 'vitest';
5
- import { createMemoryCompactionPrompt, formatMemoryVigor, getMemoryVigor, listArchivedThoughts } from './memory.js';
5
+ import { createMemoryCompactionPrompt, formatMemoryVigor, getMemoryVigor, getThoughtsToCompact, listArchivedThoughts } from './memory.js';
6
6
  const tempDirs = [];
7
7
  function makeTempDir() {
8
8
  const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'governance-memory-'));
@@ -76,5 +76,58 @@ describe('memory utilities', () => {
76
76
  expect(prompt).toMatch(/thought-a\.md/);
77
77
  expect(prompt).toMatch(/thought-b\.md/);
78
78
  });
79
+ it('getThoughtsToCompact returns all files when keepLast is 0', () => {
80
+ const dir = makeTempDir();
81
+ fs.writeFileSync(path.join(dir, 'thought-a.md'), 'a');
82
+ fs.writeFileSync(path.join(dir, 'thought-b.md'), 'b');
83
+ fs.writeFileSync(path.join(dir, 'thought-c.md'), 'c');
84
+ expect(getThoughtsToCompact(dir, 0)).toEqual([
85
+ 'thought-a.md',
86
+ 'thought-b.md',
87
+ 'thought-c.md'
88
+ ]);
89
+ });
90
+ it('getThoughtsToCompact retains the last N files', () => {
91
+ const dir = makeTempDir();
92
+ fs.writeFileSync(path.join(dir, 'thought-a.md'), 'a');
93
+ fs.writeFileSync(path.join(dir, 'thought-b.md'), 'b');
94
+ fs.writeFileSync(path.join(dir, 'thought-c.md'), 'c');
95
+ fs.writeFileSync(path.join(dir, 'thought-d.md'), 'd');
96
+ fs.writeFileSync(path.join(dir, 'thought-e.md'), 'e');
97
+ expect(getThoughtsToCompact(dir, 3)).toEqual([
98
+ 'thought-a.md',
99
+ 'thought-b.md'
100
+ ]);
101
+ });
102
+ it('getThoughtsToCompact returns empty when keepLast >= total', () => {
103
+ const dir = makeTempDir();
104
+ fs.writeFileSync(path.join(dir, 'thought-a.md'), 'a');
105
+ fs.writeFileSync(path.join(dir, 'thought-b.md'), 'b');
106
+ expect(getThoughtsToCompact(dir, 5)).toEqual([]);
107
+ });
108
+ it('compaction prompt separates To Compact and To Retain sections', () => {
109
+ const thoughtsDir = makeTempDir();
110
+ const monthlyDir = makeTempDir();
111
+ const patternsDir = makeTempDir();
112
+ for (const name of ['thought-a.md', 'thought-b.md', 'thought-c.md', 'thought-d.md', 'thought-e.md']) {
113
+ fs.writeFileSync(path.join(thoughtsDir, name), 'x');
114
+ }
115
+ const prompt = createMemoryCompactionPrompt({
116
+ thoughtsDir,
117
+ monthlyDir,
118
+ patternsDir,
119
+ keepLast: 2,
120
+ now: new Date('2026-04-01T00:00:00.000Z')
121
+ });
122
+ expect(prompt).toMatch(/Files to compact: 3/);
123
+ expect(prompt).toMatch(/Files to retain \(keepLast: 2\): 2/);
124
+ expect(prompt).toMatch(/## To Compact/);
125
+ expect(prompt).toMatch(/thought-a\.md/);
126
+ expect(prompt).toMatch(/thought-b\.md/);
127
+ expect(prompt).toMatch(/thought-c\.md/);
128
+ expect(prompt).toMatch(/## To Retain/);
129
+ expect(prompt).toMatch(/thought-d\.md/);
130
+ expect(prompt).toMatch(/thought-e\.md/);
131
+ });
79
132
  });
80
133
  //# sourceMappingURL=memory.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.test.js","sourceRoot":"","sources":["../src/memory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.test.js","sourceRoot":"","sources":["../src/memory.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deposition.cloud/memory",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "description": "Reusable governance memory and thought-management utilities",
5
5
  "type": "module",
6
6
  "private": false,