UNPKG

@phren/cli

Version:

Knowledge layer for AI agents - CLI, MCP server, and data layer

21 lines (20 loc) • 1.08 kB
import { forwardErr, phrenErr, phrenOk, PhrenError } from "../shared.js"; import { addFinding, applyFindingTypePrefix } from "./finding.js"; import { getNote, markNotePromoted } from "../data/notes.js"; /** Copy a note into durable findings while retaining and marking its daily-note source. */ export function promoteNote(phrenPath, project, selector, findingType) { const found = getNote(phrenPath, project, selector); if (!found.ok) return forwardErr(found); if (found.data.promoted) { return phrenErr(`Note ${found.data.id} has already been promoted.`, PhrenError.VALIDATION_ERROR); } const added = addFinding(phrenPath, project, found.data.text, undefined, findingType); if (!added.ok) return phrenErr(added.message, PhrenError.VALIDATION_ERROR); const marked = markNotePromoted(phrenPath, project, found.data.stableId); if (!marked.ok) return forwardErr(marked); const finding = applyFindingTypePrefix(found.data.text, findingType); return phrenOk({ note: marked.data, finding, message: added.message }); }