{"version":3,"file":"result.mjs","names":[],"sources":["../../src/compaction/result.ts"],"sourcesContent":["import type { SessionBeforeCompactEvent, SessionEntry } from '@earendil-works/pi-coding-agent';\n\nimport { chooseSummaryTransport } from '@live-compaction/summary';\nimport type {\n\tLiveCompactionDetails,\n\tPreparedMessages,\n\tResolvedSummarizer,\n} from '@live-compaction/types';\n\nexport function collectKeptTailMessages(\n\tbranchEntries: SessionEntry[],\n\tfirstKeptEntryId: string | undefined,\n): PreparedMessages {\n\tif (!firstKeptEntryId) return [];\n\tconst startIndex = branchEntries.findIndex((e) => e.id === firstKeptEntryId);\n\tif (startIndex < 0) return [];\n\n\tconst tail: PreparedMessages = [];\n\tfor (let i = startIndex; i < branchEntries.length; i++) {\n\t\tconst entry = branchEntries[i];\n\t\tif (entry.type === 'message') {\n\t\t\ttail.push(entry.message);\n\t\t}\n\t}\n\treturn tail;\n}\n\nexport function buildSuccessResult(\n\tevent: SessionBeforeCompactEvent,\n\tsummary: string,\n\tsummarizer: ResolvedSummarizer,\n\tmetadata?: {\n\t\tfocusInput?: string;\n\t\tfocusText?: string;\n\t\tpresetQuery?: string;\n\t\tattemptId?: string;\n\t\ttransport?: string;\n\t},\n) {\n\treturn {\n\t\tcompaction: {\n\t\t\tsummary,\n\t\t\tfirstKeptEntryId: event.preparation.firstKeptEntryId,\n\t\t\ttokensBefore: event.preparation.tokensBefore,\n\t\t\tdetails: {\n\t\t\t\tmodel: `${summarizer.model.provider}/${summarizer.model.id}`,\n\t\t\t\t...(summarizer.reasoningLevel !== undefined\n\t\t\t\t\t? { thinkingLevel: summarizer.reasoningLevel }\n\t\t\t\t\t: {}),\n\t\t\t\t...(chooseSummaryTransport(summarizer) !== undefined\n\t\t\t\t\t? { transport: chooseSummaryTransport(summarizer) }\n\t\t\t\t\t: {}),\n\t\t\t\t...(metadata?.focusInput !== undefined ? { focusInput: metadata.focusInput } : {}),\n\t\t\t\t...(metadata?.focusText !== undefined ? { focusText: metadata.focusText } : {}),\n\t\t\t\t...(metadata?.presetQuery !== undefined ? { presetQuery: metadata.presetQuery } : {}),\n\t\t\t\t...(metadata?.attemptId !== undefined ? { attemptId: metadata.attemptId } : {}),\n\t\t\t\t...(metadata?.transport !== undefined ? { transport: metadata.transport } : {}),\n\t\t\t} satisfies LiveCompactionDetails,\n\t\t},\n\t};\n}\n"],"mappings":";;;AASA,SAAgB,wBACf,eACA,kBACmB;CACnB,IAAI,CAAC,kBAAkB,OAAO,CAAC;CAC/B,MAAM,aAAa,cAAc,WAAW,MAAM,EAAE,OAAO,gBAAgB;CAC3E,IAAI,aAAa,GAAG,OAAO,CAAC;CAE5B,MAAM,OAAyB,CAAC;CAChC,KAAK,IAAI,IAAI,YAAY,IAAI,cAAc,QAAQ,KAAK;EACvD,MAAM,QAAQ,cAAc;EAC5B,IAAI,MAAM,SAAS,WAClB,KAAK,KAAK,MAAM,OAAO;CAEzB;CACA,OAAO;AACR;AAEA,SAAgB,mBACf,OACA,SACA,YACA,UAOC;CACD,OAAO,EACN,YAAY;EACX;EACA,kBAAkB,MAAM,YAAY;EACpC,cAAc,MAAM,YAAY;EAChC,SAAS;GACR,OAAO,GAAG,WAAW,MAAM,SAAS,GAAG,WAAW,MAAM;GACxD,GAAI,WAAW,mBAAmB,KAAA,IAC/B,EAAE,eAAe,WAAW,eAAe,IAC3C,CAAC;GACJ,GAAI,uBAAuB,UAAU,MAAM,KAAA,IACxC,EAAE,WAAW,uBAAuB,UAAU,EAAE,IAChD,CAAC;GACJ,GAAI,UAAU,eAAe,KAAA,IAAY,EAAE,YAAY,SAAS,WAAW,IAAI,CAAC;GAChF,GAAI,UAAU,cAAc,KAAA,IAAY,EAAE,WAAW,SAAS,UAAU,IAAI,CAAC;GAC7E,GAAI,UAAU,gBAAgB,KAAA,IAAY,EAAE,aAAa,SAAS,YAAY,IAAI,CAAC;GACnF,GAAI,UAAU,cAAc,KAAA,IAAY,EAAE,WAAW,SAAS,UAAU,IAAI,CAAC;GAC7E,GAAI,UAAU,cAAc,KAAA,IAAY,EAAE,WAAW,SAAS,UAAU,IAAI,CAAC;EAC9E;CACD,EACD;AACD"}