@deepseek-harness-tui/dsh-tui 0.11.1 → 0.12.0
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 +70 -24
- package/assets/whale-girl/whale-girl-dark.png +0 -0
- package/assets/whale-girl/whale-girl-happy.png +0 -0
- package/assets/whale-girl/whale-girl.png +0 -0
- package/bin/dsh-tui.js +93 -6
- package/cordis.patch.yml +63 -22
- package/cordis.yml +3 -2
- package/guide/dsh-tui-guide/SKILL.md +37 -0
- package/guide/dsh-tui-guide/configuration.en.md +410 -0
- package/guide/dsh-tui-guide/configuration.md +349 -0
- package/guide/dsh-tui-guide/getting-started.en.md +398 -0
- package/guide/dsh-tui-guide/getting-started.md +397 -0
- package/guide/dsh-tui-guide/interaction.en.md +674 -0
- package/guide/dsh-tui-guide/interaction.md +747 -0
- package/guide/dsh-tui-guide/migrate.en.md +166 -0
- package/guide/dsh-tui-guide/migrate.md +132 -0
- package/guide/dsh-tui-guide/plugins.en.md +68 -0
- package/guide/dsh-tui-guide/plugins.md +56 -0
- package/guide/dsh-tui-guide/themes.en.md +192 -0
- package/guide/dsh-tui-guide/themes.md +185 -0
- package/guide/dsh-tui-guide/user-guide.en.md +608 -0
- package/guide/dsh-tui-guide/user-guide.md +586 -0
- package/guide/dsh-tui-guide/vscode.en.md +301 -0
- package/guide/dsh-tui-guide/vscode.md +272 -0
- package/lib/settings.json +1272 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +10 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +17 -0
- package/lib/types/adapter/kernel/replay.d.ts.map +1 -1
- package/lib/types/adapter/kernel/replay.js +2 -0
- package/lib/types/adapter/ports/channel-display.d.ts +12 -0
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +38 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +14 -1
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +75 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +86 -9
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +2 -0
- package/lib/types/components/BalanceReportRow.d.ts +10 -2
- package/lib/types/components/BalanceReportRow.d.ts.map +1 -1
- package/lib/types/components/BalanceReportRow.js +18 -4
- package/lib/types/components/Chat/JobCard.d.ts +9 -0
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +42 -15
- package/lib/types/components/Chat/SubagentMessage.js +6 -6
- package/lib/types/components/CompactionStatusRow.d.ts +24 -0
- package/lib/types/components/CompactionStatusRow.d.ts.map +1 -0
- package/lib/types/components/CompactionStatusRow.js +72 -0
- package/lib/types/components/GoalTodoPanel.js +2 -2
- package/lib/types/components/HelpMenu.d.ts +2 -2
- package/lib/types/components/HelpMenu.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.js +5 -4
- package/lib/types/components/InlineMathParagraph.d.ts +22 -0
- package/lib/types/components/InlineMathParagraph.d.ts.map +1 -0
- package/lib/types/components/InlineMathParagraph.js +178 -0
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +80 -33
- package/lib/types/components/LogoV2.d.ts +41 -3
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +148 -24
- package/lib/types/components/Markdown.d.ts +10 -3
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +47 -14
- package/lib/types/components/MathBlock.d.ts +13 -0
- package/lib/types/components/MathBlock.d.ts.map +1 -0
- package/lib/types/components/MathBlock.js +136 -0
- package/lib/types/components/MessageList.d.ts +10 -1
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +16 -7
- package/lib/types/components/MigratePicker.d.ts +30 -0
- package/lib/types/components/MigratePicker.d.ts.map +1 -0
- package/lib/types/components/MigratePicker.js +38 -0
- package/lib/types/components/PresetPicker.d.ts +4 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -1
- package/lib/types/components/PresetPicker.js +5 -1
- package/lib/types/components/PromptInput.d.ts +17 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +60 -8
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +2 -1
- package/lib/types/components/StarPrompt.d.ts +59 -0
- package/lib/types/components/StarPrompt.d.ts.map +1 -0
- package/lib/types/components/StarPrompt.js +326 -0
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +20 -3
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +8 -8
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +108 -10
- package/lib/types/components/TimelineRail.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.js +9 -1
- package/lib/types/components/Whale.d.ts +17 -8
- package/lib/types/components/Whale.d.ts.map +1 -1
- package/lib/types/components/Whale.js +25 -15
- package/lib/types/components/WhaleGirl.d.ts +35 -0
- package/lib/types/components/WhaleGirl.d.ts.map +1 -0
- package/lib/types/components/WhaleGirl.js +50 -0
- package/lib/types/components/WorkingSpinner.d.ts +4 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +2 -2
- package/lib/types/components/bigfont.d.ts +47 -18
- package/lib/types/components/bigfont.d.ts.map +1 -1
- package/lib/types/components/bigfont.js +55 -40
- package/lib/types/components/design-system/ThemeProvider.d.ts +6 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +40 -1
- package/lib/types/components/maidPortrait.d.ts +44 -0
- package/lib/types/components/maidPortrait.d.ts.map +1 -0
- package/lib/types/components/maidPortrait.js +178 -0
- package/lib/types/components/mathPreview.d.ts +25 -0
- package/lib/types/components/mathPreview.d.ts.map +1 -0
- package/lib/types/components/mathPreview.js +48 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +6 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +3 -2
- package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -1
- package/lib/types/components/messages/TranscriptImages.js +11 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +14 -2
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +80 -38
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +3 -3
- package/lib/types/components/sessions/ForeignSessionRow.d.ts +34 -0
- package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -0
- package/lib/types/components/sessions/ForeignSessionRow.js +43 -0
- package/lib/types/components/sessions/SourceTabs.d.ts +52 -0
- package/lib/types/components/sessions/SourceTabs.d.ts.map +1 -0
- package/lib/types/components/sessions/SourceTabs.js +70 -0
- package/lib/types/components/splashEggs.d.ts +56 -0
- package/lib/types/components/splashEggs.d.ts.map +1 -0
- package/lib/types/components/splashEggs.js +67 -0
- package/lib/types/components/splashFonts.d.ts +119 -0
- package/lib/types/components/splashFonts.d.ts.map +1 -0
- package/lib/types/components/splashFonts.js +267 -0
- package/lib/types/components/splashLayout.d.ts +41 -0
- package/lib/types/components/splashLayout.d.ts.map +1 -0
- package/lib/types/components/splashLayout.js +40 -0
- package/lib/types/components/trajectory/MiniWake.d.ts +11 -1
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -1
- package/lib/types/components/trajectory/MiniWake.js +9 -3
- package/lib/types/components/whaleGirlSprite.d.ts +17 -0
- package/lib/types/components/whaleGirlSprite.d.ts.map +1 -0
- package/lib/types/components/whaleGirlSprite.js +47 -0
- package/lib/types/deepseekPricing.d.ts +74 -0
- package/lib/types/deepseekPricing.d.ts.map +1 -1
- package/lib/types/deepseekPricing.js +110 -11
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +6 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +1 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +8 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +69 -21
- package/lib/types/dsh-adapter/channel/compaction.d.ts +2 -1
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +35 -2
- package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/external-commands.js +8 -2
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +88 -3
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +6 -1
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-actions.js +48 -7
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +25 -9
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +5 -1
- package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/paths.js +7 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/preferences.js +31 -5
- package/lib/types/dsh-adapter/channel/projection.d.ts +1 -2
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +127 -17
- package/lib/types/dsh-adapter/channel/question-record.d.ts +76 -0
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/question-record.js +107 -0
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts +42 -0
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-lineage.js +51 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +2 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +9 -3
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +39 -7
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +7 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +4 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +17 -2
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +6 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +30 -35
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +143 -4
- package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +35 -5
- package/lib/types/dsh-adapter/compat/messages.d.ts +6 -0
- package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/messages.js +9 -0
- package/lib/types/dsh-adapter/contract.d.ts +6 -5
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +14 -6
- package/lib/types/dsh-adapter/index.d.ts +36 -1
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +22 -6
- package/lib/types/dsh-adapter/jobs.d.ts +82 -16
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +104 -9
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +131 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts +17 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.js +329 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.js +102 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts +16 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.parse.js +289 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +117 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts +13 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.js +178 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.js +133 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts +60 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan-fs.js +178 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +8 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.js +40 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.js +93 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts +9 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.js +89 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
- package/lib/types/dsh-adapter/migrate/browse.d.ts +42 -0
- package/lib/types/dsh-adapter/migrate/browse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/browse.js +90 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/cli.js +106 -0
- package/lib/types/dsh-adapter/migrate/import-one.d.ts +89 -0
- package/lib/types/dsh-adapter/migrate/import-one.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/import-one.js +133 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts +35 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/index.js +107 -0
- package/lib/types/dsh-adapter/migrate/parse/injection.d.ts +40 -0
- package/lib/types/dsh-adapter/migrate/parse/injection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/injection.js +127 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +28 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +40 -0
- package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts +28 -0
- package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/role-turns.js +50 -0
- package/lib/types/dsh-adapter/migrate/parse/title.d.ts +18 -0
- package/lib/types/dsh-adapter/migrate/parse/title.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/title.js +29 -0
- package/lib/types/dsh-adapter/migrate/parse/tools.d.ts +62 -0
- package/lib/types/dsh-adapter/migrate/parse/tools.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/tools.js +110 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/picker.js +86 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts +39 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/sessionize.js +271 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts +176 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/types.js +11 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
- package/lib/types/dsh-adapter/oauth/bonus.d.ts +27 -0
- package/lib/types/dsh-adapter/oauth/bonus.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/bonus.js +69 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.d.ts +2 -1
- package/lib/types/dsh-adapter/oauth/command.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.js +7 -4
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.d.ts +13 -10
- package/lib/types/dsh-adapter/oauth/credentials.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.js +61 -23
- package/lib/types/dsh-adapter/oauth/deepseek.d.ts +39 -0
- package/lib/types/dsh-adapter/oauth/deepseek.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/deepseek.js +189 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.d.ts +24 -16
- package/lib/types/dsh-adapter/oauth/index.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.js +34 -20
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/interaction.d.ts +14 -12
- package/lib/types/dsh-adapter/oauth/interaction.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/interaction.js +283 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.d.ts +2 -1
- package/lib/types/dsh-adapter/oauth/opener.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.js +1 -1
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.d.ts +10 -3
- package/lib/types/dsh-adapter/oauth/pi-ai.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.js +8 -3
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.d.ts +6 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.js +11 -3
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.d.ts +14 -7
- package/lib/types/dsh-adapter/oauth/service.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.js +82 -17
- package/lib/types/dsh-adapter/plugin.d.ts +12 -3
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +215 -376
- package/lib/types/dsh-adapter/presets.d.ts +6 -4
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +6 -4
- package/lib/types/dsh-adapter/providerWizard.d.ts +17 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +260 -68
- package/lib/types/dsh-adapter/questions.d.ts +22 -15
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +47 -45
- package/lib/types/dsh-adapter/sessions/digest.d.ts +11 -6
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +20 -13
- package/lib/types/dsh-adapter/sessions/frames.d.ts +3 -1
- package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/frames.js +5 -4
- package/lib/types/dsh-adapter/sessions/list.d.ts +6 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +188 -164
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +16 -0
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/recovery.js +108 -0
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts +7 -0
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/snapshot.js +90 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts +10 -4
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +62 -25
- package/lib/types/dsh-adapter/sideQuestion.d.ts +41 -2
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +98 -2
- package/lib/types/dsh-adapter/subagents.d.ts +29 -3
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +87 -3
- package/lib/types/herdr.d.ts +2 -0
- package/lib/types/herdr.d.ts.map +1 -1
- package/lib/types/herdr.js +9 -3
- package/lib/types/i18n.d.ts +598 -60
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +198 -31
- package/lib/types/ink/components/App.d.ts +2 -2
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +15 -2
- package/lib/types/ink/components/Image.d.ts +14 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/events/input-event.js +3 -3
- package/lib/types/ink/hooks/use-terminal-images.d.ts +12 -0
- package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-terminal-images.js +13 -0
- package/lib/types/ink/ink.d.ts +6 -0
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +16 -1
- package/lib/types/ink/kitty-graphics.d.ts +44 -3
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +184 -23
- package/lib/types/ink/output.d.ts +24 -2
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +83 -5
- package/lib/types/ink/parse-keypress.d.ts +61 -1
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +764 -93
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +8 -1
- package/lib/types/ink/screen.d.ts +24 -0
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/screen.js +89 -0
- package/lib/types/ink/selection.d.ts +40 -18
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +142 -30
- package/lib/types/ink/sixel-codec.d.ts +12 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +29 -5
- package/lib/types/ink/sixel-graphics.d.ts.map +1 -1
- package/lib/types/ink/sixel-graphics.js +5 -3
- package/lib/types/ink/styles.d.ts +9 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +8 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +32 -1
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +54 -2
- package/lib/types/ink/timeline-rail.d.ts +5 -0
- package/lib/types/ink/timeline-rail.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.d.ts +24 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +25 -3
- package/lib/types/math/inline-layout.d.ts +29 -0
- package/lib/types/math/inline-layout.d.ts.map +1 -0
- package/lib/types/math/inline-layout.js +106 -0
- package/lib/types/math/layout.d.ts +58 -0
- package/lib/types/math/layout.d.ts.map +1 -0
- package/lib/types/math/layout.js +59 -0
- package/lib/types/math/renderer.d.ts +64 -0
- package/lib/types/math/renderer.d.ts.map +1 -0
- package/lib/types/math/renderer.js +256 -0
- package/lib/types/minimalUiMode.d.ts +19 -0
- package/lib/types/minimalUiMode.d.ts.map +1 -0
- package/lib/types/minimalUiMode.js +23 -0
- package/lib/types/oauth.d.ts +5 -10
- package/lib/types/oauth.d.ts.map +1 -1
- package/lib/types/oauth.js +5 -10
- package/lib/types/screens/Chat.d.ts +17 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +627 -54
- package/lib/types/screens/SessionSupervisor.d.ts +2 -1
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +156 -19
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +49 -11
- package/lib/types/screens/StatusLine.d.ts +4 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +57 -27
- package/lib/types/screens/chatOverlay.d.ts +5 -0
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +1 -0
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +47 -0
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +65 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts +12 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/model.js +26 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts +107 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +312 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +4 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -14
- package/lib/types/sessionHistory.d.ts +2 -2
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +31 -5
- package/lib/types/settings/definitions.d.ts +681 -0
- package/lib/types/settings/definitions.d.ts.map +1 -0
- package/lib/types/settings/definitions.js +511 -0
- package/lib/types/starAction.d.ts +44 -0
- package/lib/types/starAction.d.ts.map +1 -0
- package/lib/types/starAction.js +52 -0
- package/lib/types/terminal-utils/latex.d.ts +10 -0
- package/lib/types/terminal-utils/latex.d.ts.map +1 -0
- package/lib/types/terminal-utils/latex.js +1417 -0
- package/lib/types/terminal-utils/markdown.d.ts +3 -1
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +26 -1
- package/lib/types/terminal-utils/math.d.ts +66 -0
- package/lib/types/terminal-utils/math.d.ts.map +1 -0
- package/lib/types/terminal-utils/math.js +337 -0
- package/lib/types/tips.d.ts.map +1 -1
- package/lib/types/tips.js +16 -4
- package/lib/types/tuiDisplayPrefs.d.ts +67 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +59 -0
- package/lib/types/ui.d.ts +1 -1
- package/lib/types/ui.d.ts.map +1 -1
- package/lib/types/ui.js +1 -1
- package/lib/types/update.js +2 -2
- package/lib/types/usageStats.d.ts +98 -0
- package/lib/types/usageStats.d.ts.map +1 -0
- package/lib/types/usageStats.js +169 -0
- package/lib/types/utils/bmp.d.ts +17 -0
- package/lib/types/utils/bmp.d.ts.map +1 -0
- package/lib/types/utils/bmp.js +154 -0
- package/lib/types/utils/clipboard.d.ts +14 -2
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +143 -8
- package/lib/types/utils/fold-long-lines.d.ts.map +1 -1
- package/lib/types/utils/fold-long-lines.js +2 -1
- package/lib/types/utils/keymap.d.ts +4 -1
- package/lib/types/utils/keymap.d.ts.map +1 -1
- package/lib/types/utils/keymap.js +8 -0
- package/lib/types/utils/modifiers.d.ts +4 -3
- package/lib/types/utils/modifiers.d.ts.map +1 -1
- package/lib/types/utils/modifiers.js +4 -3
- package/lib/types/utils/pastedImagePath.d.ts +8 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +29 -5
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/LICENSE +202 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/NOTICE +20 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/index.d.ts +16 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/bundled-packages.json +4 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs +20 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs.LEGAL.txt +35 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/package.json +29 -0
- package/package.json +127 -102
- package/presets/liangshen/agent.cordis.yml +4 -1
- package/presets/liangshen/preset.yml +1 -1
- package/lib/types/minimalMode.d.ts +0 -13
- package/lib/types/minimalMode.d.ts.map +0 -1
- package/lib/types/minimalMode.js +0 -17
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +0 -21
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +0 -143
- package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +0 -11
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +0 -44
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +0 -193
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +0 -69
package/lib/types/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAMH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,+DAA+D;AAC/D,eAAO,MAAM,KAAK,uBAAwB,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAMH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAI9B,+DAA+D;AAC/D,eAAO,MAAM,KAAK,uBAAwB,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA27C0D,CAAA;AAEpE,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,IAAI,CAAA;AACvC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAUxD,uEAAuE;AACvE,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAG1B,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAG5D;AAED,qCAAqC;AACrC,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGxC;AAED,iDAAiD;AACjD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,UAAe,GAAG,MAAM,CAG/D;AAwBD;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,MAAM,CAGlF;AAED,4EAA4E;AAC5E,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAQ,CAAA;AAI1G;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAS5D;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAkB,GAAG,IAAI,GAAG,SAAS,CAMtE;AAED,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAU1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAWvC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
package/lib/types/i18n.js
CHANGED
|
@@ -107,13 +107,16 @@ const dict = {
|
|
|
107
107
|
'preset-name-standard': { zh: '标准模式', en: 'Standard' },
|
|
108
108
|
'preset-desc-standard': { zh: '功能完整的编码 Agent,支持文件编辑、Shell、文件与网页检索、Skills、计划、目标、子代理和工作流。', en: 'Full-featured coding agent: file editing, shell, file & web search, skills, plans, goals, subagents and workflows.' },
|
|
109
109
|
'preset-name-minimal': { zh: '极简模式', en: 'Minimal' },
|
|
110
|
-
'preset-desc-minimal': { zh: '
|
|
110
|
+
'preset-desc-minimal': { zh: '内核 Agent 预设(极简模式):只暴露一个持久 shell 工具(POSIX 为 bash,Windows 为 pwsh),不带 compaction、计划模式与运行时上下文。', en: 'Kernel agent preset (Minimal): a single persistent-shell tool (bash on POSIX, pwsh on Windows), with no compaction, no plan mode and no runtime context.' },
|
|
111
111
|
'preset-name-code': { zh: 'PTC 模式', en: 'PTC' },
|
|
112
112
|
'preset-desc-code': { zh: '具备标准模式的全部能力,并通过 Code Mode SDK 呈现工具,让模型用一个 TypeScript 程序组合多步操作。', en: 'Everything standard mode offers, with tools exposed through the Code Mode SDK so the model composes multi-step operations in one TypeScript program.' },
|
|
113
113
|
'preset-name-cordis': { zh: '创造模式', en: 'Creation' },
|
|
114
114
|
'preset-desc-cordis': { zh: '用于创建自定义 Agent preset:具备标准模式的全部能力,并提供运行时检查、插件实验和 preset 创作指导。', en: 'For authoring custom agent presets: everything standard mode offers plus runtime inspection, plugin experiments and preset-authoring guidance.' },
|
|
115
115
|
'preset-name-liangshen': { zh: '梁神模式', en: 'Liangshen mode' },
|
|
116
|
-
'preset-desc-liangshen': { zh: '主 Agent 与子 Agent
|
|
116
|
+
'preset-desc-liangshen': { zh: '主 Agent 与子 Agent 首轮均保持极简模式的最小工具面,首次工具调用后开放完整目录,压缩后重新锚定。', en: 'Root and delegated agents keep the Minimal preset\'s minimal tool surface on the first turn; the full catalog opens after the first tool call and re-anchors after compaction.' },
|
|
117
|
+
// The preset picker's header names the AGENT PRESET explicitly, so it can
|
|
118
|
+
// never be read as the /settings 「极简界面」 (Minimal UI) display switch.
|
|
119
|
+
'preset-picker-title': { zh: '内核 Agent 预设', en: 'Kernel agent preset' },
|
|
117
120
|
'mcp-none-configured': { zh: '未配置 MCP 服务器。', en: 'No MCP servers configured.' },
|
|
118
121
|
'mcp-insert-hint': { zh: '在 profile 补丁层(~/.dsh/profiles/dsh-tui/cordis.patch.yml)insert 一行即可,例:', en: 'Insert one line in the profile patch layer (~/.dsh/profiles/dsh-tui/cordis.patch.yml), e.g.:' },
|
|
119
122
|
'mcp-readme-hint': { zh: '详见仓库 README 的 MCP 章节。', en: 'See the MCP section of the repo README.' },
|
|
@@ -185,7 +188,7 @@ const dict = {
|
|
|
185
188
|
'subagent-oneshot': { zh: '一次性', en: 'one-shot' },
|
|
186
189
|
'subagent-row': { zh: '{{mode}} {{label}}{{activity}} · {{id}}', en: '{{mode}} {{label}}{{activity}} · {{id}}' },
|
|
187
190
|
'subagent-running': { zh: ' 运行中', en: ' running' },
|
|
188
|
-
'subagent-
|
|
191
|
+
'subagent-unknown': { zh: ' 状态未知', en: ' status unknown' },
|
|
189
192
|
'subagent-query-failed': { zh: '查询失败 · {{err}}', en: 'Query failed · {{err}}' },
|
|
190
193
|
'subagent-tools': { zh: '工具', en: 'Tools' },
|
|
191
194
|
'subagent-status-running': { zh: '运行中', en: 'running' },
|
|
@@ -296,6 +299,13 @@ const dict = {
|
|
|
296
299
|
zh: '压缩进行中,已取消并切换会话',
|
|
297
300
|
en: 'In-flight compaction cancelled for the session switch',
|
|
298
301
|
},
|
|
302
|
+
// 压缩状态行(prompt 上方的 spinner 槽位)。压缩只暴露两个可观测阶段:
|
|
303
|
+
// 首块输出前是在重放上下文(无可计数),之后才有生成量。
|
|
304
|
+
'compact-phase-prefill': { zh: '读取上下文…', en: 'reading context…' },
|
|
305
|
+
'compact-esc-cancel': { zh: 'Esc 取消', en: 'Esc cancels' },
|
|
306
|
+
'compact-cancelled': { zh: '压缩已取消', en: 'Compaction cancelled' },
|
|
307
|
+
// 回合进行中的自动压缩:工作 spinner 上的后缀(只此一词,别抢行)。
|
|
308
|
+
'compact-badge': { zh: '压缩中', en: 'compacting' },
|
|
299
309
|
'turn-failed': { zh: '回合出错{{detail}}', en: 'Turn error{{detail}}' },
|
|
300
310
|
// ── dsh-adapter/promptDebug.ts(/debug-prompt 成功提示)─────────────
|
|
301
311
|
// 快照 0600 落在会话工作区根,与 export-saved 同一句清理提醒。
|
|
@@ -322,6 +332,29 @@ const dict = {
|
|
|
322
332
|
'context-panel-collapse': { zh: ' 折叠', en: ' to collapse' },
|
|
323
333
|
'copied-chars': { zh: '已复制 {{n}} 个字符', en: 'Copied {{n}} characters' },
|
|
324
334
|
'copy-refused-stale': { zh: '选区内容已变化,已取消复制', en: 'Content under the selection changed; copy cancelled' },
|
|
335
|
+
'migrate-failed': { zh: '{{n}} 个源导入失败,详见输出', en: '{{n}} source(s) failed — see the output' },
|
|
336
|
+
'migrate-spawn-failed': { zh: '无法启动迁移子进程(找不到本包 bin)', en: 'Could not start the migration child process (package bin not found)' },
|
|
337
|
+
'migrate-child-timeout': { zh: '(子进程超过 {{minutes}} 分钟未结束,已终止)', en: '(the child ran past {{minutes}} minutes and was terminated)' },
|
|
338
|
+
'migrate-usage': { zh: '一次只能迁移一个源:/migrate <agent> [--dry-run]', en: 'One source per run: /migrate <agent> [--dry-run]' },
|
|
339
|
+
'migrate-dry-run-needs-source': { zh: '请指明要预览的源:/migrate <agent> --dry-run', en: 'Name the source to preview: /migrate <agent> --dry-run' },
|
|
340
|
+
'picker-title-migrate': { zh: '迁移哪个代理的对话?', en: 'Import conversations from which agent?' },
|
|
341
|
+
'migrate-picker-empty': { zh: '没有可用的迁移源', en: 'No migration sources available' },
|
|
342
|
+
'migrate-picker-scanning': { zh: '正在扫描各源…', en: 'Scanning sources…' },
|
|
343
|
+
'migrate-picker-recent': { zh: '{{minutes}} 分钟前刚活动过', en: 'active {{minutes}} min ago' },
|
|
344
|
+
'migrate-picker-cold': { zh: '最近未活动', en: 'not active recently' },
|
|
345
|
+
'migrate-picker-count': { zh: '{{n}} 个会话文件', en: '{{n}} session files' },
|
|
346
|
+
'migrate-hint-notify': { zh: '刚刚从 {{agent}} 过来?/migrate 来快速迁移', en: 'Just came from {{agent}}? /migrate imports it quickly' },
|
|
347
|
+
'migrate-picker-hint': { zh: '空格 勾选 · a 全选/全不选 · Enter 确认 · Esc 关闭', en: 'Space toggle · a all/none · Enter confirm · Esc close' },
|
|
348
|
+
'migrate-confirm-title': { zh: '确认导入', en: 'Confirm import' },
|
|
349
|
+
'migrate-confirm-line': { zh: '{{label}}:将导入 {{n}} 个会话文件', en: '{{label}}: {{n}} session files to import' },
|
|
350
|
+
'migrate-confirm-note': { zh: '已存在的自动跳过,可重复执行', en: 'Existing sessions are skipped automatically; safe to re-run' },
|
|
351
|
+
'migrate-confirm-actions': { zh: 'Enter 导入 · d 干跑预览 · Esc 返回选择', en: 'Enter import · d dry-run · Esc back' },
|
|
352
|
+
'migrate-importing-source': { zh: '正在导入 {{label}}({{i}}/{{n}})…', en: 'Importing {{label}} ({{i}}/{{n}})…' },
|
|
353
|
+
'migrate-previewing-source': { zh: '正在预览 {{label}}({{i}}/{{n}})…', en: 'Previewing {{label}} ({{i}}/{{n}})…' },
|
|
354
|
+
'migrate-source-done': { zh: '{{label}}:导入 {{imported}} · 已存在 {{existing}}', en: '{{label}}: imported {{imported}} · already present {{existing}}' },
|
|
355
|
+
'migrate-all-done': { zh: '迁移完成({{n}} 个源)', en: 'Migration finished ({{n}} source(s))' },
|
|
356
|
+
'migrate-all-previewed': { zh: '预览完成({{n}} 个源,未写入)', en: 'Preview finished ({{n}} source(s), nothing written)' },
|
|
357
|
+
'migrate-unknown-agent': { zh: '未知迁移源 {{agent}},可用源见 /migrate', en: 'Unknown migration source {{agent}}; see /migrate for the list' },
|
|
325
358
|
'activity-current-preset': { zh: '当前预设 {{name}}', en: 'Current preset {{name}}' },
|
|
326
359
|
'activity-switch-hint': { zh: '切换 /activity(选择器)或 /activity frames <名>', en: 'Switch /activity (picker) or /activity frames <name>' },
|
|
327
360
|
'activity-persist-hint': { zh: '持久化 ~/.dsh-tui/working-activity.json(重启后仍生效)', en: 'Persisted ~/.dsh-tui/working-activity.json (survives restart)' },
|
|
@@ -386,6 +419,7 @@ const dict = {
|
|
|
386
419
|
'home-sessions-count': { zh: '{{n}} 个会话', en: { one: '{{n}} session', other: '{{n}} sessions' } },
|
|
387
420
|
'home-no-sessions': { zh: '这个工作区还没有会话 · Enter 新建一个', en: 'No sessions in this workspace yet · Enter starts one' },
|
|
388
421
|
'home-sessions-loading': { zh: '正在读取会话…', en: 'Loading sessions…' },
|
|
422
|
+
'home-sessions-refreshing': { zh: '后台刷新中', en: 'refreshing' },
|
|
389
423
|
'home-sessions-failed': { zh: '读取会话失败 · {{err}}', en: 'Failed to load sessions · {{err}}' },
|
|
390
424
|
'home-hint-list': { zh: '**←/→** 切换栏位 · **↑/↓** 选择 · **Enter** 编辑 · Ctrl+N 新建 · Esc 进入会话', en: '**←/→** switch pane · **↑/↓** move · **Enter** edit · Ctrl+N new · Esc enter the session' },
|
|
391
425
|
'home-hint-menu': { zh: '**↑/↓** 选择 · **Enter** 确认 · Esc 关闭', en: '**↑/↓** move · **Enter** confirm · Esc close' },
|
|
@@ -417,14 +451,43 @@ const dict = {
|
|
|
417
451
|
'supervisor-stopped': { zh: '已停止会话「{{name}}」', en: 'Stopped session {{name}}' },
|
|
418
452
|
'supervisor-stop-failed': { zh: '无法停止该会话', en: 'Could not stop that session' },
|
|
419
453
|
'supervisor-stop-current': { zh: '不能停止当前正在使用的会话', en: 'The session you are attached to cannot be stopped' },
|
|
420
|
-
'supervisor-open-failed': { zh: '无法进入会话「{{name}}」·
|
|
454
|
+
'supervisor-open-failed': { zh: '无法进入会话「{{name}}」· {{reason}}', en: 'Could not enter {{name}} · {{reason}}' },
|
|
455
|
+
// 外部来源标签页(其他 coding agent 的会话,选中即导入)
|
|
456
|
+
'supervisor-hint-tabs': { zh: '**Tab** 切换来源', en: '**Tab** switch source' },
|
|
457
|
+
'supervisor-foreign-sessions-title': { zh: '{{source}} · {{name}} 的会话', en: '{{source}} · sessions in {{name}}' },
|
|
458
|
+
'supervisor-foreign-count': { zh: '共 {{total}}', en: '{{total}} total' },
|
|
459
|
+
'supervisor-foreign-filter-placeholder': { zh: '输入以按标题或目录搜索…', en: 'Type to search by title or directory…' },
|
|
460
|
+
'supervisor-foreign-loading': { zh: '正在读取 {{source}} 的会话…', en: 'Reading {{source}} sessions…' },
|
|
461
|
+
'supervisor-foreign-empty': { zh: '{{source}} 里没有可导入的会话', en: 'No importable sessions in {{source}}' },
|
|
462
|
+
'supervisor-foreign-unknown-cwd': { zh: '未知目录', en: 'Unknown directory' },
|
|
463
|
+
'supervisor-foreign-hint-rail': { zh: '**←/→** 切换栏位 · **↑/↓** 选择 · **Tab** 切换来源 · Esc 返回', en: '**←/→** switch pane · **↑/↓** move · **Tab** switch source · Esc back' },
|
|
464
|
+
'supervisor-foreign-hint-list': { zh: '**←/→** 切换栏位 · **Enter** 导入并打开 · **Tab** 切换来源 · Ctrl+L 重新扫描 · Esc 返回', en: '**←/→** switch pane · **Enter** import and open · **Tab** switch source · Ctrl+L rescan · Esc back' },
|
|
465
|
+
'supervisor-foreign-hint-filter': { zh: '输入过滤会话 · **Enter** 导入并打开 · Esc 清空', en: 'Type to filter · **Enter** import and open · Esc clears' },
|
|
466
|
+
'supervisor-foreign-importing': { zh: '正在导入「{{name}}」…', en: 'Importing {{name}}…' },
|
|
467
|
+
'supervisor-foreign-import-failed': { zh: '导入失败 · {{err}}', en: 'Import failed · {{err}}' },
|
|
468
|
+
'supervisor-foreign-scan-failed': { zh: '读取外部会话失败 · {{err}}', en: 'Failed to read foreign sessions · {{err}}' },
|
|
469
|
+
'supervisor-foreign-cwd-missing': { zh: '该会话的工作目录已不存在,未导入:{{cwd}}', en: 'Not imported: its working directory no longer exists: {{cwd}}' },
|
|
470
|
+
'supervisor-foreign-failed-missing': { zh: '源文件已不存在', en: 'the source file is gone' },
|
|
471
|
+
'supervisor-foreign-failed-too-large': { zh: '源文件过大', en: 'the source file is too large' },
|
|
472
|
+
'supervisor-foreign-failed-not-a-session': { zh: '不是可导入的会话', en: 'not an importable session' },
|
|
473
|
+
'supervisor-foreign-failed-write-failed': { zh: '写入会话失败', en: 'writing the session failed' },
|
|
474
|
+
'supervisor-foreign-failed-unknown-source': { zh: '未知来源', en: 'unknown source' },
|
|
421
475
|
'cost-cache-rate': { zh: '缓存率 {{rate}}% · {{read}} 读 / {{write}} 写', en: 'Cache rate {{rate}}% · {{read}} read / {{write}} write' },
|
|
422
476
|
'cost-context': { zh: '上下文 {{pct}}%', en: 'Context {{pct}}%' },
|
|
423
477
|
'status-title': { zh: '标题 {{title}}', en: 'Title {{title}}' },
|
|
424
478
|
'cost-cache-hit-rate': { zh: '缓存命中率 {{rate}}% · 缓存 {{read}} 读 / {{write}} 写', en: 'Cache hit rate {{rate}}% · cache {{read}} read / {{write}} write' },
|
|
425
|
-
|
|
479
|
+
// /cost 末尾口径:有金额 → 本地估算(官方单价 × 用量)、非平台账单;
|
|
480
|
+
// 无金额(无用量 / 全部未计价)→ 只解释 token,不套用金额口径。
|
|
481
|
+
// 旧文案"DSH 不提供 API 费用计量"与 T01/T03 的新展示/文档矛盾(#1089)。
|
|
482
|
+
'cost-note': { zh: '注:以上为本地估算(官方单价 × 用量),非平台账单,以 DeepSeek 平台为准', en: 'Note: the above is a local estimate (official unit rates × usage), not a platform bill — the DeepSeek platform is authoritative' },
|
|
483
|
+
'cost-note-no-amount': { zh: '注:以上仅为 token 用量,暂无可估算金额(本会话暂无用量,或模型未收录/非官方);估算仅供参考,以 DeepSeek 平台为准', en: 'Note: the above is token usage only; no amount can be estimated (no usage yet, or the model is unlisted/non-official). Estimates are for reference — the DeepSeek platform is authoritative' },
|
|
426
484
|
'status-cost-label': { zh: '≈', en: '≈' },
|
|
427
485
|
'status-cost-note': { zh: '估算(官方单价,非账单)', en: 'estimate (official rates, not a bill)' },
|
|
486
|
+
// 多模型/子代理费用拆解(状态栏 hover、/balance hover、/cost 共用)
|
|
487
|
+
'cost-session-estimate': { zh: '本会话估算 ≈¥{{cost}}', en: 'Session estimate ≈¥{{cost}}' },
|
|
488
|
+
'cost-split-main': { zh: '主会话 ¥{{cost}}', en: 'main ¥{{cost}}' },
|
|
489
|
+
'cost-split-subagent': { zh: '子代理 ¥{{cost}}', en: 'subagent ¥{{cost}}' },
|
|
490
|
+
'cost-unpriced': { zh: '未计价 {{tokens}} tok', en: 'unpriced {{tokens}} tok' },
|
|
428
491
|
// 高峰/空闲时段名(用户玩梗命名:高峰=梁文峰,低谷=梁文谷)
|
|
429
492
|
'cost-peak-name': { zh: '梁文峰', en: 'peak' },
|
|
430
493
|
'cost-idle-name': { zh: '梁文谷', en: 'idle' },
|
|
@@ -473,13 +536,14 @@ const dict = {
|
|
|
473
536
|
'login-base-url': { zh: 'Base URL: {{url}}', en: 'Base URL: {{url}}' },
|
|
474
537
|
'login-official-endpoint': { zh: '官方端点', en: 'official endpoint' },
|
|
475
538
|
'login-logout-hint': { zh: '使用 /provider 管理 DSH 凭据;若来源为 env,请删除对应环境变量并重启 dsh-tui', en: 'Manage DSH credentials with /provider; for env sources, remove the corresponding environment variable and restart dsh-tui' },
|
|
476
|
-
// /login 的 OAuth
|
|
477
|
-
'login-oauth-heading': { zh: '
|
|
539
|
+
// /login 的 OAuth 账号状态段(内置 OAuth 模块挂载时追加)
|
|
540
|
+
'login-oauth-heading': { zh: 'OAuth 账号:', en: 'OAuth accounts:' },
|
|
478
541
|
'login-oauth-row': { zh: ' {{provider}} — {{state}}', en: ' {{provider}} — {{state}}' },
|
|
479
542
|
'login-oauth-in': { zh: '已登录 · 令牌到期 {{time}}', en: 'signed in · token expires {{time}}' },
|
|
543
|
+
'login-oauth-in-no-expiry': { zh: '已登录', en: 'signed in' },
|
|
480
544
|
'login-oauth-expired': { zh: '已登录但令牌已过期,重新登录可恢复', en: 'signed in but the token expired — sign in again to restore' },
|
|
481
545
|
'login-oauth-signed-out': { zh: '未登录', en: 'not signed in' },
|
|
482
|
-
'login-oauth-hint': { zh: ' 登录/登出:/provider
|
|
546
|
+
'login-oauth-hint': { zh: ' 登录/登出:/provider 账号登录,或 /auth login <provider>', en: ' Sign in/out: /provider account sign-in, or /auth login <provider>' },
|
|
483
547
|
'permission-policy-hint': { zh: 'DSH 权限策略由 fs-policy / bash-sandbox 配置决定(当前 leaf:workspace 内读写、写入需已读文件)。', en: 'DSH permission policy is set by fs-policy / bash-sandbox config (current leaf: read/write in workspace, writes need a prior read).' },
|
|
484
548
|
'permission-approval-hint': { zh: '审批通道已挂载:命令申请权限提升(sandbox_permissions)时弹出审批条,Yes 放行一次、No / Esc 拒绝。', en: 'The approval channel is mounted: sandbox escalations (sandbox_permissions) raise an approval bar — Yes allows once, No / Esc rejects.' },
|
|
485
549
|
'permission-root-hint': { zh: '当前文件系统策略以工作目录为根:{{cwd}}', en: 'Current filesystem policy is rooted at the working directory: {{cwd}}' },
|
|
@@ -532,7 +596,7 @@ const dict = {
|
|
|
532
596
|
'vim-on': { zh: 'vim 模式已开启(Esc 切 normal,i/a/o 回 insert)', en: 'vim mode on (Esc = normal, i/a/o = insert)' },
|
|
533
597
|
'vim-off': { zh: 'vim 模式已关闭', en: 'vim mode off' },
|
|
534
598
|
'terminal-setup-hint': { zh: '推荐 Windows Terminal(≥110 列、等宽字体、TrueColor)。', en: 'Recommended: Windows Terminal (≥110 columns, monospace, TrueColor).' },
|
|
535
|
-
'terminal-paste-hint': { zh: '{{
|
|
599
|
+
'terminal-paste-hint': { zh: '{{keys}} 粘贴文本、文件路径或图片;Ctrl+Shift+V 终端原生粘贴;右键粘贴同样可用;快捷键可在 /settings 修改。', en: '{{keys}} pastes text, file paths, or images; Ctrl+Shift+V is native terminal paste; right-click paste also works; remappable via /settings.' },
|
|
536
600
|
'connect-none': { zh: '当前环境未提供远程连接服务。', en: 'No remote connection service is available in this environment.' },
|
|
537
601
|
'theme-switch-failed': { zh: '主题「{{name}}」切换失败(无法写入 ~/.dsh-tui/theme.json)', en: 'Theme "{{name}}" switch failed (cannot write ~/.dsh-tui/theme.json)' },
|
|
538
602
|
'interrupt-delivered': { zh: '已打断当前回合,{{n}} 条消息立即处理', en: 'Interrupted current turn, {{n}} messages processed immediately' },
|
|
@@ -634,6 +698,7 @@ const dict = {
|
|
|
634
698
|
'mode-plan': { zh: '计划模式', en: 'plan mode' },
|
|
635
699
|
'mode-full': { zh: '完全访问', en: 'full access' },
|
|
636
700
|
'mode-plan-unavailable': { zh: '当前 preset 未注册 /plan 命令,无法切换计划模式', en: 'The active preset does not register /plan; cannot toggle plan mode' },
|
|
701
|
+
'mode-switch-failed': { zh: '模式切换失败 · {{err}}', en: 'Mode switch failed · {{err}}' },
|
|
637
702
|
'mode-permission-unregistered': { zh: '当前 preset 未注册 /permission 命令,无法切换权限模式', en: 'The active preset does not register /permission; cannot switch the permission mode' },
|
|
638
703
|
'mode-permission-invoke-failed': { zh: '/permission 切换失败,请重试或查看日志', en: '/permission switch failed; retry or check the logs' },
|
|
639
704
|
'mode-permission-unconfirmed': { zh: '权限切换未被 DSH 确认,模式未改变', en: 'The permission switch was not confirmed by DSH; the mode is unchanged' },
|
|
@@ -641,6 +706,58 @@ const dict = {
|
|
|
641
706
|
'cmd-desc-permission': { zh: '切换权限预设(沙箱模式 + 审批策略)', en: 'Switch the permission preset (sandbox mode + approval policy)' },
|
|
642
707
|
// ── components/LogoV2.tsx ───────────────────────────────────────────
|
|
643
708
|
'logo-tagline': { zh: '探索未至之境!', en: 'Explore the uncharted!' },
|
|
709
|
+
// Star easter egg (bottom welcome line on ~1/20 of mounts, see
|
|
710
|
+
// components/splashEggs.ts): the sentence is split around the repo
|
|
711
|
+
// hyperlink — lead + link + tail — so both halves are translatable and
|
|
712
|
+
// the rendered width can be measured for centering. English stays short
|
|
713
|
+
// on purpose: without OSC 8 support the link degrades to the 38-column
|
|
714
|
+
// URL, and lead+URL+tail has to fit an 80-column terminal without wrapping.
|
|
715
|
+
// 开屏求 star 彩蛋(splashEggs.ts + LogoV2):平时是 logo-tagline,跨里程碑
|
|
716
|
+
// 时换成"标题 + 数字 + 求星"三行,标题先出、其余两行每秒跟一行。
|
|
717
|
+
'logo-star-title': { zh: '鲸鱼娘好像在等一颗小星星…… ☆', en: 'The whale girl seems to be waiting for a little star… ☆' },
|
|
718
|
+
'logo-star-caught': { zh: '鲸鱼娘捡到一颗小星星啦 ✨', en: 'The whale girl caught a little star ✨' },
|
|
719
|
+
'logo-star-stats': { zh: '已陪你 {{hours}} 小时 · 第 {{launches}} 次打开', en: '{{hours}}h together · launch #{{launches}}' },
|
|
720
|
+
'logo-star-ask': { zh: '喜欢 dshTUI 的话,顺手点亮一颗 {{star}}?(点这一行或 {{key}} 一键支持)', en: 'If you like dsh-TUI, would you light a {{star}}? (click this line or {{key}})' },
|
|
721
|
+
'cmd-desc-star': { zh: '给这个项目点个 star(用 gh 一键)' },
|
|
722
|
+
'star-ok': { zh: '已 star,谢谢!', en: 'Starred — thank you!' },
|
|
723
|
+
'star-no-gh': {
|
|
724
|
+
zh: '没找到 gh(GitHub CLI),已经替你在浏览器里打开仓库页:{{url}}。装一个 gh 就能一键 star:https://cli.github.com',
|
|
725
|
+
en: 'gh (GitHub CLI) is not installed, so I opened the repo page in your browser: {{url}}. Install gh for one-key starring: https://cli.github.com',
|
|
726
|
+
},
|
|
727
|
+
'star-not-authed': {
|
|
728
|
+
zh: 'gh 还没登录,已经替你在浏览器里打开仓库页:{{url}}。想一键 star 就先跑 gh auth login',
|
|
729
|
+
en: 'gh is not logged in, so I opened the repo page in your browser: {{url}}. Run gh auth login for one-key starring',
|
|
730
|
+
},
|
|
731
|
+
'star-failed': {
|
|
732
|
+
zh: '一键 star 没成功:{{detail}}(也可以直接在浏览器里打开 {{url}})',
|
|
733
|
+
en: 'One-key star failed: {{detail}} (or open {{url}} in a browser)',
|
|
734
|
+
},
|
|
735
|
+
// 99h / 999 次的"求 star"开屏弹窗(StarPrompt.tsx)。正文是维护者定的
|
|
736
|
+
// 原话——诚恳、不催;标题按里程碑取"小时"或"次启动"。**每一行都是
|
|
737
|
+
// 一行**(48 列内不折行),所以排版与作者写的断句完全一致。
|
|
738
|
+
'star-modal-title-hours': { zh: '🐳 已经陪你 {{hours}} 小时了!', en: '🐳 {{hours}} hours together!' },
|
|
739
|
+
'star-modal-title-launches': { zh: '🐳 已经陪你 {{launches}} 次启动了!', en: '🐳 {{launches}} launches together!' },
|
|
740
|
+
'star-modal-body-1': { zh: '不知不觉,dshTUI 已经陪你走了这么久啦。', en: 'Before you noticed, dsh-TUI had already come this far with you.' },
|
|
741
|
+
'star-modal-body-2': { zh: '如果它有让你的 DSH 更好用一点、', en: 'If it made your DSH a little more usable,' },
|
|
742
|
+
'star-modal-body-3': { zh: '更顺手一点,或者只是让你开心了一点——', en: 'a little smoother — or just made you smile —' },
|
|
743
|
+
'star-modal-body-4': { zh: '那就送鲸鱼娘一颗小小的 Star 吧 ⭐', en: 'treat the whale girl to a tiny Star ⭐' },
|
|
744
|
+
'star-modal-body-5': { zh: '每一颗 Star,都会变成我们继续折腾', en: 'Every Star becomes fuel for us to keep tinkering' },
|
|
745
|
+
'star-modal-body-6': { zh: '和把 dshTUI 做得更好的动力!', en: 'and to keep making dsh-TUI better!' },
|
|
746
|
+
'star-modal-star': { zh: '投喂一颗 Star ⭐', en: 'Feed a Star ⭐' },
|
|
747
|
+
'star-modal-open': { zh: '在浏览器中打开 GitHub', en: 'Open GitHub in the browser' },
|
|
748
|
+
'star-modal-working': { zh: '正在点 star…', en: 'Starring…' },
|
|
749
|
+
'star-modal-hint': { zh: '↑↓ 选择 · **Enter** 确认 · **Esc** 下次一定 (´;ω;`)', en: '↑↓ choose · **Enter** confirm · **Esc** next time (´;ω;`)' },
|
|
750
|
+
// star 成功后的庆祝态(星光 + 鲸鱼喷水),几秒后卡片自己收场。
|
|
751
|
+
'star-modal-thanks-title': { zh: '🌟 收到 Star 啦!', en: '🌟 Star received!' },
|
|
752
|
+
'star-modal-thanks-1': { zh: '鲸鱼娘成功接住了一颗小星星 ~', en: 'The whale girl caught a little star ~' },
|
|
753
|
+
'star-modal-thanks-2': { zh: '谢谢你的支持!', en: 'Thank you for your support!' },
|
|
754
|
+
'star-modal-thanks-3': { zh: '这颗 Star 会变成 dshTUI 继续成长的动力。', en: 'This Star becomes fuel for dsh-TUI to keep growing.' },
|
|
755
|
+
'star-modal-thanks-4': { zh: '希望以后,它也能继续陪你走很久。', en: 'May it keep you company for a long time to come.' },
|
|
756
|
+
'star-modal-thanks-hint': { zh: '**Enter** / **Esc** 关闭', en: '**Enter** / **Esc** to close' },
|
|
757
|
+
'coupon-modal-title': { zh: '鲸鱼券', en: 'Whale coupon' },
|
|
758
|
+
'coupon-modal-received': { zh: 'DeepSeek 送你的 {{amount}} {{unit}}鲸鱼券到账啦~', en: 'Your {{amount}} {{unit}} whale coupon from DeepSeek is here ~' },
|
|
759
|
+
'coupon-modal-expiry': { zh: 'Deepy提醒:这张券 {{month}} 月 {{day}} 日 {{time}} 就要过期啦,别忘记用掉哦~', en: 'Deepy says: this coupon expires on {{month}}/{{day}} at {{time}}. Do not forget to use it ~' },
|
|
760
|
+
'coupon-modal-hint': { zh: '**Enter** / **Esc** 收好鲸鱼券', en: '**Enter** / **Esc** to tuck it away' },
|
|
644
761
|
'logo-tip-prefix': { zh: '提示:', en: 'Tip: ' },
|
|
645
762
|
'logo-tip-more': { zh: '更多技巧', en: 'more tips' },
|
|
646
763
|
// Upstream-drift notice (merged one-liner under the tip; copy explains
|
|
@@ -675,6 +792,7 @@ const dict = {
|
|
|
675
792
|
'input-editor-failed': { zh: '外部编辑器失败:{{name}}', en: 'External editor failed: {{name}}' },
|
|
676
793
|
'input-clipboard-read-failed': { zh: '读取剪贴板失败', en: 'Failed to read the clipboard' },
|
|
677
794
|
'input-clipboard-unavailable': { zh: '无法读取剪贴板:没有可用的 wl-paste / xclip / xsel(未安装或会话不可连接)', en: 'Cannot read clipboard: no usable wl-paste / xclip / xsel (not installed or session unreachable)' },
|
|
795
|
+
'input-clipboard-unavailable-wsl': { zh: '无法读取剪贴板:WSL 下请安装 wl-clipboard(需要 WSLg),或启用 Windows interop 以调用 powershell.exe', en: 'Cannot read clipboard: in WSL install wl-clipboard (needs WSLg) or enable Windows interop so powershell.exe is reachable' },
|
|
678
796
|
'input-image-pasted': { zh: '已粘贴图片 {{token}}', en: 'Pasted image {{token}}' },
|
|
679
797
|
'input-image-pasted-adjusted': { zh: '已粘贴图片 {{token}}({{detail}})', en: 'Pasted image {{token}} ({{detail}})' },
|
|
680
798
|
'input-image-detail-resized': { zh: '已缩放至 {{width}}×{{height}}', en: 'resized to {{width}}×{{height}}' },
|
|
@@ -733,7 +851,7 @@ const dict = {
|
|
|
733
851
|
// 按行折叠的溢出提示:卡片正文行预算(capLines)、终端卡多行命令折叠
|
|
734
852
|
// (foldTerminalCommand)、分屏 diff 隐藏行(SplitDiffView)。按字符折叠
|
|
735
853
|
// 的行内标记见 long-line-folded。
|
|
736
|
-
'lines-folded-expand': { zh: '… +{{n}} 行(
|
|
854
|
+
'lines-folded-expand': { zh: '… +{{n}} 行({{key}} 展开)', en: '… +{{n}} lines ({{key}} to expand)' },
|
|
737
855
|
// ── components/SuggestionCard.tsx(/ 命令菜单 · @ 文件菜单)─────────
|
|
738
856
|
'sugg-commands-title': { zh: '命令', en: 'commands' },
|
|
739
857
|
'sugg-files-title': { zh: '文件', en: 'files' },
|
|
@@ -760,21 +878,21 @@ const dict = {
|
|
|
760
878
|
// ── components/HelpMenu.tsx ─────────────────────────────────────────
|
|
761
879
|
'help-for-commands': { zh: '/ 查看命令', en: '/ for commands' },
|
|
762
880
|
'help-this-help': { zh: '? 查看本帮助', en: '? for this help' },
|
|
763
|
-
'help-verbose-output': { zh: '{{
|
|
764
|
-
'help-open-trajectory': { zh: '{{
|
|
765
|
-
'help-search-history': { zh: '{{
|
|
881
|
+
'help-verbose-output': { zh: '{{key}} 详细输出', en: '{{key}} for verbose output' },
|
|
882
|
+
'help-open-trajectory': { zh: '{{key}} 打开会话轨迹', en: '{{key}} to open trajectory' },
|
|
883
|
+
'help-search-history': { zh: '{{key}} 搜索历史', en: '{{key}} to search history' },
|
|
766
884
|
'help-interrupt': { zh: 'ctrl+c 打断', en: 'ctrl+c to interrupt' },
|
|
767
885
|
'help-exit': { zh: 'ctrl+d 退出', en: 'ctrl+d to exit' },
|
|
768
|
-
'help-redraw': { zh: '{{
|
|
886
|
+
'help-redraw': { zh: '{{key}} 重绘', en: '{{key}} to redraw' },
|
|
769
887
|
'help-clear-input': { zh: 'esc 清空输入', en: 'esc to clear input' },
|
|
770
888
|
'help-history-nav': { zh: '↑/↓ 历史', en: '↑/↓ for history' },
|
|
771
889
|
'help-move-cursor': { zh: '←/→ 移动光标', en: '←/→ to move cursor' },
|
|
772
890
|
'help-word-jumps': { zh: '{{mod}}←/→ 按词跳转', en: '{{mod}}←/→ for word jumps' },
|
|
773
891
|
'help-complete-command': { zh: 'tab 补全命令', en: 'tab to complete command' },
|
|
774
892
|
'help-cycle-mode': { zh: 'shift+tab 切换模式', en: 'shift+tab to cycle mode' },
|
|
775
|
-
'help-open-editor': { zh: '
|
|
776
|
-
'help-fold-todos': { zh: '{{
|
|
777
|
-
'goal-todo-fold-hint': { zh: '{{
|
|
893
|
+
'help-open-editor': { zh: '{{key}} 打开编辑器', en: '{{key}} to open editor' },
|
|
894
|
+
'help-fold-todos': { zh: '{{key}} 折叠待办', en: '{{key}} to fold todos' },
|
|
895
|
+
'goal-todo-fold-hint': { zh: '{{key}} 折叠', en: '{{key}} to fold' },
|
|
778
896
|
'help-commands-title': { zh: '命令:', en: 'commands:' },
|
|
779
897
|
'help-scroll-hint': {
|
|
780
898
|
zh: '↑/↓ 滚动 · PgUp/PgDn 翻页 · Home/End 首尾 · Esc 关闭',
|
|
@@ -787,7 +905,7 @@ const dict = {
|
|
|
787
905
|
'interrupted-ask-next': { zh: '· 接下来想让 DeepSeek 做什么?', en: '· What should DeepSeek do instead?' },
|
|
788
906
|
// ── components/MessageList.tsx ──────────────────────────────────────
|
|
789
907
|
'load-earlier': { zh: ' ↑ 加载更早消息(会话日志完整,/export 导出全文) ', en: ' ↑ load earlier messages (full session log; /export for full text) ' },
|
|
790
|
-
'show-previous-messages': { zh: '
|
|
908
|
+
'show-previous-messages': { zh: ' {{key}} 显示前 {{n}} 条消息 ', en: ' {{key}} to show {{n}} previous messages ' },
|
|
791
909
|
// ── screens/Chat.tsx (/resume) ──────────────────────────────────────
|
|
792
910
|
'resume-resumed': { zh: '已恢复会话', en: 'Session resumed' },
|
|
793
911
|
// ── channel/agent-view-projection.ts + background-action.ts (session overview) ─
|
|
@@ -862,10 +980,10 @@ const dict = {
|
|
|
862
980
|
'hint-ext-dialog-input': { zh: '**Enter** 确认 · Esc 取消', en: '**Enter** to confirm · Esc to cancel' },
|
|
863
981
|
'hint-adjust-done': { zh: '**←/→** 调整 · Enter/Esc 完成', en: '**←/→** to adjust · Enter/Esc to done' },
|
|
864
982
|
'hint-history-search': { zh: '↑/↓ 选择 · **Enter** 确认 · Esc 取消', en: '↑/↓ to navigate · **Enter** to select · Esc to cancel' },
|
|
865
|
-
'hint-expand-ctrl-o': { zh: '(
|
|
983
|
+
'hint-expand-ctrl-o': { zh: '({{key}} 展开)', en: '({{key}} to expand)' },
|
|
866
984
|
// 转录里的超长单行(utils/fold-long-lines.ts):行尾内联标记。鼠标点整行
|
|
867
|
-
// (工具卡点卡面)即可展开/收起,键盘走 ctrl+o
|
|
868
|
-
'long-line-folded': { zh: '… 已折叠 {{n}} 字符(点击或
|
|
985
|
+
// (工具卡点卡面)即可展开/收起,键盘走 transcript 键(默认 ctrl+o)—— 两种都写进文案。
|
|
986
|
+
'long-line-folded': { zh: '… 已折叠 {{n}} 字符(点击或 {{key}} 展开)', en: '… {{n}} chars folded (click or {{key}} to expand)' },
|
|
869
987
|
// ── components/FileActionsPanel.tsx(点击文件路径弹出的操作菜单)──
|
|
870
988
|
'file-actions-title': { zh: '文件操作', en: 'File actions' },
|
|
871
989
|
'file-actions-open': { zh: '打开文件', en: 'Open file' },
|
|
@@ -1005,11 +1123,13 @@ const dict = {
|
|
|
1005
1123
|
'question-header-progress': { zh: ' 📋 提问 · 第 {{position}}/{{total}} 题{{remaining}} ', en: ' 📋 Question {{position}}/{{total}} {{remaining}} ' },
|
|
1006
1124
|
'question-remaining-more': { zh: ' · 还剩 {{n}} 题', en: ' · {{n}} left' },
|
|
1007
1125
|
'question-hint-type': { zh: '输入回答', en: 'Type answer' },
|
|
1008
|
-
'question-hint-paste': { zh: '
|
|
1126
|
+
'question-hint-paste': { zh: '{{key}} 粘贴', en: '{{key}} paste' },
|
|
1009
1127
|
'question-hint-enter': { zh: 'Enter 提交', en: 'Enter submit' },
|
|
1010
1128
|
'question-hint-back': { zh: '↑ 返回选项', en: '↑ back to options' },
|
|
1011
1129
|
'question-hint-esc': { zh: 'Esc 中断', en: 'Esc cancel' },
|
|
1012
1130
|
'question-hint-previous': { zh: 'Esc 上一题', en: 'Esc previous question' },
|
|
1131
|
+
'question-hint-switch': { zh: '←/→ 换题', en: '←/→ switch question' },
|
|
1132
|
+
'question-hint-switch-input': { zh: '行首←/行尾→ 换题', en: '←/→ at the text edge switches question' },
|
|
1013
1133
|
'question-hint-cancel': { zh: 'Ctrl+C 取消整批', en: 'Ctrl+C cancel batch' },
|
|
1014
1134
|
'question-hint-selected': { zh: '已选 {{n}}', en: 'Selected {{n}}' },
|
|
1015
1135
|
'question-hint-select': { zh: '↑/↓ 选择', en: '↑/↓ select' },
|
|
@@ -1048,8 +1168,15 @@ const dict = {
|
|
|
1048
1168
|
'subagent-dashboard-hint-basic': { zh: '↑/↓ 浏览 · Esc 关闭', en: '↑/↓ browse · Esc close' },
|
|
1049
1169
|
'subagent-dashboard-hint-detail': { zh: '↑/↓ 选择 · Enter 查看详情 · Esc 关闭', en: '↑/↓ select · Enter view detail · Esc close' },
|
|
1050
1170
|
'subagent-card-prefix': { zh: '子代理:', en: 'Subagent: ' },
|
|
1171
|
+
'subagent-mode-continuable': { zh: '♻ 可继续', en: '♻ continuable' },
|
|
1172
|
+
'subagent-mode-one-shot': { zh: '◇ 一次性', en: '◇ one-shot' },
|
|
1051
1173
|
'subagent-tab-summary': { zh: '摘要', en: 'Summary' },
|
|
1052
1174
|
'subagent-no-summary': { zh: '暂无摘要', en: 'No summary yet' },
|
|
1175
|
+
'subagent-thinking-fold': { zh: '思考 · {{count}} 段 · {{chars}} 字', en: 'Thinking · {{count}} paras · {{chars}} chars' },
|
|
1176
|
+
'subagent-thinking-expand': { zh: 'Enter 展开', en: 'Enter expand' },
|
|
1177
|
+
'subagent-thinking-collapse': { zh: 'Enter 收起', en: 'Enter collapse' },
|
|
1178
|
+
'subagent-conclusion': { zh: '结论', en: 'Conclusion' },
|
|
1179
|
+
'subagent-hint-fold': { zh: 'Enter 思考折叠', en: 'Enter thinking' },
|
|
1053
1180
|
'subagent-no-tools': { zh: '暂无工具调用', en: 'No tool calls' },
|
|
1054
1181
|
'subagent-hint-page': { zh: '切页', en: 'page' },
|
|
1055
1182
|
'subagent-hint-scroll': { zh: '滚动', en: 'scroll' },
|
|
@@ -1068,12 +1195,17 @@ const dict = {
|
|
|
1068
1195
|
'jobs-panel-count-failed': { zh: '失败', en: 'failed' },
|
|
1069
1196
|
'jobs-panel-empty': { zh: '当前会话暂无后台任务', en: 'No background jobs in the current session' },
|
|
1070
1197
|
'jobs-panel-empty-hint': { zh: '后台运行的命令(run_in_background)会出现在这里', en: 'Commands the agent runs in the background appear here' },
|
|
1071
|
-
'jobs-panel-hint': { zh: '↑/↓
|
|
1198
|
+
'jobs-panel-hint': { zh: '↑/↓ 或点击选择 · k 两次停止选中任务 · Esc 关闭', en: '↑/↓ or click to select · press k twice to stop the focused job · Esc close' },
|
|
1199
|
+
'jobs-kill-armed': { zh: '再按 k 确认停止', en: 'press k again to confirm' },
|
|
1072
1200
|
'jobs-panel-started': { zh: '开始', en: 'started' },
|
|
1073
1201
|
'jobs-panel-finished': { zh: '结束', en: 'finished' },
|
|
1074
1202
|
'jobs-panel-command': { zh: '命令', en: 'command' },
|
|
1203
|
+
'jobs-panel-output': { zh: '输出', en: 'output' },
|
|
1075
1204
|
'jobs-panel-output-at': { zh: '输出更新于', en: 'output updated' },
|
|
1076
1205
|
'jobs-panel-no-output-yet': { zh: '(暂无镜像输出——agent 读取后显示)', en: '(no mirrored output yet — appears when the agent reads it)' },
|
|
1206
|
+
'jobs-output-gap': { zh: '……较早的输出已丢弃……', en: '……earlier output discarded……' },
|
|
1207
|
+
'jobs-output-dropped': { zh: '部分输出未保留', en: 'some output not retained' },
|
|
1208
|
+
'jobs-output-spill': { zh: '完整输出落盘:{{path}}', en: 'full output retained at: {{path}}' },
|
|
1077
1209
|
'jobs-toast-completed': { zh: '后台任务完成:{{label}}({{id}} · 用时 {{duration}})', en: 'Background job completed: {{label}} ({{id}} · {{duration}})' },
|
|
1078
1210
|
'jobs-toast-failed': { zh: '后台任务失败:{{label}}({{id}} · {{detail}})', en: 'Background job failed: {{label}} ({{id}} · {{detail}})' },
|
|
1079
1211
|
'jobs-toast-killed': { zh: '后台任务已停止:{{label}}({{id}} · 用时 {{duration}})', en: 'Background job killed: {{label}} ({{id}} · {{duration}})' },
|
|
@@ -1083,7 +1215,7 @@ const dict = {
|
|
|
1083
1215
|
'plan-review-fallback-header': { zh: '计划评审', en: 'Plan review' },
|
|
1084
1216
|
'plan-review-feedback-placeholder': { zh: '输入反馈,告诉模型要改什么…', en: 'Tell the model what to change…' },
|
|
1085
1217
|
'plan-review-approve-needs-empty': { zh: '请先清空反馈再批准(或在输入行回车提交反馈)', en: 'Clear the feedback to approve (or press Enter on the input row to send it)' },
|
|
1086
|
-
'plan-review-hint': { zh: '↑/↓ 选择 · 1/2 快选 · 打字输入反馈 ·
|
|
1218
|
+
'plan-review-hint': { zh: '↑/↓ 选择 · 1/2 快选 · 打字输入反馈 · {{paste}} 粘贴 · Enter 提交 · Esc 打断评审', en: '↑/↓ select · 1/2 quick-pick · type feedback · {{paste}} paste · Enter submit · Esc dismiss' },
|
|
1087
1219
|
// ── providerWizard.ts ────────────────────────────────────────────────
|
|
1088
1220
|
'provider-unavailable': { zh: '/provider 需要经 dsh profile 启动(settings / credentials / llm-pi-ai 服务未挂载)', en: '/provider requires starting through a dsh profile (settings / credentials / llm-pi-ai services not mounted)' },
|
|
1089
1221
|
'provider-q-mode': { zh: '要添加哪种模型提供方?', en: 'Which kind of model provider do you want to add?' },
|
|
@@ -1116,13 +1248,26 @@ const dict = {
|
|
|
1116
1248
|
'provider-route-exists-warning': { zh: '⚠ 该路由已有配置,写入将覆盖现有设置', en: '⚠ This route is already configured — writing overwrites it' },
|
|
1117
1249
|
'provider-opt-confirm-write': { zh: '写入并启用', en: 'Write and enable' },
|
|
1118
1250
|
'provider-opt-confirm-cancel': { zh: '取消', en: 'Cancel' },
|
|
1251
|
+
'provider-line-action-added': { zh: '✓ {{route}} · 已添加', en: '✓ {{route}} · added' },
|
|
1252
|
+
'provider-line-action-updated': { zh: '✓ {{route}} · 配置已更新', en: '✓ {{route}} · configuration updated' },
|
|
1253
|
+
'provider-line-action-updated-models': { zh: '✓ {{route}} · 模型列表已更新', en: '✓ {{route}} · model list updated' },
|
|
1254
|
+
'provider-line-action-deleted': { zh: '✓ {{route}} · 已删除', en: '✓ {{route}} · deleted' },
|
|
1119
1255
|
'provider-line-route': { zh: '路由:{{route}}', en: 'Route: {{route}}' },
|
|
1120
1256
|
'provider-line-keyref': { zh: '密钥引用:{{ref}}(已写入 ~/.dsh/.credentials.yaml)', en: 'Key ref: {{ref}} (stored in ~/.dsh/.credentials.yaml)' },
|
|
1257
|
+
'provider-line-keyref-preview': { zh: '密钥引用:{{ref}}(确认后写入 ~/.dsh/.credentials.yaml)', en: 'Key ref: {{ref}} (will be stored in ~/.dsh/.credentials.yaml after confirmation)' },
|
|
1121
1258
|
'provider-line-keyref-env': { zh: '密钥引用:{{ref}}(进程环境已提供同名变量,跳过写入)', en: 'Key ref: {{ref}} (already in the process environment, write skipped)' },
|
|
1122
|
-
'provider-line-
|
|
1123
|
-
'provider-line-protocol': { zh: '协议:{{api}}', en: 'Protocol: {{api}}' },
|
|
1259
|
+
'provider-line-endpoint': { zh: '端点:{{url}}', en: 'Endpoint: {{url}}' },
|
|
1124
1260
|
'provider-line-models': { zh: '模型:{{models}}', en: 'Models: {{models}}' },
|
|
1125
1261
|
'provider-line-models-catalog': { zh: '模型:整个 catalog(未收窄)', en: 'Models: the whole catalog (not narrowed)' },
|
|
1262
|
+
'provider-models-delta-added': { zh: '新增 {{n}}', en: '+{{n}}' },
|
|
1263
|
+
'provider-models-delta-removed': { zh: '移除 {{n}}', en: '-{{n}}' },
|
|
1264
|
+
'provider-models-delta-wrap': { zh: '({{parts}})', en: ' ({{parts}})' },
|
|
1265
|
+
'provider-row-model-new': { zh: '线上新增', en: 'new on endpoint' },
|
|
1266
|
+
'provider-live-fetch-failed': { zh: '端点模型列表拉取失败,仅显示内置目录', en: 'Live model fetch failed — showing the installed catalog only' },
|
|
1267
|
+
'provider-catalog-fetch-failed': { zh: '内置目录读取失败,线上模型容量不会写入 catalog 配置', en: 'Installed catalog lookup failed — endpoint capacities will not be written into the catalog profile' },
|
|
1268
|
+
'provider-live-fetch-unavailable': { zh: '该路由无法安全实时拉取模型,已回退到内置目录', en: 'Live model fetch is unavailable for this route — showing the installed catalog only' },
|
|
1269
|
+
'provider-catalog-models-only': { zh: '该 catalog 路由的协议无法确定,线上新增模型请先改用自定义端点并指定协议', en: 'This catalog route has no single known protocol; use a custom endpoint with an explicit protocol for new models' },
|
|
1270
|
+
'provider-catalog-snapshot-note': { zh: '下方 {{n}} 项来自内置目录快照;该路由未设置 baseURL,无法实时拉取端点模型', en: 'The {{n}} items below come from the installed catalog snapshot; this route sets no baseURL, so its endpoint cannot be probed live' },
|
|
1126
1271
|
'provider-rollback-ok': { zh: '已回滚刚写入的密钥', en: 'Rolled back the just-written key' },
|
|
1127
1272
|
'provider-rollback-failed': { zh: '密钥回滚失败,请手动检查 ~/.dsh/.credentials.yaml', en: 'Key rollback failed — check ~/.dsh/.credentials.yaml manually' },
|
|
1128
1273
|
'provider-write-failed': { zh: 'provider 配置写入失败 · {{{err}}}', en: 'Failed to write the provider configuration · {{{err}}}' },
|
|
@@ -1132,18 +1277,19 @@ const dict = {
|
|
|
1132
1277
|
'provider-q-switch': { zh: '立即切换到新 provider?', en: 'Switch to the new provider now?' },
|
|
1133
1278
|
'provider-opt-switch-now': { zh: '切换到 {{model}}', en: 'Switch to {{model}}' },
|
|
1134
1279
|
'provider-opt-switch-keep': { zh: '保持当前模型', en: 'Keep the current model' },
|
|
1135
|
-
// /provider OAuth
|
|
1136
|
-
'provider-opt-oauth': { zh: '
|
|
1137
|
-
'provider-opt-oauth-desc': { zh: '
|
|
1138
|
-
'provider-q-oauth': { zh: '
|
|
1280
|
+
// /provider OAuth 分支(内置 OAuth 模块挂载 ctx.dshAuth 时出现)
|
|
1281
|
+
'provider-opt-oauth': { zh: '账号登录(OAuth)', en: 'Account sign-in (OAuth)' },
|
|
1282
|
+
'provider-opt-oauth-desc': { zh: '使用当前宿主支持的账号登录,无需 API key', en: 'Sign in with an account supported by this host — no API key' },
|
|
1283
|
+
'provider-q-oauth': { zh: '登录哪个账号?', en: 'Sign in to which account?' },
|
|
1139
1284
|
'provider-oauth-state-in': { zh: '已登录 · 令牌到期 {{time}}', en: 'Signed in · token expires {{time}}' },
|
|
1285
|
+
'provider-oauth-state-in-no-expiry': { zh: '已登录', en: 'Signed in' },
|
|
1140
1286
|
'provider-oauth-state-expired': { zh: '已登录但令牌已过期,重新登录即可恢复', en: 'Signed in but the token expired — sign in again to restore' },
|
|
1141
1287
|
'provider-q-oauth-signed': { zh: '{{provider}} 已登录,接下来?', en: '{{provider}} is signed in — what next?' },
|
|
1142
1288
|
'provider-opt-oauth-relogin': { zh: '重新登录', en: 'Sign in again' },
|
|
1143
1289
|
'provider-opt-oauth-relogin-desc': { zh: '更换账号或刷新已有凭据', en: 'Switch accounts or refresh the stored credential' },
|
|
1144
1290
|
'provider-opt-oauth-logout': { zh: '登出', en: 'Sign out' },
|
|
1145
1291
|
'provider-opt-oauth-logout-desc': { zh: '删除本地保存的 OAuth 凭据', en: 'Remove the locally stored OAuth credential' },
|
|
1146
|
-
'provider-oauth-none': { zh: '没有可 OAuth 登录的 provider(检查
|
|
1292
|
+
'provider-oauth-none': { zh: '没有可 OAuth 登录的 provider(检查 OAuth 模块是否挂载)', en: 'No OAuth-capable providers (check whether the OAuth module is mounted)' },
|
|
1147
1293
|
'provider-oauth-login-ok': { zh: '{{provider}} 登录成功', en: 'Signed in to {{provider}}' },
|
|
1148
1294
|
'provider-oauth-login-failed': { zh: 'OAuth 登录失败 · {{{err}}}', en: 'OAuth sign-in failed · {{{err}}}' },
|
|
1149
1295
|
'provider-oauth-logout-ok': { zh: '{{provider}} 已登出', en: 'Signed out of {{provider}}' },
|
|
@@ -1151,6 +1297,26 @@ const dict = {
|
|
|
1151
1297
|
'provider-line-oauth-flow': { zh: '登录方式:{{flow}}', en: 'Sign-in: {{flow}}' },
|
|
1152
1298
|
'provider-line-oauth-expires': { zh: '令牌到期:{{time}}', en: 'Token expires: {{time}}' },
|
|
1153
1299
|
'provider-line-oauth-out': { zh: '已登出,本地 OAuth 凭据已删除', en: 'Signed out — the stored OAuth credential was removed' },
|
|
1300
|
+
// 内置 OAuth 与 pi-ai AuthInteraction 之间的问卷桥(provider 自带提示原文不改写)
|
|
1301
|
+
'oauth-event-auth-url': { zh: '打开以下 URL 完成授权(本地回调会自动结束登录):\n{{url}}', en: 'Open this URL to authorize (a local callback completes sign-in):\n{{url}}' },
|
|
1302
|
+
'oauth-event-device-code': { zh: '访问 {{uri}} 并输入以下代码:\n {{code}}', en: 'Visit {{uri}} and enter this code:\n {{code}}' },
|
|
1303
|
+
'oauth-copy-link': { zh: '复制授权链接', en: 'Copy authorization link' },
|
|
1304
|
+
'oauth-copy-code': { zh: '复制代码', en: 'Copy code' },
|
|
1305
|
+
'oauth-open-again': { zh: '重新打开浏览器', en: 'Open browser again' },
|
|
1306
|
+
'oauth-cancel': { zh: '取消登录', en: 'Cancel sign-in' },
|
|
1307
|
+
'oauth-auth-url-opened': { zh: '授权页面已在浏览器打开,请在浏览器中完成登录。', en: 'Authorization page opened in your browser — complete the sign-in there.' },
|
|
1308
|
+
'oauth-auth-url-opened-fallback': { zh: '若页面未打开,请复制下方链接手动访问。', en: 'If it did not open, copy the link below and open it by hand.' },
|
|
1309
|
+
'oauth-auth-url-manual': { zh: '打开以下 URL 完成授权。', en: 'Open this URL to authorize.' },
|
|
1310
|
+
'oauth-auth-url-copy-hint': { zh: '链接较长,换行后不宜手选;可使用复制操作。', en: 'Copy the link below (it is too long to select reliably once wrapped):' },
|
|
1311
|
+
'oauth-device-opened': { zh: '请在已打开的浏览器页面({{uri}})输入以下代码:', en: 'Enter this code on the page opened in your browser ({{uri}}):' },
|
|
1312
|
+
'oauth-device-manual': { zh: '访问 {{uri}} 并输入以下代码:', en: 'Visit {{uri}} and enter this code:' },
|
|
1313
|
+
'oauth-secret-unmasked': { zh: '此输入界面不会隐藏内容,请留意屏幕可见范围', en: 'Input is not masked on this surface — mind your screen' },
|
|
1314
|
+
'oauth-copied': { zh: '已复制,可粘贴到需要的位置。', en: 'Copied — paste it where you need it.' },
|
|
1315
|
+
'oauth-copy-failed': { zh: '复制失败;请手动选取文字。', en: 'Copy failed — no clipboard helper answered; select the text manually.' },
|
|
1316
|
+
'oauth-reopened': { zh: '已在浏览器重新打开。', en: 'Reopened in your browser.' },
|
|
1317
|
+
'oauth-open-failed': { zh: '无法打开浏览器,请改为复制链接。', en: 'Could not open the browser; copy the link instead.' },
|
|
1318
|
+
'oauth-waiting': { zh: '等待授权…', en: 'Waiting for authorization…' },
|
|
1319
|
+
'oauth-choose-action': { zh: '请选择一个操作。', en: 'Choose an action.' },
|
|
1154
1320
|
// /provider 动作层(添加/编辑;删除并入编辑菜单)
|
|
1155
1321
|
'provider-q-action': { zh: '要做什么?', en: 'What do you want to do?' },
|
|
1156
1322
|
'provider-opt-action-add': { zh: '添加新 provider', en: 'Add a new provider' },
|
|
@@ -1229,6 +1395,7 @@ const dict = {
|
|
|
1229
1395
|
'cmd-desc-reload': { zh: '重读偏好文件并立即生效' },
|
|
1230
1396
|
'cmd-desc-settings': { zh: '查看和编辑插件设置' },
|
|
1231
1397
|
'cmd-desc-doctor': { zh: '运行环境检查' },
|
|
1398
|
+
'cmd-desc-migrate': { zh: '从其他编程代理导入对话(claude-code/codex/omp/zcode/grok-build)' },
|
|
1232
1399
|
'cmd-desc-init': { zh: '在工作目录创建 AGENTS.md' },
|
|
1233
1400
|
'cmd-desc-agents': { zh: '查看本会话的子代理' },
|
|
1234
1401
|
'cmd-desc-jobs': { zh: '查看本会话的后台任务' },
|
|
@@ -2,7 +2,7 @@ import React, { PureComponent, type ReactNode } from "react";
|
|
|
2
2
|
import { EventEmitter } from "../events/emitter.js";
|
|
3
3
|
import { DragEvent } from "../events/drag-event.js";
|
|
4
4
|
import type { DOMElement } from "../dom.js";
|
|
5
|
-
import { type ParsedKey, type ParsedMouse } from "../parse-keypress.js";
|
|
5
|
+
import { type KeyParseState, type ParsedKey, type ParsedMouse } from "../parse-keypress.js";
|
|
6
6
|
import { type SelectionState } from "../selection.js";
|
|
7
7
|
import { TerminalQuerier } from "../terminal-querier.js";
|
|
8
8
|
import { type CursorDeclarationSetter } from "./CursorDeclarationContext.js";
|
|
@@ -49,7 +49,7 @@ export default class App extends PureComponent<Props, State> {
|
|
|
49
49
|
};
|
|
50
50
|
rawModeEnabledCount: number;
|
|
51
51
|
internal_eventEmitter: EventEmitter;
|
|
52
|
-
keyParseState:
|
|
52
|
+
keyParseState: KeyParseState;
|
|
53
53
|
incompleteEscapeTimer: NodeJS.Timeout | null;
|
|
54
54
|
xtversionProbe: NodeJS.Immediate | null;
|
|
55
55
|
xtversionAttempted: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/ink/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAS7D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/ink/components/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,11 @@ export default class App extends PureComponent {
|
|
|
57
57
|
// raw mode until all components don't need it anymore
|
|
58
58
|
rawModeEnabledCount = 0;
|
|
59
59
|
internal_eventEmitter = new EventEmitter();
|
|
60
|
-
keyParseState =
|
|
60
|
+
keyParseState = {
|
|
61
|
+
...INITIAL_STATE,
|
|
62
|
+
// Capability gate only — the parser lights up once it decodes a record.
|
|
63
|
+
win32Capable: supportsWin32InputMode(),
|
|
64
|
+
};
|
|
61
65
|
// Timer for flushing incomplete escape sequences
|
|
62
66
|
incompleteEscapeTimer = null;
|
|
63
67
|
// Deferred XTVERSION probe (setImmediate). Cleared on unmount so the
|
|
@@ -380,8 +384,17 @@ export default class App extends PureComponent {
|
|
|
380
384
|
};
|
|
381
385
|
// Process input through the parser and handle the results
|
|
382
386
|
processInput = (input) => {
|
|
387
|
+
// Host-injected query evidence (#1142 pattern): the parser only claims
|
|
388
|
+
// a terminal-response tail when a query of the matching expected type
|
|
389
|
+
// is genuinely awaiting an answer. This is the live query lifecycle,
|
|
390
|
+
// not a recency window — a settled query stops authorizing at once.
|
|
391
|
+
// Injected per call — newState replaces the whole state object, so a
|
|
392
|
+
// value stored once would go stale. Read-only for the parser.
|
|
393
|
+
const terminalExpectedResponseTypes = [
|
|
394
|
+
...this.querier.pendingResponseTypes,
|
|
395
|
+
];
|
|
383
396
|
// Parse input using our state machine
|
|
384
|
-
const [keys, newState] = parseMultipleKeypresses(this.keyParseState, input);
|
|
397
|
+
const [keys, newState] = parseMultipleKeypresses({ ...this.keyParseState, terminalExpectedResponseTypes }, input);
|
|
385
398
|
// Gesture latch: a parser-captured SGR mouse prefix (mouseTailHold
|
|
386
399
|
// transitioned to a value, or the tokenizer's `incomplete` buffer
|
|
387
400
|
// starts with an SGR prefix) is byte-level evidence of a mouse event
|