@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
|
@@ -319,6 +319,27 @@ export class LogUpdate {
|
|
|
319
319
|
if (linesToClear > prev.viewport.height) {
|
|
320
320
|
return fullResetSequence_CAUSES_FLICKER(next, 'offscreen', this.options.stylePool);
|
|
321
321
|
}
|
|
322
|
+
// Record the scrollback rows stranded by this shrink. The terminal's
|
|
323
|
+
// scrollback cannot shrink with the content: rows that were above the
|
|
324
|
+
// viewport BEFORE the shrink stay there after it, but the heights
|
|
325
|
+
// formula below (height - viewport + cursorRestoreScroll) recomputes
|
|
326
|
+
// scrollback from the SMALLER next height on every following frame and
|
|
327
|
+
// undercounts by the shrink delta. Those frames then treat a
|
|
328
|
+
// scrolled-away row as reachable, the cursor-up move clamps at the
|
|
329
|
+
// viewport top, and the whole relative write chain lands one row low —
|
|
330
|
+
// stale duplicate rows and torn leading cells that no later sparse
|
|
331
|
+
// diff ever repairs (verify-trace-scene settle-gap flake). The
|
|
332
|
+
// shrink-to-below-viewport branch above already records this via
|
|
333
|
+
// shrinkAnchoredRepaint; this ordinary-diff shrink path must record it
|
|
334
|
+
// too. viewportY takes max(anchoredPad, heights formula), so the pad
|
|
335
|
+
// naturally hands back to the formula once growth scrolls the gap away.
|
|
336
|
+
if (!altScreen) {
|
|
337
|
+
const strandedScrollback = Math.max(0, prev.screen.height - prev.viewport.height) +
|
|
338
|
+
cursorRestoreScroll;
|
|
339
|
+
if (strandedScrollback > this.state.anchoredPad) {
|
|
340
|
+
this.state.anchoredPad = strandedScrollback;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
322
343
|
// clear(N) moves cursor UP by N-1 lines and to column 0
|
|
323
344
|
// This puts us at line prev.screen.height - N = next.screen.height
|
|
324
345
|
// But we want to be at next.screen.height - 1 (bottom of new screen)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time local migrations (`~/.dsh-tui/migrations.json`), keyed by stable
|
|
3
|
+
* migration id → ISO timestamp. Named keys (not a bare flag) so later
|
|
4
|
+
* migrations can append entries without a format change. Best-effort like
|
|
5
|
+
* every prefs file: a missing/corrupt file reads as "nothing applied yet",
|
|
6
|
+
* and a failed write simply leaves the migration to retry on a later boot.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The fullscreen factory-default flip (schema + `cordis.patch.yml`, 0.9.x):
|
|
10
|
+
* a `fullscreen: false` pinned in the settings user layer BEFORE the flip
|
|
11
|
+
* keeps overriding the new default on every boot. The first boot past this
|
|
12
|
+
* migration clears that stale explicit choice once — see
|
|
13
|
+
* {@link planFullscreenFactoryMigration} for the decision table.
|
|
14
|
+
*/
|
|
15
|
+
export declare const FULLSCREEN_FACTORY_MIGRATION = "fullscreen-factory-default";
|
|
16
|
+
/**
|
|
17
|
+
* Read the applied-migration map.
|
|
18
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
19
|
+
* @returns Parsed migration map; empty on any read/parse failure.
|
|
20
|
+
*/
|
|
21
|
+
export declare function readAppliedMigrations(dir?: string): Readonly<Record<string, unknown>>;
|
|
22
|
+
/**
|
|
23
|
+
* Record a migration as applied (merge write — other keys are never dropped).
|
|
24
|
+
* @param id - Migration id.
|
|
25
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
26
|
+
* @returns True when the file was written, false on failure.
|
|
27
|
+
*/
|
|
28
|
+
export declare function markMigrationApplied(id: string, dir?: string): boolean;
|
|
29
|
+
/** What this boot should do about the fullscreen factory-default flip. */
|
|
30
|
+
export type FullscreenFactoryPlan = 'unset' | 'mark' | 'done';
|
|
31
|
+
/**
|
|
32
|
+
* Decide the migration step from the settings scope's RESOLVED fullscreen
|
|
33
|
+
* value. The dsh-tui namespace declares no schema default and no `base`
|
|
34
|
+
* layer for `fullscreen`, so a resolved `false` can only come from the user
|
|
35
|
+
* layer — the pre-flip explicit choice this migration exists to clear:
|
|
36
|
+
* - `done` — marker present: never touch the user layer again, so a
|
|
37
|
+
* `false` written AFTER the migration (a deliberate /settings choice)
|
|
38
|
+
* always stands;
|
|
39
|
+
* - `unset` — stale pre-flip explicit `false`: the caller clears it via a
|
|
40
|
+
* settings `unset` op and boots fullscreen regardless — the doc write
|
|
41
|
+
* is async and must not race the synchronous boot decision, so the
|
|
42
|
+
* caller shadows the stale value out of its first settings apply;
|
|
43
|
+
* - `mark` — nothing to clear (unset or already `true`): record the
|
|
44
|
+
* marker now so a `false` set later is never mistaken for a stale one.
|
|
45
|
+
*/
|
|
46
|
+
export declare function planFullscreenFactoryMigration(resolvedFullscreen: unknown, migrations: Readonly<Record<string, unknown>>): FullscreenFactoryPlan;
|
|
47
|
+
/**
|
|
48
|
+
* Persist the plan's side effects. For `unset` the marker lands only after
|
|
49
|
+
* the doc write succeeds — a failed write stays unmarked and the next boot
|
|
50
|
+
* retries (that boot already ran fullscreen off the shadowed value).
|
|
51
|
+
* Never rejects.
|
|
52
|
+
* @param plan - Decision from {@link planFullscreenFactoryMigration}.
|
|
53
|
+
* @param options - `unset` thunk issuing the settings write; `dir` injects
|
|
54
|
+
* the prefs directory for tests.
|
|
55
|
+
*/
|
|
56
|
+
export declare function commitFullscreenFactoryMigration(plan: FullscreenFactoryPlan, options: {
|
|
57
|
+
unset: () => Promise<void>;
|
|
58
|
+
dir?: string;
|
|
59
|
+
}): Promise<void>;
|
|
60
|
+
//# sourceMappingURL=migrationPrefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrationPrefs.d.ts","sourceRoot":"","sources":["../../src/migrationPrefs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,+BAA+B,CAAA;AAExE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQhG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CASjF;AAED,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC5C,kBAAkB,EAAE,OAAO,EAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC5C,qBAAqB,CAGvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time local migrations (`~/.dsh-tui/migrations.json`), keyed by stable
|
|
3
|
+
* migration id → ISO timestamp. Named keys (not a bare flag) so later
|
|
4
|
+
* migrations can append entries without a format change. Best-effort like
|
|
5
|
+
* every prefs file: a missing/corrupt file reads as "nothing applied yet",
|
|
6
|
+
* and a failed write simply leaves the migration to retry on a later boot.
|
|
7
|
+
*/
|
|
8
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { DATA_DIR } from './utils/paths.js';
|
|
11
|
+
const PREFS_DIR = DATA_DIR;
|
|
12
|
+
const MIGRATIONS_FILE = 'migrations.json';
|
|
13
|
+
/**
|
|
14
|
+
* The fullscreen factory-default flip (schema + `cordis.patch.yml`, 0.9.x):
|
|
15
|
+
* a `fullscreen: false` pinned in the settings user layer BEFORE the flip
|
|
16
|
+
* keeps overriding the new default on every boot. The first boot past this
|
|
17
|
+
* migration clears that stale explicit choice once — see
|
|
18
|
+
* {@link planFullscreenFactoryMigration} for the decision table.
|
|
19
|
+
*/
|
|
20
|
+
export const FULLSCREEN_FACTORY_MIGRATION = 'fullscreen-factory-default';
|
|
21
|
+
/**
|
|
22
|
+
* Read the applied-migration map.
|
|
23
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
24
|
+
* @returns Parsed migration map; empty on any read/parse failure.
|
|
25
|
+
*/
|
|
26
|
+
export function readAppliedMigrations(dir = PREFS_DIR) {
|
|
27
|
+
try {
|
|
28
|
+
const parsed = JSON.parse(readFileSync(join(dir, MIGRATIONS_FILE), 'utf8'));
|
|
29
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
30
|
+
return {};
|
|
31
|
+
return parsed;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Record a migration as applied (merge write — other keys are never dropped).
|
|
39
|
+
* @param id - Migration id.
|
|
40
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
41
|
+
* @returns True when the file was written, false on failure.
|
|
42
|
+
*/
|
|
43
|
+
export function markMigrationApplied(id, dir = PREFS_DIR) {
|
|
44
|
+
try {
|
|
45
|
+
const current = readAppliedMigrations(dir);
|
|
46
|
+
mkdirSync(dir, { recursive: true });
|
|
47
|
+
writeFileSync(join(dir, MIGRATIONS_FILE), JSON.stringify({ ...current, [id]: new Date().toISOString() }, null, 2));
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Decide the migration step from the settings scope's RESOLVED fullscreen
|
|
56
|
+
* value. The dsh-tui namespace declares no schema default and no `base`
|
|
57
|
+
* layer for `fullscreen`, so a resolved `false` can only come from the user
|
|
58
|
+
* layer — the pre-flip explicit choice this migration exists to clear:
|
|
59
|
+
* - `done` — marker present: never touch the user layer again, so a
|
|
60
|
+
* `false` written AFTER the migration (a deliberate /settings choice)
|
|
61
|
+
* always stands;
|
|
62
|
+
* - `unset` — stale pre-flip explicit `false`: the caller clears it via a
|
|
63
|
+
* settings `unset` op and boots fullscreen regardless — the doc write
|
|
64
|
+
* is async and must not race the synchronous boot decision, so the
|
|
65
|
+
* caller shadows the stale value out of its first settings apply;
|
|
66
|
+
* - `mark` — nothing to clear (unset or already `true`): record the
|
|
67
|
+
* marker now so a `false` set later is never mistaken for a stale one.
|
|
68
|
+
*/
|
|
69
|
+
export function planFullscreenFactoryMigration(resolvedFullscreen, migrations) {
|
|
70
|
+
if (migrations[FULLSCREEN_FACTORY_MIGRATION] !== undefined)
|
|
71
|
+
return 'done';
|
|
72
|
+
return resolvedFullscreen === false ? 'unset' : 'mark';
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Persist the plan's side effects. For `unset` the marker lands only after
|
|
76
|
+
* the doc write succeeds — a failed write stays unmarked and the next boot
|
|
77
|
+
* retries (that boot already ran fullscreen off the shadowed value).
|
|
78
|
+
* Never rejects.
|
|
79
|
+
* @param plan - Decision from {@link planFullscreenFactoryMigration}.
|
|
80
|
+
* @param options - `unset` thunk issuing the settings write; `dir` injects
|
|
81
|
+
* the prefs directory for tests.
|
|
82
|
+
*/
|
|
83
|
+
export async function commitFullscreenFactoryMigration(plan, options) {
|
|
84
|
+
if (plan === 'done')
|
|
85
|
+
return;
|
|
86
|
+
if (plan === 'mark') {
|
|
87
|
+
markMigrationApplied(FULLSCREEN_FACTORY_MIGRATION, options.dir);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
await options.unset();
|
|
92
|
+
markMigrationApplied(FULLSCREEN_FACTORY_MIGRATION, options.dir);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Unmarked on purpose: retried next boot.
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure derivation for the two-level `/model` picker: providers as top-level
|
|
3
|
+
* groups, their models one level down, with a pinned "recently used"
|
|
4
|
+
* pseudo-group first. Kept free of React/channel/i18n state so
|
|
5
|
+
* `scripts/verify-model-picker-groups.mjs` can drive it headless; the
|
|
6
|
+
* recents row's localized label is resolved at render time (its `label`
|
|
7
|
+
* field is the {@link RECENTS_LABEL_PLACEHOLDER} sentinel).
|
|
8
|
+
*
|
|
9
|
+
* @module dsh-tui/modelGroups
|
|
10
|
+
*/
|
|
11
|
+
import type { LlmModelInfo, LlmProviderInfo } from './dsh-adapter/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* The pseudo provider key of the pinned "recently used" group. Provider
|
|
14
|
+
* route ids cannot contain underscores (`PROVIDER_ROUTE_ID`), so this can
|
|
15
|
+
* never collide with a real route.
|
|
16
|
+
*/
|
|
17
|
+
export declare const RECENTS_GROUP_PROVIDER = "__recents__";
|
|
18
|
+
/** The recents row's raw label; renderers replace it with the localized one. */
|
|
19
|
+
export declare const RECENTS_LABEL_PLACEHOLDER = "__recent__";
|
|
20
|
+
/** One recent-model reference (same shape as modelRecents' persisted ref). */
|
|
21
|
+
export interface ModelRef {
|
|
22
|
+
readonly provider: string;
|
|
23
|
+
readonly id: string;
|
|
24
|
+
}
|
|
25
|
+
/** One top-level row: a provider route with its picker-facing identity. */
|
|
26
|
+
export interface ModelGroupRow {
|
|
27
|
+
/** Harness route key (also the grouping key over `LlmModelInfo.provider`). */
|
|
28
|
+
readonly provider: string;
|
|
29
|
+
/** Display label — the registry's provider name, falling back to the route key. */
|
|
30
|
+
readonly label: string;
|
|
31
|
+
/** How many of the listed models belong to this provider. */
|
|
32
|
+
readonly count: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The recent refs that the current catalog still lists, most-recent-first —
|
|
36
|
+
* the second level of the recents group. Refs whose model vanished from the
|
|
37
|
+
* catalog (provider removed, or an OAuth provider signed out and
|
|
38
|
+
* credential-gated away) drop out here, so the group never offers a row the
|
|
39
|
+
* picker could not switch to.
|
|
40
|
+
*/
|
|
41
|
+
export declare function recentCatalogModels(recents: readonly ModelRef[], models: readonly LlmModelInfo[]): readonly LlmModelInfo[];
|
|
42
|
+
/**
|
|
43
|
+
* Group a flat model catalog into provider rows, first-appearance order
|
|
44
|
+
* (the registry's own listing order), labels resolved through
|
|
45
|
+
* `providerInfos` with a route-key fallback. Recent refs (when supplied and
|
|
46
|
+
* still catalogued) pin one extra pseudo-group at the top.
|
|
47
|
+
*/
|
|
48
|
+
export declare function deriveModelGroups(models: readonly LlmModelInfo[], providerInfos: readonly LlmProviderInfo[], recents?: readonly ModelRef[]): readonly ModelGroupRow[];
|
|
49
|
+
/** Where `/model` should open (or re-land after the fresh catalog arrives). */
|
|
50
|
+
export interface ModelPickerLanding {
|
|
51
|
+
/**
|
|
52
|
+
* The group to open *inside* — set only by the single-provider fast path,
|
|
53
|
+
* where a one-row top level would be pure friction (and there are no
|
|
54
|
+
* recents to pin). Multi-provider catalogs — and any catalog with recents
|
|
55
|
+
* — land at the top level (`undefined`).
|
|
56
|
+
*/
|
|
57
|
+
readonly group: string | undefined;
|
|
58
|
+
/** Focus index within the landed level's rows. */
|
|
59
|
+
readonly index: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Compute the picker's landing: with a meaningful recents list pinned, focus
|
|
63
|
+
* the recents row itself (its first entry is the most recently used model —
|
|
64
|
+
* the likeliest destination); without recents, focus the current provider's
|
|
65
|
+
* group. The single-provider fast path applies while recents carry no
|
|
66
|
+
* navigation value — an empty list, or a lone entry that can only be the
|
|
67
|
+
* current model (the picker seeds it): drilling straight into the only
|
|
68
|
+
* provider's list beats a top level whose recents row duplicates it. Two or
|
|
69
|
+
* more recents (or any multi-provider catalog) land at the top level.
|
|
70
|
+
*/
|
|
71
|
+
export declare function modelPickerLanding(models: readonly LlmModelInfo[], currentProvider: string | undefined, currentModel: string | undefined, recents?: readonly ModelRef[]): ModelPickerLanding;
|
|
72
|
+
//# sourceMappingURL=modelGroups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelGroups.d.ts","sourceRoot":"","sources":["../../src/modelGroups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AAEnD,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,eAAe,CAAA;AAErD,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,MAAM,EAAE,SAAS,YAAY,EAAE,GAC9B,SAAS,YAAY,EAAE,CAUzB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,aAAa,EAAE,SAAS,eAAe,EAAE,EACzC,OAAO,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC5B,SAAS,aAAa,EAAE,CAsB1B;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC5B,kBAAkB,CAiBpB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure derivation for the two-level `/model` picker: providers as top-level
|
|
3
|
+
* groups, their models one level down, with a pinned "recently used"
|
|
4
|
+
* pseudo-group first. Kept free of React/channel/i18n state so
|
|
5
|
+
* `scripts/verify-model-picker-groups.mjs` can drive it headless; the
|
|
6
|
+
* recents row's localized label is resolved at render time (its `label`
|
|
7
|
+
* field is the {@link RECENTS_LABEL_PLACEHOLDER} sentinel).
|
|
8
|
+
*
|
|
9
|
+
* @module dsh-tui/modelGroups
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* The pseudo provider key of the pinned "recently used" group. Provider
|
|
13
|
+
* route ids cannot contain underscores (`PROVIDER_ROUTE_ID`), so this can
|
|
14
|
+
* never collide with a real route.
|
|
15
|
+
*/
|
|
16
|
+
export const RECENTS_GROUP_PROVIDER = '__recents__';
|
|
17
|
+
/** The recents row's raw label; renderers replace it with the localized one. */
|
|
18
|
+
export const RECENTS_LABEL_PLACEHOLDER = '__recent__';
|
|
19
|
+
/**
|
|
20
|
+
* The recent refs that the current catalog still lists, most-recent-first —
|
|
21
|
+
* the second level of the recents group. Refs whose model vanished from the
|
|
22
|
+
* catalog (provider removed, or an OAuth provider signed out and
|
|
23
|
+
* credential-gated away) drop out here, so the group never offers a row the
|
|
24
|
+
* picker could not switch to.
|
|
25
|
+
*/
|
|
26
|
+
export function recentCatalogModels(recents, models) {
|
|
27
|
+
const listed = [];
|
|
28
|
+
for (const ref of recents) {
|
|
29
|
+
const found = models.find(model => model.provider === ref.provider && model.id === ref.id);
|
|
30
|
+
if (found === undefined)
|
|
31
|
+
continue;
|
|
32
|
+
if (listed.some(seen => seen.provider === found.provider && seen.id === found.id))
|
|
33
|
+
continue;
|
|
34
|
+
listed.push(found);
|
|
35
|
+
if (listed.length >= 10)
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
return listed;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Group a flat model catalog into provider rows, first-appearance order
|
|
42
|
+
* (the registry's own listing order), labels resolved through
|
|
43
|
+
* `providerInfos` with a route-key fallback. Recent refs (when supplied and
|
|
44
|
+
* still catalogued) pin one extra pseudo-group at the top.
|
|
45
|
+
*/
|
|
46
|
+
export function deriveModelGroups(models, providerInfos, recents) {
|
|
47
|
+
const order = [];
|
|
48
|
+
const counts = new Map();
|
|
49
|
+
for (const model of models) {
|
|
50
|
+
if (!counts.has(model.provider)) {
|
|
51
|
+
order.push(model.provider);
|
|
52
|
+
counts.set(model.provider, 0);
|
|
53
|
+
}
|
|
54
|
+
counts.set(model.provider, counts.get(model.provider) + 1);
|
|
55
|
+
}
|
|
56
|
+
const groups = order.map(provider => ({
|
|
57
|
+
provider,
|
|
58
|
+
label: providerInfos.find(info => info.id === provider)?.name ?? provider,
|
|
59
|
+
count: counts.get(provider),
|
|
60
|
+
}));
|
|
61
|
+
if (recents !== undefined) {
|
|
62
|
+
const recentCount = recentCatalogModels(recents, models).length;
|
|
63
|
+
if (recentCount > 0) {
|
|
64
|
+
groups.unshift({ provider: RECENTS_GROUP_PROVIDER, label: RECENTS_LABEL_PLACEHOLDER, count: recentCount });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return groups;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Compute the picker's landing: with a meaningful recents list pinned, focus
|
|
71
|
+
* the recents row itself (its first entry is the most recently used model —
|
|
72
|
+
* the likeliest destination); without recents, focus the current provider's
|
|
73
|
+
* group. The single-provider fast path applies while recents carry no
|
|
74
|
+
* navigation value — an empty list, or a lone entry that can only be the
|
|
75
|
+
* current model (the picker seeds it): drilling straight into the only
|
|
76
|
+
* provider's list beats a top level whose recents row duplicates it. Two or
|
|
77
|
+
* more recents (or any multi-provider catalog) land at the top level.
|
|
78
|
+
*/
|
|
79
|
+
export function modelPickerLanding(models, currentProvider, currentModel, recents) {
|
|
80
|
+
const providers = [];
|
|
81
|
+
for (const model of models) {
|
|
82
|
+
if (!providers.includes(model.provider))
|
|
83
|
+
providers.push(model.provider);
|
|
84
|
+
}
|
|
85
|
+
if (providers.length === 0)
|
|
86
|
+
return { group: undefined, index: 0 };
|
|
87
|
+
const recentCount = recents === undefined ? 0 : recentCatalogModels(recents, models).length;
|
|
88
|
+
if (providers.length === 1 && recentCount <= 1) {
|
|
89
|
+
const only = providers[0];
|
|
90
|
+
const index = models.findIndex(model => model.provider === currentProvider && model.id === currentModel);
|
|
91
|
+
return { group: only, index: index >= 0 ? index : 0 };
|
|
92
|
+
}
|
|
93
|
+
if (recentCount > 0)
|
|
94
|
+
return { group: undefined, index: 0 };
|
|
95
|
+
const groupIndex = providers.indexOf(currentProvider ?? '');
|
|
96
|
+
return { group: undefined, index: groupIndex >= 0 ? groupIndex : 0 };
|
|
97
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persisted recently-used models (`/model` picker's 最近使用 group), kept at
|
|
3
|
+
* `~/.dsh-tui/model-recents.json` so the list survives restarts — same
|
|
4
|
+
* best-effort pattern as agent-preset.json: a missing/corrupt file simply
|
|
5
|
+
* reads as empty, and a failed write never blocks the switch that caused it.
|
|
6
|
+
* Entries are `{ provider, id }` refs, most-recent-first, deduped, capped at
|
|
7
|
+
* {@link MODEL_RECENTS_LIMIT}.
|
|
8
|
+
*
|
|
9
|
+
* @module dsh-tui/modelRecents
|
|
10
|
+
*/
|
|
11
|
+
/** How many recent entries the file and the picker group keep. */
|
|
12
|
+
export declare const MODEL_RECENTS_LIMIT = 10;
|
|
13
|
+
/** One persisted recent-model reference. */
|
|
14
|
+
export interface ModelRecentsRef {
|
|
15
|
+
readonly provider: string;
|
|
16
|
+
readonly id: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse a persisted `{ models: [...] }` document; invalid shapes yield an
|
|
20
|
+
* empty list (the file is rewritten on the next record).
|
|
21
|
+
* @param text - Raw file contents.
|
|
22
|
+
* @returns Valid refs in file order, deduped, capped.
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseModelRecents(text: string): readonly ModelRecentsRef[];
|
|
25
|
+
/**
|
|
26
|
+
* The persisted recent-model refs, most-recent-first.
|
|
27
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
28
|
+
*/
|
|
29
|
+
export declare function readModelRecents(dir?: string): readonly ModelRecentsRef[];
|
|
30
|
+
/**
|
|
31
|
+
* Record one use: move-to-front dedupe, cap at {@link MODEL_RECENTS_LIMIT},
|
|
32
|
+
* best-effort persist. Never throws — a failed write must not block the
|
|
33
|
+
* model switch that caused it.
|
|
34
|
+
* @param ref - The provider/model just switched to.
|
|
35
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
36
|
+
* @returns The new list (also what a subsequent read returns on success).
|
|
37
|
+
*/
|
|
38
|
+
export declare function recordModelUse(ref: ModelRecentsRef, dir?: string): readonly ModelRecentsRef[];
|
|
39
|
+
//# sourceMappingURL=modelRecents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelRecents.d.ts","sourceRoot":"","sources":["../../src/modelRecents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAYD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAmB1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAkB,GAAG,SAAS,eAAe,EAAE,CAMpF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,GAAE,MAAkB,GAAG,SAAS,eAAe,EAAE,CAexG"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persisted recently-used models (`/model` picker's 最近使用 group), kept at
|
|
3
|
+
* `~/.dsh-tui/model-recents.json` so the list survives restarts — same
|
|
4
|
+
* best-effort pattern as agent-preset.json: a missing/corrupt file simply
|
|
5
|
+
* reads as empty, and a failed write never blocks the switch that caused it.
|
|
6
|
+
* Entries are `{ provider, id }` refs, most-recent-first, deduped, capped at
|
|
7
|
+
* {@link MODEL_RECENTS_LIMIT}.
|
|
8
|
+
*
|
|
9
|
+
* @module dsh-tui/modelRecents
|
|
10
|
+
*/
|
|
11
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
12
|
+
import { join } from 'node:path';
|
|
13
|
+
import { DATA_DIR } from './utils/paths.js';
|
|
14
|
+
const PREFS_DIR = DATA_DIR;
|
|
15
|
+
/** How many recent entries the file and the picker group keep. */
|
|
16
|
+
export const MODEL_RECENTS_LIMIT = 10;
|
|
17
|
+
/** Narrow one parsed array element, or reject the whole file entry. */
|
|
18
|
+
function asRef(value) {
|
|
19
|
+
if (typeof value !== 'object' || value === null)
|
|
20
|
+
return undefined;
|
|
21
|
+
const record = value;
|
|
22
|
+
return typeof record['provider'] === 'string' && record['provider'] !== ''
|
|
23
|
+
&& typeof record['id'] === 'string' && record['id'] !== ''
|
|
24
|
+
? { provider: record['provider'], id: record['id'] }
|
|
25
|
+
: undefined;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Parse a persisted `{ models: [...] }` document; invalid shapes yield an
|
|
29
|
+
* empty list (the file is rewritten on the next record).
|
|
30
|
+
* @param text - Raw file contents.
|
|
31
|
+
* @returns Valid refs in file order, deduped, capped.
|
|
32
|
+
*/
|
|
33
|
+
export function parseModelRecents(text) {
|
|
34
|
+
let parsed;
|
|
35
|
+
try {
|
|
36
|
+
parsed = JSON.parse(text);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
42
|
+
return [];
|
|
43
|
+
const models = parsed.models;
|
|
44
|
+
if (!Array.isArray(models))
|
|
45
|
+
return [];
|
|
46
|
+
const refs = [];
|
|
47
|
+
for (const entry of models) {
|
|
48
|
+
const ref = asRef(entry);
|
|
49
|
+
if (ref === undefined)
|
|
50
|
+
continue;
|
|
51
|
+
if (refs.some(seen => seen.provider === ref.provider && seen.id === ref.id))
|
|
52
|
+
continue;
|
|
53
|
+
refs.push(ref);
|
|
54
|
+
if (refs.length >= MODEL_RECENTS_LIMIT)
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
return refs;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The persisted recent-model refs, most-recent-first.
|
|
61
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
62
|
+
*/
|
|
63
|
+
export function readModelRecents(dir = PREFS_DIR) {
|
|
64
|
+
try {
|
|
65
|
+
return parseModelRecents(readFileSync(join(dir, 'model-recents.json'), 'utf8'));
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Record one use: move-to-front dedupe, cap at {@link MODEL_RECENTS_LIMIT},
|
|
73
|
+
* best-effort persist. Never throws — a failed write must not block the
|
|
74
|
+
* model switch that caused it.
|
|
75
|
+
* @param ref - The provider/model just switched to.
|
|
76
|
+
* @param dir - Prefs directory (injectable for tests).
|
|
77
|
+
* @returns The new list (also what a subsequent read returns on success).
|
|
78
|
+
*/
|
|
79
|
+
export function recordModelUse(ref, dir = PREFS_DIR) {
|
|
80
|
+
const next = [ref];
|
|
81
|
+
for (const seen of readModelRecents(dir)) {
|
|
82
|
+
if (seen.provider === ref.provider && seen.id === ref.id)
|
|
83
|
+
continue;
|
|
84
|
+
next.push(seen);
|
|
85
|
+
if (next.length >= MODEL_RECENTS_LIMIT)
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
mkdirSync(dir, { recursive: true });
|
|
90
|
+
writeFileSync(join(dir, 'model-recents.json'), `${JSON.stringify({ models: next }, null, 2)}\n`);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Best-effort like every other pref: the in-memory list still serves
|
|
94
|
+
// this session; the next successful write re-persists.
|
|
95
|
+
}
|
|
96
|
+
return next;
|
|
97
|
+
}
|
|
@@ -270,6 +270,17 @@ export declare class Node {
|
|
|
270
270
|
_cGen: number;
|
|
271
271
|
/** Number of populated cache slots. */
|
|
272
272
|
_cN: number;
|
|
273
|
+
/**
|
|
274
|
+
* Generation of the last MEASURE-pass call that actually computed (cache
|
|
275
|
+
* miss with performLayout=false). Such a call recurses and overwrites the
|
|
276
|
+
* subtree's layout.* fields as scratch for whatever available size it was
|
|
277
|
+
* probing — which may differ from the node's final size. A subsequent
|
|
278
|
+
* layout-pass cache hit would restore only this node's own w/h and skip
|
|
279
|
+
* the child recursion, leaving descendants at the scratch geometry (the
|
|
280
|
+
* warm-resize 106-vs-105 wrap drift). Layout-pass early returns must
|
|
281
|
+
* therefore refuse to hit while _scratchGen === _generation.
|
|
282
|
+
*/
|
|
283
|
+
_scratchGen: number;
|
|
273
284
|
/** LRU write index into the cache arrays. */
|
|
274
285
|
_cWr: number;
|
|
275
286
|
constructor(config?: Config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native-ts/yoga-layout/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/native-ts/yoga-layout/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -430,6 +430,17 @@ export class Node {
|
|
|
430
430
|
_cGen = -1;
|
|
431
431
|
/** Number of populated cache slots. */
|
|
432
432
|
_cN = 0;
|
|
433
|
+
/**
|
|
434
|
+
* Generation of the last MEASURE-pass call that actually computed (cache
|
|
435
|
+
* miss with performLayout=false). Such a call recurses and overwrites the
|
|
436
|
+
* subtree's layout.* fields as scratch for whatever available size it was
|
|
437
|
+
* probing — which may differ from the node's final size. A subsequent
|
|
438
|
+
* layout-pass cache hit would restore only this node's own w/h and skip
|
|
439
|
+
* the child recursion, leaving descendants at the scratch geometry (the
|
|
440
|
+
* warm-resize 106-vs-105 wrap drift). Layout-pass early returns must
|
|
441
|
+
* therefore refuse to hit while _scratchGen === _generation.
|
|
442
|
+
*/
|
|
443
|
+
_scratchGen = -1;
|
|
433
444
|
/** LRU write index into the cache arrays. */
|
|
434
445
|
_cWr = 0;
|
|
435
446
|
constructor(config) {
|
|
@@ -1281,10 +1292,21 @@ function commitCacheOutputs(node, performLayout) {
|
|
|
1281
1292
|
if (performLayout) {
|
|
1282
1293
|
node._lOutW = node.layout.width;
|
|
1283
1294
|
node._lOutH = node.layout.height;
|
|
1295
|
+
// A completed layout pass re-laid the whole subtree at the final
|
|
1296
|
+
// constraints — any measure-pass scratch below has been overwritten,
|
|
1297
|
+
// so this node may serve layout-cache hits again.
|
|
1298
|
+
node._scratchGen = -1;
|
|
1284
1299
|
}
|
|
1285
1300
|
else {
|
|
1286
1301
|
node._mOutW = node.layout.width;
|
|
1287
1302
|
node._mOutH = node.layout.height;
|
|
1303
|
+
// This measure call actually computed: its recursion overwrote the
|
|
1304
|
+
// subtree's layout.* as scratch for the probed size. Until a layout
|
|
1305
|
+
// pass re-lays this subtree, layout-cache hits here must be refused
|
|
1306
|
+
// (see _scratchGen). Leaves have no subtree to corrupt — skip them so
|
|
1307
|
+
// measure-heavy text nodes keep their layout-cache hits.
|
|
1308
|
+
if (node.children.length > 0)
|
|
1309
|
+
node._scratchGen = _generation;
|
|
1288
1310
|
}
|
|
1289
1311
|
}
|
|
1290
1312
|
// --
|
|
@@ -1331,6 +1353,10 @@ forceWidth = false, forceHeight = false) {
|
|
|
1331
1353
|
if (!node.isDirty_ || sameGen) {
|
|
1332
1354
|
if (!node.isDirty_ &&
|
|
1333
1355
|
node._hasL &&
|
|
1356
|
+
// A layout-pass hit restores only this node's own w/h and skips the
|
|
1357
|
+
// child recursion — illegal while a same-generation measure compute
|
|
1358
|
+
// has left the subtree at scratch geometry for a different probe size.
|
|
1359
|
+
!(performLayout && node._scratchGen === _generation) &&
|
|
1334
1360
|
node._lWM === widthMode &&
|
|
1335
1361
|
node._lHM === heightMode &&
|
|
1336
1362
|
node._lFW === forceWidth &&
|
|
@@ -1353,7 +1379,11 @@ forceWidth = false, forceHeight = false) {
|
|
|
1353
1379
|
// Same-generation check covers fresh-mounted (dirty) nodes during
|
|
1354
1380
|
// virtual scroll — the dirty chain invokes them ≥2^depth times, first
|
|
1355
1381
|
// call writes cache, rest hit: 105k visits → ~10k for 1593-node tree.
|
|
1356
|
-
if (node._cN > 0 &&
|
|
1382
|
+
if (node._cN > 0 &&
|
|
1383
|
+
(sameGen || !node.isDirty_) &&
|
|
1384
|
+
// Same scratch guard as _hasL: a layout-pass hit must not skip child
|
|
1385
|
+
// recursion over a measure-scratched subtree.
|
|
1386
|
+
!(performLayout && node._scratchGen === _generation)) {
|
|
1357
1387
|
const cIn = node._cIn;
|
|
1358
1388
|
for (let i = 0; i < node._cN; i++) {
|
|
1359
1389
|
const o = i * 8;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export of the `@deepseek-harness-tui/dsh-auth` plugin under this
|
|
3
|
+
* package's own name, so the bundle patch layer can mount the OAuth row as
|
|
4
|
+
* `@deepseek-harness-tui/dsh-tui/oauth` instead of the bare package name —
|
|
5
|
+
* the same anchor the working-activity row uses (#60): the dsh Loader
|
|
6
|
+
* resolves row names from the *profile* directory, where only the profile's
|
|
7
|
+
* direct dependencies are linked, and pnpm's isolated layout never hoists a
|
|
8
|
+
* transitive dependency there. Mounting through this subpath keeps plugin
|
|
9
|
+
* resolution anchored at @deepseek-harness-tui/dsh-tui itself, always a
|
|
10
|
+
* direct profile dependency, under every package-manager layout.
|
|
11
|
+
*
|
|
12
|
+
* @module @deepseek-harness-tui/dsh-tui/oauth
|
|
13
|
+
*/
|
|
14
|
+
export * from '@deepseek-harness-tui/dsh-auth';
|
|
15
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,gCAAgC,CAAA"}
|