@aiwayds/dsh-tui-pi 2.18.2 → 2.20.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.
Files changed (106) hide show
  1. package/README.md +12 -43
  2. package/README.zh-CN.md +11 -42
  3. package/lib/agents.js +67 -52
  4. package/lib/agents.js.map +1 -1
  5. package/lib/ask-user.d.ts +122 -3
  6. package/lib/ask-user.js +335 -41
  7. package/lib/ask-user.js.map +1 -1
  8. package/lib/attachments.js +8 -3
  9. package/lib/attachments.js.map +1 -1
  10. package/lib/btw.d.ts +4 -2
  11. package/lib/btw.js +22 -16
  12. package/lib/btw.js.map +1 -1
  13. package/lib/custom-provider.js +34 -28
  14. package/lib/custom-provider.js.map +1 -1
  15. package/lib/footer.d.ts +9 -8
  16. package/lib/footer.js +36 -18
  17. package/lib/footer.js.map +1 -1
  18. package/lib/hard-exit.d.ts +36 -0
  19. package/lib/hard-exit.js +64 -0
  20. package/lib/hard-exit.js.map +1 -0
  21. package/lib/history-fork.d.ts +2 -2
  22. package/lib/history-fork.js +12 -9
  23. package/lib/history-fork.js.map +1 -1
  24. package/lib/history-turns.d.ts +4 -2
  25. package/lib/history-turns.js +7 -3
  26. package/lib/history-turns.js.map +1 -1
  27. package/lib/history.js +57 -45
  28. package/lib/history.js.map +1 -1
  29. package/lib/hotkeys.js +44 -33
  30. package/lib/hotkeys.js.map +1 -1
  31. package/lib/i18n/index.d.ts +54 -0
  32. package/lib/i18n/index.js +98 -0
  33. package/lib/i18n/index.js.map +1 -0
  34. package/lib/i18n/registry.d.ts +65 -0
  35. package/lib/i18n/registry.js +129 -0
  36. package/lib/i18n/registry.js.map +1 -0
  37. package/lib/index.js +219 -109
  38. package/lib/index.js.map +1 -1
  39. package/lib/language-ask.d.ts +98 -0
  40. package/lib/language-ask.js +118 -0
  41. package/lib/language-ask.js.map +1 -0
  42. package/lib/live-widgets.js +9 -8
  43. package/lib/live-widgets.js.map +1 -1
  44. package/lib/login.js +5 -4
  45. package/lib/login.js.map +1 -1
  46. package/lib/messages.d.ts +0 -4
  47. package/lib/messages.js +14 -15
  48. package/lib/messages.js.map +1 -1
  49. package/lib/model-profiles.js +32 -20
  50. package/lib/model-profiles.js.map +1 -1
  51. package/lib/panels.js +18 -17
  52. package/lib/panels.js.map +1 -1
  53. package/lib/preflight-projcache.js +9 -3
  54. package/lib/preflight-projcache.js.map +1 -1
  55. package/lib/preset-dialog.d.ts +3 -3
  56. package/lib/preset-dialog.js +20 -17
  57. package/lib/preset-dialog.js.map +1 -1
  58. package/lib/provider-catalog.d.ts +23 -7
  59. package/lib/provider-catalog.js +90 -68
  60. package/lib/provider-catalog.js.map +1 -1
  61. package/lib/queue-panel.d.ts +2 -2
  62. package/lib/queue-panel.js +13 -9
  63. package/lib/queue-panel.js.map +1 -1
  64. package/lib/repair-dialog.d.ts +4 -4
  65. package/lib/repair-dialog.js +23 -16
  66. package/lib/repair-dialog.js.map +1 -1
  67. package/lib/route-dialog.d.ts +3 -3
  68. package/lib/route-dialog.js +20 -14
  69. package/lib/route-dialog.js.map +1 -1
  70. package/lib/selectors.d.ts +15 -1
  71. package/lib/selectors.js +57 -23
  72. package/lib/selectors.js.map +1 -1
  73. package/lib/sessions.d.ts +47 -14
  74. package/lib/sessions.js +162 -53
  75. package/lib/sessions.js.map +1 -1
  76. package/lib/settings.d.ts +68 -9
  77. package/lib/settings.js +327 -78
  78. package/lib/settings.js.map +1 -1
  79. package/lib/skills-manager.js +27 -21
  80. package/lib/skills-manager.js.map +1 -1
  81. package/lib/skills.js +5 -4
  82. package/lib/skills.js.map +1 -1
  83. package/lib/startup-info.js +9 -3
  84. package/lib/startup-info.js.map +1 -1
  85. package/lib/steer-flow.d.ts +14 -4
  86. package/lib/steer-flow.js +24 -9
  87. package/lib/steer-flow.js.map +1 -1
  88. package/lib/stop-dialog.d.ts +2 -2
  89. package/lib/stop-dialog.js +16 -12
  90. package/lib/stop-dialog.js.map +1 -1
  91. package/lib/subagent-viewer.d.ts +3 -8
  92. package/lib/subagent-viewer.js +38 -62
  93. package/lib/subagent-viewer.js.map +1 -1
  94. package/lib/theme-preview.js +12 -11
  95. package/lib/theme-preview.js.map +1 -1
  96. package/lib/theme-settings.d.ts +44 -2
  97. package/lib/theme-settings.js +97 -54
  98. package/lib/theme-settings.js.map +1 -1
  99. package/lib/tui.js +2 -1
  100. package/lib/tui.js.map +1 -1
  101. package/locales/en.json +646 -0
  102. package/locales/ja.json +646 -0
  103. package/locales/ko.json +646 -0
  104. package/locales/zh-CN.json +646 -0
  105. package/package.json +2 -1
  106. package/skills/dsh-tui-pi-config/SKILL.md +14 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiwayds/dsh-tui-pi",
