返回 oh-my-ppt
edit-summary.ts
根目录 / src / main / generation / edit-summary.ts
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
40 lines TYPESCRIPT