@deepseek-harness-tui/dsh-tui 0.9.2 → 0.9.3
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 +4 -4
- package/bin/dsh-tui.js +26 -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/commands.d.ts.map +1 -1
- package/lib/types/commands.js +7 -8
- package/lib/types/components/BalanceReportRow.d.ts +24 -0
- package/lib/types/components/BalanceReportRow.d.ts.map +1 -0
- package/lib/types/components/BalanceReportRow.js +87 -0
- package/lib/types/components/HistorySearchDialog.js +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 +11 -7
- package/lib/types/components/PluginSceneBoundary.d.ts +1 -1
- package/lib/types/components/PluginSceneBoundary.js +1 -1
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +16 -0
- package/lib/types/components/Whale.d.ts +15 -4
- package/lib/types/components/Whale.d.ts.map +1 -1
- package/lib/types/components/Whale.js +9 -8
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +7 -1
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +34 -4
- package/lib/types/deepseekBalance.d.ts +53 -0
- package/lib/types/deepseekBalance.d.ts.map +1 -0
- package/lib/types/deepseekBalance.js +86 -0
- package/lib/types/deepseekPricing.d.ts +82 -0
- package/lib/types/deepseekPricing.d.ts.map +1 -0
- package/lib/types/deepseekPricing.js +133 -0
- package/lib/types/dsh-adapter/channel.d.ts +46 -1
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +84 -10
- package/lib/types/dsh-adapter/index.d.ts +5 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +1 -0
- package/lib/types/dsh-adapter/packaged-skills.d.ts +9 -0
- package/lib/types/dsh-adapter/packaged-skills.d.ts.map +1 -1
- package/lib/types/dsh-adapter/packaged-skills.js +19 -4
- package/lib/types/dsh-adapter/plugin.d.ts +6 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +122 -18
- package/lib/types/dsh-adapter/settings-sections.d.ts +1 -0
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
- package/lib/types/dsh-adapter/settings-sections.js +35 -2
- package/lib/types/history.d.ts +4 -3
- package/lib/types/history.d.ts.map +1 -1
- package/lib/types/history.js +66 -18
- package/lib/types/i18n.d.ts +122 -55
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +39 -18
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +67 -17
- package/lib/types/ink/root.d.ts +16 -0
- package/lib/types/ink/root.d.ts.map +1 -1
- package/lib/types/ink/root.js +2 -0
- package/lib/types/ink/terminal-querier.d.ts +8 -0
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +13 -0
- package/lib/types/ink/terminal.d.ts +42 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +52 -2
- package/lib/types/plugin-spec/registry.d.ts +1 -1
- package/lib/types/plugin-spec/registry.js +1 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +72 -37
- package/lib/types/screens/SessionBrowser.d.ts.map +1 -1
- package/lib/types/screens/SessionBrowser.js +28 -13
- package/lib/types/screens/SessionTree.d.ts.map +1 -1
- package/lib/types/screens/SessionTree.js +33 -9
- package/lib/types/screens/Settings.d.ts +7 -5
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +206 -99
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +32 -1
- package/lib/types/sessionHistory.d.ts +11 -0
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +29 -0
- package/lib/types/sessions/format.d.ts.map +1 -1
- package/lib/types/sessions/format.js +14 -4
- package/lib/types/tips.js +2 -2
- package/lib/types/tuiDisplayPrefs.d.ts +3 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +1 -0
- package/lib/types/update.d.ts +46 -0
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +232 -3
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +21 -21
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +44 -44
- 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 +95 -5
- package/skills/pr-comments/SKILL.md +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/README.zh.md +5 -5
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/package.json +20 -20
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/manifest/schema/dsh-plugin-0.15.schema.json +144 -144
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/CHANGELOG.md +9 -9
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/LICENSE +21 -21
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.md +27 -27
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/README.zh.md +29 -29
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/callback.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/command/node_modules/@dsh-std/presentation/package.json +25 -25
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/connection/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/manifest/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/messages/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/README.zh.md +42 -42
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/memory.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/lib/resolve-3X6ausgz.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/connection/package.json +20 -20
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/presentation/node_modules/@dsh-std/core/package.json +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/CHANGELOG.md +8 -8
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/LICENSE +21 -21
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/README.zh.md +13 -13
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/lib/index.js.map +1 -1
- package/vendor/dsh-std/packages/storage/node_modules/@dsh-std/core/package.json +21 -21
package/lib/types/i18n.d.ts
CHANGED
|
@@ -250,8 +250,8 @@ declare const dict: {
|
|
|
250
250
|
readonly en: "(not initialized)";
|
|
251
251
|
};
|
|
252
252
|
readonly 'doctor-legacy-dir': {
|
|
253
|
-
readonly zh: "旧数据目录: ~/.dsh-
|
|
254
|
-
readonly en: "Legacy data directory: ~/.dsh-
|
|
253
|
+
readonly zh: "旧数据目录: ~/.dsh-cc 仍存在(已迁移到 ~/.dsh-tui,确认无误后可自行删除)";
|
|
254
|
+
readonly en: "Legacy data directory: ~/.dsh-cc still exists (migrated to ~/.dsh-tui; delete it yourself once satisfied)";
|
|
255
255
|
};
|
|
256
256
|
readonly 'subagent-not-mounted': {
|
|
257
257
|
readonly zh: "子代理服务未挂载(leaf 未启用 subagent)";
|
|
@@ -677,34 +677,6 @@ declare const dict: {
|
|
|
677
677
|
readonly zh: "技能 {{name}} 已不可用或未开放用户直调";
|
|
678
678
|
readonly en: "Skill {{name}} is gone or not user-invocable";
|
|
679
679
|
};
|
|
680
|
-
readonly 'skill-audit-prompt': {
|
|
681
|
-
readonly zh: "请使用 audit 技能对当前项目做一次全面的代码审计,找出安全、正确性与质量问题。";
|
|
682
|
-
readonly en: "Use the audit skill to do a thorough code audit of the current project, finding security, correctness and quality issues.";
|
|
683
|
-
};
|
|
684
|
-
readonly 'skill-bug-prompt': {
|
|
685
|
-
readonly zh: "请使用 bug 技能协助我记录一份完整的 bug 报告(现象、复现步骤、期望行为)。";
|
|
686
|
-
readonly en: "Use the bug skill to help me write a complete bug report (symptoms, reproduction steps, expected behavior).";
|
|
687
|
-
};
|
|
688
|
-
readonly 'skill-practice-prompt': {
|
|
689
|
-
readonly zh: "请使用 practice 技能陪我进行一轮编程练习。";
|
|
690
|
-
readonly en: "Use the practice skill to run a round of programming practice with me.";
|
|
691
|
-
};
|
|
692
|
-
readonly 'skill-review-prompt': {
|
|
693
|
-
readonly zh: "请使用 review 技能对当前项目做一次全面的代码评审。";
|
|
694
|
-
readonly en: "Use the review skill to do a thorough code review of the current project.";
|
|
695
|
-
};
|
|
696
|
-
readonly 'skill-pr-comments-prompt': {
|
|
697
|
-
readonly zh: "请使用 pr-comments 技能审查当前分支的拉取请求评论并给出改进建议。";
|
|
698
|
-
readonly en: "Use the pr-comments skill to review pull request comments on the current branch and suggest improvements.";
|
|
699
|
-
};
|
|
700
|
-
readonly 'skill-release-notes-prompt': {
|
|
701
|
-
readonly zh: "请使用 release-notes 技能为当前项目生成发布说明。";
|
|
702
|
-
readonly en: "Use the release-notes skill to generate release notes for the current project.";
|
|
703
|
-
};
|
|
704
|
-
readonly 'skill-vuln-check-prompt': {
|
|
705
|
-
readonly zh: "请使用 vuln-check 技能对当前项目做一次安全漏洞检查。";
|
|
706
|
-
readonly en: "Use the vuln-check skill to run a security vulnerability check on the current project.";
|
|
707
|
-
};
|
|
708
680
|
readonly 'context-loaded': {
|
|
709
681
|
readonly zh: "已加载上下文";
|
|
710
682
|
readonly en: "Context loaded";
|
|
@@ -945,6 +917,102 @@ declare const dict: {
|
|
|
945
917
|
readonly zh: "注:DSH 不提供 API 费用计量,以上为 token 用量(按 provider 账单计费)";
|
|
946
918
|
readonly en: "Note: DSH provides no API cost metering; the above is token usage (billed by your provider)";
|
|
947
919
|
};
|
|
920
|
+
readonly 'status-cost-label': {
|
|
921
|
+
readonly zh: "≈";
|
|
922
|
+
readonly en: "≈";
|
|
923
|
+
};
|
|
924
|
+
readonly 'status-cost-note': {
|
|
925
|
+
readonly zh: "估算(官方单价,非账单)";
|
|
926
|
+
readonly en: "estimate (official rates, not a bill)";
|
|
927
|
+
};
|
|
928
|
+
readonly 'cost-peak-name': {
|
|
929
|
+
readonly zh: "梁文峰";
|
|
930
|
+
readonly en: "peak";
|
|
931
|
+
};
|
|
932
|
+
readonly 'cost-idle-name': {
|
|
933
|
+
readonly zh: "梁文谷";
|
|
934
|
+
readonly en: "idle";
|
|
935
|
+
};
|
|
936
|
+
readonly 'cost-now-peak': {
|
|
937
|
+
readonly zh: "峰";
|
|
938
|
+
readonly en: "peak";
|
|
939
|
+
};
|
|
940
|
+
readonly 'cost-now-idle': {
|
|
941
|
+
readonly zh: "谷";
|
|
942
|
+
readonly en: "idle";
|
|
943
|
+
};
|
|
944
|
+
readonly 'balance-summary-loading': {
|
|
945
|
+
readonly zh: "DeepSeek 余额 · 查询中…";
|
|
946
|
+
readonly en: "DeepSeek balance · querying…";
|
|
947
|
+
};
|
|
948
|
+
readonly 'balance-summary-ok': {
|
|
949
|
+
readonly zh: "DeepSeek 余额 ¥{{total}} · {{state}}";
|
|
950
|
+
readonly en: "DeepSeek balance ¥{{total}} · {{state}}";
|
|
951
|
+
};
|
|
952
|
+
readonly 'balance-summary-state-ok': {
|
|
953
|
+
readonly zh: "可用";
|
|
954
|
+
readonly en: "available";
|
|
955
|
+
};
|
|
956
|
+
readonly 'balance-summary-state-off': {
|
|
957
|
+
readonly zh: "不可用";
|
|
958
|
+
readonly en: "unavailable";
|
|
959
|
+
};
|
|
960
|
+
readonly 'balance-summary-fail': {
|
|
961
|
+
readonly zh: "DeepSeek 余额 · 查询失败";
|
|
962
|
+
readonly en: "DeepSeek balance · query failed";
|
|
963
|
+
};
|
|
964
|
+
readonly 'balance-currency': {
|
|
965
|
+
readonly zh: "{{currency}} 总额 ¥{{total}} · 赠送 ¥{{granted}} · 充值 ¥{{toppedUp}}";
|
|
966
|
+
readonly en: "{{currency}} total ¥{{total}} · granted ¥{{granted}} · topped up ¥{{toppedUp}}";
|
|
967
|
+
};
|
|
968
|
+
readonly 'balance-no-key': {
|
|
969
|
+
readonly zh: "未配置 DeepSeek API key(DEEPSEEK_API_KEY)";
|
|
970
|
+
readonly en: "No DeepSeek API key configured (DEEPSEEK_API_KEY)";
|
|
971
|
+
};
|
|
972
|
+
readonly 'balance-unauthorized': {
|
|
973
|
+
readonly zh: "认证失败——key 无效或已被撤销";
|
|
974
|
+
readonly en: "Authentication failed — the key is invalid or revoked";
|
|
975
|
+
};
|
|
976
|
+
readonly 'balance-network-error': {
|
|
977
|
+
readonly zh: "网络错误或请求超时";
|
|
978
|
+
readonly en: "Network error or request timeout";
|
|
979
|
+
};
|
|
980
|
+
readonly 'balance-http-error': {
|
|
981
|
+
readonly zh: "余额接口返回 HTTP {{status}}";
|
|
982
|
+
readonly en: "Balance endpoint returned HTTP {{status}}";
|
|
983
|
+
};
|
|
984
|
+
readonly 'balance-invalid': {
|
|
985
|
+
readonly zh: "余额接口响应格式异常";
|
|
986
|
+
readonly en: "Unexpected balance endpoint response";
|
|
987
|
+
};
|
|
988
|
+
readonly 'balance-fail-hint': {
|
|
989
|
+
readonly zh: "仅 DeepSeek 官方 API key 可查询;/login 可查看凭据状态";
|
|
990
|
+
readonly en: "Only a DeepSeek official API key can be queried; /login shows credential status";
|
|
991
|
+
};
|
|
992
|
+
readonly 'balance-hover-tokens': {
|
|
993
|
+
readonly zh: "本会话 tokens {{input}} in → {{output}} out · ≈¥{{cost}}({{peakName}} ¥{{peak}} / {{idleName}} ¥{{idle}})";
|
|
994
|
+
readonly en: "Session tokens {{input}} in → {{output}} out · ≈¥{{cost}} ({{peakName}} ¥{{peak}} / {{idleName}} ¥{{idle}})";
|
|
995
|
+
};
|
|
996
|
+
readonly 'balance-current-rate': {
|
|
997
|
+
readonly zh: "当前时段:{{name}} · 输入 ¥{{input}}/百万 · 输出 ¥{{output}}/百万";
|
|
998
|
+
readonly en: "Current window: {{name}} · input ¥{{input}}/M · output ¥{{output}}/M";
|
|
999
|
+
};
|
|
1000
|
+
readonly 'balance-refresh': {
|
|
1001
|
+
readonly zh: "点击刷新";
|
|
1002
|
+
readonly en: "click to refresh";
|
|
1003
|
+
};
|
|
1004
|
+
readonly 'balance-retry': {
|
|
1005
|
+
readonly zh: "点击重试";
|
|
1006
|
+
readonly en: "click to retry";
|
|
1007
|
+
};
|
|
1008
|
+
readonly 'balance-close': {
|
|
1009
|
+
readonly zh: "关闭";
|
|
1010
|
+
readonly en: "dismiss";
|
|
1011
|
+
};
|
|
1012
|
+
readonly 'balance-hint': {
|
|
1013
|
+
readonly zh: "余额查询免费 · 以 DeepSeek 平台为准";
|
|
1014
|
+
readonly en: "balance queries are free · authoritative on the DeepSeek platform";
|
|
1015
|
+
};
|
|
948
1016
|
readonly 'doctor-example-config': {
|
|
949
1017
|
readonly zh: "示例配置 {{path}}";
|
|
950
1018
|
readonly en: "Example config {{path}}";
|
|
@@ -1161,6 +1229,14 @@ declare const dict: {
|
|
|
1161
1229
|
readonly zh: "镜像 registry 滞后:本次安装 v{{latest}};官方最新 v{{authoritative}},镜像同步后可再 /update。";
|
|
1162
1230
|
readonly en: "Mirror registry lag: installing v{{latest}} now; official latest is v{{authoritative}} — run /update again once the mirror syncs.";
|
|
1163
1231
|
};
|
|
1232
|
+
readonly 'update-standalone-available': {
|
|
1233
|
+
readonly zh: "发现便携包新版本:v{{latest}}(当前 v{{current}})· 输入 /update 自动更新";
|
|
1234
|
+
readonly en: "New standalone version available: v{{latest}} (current v{{current}}) · type /update to update";
|
|
1235
|
+
};
|
|
1236
|
+
readonly 'update-standalone-starting': {
|
|
1237
|
+
readonly zh: "正在下载便携包新版本并自动替换,完成后会自动重启并恢复当前会话……";
|
|
1238
|
+
readonly en: "Downloading and replacing standalone binary. The TUI will restart and resume this session when finished…";
|
|
1239
|
+
};
|
|
1164
1240
|
readonly 'reload-header': {
|
|
1165
1241
|
readonly zh: "已重读偏好文件:";
|
|
1166
1242
|
readonly en: "Preferences reloaded:";
|
|
@@ -1382,8 +1458,8 @@ declare const dict: {
|
|
|
1382
1458
|
readonly en: "{{usage}} · {{percent}}% of context";
|
|
1383
1459
|
};
|
|
1384
1460
|
readonly 'legacy-dir-migrated': {
|
|
1385
|
-
readonly zh: "数据目录已从 ~/.dsh-
|
|
1386
|
-
readonly en: "Data directory copied from ~/.dsh-
|
|
1461
|
+
readonly zh: "数据目录已从 ~/.dsh-cc 复制到 ~/.dsh-tui(旧目录保留,确认无误后可自行删除)";
|
|
1462
|
+
readonly en: "Data directory copied from ~/.dsh-cc to ~/.dsh-tui (the old directory is kept; delete it yourself once satisfied)";
|
|
1387
1463
|
};
|
|
1388
1464
|
readonly 'legacy-env-renamed': {
|
|
1389
1465
|
readonly zh: "环境变量 {{old}} 已更名为 {{new}},旧名不再生效";
|
|
@@ -1809,18 +1885,6 @@ declare const dict: {
|
|
|
1809
1885
|
readonly zh: "命名空间未注册";
|
|
1810
1886
|
readonly en: "namespace not served";
|
|
1811
1887
|
};
|
|
1812
|
-
readonly 'settings-readonly-heading': {
|
|
1813
|
-
readonly zh: "其他设置命名空间(只读)";
|
|
1814
|
-
readonly en: "Other settings namespaces (read-only)";
|
|
1815
|
-
};
|
|
1816
|
-
readonly 'settings-readonly-hint': {
|
|
1817
|
-
readonly zh: "以上命名空间尚无 TUI 设置区块,可手工编辑 {{path}}";
|
|
1818
|
-
readonly en: "No TUI section for these namespaces yet — edit {{path}} by hand";
|
|
1819
|
-
};
|
|
1820
|
-
readonly 'settings-badge-override': {
|
|
1821
|
-
readonly zh: "已覆盖";
|
|
1822
|
-
readonly en: "overridden";
|
|
1823
|
-
};
|
|
1824
1888
|
readonly 'settings-badge-restart': {
|
|
1825
1889
|
readonly zh: "重启生效";
|
|
1826
1890
|
readonly en: "applies on restart";
|
|
@@ -1837,6 +1901,10 @@ declare const dict: {
|
|
|
1837
1901
|
readonly zh: "保存失败";
|
|
1838
1902
|
readonly en: "save failed";
|
|
1839
1903
|
};
|
|
1904
|
+
readonly 'settings-field-customized': {
|
|
1905
|
+
readonly zh: "已自定义";
|
|
1906
|
+
readonly en: "customized";
|
|
1907
|
+
};
|
|
1840
1908
|
readonly 'settings-field-empty': {
|
|
1841
1909
|
readonly zh: "(未设置)";
|
|
1842
1910
|
readonly en: "(unset)";
|
|
@@ -1865,21 +1933,17 @@ declare const dict: {
|
|
|
1865
1933
|
readonly zh: "保存 {{ns}} 失败——请重试";
|
|
1866
1934
|
readonly en: "Saving {{ns}} failed — please retry";
|
|
1867
1935
|
};
|
|
1868
|
-
readonly 'settings-discarded': {
|
|
1869
|
-
readonly zh: "已放弃所有未保存的修改";
|
|
1870
|
-
readonly en: "Discarded all unsaved edits";
|
|
1871
|
-
};
|
|
1872
1936
|
readonly 'settings-hint-list': {
|
|
1873
|
-
readonly zh: "**Enter**
|
|
1874
|
-
readonly en: "**Enter** open/edit/toggle
|
|
1937
|
+
readonly zh: "**Enter** 进入/编辑/切换(改动即保存) · Esc 退出";
|
|
1938
|
+
readonly en: "**Enter** open/edit/toggle (auto-saves) · Esc exit";
|
|
1875
1939
|
};
|
|
1876
1940
|
readonly 'settings-hint-group': {
|
|
1877
|
-
readonly zh: "**Enter**
|
|
1878
|
-
readonly en: "**Enter** edit/toggle
|
|
1941
|
+
readonly zh: "**Enter** 编辑/切换(改动即保存) · Esc 返回";
|
|
1942
|
+
readonly en: "**Enter** edit/toggle (auto-saves) · Esc back";
|
|
1879
1943
|
};
|
|
1880
1944
|
readonly 'settings-hint-edit': {
|
|
1881
|
-
readonly zh: "**Enter**
|
|
1882
|
-
readonly en: "**Enter** to confirm · Esc to cancel";
|
|
1945
|
+
readonly zh: "**Enter** 确认并保存 · Esc 取消";
|
|
1946
|
+
readonly en: "**Enter** to confirm & save · Esc to cancel";
|
|
1883
1947
|
};
|
|
1884
1948
|
readonly 'session-loading': {
|
|
1885
1949
|
readonly zh: "正在读取会话…";
|
|
@@ -2965,6 +3029,9 @@ declare const dict: {
|
|
|
2965
3029
|
readonly 'cmd-desc-cost': {
|
|
2966
3030
|
readonly zh: "查看会话 token 用量";
|
|
2967
3031
|
};
|
|
3032
|
+
readonly 'cmd-desc-balance': {
|
|
3033
|
+
readonly zh: "查看 DeepSeek 账户余额";
|
|
3034
|
+
};
|
|
2968
3035
|
readonly 'cmd-desc-config': {
|
|
2969
3036
|
readonly zh: "查看 dsh-tui 配置来源";
|
|
2970
3037
|
};
|
|
@@ -3046,7 +3113,7 @@ declare const dict: {
|
|
|
3046
3113
|
readonly 'cmd-desc-review': {
|
|
3047
3114
|
readonly zh: "对当前项目做全面代码评审";
|
|
3048
3115
|
};
|
|
3049
|
-
readonly 'cmd-desc-
|
|
3116
|
+
readonly 'cmd-desc-pr-comments': {
|
|
3050
3117
|
readonly zh: "审查拉取请求评论";
|
|
3051
3118
|
};
|
|
3052
3119
|
readonly 'cmd-desc-release-notes': {
|
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;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;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;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAw9B0D,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,CAQ1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAWvC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC"}
|
package/lib/types/i18n.js
CHANGED
|
@@ -84,7 +84,7 @@ const dict = {
|
|
|
84
84
|
'doctor-config-missing': { zh: '(不存在)', en: '(missing)' },
|
|
85
85
|
'doctor-storage': { zh: '会话存储: {{dir}} {{state}}', en: 'Session storage: {{dir}} {{state}}' },
|
|
86
86
|
'doctor-storage-uninit': { zh: '(未初始化)', en: '(not initialized)' },
|
|
87
|
-
'doctor-legacy-dir': { zh: '旧数据目录: ~/.dsh-
|
|
87
|
+
'doctor-legacy-dir': { zh: '旧数据目录: ~/.dsh-cc 仍存在(已迁移到 ~/.dsh-tui,确认无误后可自行删除)', en: 'Legacy data directory: ~/.dsh-cc still exists (migrated to ~/.dsh-tui; delete it yourself once satisfied)' },
|
|
88
88
|
'subagent-not-mounted': { zh: '子代理服务未挂载(leaf 未启用 subagent)', en: 'Subagent service not mounted (leaf has no subagent)' },
|
|
89
89
|
'subagent-none': { zh: '当前会话暂无子代理', en: 'No subagents in the current session' },
|
|
90
90
|
'subagent-resumable': { zh: '可续', en: 'resumable' },
|
|
@@ -201,13 +201,6 @@ const dict = {
|
|
|
201
201
|
'context-tools': { zh: '工具 {{n}}', en: 'Tools {{n}}' },
|
|
202
202
|
// ── screens/Chat.tsx ────────────────────────────────────────────────
|
|
203
203
|
'skill-unavailable': { zh: '技能 {{name}} 已不可用或未开放用户直调', en: 'Skill {{name}} is gone or not user-invocable' },
|
|
204
|
-
'skill-audit-prompt': { zh: '请使用 audit 技能对当前项目做一次全面的代码审计,找出安全、正确性与质量问题。', en: 'Use the audit skill to do a thorough code audit of the current project, finding security, correctness and quality issues.' },
|
|
205
|
-
'skill-bug-prompt': { zh: '请使用 bug 技能协助我记录一份完整的 bug 报告(现象、复现步骤、期望行为)。', en: 'Use the bug skill to help me write a complete bug report (symptoms, reproduction steps, expected behavior).' },
|
|
206
|
-
'skill-practice-prompt': { zh: '请使用 practice 技能陪我进行一轮编程练习。', en: 'Use the practice skill to run a round of programming practice with me.' },
|
|
207
|
-
'skill-review-prompt': { zh: '请使用 review 技能对当前项目做一次全面的代码评审。', en: 'Use the review skill to do a thorough code review of the current project.' },
|
|
208
|
-
'skill-pr-comments-prompt': { zh: '请使用 pr-comments 技能审查当前分支的拉取请求评论并给出改进建议。', en: 'Use the pr-comments skill to review pull request comments on the current branch and suggest improvements.' },
|
|
209
|
-
'skill-release-notes-prompt': { zh: '请使用 release-notes 技能为当前项目生成发布说明。', en: 'Use the release-notes skill to generate release notes for the current project.' },
|
|
210
|
-
'skill-vuln-check-prompt': { zh: '请使用 vuln-check 技能对当前项目做一次安全漏洞检查。', en: 'Use the vuln-check skill to run a security vulnerability check on the current project.' },
|
|
211
204
|
'context-loaded': { zh: '已加载上下文', en: 'Context loaded' },
|
|
212
205
|
'context-panel-expand': { zh: '展开', en: 'Expand' },
|
|
213
206
|
'context-panel-collapse': { zh: '折叠', en: 'Collapse' },
|
|
@@ -268,6 +261,33 @@ const dict = {
|
|
|
268
261
|
'status-title': { zh: '标题 {{title}}', en: 'Title {{title}}' },
|
|
269
262
|
'cost-cache-hit-rate': { zh: '缓存命中率 {{rate}}% · 缓存 {{read}} 读 / {{write}} 写', en: 'Cache hit rate {{rate}}% · cache {{read}} read / {{write}} write' },
|
|
270
263
|
'cost-note': { zh: '注:DSH 不提供 API 费用计量,以上为 token 用量(按 provider 账单计费)', en: 'Note: DSH provides no API cost metering; the above is token usage (billed by your provider)' },
|
|
264
|
+
'status-cost-label': { zh: '≈', en: '≈' },
|
|
265
|
+
'status-cost-note': { zh: '估算(官方单价,非账单)', en: 'estimate (official rates, not a bill)' },
|
|
266
|
+
// 高峰/空闲时段名(用户玩梗命名:高峰=梁文峰,低谷=梁文谷)
|
|
267
|
+
'cost-peak-name': { zh: '梁文峰', en: 'peak' },
|
|
268
|
+
'cost-idle-name': { zh: '梁文谷', en: 'idle' },
|
|
269
|
+
// 状态栏字段上的当前时段短标记(峰/谷)
|
|
270
|
+
'cost-now-peak': { zh: '峰', en: 'peak' },
|
|
271
|
+
'cost-now-idle': { zh: '谷', en: 'idle' },
|
|
272
|
+
// /balance:DeepSeek 官方余额查询(BalanceReportRow 组件)
|
|
273
|
+
'balance-summary-loading': { zh: 'DeepSeek 余额 · 查询中…', en: 'DeepSeek balance · querying…' },
|
|
274
|
+
'balance-summary-ok': { zh: 'DeepSeek 余额 ¥{{total}} · {{state}}', en: 'DeepSeek balance ¥{{total}} · {{state}}' },
|
|
275
|
+
'balance-summary-state-ok': { zh: '可用', en: 'available' },
|
|
276
|
+
'balance-summary-state-off': { zh: '不可用', en: 'unavailable' },
|
|
277
|
+
'balance-summary-fail': { zh: 'DeepSeek 余额 · 查询失败', en: 'DeepSeek balance · query failed' },
|
|
278
|
+
'balance-currency': { zh: '{{currency}} 总额 ¥{{total}} · 赠送 ¥{{granted}} · 充值 ¥{{toppedUp}}', en: '{{currency}} total ¥{{total}} · granted ¥{{granted}} · topped up ¥{{toppedUp}}' },
|
|
279
|
+
'balance-no-key': { zh: '未配置 DeepSeek API key(DEEPSEEK_API_KEY)', en: 'No DeepSeek API key configured (DEEPSEEK_API_KEY)' },
|
|
280
|
+
'balance-unauthorized': { zh: '认证失败——key 无效或已被撤销', en: 'Authentication failed — the key is invalid or revoked' },
|
|
281
|
+
'balance-network-error': { zh: '网络错误或请求超时', en: 'Network error or request timeout' },
|
|
282
|
+
'balance-http-error': { zh: '余额接口返回 HTTP {{status}}', en: 'Balance endpoint returned HTTP {{status}}' },
|
|
283
|
+
'balance-invalid': { zh: '余额接口响应格式异常', en: 'Unexpected balance endpoint response' },
|
|
284
|
+
'balance-fail-hint': { zh: '仅 DeepSeek 官方 API key 可查询;/login 可查看凭据状态', en: 'Only a DeepSeek official API key can be queried; /login shows credential status' },
|
|
285
|
+
'balance-hover-tokens': { zh: '本会话 tokens {{input}} in → {{output}} out · ≈¥{{cost}}({{peakName}} ¥{{peak}} / {{idleName}} ¥{{idle}})', en: 'Session tokens {{input}} in → {{output}} out · ≈¥{{cost}} ({{peakName}} ¥{{peak}} / {{idleName}} ¥{{idle}})' },
|
|
286
|
+
'balance-current-rate': { zh: '当前时段:{{name}} · 输入 ¥{{input}}/百万 · 输出 ¥{{output}}/百万', en: 'Current window: {{name}} · input ¥{{input}}/M · output ¥{{output}}/M' },
|
|
287
|
+
'balance-refresh': { zh: '点击刷新', en: 'click to refresh' },
|
|
288
|
+
'balance-retry': { zh: '点击重试', en: 'click to retry' },
|
|
289
|
+
'balance-close': { zh: '关闭', en: 'dismiss' },
|
|
290
|
+
'balance-hint': { zh: '余额查询免费 · 以 DeepSeek 平台为准', en: 'balance queries are free · authoritative on the DeepSeek platform' },
|
|
271
291
|
'doctor-example-config': { zh: '示例配置 {{path}}', en: 'Example config {{path}}' },
|
|
272
292
|
'doctor-user-config': { zh: '用户配置 {{path}}', en: 'User config {{path}}' },
|
|
273
293
|
'doctor-launch-hint': { zh: '启动方式 dsh-tui.cmd / dsh --profile dsh-tui', en: 'Launch dsh-tui.cmd / dsh --profile dsh-tui' },
|
|
@@ -323,6 +343,8 @@ const dict = {
|
|
|
323
343
|
'update-check-failed': { zh: '无法确认新版本(网络或 registry 不可达),已尝试直接更新……', en: 'Could not confirm a newer version (network or registry unreachable); attempting the update anyway…' },
|
|
324
344
|
'update-refused-deadlock': { zh: '已取消更新:镜像 registry 目前只能装到 v{{latest}},而该版本在旧全局启动器的 patch 下会启动死锁(#183/#307);官方最新为 v{{authoritative}},待镜像同步后再 /update。', en: 'Update cancelled: the mirror registry can only serve v{{latest}}, which deadlocks boot under older global-launcher patches (#183/#307); official latest is v{{authoritative}} — retry /update after the mirror syncs.' },
|
|
325
345
|
'update-mirror-lag': { zh: '镜像 registry 滞后:本次安装 v{{latest}};官方最新 v{{authoritative}},镜像同步后可再 /update。', en: 'Mirror registry lag: installing v{{latest}} now; official latest is v{{authoritative}} — run /update again once the mirror syncs.' },
|
|
346
|
+
'update-standalone-available': { zh: '发现便携包新版本:v{{latest}}(当前 v{{current}})· 输入 /update 自动更新', en: 'New standalone version available: v{{latest}} (current v{{current}}) · type /update to update' },
|
|
347
|
+
'update-standalone-starting': { zh: '正在下载便携包新版本并自动替换,完成后会自动重启并恢复当前会话……', en: 'Downloading and replacing standalone binary. The TUI will restart and resume this session when finished…' },
|
|
326
348
|
// ── /reload (pi-style soft reload) ────────────────────────────────────
|
|
327
349
|
'reload-header': { zh: '已重读偏好文件:', en: 'Preferences reloaded:' },
|
|
328
350
|
'reload-applied': { zh: '{{kind}} {{from}} → {{to}}(已应用)', en: '{{kind}} {{from}} → {{to}} (applied)' },
|
|
@@ -381,7 +403,7 @@ const dict = {
|
|
|
381
403
|
'tokens-usage': { zh: 'Tokens:{{in}} 输入 · {{out}} 输出', en: 'Tokens: {{in}} in · {{out}} out' },
|
|
382
404
|
'tokens-usage-context': { zh: '{{usage}} · 上下文 {{percent}}%', en: '{{usage}} · {{percent}}% of context' },
|
|
383
405
|
// ── plugin.ts — boot-time rename notices (issue #120) ───────────────
|
|
384
|
-
'legacy-dir-migrated': { zh: '数据目录已从 ~/.dsh-
|
|
406
|
+
'legacy-dir-migrated': { zh: '数据目录已从 ~/.dsh-cc 复制到 ~/.dsh-tui(旧目录保留,确认无误后可自行删除)', en: 'Data directory copied from ~/.dsh-cc to ~/.dsh-tui (the old directory is kept; delete it yourself once satisfied)' },
|
|
385
407
|
'legacy-env-renamed': { zh: '环境变量 {{old}} 已更名为 {{new}},旧名不再生效', en: 'Environment variable {{old}} was renamed to {{new}}; the old name no longer takes effect' },
|
|
386
408
|
// ── plugin.ts — /update flow ───────────────────────────────────────
|
|
387
409
|
'update-aborted-no-profile': { zh: 'dsh-tui 更新中止:未解析到 dsh profile。', en: 'dsh-tui update aborted: no dsh profile resolved.' },
|
|
@@ -529,13 +551,11 @@ const dict = {
|
|
|
529
551
|
'settings-empty': { zh: '没有可配置的插件设置(尚无插件注册设置区块)', en: 'No configurable plugin settings (no plugin has registered a section)' },
|
|
530
552
|
'settings-group-empty': { zh: '此分组没有可配置字段', en: 'No configurable fields in this group' },
|
|
531
553
|
'settings-section-unavailable': { zh: '命名空间未注册', en: 'namespace not served' },
|
|
532
|
-
'settings-readonly-heading': { zh: '其他设置命名空间(只读)', en: 'Other settings namespaces (read-only)' },
|
|
533
|
-
'settings-readonly-hint': { zh: '以上命名空间尚无 TUI 设置区块,可手工编辑 {{path}}', en: 'No TUI section for these namespaces yet — edit {{path}} by hand' },
|
|
534
|
-
'settings-badge-override': { zh: '已覆盖', en: 'overridden' },
|
|
535
554
|
'settings-badge-restart': { zh: '重启生效', en: 'applies on restart' },
|
|
536
555
|
'settings-badge-dirty': { zh: '未保存', en: 'unsaved' },
|
|
537
556
|
'settings-badge-saving': { zh: '保存中', en: 'saving' },
|
|
538
557
|
'settings-badge-failed': { zh: '保存失败', en: 'save failed' },
|
|
558
|
+
'settings-field-customized': { zh: '已自定义', en: 'customized' },
|
|
539
559
|
'settings-field-empty': { zh: '(未设置)', en: '(unset)' },
|
|
540
560
|
'settings-field-invalid': { zh: '无效输入', en: 'invalid' },
|
|
541
561
|
'settings-secret-set': { zh: '●●●●●●(已配置)', en: '●●●●●● (configured)' },
|
|
@@ -543,10 +563,9 @@ const dict = {
|
|
|
543
563
|
'settings-secret-staged': { zh: '(待保存)', en: '(pending save)' },
|
|
544
564
|
'settings-saved': { zh: '已保存 {{ns}}', en: 'Saved {{ns}}' },
|
|
545
565
|
'settings-save-failed': { zh: '保存 {{ns}} 失败——请重试', en: 'Saving {{ns}} failed — please retry' },
|
|
546
|
-
'settings-
|
|
547
|
-
'settings-hint-
|
|
548
|
-
'settings-hint-
|
|
549
|
-
'settings-hint-edit': { zh: '**Enter** 确认 · Esc 取消', en: '**Enter** to confirm · Esc to cancel' },
|
|
566
|
+
'settings-hint-list': { zh: '**Enter** 进入/编辑/切换(改动即保存) · Esc 退出', en: '**Enter** open/edit/toggle (auto-saves) · Esc exit' },
|
|
567
|
+
'settings-hint-group': { zh: '**Enter** 编辑/切换(改动即保存) · Esc 返回', en: '**Enter** edit/toggle (auto-saves) · Esc back' },
|
|
568
|
+
'settings-hint-edit': { zh: '**Enter** 确认并保存 · Esc 取消', en: '**Enter** to confirm & save · Esc to cancel' },
|
|
550
569
|
// ── 会话浏览器:行、计数、筛选、预览 ───────────────────────────────
|
|
551
570
|
'session-loading': { zh: '正在读取会话…', en: 'Reading sessions…' },
|
|
552
571
|
'session-list-failed': { zh: '无法读取会话列表 · {{err}}', en: 'Could not read the session list · {{err}}' },
|
|
@@ -857,6 +876,7 @@ const dict = {
|
|
|
857
876
|
'cmd-desc-context': { zh: '查看已加载的上下文明细' },
|
|
858
877
|
'cmd-desc-status': { zh: '查看会话状态' },
|
|
859
878
|
'cmd-desc-cost': { zh: '查看会话 token 用量' },
|
|
879
|
+
'cmd-desc-balance': { zh: '查看 DeepSeek 账户余额' },
|
|
860
880
|
'cmd-desc-config': { zh: '查看 dsh-tui 配置来源' },
|
|
861
881
|
'cmd-desc-reload': { zh: '重读偏好文件并立即生效' },
|
|
862
882
|
'cmd-desc-settings': { zh: '查看和编辑插件设置' },
|
|
@@ -882,12 +902,13 @@ const dict = {
|
|
|
882
902
|
'cmd-desc-skills': { zh: '列出所有可用技能' },
|
|
883
903
|
'cmd-desc-plugins': { zh: '显示插件契约、授权与台账诊断' },
|
|
884
904
|
'cmd-desc-update': { zh: '更新 dsh-tui 并重启' },
|
|
885
|
-
// Built-in skills
|
|
905
|
+
// Built-in skills(注册名与打包 SKILL.md 对齐;这些键经
|
|
906
|
+
// localizedDescription 的 cmd-desc-<name> 回退服务于直调命令条目)
|
|
886
907
|
'cmd-desc-audit': { zh: '对当前项目做全面代码审计' },
|
|
887
908
|
'cmd-desc-bug': { zh: '记录一份 bug 报告' },
|
|
888
909
|
'cmd-desc-practice': { zh: '与 dsh-tui 进行编程练习' },
|
|
889
910
|
'cmd-desc-review': { zh: '对当前项目做全面代码评审' },
|
|
890
|
-
'cmd-desc-
|
|
911
|
+
'cmd-desc-pr-comments': { zh: '审查拉取请求评论' },
|
|
891
912
|
'cmd-desc-release-notes': { zh: '生成发布说明' },
|
|
892
913
|
'cmd-desc-vuln-check': { zh: '运行安全漏洞检查' },
|
|
893
914
|
// Misc
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../src/ink/ink.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAa9C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AASrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAA4B,KAAK,aAAa,EAAiB,MAAM,uBAAuB,CAAC;AAIpG,OAAO,EAAqG,KAAK,SAAS,EAAwF,KAAK,cAAc,EAAqH,MAAM,gBAAgB,CAAC;AAiCjX,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,GAAG;IA6HV,OAAO,CAAC,QAAQ,CAAC,OAAO;IA5HpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAiB;IACjC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAa;IACrD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,UAAU,CAA8C;IAGhE,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,gBAAgB,CAYtB;IACF,OAAO,CAAC,kBAAkB,CAGvB;IAIH,QAAQ,CAAC,SAAS,EAAE,cAAc,CAA0B;IAG5D,OAAO,CAAC,oBAAoB,CAAM;IAOlC,OAAO,CAAC,eAAe,CAIP;IAIhB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAI5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAK1D,OAAO,CAAC,eAAe,CAAS;IAGhC,OAAO,CAAC,sBAAsB,CAAS;IAKvC,OAAO,CAAC,oBAAoB,CAKZ;IAMhB,OAAO,CAAC,qBAAqB,CAAS;IAMtC,OAAO,CAAC,qBAAqB,CAAS;IAMtC,OAAO,CAAC,iBAAiB,CAAkC;IAK3D,OAAO,CAAC,aAAa,CAGL;IAChB,OAAO,CAAC,gBAAgB;gBAMK,OAAO,EAAE,OAAO;IAmH7C,OAAO,CAAC,YAAY,CAqBlB;IAQF,OAAO,CAAC,YAAY,CAyElB;IACF,kBAAkB,EAAE,MAAM,IAAI,CAAY;IAC1C,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,CAAY;IACvD,eAAe,EAAE,MAAM,IAAI,CAAY;IAEvC;;;;;OAKG;IACH,oBAAoB,IAAI,IAAI;IAyB5B;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,IAAI;IAuD3B;;;;;;;;;;;;OAYG;IACH,gBAAgB;IAKhB,0EAA0E;IAC1E,OAAO,CAAC,SAAS;IAYjB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,aAAa;IAiBrB,QAAQ;IAkaR,KAAK,IAAI,IAAI;IAOb,MAAM,IAAI,IAAI;IAKd;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAUf;;;;;;;OAOG;IACH,WAAW,IAAI,IAAI;IAmBnB;;;;;;;OAOG;IACH,wBAAwB,IAAI,IAAI;IAgBhC;;;;;;;;;OASG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,UAAQ,GAAG,IAAI;IAsChE,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,qBAAqB,GAAI,0BAAwB,KAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../../src/ink/ink.tsx"],"names":[],"mappings":"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"}
|
package/lib/types/ink/ink.js
CHANGED
|
@@ -33,7 +33,7 @@ import createRenderer from './renderer.js';
|
|
|
33
33
|
import { CharPool, cellAt, createScreen, HyperlinkPool, isEmptyCellAt, migrateScreenPools, StylePool } from './screen.js';
|
|
34
34
|
import { applySearchHighlight } from './searchHighlight.js';
|
|
35
35
|
import { applySelectionOverlay, captureScrolledRows, clearSelection, createSelectionState, extendSelection, findPlainTextUrlAt, getSelectedText, hasSelection, moveFocus, pickFollowForSelection, selectLineAt, selectWordAt, shiftAnchor, shiftSelection, shiftSelectionForFollow, startSelection, updateSelection } from './selection.js';
|
|
36
|
-
import { isDecstbmSafe, SYNC_OUTPUT_SUPPORTED, supportsExtendedKeys, supportsWin32InputMode, writeDiffToTerminal } from './terminal.js';
|
|
36
|
+
import { isDecstbmSafe, SYNC_OUTPUT_SUPPORTED, serializeDiff, supportsDecrqmProbe, supportsExtendedKeys, supportsWin32InputMode, writeDiffToTerminal } from './terminal.js';
|
|
37
37
|
import { CURSOR_HOME, cursorMove, cursorPosition, DISABLE_KITTY_KEYBOARD, DISABLE_MODIFY_OTHER_KEYS, DISABLE_WIN32_INPUT_MODE, ENABLE_KITTY_KEYBOARD, ENABLE_MODIFY_OTHER_KEYS, ENABLE_WIN32_INPUT_MODE, ERASE_SCREEN, ERASE_SCROLLBACK, SGR_RESET } from './termio/csi.js';
|
|
38
38
|
import { DBP, DFE, DISABLE_MOUSE_TRACKING, ENABLE_MOUSE_TRACKING, ENTER_ALT_SCREEN, EXIT_ALT_SCREEN, SHOW_CURSOR } from './termio/dec.js';
|
|
39
39
|
import { CLEAR_ITERM2_PROGRESS, CLEAR_TAB_STATUS, setClipboard, supportsTabStatus, wrapForMultiplexer } from './termio/osc.js';
|
|
@@ -1115,6 +1115,11 @@ export default class Ink {
|
|
|
1115
1115
|
reassertTerminalModes = (includeAltScreen = false) => {
|
|
1116
1116
|
if (!this.options.stdout.isTTY)
|
|
1117
1117
|
return;
|
|
1118
|
+
// Shutdown latch: the >5s idle-gap trigger (or an event-loop stall
|
|
1119
|
+
// detector firing during the dispose window) must not re-assert mouse
|
|
1120
|
+
// tracking after the exit cleanup disabled it (issue #522).
|
|
1121
|
+
if (this.isUnmounted)
|
|
1122
|
+
return;
|
|
1118
1123
|
// Don't touch the terminal during an editor handoff — re-enabling kitty
|
|
1119
1124
|
// keyboard here would undo enterAlternateScreen's disable and nano would
|
|
1120
1125
|
// start seeing CSI-u sequences again.
|
|
@@ -1275,6 +1280,14 @@ export default class Ink {
|
|
|
1275
1280
|
*/
|
|
1276
1281
|
lastHealthProbeAt = 0;
|
|
1277
1282
|
probeAltScreenHealth = () => {
|
|
1283
|
+
// Shutdown latch: during the dispose window after detachForShutdown
|
|
1284
|
+
// (up to the 5s fallback exit) stray input, focus, resize or a pending
|
|
1285
|
+
// DECRPM reply would otherwise re-write ENABLE_MOUSE_TRACKING AFTER the
|
|
1286
|
+
// exit cleanup's DISABLE_MOUSE_TRACKING — the mouse-reporting residue
|
|
1287
|
+
// the shell then echoes as SGR garbage (issue #522). isUnmounted is set
|
|
1288
|
+
// by detachForShutdown() before any cleanup sequence is written.
|
|
1289
|
+
if (this.isUnmounted)
|
|
1290
|
+
return;
|
|
1278
1291
|
const now = Date.now();
|
|
1279
1292
|
if (now - this.lastHealthProbeAt < 250)
|
|
1280
1293
|
return;
|
|
@@ -1287,6 +1300,13 @@ export default class Ink {
|
|
|
1287
1300
|
const querier = this.app?.querier;
|
|
1288
1301
|
if (querier === undefined)
|
|
1289
1302
|
return;
|
|
1303
|
+
// macOS Terminal.app prints the trailing `p` of `CSI ? 1049 $ p` as
|
|
1304
|
+
// literal text instead of ignoring the unsupported query, leaking a
|
|
1305
|
+
// visible character at the cursor on every probe. The blind
|
|
1306
|
+
// mouse-tracking re-assert above still runs there — only the round trip
|
|
1307
|
+
// is skipped, which costs nothing: Terminal.app never answered it.
|
|
1308
|
+
if (!supportsDecrqmProbe())
|
|
1309
|
+
return;
|
|
1290
1310
|
void Promise.all([querier.send(decrqm(1049)), querier.flush()]).then(([reply]) => {
|
|
1291
1311
|
// DECRPM status: 1/3 = set, 2/4 = reset, 0/undefined = unknown.
|
|
1292
1312
|
// Heal only on a POSITIVE reset — an unanswered probe must not
|
|
@@ -1311,6 +1331,12 @@ export default class Ink {
|
|
|
1311
1331
|
* stays true. ENTER_ALT_SCREEN is a terminal-side no-op if already in alt.
|
|
1312
1332
|
*/
|
|
1313
1333
|
reenterAltScreen() {
|
|
1334
|
+
// Same shutdown latch as probeAltScreenHealth: a DECRPM reply resolving
|
|
1335
|
+
// after detachForShutdown (or a SIGCONT racing unmount) must not re-enter
|
|
1336
|
+
// the alt screen or re-enable mouse tracking past the exit cleanup
|
|
1337
|
+
// (issue #522).
|
|
1338
|
+
if (this.isUnmounted)
|
|
1339
|
+
return;
|
|
1314
1340
|
this.options.stdout.write(ENTER_ALT_SCREEN + ERASE_SCREEN + CURSOR_HOME + (this.altScreenMouseTracking ? ENABLE_MOUSE_TRACKING : ''));
|
|
1315
1341
|
this.resetFramesForAltScreen();
|
|
1316
1342
|
}
|
|
@@ -1827,7 +1853,17 @@ export default class Ink {
|
|
|
1827
1853
|
if (this.isUnmounted) {
|
|
1828
1854
|
return;
|
|
1829
1855
|
}
|
|
1830
|
-
|
|
1856
|
+
// The final frame render is best-effort: a mid-state React commit can
|
|
1857
|
+
// throw (agent still working at the exact exit moment). It must NOT
|
|
1858
|
+
// skip the synchronous cleanup block below — a skipped DISABLE_*
|
|
1859
|
+
// leaves mouse reporting on past process exit, and the shell echoes
|
|
1860
|
+
// SGR garbage for every click/drag/wheel (issue #522).
|
|
1861
|
+
try {
|
|
1862
|
+
this.renderNow();
|
|
1863
|
+
}
|
|
1864
|
+
catch (renderError) {
|
|
1865
|
+
logError(renderError instanceof Error ? renderError : new Error(String(renderError)));
|
|
1866
|
+
}
|
|
1831
1867
|
this.unsubscribeExit();
|
|
1832
1868
|
if (typeof this.restoreConsole === 'function') {
|
|
1833
1869
|
this.restoreConsole();
|
|
@@ -1837,43 +1873,57 @@ export default class Ink {
|
|
|
1837
1873
|
// Non-TTY environments don't handle erasing ansi escapes well, so it's better to
|
|
1838
1874
|
// only render last frame of non-static output
|
|
1839
1875
|
const diff = this.log.renderPreviousOutput_DEPRECATED(this.frontFrame);
|
|
1840
|
-
|
|
1876
|
+
const lastFrame = serializeDiff(this.terminal, optimize(diff));
|
|
1841
1877
|
// Clean up terminal modes synchronously before process exit.
|
|
1842
1878
|
// React's componentWillUnmount won't run in time when process.exit() is called,
|
|
1843
1879
|
// so we must reset terminal modes here to prevent escape sequence leakage.
|
|
1844
|
-
// Use writeSync to stdout
|
|
1845
|
-
//
|
|
1846
|
-
//
|
|
1847
|
-
//
|
|
1880
|
+
// Use writeSync to the stdout stream's own fd (not a hard-coded 1 — a
|
|
1881
|
+
// host that runs the TUI on a non-1 TTY would drop every sequence while
|
|
1882
|
+
// the enable writes still reach the TTY, issue #522) to ensure writes
|
|
1883
|
+
// complete before exit. We unconditionally send all disable sequences
|
|
1884
|
+
// because terminal detection may not work correctly (e.g., in tmux,
|
|
1885
|
+
// screen) and these are no-ops on terminals that don't support them.
|
|
1848
1886
|
/* eslint-disable custom-rules/no-sync-fs -- process exiting; async writes would be dropped */
|
|
1849
1887
|
if (this.options.stdout.isTTY) {
|
|
1888
|
+
// Node's TTY WriteStream exposes .fd; the NodeJS.WriteStream interface
|
|
1889
|
+
// doesn't declare it, hence the local intersection cast.
|
|
1890
|
+
const stdoutWithFd = this.options.stdout;
|
|
1891
|
+
const stdoutFd = typeof stdoutWithFd.fd === 'number' ? stdoutWithFd.fd : 1;
|
|
1892
|
+
// The last frame must land on the ALT screen while it is still up:
|
|
1893
|
+
// writing it through the async stream would race the synchronous
|
|
1894
|
+
// EXIT_ALT_SCREEN below and the frame bytes would arrive AFTER the
|
|
1895
|
+
// switch to the main screen, painting misplaced residue over the
|
|
1896
|
+
// shell (issue #522).
|
|
1897
|
+
if (lastFrame !== '') {
|
|
1898
|
+
writeSync(stdoutFd, lastFrame);
|
|
1899
|
+
}
|
|
1850
1900
|
if (this.altScreenActive) {
|
|
1851
1901
|
// <AlternateScreen>'s unmount effect won't run during signal-exit.
|
|
1852
1902
|
// Exit alt screen FIRST so other cleanup sequences go to the main screen.
|
|
1853
|
-
writeSync(
|
|
1903
|
+
writeSync(stdoutFd, EXIT_ALT_SCREEN);
|
|
1854
1904
|
}
|
|
1855
1905
|
// Disable mouse tracking — unconditional because altScreenActive can be
|
|
1856
1906
|
// stale if AlternateScreen's unmount (which flips the flag) raced a
|
|
1857
1907
|
// blocked event loop + SIGINT. No-op if tracking was never enabled.
|
|
1858
|
-
writeSync(
|
|
1908
|
+
writeSync(stdoutFd, DISABLE_MOUSE_TRACKING);
|
|
1859
1909
|
// Drain stdin so in-flight mouse events don't leak to the shell
|
|
1860
1910
|
this.drainStdin();
|
|
1861
1911
|
// Disable extended key reporting (both kitty and modifyOtherKeys)
|
|
1862
|
-
writeSync(
|
|
1863
|
-
writeSync(
|
|
1912
|
+
writeSync(stdoutFd, DISABLE_MODIFY_OTHER_KEYS);
|
|
1913
|
+
writeSync(stdoutFd, DISABLE_KITTY_KEYBOARD);
|
|
1864
1914
|
// Disable win32-input-mode (no-op where never enabled)
|
|
1865
|
-
writeSync(
|
|
1915
|
+
writeSync(stdoutFd, DISABLE_WIN32_INPUT_MODE);
|
|
1866
1916
|
// Disable focus events (DECSET 1004)
|
|
1867
|
-
writeSync(
|
|
1917
|
+
writeSync(stdoutFd, DFE);
|
|
1868
1918
|
// Disable bracketed paste mode
|
|
1869
|
-
writeSync(
|
|
1919
|
+
writeSync(stdoutFd, DBP);
|
|
1870
1920
|
// Show cursor
|
|
1871
|
-
writeSync(
|
|
1921
|
+
writeSync(stdoutFd, SHOW_CURSOR);
|
|
1872
1922
|
// Clear iTerm2 progress bar
|
|
1873
|
-
writeSync(
|
|
1923
|
+
writeSync(stdoutFd, CLEAR_ITERM2_PROGRESS);
|
|
1874
1924
|
// Clear tab status (OSC 21337) so a stale dot doesn't linger
|
|
1875
1925
|
if (supportsTabStatus())
|
|
1876
|
-
writeSync(
|
|
1926
|
+
writeSync(stdoutFd, wrapForMultiplexer(CLEAR_TAB_STATUS));
|
|
1877
1927
|
}
|
|
1878
1928
|
/* eslint-enable custom-rules/no-sync-fs */
|
|
1879
1929
|
this.isUnmounted = true;
|
package/lib/types/ink/root.d.ts
CHANGED
|
@@ -53,6 +53,22 @@ export type Instance = {
|
|
|
53
53
|
* Returns a promise, which resolves when app is unmounted.
|
|
54
54
|
*/
|
|
55
55
|
waitUntilExit: Ink['waitUntilExit'];
|
|
56
|
+
/**
|
|
57
|
+
* Detach the Ink runtime for process-level shutdown: latches isUnmounted
|
|
58
|
+
* (gating every mouse/alt-screen re-assert), cancels pending renders,
|
|
59
|
+
* releases TTY handlers and stdin raw mode, and disposes the querier.
|
|
60
|
+
* Exposed on the handle so shutdown code can latch the runtime even when
|
|
61
|
+
* the global instances map lookup misses (stdout identity drift, issue
|
|
62
|
+
* #522) — without it, the cleanup-vs-self-heal window re-enables mouse
|
|
63
|
+
* tracking after DISABLE_MOUSE_TRACKING has already been written.
|
|
64
|
+
*/
|
|
65
|
+
detachForShutdown: Ink['detachForShutdown'];
|
|
66
|
+
/**
|
|
67
|
+
* Fully detach stdin before handing the terminal to a child process that
|
|
68
|
+
* inherits it (the /update and /restart handoffs). See Ink's own method
|
|
69
|
+
* for the listener/pump semantics.
|
|
70
|
+
*/
|
|
71
|
+
detachStdinForHandoff: Ink['detachStdinForHandoff'];
|
|
56
72
|
cleanup: () => void;
|
|
57
73
|
};
|
|
58
74
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/ink/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,GAAmC,MAAM,UAAU,CAAA;AAG1D,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;IAC3B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACvB;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvB;;OAEG;IACH,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IACnC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACjC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,EACf,UAAU,MAAM,CAAC,WAAW,GAAG,aAAa,KAC3C,
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../src/ink/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,GAAmC,MAAM,UAAU,CAAA;AAG1D,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;IAC3B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAA;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACvB;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvB;;OAEG;IACH,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,CAAA;IACnC;;;;;;;;OAQG;IACH,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAC3C;;;;OAIG;IACH,qBAAqB,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACnD,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;IACjC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,EACf,UAAU,MAAM,CAAC,WAAW,GAAG,aAAa,KAC3C,QA4BF,CAAA;AAED;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,GACjB,MAAM,SAAS,EACf,UAAU,MAAM,CAAC,WAAW,GAAG,aAAa,KAC3C,OAAO,CAAC,QAAQ,CAWlB,CAAA;AAED,eAAe,aAAa,CAAA;AAE5B;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|