@deepseek-harness-tui/dsh-tui 0.9.0 → 0.9.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/README.md +69 -256
- package/bin/dsh-tui.js +172 -5
- package/cordis.patch.yml +16 -4
- 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/cc/hyperlink.d.ts +7 -1
- package/lib/types/cc/hyperlink.d.ts.map +1 -1
- package/lib/types/cc/hyperlink.js +3 -2
- package/lib/types/cc/markdown.d.ts.map +1 -1
- package/lib/types/cc/markdown.js +33 -3
- package/lib/types/cc/sessionColors.d.ts +27 -0
- package/lib/types/cc/sessionColors.d.ts.map +1 -0
- package/lib/types/cc/sessionColors.js +39 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +6 -0
- package/lib/types/components/AutoRecapRow.d.ts +23 -0
- package/lib/types/components/AutoRecapRow.d.ts.map +1 -0
- package/lib/types/components/AutoRecapRow.js +23 -0
- package/lib/types/components/ColorPicker.d.ts +17 -0
- package/lib/types/components/ColorPicker.d.ts.map +1 -0
- package/lib/types/components/ColorPicker.js +20 -0
- package/lib/types/components/CommandSuggestions.d.ts +3 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.d.ts +33 -0
- package/lib/types/components/ContextBarView.d.ts.map +1 -0
- package/lib/types/components/ContextBarView.js +46 -0
- package/lib/types/components/EffortInputBorder.d.ts +12 -1
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +22 -5
- package/lib/types/components/FileActionsPanel.d.ts +22 -0
- package/lib/types/components/FileActionsPanel.d.ts.map +1 -0
- package/lib/types/components/FileActionsPanel.js +28 -0
- package/lib/types/components/FileSuggestions.d.ts +3 -1
- package/lib/types/components/FileSuggestions.d.ts.map +1 -1
- package/lib/types/components/MessageList.d.ts +3 -1
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +13 -6
- package/lib/types/components/ModelPicker.d.ts +26 -4
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +26 -6
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +365 -57
- package/lib/types/components/RecapPanel.d.ts +25 -0
- package/lib/types/components/RecapPanel.d.ts.map +1 -0
- package/lib/types/components/RecapPanel.js +55 -0
- package/lib/types/components/ScrollbarGutter.d.ts.map +1 -1
- package/lib/types/components/ScrollbarGutter.js +55 -4
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +6 -4
- package/lib/types/components/SuggestionCard.d.ts +4 -2
- package/lib/types/components/SuggestionCard.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.js +9 -2
- package/lib/types/components/design-system/ThemeProvider.d.ts +7 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +2 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +8 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +36 -8
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +7 -3
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +41 -9
- package/lib/types/dsh-adapter/channel.d.ts +101 -2
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +969 -93
- package/lib/types/dsh-adapter/compat/index.d.ts +8 -6
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/index.js +8 -6
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +150 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/sessionLog.js +518 -41
- package/lib/types/dsh-adapter/contract.d.ts +1 -1
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +1 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +1 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.d.ts +10 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +5 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +317 -8
- package/lib/types/dsh-adapter/presets.d.ts +18 -0
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +31 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +29 -1
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +89 -5
- package/lib/types/dsh-adapter/questions.d.ts +19 -2
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +53 -10
- package/lib/types/dsh-adapter/recap.d.ts +49 -0
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -0
- package/lib/types/dsh-adapter/recap.js +121 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts +314 -0
- package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessionTree.js +954 -0
- package/lib/types/dsh-adapter/shortcuts.d.ts +15 -44
- package/lib/types/dsh-adapter/shortcuts.d.ts.map +1 -1
- package/lib/types/dsh-adapter/shortcuts.js +28 -165
- package/lib/types/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- package/lib/types/herdr.js +1 -1
- package/lib/types/i18n.d.ts +604 -176
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +206 -72
- package/lib/types/ink/log-update.d.ts.map +1 -1
- package/lib/types/ink/log-update.js +21 -0
- package/lib/types/migrationPrefs.d.ts +60 -0
- package/lib/types/migrationPrefs.d.ts.map +1 -0
- package/lib/types/migrationPrefs.js +97 -0
- package/lib/types/modelGroups.d.ts +72 -0
- package/lib/types/modelGroups.d.ts.map +1 -0
- package/lib/types/modelGroups.js +97 -0
- package/lib/types/modelRecents.d.ts +39 -0
- package/lib/types/modelRecents.d.ts.map +1 -0
- package/lib/types/modelRecents.js +97 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts +11 -0
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +31 -1
- package/lib/types/oauth.d.ts +15 -0
- package/lib/types/oauth.d.ts.map +1 -0
- package/lib/types/oauth.js +14 -0
- package/lib/types/plugin-spec/registry.d.ts +1 -1
- package/lib/types/plugin-spec/registry.js +1 -1
- package/lib/types/reload.d.ts +109 -0
- package/lib/types/reload.d.ts.map +1 -0
- package/lib/types/reload.js +118 -0
- package/lib/types/screens/Chat.d.ts +3 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +588 -64
- package/lib/types/screens/SessionTree.d.ts +27 -0
- package/lib/types/screens/SessionTree.d.ts.map +1 -0
- package/lib/types/screens/SessionTree.js +555 -0
- package/lib/types/screens/StatusLine.d.ts +0 -9
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +215 -52
- package/lib/types/screens/StatusMetrics.d.ts +35 -3
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +63 -8
- package/lib/types/screens/chatOverlay.d.ts +17 -1
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +3 -1
- package/lib/types/tips.d.ts.map +1 -1
- package/lib/types/tips.js +22 -4
- package/lib/types/update.d.ts +159 -0
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +496 -30
- package/lib/types/utils/debug.d.ts +1 -1
- package/lib/types/utils/debug.js +3 -3
- package/lib/types/utils/fileTarget.d.ts +46 -0
- package/lib/types/utils/fileTarget.d.ts.map +1 -0
- package/lib/types/utils/fileTarget.js +178 -0
- package/lib/types/utils/keymap.d.ts +134 -0
- package/lib/types/utils/keymap.d.ts.map +1 -0
- package/lib/types/utils/keymap.js +311 -0
- package/lib/types/utils/mentions.d.ts +25 -2
- package/lib/types/utils/mentions.d.ts.map +1 -1
- package/lib/types/utils/mentions.js +69 -10
- package/lib/types/utils/openExternal.d.ts +50 -0
- package/lib/types/utils/openExternal.d.ts.map +1 -0
- package/lib/types/utils/openExternal.js +170 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +140 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +11 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.d.ts +14 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/command.js +67 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.d.ts +64 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/credentials.js +170 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.d.ts +79 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/index.js +196 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.d.ts +68 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +193 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.d.ts +32 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/opener.js +101 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.d.ts +31 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/profiles.js +68 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.d.ts +69 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/service.js +129 -0
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +70 -0
- 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 +17 -5
- package/presets/liangshen/.dsh-tui-managed.json +1 -1
- package/presets/liangshen/instruction-hint.mjs +8 -0
- 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
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session family tree — the model behind the /tree screen
|
|
3
|
+
* (pi's Session Tree ported to DSH's cross-session fork model).
|
|
4
|
+
*
|
|
5
|
+
* DSH sessions are linear event logs; a rewind forks a NEW session whose
|
|
6
|
+
* header records `parentSession` + `seedLength` (the inherited prefix). The
|
|
7
|
+
* tree stitches the whole family back together: each session contributes its
|
|
8
|
+
* OWN entries (events at seq >= seedLength when the parent is known), a fork
|
|
9
|
+
* attaches at the parent's last entry with seq <= seedLength-1, and the
|
|
10
|
+
* parent's own tail past that point is the abandoned "main" branch.
|
|
11
|
+
*
|
|
12
|
+
* Pure module: no Ink, no channel state — channel.ts gathers the logs, this
|
|
13
|
+
* file shapes them. Rendering lives in screens/SessionTree.tsx.
|
|
14
|
+
*
|
|
15
|
+
* @module @deepseek-harness-tui/dsh-tui/sessionTree
|
|
16
|
+
*/
|
|
17
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
18
|
+
/** Displayable entry kinds (a subset of ChatRow kinds, plus fork structure). */
|
|
19
|
+
export type TreeEntryKind = 'user' | 'assistant' | 'tool' | 'compact' | 'interrupt' | 'notice';
|
|
20
|
+
/** Filter modes cycled in the tree screen (pi parity, minus labels). */
|
|
21
|
+
export type TreeFilter = 'default' | 'no-tools' | 'user-only' | 'all';
|
|
22
|
+
export declare const TREE_FILTERS: readonly TreeFilter[];
|
|
23
|
+
/** One displayable log entry; identity = (sessionId, seq). */
|
|
24
|
+
export interface TreeEntry {
|
|
25
|
+
readonly sessionId: string;
|
|
26
|
+
/** Source event seq inside that session's log (the fork anchor). */
|
|
27
|
+
readonly seq: number;
|
|
28
|
+
readonly kind: TreeEntryKind;
|
|
29
|
+
/** One-line preview (whitespace folded, capped). */
|
|
30
|
+
readonly text: string;
|
|
31
|
+
/** Uncapped searchable text (kind + tool name + content). */
|
|
32
|
+
readonly searchText: string;
|
|
33
|
+
/** Event wall-clock time. */
|
|
34
|
+
readonly time: number;
|
|
35
|
+
/** Tool outcome for kind 'tool' (settled by tool/result during extraction). */
|
|
36
|
+
readonly toolStatus?: 'running' | 'ok' | 'error';
|
|
37
|
+
/** Extra marker (e.g. `aborted` for chunk-only assistant text). */
|
|
38
|
+
readonly label?: string;
|
|
39
|
+
/** True on entries of the log's OWN first turn (a complete log's turn 0).
|
|
40
|
+
* Only USER entries among them are unrewindable (dropping turn 0 needs
|
|
41
|
+
* boundary -1, "cannot rewind to the very first message"), so the screen
|
|
42
|
+
* refuses those up front instead of failing at confirm time; non-user
|
|
43
|
+
* turn-0 entries rewind fine (a mid-turn cut at their step's step/end, or
|
|
44
|
+
* turn 0's closing turn/end). Never set on a truncated tail: its first
|
|
45
|
+
* VISIBLE turn rewinds fine against the full log, which is where
|
|
46
|
+
* rewindToNode computes boundaries. */
|
|
47
|
+
readonly firstTurn?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/** One family member's log, as channel.buildSessionTree gathered it. */
|
|
50
|
+
export interface FamilySession {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly createdAt: number;
|
|
53
|
+
readonly parentSession?: string;
|
|
54
|
+
readonly seedLength?: number;
|
|
55
|
+
/** This log's events (inherited seed prefix + own events), in log order.
|
|
56
|
+
* A coverage-skipped read starts at the first seq no ancestor displays —
|
|
57
|
+
* possibly mid-log — with only rare session/title events below the
|
|
58
|
+
* cutoff. Never trust events[0].seq === 0. */
|
|
59
|
+
readonly events: readonly SessionEvent[];
|
|
60
|
+
/** True for the live session (events from memory, not persistence). */
|
|
61
|
+
readonly live: boolean;
|
|
62
|
+
/** True when the log could not be read — structure-only node, no entries. */
|
|
63
|
+
readonly unreadable?: boolean;
|
|
64
|
+
/** True when the log was never read because the tree's event/scan budget
|
|
65
|
+
* was already spent — structure-only placeholder, distinct from
|
|
66
|
+
* unreadable (the log is fine; the browse budget is not). */
|
|
67
|
+
readonly unloaded?: boolean;
|
|
68
|
+
/** True when `events` reaches the log's tip. Live memory logs always
|
|
69
|
+
* qualify (the tail window trims the HEAD only); bounded reads of dead
|
|
70
|
+
* branches slice the tail off when the event budget runs out. The
|
|
71
|
+
* branch-adopt target (tipBoundary) and the drop-turn confirm warning are
|
|
72
|
+
* only safe to derive when this holds — otherwise the unseen tail could
|
|
73
|
+
* hold content the UX claims does not exist. */
|
|
74
|
+
readonly tailComplete?: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface TreeNode {
|
|
77
|
+
/** `${sessionId}:${seq}`, or `${sessionId}:head` for a placeholder. */
|
|
78
|
+
readonly id: string;
|
|
79
|
+
/** Null only on a session's placeholder node (empty fork / unreadable log). */
|
|
80
|
+
readonly entry: TreeEntry | null;
|
|
81
|
+
/** Session whose chain this node belongs to. */
|
|
82
|
+
readonly sessionId: string;
|
|
83
|
+
/** True on a session chain's first node (renders the fork/session marker). */
|
|
84
|
+
branchHead: boolean;
|
|
85
|
+
children: TreeNode[];
|
|
86
|
+
}
|
|
87
|
+
export interface SessionTreeData {
|
|
88
|
+
readonly roots: readonly TreeNode[];
|
|
89
|
+
/** Node ids on the path from the family root to the live tip (`•` marker). */
|
|
90
|
+
readonly activePath: ReadonlySet<string>;
|
|
91
|
+
/** Live session's last node (initial cursor target). */
|
|
92
|
+
readonly activeLeafId: string | null;
|
|
93
|
+
/** Per-session display facts (branch-head labels in the screen). */
|
|
94
|
+
readonly sessions: ReadonlyMap<string, SessionTreeMeta>;
|
|
95
|
+
/** Per-session rewind UX facts (drop-turn warning, branch-adopt target). */
|
|
96
|
+
readonly rewindFacts: ReadonlyMap<string, SessionRewindFacts>;
|
|
97
|
+
/** True when the family exceeded a cap and distant branches were dropped. */
|
|
98
|
+
readonly truncated: boolean;
|
|
99
|
+
readonly sessionCount: number;
|
|
100
|
+
}
|
|
101
|
+
/** One own turn of a session, as far as the loaded events show it. */
|
|
102
|
+
export interface TurnRange {
|
|
103
|
+
/** turn/start seq. */
|
|
104
|
+
readonly start: number;
|
|
105
|
+
/** turn/end seq, or the last loaded event's seq while the turn is open. */
|
|
106
|
+
readonly end: number;
|
|
107
|
+
/** Displayable own entries inside (start, end]. */
|
|
108
|
+
readonly entries: number;
|
|
109
|
+
/** The turn/end was seen (an open turn's end is only the loaded tail). */
|
|
110
|
+
readonly closed: boolean;
|
|
111
|
+
}
|
|
112
|
+
/** Per-session rewind UX facts, derived from the loaded events at build time. */
|
|
113
|
+
export interface SessionRewindFacts {
|
|
114
|
+
/** Own turns in seq order. A turn whose start was trimmed away (coverage /
|
|
115
|
+
* budget head cut) has no range — its entries find no match and the
|
|
116
|
+
* confirm UX stays silent rather than guessing. */
|
|
117
|
+
readonly turns: readonly TurnRange[];
|
|
118
|
+
/** Own entries displayed for this session. */
|
|
119
|
+
readonly ownEntries: number;
|
|
120
|
+
/** The loaded events reach the log tip (see FamilySession.tailComplete). */
|
|
121
|
+
readonly tailComplete: boolean;
|
|
122
|
+
/** Adopt-this-branch fork target: the log's last turn/end seq. Only set
|
|
123
|
+
* when tailComplete holds and a closed turn exists — a tail-cut read's
|
|
124
|
+
* last turn/end is NOT the branch tip, and forking there would silently
|
|
125
|
+
* drop the unseen tail the user means to keep. */
|
|
126
|
+
readonly tipBoundary?: number;
|
|
127
|
+
}
|
|
128
|
+
/** What dropping a user-message pick's turn removes (the confirm warning). */
|
|
129
|
+
export interface DropTurnInfo {
|
|
130
|
+
/** Own entries of the session inside the dropped turn. */
|
|
131
|
+
readonly droppedEntries: number;
|
|
132
|
+
/** Every own entry of the session sits inside the dropped turn, and the
|
|
133
|
+
* loaded log reaches the tip — so the fork will show NONE of this
|
|
134
|
+
* branch's own content. (The user's "click the branch message → lose the
|
|
135
|
+
* whole branch" trap: a branch whose own content is one turn.) */
|
|
136
|
+
readonly coversBranch: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Confirm-time preview for a USER-message pick: how much of its branch the
|
|
140
|
+
* drop removes. Undefined for non-user entries (they keep through their
|
|
141
|
+
* step) and whenever the turn cannot be located in the loaded events.
|
|
142
|
+
*/
|
|
143
|
+
export declare function droppedTurnInfo(data: SessionTreeData, entry: TreeEntry): DropTurnInfo | undefined;
|
|
144
|
+
export interface SessionTreeMeta {
|
|
145
|
+
readonly title?: string;
|
|
146
|
+
readonly createdAt: number;
|
|
147
|
+
readonly live: boolean;
|
|
148
|
+
readonly unreadable: boolean;
|
|
149
|
+
/** Log unread because the browse budget was spent (placeholder node). */
|
|
150
|
+
readonly unloaded: boolean;
|
|
151
|
+
}
|
|
152
|
+
/** One flattened, render-ready row with its tree-drawing geometry. */
|
|
153
|
+
export interface FlatNode {
|
|
154
|
+
readonly node: TreeNode;
|
|
155
|
+
/** Tree-parent node id (null for roots) — cursor preservation walks this.
|
|
156
|
+
* Set by flattenTree and NEVER rewritten by filterTree (rows are shared
|
|
157
|
+
* across filter passes; a rewritten hop would skip ancestors). */
|
|
158
|
+
readonly parentId: string | null;
|
|
159
|
+
/** Indentation level (each level = 3 chars), pi's rules. */
|
|
160
|
+
indent: number;
|
|
161
|
+
/** Whether to draw a connector (├─/└─) — parent has multiple children. */
|
|
162
|
+
showConnector: boolean;
|
|
163
|
+
/** Under a connector: true = last sibling (└─). */
|
|
164
|
+
isLast: boolean;
|
|
165
|
+
/** Ancestor branch points: position (indent level) + whether │ continues. */
|
|
166
|
+
gutters: readonly GutterInfo[];
|
|
167
|
+
/** Root under a virtual branching root (multiple roots). */
|
|
168
|
+
isVirtualRootChild: boolean;
|
|
169
|
+
/** True when this pass produced multiple roots (screen shifts display). */
|
|
170
|
+
multipleRoots: boolean;
|
|
171
|
+
}
|
|
172
|
+
export interface GutterInfo {
|
|
173
|
+
position: number;
|
|
174
|
+
show: boolean;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Coalesce runs of same-type assistant/chunk deltas into single synthetic
|
|
178
|
+
* events for REPLAY only. A streamed turn logs one event per token (~100k
|
|
179
|
+
* events in long sessions); replaying them one at a time costs per-chunk
|
|
180
|
+
* string growth on every row (quadratic in the turn's length). Merging is
|
|
181
|
+
* outcome-identical: ensureStreaming/ensureReasoning only read chunk.type
|
|
182
|
+
* and the concatenated text, and the row's seq comes from the run's FIRST
|
|
183
|
+
* chunk (the fork boundary rewindToNode derives from it). Parts join once —
|
|
184
|
+
* no quadratic concat. Live events never go through this.
|
|
185
|
+
*
|
|
186
|
+
* (Moved from channel.ts: the transcript replay and the tree extraction
|
|
187
|
+
* share it.)
|
|
188
|
+
*/
|
|
189
|
+
export declare function coalesceReplayEvents(events: readonly SessionEvent[]): SessionEvent[];
|
|
190
|
+
/**
|
|
191
|
+
* Fork boundary for rewinding to the entry at `seq`: the seq just before its
|
|
192
|
+
* enclosing turn/start (DSH logs `turn/start → user/message → … → turn/end`,
|
|
193
|
+
* so a message's own seq sits inside an open turn and fork would reject it).
|
|
194
|
+
* This is the DROP-THE-TURN boundary — used for user messages (the turn is
|
|
195
|
+
* dropped, its prompt returns to the input) and as the fallback for entries
|
|
196
|
+
* of a still-open turn. Falls back to `seq` itself when no enclosing
|
|
197
|
+
* turn/start exists (bookkeeping between turns).
|
|
198
|
+
*/
|
|
199
|
+
export declare function turnBoundary(events: readonly SessionEvent[], seq: number): number;
|
|
200
|
+
/** Where rewinding to a tree entry lands — see rewindTarget. */
|
|
201
|
+
export interface RewindTarget {
|
|
202
|
+
/** Inclusive seed boundary (a seq into the FULL contiguous log). */
|
|
203
|
+
readonly boundary: number;
|
|
204
|
+
/**
|
|
205
|
+
* Set when the boundary cuts a turn in the middle: the fork must append a
|
|
206
|
+
* synthetic turn/end for this turn number (the exact shape a real user
|
|
207
|
+
* interrupt writes — the persistence layer closes crash-orphaned turns the
|
|
208
|
+
* same way). Undefined when the seed already ends turn-closed.
|
|
209
|
+
*/
|
|
210
|
+
readonly closeTurn?: number;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Rewind target for a tree entry — pi's navigateTree semantics mapped onto
|
|
214
|
+
* DSH's turn-closed fork constraint (the seed must not end inside an open
|
|
215
|
+
* turn). Callers must pass the FULL session log (seq === array index).
|
|
216
|
+
*
|
|
217
|
+
* - user message → DROP its turn: the seq just before the enclosing
|
|
218
|
+
* turn/start (turnBoundary); the turn's prompt returns to the input for
|
|
219
|
+
* re-editing. -1 when that turn is the log's own first turn.
|
|
220
|
+
* - any other entry inside a CLOSED turn (assistant/tool/notice/interrupt)
|
|
221
|
+
* → KEEP through the entry's enclosing STEP: the boundary is that step's
|
|
222
|
+
* step/end, with closeTurn set. DSH agentic turns are marathons (one
|
|
223
|
+
* prompt → N steps → thousands of events), so turn-granular keeping is
|
|
224
|
+
* useless mid-turn — picking a bash call of step 2 in a 6-step turn must
|
|
225
|
+
* not retain steps 3-6. The step is the finest SAFE cut: a step closes
|
|
226
|
+
* with every tool call answered, so the replayed context never dangles a
|
|
227
|
+
* tool_call the API would reject. When no step/end follows the entry
|
|
228
|
+
* inside its turn (no-step turns, or the entry sits past the last step),
|
|
229
|
+
* the boundary is the turn/end as before (no closeTurn).
|
|
230
|
+
* - entry between turns (a compact checkpoint) → its own seq.
|
|
231
|
+
* - entry inside the still-OPEN last turn → a closed step ahead of it is
|
|
232
|
+
* still a valid mid-turn cut (closeTurn set; the open tail drops); with no
|
|
233
|
+
* step/end ahead the turn cannot be kept at all, so it falls back to
|
|
234
|
+
* dropping the turn (turnBoundary) and restoring its prompt.
|
|
235
|
+
*/
|
|
236
|
+
export declare function rewindTarget(events: readonly SessionEvent[], seq: number): RewindTarget;
|
|
237
|
+
/**
|
|
238
|
+
* Fork target for a tree entry — pi's `/fork` semantics: the picked entry is
|
|
239
|
+
* KEPT (a fork branches the conversation; it does not re-edit the past).
|
|
240
|
+
*
|
|
241
|
+
* - user message → keep THROUGH the message itself: the boundary is the
|
|
242
|
+
* entry's own seq and the turn's reply drops. The cut ends inside the
|
|
243
|
+
* still-open turn, so closeTurn carries the enclosing turn's number for
|
|
244
|
+
* the synthetic turn/end (the same shape a real interrupt writes). A
|
|
245
|
+
* between-turns plugin message (a compact checkpoint) is already
|
|
246
|
+
* turn-closed — no closer.
|
|
247
|
+
* - any other entry → identical to rewindTarget (keep through the
|
|
248
|
+
* entry's enclosing step / turn end).
|
|
249
|
+
*
|
|
250
|
+
* Unlike a rewind pick, a turn-0 user message forks fine (boundary = its own
|
|
251
|
+
* seq, never -1), and nothing returns to the input for re-editing.
|
|
252
|
+
*/
|
|
253
|
+
export declare function forkTarget(events: readonly SessionEvent[], seq: number): RewindTarget;
|
|
254
|
+
/**
|
|
255
|
+
* Tail window of an over-budget LIVE session's events, aligned to whole
|
|
256
|
+
* turns. Recent turns are the likely rewind targets, so the budget keeps
|
|
257
|
+
* the tail — but a slice can open mid-turn, and entries of a partial turn
|
|
258
|
+
* make broken rows: when that partial turn is the log's OWN first turn its
|
|
259
|
+
* rewind boundary is -1 ("cannot rewind to the very first message"), yet
|
|
260
|
+
* the slice hides the turn/start@0 that firstTurn marking keys on — the
|
|
261
|
+
* row would confirm and then fail inside rewindToNode. So: align to the
|
|
262
|
+
* first whole turn inside the window. When the window holds no turn/start
|
|
263
|
+
* at all, the log's LAST turn alone overflows the budget — retry over the
|
|
264
|
+
* log before that turn: its earlier complete turns are perfectly good
|
|
265
|
+
* rewind targets and must not vanish behind one giant turn. Only when the
|
|
266
|
+
* oversized turn IS the log's own first turn does the window drop to empty
|
|
267
|
+
* — no complete turn in view means no safe rewind target to show. Entries
|
|
268
|
+
* dropped here stay rewindable through the real session; the slice only
|
|
269
|
+
* narrows what the tree displays.
|
|
270
|
+
*/
|
|
271
|
+
export declare function liveTailWindow(events: readonly SessionEvent[], remaining: number): readonly SessionEvent[];
|
|
272
|
+
/** The turn's first human-typed text (the prompt rewind restores for editing). */
|
|
273
|
+
export declare function turnUserText(events: readonly SessionEvent[], seq: number): string;
|
|
274
|
+
/**
|
|
275
|
+
* One session's displayable entries, in seq order. Mirrors renderEvent's
|
|
276
|
+
* choices (channel.ts): human user messages only, compaction checkpoints as
|
|
277
|
+
* compact rows, assistant text (chunk-only text from aborted turns kept with
|
|
278
|
+
* an `aborted` label), tool cards minus ask_user_question, interrupts and
|
|
279
|
+
* failed turns. Bookkeeping events (turn/step markers, titles, requests,
|
|
280
|
+
* `session/end-seed`, activity frames…) never become entries.
|
|
281
|
+
*/
|
|
282
|
+
export declare function extractEntries(sessionId: string, events: readonly SessionEvent[]): TreeEntry[];
|
|
283
|
+
/**
|
|
284
|
+
* Assemble the family tree. Roots are sessions with no parentSession (or a
|
|
285
|
+
* parent missing from the family — a deleted log; the orphan's self-contained
|
|
286
|
+
* prefix keeps its history whole). Fork chains attach at the last entry with
|
|
287
|
+
* seq <= seedLength-1, walking UP the ancestor chain when the direct parent
|
|
288
|
+
* no longer displays that entry (seed-prefix trimming — the fork point lives
|
|
289
|
+
* in the shared prefix an ancestor shows); the anchored session's own tail
|
|
290
|
+
* past the anchor stays the first (main) branch. Sessions with no own
|
|
291
|
+
* entries get one placeholder node so the fork structure stays visible.
|
|
292
|
+
*/
|
|
293
|
+
export declare function buildSessionTree(sessions: readonly FamilySession[], liveSessionId: string, truncated?: boolean): SessionTreeData;
|
|
294
|
+
/**
|
|
295
|
+
* Flatten the tree into render rows, pi-style: the subtree containing the
|
|
296
|
+
* active leaf sorts first at every branch point; single-child chains keep
|
|
297
|
+
* their indent, branch points indent +1 (plus the first generation after a
|
|
298
|
+
* branch); gutters record where ancestor │ lines continue.
|
|
299
|
+
*/
|
|
300
|
+
export declare function flattenTree(roots: readonly TreeNode[], activeLeafId: string | null): FlatNode[];
|
|
301
|
+
/**
|
|
302
|
+
* Filter + search the flattened tree, then recompute the tree drawing over
|
|
303
|
+
* the visible rows (each visible node re-hangs under its nearest visible
|
|
304
|
+
* ancestor, so hidden intermediates don't drift the indent). The active leaf
|
|
305
|
+
* always survives filtering (pi keeps the current position visible).
|
|
306
|
+
*/
|
|
307
|
+
export declare function filterTree(flat: readonly FlatNode[], activeLeafId: string | null, filter: TreeFilter, query: string): FlatNode[];
|
|
308
|
+
/**
|
|
309
|
+
* Index of `targetId` in `visible`, walking the FULL list's parent chain when
|
|
310
|
+
* the exact node was filtered out; falls back to the last visible row
|
|
311
|
+
* (pi's findNearestVisibleIndex).
|
|
312
|
+
*/
|
|
313
|
+
export declare function nearestVisibleIndex(visible: readonly FlatNode[], full: readonly FlatNode[], targetId: string | null): number;
|
|
314
|
+
//# sourceMappingURL=sessionTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTree.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/sessionTree.ts"],"names":[],"mappings":"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"}
|