@deepseek-ai/dsh-client-ui-chat 0.1.7-alpha.2 → 0.1.7-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -8,18 +8,25 @@ const TRANSCRIPT_VIEW_FIELD = "transcriptView";
8
8
  /** Work-details presentation modes a user can choose. */
9
9
  const TRANSCRIPT_VIEW_MODES = [
10
10
  "compact",
11
+ "standard",
11
12
  "detailed",
12
- "expanded"
13
+ "verbose"
13
14
  ];
14
15
  /**
15
- * Saved value from the two-mode generation of this setting. Read as `detailed`;
16
+ * Saved value from the two-mode generation of this setting. Read as `standard`;
16
17
  * never offered as a choice and never written back.
17
18
  */
18
19
  const LEGACY_TRANSCRIPT_VIEW_MODE = "normal";
19
- /** Every value the durable field accepts: current modes plus the legacy saved value. */
20
- const TRANSCRIPT_VIEW_SETTING_VALUES = [...TRANSCRIPT_VIEW_MODES, LEGACY_TRANSCRIPT_VIEW_MODE];
21
- /** Default preserves the compact process disclosure introduced by Chat. */
22
- const DEFAULT_TRANSCRIPT_VIEW_MODE = "compact";
20
+ /** Saved `expanded` values read as `detailed`, without being offered or written back. */
21
+ const LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE = "expanded";
22
+ /** Every value the durable field accepts: current modes plus legacy saved values. */
23
+ const TRANSCRIPT_VIEW_SETTING_VALUES = [
24
+ ...TRANSCRIPT_VIEW_MODES,
25
+ LEGACY_TRANSCRIPT_VIEW_MODE,
26
+ LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE
27
+ ];
28
+ /** Standard process summaries for users without an explicit preference. */
29
+ const DEFAULT_TRANSCRIPT_VIEW_MODE = "standard";
23
30
  /** Performance and usage detail levels accepted by user settings. */
24
31
  const PERFORMANCE_USAGE_MODES = ["compact", "detailed"];
25
32
  /** Preserve detailed accounting for users without an explicit preference. */
@@ -28,7 +35,7 @@ const DEFAULT_PERFORMANCE_USAGE = "detailed";
28
35
  const ChatSettingsFields = {
29
36
  linkOpening: z.union(["sidebar", "new-tab"]).default("sidebar"),
30
37
  performanceUsage: z.union([...PERFORMANCE_USAGE_MODES]).default(DEFAULT_PERFORMANCE_USAGE),
31
- [TRANSCRIPT_VIEW_FIELD]: z.union([...TRANSCRIPT_VIEW_SETTING_VALUES]).default(DEFAULT_TRANSCRIPT_VIEW_MODE)
38
+ [TRANSCRIPT_VIEW_FIELD]: z.union([...TRANSCRIPT_VIEW_SETTING_VALUES]).default(DEFAULT_TRANSCRIPT_VIEW_MODE).loose()
32
39
  };
33
40
  z.object(ChatSettingsFields);
34
41
  //#endregion
@@ -48,4 +55,4 @@ function apply(ctx) {
48
55
  });
49
56
  }
50
57
  //#endregion
51
- export { CHAT_SETTINGS_NAMESPACE, Config, DEFAULT_TRANSCRIPT_VIEW_MODE, LEGACY_TRANSCRIPT_VIEW_MODE, TRANSCRIPT_VIEW_FIELD, TRANSCRIPT_VIEW_MODES, apply };
58
+ export { CHAT_SETTINGS_NAMESPACE, Config, DEFAULT_TRANSCRIPT_VIEW_MODE, LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE, LEGACY_TRANSCRIPT_VIEW_MODE, TRANSCRIPT_VIEW_FIELD, TRANSCRIPT_VIEW_MODES, apply };
@@ -5,15 +5,17 @@ export declare const CHAT_SETTINGS_NAMESPACE = "ui-chat";
5
5
  /** Field carrying the work-details presentation mode. */
6
6
  export declare const TRANSCRIPT_VIEW_FIELD = "transcriptView";
7
7
  /** Work-details presentation modes a user can choose. */
8
- export declare const TRANSCRIPT_VIEW_MODES: readonly ["compact", "detailed", "expanded"];
8
+ export declare const TRANSCRIPT_VIEW_MODES: readonly ["compact", "standard", "detailed", "verbose"];
9
9
  /** Work-details presentation mode. */
10
10
  export type TranscriptViewMode = typeof TRANSCRIPT_VIEW_MODES[number];
11
11
  /**
12
- * Saved value from the two-mode generation of this setting. Read as `detailed`;
12
+ * Saved value from the two-mode generation of this setting. Read as `standard`;
13
13
  * never offered as a choice and never written back.
14
14
  */
15
15
  export declare const LEGACY_TRANSCRIPT_VIEW_MODE = "normal";
16
- /** Default preserves the compact process disclosure introduced by Chat. */
16
+ /** Saved `expanded` values read as `detailed`, without being offered or written back. */
17
+ export declare const LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE = "expanded";
18
+ /** Standard process summaries for users without an explicit preference. */
17
19
  export declare const DEFAULT_TRANSCRIPT_VIEW_MODE: TranscriptViewMode;