3
- "version": "2.18.2",
3
+ "version": "2.20.0",
4
4
  "description": "A fully-featured pi-style terminal UI for DeepSeek Harness (dsh) — history look-back & fork-at-turn, guided preset switching, live subagent steering, model profiles & themes",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,6 +46,7 @@
46
46
  "templates",
47
47
  "assets",
48
48
  "themes",
49
+ "locales",
49
50
  "skills",
50
51
  "README.md",
51
52
  "LICENSE"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: dsh-tui-pi-config
3
- description: "dsh TUI 增强套件(@aiwayds/dsh-tui-pi)使用与配置指南。凡涉及 TUI 主题/面板/footer、子代理并发与轮数限制、模型收藏与隐藏、会话保留清理与 /resume 过滤、preset 记忆,或要配置 dsh-tui 段时先读本指南:settings.yaml 顶层 `dsh-tui:` 段 15 键(theme/panelHeight/maxAgents/maxRounds/maxRoundsGrace/disableSubagent/registeredOnly/footerHints/cacheHitMode/iconSet/rememberPreset/favoriteModels/hiddenModels/retention/resume)、DSH_TUI_* 环境变量、ask_user_question 快速上手向导、keybindings.json 与 /hotkeys。触发词:tui、主题、theme、面板、footer、收藏模型、隐藏模型、保留策略、panelHeight、resume、preset。"
3
+ description: "dsh TUI 增强套件使用与配置指南。凡涉及 TUI 主题/面板/footer、界面语言、子代理并发与轮数限制、模型收藏与隐藏、会话保留与 /resume 过滤、ask_user 超时、preset 记忆,或要配置 dsh-tui 段时先读本指南:settings.yaml 顶层 `dsh-tui:` 段 18 键(language/theme/panelHeight/maxAgents/maxRounds/maxRoundsGrace/disableSubagent/registeredOnly/footerHints/cacheHitMode/iconSet/rememberPreset/favoriteModels/hiddenModels/retention/resume/askUser)、DSH_TUI_* 环境变量、快速上手向导、keybindings.json 与 /hotkeys。触发词:tui、主题、theme、面板、footer、语言、language、收藏模型、隐藏模型、保留策略、panelHeight、resume、preset。"
4
4
  ---
5
5
 
6
6
  # dsh-tui-pi 使用指南(TUI 主题 / 子代理治理 / 会话管理)
@@ -12,10 +12,11 @@ description: "dsh TUI 增强套件(@aiwayds/dsh-tui-pi)使用与配置指南
12
12
  ## 配置入口(settings.yaml 顶层 `dsh-tui:` 段)
13
13
 
14
14
  在 `~/.dsh/settings.yaml` 写顶层 `dsh-tui:` 段(注意段名是 `dsh-tui`,不是 `dsh-tui-pi`)。
15
- 主题 / 面板高度 / footer 提示 / 图标集为 `applies: 'live'`——保存提交即热生效,无需重启。
15
+ 语言 / 主题 / 面板高度 / footer 提示 / 图标集为 `applies: 'live'`——保存提交即热生效,无需重启。
16
16
 
17
17
  | 键 | 类型 | 默认 | 作用 |
18
18
  |----|------|------|------|
19
+ | `language` | 任意字符串 | `en` | 界面语言:内置 `locales/` 或 `~/.dsh/locales/` 下语言文件的 id(内置 `en`、`zh-CN`、`ja`、`ko`);`/language` 经原生 ask-user 面板弹出选择(TUI 或飞书端都能答,先答先得),`/settings` 的 language 行是就地选择器,未知 id 回退 `en` |
19
20
  | `theme` | 任意字符串 | `auto` | 配色方案;`auto` 跟随终端明暗,也可填任意已注册主题名(内置 20 个 + `~/.dsh/themes/` 用户主题;`/theme` 写回同一段) |
20
21
  | `panelHeight` | `'1'\|'5'\|'7'\|'10'\|'all'` | `'1'` | think/tool 固定面板高度;`all` = 完整内容(推理 200 行尾随、工具结果 2000 行封顶) |
