@deepseek-harness-tui/dsh-tui 0.10.0-beta.3 → 0.10.0-beta.5
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/README.md +1 -1
- package/bin/dsh-tui.js +0 -0
- package/cordis.patch.yml +12 -12
- package/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -13
- package/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -59
- package/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -15
- package/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -32
- package/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -59
- package/dsh-ecosystem-spec/protocols/tui-channel.js +166 -166
- package/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -42
- package/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -143
- package/dsh-ecosystem-spec/registry/README.md +14 -14
- package/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -56
- package/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -13
- package/dsh-ecosystem-spec/registry/registry-0.15.json +149 -149
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +4 -1
- package/lib/types/components/FileSuggestions.d.ts +0 -17
- package/lib/types/components/FileSuggestions.d.ts.map +1 -1
- package/lib/types/components/FileSuggestions.js +33 -18
- package/lib/types/components/LogoV2.d.ts +12 -6
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +20 -13
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +54 -29
- package/lib/types/components/PageMargin.d.ts +58 -0
- package/lib/types/components/PageMargin.d.ts.map +1 -0
- package/lib/types/components/PageMargin.js +38 -0
- package/lib/types/components/PromptEditor.d.ts.map +1 -1
- package/lib/types/components/PromptEditor.js +10 -2
- package/lib/types/components/PromptInput.d.ts +19 -1
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +34 -11
- package/lib/types/components/ScrollbarGutter.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.d.ts.map +1 -1
- package/lib/types/components/Tooltip.d.ts.map +1 -1
- package/lib/types/components/Tooltip.js +12 -4
- package/lib/types/components/Whale.d.ts +7 -6
- package/lib/types/components/Whale.d.ts.map +1 -1
- package/lib/types/components/Whale.js +4 -2
- package/lib/types/components/approvals/ApprovalPanel.d.ts +4 -1
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +2 -2
- package/lib/types/components/design-system/Divider.d.ts +9 -1
- package/lib/types/components/design-system/Divider.d.ts.map +1 -1
- package/lib/types/components/design-system/Divider.js +17 -4
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +82 -15
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +4 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +6 -1
- package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
- package/lib/types/components/sessions/SessionListRow.js +19 -2
- package/lib/types/components/smoothReveal.d.ts +0 -40
- package/lib/types/components/smoothReveal.d.ts.map +1 -1
- package/lib/types/components/smoothReveal.js +28 -2
- package/lib/types/components/whaleFrames.d.ts +37 -8
- package/lib/types/components/whaleFrames.d.ts.map +1 -1
- package/lib/types/components/whaleFrames.js +369 -24
- package/lib/types/dsh-adapter/agent-view.d.ts +66 -0
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -0
- package/lib/types/dsh-adapter/agent-view.js +153 -0
- package/lib/types/dsh-adapter/approvals.d.ts +25 -2
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +42 -5
- package/lib/types/dsh-adapter/channel.d.ts +142 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +1160 -162
- package/lib/types/dsh-adapter/compat/index.d.ts +8 -3
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/index.js +8 -3
- package/lib/types/dsh-adapter/compat/liveSession.d.ts +75 -0
- package/lib/types/dsh-adapter/compat/liveSession.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/liveSession.js +198 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +8 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/sessionLog.js +49 -0
- package/lib/types/dsh-adapter/contract.d.ts +10 -9
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +14 -10
- package/lib/types/dsh-adapter/index.d.ts +7 -1
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +5 -1
- package/lib/types/dsh-adapter/inject-channel.d.ts +108 -0
- package/lib/types/dsh-adapter/inject-channel.d.ts.map +1 -0
- package/lib/types/dsh-adapter/inject-channel.js +247 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +85 -13
- package/lib/types/dsh-adapter/preset-resolution.d.ts +2 -2
- package/lib/types/dsh-adapter/preset-resolution.js +2 -2
- package/lib/types/dsh-adapter/presets.d.ts +2 -10
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +4 -2
- package/lib/types/dsh-adapter/promptDebug.d.ts.map +1 -1
- package/lib/types/dsh-adapter/promptDebug.js +8 -5
- package/lib/types/dsh-adapter/providerWizard.d.ts +86 -6
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +684 -186
- package/lib/types/dsh-adapter/questions-answerer.d.ts +2 -2
- package/lib/types/dsh-adapter/questions-answerer.js +2 -2
- package/lib/types/dsh-adapter/sessionTree.d.ts +1 -2
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessionTree.js +20 -6
- package/lib/types/dsh-adapter/sessions/header.d.ts +6 -0
- package/lib/types/dsh-adapter/sessions/header.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/header.js +24 -1
- package/lib/types/dsh-adapter/sessions/index.d.ts +1 -1
- package/lib/types/dsh-adapter/sessions/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/index.js +1 -1
- package/lib/types/dsh-adapter/settings-sections.d.ts +6 -1
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +3 -3
- package/lib/types/dsh-adapter/trajectory/projection.js +3 -3
- package/lib/types/history.d.ts +3 -1
- package/lib/types/history.d.ts.map +1 -1
- package/lib/types/history.js +80 -44
- package/lib/types/hooks/useExternalVersion.d.ts +32 -0
- package/lib/types/hooks/useExternalVersion.d.ts.map +1 -0
- package/lib/types/hooks/useExternalVersion.js +53 -0
- package/lib/types/hooks/useRevealVersion.d.ts +21 -0
- package/lib/types/hooks/useRevealVersion.d.ts.map +1 -0
- package/lib/types/hooks/useRevealVersion.js +33 -0
- package/lib/types/i18n.d.ts +430 -1
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +126 -1
- package/lib/types/ink/components/App.d.ts +42 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +251 -73
- package/lib/types/ink/components/ClockContext.d.ts +6 -0
- package/lib/types/ink/components/ClockContext.d.ts.map +1 -1
- package/lib/types/ink/components/ClockContext.js +24 -3
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +12 -2
- package/lib/types/ink/flush-tick.d.ts +26 -0
- package/lib/types/ink/flush-tick.d.ts.map +1 -0
- package/lib/types/ink/flush-tick.js +31 -0
- package/lib/types/ink/frame.d.ts +6 -0
- package/lib/types/ink/frame.d.ts.map +1 -1
- package/lib/types/ink/geometry-trace.d.ts +1 -1
- package/lib/types/ink/geometry-trace.d.ts.map +1 -1
- package/lib/types/ink/hit-test.d.ts +10 -0
- package/lib/types/ink/hit-test.d.ts.map +1 -1
- package/lib/types/ink/hit-test.js +28 -6
- package/lib/types/ink/ink.d.ts +63 -2
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +269 -28
- package/lib/types/ink/output.js +5 -2
- package/lib/types/ink/parse-keypress.d.ts +15 -2
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +144 -41
- package/lib/types/ink/render-node-to-output.d.ts +64 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +100 -2
- package/lib/types/ink/renderer.d.ts.map +1 -1
- package/lib/types/ink/renderer.js +10 -1
- package/lib/types/ink/selection.d.ts +67 -4
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +174 -5
- package/lib/types/ink/update-overflow-guard.d.ts +63 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -0
- package/lib/types/ink/update-overflow-guard.js +165 -0
- package/lib/types/presetPrefs.d.ts +2 -2
- package/lib/types/presetPrefs.d.ts.map +1 -1
- package/lib/types/presetPrefs.js +2 -2
- package/lib/types/screens/AgentView.d.ts +23 -0
- package/lib/types/screens/AgentView.d.ts.map +1 -0
- package/lib/types/screens/AgentView.js +546 -0
- package/lib/types/screens/Chat.d.ts +10 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +224 -21
- package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
- package/lib/types/screens/SessionBrowser.js +3 -1
- package/lib/types/screens/SessionTree.js +1 -1
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +31 -7
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +16 -2
- package/lib/types/sessionHistory.d.ts +18 -0
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +65 -0
- package/lib/types/sessions/format.d.ts +6 -0
- package/lib/types/sessions/format.d.ts.map +1 -1
- package/lib/types/sessions/format.js +10 -0
- package/lib/types/tuiDisplayPrefs.d.ts +52 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +91 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -21
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +143 -143
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -44
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +69 -69
- package/node_modules/@dsh-std/command/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/command/LICENSE +21 -21
- package/node_modules/@dsh-std/command/README.md +26 -26
- package/node_modules/@dsh-std/command/README.zh.md +28 -28
- package/node_modules/@dsh-std/command/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/command/package.json +22 -22
- package/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/node_modules/@dsh-std/connection/README.md +42 -42
- package/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/node_modules/@dsh-std/connection/package.json +20 -20
- package/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/core/LICENSE +21 -21
- package/node_modules/@dsh-std/core/README.md +13 -13
- package/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/core/package.json +21 -21
- package/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/node_modules/@dsh-std/manifest/README.md +5 -5
- package/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/manifest/package.json +20 -20
- package/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/node_modules/@dsh-std/messages/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/messages/LICENSE +21 -21
- package/node_modules/@dsh-std/messages/README.md +5 -5
- package/node_modules/@dsh-std/messages/README.zh.md +7 -7
- package/node_modules/@dsh-std/messages/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/messages/package.json +20 -20
- package/node_modules/@dsh-std/messages/schema/message-observer-envelope-0.15.schema.json +54 -54
- package/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/node_modules/@dsh-std/presentation/README.md +27 -27
- package/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/presentation/package.json +25 -25
- package/node_modules/@dsh-std/storage/CHANGELOG.md +8 -8
- package/node_modules/@dsh-std/storage/LICENSE +21 -21
- package/node_modules/@dsh-std/storage/README.md +5 -5
- package/node_modules/@dsh-std/storage/README.zh.md +7 -7
- package/node_modules/@dsh-std/storage/lib/index.js.map +1 -1
- package/node_modules/@dsh-std/storage/package.json +20 -20
- package/node_modules/@dsh-std/storage/schema/local-storage-0.15.schema.json +56 -56
- package/package.json +87 -85
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -27
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -25
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -21
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
|
|
55
55
|
- **终端交互**:低资源占用,长会话稳定可靠;多种主题切换,样式美观,实时显示工作状态、TPS、缓存命中率等
|
|
56
56
|
推理等级、输入/输出 token 与 Git/会话信息;终端卡多行命令可经 `/settings` 折叠为首行 + 计数提示(Ctrl+O 或点击卡片展开);全屏模式下悬停在截断的工具卡标题、用户消息或会话标题上约 600ms,浮层显示完整内容。
|
|
57
|
-
- **功能全面**:`/resume` 按工作目录分类浏览、搜索与预览历史会话(左键恢复、右键弹出操作菜单;可固定常用会话——「已固定」分组置顶显示,行内 ★ 或 `Ctrl+P` 切换,持久化到 `~/.dsh-tui`),另有 `/new`、`/compact`、`/export`、`/btw`,模型热切换,原生subagent,会话fork,自动更新,输入框 `/vim` vim 编辑模式、鼠标选区编辑(拖选高亮、Shift+click 扩展、双击选词、Ctrl+C 复制选区)与全屏草稿编辑(`Ctrl+Shift+E` 或输入行 `⛶` 按钮:行号 + 当前行高亮、Enter 换行、Ctrl+Enter 发送、滚轮滚动、点击/拖选,长草稿独占整屏;`/settings` 可关);可在vs code中[以vscode插件形式启动](docs/vscode.md),已上架 VS Code Marketplace。
|
|
57
|
+
- **功能全面**:`/resume` 按工作目录分类浏览、搜索与预览历史会话(左键恢复、右键弹出操作菜单;可固定常用会话——「已固定」分组置顶显示,行内 ★ 或 `Ctrl+P` 切换,持久化到 `~/.dsh-tui`),另有 `/agentview` 会话总览(CC 同款 agent view:空输入 `←` 一键后台化,后台会话派发/预览/回复/停止一站式管理)、`/new`、`/compact`、`/export`、`/btw`,模型热切换,原生subagent,会话fork,自动更新,输入框 `/vim` vim 编辑模式、鼠标选区编辑(拖选高亮、Shift+click 扩展、双击选词、Ctrl+C 复制选区)与全屏草稿编辑(`Ctrl+Shift+E` 或输入行 `⛶` 按钮:行号 + 当前行高亮、Enter 换行、Ctrl+Enter 发送、滚轮滚动、点击/拖选,长草稿独占整屏;`/settings` 可关);可在vs code中[以vscode插件形式启动](docs/vscode.md),已上架 VS Code Marketplace。
|
|
58
58
|
- **扩展丰富**:原生浏览器交互,compter use等大量附属功能性扩展
|
|
59
59
|
- **技能归 DSH 管理**:`/skills` 展示当前 profile、用户与项目发现的技能;dsh-TUI 不预装通用技能。
|
|
60
60
|
|
package/bin/dsh-tui.js
CHANGED
|
File without changes
|
package/cordis.patch.yml
CHANGED
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
config:
|
|
38
38
|
agents: []
|
|
39
39
|
|
|
40
|
-
# Preserve the TUI's opt-in privacy stance across the
|
|
40
|
+
# Preserve the TUI's opt-in privacy stance across the 0.1.2 base default
|
|
41
41
|
# change to FEEDBACK_ONLY. An explicit DSH_TELEMETRY_MODE still wins. This
|
|
42
|
-
# restates the whole
|
|
42
|
+
# restates the whole 0.1.2 config because include patches replace config
|
|
43
43
|
# objects rather than merging them.
|
|
44
44
|
- id: session-telemetry-otel
|
|
45
45
|
config:
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
maxExportBatchSize: 2048
|
|
56
56
|
exportTimeoutMillis: 1500
|
|
57
57
|
|
|
58
|
-
# The
|
|
58
|
+
# The 0.1.2 base sends the active Loader package inventory on official
|
|
59
59
|
# DeepSeek requests by default. TUI keeps that diagnostic metadata opt-in.
|
|
60
60
|
- id: plugin-package-inventory-deepseek
|
|
61
61
|
config:
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
# The model-facing plugin set moves INTO the agent-presets roster: every
|
|
67
67
|
# session composes its tools/prompt sections from one preset directory
|
|
68
68
|
# (standard/ptc/minimal/cordis) instead of the host rows below. The TUI's
|
|
69
|
-
# roster row uses the scoped `dsh-tui-agent-presets` id.
|
|
70
|
-
#
|
|
69
|
+
# roster row uses the scoped `dsh-tui-agent-presets` id. The 0.1.2 generation
|
|
70
|
+
# prepends its bundled system root; legacy 0.1.1-rc.2 still needs the dsh CLI's
|
|
71
71
|
# `config/agent-presets/` directory supplied explicitly. Both append
|
|
72
72
|
# `$DSH_HOME/.agent-presets`. Mirroring the official dsh-web-app patch: every
|
|
73
73
|
# dsh-base row a preset now owns is disabled here, so a minimal agent does not
|
|
@@ -104,9 +104,9 @@
|
|
|
104
104
|
|
|
105
105
|
- id: command-goal
|
|
106
106
|
# rc.2 presets do not carry this command, so their host row must remain
|
|
107
|
-
# active.
|
|
108
|
-
# owns the command; reading the capability avoids guessing from
|
|
109
|
-
# optional Loader row.
|
|
107
|
+
# active. Newer packages disable it only when the shipped standard preset
|
|
108
|
+
# really owns the command; reading the capability avoids guessing from
|
|
109
|
+
# another optional Loader row.
|
|
110
110
|
disabled: !!js >-
|
|
111
111
|
(() => {
|
|
112
112
|
const require = process.getBuiltinModule('node:module').createRequire(ctx.baseUrl)
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
name: '@deepseek-ai/dsh-code-runtime-worker-thread'
|
|
246
246
|
disabled: !!js "[...ctx.loader.entries()].some(entry => entry.options.id === 'code-runtime' && entry.options.name === '@deepseek-ai/dsh-code-runtime-worker-thread' && !entry.disabled)"
|
|
247
247
|
|
|
248
|
-
#
|
|
248
|
+
# 0.1.2 presets opt their delegation tool into Host-owned model-selection
|
|
249
249
|
# settings. Without this service standard/ptc/cordis preset mounting fails.
|
|
250
250
|
# The package subpath does not exist on rc.2, so resolve that capability
|
|
251
251
|
# directly before Loader attempts the import. An enabled official row still
|
|
@@ -302,9 +302,9 @@
|
|
|
302
302
|
name: '@deepseek-harness-tui/dsh-tui/extensions'
|
|
303
303
|
|
|
304
304
|
# The agent-preset roster (issue #8): `ctx.agentPresets`, the service the
|
|
305
|
-
# TUI composes every session's model-facing world from.
|
|
306
|
-
# prepend their bundled presets as the read-only system root; rc.2
|
|
307
|
-
# have no bundled root and still scan the dsh CLI directory. Both append
|
|
305
|
+
# TUI composes every session's model-facing world from. 0.1.2 packages
|
|
306
|
+
# prepend their bundled presets as the read-only system root; legacy rc.2
|
|
307
|
+
# packages have no bundled root and still scan the dsh CLI directory. Both append
|
|
308
308
|
# `$DSH_HOME/.agent-presets` as the user root. Deployment-added roots may
|
|
309
309
|
# still be supplied by a later patch.
|
|
310
310
|
- id: dsh-tui-agent-presets
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { ApiReference, ProtocolCatalog, ProtocolDefinition } from '@dsh-std/core'
|
|
2
|
-
export { registerTuiContributionExtensions } from './tui-contributions.js'
|
|
3
|
-
export * from './tui-channel.js'
|
|
4
|
-
|
|
5
|
-
export const DECISION_EVENTS: Readonly<ApiReference & {
|
|
6
|
-
apiVersion: 'tui.dsh/v1alpha1'
|
|
7
|
-
kind: 'DecisionEvents'
|
|
8
|
-
}>
|
|
9
|
-
|
|
10
|
-
export const decisionEventsDefinition: ProtocolDefinition
|
|
11
|
-
export const profileDefinitions: readonly ProtocolDefinition[]
|
|
12
|
-
|
|
13
|
-
export function registerProfileProtocols(catalog: ProtocolCatalog): () => void
|
|
1
|
+
import type { ApiReference, ProtocolCatalog, ProtocolDefinition } from '@dsh-std/core'
|
|
2
|
+
export { registerTuiContributionExtensions } from './tui-contributions.js'
|
|
3
|
+
export * from './tui-channel.js'
|
|
4
|
+
|
|
5
|
+
export const DECISION_EVENTS: Readonly<ApiReference & {
|
|
6
|
+
apiVersion: 'tui.dsh/v1alpha1'
|
|
7
|
+
kind: 'DecisionEvents'
|
|
8
|
+
}>
|
|
9
|
+
|
|
10
|
+
export const decisionEventsDefinition: ProtocolDefinition
|
|
11
|
+
export const profileDefinitions: readonly ProtocolDefinition[]
|
|
12
|
+
|
|
13
|
+
export function registerProfileProtocols(catalog: ProtocolCatalog): () => void
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
/** dsh-TUI private protocol definitions evaluated by @dsh-std/core. */
|
|
2
|
-
|
|
3
|
-
export { registerTuiContributionExtensions } from './tui-contributions.js'
|
|
4
|
-
export * from './tui-channel.js'
|
|
5
|
-
import { tuiChannelDefinition } from './tui-channel.js'
|
|
6
|
-
|
|
7
|
-
export const DECISION_EVENTS = Object.freeze({
|
|
8
|
-
apiVersion: 'tui.dsh/v1alpha1',
|
|
9
|
-
kind: 'DecisionEvents',
|
|
10
|
-
})
|
|
11
|
-
|
|
12
|
-
function featureSupport(value, label) {
|
|
13
|
-
if (value === undefined) return Object.freeze({ features: Object.freeze([]) })
|
|
14
|
-
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
15
|
-
throw new TypeError(`${label} support spec must be an object`)
|
|
16
|
-
}
|
|
17
|
-
const unknown = Object.keys(value).filter(key => key !== 'features' && !key.startsWith('x-'))
|
|
18
|
-
if (unknown.length > 0) throw new TypeError(`${label} support spec contains unknown field ${JSON.stringify(unknown[0])}`)
|
|
19
|
-
if (value.features !== undefined && (!Array.isArray(value.features)
|
|
20
|
-
|| value.features.some(feature => typeof feature !== 'string' || feature.trim() === ''))) {
|
|
21
|
-
throw new TypeError(`${label} support spec.features must be an array of non-empty strings`)
|
|
22
|
-
}
|
|
23
|
-
return Object.freeze({ features: Object.freeze([...(value.features ?? [])].sort()) })
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function providerDefinition(reference, label) {
|
|
27
|
-
return Object.freeze({
|
|
28
|
-
...reference,
|
|
29
|
-
validateRequirement(value) {
|
|
30
|
-
if (value !== undefined) throw new TypeError(`${label} requirement does not accept spec in manifest v0.15`)
|
|
31
|
-
return undefined
|
|
32
|
-
},
|
|
33
|
-
validateSupport(value) { return featureSupport(value, label) },
|
|
34
|
-
negotiate(input) {
|
|
35
|
-
const providers = [...new Set(input.supports.map(row => row.participant))].sort()
|
|
36
|
-
const issues = input.requirements.flatMap(row => providers.length === 0
|
|
37
|
-
? [{
|
|
38
|
-
code: row.requirement.optional === true ? 'optional-support-missing' : 'required-support-missing',
|
|
39
|
-
severity: row.requirement.optional === true ? 'warning' : 'error',
|
|
40
|
-
participant: row.participant,
|
|
41
|
-
message: `${label} has no provider in this negotiation scope`,
|
|
42
|
-
}]
|
|
43
|
-
: [])
|
|
44
|
-
return { agreement: Object.freeze({ providers: Object.freeze(providers) }), issues: Object.freeze(issues) }
|
|
45
|
-
},
|
|
46
|
-
})
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const decisionEventsDefinition = providerDefinition(DECISION_EVENTS, 'DecisionEvents')
|
|
50
|
-
|
|
51
|
-
export const profileDefinitions = Object.freeze([
|
|
52
|
-
decisionEventsDefinition,
|
|
53
|
-
tuiChannelDefinition,
|
|
54
|
-
])
|
|
55
|
-
|
|
56
|
-
export function registerProfileProtocols(catalog) {
|
|
57
|
-
const disposers = profileDefinitions.map(definition => catalog.register(definition))
|
|
58
|
-
return () => { for (const dispose of disposers.reverse()) dispose() }
|
|
59
|
-
}
|
|
1
|
+
/** dsh-TUI private protocol definitions evaluated by @dsh-std/core. */
|
|
2
|
+
|
|
3
|
+
export { registerTuiContributionExtensions } from './tui-contributions.js'
|
|
4
|
+
export * from './tui-channel.js'
|
|
5
|
+
import { tuiChannelDefinition } from './tui-channel.js'
|
|
6
|
+
|
|
7
|
+
export const DECISION_EVENTS = Object.freeze({
|
|
8
|
+
apiVersion: 'tui.dsh/v1alpha1',
|
|
9
|
+
kind: 'DecisionEvents',
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
function featureSupport(value, label) {
|
|
13
|
+
if (value === undefined) return Object.freeze({ features: Object.freeze([]) })
|
|
14
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
15
|
+
throw new TypeError(`${label} support spec must be an object`)
|
|
16
|
+
}
|
|
17
|
+
const unknown = Object.keys(value).filter(key => key !== 'features' && !key.startsWith('x-'))
|
|
18
|
+
if (unknown.length > 0) throw new TypeError(`${label} support spec contains unknown field ${JSON.stringify(unknown[0])}`)
|
|
19
|
+
if (value.features !== undefined && (!Array.isArray(value.features)
|
|
20
|
+
|| value.features.some(feature => typeof feature !== 'string' || feature.trim() === ''))) {
|
|
21
|
+
throw new TypeError(`${label} support spec.features must be an array of non-empty strings`)
|
|
22
|
+
}
|
|
23
|
+
return Object.freeze({ features: Object.freeze([...(value.features ?? [])].sort()) })
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function providerDefinition(reference, label) {
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
...reference,
|
|
29
|
+
validateRequirement(value) {
|
|
30
|
+
if (value !== undefined) throw new TypeError(`${label} requirement does not accept spec in manifest v0.15`)
|
|
31
|
+
return undefined
|
|
32
|
+
},
|
|
33
|
+
validateSupport(value) { return featureSupport(value, label) },
|
|
34
|
+
negotiate(input) {
|
|
35
|
+
const providers = [...new Set(input.supports.map(row => row.participant))].sort()
|
|
36
|
+
const issues = input.requirements.flatMap(row => providers.length === 0
|
|
37
|
+
? [{
|
|
38
|
+
code: row.requirement.optional === true ? 'optional-support-missing' : 'required-support-missing',
|
|
39
|
+
severity: row.requirement.optional === true ? 'warning' : 'error',
|
|
40
|
+
participant: row.participant,
|
|
41
|
+
message: `${label} has no provider in this negotiation scope`,
|
|
42
|
+
}]
|
|
43
|
+
: [])
|
|
44
|
+
return { agreement: Object.freeze({ providers: Object.freeze(providers) }), issues: Object.freeze(issues) }
|
|
45
|
+
},
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export const decisionEventsDefinition = providerDefinition(DECISION_EVENTS, 'DecisionEvents')
|
|
50
|
+
|
|
51
|
+
export const profileDefinitions = Object.freeze([
|
|
52
|
+
decisionEventsDefinition,
|
|
53
|
+
tuiChannelDefinition,
|
|
54
|
+
])
|
|
55
|
+
|
|
56
|
+
export function registerProfileProtocols(catalog) {
|
|
57
|
+
const disposers = profileDefinitions.map(definition => catalog.register(definition))
|
|
58
|
+
return () => { for (const dispose of disposers.reverse()) dispose() }
|
|
59
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export const TUI_CHANNEL_HTTP_API_VERSION: 'tui.dsh/v1alpha1'
|
|
2
|
-
export const TUI_CHANNEL_HTTP_KIND: 'ChannelEndpoint'
|
|
3
|
-
export const TUI_CHANNEL_HTTP_HEALTH_PATH: '/dsh-tui/v1/health'
|
|
4
|
-
export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH: '/dsh-tui/v1/endpoint'
|
|
5
|
-
export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH: '/dsh-tui/v1/connection'
|
|
6
|
-
|
|
7
|
-
export interface TuiChannelEndpointDescriptor {
|
|
8
|
-
readonly apiVersion: typeof TUI_CHANNEL_HTTP_API_VERSION
|
|
9
|
-
readonly kind: typeof TUI_CHANNEL_HTTP_KIND
|
|
10
|
-
readonly origin: string
|
|
11
|
-
readonly connection: typeof TUI_CHANNEL_HTTP_WEBSOCKET_PATH
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function createTuiChannelEndpointDescriptor(origin: string): TuiChannelEndpointDescriptor
|
|
15
|
-
export function validateTuiChannelEndpointDescriptor(value: unknown): TuiChannelEndpointDescriptor
|
|
1
|
+
export const TUI_CHANNEL_HTTP_API_VERSION: 'tui.dsh/v1alpha1'
|
|
2
|
+
export const TUI_CHANNEL_HTTP_KIND: 'ChannelEndpoint'
|
|
3
|
+
export const TUI_CHANNEL_HTTP_HEALTH_PATH: '/dsh-tui/v1/health'
|
|
4
|
+
export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH: '/dsh-tui/v1/endpoint'
|
|
5
|
+
export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH: '/dsh-tui/v1/connection'
|
|
6
|
+
|
|
7
|
+
export interface TuiChannelEndpointDescriptor {
|
|
8
|
+
readonly apiVersion: typeof TUI_CHANNEL_HTTP_API_VERSION
|
|
9
|
+
readonly kind: typeof TUI_CHANNEL_HTTP_KIND
|
|
10
|
+
readonly origin: string
|
|
11
|
+
readonly connection: typeof TUI_CHANNEL_HTTP_WEBSOCKET_PATH
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function createTuiChannelEndpointDescriptor(origin: string): TuiChannelEndpointDescriptor
|
|
15
|
+
export function validateTuiChannelEndpointDescriptor(value: unknown): TuiChannelEndpointDescriptor
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
export const TUI_CHANNEL_HTTP_API_VERSION = 'tui.dsh/v1alpha1'
|
|
2
|
-
export const TUI_CHANNEL_HTTP_KIND = 'ChannelEndpoint'
|
|
3
|
-
export const TUI_CHANNEL_HTTP_HEALTH_PATH = '/dsh-tui/v1/health'
|
|
4
|
-
export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH = '/dsh-tui/v1/endpoint'
|
|
5
|
-
export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH = '/dsh-tui/v1/connection'
|
|
6
|
-
|
|
7
|
-
export function createTuiChannelEndpointDescriptor(origin) {
|
|
8
|
-
const normalized = new URL(origin)
|
|
9
|
-
if (normalized.protocol !== 'http:' && normalized.protocol !== 'https:') {
|
|
10
|
-
throw new TypeError('TUI Channel endpoint origin must use http or https')
|
|
11
|
-
}
|
|
12
|
-
normalized.pathname = '/'
|
|
13
|
-
normalized.search = ''
|
|
14
|
-
normalized.hash = ''
|
|
15
|
-
return Object.freeze({
|
|
16
|
-
apiVersion: TUI_CHANNEL_HTTP_API_VERSION,
|
|
17
|
-
kind: TUI_CHANNEL_HTTP_KIND,
|
|
18
|
-
origin: normalized.toString().replace(/\/$/u, ''),
|
|
19
|
-
connection: TUI_CHANNEL_HTTP_WEBSOCKET_PATH,
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function validateTuiChannelEndpointDescriptor(value) {
|
|
24
|
-
if (typeof value !== 'object' || value === null || Array.isArray(value)) throw new TypeError('TUI Channel endpoint descriptor must be an object')
|
|
25
|
-
if (value.apiVersion !== TUI_CHANNEL_HTTP_API_VERSION || value.kind !== TUI_CHANNEL_HTTP_KIND) {
|
|
26
|
-
throw new TypeError('TUI Channel endpoint descriptor version or kind is unsupported')
|
|
27
|
-
}
|
|
28
|
-
if (typeof value.origin !== 'string') throw new TypeError('TUI Channel endpoint origin must be a string')
|
|
29
|
-
createTuiChannelEndpointDescriptor(value.origin)
|
|
30
|
-
if (value.connection !== TUI_CHANNEL_HTTP_WEBSOCKET_PATH) throw new TypeError('TUI Channel endpoint connection path is unsupported')
|
|
31
|
-
return value
|
|
32
|
-
}
|
|
1
|
+
export const TUI_CHANNEL_HTTP_API_VERSION = 'tui.dsh/v1alpha1'
|
|
2
|
+
export const TUI_CHANNEL_HTTP_KIND = 'ChannelEndpoint'
|
|
3
|
+
export const TUI_CHANNEL_HTTP_HEALTH_PATH = '/dsh-tui/v1/health'
|
|
4
|
+
export const TUI_CHANNEL_HTTP_DESCRIPTOR_PATH = '/dsh-tui/v1/endpoint'
|
|
5
|
+
export const TUI_CHANNEL_HTTP_WEBSOCKET_PATH = '/dsh-tui/v1/connection'
|
|
6
|
+
|
|
7
|
+
export function createTuiChannelEndpointDescriptor(origin) {
|
|
8
|
+
const normalized = new URL(origin)
|
|
9
|
+
if (normalized.protocol !== 'http:' && normalized.protocol !== 'https:') {
|
|
10
|
+
throw new TypeError('TUI Channel endpoint origin must use http or https')
|
|
11
|
+
}
|
|
12
|
+
normalized.pathname = '/'
|
|
13
|
+
normalized.search = ''
|
|
14
|
+
normalized.hash = ''
|
|
15
|
+
return Object.freeze({
|
|
16
|
+
apiVersion: TUI_CHANNEL_HTTP_API_VERSION,
|
|
17
|
+
kind: TUI_CHANNEL_HTTP_KIND,
|
|
18
|
+
origin: normalized.toString().replace(/\/$/u, ''),
|
|
19
|
+
connection: TUI_CHANNEL_HTTP_WEBSOCKET_PATH,
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function validateTuiChannelEndpointDescriptor(value) {
|
|
24
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) throw new TypeError('TUI Channel endpoint descriptor must be an object')
|
|
25
|
+
if (value.apiVersion !== TUI_CHANNEL_HTTP_API_VERSION || value.kind !== TUI_CHANNEL_HTTP_KIND) {
|
|
26
|
+
throw new TypeError('TUI Channel endpoint descriptor version or kind is unsupported')
|
|
27
|
+
}
|
|
28
|
+
if (typeof value.origin !== 'string') throw new TypeError('TUI Channel endpoint origin must be a string')
|
|
29
|
+
createTuiChannelEndpointDescriptor(value.origin)
|
|
30
|
+
if (value.connection !== TUI_CHANNEL_HTTP_WEBSOCKET_PATH) throw new TypeError('TUI Channel endpoint connection path is unsupported')
|
|
31
|
+
return value
|
|
32
|
+
}
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import type { ApiReference, ProtocolDefinition } from '@dsh-std/core'
|
|
2
|
-
|
|
3
|
-
export type JsonValue = null | boolean | number | string | readonly JsonValue[] | { readonly [key: string]: JsonValue }
|
|
4
|
-
|
|
5
|
-
export const TUI_CHANNEL: Readonly<ApiReference & {
|
|
6
|
-
apiVersion: 'tui.dsh/v1alpha1'
|
|
7
|
-
kind: 'Channel'
|
|
8
|
-
}>
|
|
9
|
-
export const TUI_CHANNEL_WIRE_REVISION: 6
|
|
10
|
-
export const TUI_CHANNEL_FEATURES: readonly string[]
|
|
11
|
-
|
|
12
|
-
export interface TuiChannelRequirementSpec {
|
|
13
|
-
readonly wireRevision: number
|
|
14
|
-
readonly features: readonly string[]
|
|
15
|
-
}
|
|
16
|
-
export interface TuiChannelSupportSpec extends TuiChannelRequirementSpec {}
|
|
17
|
-
|
|
18
|
-
export interface TuiChannelSnapshot {
|
|
19
|
-
readonly wireRevision: number
|
|
20
|
-
readonly channelId: string
|
|
21
|
-
readonly version: number
|
|
22
|
-
readonly state: Readonly<Record<string, JsonValue>>
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface TuiChannelWorkspaceFlowChoice {
|
|
26
|
-
readonly id: string
|
|
27
|
-
readonly label: string
|
|
28
|
-
readonly description?: string
|
|
29
|
-
readonly badge?: string
|
|
30
|
-
readonly action: string
|
|
31
|
-
readonly input?: {
|
|
32
|
-
readonly action: string
|
|
33
|
-
readonly initialValue?: string
|
|
34
|
-
readonly placeholder?: string
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export type TuiChannelWorkspaceFlowResult =
|
|
39
|
-
| { readonly kind: 'target'; readonly target: import('./tui-contributions.js').WorkspaceTarget }
|
|
40
|
-
| { readonly kind: 'choices'; readonly title: string; readonly choices: readonly TuiChannelWorkspaceFlowChoice[] }
|
|
41
|
-
|
|
42
|
-
export type TuiChannelInput =
|
|
43
|
-
| { readonly operation: 'open'; readonly value: { readonly workspace?: string; readonly sessionId?: string; readonly options?: JsonValue } }
|
|
44
|
-
| { readonly operation: 'subscribe'; readonly value: { readonly channelId: string; readonly afterVersion: number } }
|
|
45
|
-
| { readonly operation: 'invoke'; readonly value: { readonly channelId: string; readonly method: string; readonly arguments: readonly JsonValue[] } }
|
|
46
|
-
| { readonly operation: 'close'; readonly value: { readonly channelId: string } }
|
|
47
|
-
|
|
48
|
-
export interface TuiChannelInvokeOutput {
|
|
49
|
-
readonly value: JsonValue
|
|
50
|
-
readonly valueDefined?: boolean
|
|
51
|
-
readonly snapshot?: TuiChannelSnapshot
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const tuiChannelDefinition: ProtocolDefinition
|
|
55
|
-
export function validateTuiChannelRequirement(value: unknown): TuiChannelRequirementSpec
|
|
56
|
-
export function validateTuiChannelSupport(value: unknown): TuiChannelSupportSpec
|
|
57
|
-
export function validateTuiChannelInput(operation: string, value: unknown): object
|
|
58
|
-
export function validateTuiChannelSnapshot(value: unknown): TuiChannelSnapshot
|
|
59
|
-
export function validateTuiChannelOutput(operation: string, value: unknown): object
|
|
1
|
+
import type { ApiReference, ProtocolDefinition } from '@dsh-std/core'
|
|
2
|
+
|
|
3
|
+
export type JsonValue = null | boolean | number | string | readonly JsonValue[] | { readonly [key: string]: JsonValue }
|
|
4
|
+
|
|
5
|
+
export const TUI_CHANNEL: Readonly<ApiReference & {
|
|
6
|
+
apiVersion: 'tui.dsh/v1alpha1'
|
|
7
|
+
kind: 'Channel'
|
|
8
|
+
}>
|
|
9
|
+
export const TUI_CHANNEL_WIRE_REVISION: 6
|
|
10
|
+
export const TUI_CHANNEL_FEATURES: readonly string[]
|
|
11
|
+
|
|
12
|
+
export interface TuiChannelRequirementSpec {
|
|
13
|
+
readonly wireRevision: number
|
|
14
|
+
readonly features: readonly string[]
|
|
15
|
+
}
|
|
16
|
+
export interface TuiChannelSupportSpec extends TuiChannelRequirementSpec {}
|
|
17
|
+
|
|
18
|
+
export interface TuiChannelSnapshot {
|
|
19
|
+
readonly wireRevision: number
|
|
20
|
+
readonly channelId: string
|
|
21
|
+
readonly version: number
|
|
22
|
+
readonly state: Readonly<Record<string, JsonValue>>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface TuiChannelWorkspaceFlowChoice {
|
|
26
|
+
readonly id: string
|
|
27
|
+
readonly label: string
|
|
28
|
+
readonly description?: string
|
|
29
|
+
readonly badge?: string
|
|
30
|
+
readonly action: string
|
|
31
|
+
readonly input?: {
|
|
32
|
+
readonly action: string
|
|
33
|
+
readonly initialValue?: string
|
|
34
|
+
readonly placeholder?: string
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export type TuiChannelWorkspaceFlowResult =
|
|
39
|
+
| { readonly kind: 'target'; readonly target: import('./tui-contributions.js').WorkspaceTarget }
|
|
40
|
+
| { readonly kind: 'choices'; readonly title: string; readonly choices: readonly TuiChannelWorkspaceFlowChoice[] }
|
|
41
|
+
|
|
42
|
+
export type TuiChannelInput =
|
|
43
|
+
| { readonly operation: 'open'; readonly value: { readonly workspace?: string; readonly sessionId?: string; readonly options?: JsonValue } }
|
|
44
|
+
| { readonly operation: 'subscribe'; readonly value: { readonly channelId: string; readonly afterVersion: number } }
|
|
45
|
+
| { readonly operation: 'invoke'; readonly value: { readonly channelId: string; readonly method: string; readonly arguments: readonly JsonValue[] } }
|
|
46
|
+
| { readonly operation: 'close'; readonly value: { readonly channelId: string } }
|
|
47
|
+
|
|
48
|
+
export interface TuiChannelInvokeOutput {
|
|
49
|
+
readonly value: JsonValue
|
|
50
|
+
readonly valueDefined?: boolean
|
|
51
|
+
readonly snapshot?: TuiChannelSnapshot
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const tuiChannelDefinition: ProtocolDefinition
|
|
55
|
+
export function validateTuiChannelRequirement(value: unknown): TuiChannelRequirementSpec
|
|
56
|
+
export function validateTuiChannelSupport(value: unknown): TuiChannelSupportSpec
|
|
57
|
+
export function validateTuiChannelInput(operation: string, value: unknown): object
|
|
58
|
+
export function validateTuiChannelSnapshot(value: unknown): TuiChannelSnapshot
|
|
59
|
+
export function validateTuiChannelOutput(operation: string, value: unknown): object
|