UNPKG

aicf-core

Version:

Universal AI Context Format (AICF) - Enterprise-grade AI memory infrastructure with 95.5% compression and zero semantic loss

206 lines 5.69 kB
/** * SPDX-License-Identifier: AGPL-3.0-or-later * Copyright (c) 2025 Dennis van Leeuwen * * AICF Compiler - Compile structured data to AICF v3.1.1 format */ import { ok, err, toError } from "../types/result.js"; import { sanitizePipeData } from "../security/data-sanitizer.js"; /** * Compile metadata section */ export function compileMetadata(metadata) { const lines = ["@METADATA:"]; for (const [key, value] of Object.entries(metadata)) { if (value !== undefined) { lines.push(`${key}=${sanitizePipeData(value)}`); } } return lines.join("\n"); } /** * Compile session section */ export function compileSession(session) { if (!session) { return ""; } const lines = ["@SESSION:"]; for (const [key, value] of Object.entries(session)) { if (value !== undefined) { lines.push(`${key}=${sanitizePipeData(value)}`); } } return lines.join("\n"); } /** * Compile conversations section */ export function compileConversations(conversations) { if (!conversations || conversations.length === 0) { return ""; } const lines = ["@CONVERSATION:"]; for (const conv of conversations) { const parts = [ sanitizePipeData(conv.id), sanitizePipeData(conv.timestamp), sanitizePipeData(conv.role), sanitizePipeData(conv.content), ]; lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile memories section */ export function compileMemories(memories) { if (!memories || memories.length === 0) { return ""; } const lines = ["@MEMORY:"]; for (const memory of memories) { const parts = [ sanitizePipeData(memory.type), sanitizePipeData(memory.timestamp), sanitizePipeData(memory.content), ]; if (memory.importance) { parts.push(sanitizePipeData(memory.importance)); } lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile states section */ export function compileStates(states) { if (!states || states.length === 0) { return ""; } const lines = ["@STATE:"]; for (const state of states) { const parts = [ sanitizePipeData(state.scope), sanitizePipeData(state.key), sanitizePipeData(state.value), ]; lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile insights section */ export function compileInsights(insights) { if (!insights || insights.length === 0) { return ""; } const lines = ["@INSIGHTS:"]; for (const insight of insights) { const parts = [ sanitizePipeData(insight.content), sanitizePipeData(insight.category), sanitizePipeData(insight.priority), sanitizePipeData(String(insight.confidence)), ]; lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile decisions section */ export function compileDecisions(decisions) { if (!decisions || decisions.length === 0) { return ""; } const lines = ["@DECISIONS:"]; for (const decision of decisions) { const parts = [ sanitizePipeData(decision.decision), sanitizePipeData(decision.rationale), ]; lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile work section */ export function compileWork(work) { if (!work || work.length === 0) { return ""; } const lines = ["@WORK:"]; for (const item of work) { const parts = [sanitizePipeData(item.id), sanitizePipeData(item.status)]; if (item.description) { parts.push(sanitizePipeData(item.description)); } lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile links section */ export function compileLinks(links) { if (!links || links.length === 0) { return ""; } const lines = ["@LINKS:"]; for (const link of links) { const parts = [ sanitizePipeData(link.type), sanitizePipeData(link.source), sanitizePipeData(link.target), ]; lines.push(parts.join("|")); } return lines.join("\n"); } /** * Compile complete AICF data to string */ export function compileAICF(data) { try { const sections = []; // Required sections sections.push(compileMetadata(data.metadata)); // Optional sections if (data.session) { sections.push(compileSession(data.session)); } if (data.conversations.length > 0) { sections.push(compileConversations(data.conversations)); } if (data.memories.length > 0) { sections.push(compileMemories(data.memories)); } if (data.states.length > 0) { sections.push(compileStates(data.states)); } if (data.insights.length > 0) { sections.push(compileInsights(data.insights)); } if (data.decisions.length > 0) { sections.push(compileDecisions(data.decisions)); } if (data.work.length > 0) { sections.push(compileWork(data.work)); } if (data.links.length > 0) { sections.push(compileLinks(data.links)); } // Join sections with double newline const content = sections.filter((s) => s).join("\n\n"); return ok(content); } catch (error) { return err(toError(error)); } } //# sourceMappingURL=aicf-compiler.js.map