feat(tui): personal TUI rework, integrating upstream model reasoning-effort selection

Consolidates the personal dsh-tui customizations (module split into
components/session/extension, prompt template + running-glyph indicator,
copyable transcript, tool-card headers, timing placement, XML tool output,
status/footer rework) and ports upstream's model reasoning-effort selector
(Shift+Tab effort cycling, effort-aware /model, footer, and /status) onto
the personal module layout.
This commit is contained in:
Turtle
2026-07-27 17:53:40 +08:00
parent 5d2329e207
commit 4c5f92e0fd
139 changed files with 7491 additions and 3792 deletions

View File

@@ -18,6 +18,7 @@ import {
} from '../feature.ts'
import { ProjectContribution, type ProjectResource } from '../resources.ts'
import {
cordisConfigEntry,
npmCordisConfigEntry,
optionalString,
ownedTextFile,
@@ -86,6 +87,10 @@ class AppOption extends FeatureOption {
id: 'user-interaction',
name: '@deepseek-ai/dsh-user-interaction',
}),
cordisConfigEntry(ID, {
id: 'tui-prompt',
name: '@deepseek-ai/dsh-tui/prompt',
}),
...npmCordisConfigEntry(ID, {
id: 'tui',
name: '@deepseek-ai/dsh-tui',

View File

@@ -187,6 +187,7 @@ describe('SdkProject and ProjectEditSession', () => {
expect(await readFile(join(project.root, 'cordis.yml'), 'utf8'))
.toContain('sessionId: !!js process.env.DSH_SDK_SESSION_ID')
expect(project.cordis.entry('tui')?.config).not.toHaveProperty('model')
expect(project.cordis.entry('tui-prompt')?.name).toBe('@deepseek-ai/dsh-tui/prompt')
expect(project.cordis.entry('agent-loop')?.config).toEqual({ agents: [] })
expect(project.cordis.entry('session-invariant')?.name).toBe('@deepseek-ai/dsh-session/invariant')
expect(project.cordis.entry('agent-invariant')?.name).toBe('@deepseek-ai/dsh-agent/invariant')