@deepseek-harness-tui/dsh-tui 0.12.0 → 0.13.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 +41 -5
- package/assets/deepy/README.md +60 -0
- package/assets/deepy/frames.json +1 -0
- package/assets/whale-girl/whale-girl-happy.png +0 -0
- package/assets/whaleGirl/README.md +7 -0
- package/assets/whaleGirl/frames.json +1 -0
- package/assets/whaleGirl/img/building/00.png +0 -0
- package/assets/whaleGirl/img/building/01.png +0 -0
- package/assets/whaleGirl/img/building/02.png +0 -0
- package/assets/whaleGirl/img/building/03.png +0 -0
- package/assets/whaleGirl/img/building/04.png +0 -0
- package/assets/whaleGirl/img/building/05.png +0 -0
- package/assets/whaleGirl/img/building/06.png +0 -0
- package/assets/whaleGirl/img/building/07.png +0 -0
- package/assets/whaleGirl/img/building/08.png +0 -0
- package/assets/whaleGirl/img/building/09.png +0 -0
- package/assets/whaleGirl/img/building/10.png +0 -0
- package/assets/whaleGirl/img/building/11.png +0 -0
- package/assets/whaleGirl/img/building/12.png +0 -0
- package/assets/whaleGirl/img/building/13.png +0 -0
- package/assets/whaleGirl/img/building/14.png +0 -0
- package/assets/whaleGirl/img/building/15.png +0 -0
- package/assets/whaleGirl/img/building/16.png +0 -0
- package/assets/whaleGirl/img/building/17.png +0 -0
- package/assets/whaleGirl/img/building/18.png +0 -0
- package/assets/whaleGirl/img/building/19.png +0 -0
- package/assets/whaleGirl/img/building/20.png +0 -0
- package/assets/whaleGirl/img/building/21.png +0 -0
- package/assets/whaleGirl/img/building/22.png +0 -0
- package/assets/whaleGirl/img/building/23.png +0 -0
- package/assets/whaleGirl/img/carrying/00.png +0 -0
- package/assets/whaleGirl/img/carrying/01.png +0 -0
- package/assets/whaleGirl/img/carrying/02.png +0 -0
- package/assets/whaleGirl/img/carrying/03.png +0 -0
- package/assets/whaleGirl/img/carrying/04.png +0 -0
- package/assets/whaleGirl/img/carrying/05.png +0 -0
- package/assets/whaleGirl/img/carrying/06.png +0 -0
- package/assets/whaleGirl/img/carrying/07.png +0 -0
- package/assets/whaleGirl/img/compacting/00.png +0 -0
- package/assets/whaleGirl/img/compacting/01.png +0 -0
- package/assets/whaleGirl/img/compacting/02.png +0 -0
- package/assets/whaleGirl/img/compacting/03.png +0 -0
- package/assets/whaleGirl/img/compacting/04.png +0 -0
- package/assets/whaleGirl/img/compacting/05.png +0 -0
- package/assets/whaleGirl/img/compacting/06.png +0 -0
- package/assets/whaleGirl/img/compacting/07.png +0 -0
- package/assets/whaleGirl/img/compacting/08.png +0 -0
- package/assets/whaleGirl/img/compacting/09.png +0 -0
- package/assets/whaleGirl/img/conducting/00.png +0 -0
- package/assets/whaleGirl/img/conducting/01.png +0 -0
- package/assets/whaleGirl/img/conducting/02.png +0 -0
- package/assets/whaleGirl/img/conducting/03.png +0 -0
- package/assets/whaleGirl/img/conducting/04.png +0 -0
- package/assets/whaleGirl/img/conducting/05.png +0 -0
- package/assets/whaleGirl/img/conducting/06.png +0 -0
- package/assets/whaleGirl/img/conducting/07.png +0 -0
- package/assets/whaleGirl/img/conducting/08.png +0 -0
- package/assets/whaleGirl/img/conducting/09.png +0 -0
- package/assets/whaleGirl/img/conducting/10.png +0 -0
- package/assets/whaleGirl/img/conducting/11.png +0 -0
- package/assets/whaleGirl/img/drag/00.png +0 -0
- package/assets/whaleGirl/img/drag/01.png +0 -0
- package/assets/whaleGirl/img/drag/02.png +0 -0
- package/assets/whaleGirl/img/drag/03.png +0 -0
- package/assets/whaleGirl/img/drag/04.png +0 -0
- package/assets/whaleGirl/img/drag/05.png +0 -0
- package/assets/whaleGirl/img/drag/06.png +0 -0
- package/assets/whaleGirl/img/drag/07.png +0 -0
- package/assets/whaleGirl/img/drag/08.png +0 -0
- package/assets/whaleGirl/img/drag/09.png +0 -0
- package/assets/whaleGirl/img/error/00.png +0 -0
- package/assets/whaleGirl/img/error/01.png +0 -0
- package/assets/whaleGirl/img/error/02.png +0 -0
- package/assets/whaleGirl/img/error/03.png +0 -0
- package/assets/whaleGirl/img/error/04.png +0 -0
- package/assets/whaleGirl/img/error/05.png +0 -0
- package/assets/whaleGirl/img/error/06.png +0 -0
- package/assets/whaleGirl/img/error/07.png +0 -0
- package/assets/whaleGirl/img/error/08.png +0 -0
- package/assets/whaleGirl/img/error/09.png +0 -0
- package/assets/whaleGirl/img/happy/00.png +0 -0
- package/assets/whaleGirl/img/happy/01.png +0 -0
- package/assets/whaleGirl/img/happy/02.png +0 -0
- package/assets/whaleGirl/img/happy/03.png +0 -0
- package/assets/whaleGirl/img/happy/04.png +0 -0
- package/assets/whaleGirl/img/happy/05.png +0 -0
- package/assets/whaleGirl/img/happy/06.png +0 -0
- package/assets/whaleGirl/img/happy/07.png +0 -0
- package/assets/whaleGirl/img/happy/08.png +0 -0
- package/assets/whaleGirl/img/happy/09.png +0 -0
- package/assets/whaleGirl/img/happy/10.png +0 -0
- package/assets/whaleGirl/img/idle/00.png +0 -0
- package/assets/whaleGirl/img/idle/01.png +0 -0
- package/assets/whaleGirl/img/idle/02.png +0 -0
- package/assets/whaleGirl/img/idle/03.png +0 -0
- package/assets/whaleGirl/img/idle/04.png +0 -0
- package/assets/whaleGirl/img/idle/05.png +0 -0
- package/assets/whaleGirl/img/idle/06.png +0 -0
- package/assets/whaleGirl/img/idle/07.png +0 -0
- package/assets/whaleGirl/img/idle/08.png +0 -0
- package/assets/whaleGirl/img/idle/09.png +0 -0
- package/assets/whaleGirl/img/idle/10.png +0 -0
- package/assets/whaleGirl/img/idle/11.png +0 -0
- package/assets/whaleGirl/img/idle/12.png +0 -0
- package/assets/whaleGirl/img/idle/13.png +0 -0
- package/assets/whaleGirl/img/idle/14.png +0 -0
- package/assets/whaleGirl/img/idle/15.png +0 -0
- package/assets/whaleGirl/img/idle/16.png +0 -0
- package/assets/whaleGirl/img/idle/17.png +0 -0
- package/assets/whaleGirl/img/idle/18.png +0 -0
- package/assets/whaleGirl/img/idle/19.png +0 -0
- package/assets/whaleGirl/img/idle/20.png +0 -0
- package/assets/whaleGirl/img/idle-look/00.png +0 -0
- package/assets/whaleGirl/img/idle-look/01.png +0 -0
- package/assets/whaleGirl/img/idle-look/02.png +0 -0
- package/assets/whaleGirl/img/idle-look/03.png +0 -0
- package/assets/whaleGirl/img/idle-look/04.png +0 -0
- package/assets/whaleGirl/img/idle-look/05.png +0 -0
- package/assets/whaleGirl/img/idle-look/06.png +0 -0
- package/assets/whaleGirl/img/idle-look/07.png +0 -0
- package/assets/whaleGirl/img/idle-look/08.png +0 -0
- package/assets/whaleGirl/img/idle-look/09.png +0 -0
- package/assets/whaleGirl/img/idle-look/10.png +0 -0
- package/assets/whaleGirl/img/idle-look/11.png +0 -0
- package/assets/whaleGirl/img/idle-look/12.png +0 -0
- package/assets/whaleGirl/img/idle-spout/00.png +0 -0
- package/assets/whaleGirl/img/idle-spout/01.png +0 -0
- package/assets/whaleGirl/img/idle-spout/02.png +0 -0
- package/assets/whaleGirl/img/idle-spout/03.png +0 -0
- package/assets/whaleGirl/img/idle-spout/04.png +0 -0
- package/assets/whaleGirl/img/idle-spout/05.png +0 -0
- package/assets/whaleGirl/img/idle-spout/06.png +0 -0
- package/assets/whaleGirl/img/idle-spout/07.png +0 -0
- package/assets/whaleGirl/img/idle-spout/08.png +0 -0
- package/assets/whaleGirl/img/idle-spout/09.png +0 -0
- package/assets/whaleGirl/img/idle-spout/10.png +0 -0
- package/assets/whaleGirl/img/music/00.png +0 -0
- package/assets/whaleGirl/img/music/01.png +0 -0
- package/assets/whaleGirl/img/music/02.png +0 -0
- package/assets/whaleGirl/img/music/03.png +0 -0
- package/assets/whaleGirl/img/music/04.png +0 -0
- package/assets/whaleGirl/img/music/05.png +0 -0
- package/assets/whaleGirl/img/music/06.png +0 -0
- package/assets/whaleGirl/img/music/07.png +0 -0
- package/assets/whaleGirl/img/notification/00.png +0 -0
- package/assets/whaleGirl/img/notification/01.png +0 -0
- package/assets/whaleGirl/img/notification/02.png +0 -0
- package/assets/whaleGirl/img/notification/03.png +0 -0
- package/assets/whaleGirl/img/notification/04.png +0 -0
- package/assets/whaleGirl/img/notification/05.png +0 -0
- package/assets/whaleGirl/img/notification/06.png +0 -0
- package/assets/whaleGirl/img/notification/07.png +0 -0
- package/assets/whaleGirl/img/poke-left/00.png +0 -0
- package/assets/whaleGirl/img/poke-left/01.png +0 -0
- package/assets/whaleGirl/img/poke-left/02.png +0 -0
- package/assets/whaleGirl/img/poke-left/03.png +0 -0
- package/assets/whaleGirl/img/poke-left/04.png +0 -0
- package/assets/whaleGirl/img/poke-left/05.png +0 -0
- package/assets/whaleGirl/img/poke-left/06.png +0 -0
- package/assets/whaleGirl/img/poke-left/07.png +0 -0
- package/assets/whaleGirl/img/poke-left/08.png +0 -0
- package/assets/whaleGirl/img/poke-left/09.png +0 -0
- package/assets/whaleGirl/img/poke-left/10.png +0 -0
- package/assets/whaleGirl/img/poke-right/00.png +0 -0
- package/assets/whaleGirl/img/poke-right/01.png +0 -0
- package/assets/whaleGirl/img/poke-right/02.png +0 -0
- package/assets/whaleGirl/img/poke-right/03.png +0 -0
- package/assets/whaleGirl/img/poke-right/04.png +0 -0
- package/assets/whaleGirl/img/poke-right/05.png +0 -0
- package/assets/whaleGirl/img/poke-right/06.png +0 -0
- package/assets/whaleGirl/img/poke-right/07.png +0 -0
- package/assets/whaleGirl/img/poke-right/08.png +0 -0
- package/assets/whaleGirl/img/poke-right/09.png +0 -0
- package/assets/whaleGirl/img/poke-right/10.png +0 -0
- package/assets/whaleGirl/img/sleeping/00.png +0 -0
- package/assets/whaleGirl/img/sleeping/01.png +0 -0
- package/assets/whaleGirl/img/sleeping/02.png +0 -0
- package/assets/whaleGirl/img/sleeping/03.png +0 -0
- package/assets/whaleGirl/img/sleeping/04.png +0 -0
- package/assets/whaleGirl/img/sleeping/05.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/00.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/01.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/02.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/03.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/04.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/05.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/06.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/07.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/08.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/09.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/10.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/11.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/12.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/13.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/14.png +0 -0
- package/assets/whaleGirl/img/smile-hearts/15.png +0 -0
- package/assets/whaleGirl/img/swim/00.png +0 -0
- package/assets/whaleGirl/img/swim/01.png +0 -0
- package/assets/whaleGirl/img/swim/02.png +0 -0
- package/assets/whaleGirl/img/swim/03.png +0 -0
- package/assets/whaleGirl/img/swim/04.png +0 -0
- package/assets/whaleGirl/img/swim/05.png +0 -0
- package/assets/whaleGirl/img/swim/06.png +0 -0
- package/assets/whaleGirl/img/swim/07.png +0 -0
- package/assets/whaleGirl/img/thinking/00.png +0 -0
- package/assets/whaleGirl/img/thinking/01.png +0 -0
- package/assets/whaleGirl/img/thinking/02.png +0 -0
- package/assets/whaleGirl/img/thinking/03.png +0 -0
- package/assets/whaleGirl/img/thinking/04.png +0 -0
- package/assets/whaleGirl/img/thinking/05.png +0 -0
- package/assets/whaleGirl/img/thinking/06.png +0 -0
- package/assets/whaleGirl/img/thinking/07.png +0 -0
- package/assets/whaleGirl/img/thinking/08.png +0 -0
- package/assets/whaleGirl/img/thinking/09.png +0 -0
- package/assets/whaleGirl/img/thinking/10.png +0 -0
- package/assets/whaleGirl/img/thinking/11.png +0 -0
- package/assets/whaleGirl/img/thinking/12.png +0 -0
- package/assets/whaleGirl/img/thinking/13.png +0 -0
- package/assets/whaleGirl/img/thinking/14.png +0 -0
- package/assets/whaleGirl/img/thinking/15.png +0 -0
- package/assets/whaleGirl/img/thinking/16.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/00.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/01.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/02.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/03.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/04.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/05.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/06.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/07.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/08.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/09.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/10.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/11.png +0 -0
- package/assets/whaleGirl/img/thumbs-up/12.png +0 -0
- package/assets/whaleGirl/img/tickle/00.png +0 -0
- package/assets/whaleGirl/img/tickle/01.png +0 -0
- package/assets/whaleGirl/img/tickle/02.png +0 -0
- package/assets/whaleGirl/img/tickle/03.png +0 -0
- package/assets/whaleGirl/img/tickle/04.png +0 -0
- package/assets/whaleGirl/img/tickle/05.png +0 -0
- package/assets/whaleGirl/img/tickle/06.png +0 -0
- package/assets/whaleGirl/img/tickle/07.png +0 -0
- package/assets/whaleGirl/img/tickle/08.png +0 -0
- package/assets/whaleGirl/img/tickle/09.png +0 -0
- package/assets/whaleGirl/img/tickle/10.png +0 -0
- package/assets/whaleGirl/img/tickle/11.png +0 -0
- package/assets/whaleGirl/img/tickle/12.png +0 -0
- package/assets/whaleGirl/img/tickle/13.png +0 -0
- package/assets/whaleGirl/img/timings.json +1 -0
- package/assets/whaleGirl/img/typing/00.png +0 -0
- package/assets/whaleGirl/img/typing/01.png +0 -0
- package/assets/whaleGirl/img/typing/02.png +0 -0
- package/assets/whaleGirl/img/typing/03.png +0 -0
- package/assets/whaleGirl/img/typing/04.png +0 -0
- package/assets/whaleGirl/img/typing/05.png +0 -0
- package/assets/whaleGirl/img/typing/06.png +0 -0
- package/assets/whaleGirl/img/typing/07.png +0 -0
- package/assets/whaleGirl/img/typing/08.png +0 -0
- package/assets/whaleGirl/img/typing/09.png +0 -0
- package/assets/whaleGirl/img/typing/10.png +0 -0
- package/assets/whaleGirl/img/typing/11.png +0 -0
- package/assets/whaleGirl/img/typing/12.png +0 -0
- package/assets/whaleGirl/img/typing/13.png +0 -0
- package/assets/whaleGirl/img/waking/00.png +0 -0
- package/assets/whaleGirl/img/waking/01.png +0 -0
- package/assets/whaleGirl/img/waking/02.png +0 -0
- package/assets/whaleGirl/img/waking/03.png +0 -0
- package/assets/whaleGirl/img/waking/04.png +0 -0
- package/assets/whaleGirl/img/waking/05.png +0 -0
- package/assets/whaleGirl/img/waking/06.png +0 -0
- package/assets/whaleGirl/img/waking/07.png +0 -0
- package/assets/whaleGirl/img/waking/08.png +0 -0
- package/assets/whaleGirl/img/waking/09.png +0 -0
- package/assets/whaleGirl/img/waking/10.png +0 -0
- package/bin/dsh-tui.js +8 -3
- package/cordis.patch.yml +7 -1
- package/guide/dsh-tui-guide/configuration.en.md +6 -1
- package/guide/dsh-tui-guide/configuration.md +6 -1
- package/guide/dsh-tui-guide/getting-started.en.md +6 -3
- package/guide/dsh-tui-guide/getting-started.md +4 -2
- package/guide/dsh-tui-guide/interaction.en.md +68 -4
- package/guide/dsh-tui-guide/interaction.md +49 -3
- package/guide/dsh-tui-guide/plugins.en.md +16 -6
- package/guide/dsh-tui-guide/plugins.md +14 -6
- package/guide/dsh-tui-guide/themes.en.md +7 -2
- package/guide/dsh-tui-guide/themes.md +5 -2
- package/guide/dsh-tui-guide/user-guide.en.md +124 -21
- package/guide/dsh-tui-guide/user-guide.md +96 -16
- package/lib/settings.json +215 -1
- package/lib/types/adapter/channel/ui-policy.d.ts +6 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +14 -1
- package/lib/types/adapter/index.d.ts +1 -1
- package/lib/types/adapter/index.js +1 -1
- package/lib/types/adapter/kernel/host-facade.d.ts +4 -1
- package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -1
- package/lib/types/adapter/kernel/host-facade.js +8 -1
- package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
- package/lib/types/adapter/kernel/runtime.js +13 -0
- package/lib/types/adapter/kernel/slices/index.d.ts +1 -0
- package/lib/types/adapter/kernel/slices/index.d.ts.map +1 -1
- package/lib/types/adapter/kernel/slices/index.js +3 -0
- package/lib/types/adapter/kernel/slices/panels.d.ts +3 -0
- package/lib/types/adapter/kernel/slices/panels.d.ts.map +1 -0
- package/lib/types/adapter/kernel/slices/panels.js +14 -0
- package/lib/types/adapter/ports/channel-capabilities.d.ts +48 -0
- package/lib/types/adapter/ports/channel-capabilities.d.ts.map +1 -0
- package/lib/types/adapter/ports/channel-capabilities.js +2 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-display.d.ts +10 -0
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +62 -2
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +94 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel.d.ts +1 -1
- package/lib/types/adapter/ports/channel.js +1 -1
- package/lib/types/adapter/ports/descriptor.d.ts +1 -1
- package/lib/types/adapter/ports/descriptor.js +1 -1
- package/lib/types/adapter/ports/index.d.ts +1 -1
- package/lib/types/adapter/ports/index.js +1 -1
- package/lib/types/adapter/ports/panels.d.ts +28 -0
- package/lib/types/adapter/ports/panels.d.ts.map +1 -0
- package/lib/types/adapter/ports/panels.js +8 -0
- package/lib/types/adapter/ports/workspace.d.ts +1 -1
- package/lib/types/adapter/ports/workspace.js +1 -1
- package/lib/types/adapter/spec/index.d.ts +2 -2
- package/lib/types/adapter/spec/index.js +2 -2
- package/lib/types/adapter/spec/profile.d.ts +6 -6
- package/lib/types/adapter/spec/profile.d.ts.map +1 -1
- package/lib/types/adapter/spec/profile.js +6 -6
- package/lib/types/adapter/spec/protocol-constants.d.ts +3 -3
- package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
- package/lib/types/adapter/spec/protocol-constants.js +5 -5
- package/lib/types/adapter/spec/tui-contributions.d.ts +4 -4
- package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
- package/lib/types/adapter/spec/tui-contributions.js +5 -5
- package/lib/types/adapter/standard/descriptor.js +1 -1
- package/lib/types/adapter/standard/index.d.ts +3 -3
- package/lib/types/adapter/standard/index.js +3 -3
- package/lib/types/adapter/standard/registry.d.ts +3 -2
- package/lib/types/adapter/standard/registry.d.ts.map +1 -1
- package/lib/types/adapter/standard/registry.js +6 -5
- package/lib/types/adapter/standard/tui-extension.d.ts +1 -1
- package/lib/types/adapter/standard/tui-extension.js +1 -1
- package/lib/types/adapter/upstream/index.d.ts +1 -0
- package/lib/types/adapter/upstream/index.d.ts.map +1 -1
- package/lib/types/adapter/upstream/index.js +1 -0
- package/lib/types/adapter/upstream/panels-driver.d.ts +18 -0
- package/lib/types/adapter/upstream/panels-driver.d.ts.map +1 -0
- package/lib/types/adapter/upstream/panels-driver.js +159 -0
- package/lib/types/api.d.ts +2 -0
- package/lib/types/api.d.ts.map +1 -1
- package/lib/types/api.js +3 -1
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +12 -4
- package/lib/types/components/ActivityLine.d.ts +6 -9
- package/lib/types/components/ActivityLine.d.ts.map +1 -1
- package/lib/types/components/ActivityLine.js +7 -8
- package/lib/types/components/Chat/JobCard.d.ts +18 -1
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +90 -22
- package/lib/types/components/Chat/JobGroupHeader.d.ts +27 -0
- package/lib/types/components/Chat/JobGroupHeader.d.ts.map +1 -0
- package/lib/types/components/Chat/JobGroupHeader.js +62 -0
- package/lib/types/components/GoalTodoPanel.d.ts +13 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +55 -14
- package/lib/types/components/JobsPanel.d.ts +42 -2
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +147 -14
- package/lib/types/components/LogoV2.d.ts +43 -3
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +42 -15
- package/lib/types/components/MessageList.d.ts +8 -2
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +212 -18
- package/lib/types/components/OverlayAbove.d.ts +11 -1
- package/lib/types/components/OverlayAbove.d.ts.map +1 -1
- package/lib/types/components/OverlayAbove.js +2 -12
- package/lib/types/components/PageMargin.d.ts.map +1 -1
- package/lib/types/components/PageMargin.js +3 -1
- package/lib/types/components/PluginSceneBoundary.d.ts +1 -1
- package/lib/types/components/PluginSceneBoundary.js +1 -1
- package/lib/types/components/PromptInput.d.ts +20 -22
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +413 -156
- package/lib/types/components/SearchBox.d.ts +22 -5
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +17 -13
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +17 -2
- package/lib/types/components/SubagentDashboard.d.ts +18 -3
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +53 -5
- package/lib/types/components/SubagentDetailScene.d.ts +7 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +54 -5
- package/lib/types/components/SurfaceEdges.d.ts +21 -0
- package/lib/types/components/SurfaceEdges.d.ts.map +1 -0
- package/lib/types/components/SurfaceEdges.js +7 -0
- package/lib/types/components/ThemePicker.d.ts +9 -0
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +74 -10
- package/lib/types/components/ThemePreviewPane.d.ts +26 -0
- package/lib/types/components/ThemePreviewPane.d.ts.map +1 -0
- package/lib/types/components/ThemePreviewPane.js +99 -0
- package/lib/types/components/design-system/Divider.d.ts.map +1 -1
- package/lib/types/components/design-system/Divider.js +14 -9
- package/lib/types/components/launchpadActions.d.ts +73 -0
- package/lib/types/components/launchpadActions.d.ts.map +1 -0
- package/lib/types/components/launchpadActions.js +111 -0
- package/lib/types/components/launchpadLayout.d.ts +62 -0
- package/lib/types/components/launchpadLayout.d.ts.map +1 -0
- package/lib/types/components/launchpadLayout.js +176 -0
- package/lib/types/components/onboardingModel.d.ts +83 -0
- package/lib/types/components/onboardingModel.d.ts.map +1 -0
- package/lib/types/components/onboardingModel.js +128 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts +17 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -0
- package/lib/types/components/sidePanel/InfoPanel.js +124 -0
- package/lib/types/components/sidePanel/PanelBar.d.ts +45 -0
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -0
- package/lib/types/components/sidePanel/PanelBar.js +104 -0
- package/lib/types/components/sidePanel/PanelErrorBoundary.d.ts +21 -0
- package/lib/types/components/sidePanel/PanelErrorBoundary.d.ts.map +1 -0
- package/lib/types/components/sidePanel/PanelErrorBoundary.js +30 -0
- package/lib/types/components/sidePanel/PanelHost.d.ts +36 -0
- package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -0
- package/lib/types/components/sidePanel/PanelHost.js +81 -0
- package/lib/types/components/sidePanel/PanelPicker.d.ts +24 -0
- package/lib/types/components/sidePanel/PanelPicker.d.ts.map +1 -0
- package/lib/types/components/sidePanel/PanelPicker.js +45 -0
- package/lib/types/components/sidePanel/PanelStore.d.ts +55 -0
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/PanelStore.js +109 -0
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +31 -0
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -0
- package/lib/types/components/sidePanel/SidePanelColumn.js +70 -0
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts +54 -0
- package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -0
- package/lib/types/components/sidePanel/SidePanelLayout.js +81 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +43 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +26 -0
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts +7 -0
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -0
- package/lib/types/components/sidePanel/TrajectoryPanel.js +263 -0
- package/lib/types/components/sidePanel/WorkspacePanel.d.ts +4 -0
- package/lib/types/components/sidePanel/WorkspacePanel.d.ts.map +1 -0
- package/lib/types/components/sidePanel/WorkspacePanel.js +171 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts +3 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -0
- package/lib/types/components/sidePanel/builtinPanels.js +229 -0
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +53 -0
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -0
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +528 -0
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +32 -0
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -0
- package/lib/types/components/sidePanel/companion/SplashMascot.js +103 -0
- package/lib/types/components/sidePanel/companion/deepy.d.ts +75 -0
- package/lib/types/components/sidePanel/companion/deepy.d.ts.map +1 -0
- package/lib/types/components/sidePanel/companion/deepy.js +222 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts +176 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -0
- package/lib/types/components/sidePanel/companion/mood.js +212 -0
- package/lib/types/components/sidePanel/companion/pose.d.ts +43 -0
- package/lib/types/components/sidePanel/companion/pose.d.ts.map +1 -0
- package/lib/types/components/sidePanel/companion/pose.js +34 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts +102 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -0
- package/lib/types/components/sidePanel/companion/skins.js +408 -0
- package/lib/types/components/sidePanel/dimensions.d.ts +60 -0
- package/lib/types/components/sidePanel/dimensions.d.ts.map +1 -0
- package/lib/types/components/sidePanel/dimensions.js +75 -0
- package/lib/types/components/sidePanel/jobsFocusStore.d.ts +21 -0
- package/lib/types/components/sidePanel/jobsFocusStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/jobsFocusStore.js +30 -0
- package/lib/types/components/sidePanel/panelBridge.d.ts +44 -0
- package/lib/types/components/sidePanel/panelBridge.d.ts.map +1 -0
- package/lib/types/components/sidePanel/panelBridge.js +55 -0
- package/lib/types/components/sidePanel/pluginPanelAdapter.d.ts +22 -0
- package/lib/types/components/sidePanel/pluginPanelAdapter.d.ts.map +1 -0
- package/lib/types/components/sidePanel/pluginPanelAdapter.js +148 -0
- package/lib/types/components/sidePanel/types.d.ts +110 -0
- package/lib/types/components/sidePanel/types.d.ts.map +1 -0
- package/lib/types/components/sidePanel/types.js +1 -0
- package/lib/types/components/sidePanel/usePanelInput.d.ts +5 -0
- package/lib/types/components/sidePanel/usePanelInput.d.ts.map +1 -0
- package/lib/types/components/sidePanel/usePanelInput.js +44 -0
- package/lib/types/components/sidePanel/useSidePanel.d.ts +47 -0
- package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -0
- package/lib/types/components/sidePanel/useSidePanel.js +284 -0
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
- package/lib/types/components/workspaces/HomeWorkspaceRow.js +3 -2
- package/lib/types/deepseekPricing.d.ts +10 -9
- package/lib/types/deepseekPricing.d.ts.map +1 -1
- package/lib/types/deepseekPricing.js +18 -11
- package/lib/types/dsh-adapter/channel/attached-context.d.ts +58 -0
- package/lib/types/dsh-adapter/channel/attached-context.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/attached-context.js +109 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +43 -0
- package/lib/types/dsh-adapter/channel/capabilities.d.ts +82 -0
- package/lib/types/dsh-adapter/channel/capabilities.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/capabilities.js +165 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +8 -0
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +4 -12
- package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/context-bookkeeping.js +9 -4
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +13 -2
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +18 -1
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +0 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-actions.js +7 -2
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +8 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +0 -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 +9 -1
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +42 -37
- package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/reports.js +13 -4
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +1 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +18 -2
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +2 -1
- 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/usage.d.ts +18 -1
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.js +97 -2
- package/lib/types/dsh-adapter/channel.d.ts +1 -1
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +56 -3
- package/lib/types/dsh-adapter/context-occupancy.d.ts +204 -0
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -0
- package/lib/types/dsh-adapter/context-occupancy.js +299 -0
- package/lib/types/dsh-adapter/contract.d.ts +14 -0
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +24 -0
- package/lib/types/dsh-adapter/index.d.ts +32 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +20 -1
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/sessionize.js +11 -12
- package/lib/types/dsh-adapter/panel-runtime-registry.d.ts +39 -0
- package/lib/types/dsh-adapter/panel-runtime-registry.d.ts.map +1 -0
- package/lib/types/dsh-adapter/panel-runtime-registry.js +84 -0
- package/lib/types/dsh-adapter/panels.d.ts +251 -0
- package/lib/types/dsh-adapter/panels.d.ts.map +1 -0
- package/lib/types/dsh-adapter/panels.js +407 -0
- package/lib/types/dsh-adapter/plugin-host.js +1 -1
- package/lib/types/dsh-adapter/plugin.d.ts +17 -1
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +169 -32
- package/lib/types/dsh-adapter/presets.d.ts +26 -6
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +29 -7
- package/lib/types/dsh-adapter/startup-args.d.ts +8 -0
- package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -0
- package/lib/types/dsh-adapter/startup-args.js +34 -0
- package/lib/types/history.d.ts +24 -7
- package/lib/types/history.d.ts.map +1 -1
- package/lib/types/history.js +77 -18
- package/lib/types/i18n.d.ts +734 -15
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +302 -6
- package/lib/types/ink/components/App.d.ts +14 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +62 -61
- package/lib/types/ink/components/TerminalSizeContext.d.ts +7 -0
- package/lib/types/ink/components/TerminalSizeContext.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.d.ts +11 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +8 -2
- package/lib/types/ink/hooks/use-terminal-viewport.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-terminal-viewport.js +3 -1
- package/lib/types/ink/ink.d.ts +18 -0
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +51 -8
- package/lib/types/ink/output.d.ts +10 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +3 -3
- package/lib/types/ink/parse-keypress.d.ts +36 -3
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +262 -108
- package/lib/types/ink/render-node-to-output.d.ts +1 -1
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +37 -5
- package/lib/types/ink/screen.d.ts +26 -1
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/screen.js +96 -1
- package/lib/types/ink/selection.d.ts +23 -1
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +102 -26
- package/lib/types/ink/sixel-codec.d.ts +11 -0
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +42 -8
- package/lib/types/math/renderer.d.ts +2 -0
- package/lib/types/math/renderer.d.ts.map +1 -1
- package/lib/types/math/renderer.js +4 -0
- package/lib/types/onboardingPrefs.d.ts +52 -0
- package/lib/types/onboardingPrefs.d.ts.map +1 -0
- package/lib/types/onboardingPrefs.js +107 -0
- package/lib/types/panels.d.ts +4 -0
- package/lib/types/panels.d.ts.map +1 -0
- package/lib/types/panels.js +4 -0
- package/lib/types/screens/Chat.d.ts +22 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +1126 -299
- package/lib/types/screens/Launchpad.d.ts +194 -0
- package/lib/types/screens/Launchpad.d.ts.map +1 -0
- package/lib/types/screens/Launchpad.js +607 -0
- package/lib/types/screens/Onboarding.d.ts +37 -0
- package/lib/types/screens/Onboarding.d.ts.map +1 -0
- package/lib/types/screens/Onboarding.js +492 -0
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +18 -12
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +32 -14
- package/lib/types/screens/StatusMetrics.d.ts +22 -0
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +20 -0
- package/lib/types/screens/chatOverlay.d.ts +18 -1
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +3 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts +1 -2
- package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/model.js +4 -2
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +7 -3
- package/lib/types/settings/definitions.d.ts +93 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +83 -0
- package/lib/types/tips.js +5 -5
- package/lib/types/tuiDisplayPrefs.d.ts +42 -2
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +74 -0
- package/lib/types/update.d.ts +53 -9
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +101 -44
- package/lib/types/utils/bmp.d.ts.map +1 -1
- package/lib/types/utils/bmp.js +8 -1
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +25 -6
- package/lib/types/utils/credentials.d.ts.map +1 -1
- package/lib/types/utils/credentials.js +5 -1
- package/lib/types/utils/draftWordBoundary.d.ts +23 -0
- package/lib/types/utils/draftWordBoundary.d.ts.map +1 -0
- package/lib/types/utils/draftWordBoundary.js +161 -0
- package/lib/types/utils/fileTarget.d.ts.map +1 -1
- package/lib/types/utils/fileTarget.js +7 -9
- package/lib/types/utils/inputPaste.d.ts +62 -0
- package/lib/types/utils/inputPaste.d.ts.map +1 -0
- package/lib/types/utils/inputPaste.js +111 -0
- package/lib/types/utils/intl.d.ts +8 -0
- package/lib/types/utils/intl.d.ts.map +1 -1
- package/lib/types/utils/intl.js +11 -0
- package/lib/types/utils/keymap.d.ts +13 -3
- package/lib/types/utils/keymap.d.ts.map +1 -1
- package/lib/types/utils/keymap.js +27 -5
- package/package.json +19 -8
- package/{dsh-ecosystem-spec → tui-profile}/registry/README.md +1 -1
- package/{dsh-ecosystem-spec → tui-profile}/registry/registry-0.15.json +1 -1
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/profile-definitions.d.ts +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/profile-definitions.js +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel-http.d.ts +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel-http.js +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel.d.ts +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-channel.js +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-contributions.d.ts +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/protocols/tui-contributions.js +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/decision-events-v1alpha1.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/scene-v1alpha1.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/settings-section-v1alpha1.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/tui-channel-v1alpha1.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/contracts/workspace-provider-v1alpha1.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/host-descriptor.tui.example.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/registry/permissions-0.1.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/schemas/conformance-claim.schema.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/schemas/effect-ledger-record.schema.json +0 -0
- /package/{dsh-ecosystem-spec → tui-profile}/schemas/host-descriptor.schema.json +0 -0
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/lib/types/i18n.js
CHANGED
|
@@ -136,6 +136,11 @@ const dict = {
|
|
|
136
136
|
zh: '已选中 {{lines}} 行 · {{path}}',
|
|
137
137
|
en: { one: 'Selected {{lines}} line from {{path}}', other: 'Selected {{lines}} lines from {{path}}' },
|
|
138
138
|
},
|
|
139
|
+
// "Send to Chat" (side-panel §6.7): the composer chip for one context a
|
|
140
|
+
// panel staged. zh and en deliberately carry the same shape — it is a label
|
|
141
|
+
// (mark + title), not a sentence, and the ⧉ mark matches the selection
|
|
142
|
+
// indicator's above.
|
|
143
|
+
'prompt-attached-context-chip': { zh: '⧉ {{title}}', en: '⧉ {{title}}' },
|
|
139
144
|
'transcript-image': { zh: '图片', en: 'Image' },
|
|
140
145
|
'image-preview-previous': { zh: '上一张', en: 'Previous image' },
|
|
141
146
|
'image-preview-next': { zh: '下一张', en: 'Next image' },
|
|
@@ -306,6 +311,34 @@ const dict = {
|
|
|
306
311
|
'compact-cancelled': { zh: '压缩已取消', en: 'Compaction cancelled' },
|
|
307
312
|
// 回合进行中的自动压缩:工作 spinner 上的后缀(只此一词,别抢行)。
|
|
308
313
|
'compact-badge': { zh: '压缩中', en: 'compacting' },
|
|
314
|
+
// ── 能力事实(dsh-adapter/channel/capabilities.ts)───────────────────
|
|
315
|
+
// 命令在「当前 agent 组合」下没有任何实现路径时,入口要先说清原因,
|
|
316
|
+
// 而不是看起来可用、按下去才报一句没有服务。
|
|
317
|
+
'capability-unavailable': {
|
|
318
|
+
zh: '/{{name}} 在当前 agent 预设下不可用:{{reason}}',
|
|
319
|
+
en: '/{{name}} is unavailable under the active agent preset: {{reason}}',
|
|
320
|
+
},
|
|
321
|
+
'capability-reason-no-compaction': {
|
|
322
|
+
zh: '该预设没有挂载压缩服务(内核「极简模式」预设不含 compaction,官方 /compact 命令也依赖它)',
|
|
323
|
+
en: 'the preset mounts no compaction service (the kernel Minimal preset omits compaction, and the official /compact command depends on it)',
|
|
324
|
+
},
|
|
325
|
+
'capability-reason-no-plan-command': {
|
|
326
|
+
zh: '该预设没有注册 /plan 命令(内核「极简模式」预设不含 plan-mode)',
|
|
327
|
+
en: 'the preset registers no /plan command (the kernel Minimal preset omits plan mode)',
|
|
328
|
+
},
|
|
329
|
+
// 进入/恢复一个缺能力的预设时的一次性告知:只讲用户会遇到的后果。
|
|
330
|
+
'capability-gap-compaction': {
|
|
331
|
+
zh: '当前 agent 预设没有压缩:长会话可能撞上下文上限,届时只能新开会话',
|
|
332
|
+
en: 'The active agent preset has no compaction: a long session can hit the context limit and has to be restarted',
|
|
333
|
+
},
|
|
334
|
+
'capability-gap-pruner': {
|
|
335
|
+
zh: '当前 agent 预设不剪枝工具结果:超长工具输出会整段留在上下文里',
|
|
336
|
+
en: 'The active agent preset does not prune tool results: oversized tool output stays in the context in full',
|
|
337
|
+
},
|
|
338
|
+
'capability-gap-compaction-pruner': {
|
|
339
|
+
zh: '当前 agent 预设既没有压缩也不剪枝工具结果:长会话可能撞上下文上限,超长工具输出也会整段留在上下文里',
|
|
340
|
+
en: 'The active agent preset has neither compaction nor tool-result pruning: a long session can hit the context limit, and oversized tool output stays in the context in full',
|
|
341
|
+
},
|
|
309
342
|
'turn-failed': { zh: '回合出错{{detail}}', en: 'Turn error{{detail}}' },
|
|
310
343
|
// ── dsh-adapter/promptDebug.ts(/debug-prompt 成功提示)─────────────
|
|
311
344
|
// 快照 0600 落在会话工作区根,与 export-saved 同一句清理提醒。
|
|
@@ -437,6 +470,9 @@ const dict = {
|
|
|
437
470
|
// ── screens/SessionSupervisor.tsx(三合一会话管理:/resume /agentview /home)─
|
|
438
471
|
'supervisor-title': { zh: '会话管理', en: 'Sessions' },
|
|
439
472
|
'supervisor-unregistered': { zh: '未登记的工作区', en: 'Unregistered' },
|
|
473
|
+
'supervisor-history-only': { zh: '仅历史', en: 'History only' },
|
|
474
|
+
'supervisor-workspace-groups': { zh: '工作区 {{registered}} · 历史目录 {{history}}', en: 'Workspaces {{registered}} · History {{history}}' },
|
|
475
|
+
'supervisor-workspace-removed': { zh: '工作区登记已移除;目录与历史会话仍保留', en: 'Workspace registration removed; directory and past sessions remain' },
|
|
440
476
|
'supervisor-no-matches': { zh: '没有匹配的会话 · Esc 清空筛选', en: 'No sessions match · Esc clears the filter' },
|
|
441
477
|
'supervisor-subtitle': { zh: '本终端托管多个会话 · 切换不中断', en: 'This terminal hosts several sessions · switching does not stop them' },
|
|
442
478
|
'supervisor-filter-placeholder': { zh: '输入以搜索会话…', en: 'Type to search sessions…' },
|
|
@@ -472,10 +508,12 @@ const dict = {
|
|
|
472
508
|
'supervisor-foreign-failed-not-a-session': { zh: '不是可导入的会话', en: 'not an importable session' },
|
|
473
509
|
'supervisor-foreign-failed-write-failed': { zh: '写入会话失败', en: 'writing the session failed' },
|
|
474
510
|
'supervisor-foreign-failed-unknown-source': { zh: '未知来源', en: 'unknown source' },
|
|
475
|
-
'cost-cache-rate': { zh: '
|
|
476
|
-
|
|
511
|
+
'cost-cache-rate': { zh: '本次请求缓存率 {{rate}}% · {{read}} 读 / {{write}} 写', en: 'Cache rate of this request: {{rate}}% · {{read}} read / {{write}} write' },
|
|
512
|
+
// 占用只有一个真源(官方 contextPressure 投影,见 dsh-adapter/context-occupancy.ts):
|
|
513
|
+
// 与 /tokens、状态栏 ctx 字段、告警共用同一读数。
|
|
514
|
+
'context-occupancy': { zh: '上下文占用 {{percent}}%({{used}}/{{window}})', en: 'Context occupancy {{percent}}% ({{used}}/{{window}})' },
|
|
477
515
|
'status-title': { zh: '标题 {{title}}', en: 'Title {{title}}' },
|
|
478
|
-
'cost-cache-hit-rate': { zh: '
|
|
516
|
+
'cost-cache-hit-rate': { zh: '本次请求缓存命中率 {{rate}}% · 缓存 {{read}} 读 / {{write}} 写', en: 'Cache hit rate of this request: {{rate}}% · cache {{read}} read / {{write}} write' },
|
|
479
517
|
// /cost 末尾口径:有金额 → 本地估算(官方单价 × 用量)、非平台账单;
|
|
480
518
|
// 无金额(无用量 / 全部未计价)→ 只解释 token,不套用金额口径。
|
|
481
519
|
// 旧文案"DSH 不提供 API 费用计量"与 T01/T03 的新展示/文档矛盾(#1089)。
|
|
@@ -660,8 +698,21 @@ const dict = {
|
|
|
660
698
|
'thinking-toggled': { zh: '思考过程:{{state}}', en: 'Thinking display: {{state}}' },
|
|
661
699
|
'thinking-on': { zh: '显示', en: 'shown' },
|
|
662
700
|
'thinking-off': { zh: '隐藏', en: 'hidden' },
|
|
663
|
-
|
|
664
|
-
|
|
701
|
+
// /tokens、/status、/cost 的 token 口径:provider 的四个桶是互斥计数,
|
|
702
|
+
// 「本次请求上传量」= input+cacheRead+cacheWrite(= prompt 大小),
|
|
703
|
+
// 「会话累计」才是 tokens 计数器。两者不得再并列成一句。
|
|
704
|
+
'tokens-request-upload': {
|
|
705
|
+
zh: '本次请求:上传 {{upload}}(输入 {{input}} · 缓存读 {{read}} · 缓存写 {{write}})· 命中率 {{rate}}%',
|
|
706
|
+
en: 'This request: {{upload}} uploaded (input {{input}} · cache read {{read}} · cache write {{write}}) · hit rate {{rate}}%',
|
|
707
|
+
},
|
|
708
|
+
'tokens-session-total': {
|
|
709
|
+
zh: '会话累计:未缓存输入 {{input}} · 输出 {{output}}',
|
|
710
|
+
en: 'Session total: {{input}} uncached input · {{output}} output',
|
|
711
|
+
},
|
|
712
|
+
'tokens-session-breakdown': {
|
|
713
|
+
zh: '会话累计:未缓存输入 {{input}} · 输出 {{output}} · 缓存读 {{read}} · 缓存写 {{write}}',
|
|
714
|
+
en: 'Session total: {{input}} uncached input · {{output}} output · {{read}} cache read · {{write}} cache write',
|
|
715
|
+
},
|
|
665
716
|
// ── plugin.ts — /update flow ───────────────────────────────────────
|
|
666
717
|
'update-aborted-no-profile': { zh: 'dsh-tui 更新中止:未解析到 dsh profile。', en: 'dsh-tui update aborted: no dsh profile resolved.' },
|
|
667
718
|
// 0.8.3 launcher alignment bridge: /update only replaces the profile
|
|
@@ -1057,7 +1108,7 @@ const dict = {
|
|
|
1057
1108
|
'plugins-check-usage': { zh: '用法:/plugins check <dsh-plugin.json 路径>', en: 'Usage: /plugins check <path-to-dsh-plugin.json>' },
|
|
1058
1109
|
'plugins-check-not-found': { zh: '文件不存在:{{path}}', en: 'File not found: {{path}}' },
|
|
1059
1110
|
'plugins-check-invalid-json': { zh: '不是可解析的 JSON:{{err}}', en: 'Not parseable JSON: {{err}}' },
|
|
1060
|
-
'plugins-check-spec-unavailable': { zh: 'vendored 规范数据不可用(
|
|
1111
|
+
'plugins-check-spec-unavailable': { zh: 'vendored 规范数据不可用(tui-profile/),无法校验。', en: 'Vendored spec data unavailable (tui-profile/); cannot validate.' },
|
|
1061
1112
|
'plugins-check-schema-failed': { zh: 'schema 校验失败:{{err}}', en: 'Schema validation failed: {{err}}' },
|
|
1062
1113
|
'plugins-check-invalid': { zh: '语义校验失败:{{err}}', en: 'Semantic validation failed: {{err}}' },
|
|
1063
1114
|
'plugins-check-state': { zh: '协商结果:{{state}}', en: 'Negotiation decision: {{state}}' },
|
|
@@ -1106,6 +1157,9 @@ const dict = {
|
|
|
1106
1157
|
'theme-auto-base': { zh: '内置 · 跟随系统/终端背景自动选择 light/dark', en: 'Built-in · follows the system/terminal background (light/dark)' },
|
|
1107
1158
|
'theme-user-base': { zh: '{{base}} 基底 · ~/.dsh-tui/themes/{{name}}.json', en: '{{base}} base · ~/.dsh-tui/themes/{{name}}.json' },
|
|
1108
1159
|
'theme-plugin-base': { zh: '插件 · {{base}} 基底 · {{name}}', en: 'Plugin · {{base}} base · {{name}}' },
|
|
1160
|
+
// ── components/ThemePreviewPane.tsx ─────────────────────────────────
|
|
1161
|
+
'theme-preview-title': { zh: '主题预览', en: 'Theme preview' },
|
|
1162
|
+
'theme-preview-follow': { zh: '跟焦点实时预览', en: 'Live, follows focus' },
|
|
1109
1163
|
// ── components/LoadedContextPanel.tsx ───────────────────────────────
|
|
1110
1164
|
'context-unavailable': { zh: '当前会话没有已加载的上下文', en: 'No loaded context is available for this session' },
|
|
1111
1165
|
'context-panel-sections': { zh: '系统提示词 · {{n}} 段', en: 'System prompt · {{n}} sections' },
|
|
@@ -1167,6 +1221,8 @@ const dict = {
|
|
|
1167
1221
|
'subagent-dashboard-title': { zh: ' 子代理面板 ', en: ' Subagent Dashboard ' },
|
|
1168
1222
|
'subagent-dashboard-hint-basic': { zh: '↑/↓ 浏览 · Esc 关闭', en: '↑/↓ browse · Esc close' },
|
|
1169
1223
|
'subagent-dashboard-hint-detail': { zh: '↑/↓ 选择 · Enter 查看详情 · Esc 关闭', en: '↑/↓ select · Enter view detail · Esc close' },
|
|
1224
|
+
// 侧栏形态的 Esc 语义与整屏不同:让出焦点回聊天(面板不自己关侧栏)。
|
|
1225
|
+
'subagent-dashboard-hint-panel': { zh: '↑/↓ 选择 · Enter 查看详情 · Esc 回到聊天', en: '↑/↓ select · Enter view detail · Esc chat' },
|
|
1170
1226
|
'subagent-card-prefix': { zh: '子代理:', en: 'Subagent: ' },
|
|
1171
1227
|
'subagent-mode-continuable': { zh: '♻ 可继续', en: '♻ continuable' },
|
|
1172
1228
|
'subagent-mode-one-shot': { zh: '◇ 一次性', en: '◇ one-shot' },
|
|
@@ -1211,6 +1267,18 @@ const dict = {
|
|
|
1211
1267
|
'jobs-toast-killed': { zh: '后台任务已停止:{{label}}({{id}} · 用时 {{duration}})', en: 'Background job killed: {{label}} ({{id}} · {{duration}})' },
|
|
1212
1268
|
'jobs-kill-failed': { zh: '无法停止任务 {{id}}(任务不存在或任务服务未挂载)', en: 'Could not kill job {{id}} (unknown job or jobs service not mounted)' },
|
|
1213
1269
|
'jobs-steer-killed': { zh: '我通过 /jobs 面板停止了后台任务 {{id}}({{label}})', en: 'I killed background job {{id}} ({{label}}) via the /jobs panel' },
|
|
1270
|
+
// 连续任务卡成组(JobGroupHeader):一批 run_in_background 连着落下时,
|
|
1271
|
+
// 组头一行汇总整组、组内不再互相空行;全组落定后整组折叠成这一行。
|
|
1272
|
+
'jobs-group-title': { zh: '后台任务 ×{{count}}', en: 'background jobs ×{{count}}' },
|
|
1273
|
+
'jobs-group-folded': { zh: '已折叠 {{count}} 个后台任务', en: '{{count}} background jobs folded' },
|
|
1274
|
+
'jobs-group-running': { zh: '{{count}} 运行中', en: '{{count}} running' },
|
|
1275
|
+
'jobs-group-completed': { zh: '{{count}} 已完成', en: '{{count}} completed' },
|
|
1276
|
+
'jobs-group-failed': { zh: '{{count}} 失败', en: '{{count}} failed' },
|
|
1277
|
+
'jobs-group-killed': { zh: '{{count}} 已停止', en: '{{count}} killed' },
|
|
1278
|
+
'jobs-group-all-completed': { zh: '全部完成', en: 'all completed' },
|
|
1279
|
+
'jobs-group-elapsed': { zh: '合计 {{duration}}', en: '{{duration}} total' },
|
|
1280
|
+
'jobs-group-hint-expand': { zh: '点击展开', en: 'click to expand' },
|
|
1281
|
+
'jobs-group-hint-fold': { zh: '点击折叠', en: 'click to fold' },
|
|
1214
1282
|
// ── components/questions/PlanReviewPanel.tsx ────────────────────────
|
|
1215
1283
|
'plan-review-fallback-header': { zh: '计划评审', en: 'Plan review' },
|
|
1216
1284
|
'plan-review-feedback-placeholder': { zh: '输入反馈,告诉模型要改什么…', en: 'Tell the model what to change…' },
|
|
@@ -1374,6 +1442,17 @@ const dict = {
|
|
|
1374
1442
|
'cmd-desc-new': { zh: '新开会话' },
|
|
1375
1443
|
'cmd-desc-clear': { zh: '清空当前会话' },
|
|
1376
1444
|
'cmd-desc-compact': { zh: '压缩会话历史' },
|
|
1445
|
+
// 能力缺失时的替代描述(`annotateCommandCapabilities` 按需改指到这里):
|
|
1446
|
+
// Help 与 `/` 补全都说清「为什么不可用」,而不是按下去才报错。en 必须写全,
|
|
1447
|
+
// 因为 cmd-desc-* 在 en 下会回退到 LOCAL_COMMANDS 的原文(不带标注)。
|
|
1448
|
+
'cmd-desc-compact-unavailable': {
|
|
1449
|
+
zh: '压缩会话历史(当前 agent 预设未挂载压缩服务,不可用)',
|
|
1450
|
+
en: 'Summarize earlier turns to free context space (unavailable: this agent preset mounts no compaction service)',
|
|
1451
|
+
},
|
|
1452
|
+
'cmd-desc-plan-unavailable': {
|
|
1453
|
+
zh: '切换计划模式(当前 agent 未注册 /plan 命令,不可用)',
|
|
1454
|
+
en: 'Toggle plan mode (unavailable: this agent has no /plan command registered)',
|
|
1455
|
+
},
|
|
1377
1456
|
'cmd-desc-resume': { zh: '恢复历史会话' },
|
|
1378
1457
|
'cmd-desc-agentview': { zh: '打开会话总览' },
|
|
1379
1458
|
'cmd-desc-bg': { zh: '当前会话转入后台并打开总览' },
|
|
@@ -1399,6 +1478,82 @@ const dict = {
|
|
|
1399
1478
|
'cmd-desc-init': { zh: '在工作目录创建 AGENTS.md' },
|
|
1400
1479
|
'cmd-desc-agents': { zh: '查看本会话的子代理' },
|
|
1401
1480
|
'cmd-desc-jobs': { zh: '查看本会话的后台任务' },
|
|
1481
|
+
'cmd-desc-panel': { zh: '侧栏面板:开关 / 聚焦 / 缩放 / 切换', en: 'Side panel: toggle / focus / zoom / switch' },
|
|
1482
|
+
// Side panel(侧栏)
|
|
1483
|
+
'panel-title-todo': { zh: '待办', en: 'Todo' },
|
|
1484
|
+
'panel-title-jobs': { zh: '任务', en: 'Jobs' },
|
|
1485
|
+
'panel-title-agents': { zh: '代理', en: 'Agents' },
|
|
1486
|
+
'panel-title-companion': { zh: '伙伴', en: 'Companion' },
|
|
1487
|
+
'panel-title-trajectory': { zh: '轨迹', en: 'Trajectory' },
|
|
1488
|
+
'panel-title-info': { zh: '信息', en: 'Info' },
|
|
1489
|
+
'panel-title-workspace': { zh: '工作区', en: 'Workspace' },
|
|
1490
|
+
'panel-trajectory-empty': { zh: '本次会话还没有轨迹:发出第一条消息后,这里会画出唤醒带与账本。', en: 'No trajectory yet — the wake band and ledger appear once this session has turns.' },
|
|
1491
|
+
'panel-trajectory-hint': { zh: '↑/↓ 选中 · Enter 展开 · Tab 热点 · ⤢ 全屏', en: '↑/↓ select · Enter expand · Tab hotspots · ⤢ fullscreen' },
|
|
1492
|
+
'info-section-session': { zh: '会话', en: 'Session' },
|
|
1493
|
+
'info-section-model': { zh: '模型', en: 'Model' },
|
|
1494
|
+
'info-section-context': { zh: '上下文', en: 'Context' },
|
|
1495
|
+
'info-section-runtime': { zh: '运行时', en: 'Runtime' },
|
|
1496
|
+
'info-row-title': { zh: '标题', en: 'Title' },
|
|
1497
|
+
'info-row-session-id': { zh: '会话 ID', en: 'Session ID' },
|
|
1498
|
+
'info-row-agent-id': { zh: '代理 ID', en: 'Agent ID' },
|
|
1499
|
+
'info-row-cwd': { zh: '工作目录', en: 'Working dir' },
|
|
1500
|
+
'info-row-branch': { zh: '分支', en: 'Branch' },
|
|
1501
|
+
'info-row-model': { zh: '模型', en: 'Model' },
|
|
1502
|
+
'info-row-effort': { zh: '思考深度', en: 'Effort' },
|
|
1503
|
+
'info-row-mode': { zh: '工作模式', en: 'Mode' },
|
|
1504
|
+
'info-row-approval': { zh: '权限', en: 'Permissions' },
|
|
1505
|
+
'info-row-context': { zh: '上下文占用', en: 'Context' },
|
|
1506
|
+
'info-row-window': { zh: '上下文窗口', en: 'Window' },
|
|
1507
|
+
'info-row-tokens': { zh: 'Token 用量', en: 'Tokens' },
|
|
1508
|
+
'info-row-cache': { zh: '缓存命中', en: 'Cache hit' },
|
|
1509
|
+
'info-row-cost': { zh: '消耗额度', en: 'Spend' },
|
|
1510
|
+
'info-row-tps': { zh: '生成速度', en: 'Throughput' },
|
|
1511
|
+
'info-row-status': { zh: '状态', en: 'Status' },
|
|
1512
|
+
'info-row-activity': { zh: '动作', en: 'Activity' },
|
|
1513
|
+
'info-row-jobs': { zh: '后台任务', en: 'Background jobs' },
|
|
1514
|
+
'info-row-subagents': { zh: '子代理', en: 'Subagents' },
|
|
1515
|
+
'info-value-none': { zh: '—', en: '—' },
|
|
1516
|
+
'panel-workspace-current': { zh: '当前工作区', en: 'Current workspace' },
|
|
1517
|
+
'panel-workspace-list': { zh: '已登记工作区 ×{{n}}', en: 'Registered workspaces ×{{n}}' },
|
|
1518
|
+
'panel-workspace-empty': { zh: '还没有登记的工作区(用 /workspace open <目录> 添加)', en: 'No registered workspaces yet (/workspace open <dir> to add one)' },
|
|
1519
|
+
'panel-workspace-missing': { zh: '目录不存在', en: 'directory missing' },
|
|
1520
|
+
'panel-workspace-sessions': { zh: '{{n}} 个会话', en: '{{n}} sessions' },
|
|
1521
|
+
'panel-workspace-loading': { zh: '正在读取工作区…', en: 'Loading workspaces…' },
|
|
1522
|
+
'panel-workspace-failed': { zh: '读取工作区失败 · {{err}}', en: 'Failed to load workspaces · {{err}}' },
|
|
1523
|
+
'panel-workspace-hint': { zh: '↑/↓ 选择 · Enter 打开工作区主页 · r 刷新', en: '↑/↓ select · Enter opens the workspace home · r refresh' },
|
|
1524
|
+
'companion-mood-sleeping': { zh: '睡觉中', en: 'Sleeping' },
|
|
1525
|
+
'companion-mood-idle': { zh: '发呆', en: 'Idle' },
|
|
1526
|
+
'companion-mood-waiting': { zh: '等待回复', en: 'Waiting' },
|
|
1527
|
+
'companion-mood-thinking': { zh: '思考中', en: 'Thinking' },
|
|
1528
|
+
'companion-mood-working': { zh: '工作中', en: 'Working' },
|
|
1529
|
+
'companion-mood-responding': { zh: '回复中', en: 'Responding' },
|
|
1530
|
+
'companion-mood-attention': { zh: '需要你', en: 'Needs you' },
|
|
1531
|
+
'companion-mood-celebrate': { zh: '完成啦', en: 'Done!' },
|
|
1532
|
+
'companion-mood-error': { zh: '出错了', en: 'Error' },
|
|
1533
|
+
'companion-stats-working': { zh: '{{duration}} · {{count}} 个工具', en: '{{duration}} · {{count}} tools' },
|
|
1534
|
+
'companion-hint': { zh: '点它戳一戳 · 连点挠痒痒 · 拖拽拎起来', en: 'click to poke · rapid clicks tickle · drag to carry' },
|
|
1535
|
+
'companion-cramped': { zh: '好挤呀!{{name}}暂时躲起来了~', en: 'So cramped! {{name}} is hiding for now~' },
|
|
1536
|
+
'companion-now-playing': { zh: '当前动作:{{anim}}', en: 'Now: {{anim}}' },
|
|
1537
|
+
'companion-stat-subagents': { zh: '子代理 ×{{n}}', en: 'subagents ×{{n}}' },
|
|
1538
|
+
'companion-stat-sessions': { zh: '会话 ×{{n}}', en: 'sessions ×{{n}}' },
|
|
1539
|
+
'picker-title-panel': { zh: '打开面板', en: 'Open panel' },
|
|
1540
|
+
'panel-sent-to-chat': { zh: '已附加到输入框:{{title}}(Esc 可撤)', en: 'Attached to the composer: {{title}} (Esc to remove)' },
|
|
1541
|
+
'companion-send-title': { zh: '伙伴状态', en: 'Companion status' },
|
|
1542
|
+
'panel-hint-focused': { zh: 'Esc 聊天 · ←/→ 切换 · z 缩放 · +/- 调宽', en: 'Esc chat · ←/→ panels · z zoom · +/- width' },
|
|
1543
|
+
'panel-hint-unfocused': { zh: 'Ctrl+B 聚焦侧栏', en: 'Ctrl+B focus panel' },
|
|
1544
|
+
'panel-empty-none': { zh: '没有已启用的面板(/panel manage 管理)', en: 'No enabled panels (/panel manage)' },
|
|
1545
|
+
'panel-too-narrow': { zh: '宽度不足(需 ≥ {{min}} 列)', en: 'Too narrow (needs ≥ {{min}} cols)' },
|
|
1546
|
+
'panel-error-title': { zh: '面板渲染出错', en: 'Panel render error' },
|
|
1547
|
+
'panel-error-hint': { zh: '该面板已被隔离,聊天不受影响', en: 'This panel is isolated; chat is unaffected' },
|
|
1548
|
+
'panel-plugin-disabled': { zh: '面板已禁用(连续崩溃)', en: 'Panel disabled (repeated crashes)' },
|
|
1549
|
+
'panel-plugin-disabled-hint': { zh: '本会话内不再挂载该插件面板;重启后恢复', en: 'This plugin panel stays unmounted for the session; restart resets it' },
|
|
1550
|
+
'panel-plugin-disabled-toast': { zh: '插件面板因连续崩溃已被禁用', en: 'A plugin panel was disabled after repeated crashes' },
|
|
1551
|
+
'panel-send-to-chat-denied': { zh: 'Send to Chat 需要 panels.chat.attach 授权(后续版本)', en: 'Send to Chat requires the panels.chat.attach grant (coming in a later version)' },
|
|
1552
|
+
'sugg-panel-toggle-desc': { zh: '开关侧栏', en: 'Toggle the sidebar' },
|
|
1553
|
+
'sugg-panel-focus-desc': { zh: '聚焦侧栏面板', en: 'Focus the side panel' },
|
|
1554
|
+
'sugg-panel-zoom-desc': { zh: '缩放当前面板', en: 'Zoom the active panel' },
|
|
1555
|
+
'sugg-panel-id-desc': { zh: '打开该面板', en: 'Open this panel' },
|
|
1556
|
+
'panel-unavailable-hint': { zh: '侧栏需要全屏且内容区 ≥93 列;该面板没有整屏形态', en: 'Sidebar needs fullscreen and ≥93 content columns; this panel has no fullscreen form' },
|
|
1402
1557
|
// Model / display
|
|
1403
1558
|
'cmd-desc-activity': { zh: '切换工作状态指示器预设' },
|
|
1404
1559
|
'cmd-desc-preset': { zh: '切换 Agent 预设(含梁神模式)' },
|
|
@@ -1481,6 +1636,147 @@ const dict = {
|
|
|
1481
1636
|
en: '**j/k** page · **enter/esc** collapse · **q** exit',
|
|
1482
1637
|
},
|
|
1483
1638
|
'traj-hint-failure': { zh: '{{key}} 看完整轨迹', en: '{{key}} for the full trajectory' },
|
|
1639
|
+
// ── screens/Launchpad.tsx(开屏落地页:取代旧的"只有标题的空白会话")───────
|
|
1640
|
+
// 落地页是"启动后第一屏":大标题与吉祥物居中、输入框在下、再往下是
|
|
1641
|
+
// 信息与快捷入口。用户真正发出第一条内容后才进聊天页,所以这里的
|
|
1642
|
+
// 文案要短、要是动作而不是说明。
|
|
1643
|
+
'launchpad-placeholder': { zh: '说点什么,或输入 / 看命令…', en: 'Say something, or type / for commands…' },
|
|
1644
|
+
// (launchpad-param-*-label / launchpad-param-mode-* 六键已删:2026-10 第四版
|
|
1645
|
+
// 参数行只画值不画字段名——用户原话"大家都知道是模型啊,不用画蛇添足";
|
|
1646
|
+
// 模式值固定产品词 Plan/Execute,不再本地化。)
|
|
1647
|
+
'launchpad-tip': {
|
|
1648
|
+
zh: '输入 / 看全部命令,/setup 可随时重跑引导',
|
|
1649
|
+
en: 'Type / for every command; /setup re-runs the guide anytime',
|
|
1650
|
+
},
|
|
1651
|
+
// 第六版设计 2:Tips 可点击轮换(点击/焦点+Enter 切下一条,循环)。
|
|
1652
|
+
// 轮换顺序 = launchpad-tip → launchpad-tip-2 → launchpad-tip-3 → 回到首条;
|
|
1653
|
+
// 首启那一条(launchpad-first-run)优先级最高,不参与轮换。
|
|
1654
|
+
'launchpad-tip-2': {
|
|
1655
|
+
zh: 'Ctrl+V 直接粘贴,Esc 清空后按 Esc 去看历史会话',
|
|
1656
|
+
en: 'Ctrl+V pastes; Esc clears the draft, then Esc again opens sessions',
|
|
1657
|
+
},
|
|
1658
|
+
'launchpad-tip-3': {
|
|
1659
|
+
zh: '参数行四段都能点:模型 · 思考深度 · 模式 · 权限',
|
|
1660
|
+
en: 'Every param chip is clickable: model · effort · mode · permission',
|
|
1661
|
+
},
|
|
1662
|
+
// Tips 前缀(第三版:● 彩色圆点 + Tips: 前缀,整行居中)。
|
|
1663
|
+
'launchpad-tip-prefix': { zh: 'Tips:', en: 'Tips: ' },
|
|
1664
|
+
// 入口行(第七版:四格 = Continue(条件) · 会话与工作区 · 设置 · 条件位)。
|
|
1665
|
+
// (launchpad-action-theme / -lang 三键早已删;第六版的 -sessions / -workspace
|
|
1666
|
+
// / -doctor / -setup / -setup-provider 五键随第七版合并/移除一并删除——
|
|
1667
|
+
// 历史会话与工作区合并成 -sessions-workspace,doctor 入口退役,首启由
|
|
1668
|
+
// 引导向导承担。verify-i18n 的死键检查同步收口。)
|
|
1669
|
+
'launchpad-action-continue': { zh: '继续上次', en: 'Continue' },
|
|
1670
|
+
'launchpad-action-continue-titled': { zh: '继续「{{title}}」', en: 'Continue "{{title}}"' },
|
|
1671
|
+
'launchpad-action-sessions-workspace': { zh: '会话与工作区', en: 'Sessions & workspaces' },
|
|
1672
|
+
'launchpad-action-settings': { zh: '设置', en: 'Settings' },
|
|
1673
|
+
'launchpad-action-help': { zh: '帮助', en: 'Help' },
|
|
1674
|
+
// 条件位(优先级 jobs > update > star > help,见 launchpadActions.ts)。
|
|
1675
|
+
'launchpad-action-jobs': { zh: '后台任务', en: 'Background jobs' },
|
|
1676
|
+
'launchpad-action-update': { zh: '有新版本', en: 'Update available' },
|
|
1677
|
+
'launchpad-action-star': { zh: '投喂一颗 Star', en: 'Feed us a star' },
|
|
1678
|
+
// Continue 的失败/空态(Chat 的 /continue 分支):绝不静默。
|
|
1679
|
+
'launchpad-continue-none': {
|
|
1680
|
+
zh: '没有可继续的会话,已打开历史会话列表',
|
|
1681
|
+
en: 'No session to continue — opened the session list',
|
|
1682
|
+
},
|
|
1683
|
+
'launchpad-continue-failed': {
|
|
1684
|
+
zh: '继续上次会话失败,已打开历史会话列表',
|
|
1685
|
+
en: 'Could not resume the last session — opened the session list',
|
|
1686
|
+
},
|
|
1687
|
+
'launchpad-first-run': {
|
|
1688
|
+
zh: '第一次用 dsh-TUI?花一分钟跑一遍引导,把 API Key、语言、主题、模型一次配好。',
|
|
1689
|
+
en: 'New to dsh-TUI? One minute of setup wires up your API key, language, theme and model.',
|
|
1690
|
+
},
|
|
1691
|
+
// (launchpad-cwd-prefix 已删:2026-10 落地页改版删掉了底部工作目录行。)
|
|
1692
|
+
// (launchpad-handoff 已删:第五版起落地页回车直接发送(channel.submit),
|
|
1693
|
+
// 没有草稿要交接,那句"已放进输入框"的提示反而是假的。)
|
|
1694
|
+
// ── screens/Onboarding.tsx(首次引导:四步把常用配置配好)────────────────
|
|
1695
|
+
'onboarding-title': { zh: '欢迎使用 dsh-TUI', en: 'Welcome to dsh-TUI' },
|
|
1696
|
+
'onboarding-step-progress': { zh: '第 {{n}} / {{total}} 步', en: 'Step {{n}} of {{total}}' },
|
|
1697
|
+
'onboarding-step-apikey-title': { zh: 'API Key 与连通性', en: 'API key and connectivity' },
|
|
1698
|
+
'onboarding-step-apikey-desc': {
|
|
1699
|
+
zh: '确认 DEEPSEEK_API_KEY 已就位,并真的连一次服务端。',
|
|
1700
|
+
en: 'Confirm DEEPSEEK_API_KEY is in place and actually reach the API.',
|
|
1701
|
+
},
|
|
1702
|
+
'onboarding-step-look-title': { zh: '语言与主题', en: 'Language and theme' },
|
|
1703
|
+
'onboarding-step-look-desc': {
|
|
1704
|
+
zh: '换成你顺眼的语言和配色;移动光标即可实时预览。',
|
|
1705
|
+
en: 'Pick the language and colors you like — moving the cursor previews them live.',
|
|
1706
|
+
},
|
|
1707
|
+
'onboarding-step-model-title': { zh: '模型与工作区', en: 'Model and workspace' },
|
|
1708
|
+
'onboarding-step-model-desc': {
|
|
1709
|
+
zh: '定下默认模型、推理强度,以及这次要在哪个目录里干活。',
|
|
1710
|
+
en: 'Choose the default model, reasoning effort, and the directory to work in.',
|
|
1711
|
+
},
|
|
1712
|
+
'onboarding-step-keys-title': { zh: '快捷键与招式', en: 'Shortcuts and commands' },
|
|
1713
|
+
'onboarding-step-keys-desc': {
|
|
1714
|
+
zh: '几个最省时间的键和最常用的命令,每一张都能直接点开试试。',
|
|
1715
|
+
en: 'The few keys and commands that save the most time — click any card to try it.',
|
|
1716
|
+
},
|
|
1717
|
+
// 第一步:凭证与连通性。分流口径与 adapter 的 CredentialStatus /
|
|
1718
|
+
// BalanceResult 一一对应,排查建议按原因分开给,而不是一句"检查网络"。
|
|
1719
|
+
'onboarding-key-checking': { zh: '正在读取凭证…', en: 'Reading credentials…' },
|
|
1720
|
+
'onboarding-key-configured': { zh: '已检测到 DEEPSEEK_API_KEY', en: 'DEEPSEEK_API_KEY detected' },
|
|
1721
|
+
'onboarding-key-source-env': { zh: '来源:环境变量', en: 'Source: environment variable' },
|
|
1722
|
+
'onboarding-key-source-config': { zh: '来源:配置文件', en: 'Source: config file' },
|
|
1723
|
+
'onboarding-key-source-unknown': { zh: '来源:未知', en: 'Source: unknown' },
|
|
1724
|
+
'onboarding-key-missing': { zh: '还没检测到 DEEPSEEK_API_KEY', en: 'No DEEPSEEK_API_KEY yet' },
|
|
1725
|
+
'onboarding-key-shape': { zh: '形如 sk-…(只判断存在与否,永远不显示完整值)', en: 'Looks like sk-… (presence only — the value is never printed)' },
|
|
1726
|
+
'onboarding-key-howto-env': { zh: '设置一个环境变量再重启:', en: 'Set an environment variable and restart:' },
|
|
1727
|
+
'onboarding-key-howto-config': { zh: '或写进 dsh 的配置里:', en: 'Or put it in the dsh config:' },
|
|
1728
|
+
'onboarding-key-retry': { zh: '重新检查', en: 'Check again' },
|
|
1729
|
+
'onboarding-conn-running': { zh: '正在连接 DeepSeek…', en: 'Connecting to DeepSeek…' },
|
|
1730
|
+
'onboarding-conn-ok': { zh: '连通正常', en: 'Connected' },
|
|
1731
|
+
'onboarding-conn-models': { zh: '{{count}} 个可用模型', en: '{{count}} models available' },
|
|
1732
|
+
'onboarding-conn-balance': { zh: '余额 {{amount}}', en: 'Balance {{amount}}' },
|
|
1733
|
+
'onboarding-conn-balance-none': { zh: '本次没有返回余额信息', en: 'No balance returned this time' },
|
|
1734
|
+
'onboarding-conn-fail-no-key': { zh: '没有可用的凭证,连通性检查没法开始', en: 'No usable credential, so the check cannot start' },
|
|
1735
|
+
'onboarding-conn-fail-network': { zh: '网络不通:检查代理、防火墙或离线环境', en: 'Network unreachable: check proxy, firewall or offline setup' },
|
|
1736
|
+
'onboarding-conn-fail-unauthorized': { zh: '凭证被拒绝:检查 key 是否复制完整、是否已失效', en: 'Credential rejected: check the key is complete and still valid' },
|
|
1737
|
+
'onboarding-conn-fail-http': { zh: '服务端返回 HTTP {{status}}:稍后重试', en: 'Server returned HTTP {{status}}: retry shortly' },
|
|
1738
|
+
'onboarding-conn-fail-invalid': { zh: '返回内容无法解析:可能被代理或网关改写', en: 'Unparseable response: a proxy or gateway may be rewriting it' },
|
|
1739
|
+
'onboarding-conn-fail-unknown': { zh: '连通性检查没通过', en: 'The connectivity check did not pass' },
|
|
1740
|
+
'onboarding-look-preview-note': { zh: '移动光标即时预览;选中即保存', en: 'Moving the cursor previews live; picking saves it' },
|
|
1741
|
+
'onboarding-model-workspace': { zh: '工作区', en: 'Workspace' },
|
|
1742
|
+
'onboarding-model-workspace-note': { zh: '切换工作区会新建一个会话', en: 'Switching the workspace starts a new session' },
|
|
1743
|
+
'onboarding-model-loading': { zh: '正在读取模型列表…', en: 'Loading the model list…' },
|
|
1744
|
+
'onboarding-model-empty': { zh: '没有读到可用模型(可先跳过,用 /provider 配置)', en: 'No models available yet (skip, then configure with /provider)' },
|
|
1745
|
+
'onboarding-model-back': { zh: '← 返回分组(Esc)', en: '← Back to providers (Esc)' },
|
|
1746
|
+
'onboarding-model-switch-failed': { zh: '模型「{{name}}」切换失败', en: 'Could not switch to model "{{name}}"' },
|
|
1747
|
+
'onboarding-model-switched': { zh: '默认模型已切换为 {{name}}', en: 'Default model switched to {{name}}' },
|
|
1748
|
+
'onboarding-effort-switched': { zh: '推理强度已设为 {{name}}', en: 'Reasoning effort set to {{name}}' },
|
|
1749
|
+
'onboarding-workspace-switched': { zh: '工作区已切换:{{name}}', en: 'Workspace switched: {{name}}' },
|
|
1750
|
+
'onboarding-workspace-failed': { zh: '工作区「{{name}}」切换失败', en: 'Could not switch to workspace "{{name}}"' },
|
|
1751
|
+
// 第四步:招式卡。每张卡 = 一句"它能干什么" + 一行可点/可读的键或命令。
|
|
1752
|
+
'onboarding-cards-title': { zh: '先记这六张,够用很久', en: 'Six cards that cover most of it' },
|
|
1753
|
+
'onboarding-card-cmd-title': { zh: '命令菜单', en: 'Command menu' },
|
|
1754
|
+
'onboarding-card-cmd-desc': { zh: '输入 / 打开全部命令,Tab 补全', en: 'Type / for every command, Tab to complete' },
|
|
1755
|
+
'onboarding-card-help-title': { zh: '帮助与快捷键', en: 'Help and shortcuts' },
|
|
1756
|
+
'onboarding-card-help-desc': { zh: '一张表看懂全部键位', en: 'Every key in one table' },
|
|
1757
|
+
'onboarding-card-model-title': { zh: '换模型', en: 'Switch model' },
|
|
1758
|
+
'onboarding-card-model-desc': { zh: '列出全部 provider 与模型', en: 'List every provider and model' },
|
|
1759
|
+
'onboarding-card-sessions-title': { zh: '会话与工作区', en: 'Sessions and workspaces' },
|
|
1760
|
+
'onboarding-card-sessions-desc': { zh: '找回旧会话、换工作区、后台并行', en: 'Reopen old sessions, switch workspace, work in parallel' },
|
|
1761
|
+
'onboarding-card-rewind-title': { zh: '回退一步', en: 'Rewind' },
|
|
1762
|
+
'onboarding-card-rewind-desc': { zh: '退回到任意一条消息重来', en: 'Go back to any earlier message' },
|
|
1763
|
+
'onboarding-card-interrupt-title': { zh: '打断与后台', en: 'Interrupt and background' },
|
|
1764
|
+
'onboarding-card-interrupt-desc': { zh: '停下手上的活;或把它丢到后台继续跑', en: 'Stop the current turn, or push it to the background' },
|
|
1765
|
+
'onboarding-card-try': { zh: '试一下', en: 'Try it' },
|
|
1766
|
+
'onboarding-card-tried': { zh: '已经试过', en: 'Tried' },
|
|
1767
|
+
// 收尾
|
|
1768
|
+
'onboarding-hint': {
|
|
1769
|
+
zh: '**←/→** 换步骤 · **Enter** 执行这一步 / 下一步 · **Esc** 跳过引导',
|
|
1770
|
+
en: '**←/→** step · **Enter** act on this step / go next · **Esc** skip the guide',
|
|
1771
|
+
},
|
|
1772
|
+
'onboarding-hint-last': { zh: '**Enter** 完成 · **Esc** 跳过引导', en: '**Enter** finish · **Esc** skip the guide' },
|
|
1773
|
+
'onboarding-skipped': { zh: '已跳过首次引导,随时可用 /setup 重跑', en: 'Setup skipped — run /setup whenever you like' },
|
|
1774
|
+
'onboarding-finished': { zh: '引导完成', en: 'Setup complete' },
|
|
1775
|
+
'onboarding-write-failed': {
|
|
1776
|
+
zh: '这次引导没能记进 ~/.dsh-tui/onboarding.json,下次启动可能还会再问一次',
|
|
1777
|
+
en: 'Could not record the guide in ~/.dsh-tui/onboarding.json, so it may ask again next launch',
|
|
1778
|
+
},
|
|
1779
|
+
'cmd-desc-setup': { zh: '重跑首次引导(API Key / 语言主题 / 模型工作区 / 快捷键)' },
|
|
1484
1780
|
};
|
|
1485
1781
|
/** The active language, module-level so non-React modules (channel.ts,
|
|
1486
1782
|
* loaded-context.ts) resolve strings without a context. Defaults to `zh`
|
|
@@ -24,6 +24,7 @@ type Props = {
|
|
|
24
24
|
readonly getHyperlinkAt: (col: number, row: number) => string | undefined;
|
|
25
25
|
readonly onOpenHyperlink: (url: string) => void;
|
|
26
26
|
readonly onMultiClick: (col: number, row: number, count: 2 | 3) => void;
|
|
27
|
+
readonly onSelectionStart: (col: number, row: number) => void;
|
|
27
28
|
readonly onSelectionDrag: (col: number, row: number) => void;
|
|
28
29
|
readonly onDragTargetAt?: (col: number, row: number) => DOMElement | null;
|
|
29
30
|
readonly onDragDispatch?: (target: DOMElement, event: DragEvent) => void;
|
|
@@ -141,7 +142,19 @@ export default class App extends PureComponent<Props, State> {
|
|
|
141
142
|
handleInput: (input: string | undefined) => void;
|
|
142
143
|
handleExit: (error?: Error) => void;
|
|
143
144
|
handleTerminalFocus: (isFocused: boolean) => void;
|
|
144
|
-
|
|
145
|
+
/**
|
|
146
|
+
* Re-assert raw mode after an EXTERNAL stop+continue (SIGCONT). While the
|
|
147
|
+
* job is stopped the shell owns the tty and leaves it in its own cooked
|
|
148
|
+
* modes; the job is expected to restore its termios when it continues.
|
|
149
|
+
* The readable listener survives the stop, so only the termios flag comes
|
|
150
|
+
* back — deliberately not through handleSetRawMode, which would
|
|
151
|
+
* double-count the raw-mode requests and re-add listeners.
|
|
152
|
+
*
|
|
153
|
+
* No `stdin.isRaw` guard: Node caches that flag as a plain property on the
|
|
154
|
+
* stream, so it still reads `true` after the shell reset termios behind our
|
|
155
|
+
* back. `setRawMode(true)` is an idempotent ioctl.
|
|
156
|
+
*/
|
|
157
|
+
reassertRawMode: () => void;
|
|
145
158
|
}
|
|
146
159
|
/** Exported for testing. Mutates app.props.selection and click/hover state. */
|
|
147
160
|
export declare function handleMouseEvent(app: App, m: ParsedMouse): void;
|
|
@@ -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;
|
|
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;AAIpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAEN,KAAK,aAAa,EAElB,KAAK,SAAS,EACd,KAAK,WAAW,EAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGN,KAAK,cAAc,EACnB,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EAAE,eAAe,EAAa,MAAM,wBAAwB,CAAC;AAqBpE,OAAiC,EAChC,KAAK,uBAAuB,EAC5B,MAAM,+BAA+B,CAAC;AAcvC,KAAK,KAAK,GAAG;IACZ,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAK9B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IASvC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAOjG,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAIjF,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAMvD,QAAQ,CAAC,SAAS,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,KACX,OAAO,CAAC;IAIb,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAE1E,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAKhD,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAOxE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAI9D,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAM7D,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;IAI1E,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAOzE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAO5D,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAK/D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAKpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAKnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAIpC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAKtD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAGvD,QAAQ,CAAC,qBAAqB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC/D,CAAC;AAMF,KAAK,KAAK,GAAG;IACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACvB,CAAC;AAqBF,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3D,MAAM,CAAC,WAAW,SAAiB;IACnC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;IAKnC,KAAK;;MAEZ;IAIF,mBAAmB,SAAK;IACxB,qBAAqB,eAAsB;IAC3C,aAAa,EAAE,aAAa,CAI1B;IAEF,qBAAqB,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAQ;IAGpD,cAAc,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAQ;IAC/C,kBAAkB,UAAS;IAE3B,QAAQ,CAAC,cAAc,MAAM;IAC7B,QAAQ,CAAC,aAAa,OAAO;IAI7B,OAAO,kBAEL;IAKF,aAAa,SAAK;IAClB,YAAY,SAAM;IAClB,YAAY,SAAM;IAClB,UAAU,SAAK;IAKf,qBAAqB,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IACnE;;;;;;;OAOG;IACH,WAAW,SAAK;IAChB;;;;;OAKG;IACH,aAAa,UAAS;IACtB;;;;;;;OAOG;IACH,kBAAkB,UAAS;IAC3B;;;;;OAKG;IACH,iBAAiB,UAAS;IAC1B;;;OAGG;IACH,iBAAiB,UAAS;IAI1B,YAAY,SAAM;IAClB,YAAY,SAAM;IAOlB,WAAW,EAAE;QACZ,MAAM,EAAE,UAAU,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KACjB,GAAG,IAAI,CAAQ;IAEhB;;;;;OAKG;IACH,iBAAiB,IAAI,IAAI;IAkBzB;;;;;;;OAOG;IACH,iBAAiB,IAAI,IAAI;IAgCzB,aAAa,SAAc;IAQ3B,QAAQ,GAAI,MAAM,MAAM,KAAG,IAAI,CAK7B;IAGF,kBAAkB,IAAI,OAAO;IAGpB,MAAM;IA4CN,iBAAiB;IASjB,oBAAoB;IAO7B,4EAA4E;IAC5E,iBAAiB;IAoBR,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAGvC,sBAAsB,QAAO,IAAI,CAqB/B;IAEF,gBAAgB,GAAI,WAAW,OAAO,KAAG,IAAI,CA6E3C;IAGF,eAAe,QAAO,IAAI,CA0BxB;IAGF,YAAY,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,KAAG,IAAI,CA2FlD;IACF,cAAc,QAAO,IAAI,CAgDvB;IACF,WAAW,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,IAAI,CAK7C;IACF,UAAU,GAAI,QAAQ,KAAK,KAAG,IAAI,CAKhC;IACF,mBAAmB,GAAI,WAAW,OAAO,KAAG,IAAI,CAI9C;IACF;;;;;;;;;;;OAWG;IACH,eAAe,QAAO,IAAI,CAKxB;CACF;AAoMD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,CAqV/D"}
|