| 1 | import log from 'electron-log/main.js' |
| 2 | import type { EditContext } from './types' |
| 3 | import type { EditedPageDescriptor } from './generation-utils' |
| 4 | import { buildLocalSuccessfulEditSummary as buildLocalSuccessfulEditSummaryCore } from './edit-summary-core' |
| 5 | |
| 6 | export type SuccessfulEditSummaryInput = { |
| 7 | context: EditContext |
| 8 | changedPages: EditedPageDescriptor[] |
| 9 | editScope: 'page' | 'selector' | 'deck' |
| 10 | failedPageLabels?: string[] |
| 11 | } |
| 12 | |
| 13 | const toCoreInput = (args: SuccessfulEditSummaryInput) => ({ |
| 14 | appLocale: args.context.appLocale, |
| 15 | changedPages: args.changedPages.map((page) => ({ |
| 16 | pageNumber: page.pageNumber |
| 17 | })), |
| 18 | editScope: args.editScope, |
| 19 | failedPageLabels: args.failedPageLabels |
| 20 | }) |
| 21 | |
| 22 | export const buildLocalSuccessfulEditSummary = (args: SuccessfulEditSummaryInput): string => |
| 23 | buildLocalSuccessfulEditSummaryCore(toCoreInput(args)) |
| 24 | |
| 25 | export async function emitSuccessfulEditSummary( |
| 26 | context: EditContext, |
| 27 | summary: string, |
| 28 | emitAssistant: (context: EditContext, content: string) => Promise<void> |
| 29 | ): Promise<void> { |
| 30 | try { |
| 31 | await emitAssistant(context, summary) |
| 32 | } catch (error) { |
| 33 | log.warn('[generate:start] edit summary message failed', { |
| 34 | sessionId: context.sessionId, |
| 35 | runId: context.runId, |
| 36 | reason: error instanceof Error ? error.message : String(error) |
| 37 | }) |
| 38 | } |
| 39 | } |
| 40 |