* feat(ui-conversation): fold turn process before final answer * fix(ui-chat): polish turn-process control row from review * test(web): drive preset slash catalog with gestures * fix(ui-chat): keep turn process order stable * fix(ui-chat): preserve prompt order after pagination Co-authored-by: Yif <[email protected]>
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
/** Chat transcript preferences stored in the Host user-settings document. */
|
|
|
|
import z from '@deepseek-ai/schemastery'
|
|
|
|
/** Settings namespace owned by the Chat target. */
|
|
export const CHAT_SETTINGS_NAMESPACE = 'ui-chat'
|
|
|
|
/** Field carrying the completed-Turn transcript presentation mode. */
|
|
export const TRANSCRIPT_VIEW_FIELD = 'transcriptView'
|
|
|
|
/** Transcript presentation modes accepted at settings boundaries. */
|
|
export const TRANSCRIPT_VIEW_MODES = ['normal', 'compact'] as const
|
|
|
|
/** Completed-Turn transcript presentation. */
|
|
export type TranscriptViewMode = typeof TRANSCRIPT_VIEW_MODES[number]
|
|
|
|
/** Default preserves the compact process disclosure introduced by Chat. */
|
|
export const DEFAULT_TRANSCRIPT_VIEW_MODE: TranscriptViewMode = 'compact'
|
|
|
|
/** Durable Chat section shared by the Host schema and browser scope. */
|
|
export interface ChatSettings {
|
|
/** Presentation mode for completed Turn process content. */
|
|
transcriptView: TranscriptViewMode
|
|
}
|
|
|
|
/** Durable Chat schema; also the wire envelope the browser scope validates against. */
|
|
export const ChatSettingsSchema: z<ChatSettings> = z.object({
|
|
[TRANSCRIPT_VIEW_FIELD]: z.union([...TRANSCRIPT_VIEW_MODES]).default(DEFAULT_TRANSCRIPT_VIEW_MODE),
|
|
})
|