- File-based memory under .boocode/memory/ (project/user/reference topics) - Hierarchical 4-scope scan: global → home → project → session - Keyword/tag relevance matching for query-based recall - Injected as <boocode-memory> block in system prompt at assembly - v1 recall-only (extract/dream deferred to v2)
18 lines
563 B
TypeScript
18 lines
563 B
TypeScript
import { join } from 'node:path';
|
|
import { mkdir } from 'node:fs/promises';
|
|
|
|
const TOPICS = ['project', 'user', 'reference'] as const;
|
|
export type MemoryTopic = (typeof TOPICS)[number];
|
|
|
|
export function getMemoryRoot(projectRoot: string): string {
|
|
return join(projectRoot, '.boocode', 'memory');
|
|
}
|
|
|
|
export function getTopicDir(root: string, topic: MemoryTopic): string {
|
|
return join(root, topic);
|
|
}
|
|
|
|
export async function ensureMemoryScaffold(root: string): Promise<void> {
|
|
await Promise.all(TOPICS.map((t) => mkdir(join(root, t), { recursive: true })));
|
|
}
|