21
22
  | `maxAgents` | 非负整数 | `4` | 并发子代理上限,`0` = 不限 |
@@ -34,6 +35,8 @@ description: "dsh TUI 增强套件(@aiwayds/dsh-tui-pi)使用与配置指南
34
35
  | `retention.minIdleHours` | 数字 | `24` | 按条数规则清理时的空闲保护小时数;下次启动生效 |
35
36
  | `resume.maxAgeDays` | 数字 | `30` | `/resume` 选择器只显示这么新内的会话(显示口径,不删数据);每次打开选择器生效 |
36
37
  | `resume.minBytes` | 数字 | `1024` | `/resume` 选择器的最小压缩日志体积(显示口径);每次打开选择器生效 |
38
+ | `askUser.idleMinutes` | 数字 | `5` | ask_user_question 面板:聚焦题目无按键超过这么多分钟即自动应答(推荐项,计划不自动批准);`<= 0` 关闭该规则;每次打开面板生效 |
39
+ | `askUser.absoluteMinutes` | 数字 | `10` | ask_user_question 面板:单题硬上限,有操作也强制自动应答;`<= 0` 关闭该规则;每次打开面板生效 |
37
40
 
38
41
  ### DSH_TUI_* 环境变量
39
42
 
@@ -41,6 +44,7 @@ description: "dsh TUI 增强套件(@aiwayds/dsh-tui-pi)使用与配置指南
41
44
  |------|------|
42
45
  | `DSH_TUI_RETENTION_MAX_COUNT` / `_MAX_AGE_DAYS` / `_MIN_IDLE_HOURS` | retention 三键的 env 兜底 |
43
46
  | `DSH_TUI_RESUME_MAX_AGE_DAYS` / `_MIN_BYTES` | resume 两键的 env 兜底 |
47
+ | `DSH_TUI_ASK_USER_IDLE_MINUTES` / `_ABSOLUTE_MINUTES` | askUser 两键的 env 兜底 |
44
48
  | `DSH_TUI_THEME` | `light`/`dark` 或任意已注册主题名硬钉显示配色(优先于偏好设置) |
45
49
  | `DSH_TUI_TRANSPARENT` | `1` 恢复透明终端背景 |
46
50
  | `DSH_TUI_MOUSE` | `buttons`(默认)\|`all`\|`off`,鼠标跟踪模式 |
@@ -48,7 +52,7 @@ description: "dsh TUI 增强套件(@aiwayds/dsh-tui-pi)使用与配置指南
48
52
  | `DSH_TUI_BTW_CONTEXT_MESSAGES` | `/btw` 侧问快照的最近消息条数 |
49
53
  | `DSH_TUI_SKIP_HOST_CHECK` | `1` 跳过宿主版本下限检查(测试用) |
50
54
 
51
- retention/resume 组的优先级:**settings.yaml 显式值 > env > 默认**(只看 settings.yaml 里
55
+ retention/resume/askUser 组的优先级:**settings.yaml 显式值 > env > 默认**(只看 settings.yaml 里
52
56
  实际写下的键,未写的键回落 env,再回落默认)。
53
57
 
54
58
  ## 交互式快速上手(ask_user_question)
@@ -62,7 +66,13 @@ retention/resume 组的优先级:**settings.yaml 显式值 > env > 默认**(
62
66
 
63
67
  收集完把 `dsh-tui:` 段写进 `~/.dsh/settings.yaml`——**只写问过的键**,未问的键留在默认值。
64
68
  用户要细调时再指向上面的全表:footerHints 分段、cacheHitMode、iconSet、
65
- favoriteModels/hiddenModels、retention/resume。
69
+ favoriteModels/hiddenModels、retention/resume/askUser。
70
+
71
+ ### 界面语言(/language)
72
+
73
+ 每种语言一个扁平 JSON:`locales/<id>.json`(内置 `en` 规范模板 + `zh-CN` 中文)。`/language` 通过原生 ask-user 面板提问(与模型提问同一套面板:当前语言排第一并标注,面板超时自动选第一项 = 保持原语言;TUI 与飞书等任一面都可作答,先答先得),`/settings` 浏览器的 `dsh-tui.language` 行是就地选择器;`/language <id>` 仍可直接切换。切换写回 `dsh-tui.language` 并即时生效(下一帧刷新;对话 backlog 重建前保持原语言;/settings 描述文案重启生效)。
74
+ 新增语言或局部覆盖:把 `<id>.json` 放进 `~/.dsh/locales/`——同名 id 按键合并到内置文件之上(user 覆盖 wins),新 id 直接注册;
75
+ 文件契约:必有非空 `name`(该语言的显示名),其余每键一个非空字符串,`{param}` 占位符须与 en 同名键一致(测试守卫)。韩(`ko`)/日(`ja`)已内置。
66
76
 
67
77
  ### 自定义主题目录
68
78