@deepseek-harness-tui/dsh-tui 0.11.2 → 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 +60 -8
- 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 +38 -6
- package/cordis.patch.yml +31 -6
- package/guide/dsh-tui-guide/SKILL.md +37 -0
- package/guide/dsh-tui-guide/configuration.en.md +415 -0
- package/guide/dsh-tui-guide/configuration.md +354 -0
- package/guide/dsh-tui-guide/getting-started.en.md +401 -0
- package/guide/dsh-tui-guide/getting-started.md +399 -0
- package/guide/dsh-tui-guide/interaction.en.md +738 -0
- package/guide/dsh-tui-guide/interaction.md +793 -0
- package/guide/dsh-tui-guide/migrate.en.md +166 -0
- package/guide/dsh-tui-guide/migrate.md +132 -0
- package/guide/dsh-tui-guide/plugins.en.md +78 -0
- package/guide/dsh-tui-guide/plugins.md +64 -0
- package/guide/dsh-tui-guide/themes.en.md +197 -0
- package/guide/dsh-tui-guide/themes.md +188 -0
- package/guide/dsh-tui-guide/user-guide.en.md +711 -0
- package/guide/dsh-tui-guide/user-guide.md +666 -0
- package/guide/dsh-tui-guide/vscode.en.md +301 -0
- package/guide/dsh-tui-guide/vscode.md +272 -0
- package/lib/settings.json +219 -5
- package/lib/types/adapter/channel/ui-policy.d.ts +7 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +18 -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-settings.d.ts +2 -1
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +91 -4
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +137 -9
- 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 +27 -1
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +128 -33
- 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/Chat/SubagentMessage.js +6 -6
- 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 +220 -40
- 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 +215 -21
- 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/PresetPicker.d.ts +4 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -1
- package/lib/types/components/PresetPicker.js +5 -1
- package/lib/types/components/PromptInput.d.ts +20 -22
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +425 -157
- 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/StarPrompt.d.ts +6 -0
- package/lib/types/components/StarPrompt.d.ts.map +1 -1
- package/lib/types/components/StarPrompt.js +45 -0
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +24 -9
- 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 +160 -13
- 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/WhaleGirl.d.ts +6 -0
- package/lib/types/components/WhaleGirl.d.ts.map +1 -1
- package/lib/types/components/WhaleGirl.js +18 -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/messages/AssistantThinkingMessage.js +4 -4
- 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/trajectory/MiniWake.d.ts +11 -1
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -1
- package/lib/types/components/trajectory/MiniWake.js +9 -3
- package/lib/types/components/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/external-commands.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/external-commands.js +8 -2
- 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/job-projection.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +88 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +13 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-actions.js +55 -9
- 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 +25 -10
- 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 +26 -8
- 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 +21 -3
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +3 -2
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +5 -0
- 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 +72 -4
- 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 +19 -4
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +33 -3
- 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/jobs.d.ts +82 -16
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +104 -9
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/sessionize.js +11 -12
- package/lib/types/dsh-adapter/oauth/bonus.d.ts +27 -0
- package/lib/types/dsh-adapter/oauth/bonus.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/bonus.js +69 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.d.ts +2 -1
- package/lib/types/dsh-adapter/oauth/command.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.js +7 -4
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.d.ts +13 -10
- package/lib/types/dsh-adapter/oauth/credentials.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.js +61 -23
- package/lib/types/dsh-adapter/oauth/deepseek.d.ts +39 -0
- package/lib/types/dsh-adapter/oauth/deepseek.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/deepseek.js +189 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.d.ts +24 -16
- package/lib/types/dsh-adapter/oauth/index.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.js +34 -20
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/interaction.d.ts +14 -12
- package/lib/types/dsh-adapter/oauth/interaction.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/interaction.js +283 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.d.ts +2 -1
- package/lib/types/dsh-adapter/oauth/opener.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.js +1 -1
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.d.ts +10 -3
- package/lib/types/dsh-adapter/oauth/pi-ai.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.js +8 -3
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.d.ts +6 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.js +11 -3
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.d.ts +14 -7
- package/lib/types/dsh-adapter/oauth/service.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.js +82 -17
- package/lib/types/dsh-adapter/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 +25 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +241 -44
- package/lib/types/dsh-adapter/presets.d.ts +26 -4
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +29 -5
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +6 -2
- 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/dsh-adapter/subagents.d.ts +1 -0
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +10 -1
- 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 +908 -33
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +355 -17
- 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 +71 -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 +71 -3
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +815 -133
- 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/ink/terminal-querier.d.ts +25 -0
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +42 -0
- package/lib/types/ink/update-overflow-guard.d.ts +24 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +25 -3
- package/lib/types/math/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/minimalUiMode.d.ts +19 -0
- package/lib/types/minimalUiMode.d.ts.map +1 -0
- package/lib/types/minimalUiMode.js +23 -0
- package/lib/types/oauth.d.ts +5 -10
- package/lib/types/oauth.d.ts.map +1 -1
- package/lib/types/oauth.js +5 -10
- package/lib/types/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 +25 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +1149 -302
- 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 +4 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +43 -25
- 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 +87 -4
- package/lib/types/tips.d.ts.map +1 -1
- package/lib/types/tips.js +13 -7
- 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 +103 -46
- 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/lib/types/utils/pastedImagePath.d.ts +8 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +29 -5
- package/package.json +128 -106
- package/presets/liangshen/agent.cordis.yml +4 -1
- package/presets/liangshen/preset.yml +1 -1
- 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/lib/types/minimalMode.d.ts +0 -13
- package/lib/types/minimalMode.d.ts.map +0 -1
- package/lib/types/minimalMode.js +0 -17
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +0 -21
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +0 -143
- package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +0 -11
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +0 -44
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +0 -193
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +0 -69
- /package/{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
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/** Primary validated upstream line (newest). */
|
|
2
|
-
export declare const UPSTREAM_VALIDATED_VERSION = "0.2.0-rc.
|
|
2
|
+
export declare const UPSTREAM_VALIDATED_VERSION = "0.2.0-rc.2";
|
|
3
3
|
/**
|
|
4
4
|
* Explicitly supported upstream prerelease lines, oldest first.
|
|
5
5
|
*
|
|
6
|
-
* 0.2.0-rc.
|
|
6
|
+
* 0.2.0-rc.2 = primary continuous-CI line; 0.2.0-rc.1 and
|
|
7
|
+
* 0.1.7-rc.2/rc.1 = previous
|
|
7
8
|
* family (mapped compatibility); 0.1.5-rc.1/alpha.2/alpha.1 = mapped
|
|
8
9
|
* compatibility lines (source-checked when the primary line moves);
|
|
9
10
|
* 0.1.3-alpha.2 = compatibility line (the only 0.1.3 build on npm);
|
|
@@ -16,14 +17,14 @@ export declare const UPSTREAM_VALIDATED_VERSION = "0.2.0-rc.1";
|
|
|
16
17
|
* The peer range in package.json is deliberately wider than this list: an
|
|
17
18
|
* install on an older or newer line is allowed but reports drift at boot.
|
|
18
19
|
*/
|
|
19
|
-
export declare const UPSTREAM_VALIDATED_VERSIONS: readonly ["0.1.0-rc.6", "0.1.0-rc.7", "0.1.0-rc.8", "0.1.1-rc.1", "0.1.1-rc.2", "0.1.2-alpha.3", "0.1.2-alpha.4", "0.1.2-alpha.5", "0.1.2-rc.1", "0.1.3-alpha.2", "0.1.5-alpha.1", "0.1.5-alpha.2", "0.1.5-rc.1", "0.1.7-rc.1", "0.1.7-rc.2", "0.2.0-rc.1"];
|
|
20
|
+
export declare const UPSTREAM_VALIDATED_VERSIONS: readonly ["0.1.0-rc.6", "0.1.0-rc.7", "0.1.0-rc.8", "0.1.1-rc.1", "0.1.1-rc.2", "0.1.2-alpha.3", "0.1.2-alpha.4", "0.1.2-alpha.5", "0.1.2-rc.1", "0.1.3-alpha.2", "0.1.5-alpha.1", "0.1.5-alpha.2", "0.1.5-rc.1", "0.1.7-rc.1", "0.1.7-rc.2", "0.2.0-rc.1", "0.2.0-rc.2"];
|
|
20
21
|
/**
|
|
21
22
|
* Framework packages version on their own lines; the contract validates
|
|
22
23
|
* their MAJOR (breaking surface), not the harness prerelease number.
|
|
23
24
|
*/
|
|
24
25
|
export declare const UPSTREAM_FRAMEWORK_MAJORS: Record<string, number>;
|
|
25
26
|
/** Official packages the adapter consumes at runtime or as types. */
|
|
26
|
-
export declare const UPSTREAM_BLESSED_PACKAGES: readonly ["@deepseek-ai/cordis", "@deepseek-ai/schemastery", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-preset-registry", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-ptc-runtime-node", "@deepseek-ai/dsh-commands", "@deepseek-ai/dsh-cordis-host-runner", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-pi-ai", "@deepseek-ai/dsh-persona", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-storage", "@deepseek-ai/dsh-storage-domain", "@deepseek-ai/dsh-storage-json", "@deepseek-ai/dsh-workspace", "@deepseek-ai/dsh-web-app", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-terminal", "@deepseek-ai/dsh-terminal-bash", "@deepseek-ai/dsh-tool-ask-user", "@deepseek-ai/dsh-tool-bash-persistent", "@deepseek-ai/dsh-tool-cordis", "@deepseek-ai/dsh-tool-subagent", "@deepseek-ai/dsh-user-approval", "@deepseek-ai/dsh-user-questions"];
|
|
27
|
+
export declare const UPSTREAM_BLESSED_PACKAGES: readonly ["@deepseek-ai/cordis", "@deepseek-ai/schemastery", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-preset-registry", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-ptc-runtime-node", "@deepseek-ai/dsh-commands", "@deepseek-ai/dsh-cordis-host-runner", "@deepseek-ai/dsh-deepseek-account", "@deepseek-ai/dsh-host-webserver", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-pi-ai", "@deepseek-ai/dsh-persona", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-storage", "@deepseek-ai/dsh-storage-domain", "@deepseek-ai/dsh-storage-json", "@deepseek-ai/dsh-workspace", "@deepseek-ai/dsh-web-app", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-terminal", "@deepseek-ai/dsh-terminal-bash", "@deepseek-ai/dsh-tool-ask-user", "@deepseek-ai/dsh-tool-bash-persistent", "@deepseek-ai/dsh-tool-cordis", "@deepseek-ai/dsh-tool-subagent", "@deepseek-ai/dsh-user-approval", "@deepseek-ai/dsh-user-questions"];
|
|
27
28
|
export interface UpstreamDriftEntry {
|
|
28
29
|
package: string;
|
|
29
30
|
installed: string | undefined;
|
|
@@ -48,6 +49,20 @@ export declare function installedUpstreamVersions(): Record<string, string | und
|
|
|
48
49
|
* have.
|
|
49
50
|
*/
|
|
50
51
|
export declare function installedUpstreamVersion(packageName: string): UpstreamVersionTuple | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* 内核(dsh)版本的铭牌来源(第七版:落地页右下角双版本号)。
|
|
54
|
+
*
|
|
55
|
+
* 真实来源两级,都不造假:
|
|
56
|
+
* 1. **宿主 CLI** `@deepseek-ai/dsh` 的 package.json——TUI 作为插件跑在 dsh
|
|
57
|
+
* 宿主进程里时它一定可解析(`bin/dsh-tui.js` 委托 `dsh --profile` 启动);
|
|
58
|
+
* 孤立回归/源码 checkout 里解析不到就落到第 2 级。
|
|
59
|
+
* 2. **内核线包** `@deepseek-ai/dsh-agent`(与内核同线发版、由本仓直接依赖,
|
|
60
|
+
* `installedUpstreamVersions` 的既有清单成员)的已装版本——它就是
|
|
61
|
+
* upstreamDriftSummary 用来判定「内核在不在验证线」的同一份数据。
|
|
62
|
+
*
|
|
63
|
+
* 两级都读不到 → undefined(调用方只画 TUI 版本,不编造)。
|
|
64
|
+
*/
|
|
65
|
+
export declare function installedKernelVersion(): string | undefined;
|
|
51
66
|
/**
|
|
52
67
|
* Whether the installed version of `packageName` is at or beyond `minimum`
|
|
53
68
|
* (a literal like `'0.1.0-rc.8'`). Unparseable or older installs return
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/contract.ts"],"names":[],"mappings":"AAkBA,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,eAAe,CAAA;AAEtD
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/contract.ts"],"names":[],"mappings":"AAkBA,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,eAAe,CAAA;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,2BAA2B,2QAkB9B,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG5D,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,siCAkC5B,CAAA;AAEV,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,4EAA4E;AAC5E,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;AAE/D,4FAA4F;AAC5F,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAA;AAEvG,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAKlG;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAQxF;AAkBD,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,QAA6D,CAAA;AAYlG,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAqB9E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAE9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAQ3D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKnF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAA+B,GAC5F,MAAM,EAAE,CAQV;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,iBAAiB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAA+B,GAC5F,kBAAkB,EAAE,CAuBtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEtE,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAA;IACvB,sFAAsF;IACtF,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAA+B,GAC5F,oBAAoB,GAAG,SAAS,CA0BlC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Upstream compatibility contract.
|
|
3
3
|
*
|
|
4
4
|
* The TUI is validated against a set of upstream prerelease lines — the
|
|
5
|
-
* current primary (0.2.0-rc.
|
|
5
|
+
* current primary (0.2.0-rc.2) plus older lines kept in backward
|
|
6
6
|
* compatibility across the 0.1.7, 0.1.5, 0.1.3, 0.1.2, 0.1.1 and 0.1.0
|
|
7
7
|
* release families.
|
|
8
8
|
* Every official package this adapter touches is blessed here; anything
|
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
import { readFileSync } from 'node:fs';
|
|
17
17
|
import { fileURLToPath } from 'node:url';
|
|
18
18
|
/** Primary validated upstream line (newest). */
|
|
19
|
-
export const UPSTREAM_VALIDATED_VERSION = '0.2.0-rc.
|
|
19
|
+
export const UPSTREAM_VALIDATED_VERSION = '0.2.0-rc.2';
|
|
20
20
|
/**
|
|
21
21
|
* Explicitly supported upstream prerelease lines, oldest first.
|
|
22
22
|
*
|
|
23
|
-
* 0.2.0-rc.
|
|
23
|
+
* 0.2.0-rc.2 = primary continuous-CI line; 0.2.0-rc.1 and
|
|
24
|
+
* 0.1.7-rc.2/rc.1 = previous
|
|
24
25
|
* family (mapped compatibility); 0.1.5-rc.1/alpha.2/alpha.1 = mapped
|
|
25
26
|
* compatibility lines (source-checked when the primary line moves);
|
|
26
27
|
* 0.1.3-alpha.2 = compatibility line (the only 0.1.3 build on npm);
|
|
@@ -50,6 +51,7 @@ export const UPSTREAM_VALIDATED_VERSIONS = [
|
|
|
50
51
|
'0.1.7-rc.1',
|
|
51
52
|
'0.1.7-rc.2',
|
|
52
53
|
'0.2.0-rc.1',
|
|
54
|
+
'0.2.0-rc.2',
|
|
53
55
|
];
|
|
54
56
|
/**
|
|
55
57
|
* Framework packages version on their own lines; the contract validates
|
|
@@ -71,6 +73,8 @@ export const UPSTREAM_BLESSED_PACKAGES = [
|
|
|
71
73
|
'@deepseek-ai/dsh-ptc-runtime-node',
|
|
72
74
|
'@deepseek-ai/dsh-commands',
|
|
73
75
|
'@deepseek-ai/dsh-cordis-host-runner',
|
|
76
|
+
'@deepseek-ai/dsh-deepseek-account',
|
|
77
|
+
'@deepseek-ai/dsh-host-webserver',
|
|
74
78
|
'@deepseek-ai/dsh-llm',
|
|
75
79
|
'@deepseek-ai/dsh-llm-pi-ai',
|
|
76
80
|
'@deepseek-ai/dsh-persona',
|
|
@@ -98,6 +102,8 @@ export const UPSTREAM_BLESSED_PACKAGES = [
|
|
|
98
102
|
const OPTIONAL_RUNTIME_PACKAGES = new Set([
|
|
99
103
|
'@deepseek-ai/dsh-agent-preset-registry',
|
|
100
104
|
'@deepseek-ai/dsh-ptc-runtime-node',
|
|
105
|
+
'@deepseek-ai/dsh-deepseek-account',
|
|
106
|
+
'@deepseek-ai/dsh-host-webserver',
|
|
101
107
|
'@deepseek-ai/dsh-web-app',
|
|
102
108
|
]);
|
|
103
109
|
/** Parse an upstream prerelease version; undefined when unparseable. */
|
|
@@ -180,6 +186,30 @@ export function installedUpstreamVersions() {
|
|
|
180
186
|
export function installedUpstreamVersion(packageName) {
|
|
181
187
|
return parseUpstreamVersion(installedUpstreamVersions()[packageName]);
|
|
182
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* 内核(dsh)版本的铭牌来源(第七版:落地页右下角双版本号)。
|
|
191
|
+
*
|
|
192
|
+
* 真实来源两级,都不造假:
|
|
193
|
+
* 1. **宿主 CLI** `@deepseek-ai/dsh` 的 package.json——TUI 作为插件跑在 dsh
|
|
194
|
+
* 宿主进程里时它一定可解析(`bin/dsh-tui.js` 委托 `dsh --profile` 启动);
|
|
195
|
+
* 孤立回归/源码 checkout 里解析不到就落到第 2 级。
|
|
196
|
+
* 2. **内核线包** `@deepseek-ai/dsh-agent`(与内核同线发版、由本仓直接依赖,
|
|
197
|
+
* `installedUpstreamVersions` 的既有清单成员)的已装版本——它就是
|
|
198
|
+
* upstreamDriftSummary 用来判定「内核在不在验证线」的同一份数据。
|
|
199
|
+
*
|
|
200
|
+
* 两级都读不到 → undefined(调用方只画 TUI 版本,不编造)。
|
|
201
|
+
*/
|
|
202
|
+
export function installedKernelVersion() {
|
|
203
|
+
try {
|
|
204
|
+
const hostManifest = JSON.parse(readFileSync(fileURLToPath(import.meta.resolve('@deepseek-ai/dsh/package.json')), 'utf8'));
|
|
205
|
+
if (typeof hostManifest.version === 'string' && hostManifest.version !== '')
|
|
206
|
+
return hostManifest.version;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// 宿主包不在解析半径内(孤立测试/源码运行)——落到内核线包。
|
|
210
|
+
}
|
|
211
|
+
return installedUpstreamVersions()['@deepseek-ai/dsh-agent'];
|
|
212
|
+
}
|
|
183
213
|
/**
|
|
184
214
|
* Whether the installed version of `packageName` is at or beyond `minimum`
|
|
185
215
|
* (a literal like `'0.1.0-rc.8'`). Unparseable or older installs return
|
|
@@ -96,6 +96,12 @@ export interface Config {
|
|
|
96
96
|
* preview and folds each step when it settles; `full` keeps thinking
|
|
97
97
|
* expanded until the whole turn ends. Editable live from `/settings`. */
|
|
98
98
|
thinkingFold?: 'preview' | 'full';
|
|
99
|
+
/** Grouping/folding of consecutive background-job cards: `auto` (default)
|
|
100
|
+
* groups any run of ≥2 adjacent job cards and folds a run of 3+ into its
|
|
101
|
+
* summary line once every member settled; `always` folds any run of 2+
|
|
102
|
+
* immediately; `never` never folds on its own (a click on the group
|
|
103
|
+
* header still folds one run). Editable live from `/settings`. */
|
|
104
|
+
jobGroupFold?: 'auto' | 'always' | 'never';
|
|
99
105
|
/** Tool-card background strength; defaults to no added background. */
|
|
100
106
|
toolBackground?: ToolBackground;
|
|
101
107
|
/** What the fullscreen transcript's right gutter shows (settings
|
|
@@ -162,6 +168,32 @@ export interface Config {
|
|
|
162
168
|
recapOnOpen?: boolean;
|
|
163
169
|
/** Status-footer field visibility and compact presentation preferences. */
|
|
164
170
|
statusBar?: Partial<StatusBarConfig>;
|
|
171
|
+
/** Side panel (settings `dsh-tui.sidePanel.*`): the two-column layout's
|
|
172
|
+
* master switch, its startup state, the chat-column fraction, and the
|
|
173
|
+
* enabled panels in PanelBar order. Every member is normalized at parse
|
|
174
|
+
* time, so a hand-edited value can never wedge the layout. */
|
|
175
|
+
sidePanel?: {
|
|
176
|
+
/** Master switch of the split layout; on by default. Off makes /panel
|
|
177
|
+
* and Ctrl+B fall back to the fullscreen panels. */
|
|
178
|
+
splitEnabled?: boolean;
|
|
179
|
+
/** Whether a session opens with the sidebar expanded (off by default, so
|
|
180
|
+
* the upgrade leaves the layout alone); Ctrl+B toggles it live. */
|
|
181
|
+
open?: boolean;
|
|
182
|
+
/** Chat column as a fraction of the content width, clamped to 0.1–0.95
|
|
183
|
+
* (default 0.68); +/- while the panel is focused nudges it live. */
|
|
184
|
+
ratio?: number;
|
|
185
|
+
/** Enabled panel ids, comma-separated, in PanelBar order (default
|
|
186
|
+
* `todo,jobs,agents`; add `companion` to enable the pet panel). A
|
|
187
|
+
* malformed id is dropped, an unknown one survives for a plugin. */
|
|
188
|
+
panels?: string;
|
|
189
|
+
};
|
|
190
|
+
/** Companion pet (settings `dsh-tui.companion.*`): which skin the panel
|
|
191
|
+
* pet wears. */
|
|
192
|
+
companion?: {
|
|
193
|
+
/** 'deepy' (default, the deepy whale kit) or 'whale' (the splash's
|
|
194
|
+
* layered pixel whale). Unknown ids normalize to deepy. */
|
|
195
|
+
skin?: string;
|
|
196
|
+
};
|
|
165
197
|
/** Built-in action-shortcut overrides (`paste: 'alt+v'`), keyed by action
|
|
166
198
|
* id (see the keymap utility). Combos are `ctrl+`/`alt+`/`shift+` plus a
|
|
167
199
|
* key; several combos may be comma-separated. Unset actions keep their
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Schema from '@deepseek-ai/schemastery';
|
|
2
|
-
import { DEFAULT_STATUS_BAR, normalizePageMargin } from '../tuiDisplayPrefs.js';
|
|
2
|
+
import { DEFAULT_COMPANION_SKIN, DEFAULT_SIDE_PANEL_IDS, DEFAULT_STATUS_BAR, normalizeCompanionSkin, normalizePageMargin, normalizeSidePanelPanels, normalizeSidePanelRatio } from '../tuiDisplayPrefs.js';
|
|
3
3
|
import { SHORTCUT_ACTIONS } from '../utils/keymap.js';
|
|
4
4
|
import { normalizeSplashFont } from '../components/splashFonts.js';
|
|
5
5
|
import { editableConfig } from './compat/settings.js';
|
|
@@ -48,6 +48,7 @@ export const Config = editableConfig(Schema.object({
|
|
|
48
48
|
preset: Schema.string().required(false),
|
|
49
49
|
diffLayout: Schema.union(['auto', 'split', 'unified']).default('auto'),
|
|
50
50
|
thinkingFold: Schema.union(['preview', 'full']).default('preview'),
|
|
51
|
+
jobGroupFold: Schema.union(['auto', 'always', 'never']).default('auto'),
|
|
51
52
|
toolBackground: Schema.union(['none', 'subtle', 'strong']).default('none'),
|
|
52
53
|
scrollGutter: Schema.union(['timeline', 'scrollbar', 'hidden']).default('timeline'),
|
|
53
54
|
// Preset names AND custom `NxM` specs must survive validation (a custom
|
|
@@ -77,6 +78,11 @@ export const Config = editableConfig(Schema.object({
|
|
|
77
78
|
contextUsage: Schema.boolean().default(DEFAULT_STATUS_BAR.contextUsage),
|
|
78
79
|
cache: Schema.boolean().default(DEFAULT_STATUS_BAR.cache),
|
|
79
80
|
tokens: Schema.boolean().default(DEFAULT_STATUS_BAR.tokens),
|
|
81
|
+
// Session cost estimate (≈¥) beside the token totals; StatusLine gates the
|
|
82
|
+
// chip on it. The slot must be declared here: schemastery drops an
|
|
83
|
+
// undeclared key on the way back in, so the /settings row would read
|
|
84
|
+
// "(unset)" and every edit would silently revert.
|
|
85
|
+
cost: Schema.boolean().default(DEFAULT_STATUS_BAR.cost),
|
|
80
86
|
tps: Schema.boolean().default(DEFAULT_STATUS_BAR.tps),
|
|
81
87
|
gitBranch: Schema.boolean().default(DEFAULT_STATUS_BAR.gitBranch),
|
|
82
88
|
sessionTitle: Schema.boolean().default(DEFAULT_STATUS_BAR.sessionTitle),
|
|
@@ -88,6 +94,19 @@ export const Config = editableConfig(Schema.object({
|
|
|
88
94
|
trajectory: Schema.boolean().default(DEFAULT_STATUS_BAR.trajectory),
|
|
89
95
|
shortcutHint: Schema.boolean().default(DEFAULT_STATUS_BAR.shortcutHint),
|
|
90
96
|
}).default({ ...DEFAULT_STATUS_BAR }),
|
|
97
|
+
// Side-panel preferences, same shape as statusBar: every member carries a
|
|
98
|
+
// default so an unset cordis.yml block and a partially hand-written one
|
|
99
|
+
// both resolve, and the transforms keep junk (a string ratio, an id with
|
|
100
|
+
// illegal characters) out of the live stores.
|
|
101
|
+
sidePanel: Schema.object({
|
|
102
|
+
splitEnabled: Schema.boolean().default(true),
|
|
103
|
+
open: Schema.boolean().default(false),
|
|
104
|
+
ratio: Schema.transform(Schema.number().default(0.68), value => normalizeSidePanelRatio(value)),
|
|
105
|
+
panels: Schema.transform(Schema.string().default(DEFAULT_SIDE_PANEL_IDS), value => normalizeSidePanelPanels(value)),
|
|
106
|
+
}).default({ splitEnabled: true, open: false, ratio: 0.68, panels: DEFAULT_SIDE_PANEL_IDS }),
|
|
107
|
+
companion: Schema.object({
|
|
108
|
+
skin: Schema.transform(Schema.string().default(DEFAULT_COMPANION_SKIN), value => normalizeCompanionSkin(value)),
|
|
109
|
+
}).default({ skin: DEFAULT_COMPANION_SKIN }),
|
|
91
110
|
// One optional combo string per customizable action (no defaults: unset
|
|
92
111
|
// keeps the built-in binding; see Config.shortcuts).
|
|
93
112
|
shortcuts: Schema.object(Object.fromEntries(SHORTCUT_ACTIONS.map(action => [action.id, Schema.string().required(false)]))).required(false),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BackgroundJobStatus, BackgroundJobState } from '../adapter/ports/channel-view.js';
|
|
2
|
-
export type { BackgroundJobStatus, BackgroundJobState } from '../adapter/ports/channel-view.js';
|
|
1
|
+
import type { BackgroundJobOutputChannel, BackgroundJobStatus, BackgroundJobState } from '../adapter/ports/channel-view.js';
|
|
2
|
+
export type { BackgroundJobOutputChannel, BackgroundJobOutputLine, BackgroundJobStatus, BackgroundJobState } from '../adapter/ports/channel-view.js';
|
|
3
3
|
/**
|
|
4
4
|
* Structural mirror of the registry's `JobSnapshot` — only the fields the
|
|
5
5
|
* UI reads. Declared locally so no `@deepseek-ai/dsh-jobs` dependency (peer
|
|
@@ -15,24 +15,79 @@ export interface BackgroundJobSnapshot {
|
|
|
15
15
|
status: BackgroundJobStatus;
|
|
16
16
|
/** Kind-specific status detail, usually terminal ('exit code: 0'). */
|
|
17
17
|
detail?: string;
|
|
18
|
+
/** Live producer progress line (`3/10`, phase name); cleared at settle. */
|
|
19
|
+
progress?: string;
|
|
18
20
|
/** Epoch ms when the job was registered. */
|
|
19
21
|
startedAt: number;
|
|
20
22
|
/** Epoch ms when the job settled; absent while running/stopping. */
|
|
21
23
|
finishedAt?: number;
|
|
24
|
+
/** Output-ring facts when the snapshot came from the real registry:
|
|
25
|
+
* `total`/`earliest` are absolute byte coordinates; `spillPaths` name
|
|
26
|
+
* producer-retained files holding the complete stream. */
|
|
27
|
+
output?: {
|
|
28
|
+
total: number;
|
|
29
|
+
earliest: number;
|
|
30
|
+
spillPaths?: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Kernel `output` event: no payload — observers pull `readAt` themselves. */
|
|
34
|
+
export interface KernelJobOutputEvent {
|
|
35
|
+
type: 'output';
|
|
36
|
+
id: string;
|
|
37
|
+
owner?: string;
|
|
38
|
+
total: number;
|
|
39
|
+
}
|
|
40
|
+
/** Kernel lifecycle event carrying the committed job projection. */
|
|
41
|
+
export interface KernelJobLifecycleEvent {
|
|
42
|
+
type: 'registered' | 'progress' | 'stopping' | 'settled' | 'removed';
|
|
43
|
+
job: BackgroundJobSnapshot;
|
|
44
|
+
/** Settlement extras (`settled` only): who ended it, whether a waiter
|
|
45
|
+
* had already collected it (the UI skips duplicate toasts then). */
|
|
46
|
+
cause?: 'producer' | 'kill' | 'teardown';
|
|
47
|
+
awaited?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export type KernelJobEvent = KernelJobOutputEvent | KernelJobLifecycleEvent;
|
|
50
|
+
/** One kernel output-ring chunk at an absolute byte offset. */
|
|
51
|
+
export interface KernelJobChunk {
|
|
52
|
+
at: number;
|
|
53
|
+
text: string;
|
|
54
|
+
channel?: BackgroundJobOutputChannel;
|
|
55
|
+
gapBefore?: true;
|
|
56
|
+
}
|
|
57
|
+
/** Non-consuming ring read result; `next` is the resume offset. */
|
|
58
|
+
export interface KernelJobOutputRead {
|
|
59
|
+
chunks: readonly KernelJobChunk[];
|
|
60
|
+
next: number;
|
|
61
|
+
lossy?: boolean;
|
|
22
62
|
}
|
|
23
63
|
/**
|
|
24
64
|
* Duck-typed registry surface the channel consumes. `caller` is the owning
|
|
25
|
-
*
|
|
26
|
-
*
|
|
65
|
+
* session id string (`Agent.id`): the kernel fence compares
|
|
66
|
+
* `job.owner.id === caller`, so passing the Agent OBJECT matches nothing —
|
|
67
|
+
* the id string is the only value that opens owned jobs.
|
|
27
68
|
*/
|
|
28
69
|
export interface JobsRuntime {
|
|
29
70
|
/** Caller-owned + unowned job snapshots in registration order. */
|
|
30
|
-
list(caller?:
|
|
71
|
+
list(caller?: string): BackgroundJobSnapshot[];
|
|
31
72
|
/** Request cancellation by id; resolves to 'requested'/'already-finished'. */
|
|
32
|
-
kill(id: string, caller?:
|
|
33
|
-
/**
|
|
73
|
+
kill(id: string, caller?: string, reason?: string): unknown;
|
|
74
|
+
/**
|
|
75
|
+
* Kernel event bus (the real `JobRegistry.events` surface). Present on
|
|
76
|
+
* modern kernels: lifecycle events re-read the roster, `output` events
|
|
77
|
+
* pull `readAt` increments with the UI's own byte cursor. Absent on older
|
|
78
|
+
* kernels and test doubles — the mirror falls back to `onJobsChanged` +
|
|
79
|
+
* `job_output` tails.
|
|
80
|
+
*/
|
|
81
|
+
events?: {
|
|
82
|
+
subscribe(filter: {
|
|
83
|
+
owner?: string;
|
|
84
|
+
owners?: 'all' | 'scope';
|
|
85
|
+
}, listener: (event: KernelJobEvent) => void): () => void;
|
|
86
|
+
};
|
|
87
|
+
/** Non-consuming ring read at an absolute byte offset (kernel `readAt`). */
|
|
88
|
+
readAt?(id: string, from: number, caller?: string): KernelJobOutputRead;
|
|
89
|
+
/** Legacy push hooks; absent on the real registry, kept for old doubles. */
|
|
34
90
|
onJobsChanged?(listener: (owner: unknown) => void): () => void;
|
|
35
|
-
/** Fires on every settlement with the terminal snapshot + owner. */
|
|
36
91
|
onJobDone?(listener: (snapshot: BackgroundJobSnapshot, owner: unknown) => void): () => void;
|
|
37
92
|
}
|
|
38
93
|
/** Store event hooks the channel injects (toast on settle, emit on change). */
|
|
@@ -47,17 +102,11 @@ export declare const JOBS_MAX_TRACKED = 40;
|
|
|
47
102
|
/** Output tail lines retained per job (the card waterfall shows the last 3;
|
|
48
103
|
* the /jobs panel detail shows the whole retained tail). */
|
|
49
104
|
export declare const JOBS_MAX_OUTPUT_LINES = 30;
|
|
50
|
-
/**
|
|
51
|
-
* Ordered store of the current conversation's background jobs. Fed by
|
|
52
|
-
* {@link BackgroundJobStore.replace} with a fresh `list()` after every
|
|
53
|
-
* `onJobsChanged` commit, and by {@link BackgroundJobStore.onOutputSeen}
|
|
54
|
-
* with the tail of every `job_output` tool result. Emits no React state of
|
|
55
|
-
* its own — the channel wires the events into its version bump, exactly
|
|
56
|
-
* like the subagent projection.
|
|
57
|
-
*/
|
|
58
105
|
export declare class BackgroundJobStore {
|
|
59
106
|
private readonly events;
|
|
60
107
|
private readonly jobs;
|
|
108
|
+
/** Kernel-ring read state per job id (own cursor — never the model's). */
|
|
109
|
+
private readonly kernelReads;
|
|
61
110
|
/** Commands captured from start acks that arrived before the registry
|
|
62
111
|
* registered the job (the tool/result stream and the registry commit can
|
|
63
112
|
* race); consumed on registration. */
|
|
@@ -88,6 +137,23 @@ export declare class BackgroundJobStore {
|
|
|
88
137
|
* @param at - wall-clock receipt time of the read (defaults to now).
|
|
89
138
|
*/
|
|
90
139
|
onOutputSeen(id: string, text: string, at?: number): void;
|
|
140
|
+
/**
|
|
141
|
+
* Seed the kernel-ring cursor for one job at its retained head. Called from
|
|
142
|
+
* replace() whenever a snapshot carries ring facts — before any output
|
|
143
|
+
* pull — so the first readAt starts at `earliest`, never at 0 (bytes
|
|
144
|
+
* before `earliest` are already evicted).
|
|
145
|
+
*/
|
|
146
|
+
private seedKernelRead;
|
|
147
|
+
/**
|
|
148
|
+
* Pull one non-consuming increment from the kernel ring after an `output`
|
|
149
|
+
* event. Chunks split into lines; a chunk without a trailing newline parks
|
|
150
|
+
* its tail until the next pull (producers append streaming bytes, so line
|
|
151
|
+
* boundaries routinely straddle chunks). `gapBefore`/`lossy` mark bytes
|
|
152
|
+
* lost before the retained tail — surfaced as the dropped banner.
|
|
153
|
+
*/
|
|
154
|
+
onKernelOutput(id: string, read: KernelJobOutputRead, at?: number): void;
|
|
155
|
+
/** Kernel read state accessor for tests and cursor diagnostics. */
|
|
156
|
+
kernelCursorOf(id: string): number | undefined;
|
|
91
157
|
/** A fresh snapshot in registration order (newest tracked job last). */
|
|
92
158
|
snapshot(): readonly BackgroundJobState[];
|
|
93
159
|
get(id: string): BackgroundJobState | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,17 +8,11 @@ const STATUS_SUFFIX_PATTERN = /^\s*\[status:\s/;
|
|
|
8
8
|
function isTerminal(status) {
|
|
9
9
|
return status === 'completed' || status === 'killed' || status === 'failed';
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
12
|
-
* Ordered store of the current conversation's background jobs. Fed by
|
|
13
|
-
* {@link BackgroundJobStore.replace} with a fresh `list()` after every
|
|
14
|
-
* `onJobsChanged` commit, and by {@link BackgroundJobStore.onOutputSeen}
|
|
15
|
-
* with the tail of every `job_output` tool result. Emits no React state of
|
|
16
|
-
* its own — the channel wires the events into its version bump, exactly
|
|
17
|
-
* like the subagent projection.
|
|
18
|
-
*/
|
|
19
11
|
export class BackgroundJobStore {
|
|
20
12
|
events;
|
|
21
13
|
jobs = new Map();
|
|
14
|
+
/** Kernel-ring read state per job id (own cursor — never the model's). */
|
|
15
|
+
kernelReads = new Map();
|
|
22
16
|
/** Commands captured from start acks that arrived before the registry
|
|
23
17
|
* registered the job (the tool/result stream and the registry commit can
|
|
24
18
|
* race); consumed on registration. */
|
|
@@ -52,16 +46,24 @@ export class BackgroundJobStore {
|
|
|
52
46
|
...(command === undefined ? {} : { command }),
|
|
53
47
|
status: snap.status,
|
|
54
48
|
...(snap.detail === undefined ? {} : { detail: snap.detail }),
|
|
49
|
+
...(snap.progress === undefined ? {} : { progress: snap.progress }),
|
|
55
50
|
startedAt: snap.startedAt,
|
|
56
51
|
...(snap.finishedAt === undefined ? {} : { finishedAt: snap.finishedAt }),
|
|
57
52
|
outputLines: [],
|
|
53
|
+
...(snap.output === undefined ? {} : {
|
|
54
|
+
outputTotalBytes: snap.output.total,
|
|
55
|
+
...(snap.output.spillPaths === undefined || snap.output.spillPaths.length === 0 ? {} : { spillPaths: [...snap.output.spillPaths] }),
|
|
56
|
+
}),
|
|
58
57
|
});
|
|
58
|
+
if (snap.output !== undefined)
|
|
59
|
+
this.seedKernelRead(snap.id, snap.output.earliest);
|
|
59
60
|
changed = true;
|
|
60
61
|
continue;
|
|
61
62
|
}
|
|
62
63
|
if (prev.status === snap.status &&
|
|
63
64
|
prev.detail === snap.detail &&
|
|
64
65
|
prev.label === snap.label &&
|
|
66
|
+
prev.progress === snap.progress &&
|
|
65
67
|
prev.finishedAt === snap.finishedAt)
|
|
66
68
|
continue;
|
|
67
69
|
const wasLive = !isTerminal(prev.status);
|
|
@@ -71,10 +73,20 @@ export class BackgroundJobStore {
|
|
|
71
73
|
delete prev.detail;
|
|
72
74
|
else
|
|
73
75
|
prev.detail = snap.detail;
|
|
76
|
+
if (snap.progress === undefined)
|
|
77
|
+
delete prev.progress;
|
|
78
|
+
else
|
|
79
|
+
prev.progress = snap.progress;
|
|
74
80
|
if (snap.finishedAt === undefined)
|
|
75
81
|
delete prev.finishedAt;
|
|
76
82
|
else
|
|
77
83
|
prev.finishedAt = snap.finishedAt;
|
|
84
|
+
if (snap.output !== undefined) {
|
|
85
|
+
prev.outputTotalBytes = snap.output.total;
|
|
86
|
+
if (snap.output.spillPaths !== undefined && snap.output.spillPaths.length > 0)
|
|
87
|
+
prev.spillPaths = [...snap.output.spillPaths];
|
|
88
|
+
this.seedKernelRead(snap.id, snap.output.earliest);
|
|
89
|
+
}
|
|
78
90
|
changed = true;
|
|
79
91
|
if (wasLive && isTerminal(snap.status))
|
|
80
92
|
this.events.onSettled?.(prev);
|
|
@@ -132,13 +144,95 @@ export class BackgroundJobStore {
|
|
|
132
144
|
const lines = text
|
|
133
145
|
.split(/\r?\n/)
|
|
134
146
|
.map(line => line.replace(/\s+$/, ''))
|
|
135
|
-
.filter(line => line !== '' && !STATUS_SUFFIX_PATTERN.test(line))
|
|
147
|
+
.filter(line => line !== '' && !STATUS_SUFFIX_PATTERN.test(line))
|
|
148
|
+
.map(text => ({ text }));
|
|
136
149
|
if (lines.length === 0)
|
|
137
150
|
return;
|
|
138
151
|
job.outputLines = [...job.outputLines, ...lines].slice(-JOBS_MAX_OUTPUT_LINES);
|
|
139
152
|
job.lastOutputAt = at;
|
|
140
153
|
this.events.onChanged?.();
|
|
141
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Seed the kernel-ring cursor for one job at its retained head. Called from
|
|
157
|
+
* replace() whenever a snapshot carries ring facts — before any output
|
|
158
|
+
* pull — so the first readAt starts at `earliest`, never at 0 (bytes
|
|
159
|
+
* before `earliest` are already evicted).
|
|
160
|
+
*/
|
|
161
|
+
seedKernelRead(id, earliest) {
|
|
162
|
+
const read = this.kernelReads.get(id);
|
|
163
|
+
if (read === undefined)
|
|
164
|
+
this.kernelReads.set(id, { cursor: earliest, partial: '' });
|
|
165
|
+
else if (read.cursor < earliest) {
|
|
166
|
+
// Ring evicted past our cursor: resync and mark the discontinuity.
|
|
167
|
+
read.cursor = earliest;
|
|
168
|
+
read.partial = '';
|
|
169
|
+
const job = this.jobs.get(id);
|
|
170
|
+
if (job !== undefined)
|
|
171
|
+
job.outputDropped = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Pull one non-consuming increment from the kernel ring after an `output`
|
|
176
|
+
* event. Chunks split into lines; a chunk without a trailing newline parks
|
|
177
|
+
* its tail until the next pull (producers append streaming bytes, so line
|
|
178
|
+
* boundaries routinely straddle chunks). `gapBefore`/`lossy` mark bytes
|
|
179
|
+
* lost before the retained tail — surfaced as the dropped banner.
|
|
180
|
+
*/
|
|
181
|
+
onKernelOutput(id, read, at = Date.now()) {
|
|
182
|
+
const job = this.jobs.get(id);
|
|
183
|
+
if (job === undefined)
|
|
184
|
+
return;
|
|
185
|
+
const state = this.kernelReads.get(id) ?? { cursor: 0, partial: '' };
|
|
186
|
+
this.kernelReads.set(id, state);
|
|
187
|
+
const appended = [];
|
|
188
|
+
let gapPending = read.lossy === true;
|
|
189
|
+
let gapSeen = read.lossy === true;
|
|
190
|
+
for (const chunk of read.chunks) {
|
|
191
|
+
if (chunk.gapBefore === true) {
|
|
192
|
+
gapPending = true;
|
|
193
|
+
gapSeen = true;
|
|
194
|
+
}
|
|
195
|
+
let text = state.partial + chunk.text;
|
|
196
|
+
state.partial = '';
|
|
197
|
+
// A \r not followed by \n is a same-line rewrite (progress spinners);
|
|
198
|
+
// keep the tail after the last one so the panel shows the newest form.
|
|
199
|
+
const lines = text.split(/\r?\n/);
|
|
200
|
+
if (!text.endsWith('\n')) {
|
|
201
|
+
state.partial = lines.pop() ?? '';
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
lines.pop();
|
|
205
|
+
}
|
|
206
|
+
for (const raw of lines) {
|
|
207
|
+
const trimmed = raw.replace(/\s+$/, '');
|
|
208
|
+
if (trimmed === '')
|
|
209
|
+
continue;
|
|
210
|
+
appended.push({ text: trimmed, ...(chunk.channel === undefined ? {} : { channel: chunk.channel }), ...(gapPending ? { gapBefore: true } : {}) });
|
|
211
|
+
gapPending = false;
|
|
212
|
+
}
|
|
213
|
+
if (state.partial !== '') {
|
|
214
|
+
// Re-split parked tail the same way so an embedded \r refreshes it.
|
|
215
|
+
const parts = state.partial.split(/\r(?!\n)/);
|
|
216
|
+
state.partial = parts[parts.length - 1];
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
state.cursor = read.next;
|
|
220
|
+
if (gapSeen)
|
|
221
|
+
job.outputDropped = true;
|
|
222
|
+
if (appended.length > 0) {
|
|
223
|
+
job.outputLines = [...job.outputLines, ...appended].slice(-JOBS_MAX_OUTPUT_LINES);
|
|
224
|
+
job.lastOutputAt = at;
|
|
225
|
+
this.events.onChanged?.();
|
|
226
|
+
}
|
|
227
|
+
else if (job.outputTotalBytes !== read.next) {
|
|
228
|
+
this.events.onChanged?.();
|
|
229
|
+
}
|
|
230
|
+
job.outputTotalBytes = Math.max(job.outputTotalBytes ?? 0, read.next);
|
|
231
|
+
}
|
|
232
|
+
/** Kernel read state accessor for tests and cursor diagnostics. */
|
|
233
|
+
kernelCursorOf(id) {
|
|
234
|
+
return this.kernelReads.get(id)?.cursor;
|
|
235
|
+
}
|
|
142
236
|
/** A fresh snapshot in registration order (newest tracked job last). */
|
|
143
237
|
snapshot() {
|
|
144
238
|
return [...this.jobs.values()];
|
|
@@ -160,6 +254,7 @@ export class BackgroundJobStore {
|
|
|
160
254
|
if (this.jobs.size === 0)
|
|
161
255
|
return;
|
|
162
256
|
this.jobs.clear();
|
|
257
|
+
this.kernelReads.clear();
|
|
163
258
|
this.events.onChanged?.();
|
|
164
259
|
}
|
|
165
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionize.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/migrate/sessionize.ts"],"names":[],"mappings":"AA0DA,OAAO,EAGL,SAAS,EAET,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"sessionize.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/migrate/sessionize.ts"],"names":[],"mappings":"AA0DA,OAAO,EAGL,SAAS,EAET,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAS9D,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;CACzC;AAgBD;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,iTAAiT,CAAA;AACjV,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AACrD,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAevD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAqJpG"}
|