@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
|
@@ -20,7 +20,7 @@ import { ContextBarView } from '../components/ContextBarView.js';
|
|
|
20
20
|
import { TooltipTarget } from '../components/Tooltip.js';
|
|
21
21
|
import { formatProject } from '../sessions/format.js';
|
|
22
22
|
import { homeDir } from '../utils/paths.js';
|
|
23
|
-
import { FREE_SEGMENT_FILL, USED_SEGMENTS, contextBarBreakdown, renderMiniContextBar, renderTpsGauge, renderTpsSparkline, speedColor, tpsStats, } from './StatusMetrics.js';
|
|
23
|
+
import { FREE_SEGMENT_FILL, USED_SEGMENTS, channelContextOccupancy, contextBarBreakdown, renderMiniContextBar, renderTpsGauge, renderTpsSparkline, speedColor, tpsStats, } from './StatusMetrics.js';
|
|
24
24
|
/**
|
|
25
25
|
* The footer under the prompt input: the segmented context progress bar on
|
|
26
26
|
* its own first line, the
|
|
@@ -93,9 +93,15 @@ export function StatusLine({ channel, selectionActive = false, helpOpen = false,
|
|
|
93
93
|
? formatProject(channel.displayCwd, homeDir())
|
|
94
94
|
: channel.displayCwd;
|
|
95
95
|
const usage = channel.lastUsage;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
// ONE occupancy reading behind every ctx surface in this footer (the field,
|
|
97
|
+
// its hover gauge, the segmented bar, the working line's pressure prefix):
|
|
98
|
+
// DSH's own `contextPressure` projection when the composition mounts the
|
|
99
|
+
// token meter, else the last request's billed sample. `usage` above stays the
|
|
100
|
+
// source for the cache/cost fields — "what the last request cost" and "how
|
|
101
|
+
// full the window is now" are different questions.
|
|
102
|
+
const occupancy = channelContextOccupancy(channel);
|
|
103
|
+
const contextUsed = occupancy?.usedTokens;
|
|
104
|
+
const contextWindow = occupancy?.contextWindow;
|
|
99
105
|
const contextParts = [];
|
|
100
106
|
if (statusBar.thinking && channel.reasoningEffort !== undefined) {
|
|
101
107
|
contextParts.push({
|
|
@@ -113,7 +119,7 @@ export function StatusLine({ channel, selectionActive = false, helpOpen = false,
|
|
|
113
119
|
});
|
|
114
120
|
}
|
|
115
121
|
const formattedContext = statusBar.contextUsage
|
|
116
|
-
? formatContextUsage(contextUsed,
|
|
122
|
+
? formatContextUsage(contextUsed, contextWindow, statusBar.compact)
|
|
117
123
|
: undefined;
|
|
118
124
|
// The ctx field's two faces: the idle readout, and the hover state — an
|
|
119
125
|
// in-place pressure bar (the user-liked "text becomes a bar" morph).
|
|
@@ -146,8 +152,8 @@ export function StatusLine({ channel, selectionActive = false, helpOpen = false,
|
|
|
146
152
|
ctxParts !== undefined &&
|
|
147
153
|
ctxHoverBarWidth > 0 &&
|
|
148
154
|
contextUsed !== undefined &&
|
|
149
|
-
|
|
150
|
-
? (_jsxs(Text, { color: "inactiveShimmer", children: [_jsx(Text, { dimColor: true, children: "ctx " }), renderMiniContextBar(contextUsed,
|
|
155
|
+
contextWindow !== undefined
|
|
156
|
+
? (_jsxs(Text, { color: "inactiveShimmer", children: [_jsx(Text, { dimColor: true, children: "ctx " }), renderMiniContextBar(contextUsed, contextWindow, ctxHoverBarWidth), ' ', ctxParts.percent] }))
|
|
151
157
|
: (_jsxs(Text, { color: "inactiveShimmer", children: [_jsx(Text, { dimColor: true, children: "ctx " }), formattedContext] }));
|
|
152
158
|
if (statusBar.cache) {
|
|
153
159
|
const cacheRate = formatCacheHitRate(usage);
|
|
@@ -324,11 +330,11 @@ export function StatusLine({ channel, selectionActive = false, helpOpen = false,
|
|
|
324
330
|
const barVisible = statusBar.contextBar &&
|
|
325
331
|
channel.contextBarEnabled &&
|
|
326
332
|
barWidth >= 14 &&
|
|
327
|
-
|
|
328
|
-
|
|
333
|
+
contextUsed !== undefined &&
|
|
334
|
+
contextWindow !== undefined;
|
|
329
335
|
// The supplemental-row readout for the hovered field: replaces the idle
|
|
330
336
|
// hint (never the activity line) while the pointer dwells on a field.
|
|
331
|
-
const detail = buildHoverDetail(hover, channel,
|
|
337
|
+
const detail = buildHoverDetail(hover, channel, occupancy, usage, columns, barColors);
|
|
332
338
|
const trailer = detail !== null
|
|
333
339
|
? detail
|
|
334
340
|
: hint !== ''
|
|
@@ -351,7 +357,7 @@ export function StatusLine({ channel, selectionActive = false, helpOpen = false,
|
|
|
351
357
|
showActivity ||
|
|
352
358
|
showTrajectory ||
|
|
353
359
|
hint !== '';
|
|
354
|
-
return (_jsx(Box, { paddingX: 1, width: columns, flexShrink: 0, children: _jsxs(Box, { flexDirection: "column", width: "100%", children: [barVisible ? (_jsx(ContextBarView, { segments: channel.contextSegments, usedTokens: contextUsed ?? 0, contextWindow:
|
|
360
|
+
return (_jsx(Box, { paddingX: 1, width: columns, flexShrink: 0, children: _jsxs(Box, { flexDirection: "column", width: "100%", children: [barVisible ? (_jsx(ContextBarView, { segments: channel.contextSegments, usedTokens: contextUsed ?? 0, contextWindow: contextWindow ?? 0, width: barWidth, colors: barColors, onHover: hovered => setHover(current => hovered ? 'bar' : current === 'bar' ? null : current) })) : null, hasStatusFields ? statusBar.compact ? (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", gap: 2, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, flexDirection: "row", overflow: "hidden", children: _jsx(FieldLine, { parts: compactFields, hoverProps: hoverProps }) }), ctxNode !== undefined ? (_jsx(Box, { flexShrink: 0, ...hoverProps('ctx'), children: _jsx(Text, { wrap: "truncate", children: ctxNode }) })) : null] })) : (_jsxs(Box, { flexDirection: "row", justifyContent: "space-between", gap: 2, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, flexDirection: "row", overflow: "hidden", children: _jsx(FieldLine, { parts: fullLeftFields, hoverProps: hoverProps }) }), _jsx(Box, { justifyContent: "flex-end", flexShrink: 2, flexDirection: "row", overflow: "hidden", children: _jsx(FieldLine, { parts: rightFields, hoverProps: hoverProps }) })] })) : null, showSupplementalRow ? _jsxs(Box, { height: 1, overflow: "hidden", flexDirection: "row", justifyContent: "space-between", gap: 2, children: [_jsxs(Box, { flexDirection: "row", flexGrow: 1, justifyContent: showActivity && trailer !== null ? 'space-between' : 'flex-start', gap: 2, children: [showActivity && activity !== undefined ? (_jsx(ActivityLine, { activity: activity, activityFrames: channel.activityFrames, warnPct: contextPressurePct(occupancy), warnDanger: (contextPressurePct(occupancy) ?? 0) >= 95 })) : trailer, showActivity ? trailer : null] }), showTrajectory && wake !== undefined ? (_jsx(MiniWake, { band: wake.band, hint: wake.hint, tick: wake.tick, onOpen: wake.onOpen, hoverHint: wake.hoverHint })) : null] }) : null] }) }));
|
|
355
361
|
}
|
|
356
362
|
/**
|
|
357
363
|
* The supplemental-row readout for a hovered footer field. Technical label
|
|
@@ -360,10 +366,13 @@ export function StatusLine({ channel, selectionActive = false, helpOpen = false,
|
|
|
360
366
|
* hovered (or the hover outlived its data, which the field gating makes
|
|
361
367
|
* near-impossible).
|
|
362
368
|
*/
|
|
363
|
-
function buildHoverDetail(hover, channel,
|
|
369
|
+
function buildHoverDetail(hover, channel, occupancy, usage, columns, barColors) {
|
|
364
370
|
if (hover === null)
|
|
365
371
|
return null;
|
|
366
|
-
const
|
|
372
|
+
const contextUsed = occupancy?.usedTokens;
|
|
373
|
+
// The hover surfaces report the SAME occupancy the field/bar above show; the
|
|
374
|
+
// 'model' chip below stays a pure route-capacity readout.
|
|
375
|
+
const window = occupancy?.contextWindow;
|
|
367
376
|
const dim = (label) => _jsx(Text, { dimColor: true, children: label });
|
|
368
377
|
if (hover === 'bar') {
|
|
369
378
|
if (window === undefined || window <= 0 || contextUsed === undefined)
|
|
@@ -390,7 +399,16 @@ function buildHoverDetail(hover, channel, usage, contextUsed, columns, barColors
|
|
|
390
399
|
const rate = formatCacheHitRate(usage);
|
|
391
400
|
if (usage === undefined || rate === undefined)
|
|
392
401
|
return null;
|
|
393
|
-
|
|
402
|
+
// The cache split is optional on the wire (`cacheReadTokens?` /
|
|
403
|
+
// `cacheWriteTokens?`), and a route that never writes the prompt cache
|
|
404
|
+
// reports a zero or omits the field — every DeepSeek route does one or
|
|
405
|
+
// the other. A zero component says nothing the rate does not, and
|
|
406
|
+
// rendering the absence as `0` asserts a number no provider sent.
|
|
407
|
+
return (_jsxs(Text, { wrap: "truncate", children: [dim('cache '), rate, usage.cacheRead > 0
|
|
408
|
+
? _jsxs(_Fragment, { children: [' · ', dim('read '), formatTokens(usage.cacheRead)] })
|
|
409
|
+
: null, usage.cacheWrite > 0
|
|
410
|
+
? _jsxs(_Fragment, { children: [' · ', dim('write '), formatTokens(usage.cacheWrite)] })
|
|
411
|
+
: null, ' · ', dim('input '), formatTokens(usage.input)] }));
|
|
394
412
|
}
|
|
395
413
|
case 'tps': {
|
|
396
414
|
if (channel.tps === undefined)
|
|
@@ -8,6 +8,28 @@
|
|
|
8
8
|
* yellow ≥ 20, red below.
|
|
9
9
|
*/
|
|
10
10
|
import type { Color } from '../ink/styles.js';
|
|
11
|
+
import type { ContextOccupancy } from '../adapter/ports/channel-view.js';
|
|
12
|
+
/**
|
|
13
|
+
* The occupancy reading a screen renders.
|
|
14
|
+
*
|
|
15
|
+
* The channel publishes `contextOccupancy` (see
|
|
16
|
+
* `dsh-adapter/context-occupancy.ts`); this resolves the same reading for ports
|
|
17
|
+
* that do not carry the member — the partial channel literals the verify/repro
|
|
18
|
+
* harnesses hand the real screens, and third-party scenes built against an
|
|
19
|
+
* older port. The channel itself always publishes it, so a production render
|
|
20
|
+
* has exactly one source, and a member that IS present is never second-guessed.
|
|
21
|
+
* @param channel - The channel surface (or a partial one).
|
|
22
|
+
* @returns Occupancy for the footer/bar/warning, or `undefined` when unknown.
|
|
23
|
+
*/
|
|
24
|
+
export declare function channelContextOccupancy(channel: {
|
|
25
|
+
readonly contextOccupancy?: ContextOccupancy | undefined;
|
|
26
|
+
readonly lastUsage?: {
|
|
27
|
+
input: number;
|
|
28
|
+
cacheRead: number;
|
|
29
|
+
cacheWrite: number;
|
|
30
|
+
} | undefined;
|
|
31
|
+
readonly contextWindow: number | undefined;
|
|
32
|
+
}): ContextOccupancy | undefined;
|
|
11
33
|
/** Context bar segments — DeepSeek blue family (dark-theme friendly: deep
|
|
12
34
|
* navy → brand blue, neutral grey free segment).
|
|
13
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusMetrics.d.ts","sourceRoot":"","sources":["../../../src/screens/StatusMetrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"StatusMetrics.d.ts","sourceRoot":"","sources":["../../../src/screens/StatusMetrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { stringWidth } from '../ink/stringWidth.js';
|
|
2
|
+
import { resolveContextOccupancy } from '../dsh-adapter/context-occupancy.js';
|
|
3
|
+
/**
|
|
4
|
+
* The occupancy reading a screen renders.
|
|
5
|
+
*
|
|
6
|
+
* The channel publishes `contextOccupancy` (see
|
|
7
|
+
* `dsh-adapter/context-occupancy.ts`); this resolves the same reading for ports
|
|
8
|
+
* that do not carry the member — the partial channel literals the verify/repro
|
|
9
|
+
* harnesses hand the real screens, and third-party scenes built against an
|
|
10
|
+
* older port. The channel itself always publishes it, so a production render
|
|
11
|
+
* has exactly one source, and a member that IS present is never second-guessed.
|
|
12
|
+
* @param channel - The channel surface (or a partial one).
|
|
13
|
+
* @returns Occupancy for the footer/bar/warning, or `undefined` when unknown.
|
|
14
|
+
*/
|
|
15
|
+
export function channelContextOccupancy(channel) {
|
|
16
|
+
if (channel.contextOccupancy !== undefined)
|
|
17
|
+
return channel.contextOccupancy;
|
|
18
|
+
// Same formula the channel's own accessor uses; no projection value can be
|
|
19
|
+
// shadowed here because this branch only runs when the port has none.
|
|
20
|
+
return resolveContextOccupancy(undefined, channel.lastUsage, channel.contextWindow);
|
|
21
|
+
}
|
|
2
22
|
/** Context bar segments — DeepSeek blue family (dark-theme friendly: deep
|
|
3
23
|
* navy → brand blue, neutral grey free segment).
|
|
4
24
|
*
|
|
@@ -96,6 +96,11 @@ export type ChatOverlay = {
|
|
|
96
96
|
} | {
|
|
97
97
|
kind: 'lang';
|
|
98
98
|
index: number;
|
|
99
|
+
}
|
|
100
|
+
/** `/panel` 无参的选择器:列出「已启用 ∩ 已注册」的面板(含插件)。 */
|
|
101
|
+
| {
|
|
102
|
+
kind: 'panel';
|
|
103
|
+
index: number;
|
|
99
104
|
} | {
|
|
100
105
|
kind: 'history';
|
|
101
106
|
query: string;
|
|
@@ -113,6 +118,17 @@ export type ChatOverlay = {
|
|
|
113
118
|
} | {
|
|
114
119
|
kind: 'tips';
|
|
115
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* 帮助菜单(第八版:用户实测——启动页点「帮助」直接进了聊天页 ✗)。这个
|
|
123
|
+
* variant 只在**落地页**上打开:HelpMenu 经 Chat 的 pickerPanels 挂进
|
|
124
|
+
* OverlayAbove,盖在启动页之上(与参数选择器/工作区菜单同一姿态),
|
|
125
|
+
* Esc / 点空白 / 再点帮助入口收回,回到启动页(草稿/参数/焦点原样)。
|
|
126
|
+
* 聊天页的 `?`//help` 不走这里:那边的 helpOpen 状态与 PromptInput 内
|
|
127
|
+
* 渲染保持原样(另一个屏的事,刻意不改)。
|
|
128
|
+
*/
|
|
129
|
+
| {
|
|
130
|
+
kind: 'help';
|
|
131
|
+
}
|
|
116
132
|
/**
|
|
117
133
|
* Click-to-act file menu: opened by clicking a file path in the
|
|
118
134
|
* transcript (tool cards, markdown code spans / plain text, file://
|
|
@@ -195,7 +211,7 @@ export type ChatOverlayAction =
|
|
|
195
211
|
* flow). Ignored unless that panel is still up. */
|
|
196
212
|
| {
|
|
197
213
|
type: 'set-index';
|
|
198
|
-
kind: 'model' | 'preset' | 'effort' | 'permission' | 'workspace-flow' | 'rewind' | 'file-actions';
|
|
214
|
+
kind: 'model' | 'preset' | 'effort' | 'permission' | 'workspace-flow' | 'rewind' | 'file-actions' | 'panel';
|
|
199
215
|
index: number;
|
|
200
216
|
}
|
|
201
217
|
/** Edit the history-search draft (query text, caret, focused match). */
|
|
@@ -263,5 +279,6 @@ export declare function dialogOverlayVisible(overlay: ChatOverlay, gates: {
|
|
|
263
279
|
workspaceTargetCount: number;
|
|
264
280
|
effortOptionCount: number;
|
|
265
281
|
presetOptionCount: number;
|
|
282
|
+
panelCount?: number;
|
|
266
283
|
}): boolean;
|
|
267
284
|
//# sourceMappingURL=chatOverlay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatOverlay.d.ts","sourceRoot":"","sources":["../../../src/screens/chatOverlay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAEjE,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,yBAAyB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAA;AAE1F,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;CACjC,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"chatOverlay.d.ts","sourceRoot":"","sources":["../../../src/screens/chatOverlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,7 @@ export function chatOverlayReducer(state, action) {
|
|
|
59
59
|
|| state.kind === 'permission'
|
|
60
60
|
|| state.kind === 'plan'
|
|
61
61
|
|| state.kind === 'lang'
|
|
62
|
+
|| state.kind === 'panel'
|
|
62
63
|
|| state.kind === 'file-actions') {
|
|
63
64
|
return { ...state, index: wrapIndex(state.index, action.delta, action.count) };
|
|
64
65
|
}
|
|
@@ -124,6 +125,8 @@ export function dialogOverlayVisible(overlay, gates) {
|
|
|
124
125
|
return gates.effortOptionCount > 1;
|
|
125
126
|
case 'preset':
|
|
126
127
|
return gates.presetOptionCount > 0;
|
|
128
|
+
case 'panel':
|
|
129
|
+
return (gates.panelCount ?? 1) > 0;
|
|
127
130
|
case 'permission':
|
|
128
131
|
return overlay.snapshot.options.length > 0;
|
|
129
132
|
default:
|
|
@@ -41,9 +41,8 @@ export declare const NOTICE_MAX_LINES = 3;
|
|
|
41
41
|
export declare function noticeLines(text: string | undefined, width: number): string[];
|
|
42
42
|
export type MenuAction = 'edit' | 'new' | 'rename' | 'remove';
|
|
43
43
|
export declare const MENU_ACTIONS: readonly MenuAction[];
|
|
44
|
+
export declare function menuActionsFor(entry: RailEntry): readonly MenuAction[];
|
|
44
45
|
export declare const MENU_WIDTH = 30;
|
|
45
|
-
/** One confirm line + its explanation. */
|
|
46
|
-
export declare const MENU_HEIGHT: number;
|
|
47
46
|
export declare const MENU_LABEL_KEYS: {
|
|
48
47
|
readonly edit: "home-menu-edit";
|
|
49
48
|
readonly new: "home-menu-new";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/screens/sessionSupervisor/model.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAM5D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAA;AACjC,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,IAAI,CAAA;AACzC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7E;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC7D,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/screens/sessionSupervisor/model.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAM5D;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAA;AACjC,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC,eAAO,MAAM,cAAc,KAAK,CAAA;AAChC,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,0FAA0F;AAC1F,eAAO,MAAM,wBAAwB,IAAI,CAAA;AACzC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAA;AAEjC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7E;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAC7D,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAwC,CAAA;AAEtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,UAAU,EAAE,CAEtE;AACD,eAAO,MAAM,UAAU,KAAK,CAAA;AAE5B,eAAO,MAAM,eAAe;;;;;CAKlB,CAAA;AAEV;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;IACxF,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAAA;CAAE,CAAA;AAE1F,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,sBAAsB,CAAA;AAEvD,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE9C;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAUpF"}
|
|
@@ -53,9 +53,11 @@ export function noticeLines(text, width) {
|
|
|
53
53
|
return kept;
|
|
54
54
|
}
|
|
55
55
|
export const MENU_ACTIONS = ['edit', 'new', 'rename', 'remove'];
|
|
56
|
+
const HISTORY_MENU_ACTIONS = ['edit', 'new'];
|
|
57
|
+
export function menuActionsFor(entry) {
|
|
58
|
+
return entry.from === 'unregistered' ? HISTORY_MENU_ACTIONS : MENU_ACTIONS;
|
|
59
|
+
}
|
|
56
60
|
export const MENU_WIDTH = 30;
|
|
57
|
-
/** One confirm line + its explanation. */
|
|
58
|
-
export const MENU_HEIGHT = MENU_ACTIONS.length + 2;
|
|
59
61
|
export const MENU_LABEL_KEYS = {
|
|
60
62
|
edit: 'home-menu-edit',
|
|
61
63
|
new: 'home-menu-new',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionSupervisor.d.ts","sourceRoot":"","sources":["../../../../src/screens/sessionSupervisor/useSessionSupervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAEvE,OAAO,
|
|
1
|
+
{"version":3,"file":"useSessionSupervisor.d.ts","sourceRoot":"","sources":["../../../../src/screens/sessionSupervisor/useSessionSupervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAEvE,OAAO,EAA2K,mBAAmB,EAAE,SAAS,EAAgE,MAAM,YAAY,CAAA;AAiDlS,+DAA+D;AAC/D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACvD,wDAAwD;IACxD,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,6EAA6E;IAC7E,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,6EAA6E;IAC7E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAA;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB;;;;;;cAmBnB,MAAM;cAAQ,MAAM,GAAG,OAAO;;;cAA9B,MAAM;cAAQ,MAAM,GAAG,OAAO;;;;0BAwB7D,MAAM,KAAG,MAAM,GAAG,SAAS;;;qBA6F/B,SAAS,KAAG,MAAM;;;;;;;cA6Ca,MAAM;aAAO,MAAM;aAAO,MAAM;cAAQ,MAAM;;;cAA9C,MAAM;aAAO,MAAM;aAAO,MAAM;cAAQ,MAAM;;;cAC1C,MAAM;eAAS,MAAM;;;cAArB,MAAM;eAAS,MAAM;;;;;;cADzB,MAAM;aAAO,MAAM;aAAO,MAAM;cAAQ,MAAM;;;;kBA0ClD,OAAO,CAAC,IAAI,CAAC;;;;;uBAgLxC,MAAM,KAAG,cAAc,GAAG,SAAS;wBAWR,IAAI;wBAOJ,IAAI;;;;;;;qBAoCL,MAAM,UAAU,OAAO,KAAG,IAAI;yBAS1B,SAAS,KAAG,IAAI;2BAed,cAAc,KAAG,IAAI;0BAqBtB,iBAAiB,KAAG,IAAI;wBAgB1B,MAAM,SAAS,MAAM,KAAG,IAAI;wBAe5B,MAAM,KAAG,IAAI;2BAcV,cAAc,KAAG,IAAI;qBAiB7B,IAAI;0BAKG,SAAS,QAAQ,MAAM,KAAG,IAAI;mBAcrC,CAAC,GAAG,CAAC,CAAC,KAAG,IAAI;sBAWV,CAAC,GAAG,CAAC,CAAC,KAAG,IAAI;;EAuEnD"}
|
|
@@ -18,7 +18,7 @@ import { normalizeWorkspaceCwd } from '../../sessions/view.js';
|
|
|
18
18
|
import { readSessionPins, setSessionPinned } from '../../sessionPins.js';
|
|
19
19
|
import { readSessionOwners } from '../../sessionMounts.js';
|
|
20
20
|
import { resumeFailureText } from '../../sessions/resumeFailure.js';
|
|
21
|
-
import { RAIL_CHROME_ROWS, WORKSPACE_ROW_LINES, RAIL_MIN_TOTAL_COLUMNS, RAIL_WIDTH_MIN, RAIL_WIDTH_MAX, SESSION_ROW_LINES, SESSION_PANE_CHROME_ROWS, noticeLines,
|
|
21
|
+
import { RAIL_CHROME_ROWS, WORKSPACE_ROW_LINES, RAIL_MIN_TOTAL_COLUMNS, RAIL_WIDTH_MIN, RAIL_WIDTH_MAX, SESSION_ROW_LINES, SESSION_PANE_CHROME_ROWS, noticeLines, menuActionsFor, UNREGISTERED_RAIL_ID, message, samePath, sessionMatchesQuery } from './model.js';
|
|
22
22
|
const listingSnapshots = new WeakMap();
|
|
23
23
|
/**
|
|
24
24
|
* The snapshot slot for one channel, created on first use.
|
|
@@ -550,8 +550,10 @@ export function useSessionSupervisor(input) {
|
|
|
550
550
|
const removeEntry = useCallback((path) => {
|
|
551
551
|
void channel.removeWorkspace(path)
|
|
552
552
|
.then((ok) => {
|
|
553
|
-
if (ok)
|
|
553
|
+
if (ok) {
|
|
554
|
+
report(t('supervisor-workspace-removed'), 'info');
|
|
554
555
|
return reload();
|
|
556
|
+
}
|
|
555
557
|
report(t('workspace-remove-unknown', { target: path }), 'error');
|
|
556
558
|
return undefined;
|
|
557
559
|
})
|
|
@@ -578,7 +580,9 @@ export function useSessionSupervisor(input) {
|
|
|
578
580
|
}, []);
|
|
579
581
|
const activateMenu = useCallback((entry, item) => {
|
|
580
582
|
closeMenu();
|
|
581
|
-
const action =
|
|
583
|
+
const action = menuActionsFor(entry)[item];
|
|
584
|
+
if (action === undefined)
|
|
585
|
+
return;
|
|
582
586
|
if (action === 'edit')
|
|
583
587
|
selectEntry(entry);
|
|
584
588
|
else if (action === 'new')
|
|
@@ -13,6 +13,25 @@ import type { TuiSettingsField } from '../adapter/ports/channel-settings.js';
|
|
|
13
13
|
import type { ShortcutActionId } from '../utils/keymap.js';
|
|
14
14
|
export type SettingDefinition = Pick<TuiSettingsField, 'label' | 'descriptions' | 'hint' | 'hintDescriptions' | 'kind' | 'group' | 'options'>;
|
|
15
15
|
export declare const SETTING_DEFINITIONS: {
|
|
16
|
+
'companion.skin': {
|
|
17
|
+
label: string;
|
|
18
|
+
descriptions: {
|
|
19
|
+
zh: string;
|
|
20
|
+
};
|
|
21
|
+
group: string;
|
|
22
|
+
hint: string;
|
|
23
|
+
hintDescriptions: {
|
|
24
|
+
zh: string;
|
|
25
|
+
};
|
|
26
|
+
kind: "select";
|
|
27
|
+
options: {
|
|
28
|
+
value: string;
|
|
29
|
+
label: string;
|
|
30
|
+
descriptions: {
|
|
31
|
+
zh: string;
|
|
32
|
+
};
|
|
33
|
+
}[];
|
|
34
|
+
};
|
|
16
35
|
diffLayout: {
|
|
17
36
|
label: string;
|
|
18
37
|
descriptions: {
|
|
@@ -106,6 +125,25 @@ export declare const SETTING_DEFINITIONS: {
|
|
|
106
125
|
};
|
|
107
126
|
}[];
|
|
108
127
|
};
|
|
128
|
+
jobGroupFold: {
|
|
129
|
+
label: string;
|
|
130
|
+
descriptions: {
|
|
131
|
+
zh: string;
|
|
132
|
+
};
|
|
133
|
+
group: string;
|
|
134
|
+
hint: string;
|
|
135
|
+
hintDescriptions: {
|
|
136
|
+
zh: string;
|
|
137
|
+
};
|
|
138
|
+
kind: "select";
|
|
139
|
+
options: {
|
|
140
|
+
value: string;
|
|
141
|
+
label: string;
|
|
142
|
+
descriptions: {
|
|
143
|
+
zh: string;
|
|
144
|
+
};
|
|
145
|
+
}[];
|
|
146
|
+
};
|
|
109
147
|
lang: {
|
|
110
148
|
label: string;
|
|
111
149
|
descriptions: {
|
|
@@ -268,6 +306,54 @@ export declare const SETTING_DEFINITIONS: {
|
|
|
268
306
|
};
|
|
269
307
|
}[];
|
|
270
308
|
};
|
|
309
|
+
'sidePanel.open': {
|
|
310
|
+
label: string;
|
|
311
|
+
descriptions: {
|
|
312
|
+
zh: string;
|
|
313
|
+
};
|
|
314
|
+
group: string;
|
|
315
|
+
hint: string;
|
|
316
|
+
hintDescriptions: {
|
|
317
|
+
zh: string;
|
|
318
|
+
};
|
|
319
|
+
kind: "boolean";
|
|
320
|
+
};
|
|
321
|
+
'sidePanel.panels': {
|
|
322
|
+
label: string;
|
|
323
|
+
descriptions: {
|
|
324
|
+
zh: string;
|
|
325
|
+
};
|
|
326
|
+
group: string;
|
|
327
|
+
hint: string;
|
|
328
|
+
hintDescriptions: {
|
|
329
|
+
zh: string;
|
|
330
|
+
};
|
|
331
|
+
kind: "text";
|
|
332
|
+
};
|
|
333
|
+
'sidePanel.ratio': {
|
|
334
|
+
label: string;
|
|
335
|
+
descriptions: {
|
|
336
|
+
zh: string;
|
|
337
|
+
};
|
|
338
|
+
group: string;
|
|
339
|
+
hint: string;
|
|
340
|
+
hintDescriptions: {
|
|
341
|
+
zh: string;
|
|
342
|
+
};
|
|
343
|
+
kind: "number";
|
|
344
|
+
};
|
|
345
|
+
'sidePanel.splitEnabled': {
|
|
346
|
+
label: string;
|
|
347
|
+
descriptions: {
|
|
348
|
+
zh: string;
|
|
349
|
+
};
|
|
350
|
+
group: string;
|
|
351
|
+
hint: string;
|
|
352
|
+
hintDescriptions: {
|
|
353
|
+
zh: string;
|
|
354
|
+
};
|
|
355
|
+
kind: "boolean";
|
|
356
|
+
};
|
|
271
357
|
smoothStreaming: {
|
|
272
358
|
label: string;
|
|
273
359
|
descriptions: {
|
|
@@ -649,6 +735,13 @@ export declare const SETTING_GROUPS: readonly [{
|
|
|
649
735
|
readonly descriptions: {
|
|
650
736
|
readonly zh: "底栏设置";
|
|
651
737
|
};
|
|
738
|
+
}, {
|
|
739
|
+
readonly id: "side-panel";
|
|
740
|
+
readonly mode: "page";
|
|
741
|
+
readonly title: "Side panel";
|
|
742
|
+
readonly descriptions: {
|
|
743
|
+
readonly zh: "侧栏";
|
|
744
|
+
};
|
|
652
745
|
}, {
|
|
653
746
|
readonly id: "shortcuts";
|
|
654
747
|
readonly mode: "page";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/settings/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAE7I,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/settings/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAE7I,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmca,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,mBAAmB,CAAA;AAEzD;;;;;;;;;yCASyC;AACzC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjB,CAAA;AAEV;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAEjD,CAAA;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAE7F;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,CAuGnK,CAAA"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { SPLASH_FONT_OPTIONS } from '../components/splashFonts.js';
|
|
2
2
|
export const SETTING_DEFINITIONS = {
|
|
3
|
+
'companion.skin': {
|
|
4
|
+
label: 'Companion skin',
|
|
5
|
+
descriptions: { zh: '宠物皮肤' },
|
|
6
|
+
group: 'splash',
|
|
7
|
+
hint: 'Look of the companion panel pet (enable the panel by adding \'companion\' to sidePanel.panels): deepy (default, the deepy whale kit), whale (the same layered pixel whale as the splash) or whaleGirl (the user-provided whale-girl sticker pack, 22 animations). Applies immediately.',
|
|
8
|
+
hintDescriptions: { zh: '伙伴面板里宠物的外形(面板需在 sidePanel.panels 里加入 companion 启用):deepy(默认,deepy 小鲸鱼素材包)、whale(与开屏同款的分层像素鲸鱼)或 whaleGirl(用户提供的鲸娘表情包,22 个动画)。立即生效。' },
|
|
9
|
+
kind: 'select',
|
|
10
|
+
options: [
|
|
11
|
+
{ value: 'deepy', label: 'Deepy', descriptions: { zh: 'Deepy 小鲸鱼' } },
|
|
12
|
+
{ value: 'whaleGirl', label: 'Whale girl', descriptions: { zh: '鲸娘' } },
|
|
13
|
+
{ value: 'whale', label: 'Whale', descriptions: { zh: '像素鲸鱼' } },
|
|
14
|
+
],
|
|
15
|
+
},
|
|
3
16
|
'diffLayout': {
|
|
4
17
|
label: 'Diff layout',
|
|
5
18
|
descriptions: { zh: 'diff 布局' },
|
|
@@ -64,6 +77,19 @@ export const SETTING_DEFINITIONS = {
|
|
|
64
77
|
{ value: 'terminal', label: 'Terminal colour', descriptions: { zh: '合成到终端底色' } },
|
|
65
78
|
],
|
|
66
79
|
},
|
|
80
|
+
'jobGroupFold': {
|
|
81
|
+
label: 'Job card groups',
|
|
82
|
+
descriptions: { zh: '后台任务分组' },
|
|
83
|
+
group: 'conversation',
|
|
84
|
+
hint: 'Consecutive background-job cards render as one group with a summary header. Auto folds a run of 3+ once every job settled; Always folds any run of 2+ right away; Never keeps every card (click the header to fold one run by hand, Ctrl+O to expand all).',
|
|
85
|
+
hintDescriptions: { zh: '连续的后台任务卡渲染成一组并带汇总头。自动:整组落定且 3 个以上时折叠成一行;总是:2 个以上立即折叠;从不:每张卡都留着(点组头可手工折叠单组,Ctrl+O 展开全部)。' },
|
|
86
|
+
kind: 'select',
|
|
87
|
+
options: [
|
|
88
|
+
{ value: 'auto', label: 'Auto (3+ settled)', descriptions: { zh: '自动(落定 3 个以上)' } },
|
|
89
|
+
{ value: 'always', label: 'Always (2+)', descriptions: { zh: '总是(2 个以上)' } },
|
|
90
|
+
{ value: 'never', label: 'Never fold', descriptions: { zh: '从不折叠' } },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
67
93
|
'lang': {
|
|
68
94
|
label: 'Language',
|
|
69
95
|
descriptions: { zh: '界面语言' },
|
|
@@ -174,6 +200,38 @@ export const SETTING_DEFINITIONS = {
|
|
|
174
200
|
{ value: 'hidden', label: 'Hidden', descriptions: { zh: '隐藏' } },
|
|
175
201
|
],
|
|
176
202
|
},
|
|
203
|
+
'sidePanel.open': {
|
|
204
|
+
label: 'Side panel starts open',
|
|
205
|
+
descriptions: { zh: '启动时展开侧栏' },
|
|
206
|
+
group: 'side-panel',
|
|
207
|
+
hint: 'Whether a session opens with the sidebar already expanded (Ctrl+B or /panel toggles it any time). Off by default, so the upgrade leaves the layout exactly as it was until asked; the in-session toggle is not persisted. Applies immediately.',
|
|
208
|
+
hintDescriptions: { zh: '打开会话时侧栏是否已展开(随时可用 Ctrl+B 或 /panel 切换)。默认关闭,升级后界面与原来完全一致,除非主动开启;会话内的切换不会写回设置。立即生效。' },
|
|
209
|
+
kind: 'boolean',
|
|
210
|
+
},
|
|
211
|
+
'sidePanel.panels': {
|
|
212
|
+
label: 'Enabled panels',
|
|
213
|
+
descriptions: { zh: '启用的面板' },
|
|
214
|
+
group: 'side-panel',
|
|
215
|
+
hint: 'Comma-separated panel ids in PanelBar order (default `todo,jobs,agents`). Ids are lowercase words (a-z, 0-9, _, -) or a `plugin:panel` namespace; a well-formed id no panel claims yet stays in the bar for a plugin that registers it later, while a malformed entry is refused. Add `companion` to enable the pet panel. Applies immediately.',
|
|
216
|
+
hintDescriptions: { zh: '按标签栏顺序排列的面板 id,逗号分隔(默认 `todo,jobs,agents`)。id 为小写词组(a-z、0-9、_、-)或 `plugin:panel` 命名空间;格式合法但尚无面板认领的 id 会留在标签栏,等插件稍后注册,格式非法的输入会被直接拒绝。加上 `companion` 可启用宠物面板。立即生效。' },
|
|
217
|
+
kind: 'text',
|
|
218
|
+
},
|
|
219
|
+
'sidePanel.ratio': {
|
|
220
|
+
label: 'Chat column width',
|
|
221
|
+
descriptions: { zh: '聊天列占比' },
|
|
222
|
+
group: 'side-panel',
|
|
223
|
+
hint: 'Chat column as a fraction of the content width: 0.1-0.95, default 0.68. Type a decimal such as `0.6`; while the panel has focus the +/- shortcuts nudge it live for the current session. Applies immediately.',
|
|
224
|
+
hintDescriptions: { zh: '聊天列占内容宽度的比例:0.1-0.95,默认 0.68。输入小数如 `0.6`;面板获得焦点时可用 +/- 在会话内实时微调。立即生效。' },
|
|
225
|
+
kind: 'number',
|
|
226
|
+
},
|
|
227
|
+
'sidePanel.splitEnabled': {
|
|
228
|
+
label: 'Split layout',
|
|
229
|
+
descriptions: { zh: '分栏布局' },
|
|
230
|
+
group: 'side-panel',
|
|
231
|
+
hint: 'Master switch of the split layout: on (default) Ctrl+B and /panel open the side column next to the chat; off makes both fall back to the fullscreen panels. Applies immediately.',
|
|
232
|
+
hintDescriptions: { zh: '分栏总开关:开启(默认)时 Ctrl+B 与 /panel 在聊天右侧展开侧栏;关闭时两者都退回整屏面板。立即生效。' },
|
|
233
|
+
kind: 'boolean',
|
|
234
|
+
},
|
|
177
235
|
'smoothStreaming': {
|
|
178
236
|
label: 'Smooth streaming',
|
|
179
237
|
descriptions: { zh: '流式平滑输出' },
|
|
@@ -410,6 +468,7 @@ export const SETTING_GROUPS = [
|
|
|
410
468
|
{ id: 'rendering', mode: 'inline', title: 'Rendering', descriptions: { zh: '图表与图片' } },
|
|
411
469
|
{ id: 'math', mode: 'page', title: 'Formula', descriptions: { zh: '公式设置' } },
|
|
412
470
|
{ id: 'status-bar', mode: 'page', title: 'Status bar', descriptions: { zh: '底栏设置' } },
|
|
471
|
+
{ id: 'side-panel', mode: 'page', title: 'Side panel', descriptions: { zh: '侧栏' } },
|
|
413
472
|
{ id: 'shortcuts', mode: 'page', title: 'Shortcuts', descriptions: { zh: '快捷键' } },
|
|
414
473
|
];
|
|
415
474
|
/**
|
|
@@ -472,6 +531,12 @@ export const SHORTCUT_FIELD_META = {
|
|
|
472
531
|
hintEn: d => `Toggle the startup loaded-context panel. Default: ${d}.`,
|
|
473
532
|
hintZh: d => `切换启动时的已加载上下文面板。默认 ${d}。`,
|
|
474
533
|
},
|
|
534
|
+
continue: {
|
|
535
|
+
label: 'Continue last session shortcut',
|
|
536
|
+
zh: '继续上次会话快捷键',
|
|
537
|
+
hintEn: d => `On the launchpad, resume the most recent session. Default: ${d}. Only bound while the launchpad is up.`,
|
|
538
|
+
hintZh: d => `在启动页上继续最近一条会话。默认 ${d}。仅在启动页生效。`,
|
|
539
|
+
},
|
|
475
540
|
showAll: {
|
|
476
541
|
label: 'Show-all shortcut',
|
|
477
542
|
zh: '显示全部消息快捷键',
|
|
@@ -508,4 +573,22 @@ export const SHORTCUT_FIELD_META = {
|
|
|
508
573
|
hintEn: d => `Star the project via the gh CLI (same action as /star and the splash line's click). Default: ${d}.`,
|
|
509
574
|
hintZh: d => `用 gh 给项目点 star(与 /star、开屏标语点击同一个动作)。默认 ${d}。`,
|
|
510
575
|
},
|
|
576
|
+
undo: {
|
|
577
|
+
label: 'Draft undo shortcut',
|
|
578
|
+
zh: '草稿撤销快捷键',
|
|
579
|
+
hintEn: d => `Undo the prompt draft one word-level step at a time (text, caret and images together). Draft-only: submitted or history-recalled text is out of scope (Esc Esc rewinds turns, Ctrl+R recalls history). Default: ${d}.`,
|
|
580
|
+
hintZh: d => `按词撤销输入框草稿(文本、光标、图片一起回退)。只作用于草稿:提交或用历史召回后不可撤销;与 Esc Esc 回溯、Ctrl+R 历史召回不是一回事。默认 ${d}。`,
|
|
581
|
+
},
|
|
582
|
+
sidePanel: {
|
|
583
|
+
label: 'Side panel shortcut',
|
|
584
|
+
zh: '侧栏快捷键',
|
|
585
|
+
hintEn: d => `Smart three-state sidebar toggle: closed → open+focus → focus chat → closed. Default: ${d}. tmux users should remap it (the prefix eats Ctrl+B).`,
|
|
586
|
+
hintZh: d => `侧栏智能三态:关闭 → 打开并聚焦 → 焦点回聊天 → 关闭。默认 ${d}。tmux 用户请改键(前缀会吞掉它)。`,
|
|
587
|
+
},
|
|
588
|
+
sidePanelZoom: {
|
|
589
|
+
label: 'Side panel zoom shortcut',
|
|
590
|
+
zh: '侧栏缩放快捷键',
|
|
591
|
+
hintEn: d => `Zoom the active side panel (chat keeps its minimum width). Default: ${d}.`,
|
|
592
|
+
hintZh: d => `缩放当前侧栏面板(聊天列保留最小宽度)。默认 ${d}。`,
|
|
593
|
+
},
|
|
511
594
|
};
|
package/lib/types/tips.js
CHANGED
|
@@ -26,8 +26,8 @@ export const TIPS = [
|
|
|
26
26
|
{
|
|
27
27
|
id: 'keys-esc-levels',
|
|
28
28
|
group: 'keys',
|
|
29
|
-
zh: 'Esc 逐层收:帮助 → 图片预览 → 命令/文件菜单 → 清选区 → 清空',
|
|
30
|
-
en: 'Esc peels layers: help →
|
|
29
|
+
zh: 'Esc 逐层收:帮助 → 图片预览 → 命令/文件菜单 → 清选区 → 清附加 → 清空',
|
|
30
|
+
en: 'Esc peels layers: help → preview → menus → selection → context chip → clear input',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
id: 'keys-ctrl-o',
|
|
@@ -539,7 +539,7 @@ export const TIPS = [
|
|
|
539
539
|
id: 'flow-question-arrows',
|
|
540
540
|
group: 'workflow',
|
|
541
541
|
zh: '多题问卷用 ←/→ 换题,不提交;输入行要先把光标移到行首或行尾',
|
|
542
|
-
en: 'In a multi-question ask, ←/→ switches questions
|
|
542
|
+
en: 'In a multi-question ask, ←/→ switches questions; on the input row the caret must be at the edge',
|
|
543
543
|
},
|
|
544
544
|
{
|
|
545
545
|
id: 'flow-question-fold',
|
|
@@ -852,8 +852,8 @@ export const TIPS = [
|
|
|
852
852
|
{
|
|
853
853
|
id: 'pit-minimal',
|
|
854
854
|
group: 'pitfalls',
|
|
855
|
-
zh: '
|
|
856
|
-
en: '
|
|
855
|
+
zh: '内核「极简模式」预设不压缩、不剪枝:长会话可能撞上限,/compact 与问卷也不可用(与「极简界面」无关)',
|
|
856
|
+
en: 'Minimal preset: no compaction or pruning — long sessions can hit the limit (not the Minimal UI)',
|
|
857
857
|
},
|
|
858
858
|
{
|
|
859
859
|
id: 'pit-mouse-mode',
|