{"version":3,"file":"memory-review.d.ts","sourceRoot":"","sources":["../../src/core/memory-review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAOnF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAKnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,SAAa,GAAG,gBAAgB,EAAE,CAc3F","sourcesContent":["import type { MemoryItem } from \"./memory.js\";\n\nexport const MEMORY_STALE_AFTER_DAYS = 7;\n\nexport interface MemoryReviewItem {\n\titem: MemoryItem;\n\tageDays: number | null;\n\tlabel: string;\n\treviewRecommended: boolean;\n\tnote?: string;\n}\n\nexport function getMemoryAgeDays(timestamp: string, now = Date.now()): number | null {\n\tconst parsed = new Date(timestamp).getTime();\n\tif (Number.isNaN(parsed)) {\n\t\treturn null;\n\t}\n\tconst ageMs = Math.max(0, now - parsed);\n\treturn Math.floor(ageMs / 86_400_000);\n}\n\nexport function formatMemoryAgeLabel(ageDays: number | null): string {\n\tif (ageDays === null) return \"unknown age\";\n\tif (ageDays === 0) return \"today\";\n\tif (ageDays === 1) return \"yesterday\";\n\treturn `${ageDays} days ago`;\n}\n\nexport function reviewMemoryItems(items: MemoryItem[], now = Date.now()): MemoryReviewItem[] {\n\treturn items.map((item) => {\n\t\tconst ageDays = getMemoryAgeDays(item.timestamp, now);\n\t\tconst reviewRecommended = ageDays !== null && ageDays > MEMORY_STALE_AFTER_DAYS;\n\t\treturn {\n\t\t\titem,\n\t\t\tageDays,\n\t\t\tlabel: formatMemoryAgeLabel(ageDays),\n\t\t\treviewRecommended,\n\t\t\tnote: reviewRecommended\n\t\t\t\t? `This memory is ${ageDays} days old and may be outdated. Verify before relying on it.`\n\t\t\t\t: undefined,\n\t\t};\n\t});\n}\n"]}