@coralai/sps-cli 0.32.0 → 0.34.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.
Files changed (97) hide show
  1. package/README.md +103 -6
  2. package/dist/commands/agentCommand.js +1 -1
  3. package/dist/commands/agentCommand.js.map +1 -1
  4. package/dist/commands/cardDashboard.d.ts.map +1 -1
  5. package/dist/commands/cardDashboard.js +57 -32
  6. package/dist/commands/cardDashboard.js.map +1 -1
  7. package/dist/commands/pipelineTick.d.ts.map +1 -1
  8. package/dist/commands/pipelineTick.js +12 -6
  9. package/dist/commands/pipelineTick.js.map +1 -1
  10. package/dist/commands/qaTick.d.ts.map +1 -1
  11. package/dist/commands/qaTick.js +13 -6
  12. package/dist/commands/qaTick.js.map +1 -1
  13. package/dist/commands/setup.d.ts +7 -0
  14. package/dist/commands/setup.d.ts.map +1 -1
  15. package/dist/commands/setup.js +86 -1
  16. package/dist/commands/setup.js.map +1 -1
  17. package/dist/commands/tick.d.ts.map +1 -1
  18. package/dist/commands/tick.js +27 -19
  19. package/dist/commands/tick.js.map +1 -1
  20. package/dist/commands/workerDashboard.js +2 -2
  21. package/dist/commands/workerDashboard.js.map +1 -1
  22. package/dist/commands/workerLaunch.d.ts.map +1 -1
  23. package/dist/commands/workerLaunch.js +11 -6
  24. package/dist/commands/workerLaunch.js.map +1 -1
  25. package/dist/commands/workerPs.d.ts +11 -0
  26. package/dist/commands/workerPs.d.ts.map +1 -0
  27. package/dist/commands/workerPs.js +228 -0
  28. package/dist/commands/workerPs.js.map +1 -0
  29. package/dist/core/config.d.ts +4 -9
  30. package/dist/core/config.d.ts.map +1 -1
  31. package/dist/core/config.js +4 -18
  32. package/dist/core/config.js.map +1 -1
  33. package/dist/core/config.test.js +2 -19
  34. package/dist/core/config.test.js.map +1 -1
  35. package/dist/core/memory.d.ts +86 -0
  36. package/dist/core/memory.d.ts.map +1 -0
  37. package/dist/core/memory.js +415 -0
  38. package/dist/core/memory.js.map +1 -0
  39. package/dist/core/projectPipelineAdapter.d.ts +16 -6
  40. package/dist/core/projectPipelineAdapter.d.ts.map +1 -1
  41. package/dist/core/projectPipelineAdapter.js +94 -30
  42. package/dist/core/projectPipelineAdapter.js.map +1 -1
  43. package/dist/core/sessionLiveness.d.ts.map +1 -1
  44. package/dist/core/sessionLiveness.js +1 -2
  45. package/dist/core/sessionLiveness.js.map +1 -1
  46. package/dist/core/state.d.ts +2 -2
  47. package/dist/core/state.d.ts.map +1 -1
  48. package/dist/engines/CloseoutEngine.js +1 -1
  49. package/dist/engines/CloseoutEngine.js.map +1 -1
  50. package/dist/engines/EventHandler.d.ts.map +1 -1
  51. package/dist/engines/EventHandler.js +6 -9
  52. package/dist/engines/EventHandler.js.map +1 -1
  53. package/dist/engines/ExecutionEngine.d.ts.map +1 -1
  54. package/dist/engines/ExecutionEngine.js +6 -18
  55. package/dist/engines/ExecutionEngine.js.map +1 -1
  56. package/dist/engines/MonitorEngine.d.ts.map +1 -1
  57. package/dist/engines/MonitorEngine.js +11 -7
  58. package/dist/engines/MonitorEngine.js.map +1 -1
  59. package/dist/engines/SchedulerEngine.js +1 -1
  60. package/dist/engines/SchedulerEngine.js.map +1 -1
  61. package/dist/engines/StageEngine.d.ts +80 -0
  62. package/dist/engines/StageEngine.d.ts.map +1 -0
  63. package/dist/engines/StageEngine.js +1101 -0
  64. package/dist/engines/StageEngine.js.map +1 -0
  65. package/dist/engines/engine-pipeline-adapter.test.js +26 -21
  66. package/dist/engines/engine-pipeline-adapter.test.js.map +1 -1
  67. package/dist/main.js +172 -7
  68. package/dist/main.js.map +1 -1
  69. package/dist/manager/integration-queue.d.ts +1 -1
  70. package/dist/manager/integration-queue.d.ts.map +1 -1
  71. package/dist/manager/integration-queue.test.js +1 -1
  72. package/dist/manager/integration-queue.test.js.map +1 -1
  73. package/dist/manager/pm-client.js +1 -1
  74. package/dist/manager/runtime-coordinator.js +1 -1
  75. package/dist/manager/runtime-coordinator.js.map +1 -1
  76. package/dist/manager/supervisor.d.ts +6 -10
  77. package/dist/manager/supervisor.d.ts.map +1 -1
  78. package/dist/manager/supervisor.js +6 -102
  79. package/dist/manager/supervisor.js.map +1 -1
  80. package/dist/manager/supervisor.test.js +7 -51
  81. package/dist/manager/supervisor.test.js.map +1 -1
  82. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  83. package/dist/manager/worker-manager-impl.js +22 -43
  84. package/dist/manager/worker-manager-impl.js.map +1 -1
  85. package/dist/manager/worker-manager-impl.test.js +20 -139
  86. package/dist/manager/worker-manager-impl.test.js.map +1 -1
  87. package/dist/manager/worker-manager.d.ts +2 -2
  88. package/dist/manager/worker-manager.d.ts.map +1 -1
  89. package/dist/providers/MarkdownTaskBackend.d.ts +6 -1
  90. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
  91. package/dist/providers/MarkdownTaskBackend.js +50 -24
  92. package/dist/providers/MarkdownTaskBackend.js.map +1 -1
  93. package/dist/providers/registry.d.ts +1 -1
  94. package/dist/providers/registry.d.ts.map +1 -1
  95. package/dist/providers/registry.js +2 -2
  96. package/dist/providers/registry.js.map +1 -1
  97. package/package.json +1 -1
