"use strict";
// =============================================================================
// Pure memory API. The in-process agent-runner collects memory updates into an
// array on the ToolContext (ctx.memoryUpdates) so the supervisor loop can
// persist them at end-of-turn. MCP clients don't share that array, so the MCP
// server keeps its own module-level store keyed by an optional sessionKey.
// =============================================================================
Object.defineProperty(exports, "__esModule", { value: true });
exports.toEntry = toEntry;
exports.saveMemoryToStore = saveMemoryToStore;
exports.listMemoryFromStore = listMemoryFromStore;
exports.clearMemoryStore = clearMemoryStore;
function toEntry(input) {
    return { key: input.key, type: input.type, value: input.value };
}
// -------------------------------------------------------------------
// In-memory store used by the MCP server path (the in-process path
// appends directly to ctx.memoryUpdates and ignores this store).
// -------------------------------------------------------------------
const memoryStore = new Map();
function saveMemoryToStore(sessionKey, input) {
    const entry = toEntry(input);
    const list = memoryStore.get(sessionKey) ?? [];
    list.push(entry);
    memoryStore.set(sessionKey, list);
    return { saved: true, entry };
}
function listMemoryFromStore(sessionKey) {
    return [...(memoryStore.get(sessionKey) ?? [])];
}
function clearMemoryStore(sessionKey) {
    memoryStore.delete(sessionKey);
}
