/** * Reflection Notes 병합 및 배열 크기 제한 유틸리티 * * reflection_notes 필드의 병합 로직과 크기 제한을 처리하는 공통 유틸리티 함수를 제공합니다. * remember Tool과 Reflexion Worker에서 공통으로 사용됩니다. */ import { type ReflectionNote } from './reflection-notes-schema.js'; /** * 병합 결과 타입 */ export interface MergeResult { merged: ReflectionNote[]; removedCount: number; warnings: string[]; } /** * 기존 reflection_notes 타입 */ export type ExistingReflectionNotes = { type: 'null'; value: null; } | { type: 'object'; value: ReflectionNote; } | { type: 'array'; value: ReflectionNote[]; }; /** * 새로 추가할 reflection_notes 타입 */ export type NewReflectionNotes = string | unknown | unknown[]; /** * reflection_notes 병합 및 배열 크기 제한 * * 병합 로직: * - NULL → 새로 저장 * - 단일 객체 → 배열 변환 후 추가 * - 배열 → 배열에 추가 * * 크기 제한: * - 배열 크기: 최대 100개, 초과 시 FIFO로 가장 오래된 항목 제거 * - 단일 객체: 최대 10KB, 초과 시 에러 반환 * - 전체 필드: 최대 1MB, 초과 시 자동 정리 (가장 오래된 항목부터 제거) * * @param existing - 기존 reflection_notes (조회 결과) * @param newNotes - 새로 추가할 reflection_notes (문자열, 객체, 또는 배열) * @returns 병합 결과 * @throws Error - 단일 객체 크기 초과 시 */ export declare function mergeReflectionNotes(existing: ExistingReflectionNotes, newNotes: NewReflectionNotes): MergeResult; /** * 병합된 reflection_notes를 JSON 문자열로 변환 * * @param merged - 병합된 배열 * @returns JSON 문자열 */ export declare function serializeReflectionNotes(merged: ReflectionNote[]): string; //# sourceMappingURL=reflection-notes-merge.d.ts.map