import type { SessionTabKind } from './terminals' /** 工单 state 里存各种会话 id 的字段。 */ export type SessionIdField = 'sessionId' | 'implementSessionId' | 'reviewSessionId' | 'testSessionId' | 'prototypeSessionId' /** * 每种会话对应的 state 字段、中文角色名,以及清除该会话 id 后的后续提示: * confirmHint 进确认框,doneHint 进成功 toast。 */ export const SESSION_KINDS: Record = { brainstorm: { field: 'sessionId', role: '头脑风暴', confirmHint: '下次续聊会新开会话', doneHint: '下次续聊将新开会话', }, implement: { field: 'implementSessionId', role: '实施', confirmHint: '清除后可点 ▶ 重新实施,注意重新实施会删掉远程 feature 分支,别的机器上的实施进度会丢', doneHint: '可点 ▶ 重新实施(会删掉远程 feature 分支)', }, review: { field: 'reviewSessionId', role: '审查', confirmHint: '清除后可点 ▶ 新起一个', doneHint: '可点 ▶ 新起一个', }, test: { field: 'testSessionId', role: '测试', confirmHint: '清除后可点 ▶ 新起一个', doneHint: '可点 ▶ 新起一个', }, prototype: { field: 'prototypeSessionId', role: '原型', confirmHint: '清除后可点 ▶ 新起一个', doneHint: '可点 ▶ 新起一个', }, } export function clearSessionConfirmText(issueNumber: number, kind: SessionTabKind, sessionId: string): string { const { role, confirmHint } = SESSION_KINDS[kind] return `确定清除工单 #${issueNumber} 的${role}会话 id(${sessionId})?只清本机记录,别的机器不受影响;会话文件不删。${confirmHint}。` } export function clearSessionDoneText(issueNumber: number, kind: SessionTabKind): string { const { role, doneHint } = SESSION_KINDS[kind] return `工单 #${issueNumber} 的${role}会话 id 已清除,${doneHint}` }