feat: update Makelore modules and conversations
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
inman
2026-07-31 10:08:41 +08:00
parent b8ca3f8eea
commit 80e8386fa6
175 changed files with 8036 additions and 10581 deletions

View File

@@ -0,0 +1,33 @@
import path from 'node:path';
import { mkdir, readFile, writeFile } from 'node:fs/promises';
import {
createProjectConversationState,
normalizeProjectConversationState,
type ProjectConversationState,
} from '../../shared/project-conversations';
export const PROJECT_CONVERSATIONS_PATH = '.niancode/conversations.json';
function statePath(projectPath: string): string {
return path.join(projectPath, PROJECT_CONVERSATIONS_PATH);
}
export async function readProjectConversationState(projectPath: string): Promise<ProjectConversationState> {
try {
const raw = JSON.parse(await readFile(statePath(projectPath), 'utf8')) as unknown;
return normalizeProjectConversationState(raw);
} catch (error) {
if ((error as NodeJS.ErrnoException).code === 'ENOENT') return createProjectConversationState();
throw error;
}
}
export async function writeProjectConversationState(
projectPath: string,
value: unknown,
): Promise<ProjectConversationState> {
const state = normalizeProjectConversationState(value);
await mkdir(path.dirname(statePath(projectPath)), { recursive: true });
await writeFile(statePath(projectPath), `${JSON.stringify(state, null, 2)}\n`, 'utf8');
return state;
}