18
20
  /** Performance and usage detail levels accepted by user settings. */
19
21
  export declare const PERFORMANCE_USAGE_MODES: readonly ["compact", "detailed"];
@@ -27,8 +29,8 @@ export type LinkOpening = 'sidebar' | 'new-tab';
27
29
  export declare const DEFAULT_LINK_OPENING: LinkOpening;
28
30
  /** Durable Chat section shared by the Host schema and browser scope. */
29
31
  export interface ChatSettings {
30
- /** Work-details preference; the legacy value is accepted only from existing saved settings. */
31
- transcriptView: TranscriptViewMode | typeof LEGACY_TRANSCRIPT_VIEW_MODE;
32
+ /** Work-details preference; legacy values are accepted only from existing saved settings. */
33
+ transcriptView: TranscriptViewMode | typeof LEGACY_TRANSCRIPT_VIEW_MODE | typeof LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE;
32
34
  /** Detail level for composer statistics and completed-Turn usage. */
33
35
  performanceUsage: PerformanceUsageMode;
34
36
  /** Default destination for Chat HTTP(S) links. */
@@ -38,16 +40,16 @@ export interface ChatSettings {
38
40
  export declare const ChatSettingsFields: {
39
41
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "defined">;
40
42
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "defined">;
41
- transcriptView: z<"compact" | "detailed" | "expanded" | "normal", "compact" | "detailed" | "expanded" | "normal", "defined">;
43
+ transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "defined">;
42
44
  };
43
45
  /** Schema for shared configuration values. */
44
46
  export declare const ChatSettingsSchema: z<Schemastery.ObjectS<NoInfer<{
45
47
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "defined">;
46
48
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "defined">;
47
- transcriptView: z<"compact" | "detailed" | "expanded" | "normal", "compact" | "detailed" | "expanded" | "normal", "defined">;
49
+ transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "defined">;
48
50
  }>>, Schemastery.ObjectT<NoInfer<{
49
51
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "defined">;
50
52
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "defined">;
51
- transcriptView: z<"compact" | "detailed" | "expanded" | "normal", "compact" | "detailed" | "expanded" | "normal", "defined">;
53
+ transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "defined">;
52
54
  }>>, "plain">;
53
55
  //# sourceMappingURL=chat-settings.d.ts.map
@@ -2,10 +2,13 @@ import type { MarkdownFileMentions } from '@deepseek-ai/dsh-client-ui-primitives
2
2
  import type { ChatNodeOwnerProps, ChatViewSlotProps, UseDisclosure, UsePresentation } from '../contract/slots.ts';
3
3
  import type { AssistantBlock } from '../contract/snapshot.ts';
4
4
  /**
5
- * Resolve an authored POSIX image path against the document's file API.
5
+ * Standalone fallback for image destinations (query/fragment suffixes are ignored).
6
+ * Chat fileImages resolves decoded file references against cwd; pathImages also
7
+ * serves this component outside that provider and accepts legacy image URL suffixes.
8
+ * Resolve an authored absolute image path against the document's file API.
6
9
  * @param base - canonical `document.baseURI` at render time.
7
- * @param value - authored markdown destination.
8
- * @returns an absolute HTTP(S) file-API URL, or undefined for unsupported
10
+ * @param value - authored Markdown destination; URL escapes are decoded once.
11
+ * @returns an absolute Web or Desktop file-API URL, or undefined for unsupported
9
12
  * protocols and non-local paths.
10
13
  */
11
14
  export declare function localPathMediaUrl(base: string, value: string): string | undefined;
@@ -0,0 +1,7 @@
1
+ import type { QuotaNoticeHostProps } from '../contract/slots.ts';
2
+ /**
3
+ * @param props - the live notice, its dismissal, the chain outlet, and the locale seat.
4
+ * @returns the notice on display, or null while none is live.
5
+ */
6
+ export declare function QuotaNoticeHost({ useNotice, dismissNotice, keepNoticeOpen, renderSlotChain, t }: QuotaNoticeHostProps): import("react").JSX.Element | null;
7
+ //# sourceMappingURL=QuotaNoticeHost.d.ts.map
@@ -2,6 +2,7 @@
2
2
  import type { ChatNode } from './chat-nodes.ts';
3
3
  /**
4
4
  * Exclude system prompts, ordinary Context, and permission commands from visible Chat rows.
5
+ * Context containing tool changes retains its notice row.
5
6
  * @param node - projected Chat node.
6
7
  * @returns whether the node contributes a visible Chat row.
7
8
  */
@@ -1,5 +1,5 @@
1
1
  /** Business data for Chat process groups; source Nodes remain in the Chat store. */
2
- export type ProcessActivity = 'read' | 'search' | 'edit' | 'commands' | 'code' | 'webSearch' | 'webFetch' | 'subagents' | 'plan' | 'questions' | 'tools';
2
+ export type ProcessActivity = 'read' | 'readImage' | 'search' | 'write' | 'edit' | 'commands' | 'code' | 'webSearch' | 'webFetch' | 'subagents' | 'plan' | 'questions' | 'tools';
3
3
  /** Distinct-call category ranking and the current live task detail. */
4
4
  export interface ProcessActivitySummary {
5
5
  readonly counts: readonly {
@@ -8,6 +8,8 @@ export interface ProcessActivitySummary {
8
8
  }[];
9
9
  readonly running: ProcessActivity | undefined;
10
10
  readonly runningDetail: string;
11
+ /** Present only while the selected live activity has not reached tool/call. */
12
+ readonly preparing?: true;
11
13
  }
12
14
  /** Presentation facts for one group between independent replies or input. */
13
15
  export interface ProcessGroupData {
@@ -2,7 +2,7 @@
2
2
  import type { MessageId } from '@deepseek-ai/dsh-llm/brand';
3
3
  import type { SessionId, SessionSeq } from '@deepseek-ai/dsh-session/types';
4
4
  import type { CommandNode, CompactionSummaryNode, ConversationLocationDataStore, ConversationTurnDataMap, ConversationGroupData, GroupSnapshot, MessageImageLoader, MessageImagesOwnerProps, RenderMessageImages, TurnLocation } from '@deepseek-ai/dsh-client-ui-conversation/client';
5
- import type { InjectFace, KeyedSnapshotSelectorHook, PropsLocale, PropsRenderSlots, PropsRuntime, PropsStore, SlotHookFactory, SnapshotSelectorHook } from '@deepseek-ai/dsh-client-ui-slots';
5
+ import type { HostObservable, InjectFace, KeyedSnapshotSelectorHook, PropsLocale, PropsRenderSlots, PropsRuntime, PropsStore, SlotHookFactory, SnapshotSelectorHook } from '@deepseek-ai/dsh-client-ui-slots';
6
6
  import type { ObservableSnapshot } from '@deepseek-ai/dsh-client-store';
7
7
  import type { MarkdownFileMentions } from '@deepseek-ai/dsh-client-ui-primitives';
8
8
  import type { createChatStore } from '../stores.ts';
@@ -39,6 +39,47 @@ export interface TurnTailOwnerProps {
39
39
  export interface AssistantActionOwnerProps {
40
40
  messageId: MessageId;
41
41
  }
42
+ /** Stable quota failure codes retained in the Session log; both raise the frame-wide notice. */
43
+ export type QuotaNoticeCode = 'QUOTA' | 'ACCOUNT_QUOTA';
44
+ /** The notice on display; `seq` keys remounts so an unretained later notice restarts its transient display. */
45
+ export interface QuotaNoticeState {
46
+ /** Stable failure code retained in the Session log. */
47
+ code: QuotaNoticeCode;
48
+ /** Per-publication sequence; the host keys its surface by it. */
49
+ seq: number;
50
+ }
51
+ /** Owner currency of one quota notice offered to the frame-wide chain. */
52
+ export interface QuotaNoticeOwnerProps {
53
+ /** Stable failure code retained in the Session log. */
54
+ code: QuotaNoticeCode;
55
+ /** Provider-neutral notice copy in the active locale. */
56
+ message: string;
57
+ /** Take the notice down. */
58
+ dismiss: () => void;
59
+ /**
60
+ * Prevent later quota failures from replacing this notice. Dismissal clears
61
+ * all holds; releasing the last hold resumes future notices without replay.
62
+ * Callers must release on unmount.
63
+ * @returns idempotent release that cannot clear another hold.
64
+ */
65
+ keepOpen: () => () => void;
66
+ }
67
+ /** Quota notice host share: the notice on display and its dismissal. */
68
+ export interface QuotaNoticeInjected {
69
+ hooks: {
70
+ /** The notice on display, or none. */
71
+ notice: HostObservable<QuotaNoticeState | null>;
72
+ };
73
+ /** Take the notice down. */
74
+ dismissNotice: () => void;
75
+ /**
76
+ * Acquire a hold with the lifecycle defined by QuotaNoticeOwnerProps.keepOpen.
77
+ * @returns idempotent release, or a no-op when no notice is live.
78
+ */
79
+ keepNoticeOpen: () => () => void;
80
+ }
81
+ /** Full props of the Chat-owned frame-wide quota notice host. */
82
+ export type QuotaNoticeHostProps = PropsRuntime<'shell.overlay'> & PropsLocale<'chat'> & PropsRenderSlots<'shell.quota-notice'> & InjectFace<QuotaNoticeInjected>;
42
83
  /** Optional prose file-mention provider consumed by Chat. */
43
84
  export interface ChatFileMentions {
44
85
  /**
@@ -243,6 +284,18 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
243
284
  scope: 'session';
244
285
  owner: AssistantActionOwnerProps;
245
286
  };
287
+ /**
288
+ * Frame-wide quota notice chain. The Chat-owned host in `shell.overlay`
289
+ * offers the one live notice; the first entry whose selector claims its
290
+ * code takes over the surface, and the all-decline case renders the host's
291
+ * generic warning Toast. The host lives outside the Chat panel, so a notice
292
+ * survives switching or closing the panel that reported it.
293
+ */
294
+ 'shell.quota-notice': {
295
+ kind: 'chain';
296
+ scope: 'root';
297
+ owner: QuotaNoticeOwnerProps;
298
+ };
246
299
  }
247
300
  }
248
301
  //# sourceMappingURL=slots.d.ts.map
@@ -2,7 +2,7 @@ import type { ConversationNode, ConversationTimelineSnapshot, PartialAssistant,
2
2
  import type { ChatConversationViewNode, ChatNodeDataMap, ChatNodeKind } from './chat-nodes.ts';
3
3
  import type { ObservableSnapshot } from '@deepseek-ai/dsh-client-store';
4
4
  import type { TurnProcessSpec } from './turn-process.ts';
5
- export type { AssistantBlock, AssistantMessageNode, AssistantProviderMetadataView, AssistantRequestConfig, AssistantTiming, CommandNode, CompactionSummaryNode, ContextMessageNode, ConversationNode, ModelRetryNode, PartialAssistant, RunningToolCall, SteeringMessageNode, TodoItem, ToolCallBlock, ToolResultNode, TurnErrorNode, TurnMaxTokensNode, UnknownSurfaceNode, UserMessageNode, } from '@deepseek-ai/dsh-client-ui-conversation/client';
5
+ export type { AssistantBlock, AssistantMessageNode, AssistantProviderMetadataView, AssistantRequestConfig, AssistantTiming, CommandNode, CompactionSummaryNode, ContextMessageNode, ConversationNode, ModelRetryNode, PartialAssistant, PreparingToolCall, RunningToolCall, StartedToolCall, SteeringMessageNode, TodoItem, ToolCallBlock, ToolResultNode, TurnErrorNode, TurnMaxTokensNode, UnknownSurfaceNode, UserMessageNode, } from '@deepseek-ai/dsh-client-ui-conversation/client';
6
6
  /** Per-key observable used by one mounted Chat Node Seat. */
7
7
  export interface ChatNodeSource {
8
8
  /** @returns the current Node for this source's stable key. */
@@ -29,8 +29,10 @@ declare module '../contract/chat-nodes.ts' {
29
29
  }
30
30
  /** User, steering, and injected-context message classification Definition. */
31
31
  export declare const messageDefinition: ConversationNodeDefinition<MessageNode>;
32
+ /** Developer history uses the input-message lifecycle and context presentation. */
33
+ export declare const developerMessageDefinition: ConversationNodeDefinition<MessageNode>;
32
34
  /**
33
- * Register the user, steering, and injected-context message contribution.
35
+ * Register user, steering, injected-context, and developer message contributions.
34
36
  * @param ctx - owning UI Conversation context.
35
37
  */
36
38
  export declare function registerMessageConversationNode(ctx: Context): void;
@@ -11,7 +11,7 @@ interface ToolState {
11
11
  readonly children: ReadonlyMap<string, readonly ToolCallBlock[]>;
12
12
  readonly parents: ReadonlyMap<string, string>;
13
13
  }
14
- /** Root Tool lifecycle and nested PTC dispatch Definition. */
14
+ /** Root Tool preparation, dispatch, result, and nested PTC calls. */
15
15
  export declare const toolDefinition: ConversationNodeDefinition<ToolState>;
16
16
  /**
17
17
  * Register the root Tool lifecycle and nested-subcall contribution.
@@ -12,13 +12,13 @@ export type {} from './conversation-nodes/turn-error.ts';
12
12
  export type {} from './conversation-nodes/turn-max-tokens.ts';
13
13
  export type {} from './conversation-nodes/turn-process.ts';
14
14
  export type {} from './conversation-nodes/turn-tail.ts';
15
- export type { AssistantBlock, AssistantMessageNode, AssistantProviderMetadataView, AssistantRequestConfig, AssistantTiming, ChatLocationNodeIndex, ChatNodeProcessSource, ChatNodeSource, ChatNodeStore, ChatSnapshot, ChatTurnNavigationIndex, ChatTurnProcessPresentation, CommandNode, CompactionSummaryNode, ContextMessageNode, ConversationNode, LegacyConversationSlice, ModelRetryNode, PartialAssistant, RunningToolCall, SteeringMessageNode, ToolCallBlock, ToolResultNode, TurnErrorNode, TurnMaxTokensNode, TurnNavigationItem, UnknownSurfaceNode, UserMessageNode, } from './contract/snapshot.ts';
15
+ export type { AssistantBlock, AssistantMessageNode, AssistantProviderMetadataView, AssistantRequestConfig, AssistantTiming, ChatLocationNodeIndex, ChatNodeProcessSource, ChatNodeSource, ChatNodeStore, ChatSnapshot, ChatTurnNavigationIndex, ChatTurnProcessPresentation, CommandNode, CompactionSummaryNode, ContextMessageNode, ConversationNode, LegacyConversationSlice, ModelRetryNode, PartialAssistant, PreparingToolCall, RunningToolCall, StartedToolCall, SteeringMessageNode, ToolCallBlock, ToolResultNode, TurnErrorNode, TurnMaxTokensNode, TurnNavigationItem, UnknownSurfaceNode, UserMessageNode, } from './contract/snapshot.ts';
16
16
  export type { AssistantChatData, ChatConversationViewNode, ChatNode, ChatNodeKind, FinalAssistantChatData, ManualCompactionChatData, RetryChatData, ToolChatData, TurnProcessChatData, TurnTailChatData, } from './contract/chat-nodes.ts';
17
17
  export type { ChatStoreState, ToolCallId, TurnProcessViewEntry } from './contract/store.ts';
18
18
  export type { TranscriptViewRowInjected, TranscriptViewRowProps } from './settings/TranscriptViewRow.tsx';
19
19
  export type { TranscriptViewMode } from '../chat-settings.ts';
20
20
  export type { ChatPresentationPolicy } from './presentation-policy.ts';
21
- export type { AssistantActionOwnerProps, ChatFileMentions, ChatNodeHookContext, ChatNodeInjected, ChatNodeOwnerProps, ChatNodeViewProps, ChatScrollPosition, ChatStore, ChatViewInjected, ChatViewSlotProps, CommandRowOwnerProps, CommandRowProps, MessageImagesProps, OpenFileOptions, PresentationInjected, TurnProcessOwnerProps, TurnTailOwnerProps, UseChat, UseChatNodeTurnData, UseDisclosure, UsePresentation, } from './contract/slots.ts';
21
+ export type { AssistantActionOwnerProps, ChatFileMentions, ChatNodeHookContext, ChatNodeInjected, ChatNodeOwnerProps, ChatNodeViewProps, ChatScrollPosition, ChatStore, ChatViewInjected, ChatViewSlotProps, CommandRowOwnerProps, CommandRowProps, MessageImagesProps, OpenFileOptions, PresentationInjected, QuotaNoticeCode, QuotaNoticeHostProps, QuotaNoticeInjected, QuotaNoticeOwnerProps, QuotaNoticeState, TurnProcessOwnerProps, TurnTailOwnerProps, UseChat, UseChatNodeTurnData, UseDisclosure, UsePresentation, } from './contract/slots.ts';
22
22
  export type { TurnProcessSpec, } from './contract/turn-process.ts';
23
23
  export type { ChatKey } from './locale.ts';
24
24
  export type { ConversationContext, ConversationContextOriginKind } from './model/conversation-context.ts';
@@ -5,6 +5,8 @@ export declare const NS = "chat";
5
5
  export declare const zh: {
6
6
  'message.stepProcess.thinking': string;
7
7
  'message.stepProcess.read': string;
8
+ 'message.stepProcess.readImage': string;
9
+ 'message.stepProcess.write': string;
8
10
  'message.stepProcess.search': string;
9
11
  'message.stepProcess.edit': string;
10
12
  'message.stepProcess.commands': string;
@@ -15,8 +17,23 @@ export declare const zh: {
15
17
  'message.stepProcess.plan': string;
16
18
  'message.stepProcess.questions': string;
17
19
  'message.stepProcess.tools': string;
20
+ 'message.stepProcess.prepare.read': string;
21
+ 'message.stepProcess.prepare.readImage': string;
22
+ 'message.stepProcess.prepare.write': string;
23
+ 'message.stepProcess.prepare.search': string;
24
+ 'message.stepProcess.prepare.edit': string;
25
+ 'message.stepProcess.prepare.commands': string;
26
+ 'message.stepProcess.prepare.code': string;
27
+ 'message.stepProcess.prepare.webSearch': string;
28
+ 'message.stepProcess.prepare.webFetch': string;
29
+ 'message.stepProcess.prepare.subagents': string;
30
+ 'message.stepProcess.prepare.plan': string;
31
+ 'message.stepProcess.prepare.questions': string;
32
+ 'message.stepProcess.prepare.tools': string;
18
33
  'message.stepProcess.done.thinking': string;
19
34
  'message.stepProcess.done.read': string;
35
+ 'message.stepProcess.done.readImage': string;
36
+ 'message.stepProcess.done.write': string;
20
37
  'message.stepProcess.done.search': string;
21
38
  'message.stepProcess.done.edit': string;
22
39
  'message.stepProcess.done.commands': string;
@@ -47,6 +64,11 @@ export declare const zh: {
47
64
  'message.turnProcess.took': string;
48
65
  'message.turnProcess.failed': string;
49
66
  'view.chat': string;
67
+ 'image.open': string;
68
+ 'image.loading': string;
69
+ 'image.failed': string;
70
+ 'image.dialog': string;
71
+ 'image.close': string;
50
72
  'number.groupSeparator': string;
51
73
  'duration.compactSeconds': string;
52
74
  'duration.compactMinutes': string;
@@ -79,13 +101,22 @@ export declare const zh: {
79
101
  'settings.transcript.title': string;
80
102
  'settings.transcript.description': string;
81
103
  'settings.transcript.compact': string;
104
+ 'settings.transcript.standard': string;
82
105
  'settings.transcript.detailed': string;
83
- 'settings.transcript.expanded': string;
106
+ 'settings.transcript.verbose': string;
84
107
  'fileOpen.title': string;
85
108
  'fileOpen.unknown': string;
86
109
  'message.extraBlock': string;
87
110
  'message.systemPrompt': string;
88
111
  'message.systemPromptUpdate': string;
112
+ 'message.toolAdded': string;
113
+ 'message.toolRemoved': string;
114
+ 'message.toolsAdded': string;
115
+ 'message.toolsAddedCount': string;
116
+ 'message.toolsChanged': string;
117
+ 'message.toolsRemoved': string;
118
+ 'message.toolsRemovedCount': string;
119
+ 'message.toolsUpdated': string;
89
120
  'message.contextInjection': string;
90
121
  'message.contextRecall': string;
91
122
  'message.referenceSummary': string;
@@ -128,6 +159,10 @@ export declare const zh: {
128
159
  'message.retry.delay': string;
129
160
  'message.retry.failure': string;
130
161
  'message.failure.auth': string;
162
+ 'message.accountStopped': string;
163
+ 'message.failure.accountSignedOut': string;
164
+ 'message.failure.accountSignInRequired': string;
165
+ 'message.failure.quota': string;
131
166
  'message.turnError': string;
132
167
  'message.maxTokens': string;
133
168
  'message.maxTokens.hint': string;
@@ -161,6 +196,8 @@ export type ChatKey = keyof typeof zh;
161
196
  export declare const en: {
162
197
  'message.stepProcess.thinking': string;
163
198
  'message.stepProcess.read': string;
199
+ 'message.stepProcess.readImage': string;
200
+ 'message.stepProcess.write': string;
164
201
  'message.stepProcess.search': string;
165
202
  'message.stepProcess.edit': string;
166
203
  'message.stepProcess.commands': string;
@@ -171,8 +208,23 @@ export declare const en: {
171
208
  'message.stepProcess.plan': string;
172
209
  'message.stepProcess.questions': string;
173
210
  'message.stepProcess.tools': string;
211
+ 'message.stepProcess.prepare.read': string;
212
+ 'message.stepProcess.prepare.readImage': string;
213
+ 'message.stepProcess.prepare.write': string;
214
+ 'message.stepProcess.prepare.search': string;
215
+ 'message.stepProcess.prepare.edit': string;
216
+ 'message.stepProcess.prepare.commands': string;
217
+ 'message.stepProcess.prepare.code': string;
218
+ 'message.stepProcess.prepare.webSearch': string;
219
+ 'message.stepProcess.prepare.webFetch': string;
220
+ 'message.stepProcess.prepare.subagents': string;
221
+ 'message.stepProcess.prepare.plan': string;
222
+ 'message.stepProcess.prepare.questions': string;
223
+ 'message.stepProcess.prepare.tools': string;
174
224
  'message.stepProcess.done.thinking': string;
175
225
  'message.stepProcess.done.read': string;
226
+ 'message.stepProcess.done.readImage': string;
227
+ 'message.stepProcess.done.write': string;
176
228
  'message.stepProcess.done.search': string;
177
229
  'message.stepProcess.done.edit': string;
178
230
  'message.stepProcess.done.commands': string;
@@ -203,6 +255,11 @@ export declare const en: {
203
255
  'message.turnProcess.took': string;
204
256
  'message.turnProcess.failed': string;
205
257
  'view.chat': string;
258
+ 'image.open': string;
259
+ 'image.loading': string;
260
+ 'image.failed': string;
261
+ 'image.dialog': string;
262
+ 'image.close': string;
206
263
  'number.groupSeparator': string;
207
264
  'duration.compactSeconds': string;
208
265
  'duration.compactMinutes': string;
@@ -235,13 +292,22 @@ export declare const en: {
235
292
  'settings.transcript.title': string;
236
293
  'settings.transcript.description': string;
237
294
  'settings.transcript.compact': string;
295
+ 'settings.transcript.standard': string;
238
296
  'settings.transcript.detailed': string;
239
- 'settings.transcript.expanded': string;
297
+ 'settings.transcript.verbose': string;
240
298
  'fileOpen.title': string;
241
299
  'fileOpen.unknown': string;
242
300
  'message.extraBlock': string;
243
301
  'message.systemPrompt': string;
244
302
  'message.systemPromptUpdate': string;
303
+ 'message.toolAdded': string;
304
+ 'message.toolRemoved': string;
305
+ 'message.toolsAdded': string;
306
+ 'message.toolsAddedCount': string;
307
+ 'message.toolsChanged': string;
308
+ 'message.toolsRemoved': string;
309
+ 'message.toolsRemovedCount': string;
310
+ 'message.toolsUpdated': string;
245
311
  'message.contextInjection': string;
246
312
  'message.contextRecall': string;
247
313
  'message.referenceSummary': string;
@@ -284,6 +350,10 @@ export declare const en: {
284
350
  'message.retry.delay': string;
285
351
  'message.retry.failure': string;
286
352
  'message.failure.auth': string;
353
+ 'message.accountStopped': string;
354
+ 'message.failure.accountSignedOut': string;
355
+ 'message.failure.accountSignInRequired': string;
356
+ 'message.failure.quota': string;
287
357
  'message.turnError': string;
288
358
  'message.maxTokens': string;
289
359
  'message.maxTokens.hint': string;
@@ -11,8 +11,8 @@ export interface ChatPresentationPolicy {
11
11
  readonly mode: TranscriptViewMode;
12
12
  /** Whether a normally completed Turn folds its process rows behind the whole-Turn control. */
13
13
  readonly foldCompletedTurns: boolean;
14
- /** Whether running Turns' secondary groups expose a collapsible header; historical groups always do. */
15
- readonly stepGrouping: 'collapsed' | 'none';
14
+ /** Collapsible group headers for all Turns, historical Turns only, or no Turns. */
15
+ readonly stepGrouping: 'collapsed' | 'history' | 'none';
16
16
  /** Show the running command, path, query, or reasoning detail in group titles. */
17
17
  readonly liveProcessDetail: boolean;
18
18
  /** Whether a settled reasoning row previews its first line beside the Think title. */
@@ -6,7 +6,7 @@ import { type ChatSettings, type TranscriptViewMode } from '../chat-settings.ts'
6
6
  export declare class TranscriptViewPolicy {
7
7
  private readonly host;
8
8
  private readonly unsubscribe;
9
- /** Reactive current mode; defaults to Compact before Host settings arrive. */
9
+ /** Reactive current mode; defaults to Standard before Host settings arrive. */
10
10
  readonly mode: SnapshotStore<TranscriptViewMode>;
11
11
  /**
12
12
  * @param host - durable Chat settings scope.
@@ -16,7 +16,7 @@ export declare class TranscriptViewPolicy {
16
16
  dispose(): void;
17
17
  /**
18
18
  * Publish and persist one explicit user choice.
19
- * @param mode - Compact, Detailed, or Expanded work details.
19
+ * @param mode - Compact, Standard, Detailed, or Verbose work details.
20
20
  */
21
21
  setMode(mode: TranscriptViewMode): void;
22
22
  /** Adopt the latest accepted Host section without writing it back. */
@@ -1,7 +1,7 @@
1
1
  import type { Volatile, Context } from '@deepseek-ai/cordis';
2
2
  import type { LinkOpening, TranscriptViewMode, PerformanceUsageMode } from './chat-settings.ts';
3
3
  import z from '@deepseek-ai/schemastery';
4
- export { CHAT_SETTINGS_NAMESPACE, DEFAULT_TRANSCRIPT_VIEW_MODE, LEGACY_TRANSCRIPT_VIEW_MODE, TRANSCRIPT_VIEW_FIELD, TRANSCRIPT_VIEW_MODES, type ChatSettings, type TranscriptViewMode, } from './chat-settings.ts';
4
+ export { CHAT_SETTINGS_NAMESPACE, DEFAULT_TRANSCRIPT_VIEW_MODE, LEGACY_TRANSCRIPT_VIEW_MODE, LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE, TRANSCRIPT_VIEW_FIELD, TRANSCRIPT_VIEW_MODES, type ChatSettings, type TranscriptViewMode, } from './chat-settings.ts';
5
5
  /** Runtime preferences projected to the browser. */
6
6
  export interface Config {
7
7
  /** Completed turn transcript presentation. */
@@ -13,11 +13,11 @@ export interface Config {
13
13
  }
14
14
  /** Live preferences projected to the browser. */
15
15
  export declare const Config: z<Schemastery.ObjectS<NoInfer<{
16
- transcriptView: z<"compact" | "detailed" | "expanded" | "normal", "compact" | "detailed" | "expanded" | "normal", "volatile-defined">;
16
+ transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "volatile-defined">;
17
17
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "volatile-defined">;
18
18
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "volatile-defined">;
19
19
  }>>, Schemastery.ObjectT<NoInfer<{
20
- transcriptView: z<"compact" | "detailed" | "expanded" | "normal", "compact" | "detailed" | "expanded" | "normal", "volatile-defined">;
20
+ transcriptView: z<"compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "compact" | "standard" | "detailed" | "verbose" | "normal" | "expanded", "volatile-defined">;
21
21
  performanceUsage: z<"compact" | "detailed", "compact" | "detailed", "volatile-defined">;
22
22
  linkOpening: z<"sidebar" | "new-tab", "sidebar" | "new-tab", "volatile-defined">;
23
23
  }>>, "plain">;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-chat",
3
3
  "description": "Chat Conversation target, node definitions, renderers, and details surface",
4
- "version": "0.1.7-alpha.2",
4
+ "version": "0.1.7-rc.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -53,42 +53,42 @@
53
53
  "@types/react-dom": "~18.3.0",
54
54
  "react": "^18.2.0",
55
55
  "react-dom": "^18.2.0",
56
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.2",
57
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-rc.2",
58
+ "@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.2",
59
+ "@deepseek-ai/dsh-api-workspace-files": "0.1.7-rc.2",
60
+ "@deepseek-ai/dsh-api-workspace-controller": "0.1.7-rc.2",
56
61
  "@deepseek-ai/cordis": "~4.0.4",
57
- "@deepseek-ai/dsh-agent": "0.1.7-alpha.2",
58
- "@deepseek-ai/dsh-api-remotes": "0.1.7-alpha.2",
59
- "@deepseek-ai/dsh-api-workspace-controller": "0.1.7-alpha.2",
60
- "@deepseek-ai/dsh-api-session-controller": "0.1.7-alpha.2",
61
- "@deepseek-ai/dsh-attachment": "0.1.7-alpha.2",
62
- "@deepseek-ai/dsh-brand": "0.1.7-alpha.2",
63
- "@deepseek-ai/dsh-api-workspace-files": "0.1.7-alpha.2",
64
- "@deepseek-ai/dsh-client-locale": "0.1.7-alpha.2",
65
- "@deepseek-ai/dsh-client-store": "0.1.7-alpha.2",
66
- "@deepseek-ai/dsh-client-ui-approval": "0.1.7-alpha.2",
67
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-alpha.2",
68
- "@deepseek-ai/dsh-client-ui-layout": "0.1.7-alpha.2",
69
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-alpha.2",
70
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-alpha.2",
71
- "@deepseek-ai/dsh-client-ui-session": "0.1.7-alpha.2",
72
- "@deepseek-ai/dsh-client-ui-settings": "0.1.7-alpha.2",
73
- "@deepseek-ai/dsh-client-ui-sidebar-browser": "0.1.7-alpha.2",
74
- "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.1.7-alpha.2",
75
- "@deepseek-ai/dsh-client-ui-slots": "0.1.7-alpha.2",
76
- "@deepseek-ai/dsh-client-ui-workspace": "0.1.7-alpha.2",
77
- "@deepseek-ai/dsh-commands": "0.1.7-alpha.2",
78
- "@deepseek-ai/dsh-compaction": "0.1.7-alpha.2",
79
- "@deepseek-ai/dsh-llm": "0.1.7-alpha.2",
80
- "@deepseek-ai/dsh-client-ui-input-trigger": "0.1.7-alpha.2",
81
- "@deepseek-ai/dsh-session-stats": "0.1.7-alpha.2",
82
- "@deepseek-ai/dsh-session-turn-outline": "0.1.7-alpha.2",
83
- "@deepseek-ai/dsh-subagent": "0.1.7-alpha.2",
84
- "@deepseek-ai/dsh-token-meter": "0.1.7-alpha.2",
85
- "@deepseek-ai/dsh-tools": "0.1.7-alpha.2",
86
- "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
87
- "@deepseek-ai/dsh-util-workspace-path": "0.1.7-alpha.2",
88
- "@deepseek-ai/dsh-llm-retry": "0.1.7-alpha.2",
89
- "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-alpha.2",
90
- "@deepseek-ai/dsh-util-values": "0.1.7-alpha.2",
91
- "@deepseek-ai/dsh-settings": "0.1.7-alpha.2"
62
+ "@deepseek-ai/dsh-attachment": "0.1.7-rc.2",
63
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.2",
64
+ "@deepseek-ai/dsh-brand": "0.1.7-rc.2",
65
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
66
+ "@deepseek-ai/dsh-client-ui-approval": "0.1.7-rc.2",
67
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.2",
68
+ "@deepseek-ai/dsh-client-ui-input-trigger": "0.1.7-rc.2",
69
+ "@deepseek-ai/dsh-client-ui-layout": "0.1.7-rc.2",
70
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.2",
71
+ "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.1.7-rc.2",
72
+ "@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.2",
73
+ "@deepseek-ai/dsh-client-ui-sidebar-browser": "0.1.7-rc.2",
74
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.2",
75
+ "@deepseek-ai/dsh-client-ui-workspace": "0.1.7-rc.2",
76
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
77
+ "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.2",
78
+ "@deepseek-ai/dsh-compaction": "0.1.7-rc.2",
79
+ "@deepseek-ai/dsh-llm-retry": "0.1.7-rc.2",
80
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.2",
81
+ "@deepseek-ai/dsh-commands": "0.1.7-rc.2",
82
+ "@deepseek-ai/dsh-session": "0.1.7-rc.2",
83
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.2",
84
+ "@deepseek-ai/dsh-session-turn-outline": "0.1.7-rc.2",
85
+ "@deepseek-ai/dsh-token-meter": "0.1.7-rc.2",
86
+ "@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
87
+ "@deepseek-ai/dsh-session-stats": "0.1.7-rc.2",
88
+ "@deepseek-ai/dsh-util-workspace-path": "0.1.7-rc.2",
89
+ "@deepseek-ai/dsh-util-values": "0.1.7-rc.2",
90
+ "@deepseek-ai/dsh-settings": "0.1.7-rc.2",
91
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.2"
92
92
  },
93
93
  "dependencies": {
94
94
  "@deepseek-ai/schemastery": "~3.18.4"