@@ -13,7 +13,7 @@ function makeConfig(overrides) {
13
13
  PM_TOOL: 'plane',
14
14
  MR_MODE: 'none',
15
15
  WORKER_TOOL: 'claude',
16
- WORKER_TRANSPORT: 'proc',
16
+ WORKER_TRANSPORT: 'acp-sdk',
17
17
  MAX_CONCURRENT_WORKERS: 3,
18
18
  WORKER_RESTART_LIMIT: 2,
19
19
  MAX_ACTIONS_PER_TICK: 1,
@@ -82,29 +82,12 @@ describe('resolveWorkflowTransport', () => {
82
82
  const config = makeConfig({ raw: { WORKER_TRANSPORT: 'acp' } });
83
83
  expect(resolveWorkflowTransport(config)).toBe('acp-sdk');
84
84
  });
85
- it('preserves proc when explicitly set', async () => {
86
- const { resolveWorkflowTransport } = await import('./config.js');
87
- const config = makeConfig({ raw: { WORKER_TRANSPORT: 'proc' } });
88
- expect(resolveWorkflowTransport(config)).toBe('proc');
89
- });
90
- it('maps unknown transport to acp-sdk', async () => {
85
+ it('always returns acp-sdk regardless of config', async () => {
91
86
  const { resolveWorkflowTransport } = await import('./config.js');
92
87
  const config = makeConfig({ raw: { WORKER_TRANSPORT: 'unknown' } });
93
88
  expect(resolveWorkflowTransport(config)).toBe('acp-sdk');
94
89
  });
95
90
  });
96
- describe('workflowUsesAgentRuntime', () => {
97
- it('returns true for default acp-sdk transport', async () => {
98
- const { workflowUsesAgentRuntime } = await import('./config.js');
99
- const config = makeConfig();
100
- expect(workflowUsesAgentRuntime(config)).toBe(true);
101
- });
102
- it('returns false for proc transport', async () => {
103
- const { workflowUsesAgentRuntime } = await import('./config.js');
104
- const config = makeConfig({ raw: { WORKER_TRANSPORT: 'proc' } });
105
- expect(workflowUsesAgentRuntime(config)).toBe(false);
106
- });
107
- });
108
91
  describe('loadProjectConf', () => {
109
92
  let fakeHome;
110
93
  let originalHome;
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/core/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/core/config.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Memory system — persistent project-level knowledge for SPS workers and agents.
3
+ *
4
+ * Design follows Claude Code's approach:
5
+ * - File-based storage with YAML frontmatter (name / description / type)
6
+ * - MEMORY.md index file (one line per entry, max 200 lines)
7
+ * - Agents read/write memory files directly via bash
8
+ * - CLI provides `sps memory context` for prompt injection
9
+ *
10
+ * Directory layout:
11
+ * ~/.coral/memory/projects/<project>/
12
+ * ├── MEMORY.md ← index (loaded into every prompt)
13
+ * ├── api-naming.md ← convention
14
+ * ├── use-phaser.md ← decision
15
+ * └── migration-order.md ← lesson
16
+ *
17
+ * Types: convention (no decay), decision (slow decay), lesson (normal decay), reference (no decay)
18
+ */
19
+ export declare const MEMORY_TYPES: readonly ["convention", "decision", "lesson", "reference"];
20
+ export type MemoryType = (typeof MEMORY_TYPES)[number];
21
+ export interface MemoryHeader {
22
+ filename: string;
23
+ filePath: string;
24
+ mtimeMs: number;
25
+ name: string | null;
26
+ description: string | null;
27
+ type: MemoryType | undefined;
28
+ }
29
+ export declare const MEMORY_INDEX = "MEMORY.md";
30
+ /** Get the user-level memory directory (cross-project preferences) */
31
+ export declare function getUserMemoryDir(): string;
32
+ /** Get the agent-level memory directory (per daemon instance) */
33
+ export declare function getAgentMemoryDir(agentId: string): string;
34
+ /** Get the memory directory for a project */
35
+ export declare function getProjectMemoryDir(project: string): string;
36
+ /** Ensure project memory directory exists */
37
+ export declare function ensureMemoryDir(project: string): string;
38
+ /** Ensure user memory directory exists */
39
+ export declare function ensureUserMemoryDir(): string;
40
+ /** Ensure agent memory directory exists */
41
+ export declare function ensureAgentMemoryDir(agentId: string): string;
42
+ /** Scan memory directory for .md files, return headers sorted newest-first */
43
+ export declare function scanMemoryFiles(memoryDir: string): MemoryHeader[];
44
+ /** Read MEMORY.md index content, truncated to max lines */
45
+ export declare function readMemoryIndex(memoryDir: string): string;
46
+ /** Read a memory file, truncated to max lines */
47
+ export declare function readMemoryFile(filePath: string): string;
48
+ /**
49
+ * Build the memory context string for prompt injection.
50
+ * Includes: MEMORY.md index + selected file contents.
51
+ */
52
+ export declare function buildMemoryContext(project: string, cardSeq?: string): string;
53
+ /**
54
+ * Build user-level memory context (cross-project preferences).
55
+ * Injected into every agent/worker prompt.
56
+ */
57
+ export declare function buildUserMemoryContext(): string;
58
+ /**
59
+ * Build agent-level memory context (daemon instance experience).
60
+ * Injected when attaching to a daemon session.
61
+ */
62
+ export declare function buildAgentMemoryContext(agentId: string): string;
63
+ /**
64
+ * Build combined memory context for all applicable layers.
65
+ * Used by StageEngine (user + project) and agent commands (user + agent).
66
+ */
67
+ export declare function buildFullMemoryContext(opts: {
68
+ project?: string;
69
+ cardSeq?: string;
70
+ agentId?: string;
71
+ }): string;
72
+ /**
73
+ * Build memory write instructions for prompt injection.
74
+ * Tells the agent how and where to write memories across all three layers.
75
+ */
76
+ export declare function buildMemoryWriteInstructions(project: string, agentId?: string): string;
77
+ /**
78
+ * Add a memory entry via CLI. Creates the file and updates MEMORY.md.
79
+ */
80
+ export declare function addMemory(project: string, opts: {
81
+ name: string;
82
+ description: string;
83
+ type: MemoryType;
84
+ body: string;
85
+ }): string;
86
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,eAAO,MAAM,YAAY,4DAA6D,CAAC;AACvF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,cAAc,CAAC;AAYxC,sEAAsE;AACtE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,0CAA0C;AAC1C,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AA0BD,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAmCjE;AAID,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASvD;AA4DD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CA2C5E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAwB/C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4B/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAoBT;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAwDtF;AAID;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1E,MAAM,CA4CR"}
@@ -0,0 +1,415 @@
1
+ /**
2
+ * Memory system — persistent project-level knowledge for SPS workers and agents.
3
+ *
4
+ * Design follows Claude Code's approach:
5
+ * - File-based storage with YAML frontmatter (name / description / type)
6
+ * - MEMORY.md index file (one line per entry, max 200 lines)
7
+ * - Agents read/write memory files directly via bash
8
+ * - CLI provides `sps memory context` for prompt injection
9
+ *
10
+ * Directory layout:
11
+ * ~/.coral/memory/projects/<project>/
12
+ * ├── MEMORY.md ← index (loaded into every prompt)
13
+ * ├── api-naming.md ← convention
14
+ * ├── use-phaser.md ← decision
15
+ * └── migration-order.md ← lesson
16
+ *
17
+ * Types: convention (no decay), decision (slow decay), lesson (normal decay), reference (no decay)
18
+ */
19
+ import { existsSync, readdirSync, readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
20
+ import { resolve, basename } from 'node:path';
21
+ import { homedir } from 'node:os';
22
+ // ─── Types ──────────────────────────────────────────────────────
23
+ export const MEMORY_TYPES = ['convention', 'decision', 'lesson', 'reference'];
24
+ export const MEMORY_INDEX = 'MEMORY.md';
25
+ const MAX_INDEX_LINES = 200;
26
+ const MAX_MEMORY_FILES = 200;
27
+ const MAX_FILE_LINES = 200;
28
+ const MAX_CONTEXT_ENTRIES = 10;
29
+ const FRONTMATTER_MAX_LINES = 30;
30
+ // Types that don't decay — always relevant
31
+ const NO_DECAY_TYPES = ['convention', 'reference'];
32
+ // ─── Paths ──────────────────────────────────────────────────────
33
+ /** Get the user-level memory directory (cross-project preferences) */
34
+ export function getUserMemoryDir() {
35
+ return resolve(homedir(), '.coral', 'memory', 'user');
36
+ }
37
+ /** Get the agent-level memory directory (per daemon instance) */
38
+ export function getAgentMemoryDir(agentId) {
39
+ return resolve(homedir(), '.coral', 'memory', 'agents', agentId);
40
+ }
41
+ /** Get the memory directory for a project */
42
+ export function getProjectMemoryDir(project) {
43
+ return resolve(homedir(), '.coral', 'memory', 'projects', project);
44
+ }
45
+ /** Ensure project memory directory exists */
46
+ export function ensureMemoryDir(project) {
47
+ const dir = getProjectMemoryDir(project);
48
+ if (!existsSync(dir))
49
+ mkdirSync(dir, { recursive: true });
50
+ return dir;
51
+ }
52
+ /** Ensure user memory directory exists */
53
+ export function ensureUserMemoryDir() {
54
+ return ensureDir(getUserMemoryDir());
55
+ }
56
+ /** Ensure agent memory directory exists */
57
+ export function ensureAgentMemoryDir(agentId) {
58
+ return ensureDir(getAgentMemoryDir(agentId));
59
+ }
60
+ /** Ensure any memory directory exists (generic) */
61
+ function ensureDir(dir) {
62
+ if (!existsSync(dir))
63
+ mkdirSync(dir, { recursive: true });
64
+ return dir;
65
+ }
66
+ // ─── Scanning ───────────────────────────────────────────────────
67
+ /** Parse simple YAML frontmatter from file content (first N lines) */
68
+ function parseFrontmatter(content) {
69
+ const lines = content.split('\n');
70
+ if (lines[0]?.trim() !== '---')
71
+ return {};
72
+ const result = {};
73
+ for (let i = 1; i < lines.length; i++) {
74
+ if (lines[i].trim() === '---')
75
+ break;
76
+ const match = lines[i].match(/^(\w+):\s*(.+)$/);
77
+ if (match) {
78
+ result[match[1]] = match[2].trim();
79
+ }
80
+ }
81
+ return result;
82
+ }
83
+ /** Scan memory directory for .md files, return headers sorted newest-first */
84
+ export function scanMemoryFiles(memoryDir) {
85
+ if (!existsSync(memoryDir))
86
+ return [];
87
+ try {
88
+ const files = readdirSync(memoryDir, { recursive: true })
89
+ .map(f => typeof f === 'string' ? f : f.toString())
90
+ .filter(f => f.endsWith('.md') && basename(f) !== MEMORY_INDEX);
91
+ const headers = [];
92
+ for (const relativePath of files) {
93
+ try {
94
+ const filePath = resolve(memoryDir, relativePath);
95
+ const stat = statSync(filePath);
96
+ const content = readFileSync(filePath, 'utf-8');
97
+ // Only read first N lines for frontmatter
98
+ const head = content.split('\n').slice(0, FRONTMATTER_MAX_LINES).join('\n');
99
+ const fm = parseFrontmatter(head);
100
+ headers.push({
101
+ filename: relativePath,
102
+ filePath,
103
+ mtimeMs: stat.mtimeMs,
104
+ name: fm.name || null,
105
+ description: fm.description || null,
106
+ type: MEMORY_TYPES.find(t => t === fm.type),
107
+ });
108
+ }
109
+ catch { /* skip unreadable files */ }
110
+ }
111
+ return headers
112
+ .sort((a, b) => b.mtimeMs - a.mtimeMs)
113
+ .slice(0, MAX_MEMORY_FILES);
114
+ }
115
+ catch {
116
+ return [];
117
+ }
118
+ }
119
+ // ─── Reading ────────────────────────────────────────────────────
120
+ /** Read MEMORY.md index content, truncated to max lines */
121
+ export function readMemoryIndex(memoryDir) {
122
+ const indexPath = resolve(memoryDir, MEMORY_INDEX);
123
+ if (!existsSync(indexPath))
124
+ return '';
125
+ const content = readFileSync(indexPath, 'utf-8').trim();
126
+ const lines = content.split('\n');
127
+ if (lines.length > MAX_INDEX_LINES) {
128
+ return lines.slice(0, MAX_INDEX_LINES).join('\n')
129
+ + `\n\n> WARNING: ${MEMORY_INDEX} has ${lines.length} lines (limit: ${MAX_INDEX_LINES}). Truncated.`;
130
+ }
131
+ return content;
132
+ }
133
+ /** Read a memory file, truncated to max lines */
134
+ export function readMemoryFile(filePath) {
135
+ if (!existsSync(filePath))
136
+ return '';
137
+ const content = readFileSync(filePath, 'utf-8');
138
+ const lines = content.split('\n');
139
+ if (lines.length > MAX_FILE_LINES) {
140
+ return lines.slice(0, MAX_FILE_LINES).join('\n')
141
+ + `\n\n> [Truncated — ${lines.length} lines total. Use file read for full content.]`;
142
+ }
143
+ return content;
144
+ }
145
+ /** Memory age in days */
146
+ function memoryAgeDays(mtimeMs) {
147
+ return Math.floor((Date.now() - mtimeMs) / (1000 * 60 * 60 * 24));
148
+ }
149
+ /** Staleness caveat for old memories */
150
+ function stalenessCaveat(mtimeMs) {
151
+ const days = memoryAgeDays(mtimeMs);
152
+ if (days <= 1)
153
+ return null;
154
+ return `> This memory is ${days} days old. Verify against current code before acting on it.`;
155
+ }
156
+ // ─── Context Generation ─────────────────────────────────────────
157
+ /**
158
+ * Select relevant memories for a worker prompt.
159
+ * Priority: convention (always) > card-related > decision > lesson > reference
160
+ * No decay types are always included. Lessons decay by age.
161
+ */
162
+ function selectRelevantMemories(headers, _cardSeq) {
163
+ const selected = [];
164
+ // 1. All conventions and references (no decay, always relevant)
165
+ for (const h of headers) {
166
+ if (h.type && NO_DECAY_TYPES.includes(h.type)) {
167
+ selected.push(h);
168
+ }
169
+ }
170
+ // 2. Decisions (sorted newest-first, already in that order)
171
+ for (const h of headers) {
172
+ if (h.type === 'decision' && !selected.includes(h)) {
173
+ selected.push(h);
174
+ }
175
+ }
176
+ // 3. Lessons (normal decay — skip if older than 30 days)
177
+ for (const h of headers) {
178
+ if (h.type === 'lesson' && !selected.includes(h)) {
179
+ if (memoryAgeDays(h.mtimeMs) <= 30) {
180
+ selected.push(h);
181
+ }
182
+ }
183
+ }
184
+ // 4. Untyped memories (legacy)
185
+ for (const h of headers) {
186
+ if (!h.type && !selected.includes(h)) {
187
+ selected.push(h);
188
+ }
189
+ }
190
+ return selected.slice(0, MAX_CONTEXT_ENTRIES);
191
+ }
192
+ /**
193
+ * Build the memory context string for prompt injection.
194
+ * Includes: MEMORY.md index + selected file contents.
195
+ */
196
+ export function buildMemoryContext(project, cardSeq) {
197
+ const memoryDir = getProjectMemoryDir(project);
198
+ if (!existsSync(memoryDir))
199
+ return '';
200
+ const sections = [];
201
+ // 1. Read index
202
+ const index = readMemoryIndex(memoryDir);
203
+ // 2. Scan and select relevant memories
204
+ const headers = scanMemoryFiles(memoryDir);
205
+ if (headers.length === 0 && !index)
206
+ return '';
207
+ const selected = selectRelevantMemories(headers, cardSeq);
208
+ sections.push('# Project Memory');
209
+ sections.push('');
210
+ if (index) {
211
+ sections.push('## Index');
212
+ sections.push(index);
213
+ sections.push('');
214
+ }
215
+ // 3. Include selected memory file contents
216
+ if (selected.length > 0) {
217
+ sections.push('## Relevant Memories');
218
+ sections.push('');
219
+ for (const h of selected) {
220
+ const content = readMemoryFile(h.filePath);
221
+ const caveat = stalenessCaveat(h.mtimeMs);
222
+ const age = memoryAgeDays(h.mtimeMs);
223
+ const ageLabel = age === 0 ? 'today' : age === 1 ? 'yesterday' : `${age} days ago`;
224
+ sections.push(`### ${h.name || h.filename} (saved ${ageLabel})`);
225
+ if (caveat)
226
+ sections.push(caveat);
227
+ sections.push(content);
228
+ sections.push('');
229
+ }
230
+ }
231
+ return sections.join('\n').trim();
232
+ }
233
+ /**
234
+ * Build user-level memory context (cross-project preferences).
235
+ * Injected into every agent/worker prompt.
236
+ */
237
+ export function buildUserMemoryContext() {
238
+ const memoryDir = getUserMemoryDir();
239
+ if (!existsSync(memoryDir))
240
+ return '';
241
+ const headers = scanMemoryFiles(memoryDir);
242
+ const index = readMemoryIndex(memoryDir);
243
+ if (headers.length === 0 && !index)
244
+ return '';
245
+ const sections = ['# User Preferences', ''];
246
+ if (index) {
247
+ sections.push(index);
248
+ sections.push('');
249
+ }
250
+ // Include all user memories (small set, no filtering needed)
251
+ for (const h of headers.slice(0, MAX_CONTEXT_ENTRIES)) {
252
+ const content = readMemoryFile(h.filePath);
253
+ sections.push(`### ${h.name || h.filename}`);
254
+ sections.push(content);
255
+ sections.push('');
256
+ }
257
+ return sections.join('\n').trim();
258
+ }
259
+ /**
260
+ * Build agent-level memory context (daemon instance experience).
261
+ * Injected when attaching to a daemon session.
262
+ */
263
+ export function buildAgentMemoryContext(agentId) {
264
+ const memoryDir = getAgentMemoryDir(agentId);
265
+ if (!existsSync(memoryDir))
266
+ return '';
267
+ const headers = scanMemoryFiles(memoryDir);
268
+ const index = readMemoryIndex(memoryDir);
269
+ if (headers.length === 0 && !index)
270
+ return '';
271
+ const sections = ['# Agent Memory', ''];
272
+ if (index) {
273
+ sections.push(index);
274
+ sections.push('');
275
+ }
276
+ for (const h of headers.slice(0, MAX_CONTEXT_ENTRIES)) {
277
+ const content = readMemoryFile(h.filePath);
278
+ const caveat = stalenessCaveat(h.mtimeMs);
279
+ const age = memoryAgeDays(h.mtimeMs);
280
+ const ageLabel = age === 0 ? 'today' : age === 1 ? 'yesterday' : `${age} days ago`;
281
+ sections.push(`### ${h.name || h.filename} (saved ${ageLabel})`);
282
+ if (caveat)
283
+ sections.push(caveat);
284
+ sections.push(content);
285
+ sections.push('');
286
+ }
287
+ return sections.join('\n').trim();
288
+ }
289
+ /**
290
+ * Build combined memory context for all applicable layers.
291
+ * Used by StageEngine (user + project) and agent commands (user + agent).
292
+ */
293
+ export function buildFullMemoryContext(opts) {
294
+ const parts = [];
295
+ // Layer 1: User preferences (always)
296
+ const userCtx = buildUserMemoryContext();
297
+ if (userCtx)
298
+ parts.push(userCtx);
299
+ // Layer 2: Agent memory (if daemon)
300
+ if (opts.agentId) {
301
+ const agentCtx = buildAgentMemoryContext(opts.agentId);
302
+ if (agentCtx)
303
+ parts.push(agentCtx);
304
+ }
305
+ // Layer 3: Project memory (if project context)
306
+ if (opts.project) {
307
+ const projectCtx = buildMemoryContext(opts.project, opts.cardSeq);
308
+ if (projectCtx)
309
+ parts.push(projectCtx);
310
+ }
311
+ return parts.join('\n\n---\n\n');
312
+ }
313
+ /**
314
+ * Build memory write instructions for prompt injection.
315
+ * Tells the agent how and where to write memories across all three layers.
316
+ */
317
+ export function buildMemoryWriteInstructions(project, agentId) {
318
+ const userDir = getUserMemoryDir();
319
+ const projectDir = getProjectMemoryDir(project);
320
+ const agentDir = agentId ? getAgentMemoryDir(agentId) : null;
321
+ const agentSection = agentDir ? `
322
+ - **Agent memory** (\`${agentDir}/\`): Your personal experience — interaction patterns, user communication preferences observed by you, pitfalls you encountered. Only you read this.` : '';
323
+ return `# Memory System
324
+
325
+ You have a three-layer persistent memory system. Write directly to these directories (they exist, do not mkdir).
326
+
327
+ - **User memory** (\`${userDir}/\`): Cross-project user preferences — coding style, language, workflow habits. Shared across all projects and agents.${agentSection}
328
+ - **Project memory** (\`${projectDir}/\`): Project-specific knowledge — conventions, decisions, lessons, references. Shared across all workers on this project.
329
+
330
+ ## Memory Types
331
+
332
+ - **convention**: Project rules and standards (e.g., "API uses camelCase"). Never expires.
333
+ - **decision**: Architecture/tech choices (e.g., "chose Phaser over PixiJS"). Slow decay.
334
+ - **lesson**: Lessons learned, pitfalls (e.g., "migration must be schema-first"). Decays after 30 days.
335
+ - **reference**: Pointers to external resources (e.g., "design docs in Figma"). Never expires.
336
+
337
+ ## How to Write
338
+
339
+ Write each memory as a markdown file with this frontmatter:
340
+
341
+ \`\`\`markdown
342
+ ---
343
+ name: Short title
344
+ description: One-line summary for index search
345
+ type: convention | decision | lesson | reference
346
+ ---
347
+
348
+ Content here. For decision/lesson types, include:
349
+ **Why:** reason
350
+ **Scope:** where this applies
351
+ \`\`\`
352
+
353
+ Then add one line to the \`${MEMORY_INDEX}\` in the same directory:
354
+ \`- [Title](filename.md) — one-line hook\`
355
+
356
+ ## When to Write
357
+
358
+ - User states a project rule or preference → convention
359
+ - A technical choice is made → decision
360
+ - Something unexpected happened or a pitfall was found → lesson
361
+ - An external resource location is mentioned → reference
362
+
363
+ Most conversations do NOT need memory. Only save what is non-obvious and useful for future tasks.
364
+
365
+ ## What NOT to Save
366
+
367
+ - Code structure, file paths (derivable from code)
368
+ - Git history (use git log)
369
+ - Temporary task state
370
+ - Anything in CLAUDE.md or AGENTS.md`;
371
+ }
372
+ // ─── Writing (for CLI use) ──────────────────────────────────────
373
+ /**
374
+ * Add a memory entry via CLI. Creates the file and updates MEMORY.md.
375
+ */
376
+ export function addMemory(project, opts) {
377
+ const memoryDir = ensureMemoryDir(project);
378
+ // Generate filename from name
379
+ const slug = opts.name
380
+ .toLowerCase()
381
+ .replace(/[^a-z0-9]+/g, '-')
382
+ .replace(/^-|-$/g, '')
383
+ .slice(0, 50);
384
+ const filename = `${slug}.md`;
385
+ const filePath = resolve(memoryDir, filename);
386
+ // Write memory file
387
+ const content = `---
388
+ name: ${opts.name}
389
+ description: ${opts.description}
390
+ type: ${opts.type}
391
+ ---
392
+
393
+ ${opts.body}
394
+ `;
395
+ writeFileSync(filePath, content);
396
+ // Update MEMORY.md index
397
+ const indexPath = resolve(memoryDir, MEMORY_INDEX);
398
+ let indexContent = '';
399
+ if (existsSync(indexPath)) {
400
+ indexContent = readFileSync(indexPath, 'utf-8').trim();
401
+ }
402
+ // Check for duplicate entry (same filename)
403
+ const lines = indexContent ? indexContent.split('\n') : [];
404
+ const existingIdx = lines.findIndex(l => l.includes(`(${filename})`));
405
+ const newLine = `- [${opts.name}](${filename}) — ${opts.description}`;
406
+ if (existingIdx >= 0) {
407
+ lines[existingIdx] = newLine;
408
+ }
409
+ else {
410
+ lines.push(newLine);
411
+ }
412
+ writeFileSync(indexPath, lines.join('\n') + '\n');
413
+ return filePath;
414
+ }
415
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"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"}