@meiyukichan/dsh-sandore 0.1.0-rc.6
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/LICENSE +201 -0
- package/cordis.patch.yml +39 -0
- package/dsh.plugin.json +16 -0
- package/lib/client/CommandEditor.d.ts +19 -0
- package/lib/client/DagEditor.d.ts +22 -0
- package/lib/client/DefinitionDetail.d.ts +13 -0
- package/lib/client/DefinitionList.d.ts +19 -0
- package/lib/client/DiscussionInput.d.ts +63 -0
- package/lib/client/DragHandle.d.ts +16 -0
- package/lib/client/EditorPane.d.ts +13 -0
- package/lib/client/FlowEditor.d.ts +31 -0
- package/lib/client/InstanceList.d.ts +24 -0
- package/lib/client/NewInstanceDialog.d.ts +19 -0
- package/lib/client/PreviewPanel.d.ts +13 -0
- package/lib/client/RunView.d.ts +79 -0
- package/lib/client/StepChatPanel.d.ts +34 -0
- package/lib/client/TreeNav.d.ts +27 -0
- package/lib/client/UnifiedTimeline.d.ts +11 -0
- package/lib/client/WorkflowButton.d.ts +11 -0
- package/lib/client/WorkflowList.d.ts +18 -0
- package/lib/client/WorkflowOverlay.d.ts +6 -0
- package/lib/client/chat/AssistantMarkdown.d.ts +22 -0
- package/lib/client/chat/CompactionItem.d.ts +24 -0
- package/lib/client/chat/ContextBody.d.ts +136 -0
- package/lib/client/chat/ContextInjectionRow.d.ts +25 -0
- package/lib/client/chat/GenericCommandCard.d.ts +10 -0
- package/lib/client/chat/MessageIconActions.d.ts +41 -0
- package/lib/client/chat/MessageItem.d.ts +65 -0
- package/lib/client/chat/ReasoningRow.d.ts +13 -0
- package/lib/client/chat/TurnTailNodeView.d.ts +29 -0
- package/lib/client/chat/UserMessageRow.d.ts +18 -0
- package/lib/client/chat/attachment/ImageLightbox.d.ts +26 -0
- package/lib/client/chat/attachment/MessageImage.d.ts +56 -0
- package/lib/client/chat/attachment/image-attachment.d.ts +41 -0
- package/lib/client/chat/attachment/image-labels.d.ts +21 -0
- package/lib/client/chat/message-chrome.d.ts +51 -0
- package/lib/client/chat/reference/ReferenceIcon.d.ts +20 -0
- package/lib/client/chat/turn-assistant.d.ts +12 -0
- package/lib/client/chat/turn-metrics.d.ts +42 -0
- package/lib/client/chat/use-calendar-day.d.ts +5 -0
- package/lib/client/chat/use-throttled-visual-update.d.ts +7 -0
- package/lib/client/chat-flow.d.ts +110 -0
- package/lib/client/composer-selects.d.ts +17 -0
- package/lib/client/dag-editor-model.d.ts +141 -0
- package/lib/client/describe-error.d.ts +9 -0
- package/lib/client/index.d.ts +6 -0
- package/lib/client/locales.d.ts +777 -0
- package/lib/client/model-faces.d.ts +156 -0
- package/lib/client/open-discussion.d.ts +24 -0
- package/lib/client/panel-model.d.ts +34 -0
- package/lib/client/remote.d.ts +34 -0
- package/lib/client/run-view-model.d.ts +304 -0
- package/lib/client/sandore-save.d.ts +41 -0
- package/lib/client/sandore-sse.d.ts +15 -0
- package/lib/client/step-chat-retry.d.ts +44 -0
- package/lib/client/tool/GenericToolCard.d.ts +28 -0
- package/lib/client/tool/ToolRow.d.ts +95 -0
- package/lib/client/tool/diff-card-model.d.ts +63 -0
- package/lib/client/tool/read-card-model.d.ts +67 -0
- package/lib/client/tool/search-card-model.d.ts +94 -0
- package/lib/client/tool/terminal-card-model.d.ts +86 -0
- package/lib/client/tool/tool-call-model.d.ts +74 -0
- package/lib/client/tool/web-card-model.d.ts +44 -0
- package/lib/client/use-focus-refresh.d.ts +1 -0
- package/lib/client/workflow-face.d.ts +68 -0
- package/lib/client/workflow-store.d.ts +80 -0
- package/lib/client/workspace-path.d.ts +15 -0
- package/lib/client.js +38389 -0
- package/lib/index.js +8854 -0
- package/lib/microflow/branch-evaluator.d.ts +290 -0
- package/lib/microflow/concurrency-limiter.d.ts +39 -0
- package/lib/microflow/errors.d.ts +39 -0
- package/lib/microflow/file-utils.d.ts +210 -0
- package/lib/microflow/finalize-manager.d.ts +414 -0
- package/lib/microflow/fork-session.d.ts +151 -0
- package/lib/microflow/index.d.ts +17 -0
- package/lib/microflow/internal.d.ts +56 -0
- package/lib/microflow/loop-manager.d.ts +127 -0
- package/lib/microflow/rules-resolver.d.ts +28 -0
- package/lib/microflow/stage-executor.d.ts +362 -0
- package/lib/microflow/step-navigator.d.ts +108 -0
- package/lib/microflow/step-runner.d.ts +190 -0
- package/lib/microflow/subagents.d.ts +380 -0
- package/lib/tool/index.d.ts +65 -0
- package/lib/typert.host.d.ts +16 -0
- package/lib/typert.host.js +25 -0
- package/lib/typert.remote-client.d.ts +114 -0
- package/lib/typert.remote-client.js +399 -0
- package/lib/workflow/ask-tool.d.ts +78 -0
- package/lib/workflow/dag-navigator.d.ts +136 -0
- package/lib/workflow/domain.d.ts +304 -0
- package/lib/workflow/engine-surface.d.ts +70 -0
- package/lib/workflow/errors.d.ts +13 -0
- package/lib/workflow/host-agent.d.ts +53 -0
- package/lib/workflow/index.d.ts +23 -0
- package/lib/workflow/interaction-manager.d.ts +170 -0
- package/lib/workflow/lifecycle-manager.d.ts +111 -0
- package/lib/workflow/persistence.d.ts +35 -0
- package/lib/workflow/plugin.d.ts +27 -0
- package/lib/workflow/reactive-state.d.ts +27 -0
- package/lib/workflow/recovery-manager.d.ts +158 -0
- package/lib/workflow/remote.d.ts +139 -0
- package/lib/workflow/schema.d.ts +1917 -0
- package/lib/workflow/seam.d.ts +254 -0
- package/lib/workflow/shell.d.ts +127 -0
- package/lib/workflow/sse.d.ts +16 -0
- package/lib/workflow/typert/typert.host.d.ts +16 -0
- package/lib/workflow/typert/typert.remote-client.d.ts +114 -0
- package/lib/workflow/types.d.ts +187 -0
- package/lib/workflow/wire.d.ts +256 -0
- package/lib/workflow/workflow-engine.d.ts +373 -0
- package/lib/workflow/yaml-error.d.ts +22 -0
- package/lib/workflow/yaml-parser.d.ts +23 -0
- package/package.json +140 -0
- package/packages/client/CommandEditor.tsx +73 -0
- package/packages/client/DagEditor.module.css +711 -0
- package/packages/client/DagEditor.tsx +1203 -0
- package/packages/client/DefinitionDetail.module.css +110 -0
- package/packages/client/DefinitionDetail.tsx +126 -0
- package/packages/client/DefinitionList.tsx +173 -0
- package/packages/client/DiscussionInput.tsx +763 -0
- package/packages/client/DragHandle.tsx +92 -0
- package/packages/client/EditorPane.tsx +70 -0
- package/packages/client/FlowEditor.tsx +227 -0
- package/packages/client/InstanceList.tsx +250 -0
- package/packages/client/NewInstanceDialog.module.css +244 -0
- package/packages/client/NewInstanceDialog.tsx +478 -0
- package/packages/client/PreviewPanel.tsx +55 -0
- package/packages/client/RunView.module.css +246 -0
- package/packages/client/RunView.tsx +314 -0
- package/packages/client/StepChatPanel.tsx +486 -0
- package/packages/client/TreeNav.tsx +294 -0
- package/packages/client/UnifiedTimeline.tsx +484 -0
- package/packages/client/WorkflowButton.module.css +72 -0
- package/packages/client/WorkflowButton.tsx +50 -0
- package/packages/client/WorkflowList.tsx +158 -0
- package/packages/client/WorkflowOverlay.module.css +390 -0
- package/packages/client/WorkflowOverlay.tsx +136 -0
- package/packages/client/WorkflowPanel.module.css +247 -0
- package/packages/client/chat/AssistantMarkdown.module.css +38 -0
- package/packages/client/chat/AssistantMarkdown.tsx +120 -0
- package/packages/client/chat/ChatView.module.css +198 -0
- package/packages/client/chat/CompactionItem.tsx +85 -0
- package/packages/client/chat/ContextBody.module.css +162 -0
- package/packages/client/chat/ContextBody.tsx +598 -0
- package/packages/client/chat/ContextInjectionRow.module.css +63 -0
- package/packages/client/chat/ContextInjectionRow.tsx +78 -0
- package/packages/client/chat/GenericCommandCard.module.css +87 -0
- package/packages/client/chat/GenericCommandCard.tsx +76 -0
- package/packages/client/chat/MessageIconActions.module.css +84 -0
- package/packages/client/chat/MessageIconActions.tsx +147 -0
- package/packages/client/chat/MessageItem.module.css +293 -0
- package/packages/client/chat/MessageItem.tsx +384 -0
- package/packages/client/chat/ReasoningRow.module.css +82 -0
- package/packages/client/chat/ReasoningRow.tsx +70 -0
- package/packages/client/chat/TurnTailNodeView.module.css +10 -0
- package/packages/client/chat/TurnTailNodeView.tsx +63 -0
- package/packages/client/chat/UserMessageRow.module.css +75 -0
- package/packages/client/chat/UserMessageRow.tsx +92 -0
- package/packages/client/chat/accessibility.module.css +9 -0
- package/packages/client/chat/attachment/ImageLightbox.module.css +45 -0
- package/packages/client/chat/attachment/ImageLightbox.tsx +70 -0
- package/packages/client/chat/attachment/MessageImage.module.css +70 -0
- package/packages/client/chat/attachment/MessageImage.tsx +136 -0
- package/packages/client/chat/attachment/image-attachment.ts +98 -0
- package/packages/client/chat/attachment/image-labels.ts +34 -0
- package/packages/client/chat/message-chrome.ts +96 -0
- package/packages/client/chat/reference/ReferenceIcon.tsx +40 -0
- package/packages/client/chat/turn-assistant.ts +15 -0
- package/packages/client/chat/turn-metrics.ts +102 -0
- package/packages/client/chat/use-calendar-day.ts +27 -0
- package/packages/client/chat/use-throttled-visual-update.ts +44 -0
- package/packages/client/chat-flow.spec.ts +357 -0
- package/packages/client/chat-flow.ts +278 -0
- package/packages/client/composer-selects.module.css +376 -0
- package/packages/client/composer-selects.tsx +531 -0
- package/packages/client/dag-editor-model.spec.ts +173 -0
- package/packages/client/dag-editor-model.ts +359 -0
- package/packages/client/describe-error.spec.ts +18 -0
- package/packages/client/describe-error.ts +12 -0
- package/packages/client/index.ts +144 -0
- package/packages/client/input.module.css +854 -0
- package/packages/client/is-conditional-check.spec.ts +34 -0
- package/packages/client/locales.ts +789 -0
- package/packages/client/model-faces.ts +225 -0
- package/packages/client/open-discussion.spec.ts +39 -0
- package/packages/client/open-discussion.ts +32 -0
- package/packages/client/panel-model.spec.ts +152 -0
- package/packages/client/panel-model.ts +72 -0
- package/packages/client/preview.module.css +95 -0
- package/packages/client/react-dom.d.ts +11 -0
- package/packages/client/reactflow-theme.css +91 -0
- package/packages/client/remote.spec.ts +41 -0
- package/packages/client/remote.ts +46 -0
- package/packages/client/run-view-model.spec.ts +641 -0
- package/packages/client/run-view-model.ts +636 -0
- package/packages/client/sandore-save.spec.ts +146 -0
- package/packages/client/sandore-save.ts +97 -0
- package/packages/client/sandore-sse.ts +59 -0
- package/packages/client/step-chat-retry.spec.ts +70 -0
- package/packages/client/step-chat-retry.ts +65 -0
- package/packages/client/timeline.module.css +503 -0
- package/packages/client/tool/GenericToolCard.tsx +99 -0
- package/packages/client/tool/ToolRow.module.css +308 -0
- package/packages/client/tool/ToolRow.tsx +328 -0
- package/packages/client/tool/diff-card-model.ts +103 -0
- package/packages/client/tool/read-card-model.ts +86 -0
- package/packages/client/tool/search-card-model.ts +166 -0
- package/packages/client/tool/terminal-card-model.ts +225 -0
- package/packages/client/tool/tool-call-model.ts +267 -0
- package/packages/client/tool/web-card-model.ts +80 -0
- package/packages/client/tree-nav.module.css +282 -0
- package/packages/client/use-focus-refresh.ts +23 -0
- package/packages/client/workflow-face.ts +72 -0
- package/packages/client/workflow-store.spec.ts +49 -0
- package/packages/client/workflow-store.ts +161 -0
- package/packages/client/workspace-path.ts +27 -0
- package/packages/css-modules.d.ts +6 -0
- package/packages/microflow/branch-evaluator.spec.ts +745 -0
- package/packages/microflow/branch-evaluator.ts +1037 -0
- package/packages/microflow/concurrency-limiter.ts +70 -0
- package/packages/microflow/errors.ts +64 -0
- package/packages/microflow/file-utils.spec.ts +604 -0
- package/packages/microflow/file-utils.ts +521 -0
- package/packages/microflow/finalize-manager.spec.ts +1977 -0
- package/packages/microflow/finalize-manager.ts +1464 -0
- package/packages/microflow/fork-session.spec.ts +184 -0
- package/packages/microflow/fork-session.ts +316 -0
- package/packages/microflow/index.ts +17 -0
- package/packages/microflow/internal.ts +166 -0
- package/packages/microflow/loop-manager.spec.ts +294 -0
- package/packages/microflow/loop-manager.ts +255 -0
- package/packages/microflow/rules-resolver.spec.ts +147 -0
- package/packages/microflow/rules-resolver.ts +58 -0
- package/packages/microflow/stage-executor.spec.ts +1577 -0
- package/packages/microflow/stage-executor.ts +1478 -0
- package/packages/microflow/step-navigator.spec.ts +301 -0
- package/packages/microflow/step-navigator.ts +300 -0
- package/packages/microflow/step-runner.spec.ts +1132 -0
- package/packages/microflow/step-runner.ts +752 -0
- package/packages/microflow/subagents.spec.ts +215 -0
- package/packages/microflow/subagents.ts +422 -0
- package/packages/tests/fixtures/test-workflow.yaml +128 -0
- package/packages/tests/mocks/agents.ts +206 -0
- package/packages/tests/mocks/llm.ts +46 -0
- package/packages/tests/mocks/session-title.ts +31 -0
- package/packages/tests/mocks/sessions.ts +131 -0
- package/packages/tests/mocks/shell.ts +60 -0
- package/packages/tests/mocks/storage-domain.ts +101 -0
- package/packages/tests/mocks/subagents.ts +197 -0
- package/packages/tests/mocks/subprocess.ts +59 -0
- package/packages/tests/mocks/user-questions.ts +33 -0
- package/packages/tests/mocks/workspace.ts +52 -0
- package/packages/tool/index.spec.ts +287 -0
- package/packages/tool/index.ts +348 -0
- package/packages/workflow/ask-tool.ts +173 -0
- package/packages/workflow/dag-navigator.spec.ts +236 -0
- package/packages/workflow/dag-navigator.ts +425 -0
- package/packages/workflow/domain.ts +26 -0
- package/packages/workflow/engine-surface.ts +71 -0
- package/packages/workflow/errors.ts +13 -0
- package/packages/workflow/host-agent.spec.ts +92 -0
- package/packages/workflow/host-agent.ts +62 -0
- package/packages/workflow/index.ts +25 -0
- package/packages/workflow/interaction-manager.spec.ts +390 -0
- package/packages/workflow/interaction-manager.ts +397 -0
- package/packages/workflow/lifecycle-manager.spec.ts +683 -0
- package/packages/workflow/lifecycle-manager.ts +288 -0
- package/packages/workflow/persistence.spec.ts +109 -0
- package/packages/workflow/persistence.ts +64 -0
- package/packages/workflow/plugin.ts +39 -0
- package/packages/workflow/reactive-state.spec.ts +69 -0
- package/packages/workflow/reactive-state.ts +52 -0
- package/packages/workflow/recovery-manager.spec.ts +606 -0
- package/packages/workflow/recovery-manager.ts +471 -0
- package/packages/workflow/remote.spec.ts +1045 -0
- package/packages/workflow/remote.ts +479 -0
- package/packages/workflow/schema.spec.ts +303 -0
- package/packages/workflow/schema.ts +562 -0
- package/packages/workflow/seam.ts +293 -0
- package/packages/workflow/shell.ts +142 -0
- package/packages/workflow/sse.ts +110 -0
- package/packages/workflow/typert/typert.host.d.ts +16 -0
- package/packages/workflow/typert/typert.host.js +25 -0
- package/packages/workflow/typert/typert.remote-client.d.ts +114 -0
- package/packages/workflow/typert/typert.remote-client.js +399 -0
- package/packages/workflow/types.ts +258 -0
- package/packages/workflow/wire.ts +267 -0
- package/packages/workflow/workflow-engine-e2e.spec.ts +262 -0
- package/packages/workflow/workflow-engine-real-e2e.spec.ts +922 -0
- package/packages/workflow/workflow-engine.spec.ts +4389 -0
- package/packages/workflow/workflow-engine.ts +2133 -0
- package/packages/workflow/yaml-error.ts +29 -0
- package/packages/workflow/yaml-parser.spec.ts +757 -0
- package/packages/workflow/yaml-parser.ts +287 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* message-chrome:抄自 DSH `packages/client/ui-conversation/src/client/chat/message-chrome.ts`。
|
|
3
|
+
* 用户/agent 消息 IconActions 行共用的时间标签辅助(本地日历日、运行时长、时钟)。
|
|
4
|
+
* 仅把 locale 面从 conversation 命名空间收窄为 sandore 命名空间(key 集抄进
|
|
5
|
+
* sandore 字典),逻辑逐字保留。
|
|
6
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/chat/message-chrome
|
|
7
|
+
*/
|
|
8
|
+
import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots';
|
|
9
|
+
/**
|
|
10
|
+
* Local calendar-day epoch (ms at local midnight) for an instant.
|
|
11
|
+
* @param ms - Unix epoch ms.
|
|
12
|
+
* @returns Midnight of that local calendar day.
|
|
13
|
+
*/
|
|
14
|
+
export declare function startOfLocalDay(ms: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Delay until the next local midnight after `ms` (at least 1ms).
|
|
17
|
+
* @param ms - Unix epoch ms.
|
|
18
|
+
* @returns Milliseconds until the following local midnight.
|
|
19
|
+
*/
|
|
20
|
+
export declare function msUntilNextLocalMidnight(ms: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Localized elapsed-time label shared by running and settled turn chrome.
|
|
23
|
+
* @param ms - Elapsed duration in milliseconds (negatives clamp to zero).
|
|
24
|
+
* @param t - Translate seat supplying the duration templates.
|
|
25
|
+
* @returns Display string in whole seconds.
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatRunDuration(ms: number, t: TranslateNS<'sandore'>): string;
|
|
28
|
+
/**
|
|
29
|
+
* Sub-turn latency figure: one decimal under ten seconds, whole seconds
|
|
30
|
+
* beyond. Unit-less so the locale template owns the second suffix.
|
|
31
|
+
* @param ms - Latency in milliseconds (negatives clamp to zero).
|
|
32
|
+
* @returns Display number in seconds without unit.
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatLatencySeconds(ms: number): string;
|
|
35
|
+
/**
|
|
36
|
+
* Decode-throughput figure: whole tokens from ten up, one decimal below.
|
|
37
|
+
* @param tps - Tokens per second.
|
|
38
|
+
* @returns Display number without unit.
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatTokensPerSecond(tps: number): string;
|
|
41
|
+
/**
|
|
42
|
+
* Compact local timestamp for message IconActions. Same calendar day →
|
|
43
|
+
* `HH:mm`; earlier this year → the `clock.md` date template + clock; other
|
|
44
|
+
* years → the `clock.ymd` template + clock. Pure: the date templates arrive
|
|
45
|
+
* through the caller's locale seat.
|
|
46
|
+
* @param time - Unix epoch ms from the source session event.
|
|
47
|
+
* @param t - translate seat supplying the `clock.md` / `clock.ymd` templates.
|
|
48
|
+
* @param now - Reference instant for the day/year cut (defaults to wall clock).
|
|
49
|
+
* @returns Date-aware clock string (24-hour, zero-padded time).
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatMessageClock(time: number, t: TranslateNS<'sandore'>, now?: number): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReferenceIcon:抄自 DSH `packages/client/ui-conversation/src/client/reference/ReferenceIcon.tsx`。
|
|
3
|
+
* 用户气泡内联引用(@会话/@文件/@文件夹)域字形。逐字保留。
|
|
4
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/chat/reference/ReferenceIcon
|
|
5
|
+
*/
|
|
6
|
+
import type { ReactNode } from 'react';
|
|
7
|
+
/** Reference domains with distinct composer and transcript glyphs. */
|
|
8
|
+
export type ReferenceIconKind = 'session' | 'file' | 'folder';
|
|
9
|
+
/** Props shared by inline reference glyphs. */
|
|
10
|
+
export interface ReferenceIconProps {
|
|
11
|
+
kind: ReferenceIconKind;
|
|
12
|
+
size?: number;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Render the icon that identifies one inline reference domain.
|
|
17
|
+
* @param props - Reference kind, optional size, and optional CSS class.
|
|
18
|
+
* @returns The corresponding current-color SVG glyph.
|
|
19
|
+
*/
|
|
20
|
+
export declare function ReferenceIcon({ kind, size, className }: ReferenceIconProps): ReactNode;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* turn-assistant:抄自 DSH `packages/client/ui-conversation/src/client/chat/turn-assistant.ts`。
|
|
3
|
+
* 收集一个 Assistant 生命周期中的可见散文(turn-tail 复制按钮取文本用)。逐字保留。
|
|
4
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/chat/turn-assistant
|
|
5
|
+
*/
|
|
6
|
+
import type { AssistantBlock } from '@deepseek-ai/dsh-client-runtime/client';
|
|
7
|
+
/**
|
|
8
|
+
* Collect visible prose from one Assistant lifecycle.
|
|
9
|
+
* @param blocks - Assistant content blocks.
|
|
10
|
+
* @returns concatenated text blocks.
|
|
11
|
+
*/
|
|
12
|
+
export declare function assistantText(blocks: readonly AssistantBlock[]): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* turn-metrics:抄自 DSH `packages/client/ui-conversation/src/client/chat/turn-metrics.ts`。
|
|
3
|
+
* 已结算 turn 尾部(tail)与 StatsLine 共用的延迟/吞吐折叠。逐字保留。
|
|
4
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/chat/turn-metrics
|
|
5
|
+
*/
|
|
6
|
+
import type { AssistantMessageNode, ConversationNode } from '@deepseek-ai/dsh-client-runtime/client';
|
|
7
|
+
/** Latency and decode-throughput readings for one turn's footer. */
|
|
8
|
+
export interface TurnMetrics {
|
|
9
|
+
/** First-step TTFT in ms; absent when that step carries no recorded timing. */
|
|
10
|
+
ttftMs?: number;
|
|
11
|
+
/** Decode throughput over steps carrying both timing and provider usage. */
|
|
12
|
+
tokensPerSecond?: number;
|
|
13
|
+
}
|
|
14
|
+
/** One assistant step's derivable latency facts; null marks an unrecorded part. */
|
|
15
|
+
export interface StepReading {
|
|
16
|
+
/** step/start → first token delta, in ms. */
|
|
17
|
+
ttftMs: number | null;
|
|
18
|
+
/** First token delta → final message, in ms. */
|
|
19
|
+
decodeMs: number | null;
|
|
20
|
+
/** Provider-reported completion tokens. */
|
|
21
|
+
outputTokens: number | null;
|
|
22
|
+
}
|
|
23
|
+
type AssistantNode = AssistantMessageNode;
|
|
24
|
+
/**
|
|
25
|
+
* Read one assistant node's TTFT, decode wall time, and output tokens.
|
|
26
|
+
* @param node - A settled assistant node.
|
|
27
|
+
* @returns Per-part readings with `null` for unrecorded values.
|
|
28
|
+
*/
|
|
29
|
+
export declare function assistantStepReading(node: AssistantNode): StepReading;
|
|
30
|
+
/**
|
|
31
|
+
* Fold assistant nodes into per-turn footer metrics.
|
|
32
|
+
*
|
|
33
|
+
* TTFT is the turn's lowest-step request-dispatch-to-first-token reading, so
|
|
34
|
+
* it is only meaningful when the turn's start is inside
|
|
35
|
+
* the loaded window (the caller gates on `turnTimings`, which shares that
|
|
36
|
+
* window). Throughput divides summed output tokens by summed decode wall time,
|
|
37
|
+
* counting only steps that carry both.
|
|
38
|
+
* @param nodes - Snapshot nodes of the loaded window.
|
|
39
|
+
* @returns Turn number → available metrics; turns with none are absent.
|
|
40
|
+
*/
|
|
41
|
+
export declare function deriveTurnMetrics(nodes: readonly ConversationNode[]): Map<number, TurnMetrics>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return a stable scheduler that coalesces visual updates over a frame interval.
|
|
3
|
+
* @param update - DOM alignment to run after the throttle interval.
|
|
4
|
+
* @param intervalFrames - frames to wait before applying the latest alignment.
|
|
5
|
+
* @returns a stable function that schedules the latest update.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useThrottledVisualUpdate(update: () => void, intervalFrames?: number): () => void;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* chat-flow:轻量子代理面板的纯逻辑层(无 React / 无 DSH 运行时依赖,vitest node
|
|
3
|
+
* 环境可跑)。对应 DSH ChatView 的「组装层→渲染行」语义:
|
|
4
|
+
*
|
|
5
|
+
* - 从 `snapshot.nodes`(公开 `ConversationNode[]`,已排序)取**最新 10 条节点**;
|
|
6
|
+
* - assistant 节点的 tool-call 块展开为独立工具行(与 DSH 把 tool-call 组装为独立
|
|
7
|
+
* 'tool-call' 行的行为一致),tool-result 节点与同 callId 的未结算工具行**配对**
|
|
8
|
+
* (替换该行——即 DSH 的「同一行从 running 更新为 settled」),窗口截断导致 call
|
|
9
|
+
* 头不可见时单列(与 DSH 的 soft-fall 一致);
|
|
10
|
+
* - `partial`(流式 assistant 增量)追加为流式 agent 行 + 运行中工具行;
|
|
11
|
+
* - context/compaction/model-retry/turn-error/turn-max-tokens/unknown 等边缘节点映射为
|
|
12
|
+
* 展示行(对应 DSH `conversation.chat.node` 各 keyed 渲染器);
|
|
13
|
+
* - 已完结 turn(`turnTimings`/`turnEnds` 提供时)在其结算 assistant 行后派生
|
|
14
|
+
* **turn-tail 行**(对应 DSH 的 'turn-tail' ChatNode:复制 + 运行时长/TTFT/吞吐 +
|
|
15
|
+
* branch;branchUnavailable 近似为「结算行不是面板最后一行」)。
|
|
16
|
+
*
|
|
17
|
+
* 组件层(StepChatPanel)把 `StepChatFlowRow` 逐一映射为抄自 DSH 的渲染组件。
|
|
18
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/chat-flow
|
|
19
|
+
*/
|
|
20
|
+
import type { AssistantBlock, CommandNode, CompactionSummaryNode, ContextMessageNode, ConversationNode, ModelRetryNode, PartialAssistant, RunningToolCall, ToolCallBlock, TurnErrorNode, UnknownSurfaceNode } from '@deepseek-ai/dsh-client-runtime/client';
|
|
21
|
+
/** 面板展示的最大节点数(轻量面板:仅最新 10 条节点)。 */
|
|
22
|
+
export declare const STEP_CHAT_MAX_NODES = 10;
|
|
23
|
+
/**
|
|
24
|
+
* `buildStepChatFlow` 的最小快照输入面(只读 nodes/partial/runningCalls;
|
|
25
|
+
* `ConversationSnapshot` 结构上满足它,单测可直接构造小对象)。
|
|
26
|
+
*/
|
|
27
|
+
export interface StepChatFlowInput {
|
|
28
|
+
readonly nodes: readonly ConversationNode[];
|
|
29
|
+
readonly partial: PartialAssistant | null;
|
|
30
|
+
readonly runningCalls: readonly RunningToolCall[];
|
|
31
|
+
/** 已完结 turn 的时间边界(`ConversationSnapshot.turnTimings`);缺省不派生 turn-tail。 */
|
|
32
|
+
readonly turnTimings?: ReadonlyMap<number, {
|
|
33
|
+
readonly startTime: number;
|
|
34
|
+
readonly endTime?: number;
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
/** turn-tail 展示数据(对齐 DSH `TurnTailChatData` 的展示面;组件层消费)。 */
|
|
38
|
+
export interface StepChatTailData {
|
|
39
|
+
/** 已完结 turn 号。 */
|
|
40
|
+
turn: number;
|
|
41
|
+
/** 结算 assistant 节点 seq(分支锚点)。 */
|
|
42
|
+
seq: number;
|
|
43
|
+
/** 结算时间(Unix epoch ms;时钟用)。 */
|
|
44
|
+
time: number;
|
|
45
|
+
/** 结算 assistant 的拼接文本(复制按钮取文本)。 */
|
|
46
|
+
text: string;
|
|
47
|
+
/** Turn 壁钟时长 ms;turn/start|end 均在窗口内时可用。 */
|
|
48
|
+
runMs?: number | undefined;
|
|
49
|
+
/** Turn 首步 TTFT ms;未记录时省略。 */
|
|
50
|
+
ttftMs?: number | undefined;
|
|
51
|
+
/** Turn 解码吞吐;未记录时省略。 */
|
|
52
|
+
tokensPerSecond?: number | undefined;
|
|
53
|
+
/** 分支不可用(结算 assistant 非窗口尾部等)。 */
|
|
54
|
+
branchUnavailable: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** 一条展示行(kind 判别;key 为 React key,跨快照稳定)。 */
|
|
57
|
+
export type StepChatFlowRow = {
|
|
58
|
+
readonly kind: 'user';
|
|
59
|
+
readonly key: string;
|
|
60
|
+
readonly node: Extract<ConversationNode, {
|
|
61
|
+
kind: 'user' | 'steering';
|
|
62
|
+
}>;
|
|
63
|
+
} | {
|
|
64
|
+
readonly kind: 'agent';
|
|
65
|
+
readonly key: string;
|
|
66
|
+
readonly blocks: readonly AssistantBlock[];
|
|
67
|
+
readonly streaming: boolean;
|
|
68
|
+
readonly interrupted: boolean;
|
|
69
|
+
} | {
|
|
70
|
+
readonly kind: 'tool';
|
|
71
|
+
readonly key: string;
|
|
72
|
+
readonly toolName: string;
|
|
73
|
+
readonly block: ToolCallBlock;
|
|
74
|
+
} | {
|
|
75
|
+
readonly kind: 'command';
|
|
76
|
+
readonly key: string;
|
|
77
|
+
readonly node: CommandNode;
|
|
78
|
+
} | {
|
|
79
|
+
readonly kind: 'context';
|
|
80
|
+
readonly key: string;
|
|
81
|
+
readonly node: ContextMessageNode;
|
|
82
|
+
} | {
|
|
83
|
+
readonly kind: 'compaction';
|
|
84
|
+
readonly key: string;
|
|
85
|
+
readonly node: CompactionSummaryNode;
|
|
86
|
+
} | {
|
|
87
|
+
readonly kind: 'retry';
|
|
88
|
+
readonly key: string;
|
|
89
|
+
readonly node: ModelRetryNode;
|
|
90
|
+
} | {
|
|
91
|
+
readonly kind: 'turn-error';
|
|
92
|
+
readonly key: string;
|
|
93
|
+
readonly node: TurnErrorNode;
|
|
94
|
+
} | {
|
|
95
|
+
readonly kind: 'turn-max-tokens';
|
|
96
|
+
readonly key: string;
|
|
97
|
+
} | {
|
|
98
|
+
readonly kind: 'unknown';
|
|
99
|
+
readonly key: string;
|
|
100
|
+
readonly node: UnknownSurfaceNode;
|
|
101
|
+
} | {
|
|
102
|
+
readonly kind: 'tail';
|
|
103
|
+
readonly key: string;
|
|
104
|
+
readonly data: StepChatTailData;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* 快照 → 展示行(最新 10 条节点;assistant 展开为文本行 + 工具行;partial 追加在尾部;
|
|
108
|
+
* 已完结 turn 派生 turn-tail 行)。
|
|
109
|
+
*/
|
|
110
|
+
export declare function buildStepChatFlow(snapshot: StepChatFlowInput): readonly StepChatFlowRow[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TranslateNS } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { ModelDirectoryFace, PermissionSelectValue } from './model-faces.ts';
|
|
3
|
+
/** 渲染模型触发器 + 两级菜单(复用 DSH 的模型目录数据面)。 */
|
|
4
|
+
export declare function ModelSelectSandore({ t, directory, locked }: {
|
|
5
|
+
readonly t: TranslateNS<'sandore'>;
|
|
6
|
+
readonly directory: ModelDirectoryFace;
|
|
7
|
+
readonly locked: boolean;
|
|
8
|
+
}): import("react").JSX.Element | null;
|
|
9
|
+
/** 渲染权限触发器 + 菜单 + 完全访问确认(行为照 DSH PermissionSelect)。 */
|
|
10
|
+
export declare function PermissionSelectSandore({ t, value, locked, runCommand, queryValue }: {
|
|
11
|
+
readonly t: TranslateNS<'sandore'>;
|
|
12
|
+
readonly value: PermissionSelectValue | undefined;
|
|
13
|
+
readonly locked: boolean;
|
|
14
|
+
readonly runCommand: (line: string) => Promise<boolean>;
|
|
15
|
+
/** 权限投影缺失时的回退查询(`/permission` 无参报告)。 */
|
|
16
|
+
readonly queryValue: () => Promise<PermissionSelectValue | undefined>;
|
|
17
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DagEditor 的编辑态模型纯函数(无 React 依赖,可单测)。
|
|
3
|
+
*
|
|
4
|
+
* 定义经 `dsh-sandore/yaml`(浏览器安全子路径)解析/序列化,
|
|
5
|
+
* 编辑态模型即 `WorkflowDefinition`。此处提供新建骨架与五类型 command 工厂,
|
|
6
|
+
* 供组件初始化与 Step 字段编辑复用,避免在 JSX 中散落结构常量。
|
|
7
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/dag-editor-model
|
|
8
|
+
*/
|
|
9
|
+
import type { CommandConfig, DagBranch, InputFromItem, OutputToItem, PassThroughVar, WorkflowDefinition, WorkflowStage, WorkflowStep } from 'dsh-sandore/schema';
|
|
10
|
+
/**
|
|
11
|
+
* 合并视图 Step(V2 分离式):Stage 流控位(`{id, branches?}`)与顶层定义
|
|
12
|
+
* (`definition.steps[id]` 全字段)按 id 合并,供画布/编辑器读取完整字段。
|
|
13
|
+
*/
|
|
14
|
+
export type MergedStep = WorkflowStep & {
|
|
15
|
+
branches?: DagBranch[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* 构造某 Stage 的合并 Step 视图:`definition.steps[id]` 定义字段 + `stage.steps[id].branches`
|
|
19
|
+
* 流控字段。顶层缺定义(旧数据/未同步)时退回 `{id}` 骨架。
|
|
20
|
+
* @param definition - 工作流定义(含顶层 steps[])。
|
|
21
|
+
* @param stage - 目标 Stage(含流控位 steps[])。
|
|
22
|
+
* @returns 合并 Step 列表(顺序 = Stage 流控位顺序)。
|
|
23
|
+
*/
|
|
24
|
+
export declare function mergedStepsOf(definition: WorkflowDefinition, stage: WorkflowStage): MergedStep[];
|
|
25
|
+
/** 五类型命令判别字段(对齐 `CommandConfig` discriminated union)。 */
|
|
26
|
+
export type CommandType = CommandConfig['type'];
|
|
27
|
+
/** 全部五类型命令判别字段(编辑表单下拉项)。 */
|
|
28
|
+
export declare const COMMAND_TYPES: readonly CommandType[];
|
|
29
|
+
/** 生成带前缀的唯一 id(`{prefix}-{uuid}`),供 Stage/Step/ipt/opt 节点复用。 */
|
|
30
|
+
export declare function newId(prefix: string): string;
|
|
31
|
+
/** 构造一个新的空 Stage 节点(唯一 `stg-{uuid}` id + 空 steps)。 */
|
|
32
|
+
export declare function createStage(name: string): WorkflowStage;
|
|
33
|
+
/** 构造一个新的输入绑定项(唯一 `ipt-{uuid}` id)。 */
|
|
34
|
+
export declare function createInputFromItem(): InputFromItem;
|
|
35
|
+
/** 构造一个新的输出绑定项(唯一 `opt-{uuid}` id)。 */
|
|
36
|
+
export declare function createOutputToItem(): OutputToItem;
|
|
37
|
+
/** 构造一个空的透传变量项(`name`/`value`/`description` 待填)。 */
|
|
38
|
+
export declare function createPassThroughVar(): PassThroughVar;
|
|
39
|
+
/** 构造一个空的分支项(`next` 待填)。 */
|
|
40
|
+
export declare function createBranch(): DagBranch;
|
|
41
|
+
/** 去掉首尾空白,空串归 `undefined`(用于可选字段清除)。 */
|
|
42
|
+
export declare function trimToUndefined(value: string): string | undefined;
|
|
43
|
+
/** 解析可选的数字输入:空串/非法值归 `undefined`。 */
|
|
44
|
+
export declare function parseOptionalNumber(value: string): number | undefined;
|
|
45
|
+
/** 可编辑的命令文本字段(按类型收窄到 value 内的字段)。 */
|
|
46
|
+
export type CommandTextField = 'command' | 'promptText' | 'agentParamsTemplate' | 'providerId' | 'modelId';
|
|
47
|
+
/** 更新某类型命令的单个文本字段,返回新命令(可选字段空串 → 清除)。 */
|
|
48
|
+
export declare function updateCommandText(command: CommandConfig, field: CommandTextField, value: string): CommandConfig;
|
|
49
|
+
/**
|
|
50
|
+
* 将保存后的真实 id 回填进定义模型(新建哨兵 `wfl-new` → `wfl-{uuid}`),
|
|
51
|
+
* 使 YAML 预览基线反映已保存内容。
|
|
52
|
+
* @param definition - 当前编辑态定义模型。
|
|
53
|
+
* @param id - 保存回调返回的持久化 id。
|
|
54
|
+
* @returns id 已更新的定义模型(其余字段不变)。
|
|
55
|
+
*/
|
|
56
|
+
export declare function withDefinitionId(definition: WorkflowDefinition, id: string): WorkflowDefinition;
|
|
57
|
+
/**
|
|
58
|
+
* 构造某类型的最小合法命令(值为空串,待用户填写)。
|
|
59
|
+
* @param type - 命令类型。
|
|
60
|
+
* @returns 该类型的空命令配置。
|
|
61
|
+
*/
|
|
62
|
+
export declare function createCommand(type: CommandType): CommandConfig;
|
|
63
|
+
/** 新建定义的默认 id(首次保存由 Host `createDefinition` 生成 `wfl-{uuid}` 记录键)。 */
|
|
64
|
+
export declare const NEW_DEFINITION_ID = "wfl-new";
|
|
65
|
+
/**
|
|
66
|
+
* 构造最小合法定义骨架(单个空 Stage),供「新建定义」进入空白 DagEditor。
|
|
67
|
+
*
|
|
68
|
+
* `skills`/`mcps`/`agents`/`settings` 显式给出默认值以对齐 `WorkflowDefinitionSchema`
|
|
69
|
+
* 的 `.default()` 输出类型;`serializeWorkflowYaml` → `parseWorkflowYaml` 可深层相等往返。
|
|
70
|
+
* @param id - 定义 id(新建默认 `wfl-new`)。
|
|
71
|
+
* @returns 最小合法定义。
|
|
72
|
+
*/
|
|
73
|
+
export declare function createBlankDefinition(id?: string): WorkflowDefinition;
|
|
74
|
+
/** Stage 节点高度:随 Step 行数增长(封顶 6 行)。 */
|
|
75
|
+
export declare function stageNodeHeight(stepCount: number): number;
|
|
76
|
+
/** 单个 Step 的流出目标(branches[].next + branches[].loop.next,去空)。 */
|
|
77
|
+
export declare function stepTargetsOf(step: MergedStep): string[];
|
|
78
|
+
/** 流控边类型:串行 / 并行分支 / 条件分支 / 循环回边。 */
|
|
79
|
+
export type FlowEdgeKind = 'serial' | 'parallel' | 'conditional' | 'loop';
|
|
80
|
+
/** 流控边规格(供 DAG 画布渲染与 dagre 布局)。 */
|
|
81
|
+
export interface FlowEdgeSpec {
|
|
82
|
+
readonly source: string;
|
|
83
|
+
readonly target: string;
|
|
84
|
+
readonly kind: FlowEdgeKind;
|
|
85
|
+
/** 边标签(条件分支 label / 循环标识)。 */
|
|
86
|
+
readonly label?: string | undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 分支是否为条件分支:有 `condition`(布尔判定命令)才算。无 `condition` = 并行分支
|
|
90
|
+
* (始终纳入下一批);有 `loop` 的分支是循环回边(其 `next` 指向更早节点)。
|
|
91
|
+
*/
|
|
92
|
+
export declare function isConditionalBranch(branch: DagBranch): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* 判断在 Stage 间新增连线 `source → target` 是否会形成回环(Stage DAG 不允许循环)。
|
|
95
|
+
* 从 target 出发沿既有出边(branches[].next + branches[].loop.next)做可达性搜索:
|
|
96
|
+
* 若可回到 source,则新增这条边会构成环。自环(source === target)也视为回环。
|
|
97
|
+
* @param stages - 当前 Stage 列表(不含待加边)。
|
|
98
|
+
* @param source - 连线起点。
|
|
99
|
+
* @param target - 连线终点。
|
|
100
|
+
* @returns 是否构成回环。
|
|
101
|
+
*/
|
|
102
|
+
export declare function wouldCreateStageCycle(stages: readonly WorkflowStage[], source: string, target: string): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Stage 层流控边(branches 是唯一出边单元,**无循环**):有 `condition` 的条件分支
|
|
105
|
+
* 琥珀虚线(带 label),无 `condition` 的并行分支默认灰实线。未声明流控的孤立 Stage
|
|
106
|
+
* 按定义顺序串行兜底(画布不画边,仅引擎推进)。
|
|
107
|
+
* @param stages - 定义内的 Stage 列表。
|
|
108
|
+
* @returns 去重后的流控边。
|
|
109
|
+
*/
|
|
110
|
+
export declare function stageFlowEdges(stages: readonly WorkflowStage[]): FlowEdgeSpec[];
|
|
111
|
+
/**
|
|
112
|
+
* Step 层流控边(微流程:并行/条件 branches + **循环回边分支 loop**)。
|
|
113
|
+
* 条件分支(有 condition)琥珀虚线带 label;循环分支(有 loop)`loop.next` 红色虚线
|
|
114
|
+
* 回边;无 condition/loop 的并行分支默认灰实线。
|
|
115
|
+
* @param steps - 某 Stage 内的合并 Step 列表(含 branches 流控)。
|
|
116
|
+
* @returns 去重后的流控边。
|
|
117
|
+
*/
|
|
118
|
+
export declare function stepFlowEdges(steps: readonly MergedStep[]): FlowEdgeSpec[];
|
|
119
|
+
/** 参与 dagre 布局的节点尺寸。 */
|
|
120
|
+
export interface DagreNodeSpec {
|
|
121
|
+
readonly id: string;
|
|
122
|
+
readonly width: number;
|
|
123
|
+
readonly height: number;
|
|
124
|
+
}
|
|
125
|
+
/** dagre 有向边。 */
|
|
126
|
+
export interface DagreEdgeSpec {
|
|
127
|
+
readonly source: string;
|
|
128
|
+
readonly target: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* 用 Dagre 计算分层布局(TB = 自上而下垂直流,官方 dagre 示例默认方向)。
|
|
132
|
+
* 返回节点 id → 左上角坐标(React Flow 的 position 语义,dagre 输出的是中心点,
|
|
133
|
+
* 需减半宽/高)。
|
|
134
|
+
* @param nodes - 参与布局的节点。
|
|
135
|
+
* @param edges - 有向边(自动去重)。
|
|
136
|
+
* @returns 节点 id → 左上角坐标。
|
|
137
|
+
*/
|
|
138
|
+
export declare function dagreLayout(nodes: readonly DagreNodeSpec[], edges: readonly DagreEdgeSpec[]): Record<string, {
|
|
139
|
+
x: number;
|
|
140
|
+
y: number;
|
|
141
|
+
}>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 错误消息归一化(无 React 依赖,可单测)。
|
|
3
|
+
*
|
|
4
|
+
* 渲染任意抛出的值为可读消息:`Error` 取 `.message`,其余回落 `String(value)`。
|
|
5
|
+
* 仅供诊断展示,调用方永不按消息内容路由控制流。
|
|
6
|
+
* @module @deepseek-ai/dsh-client-ui-sandore/src/client/describe-error
|
|
7
|
+
*/
|
|
8
|
+
/** 渲染任意抛出的值为可读消息(诊断用,永不按消息路由)。 */
|
|
9
|
+
export declare function describeError(error: unknown): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** sandore Client UI 入口:挂载 sandore Remote 命名空间、注册 sidebar 工作流入口与 shell.overlay 全局工作流 UI。 */
|
|
2
|
+
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
|
|
3
|
+
/** Client 插件依赖的 cordis 服务键。 */
|
|
4
|
+
export declare const inject: string[];
|
|
5
|
+
/** 挂载 sandore 远程命名空间、注册 locale 字典与工作流入口/overlay。 */
|
|
6
|
+
export declare function apply(ctx: ClientContext): Promise<void>;
|