@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.1
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 +85 -5
- package/assets/claude-girl/claude-girl-happy.png +0 -0
- package/assets/claude-girl/claude-girl.png +0 -0
- package/assets/codex-girl/codex-girl-happy.png +0 -0
- package/assets/codex-girl/codex-girl.png +0 -0
- package/bin/dsh-tui.js +104 -18
- package/cordis.patch.yml +2 -0
- package/cordis.yml +2 -0
- package/guide/dsh-tui-guide/SKILL.md +4 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
- package/guide/dsh-tui-guide/claude-backend.md +161 -0
- package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
- package/guide/dsh-tui-guide/codex-backend.md +257 -0
- package/guide/dsh-tui-guide/configuration.en.md +9 -2
- package/guide/dsh-tui-guide/configuration.md +9 -2
- package/guide/dsh-tui-guide/interaction.en.md +169 -27
- package/guide/dsh-tui-guide/interaction.md +115 -17
- package/guide/dsh-tui-guide/themes.en.md +24 -2
- package/guide/dsh-tui-guide/themes.md +21 -2
- package/guide/dsh-tui-guide/user-guide.en.md +38 -23
- package/guide/dsh-tui-guide/user-guide.md +22 -11
- package/guide/dsh-tui-guide/vscode.en.md +1 -0
- package/guide/dsh-tui-guide/vscode.md +1 -0
- package/lib/settings.json +139 -6
- package/lib/types/adapter/channel/state.d.ts.map +1 -1
- package/lib/types/adapter/channel/state.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +29 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +45 -5
- 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 +7 -1
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +5 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +477 -13
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/agent/backend.d.ts +168 -0
- package/lib/types/agent/backend.d.ts.map +1 -0
- package/lib/types/agent/backend.js +1 -0
- package/lib/types/agent/capabilities.d.ts +461 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -0
- package/lib/types/agent/capabilities.js +1 -0
- package/lib/types/agent/events.d.ts +733 -0
- package/lib/types/agent/events.d.ts.map +1 -0
- package/lib/types/agent/events.js +2 -0
- package/lib/types/agent/index.d.ts +8 -0
- package/lib/types/agent/index.d.ts.map +1 -0
- package/lib/types/agent/index.js +7 -0
- package/lib/types/agent/messages.d.ts +52 -0
- package/lib/types/agent/messages.d.ts.map +1 -0
- package/lib/types/agent/messages.js +91 -0
- package/lib/types/agent/presentation.d.ts +29 -0
- package/lib/types/agent/presentation.d.ts.map +1 -0
- package/lib/types/agent/presentation.js +4 -0
- package/lib/types/agent/refs.d.ts +30 -0
- package/lib/types/agent/refs.d.ts.map +1 -0
- package/lib/types/agent/refs.js +39 -0
- package/lib/types/agent/session.d.ts +78 -0
- package/lib/types/agent/session.d.ts.map +1 -0
- package/lib/types/agent/session.js +1 -0
- package/lib/types/backends/claude/activity.d.ts +53 -0
- package/lib/types/backends/claude/activity.d.ts.map +1 -0
- package/lib/types/backends/claude/activity.js +103 -0
- package/lib/types/backends/claude/auth.d.ts +245 -0
- package/lib/types/backends/claude/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/auth.js +503 -0
- package/lib/types/backends/claude/backend.d.ts +32 -0
- package/lib/types/backends/claude/backend.d.ts.map +1 -0
- package/lib/types/backends/claude/backend.js +296 -0
- package/lib/types/backends/claude/catalog.d.ts +17 -0
- package/lib/types/backends/claude/catalog.d.ts.map +1 -0
- package/lib/types/backends/claude/catalog.js +94 -0
- package/lib/types/backends/claude/channels.d.ts +63 -0
- package/lib/types/backends/claude/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/channels.js +275 -0
- package/lib/types/backends/claude/contract.d.ts +37 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -0
- package/lib/types/backends/claude/contract.js +46 -0
- package/lib/types/backends/claude/controls.d.ts +134 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -0
- package/lib/types/backends/claude/controls.js +425 -0
- package/lib/types/backends/claude/dialogs.d.ts +62 -0
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
- package/lib/types/backends/claude/dialogs.js +253 -0
- package/lib/types/backends/claude/flag-settings.d.ts +12 -0
- package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
- package/lib/types/backends/claude/flag-settings.js +49 -0
- package/lib/types/backends/claude/images.d.ts +49 -0
- package/lib/types/backends/claude/images.d.ts.map +1 -0
- package/lib/types/backends/claude/images.js +94 -0
- package/lib/types/backends/claude/index.d.ts +5 -0
- package/lib/types/backends/claude/index.d.ts.map +1 -0
- package/lib/types/backends/claude/index.js +4 -0
- package/lib/types/backends/claude/install.d.ts +15 -0
- package/lib/types/backends/claude/install.d.ts.map +1 -0
- package/lib/types/backends/claude/install.js +91 -0
- package/lib/types/backends/claude/modelEnv.d.ts +64 -0
- package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
- package/lib/types/backends/claude/modelEnv.js +199 -0
- package/lib/types/backends/claude/narrow.d.ts +10 -0
- package/lib/types/backends/claude/narrow.d.ts.map +1 -0
- package/lib/types/backends/claude/narrow.js +8 -0
- package/lib/types/backends/claude/older-history.d.ts +16 -0
- package/lib/types/backends/claude/older-history.d.ts.map +1 -0
- package/lib/types/backends/claude/older-history.js +101 -0
- package/lib/types/backends/claude/options.d.ts +181 -0
- package/lib/types/backends/claude/options.d.ts.map +1 -0
- package/lib/types/backends/claude/options.js +208 -0
- package/lib/types/backends/claude/permissions.d.ts +83 -0
- package/lib/types/backends/claude/permissions.d.ts.map +1 -0
- package/lib/types/backends/claude/permissions.js +331 -0
- package/lib/types/backends/claude/prefs.d.ts +55 -0
- package/lib/types/backends/claude/prefs.d.ts.map +1 -0
- package/lib/types/backends/claude/prefs.js +150 -0
- package/lib/types/backends/claude/process.d.ts +19 -0
- package/lib/types/backends/claude/process.d.ts.map +1 -0
- package/lib/types/backends/claude/process.js +156 -0
- package/lib/types/backends/claude/replay.d.ts +129 -0
- package/lib/types/backends/claude/replay.d.ts.map +1 -0
- package/lib/types/backends/claude/replay.js +505 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk-warnings.js +55 -0
- package/lib/types/backends/claude/sdk.d.ts +12 -0
- package/lib/types/backends/claude/sdk.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk.js +34 -0
- package/lib/types/backends/claude/send-message.d.ts +54 -0
- package/lib/types/backends/claude/send-message.d.ts.map +1 -0
- package/lib/types/backends/claude/send-message.js +65 -0
- package/lib/types/backends/claude/session/auth.d.ts +47 -0
- package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/session/auth.js +226 -0
- package/lib/types/backends/claude/session/channels.d.ts +82 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/session/channels.js +45 -0
- package/lib/types/backends/claude/session/input.d.ts +16 -0
- package/lib/types/backends/claude/session/input.d.ts.map +1 -0
- package/lib/types/backends/claude/session/input.js +64 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
- package/lib/types/backends/claude/session/lifecycle.js +852 -0
- package/lib/types/backends/claude/session/store.d.ts +17 -0
- package/lib/types/backends/claude/session/store.d.ts.map +1 -0
- package/lib/types/backends/claude/session/store.js +122 -0
- package/lib/types/backends/claude/session/subagents.d.ts +13 -0
- package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/claude/session/subagents.js +77 -0
- package/lib/types/backends/claude/session/types.d.ts +89 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -0
- package/lib/types/backends/claude/session/types.js +1 -0
- package/lib/types/backends/claude/session.d.ts +4 -0
- package/lib/types/backends/claude/session.d.ts.map +1 -0
- package/lib/types/backends/claude/session.js +2 -0
- package/lib/types/backends/claude/side-query.d.ts +34 -0
- package/lib/types/backends/claude/side-query.d.ts.map +1 -0
- package/lib/types/backends/claude/side-query.js +116 -0
- package/lib/types/backends/claude/task-output.d.ts +13 -0
- package/lib/types/backends/claude/task-output.d.ts.map +1 -0
- package/lib/types/backends/claude/task-output.js +101 -0
- package/lib/types/backends/claude/tools.d.ts +45 -0
- package/lib/types/backends/claude/tools.d.ts.map +1 -0
- package/lib/types/backends/claude/tools.js +231 -0
- package/lib/types/backends/claude/transcript-file.d.ts +41 -0
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
- package/lib/types/backends/claude/transcript-file.js +195 -0
- package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
- package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/attempts.js +243 -0
- package/lib/types/backends/claude/translate/content.d.ts +33 -0
- package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/content.js +91 -0
- package/lib/types/backends/claude/translate/core.d.ts +76 -0
- package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/core.js +447 -0
- package/lib/types/backends/claude/translate/events.d.ts +9 -0
- package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/events.js +77 -0
- package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
- package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/lanes.js +177 -0
- package/lib/types/backends/claude/translate/messages.d.ts +36 -0
- package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/messages.js +202 -0
- package/lib/types/backends/claude/translate/system.d.ts +40 -0
- package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/system.js +399 -0
- package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
- package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/tasks.js +159 -0
- package/lib/types/backends/claude/translate/types.d.ts +114 -0
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/types.js +1 -0
- package/lib/types/backends/claude/translate.d.ts +9 -0
- package/lib/types/backends/claude/translate.d.ts.map +1 -0
- package/lib/types/backends/claude/translate.js +6 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/external-tokens.js +325 -0
- package/lib/types/backends/codex/auth/route.d.ts +14 -0
- package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/route.js +52 -0
- package/lib/types/backends/codex/auth/status.d.ts +16 -0
- package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/status.js +115 -0
- package/lib/types/backends/codex/backend.d.ts +58 -0
- package/lib/types/backends/codex/backend.d.ts.map +1 -0
- package/lib/types/backends/codex/backend.js +201 -0
- package/lib/types/backends/codex/catalog.d.ts +17 -0
- package/lib/types/backends/codex/catalog.d.ts.map +1 -0
- package/lib/types/backends/codex/catalog.js +128 -0
- package/lib/types/backends/codex/channels.d.ts +59 -0
- package/lib/types/backends/codex/channels.d.ts.map +1 -0
- package/lib/types/backends/codex/channels.js +274 -0
- package/lib/types/backends/codex/contract.d.ts +46 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -0
- package/lib/types/backends/codex/contract.js +80 -0
- package/lib/types/backends/codex/detect.d.ts +14 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -0
- package/lib/types/backends/codex/detect.js +90 -0
- package/lib/types/backends/codex/index.d.ts +6 -0
- package/lib/types/backends/codex/index.d.ts.map +1 -0
- package/lib/types/backends/codex/index.js +5 -0
- package/lib/types/backends/codex/modes.d.ts +16 -0
- package/lib/types/backends/codex/modes.d.ts.map +1 -0
- package/lib/types/backends/codex/modes.js +49 -0
- package/lib/types/backends/codex/narrow.d.ts +20 -0
- package/lib/types/backends/codex/narrow.d.ts.map +1 -0
- package/lib/types/backends/codex/narrow.js +18 -0
- package/lib/types/backends/codex/prefs.d.ts +42 -0
- package/lib/types/backends/codex/prefs.d.ts.map +1 -0
- package/lib/types/backends/codex/prefs.js +124 -0
- package/lib/types/backends/codex/protocol/index.d.ts +149 -0
- package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
- package/lib/types/backends/codex/protocol/index.js +130 -0
- package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
- package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/binary.js +174 -0
- package/lib/types/backends/codex/rpc/client.d.ts +72 -0
- package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/client.js +214 -0
- package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
- package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/hub.js +532 -0
- package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
- package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/transport.js +212 -0
- package/lib/types/backends/codex/session/activity.d.ts +18 -0
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
- package/lib/types/backends/codex/session/activity.js +108 -0
- package/lib/types/backends/codex/session/approvals.d.ts +39 -0
- package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/approvals.js +477 -0
- package/lib/types/backends/codex/session/commands.d.ts +37 -0
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/session/commands.js +141 -0
- package/lib/types/backends/codex/session/controls.d.ts +37 -0
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
- package/lib/types/backends/codex/session/controls.js +303 -0
- package/lib/types/backends/codex/session/goals.d.ts +25 -0
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/goals.js +97 -0
- package/lib/types/backends/codex/session/history.d.ts +52 -0
- package/lib/types/backends/codex/session/history.d.ts.map +1 -0
- package/lib/types/backends/codex/session/history.js +196 -0
- package/lib/types/backends/codex/session/images.d.ts +17 -0
- package/lib/types/backends/codex/session/images.d.ts.map +1 -0
- package/lib/types/backends/codex/session/images.js +138 -0
- package/lib/types/backends/codex/session/input.d.ts +75 -0
- package/lib/types/backends/codex/session/input.d.ts.map +1 -0
- package/lib/types/backends/codex/session/input.js +294 -0
- package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
- package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
- package/lib/types/backends/codex/session/plan-review.js +48 -0
- package/lib/types/backends/codex/session/prompts.d.ts +7 -0
- package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
- package/lib/types/backends/codex/session/prompts.js +47 -0
- package/lib/types/backends/codex/session/session.d.ts +12 -0
- package/lib/types/backends/codex/session/session.d.ts.map +1 -0
- package/lib/types/backends/codex/session/session.js +871 -0
- package/lib/types/backends/codex/session/side-query.d.ts +25 -0
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
- package/lib/types/backends/codex/session/side-query.js +121 -0
- package/lib/types/backends/codex/session/state.d.ts +57 -0
- package/lib/types/backends/codex/session/state.d.ts.map +1 -0
- package/lib/types/backends/codex/session/state.js +1 -0
- package/lib/types/backends/codex/session/subagents.d.ts +28 -0
- package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/codex/session/subagents.js +286 -0
- package/lib/types/backends/codex/session/tasks.d.ts +25 -0
- package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tasks.js +207 -0
- package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
- package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tool-output.js +29 -0
- package/lib/types/backends/codex/translate/commands.d.ts +30 -0
- package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/commands.js +103 -0
- package/lib/types/backends/codex/translate/events.d.ts +9 -0
- package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/events.js +71 -0
- package/lib/types/backends/codex/translate/items.d.ts +112 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/items.js +375 -0
- package/lib/types/backends/codex/translate/live.d.ts +39 -0
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/live.js +315 -0
- package/lib/types/backends/codex/translate/notices.d.ts +27 -0
- package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/notices.js +99 -0
- package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
- package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/presentation.js +237 -0
- package/lib/types/backends/codex/translate/replay.d.ts +18 -0
- package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/replay.js +33 -0
- package/lib/types/backends/codex/translate/usage.d.ts +29 -0
- package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/usage.js +65 -0
- package/lib/types/backends/shared/atomic-file.d.ts +4 -0
- package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
- package/lib/types/backends/shared/atomic-file.js +52 -0
- package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-tokens.js +161 -0
- package/lib/types/backends/shared/display-path.d.ts +3 -0
- package/lib/types/backends/shared/display-path.d.ts.map +1 -0
- package/lib/types/backends/shared/display-path.js +12 -0
- package/lib/types/branding.d.ts +92 -0
- package/lib/types/branding.d.ts.map +1 -0
- package/lib/types/branding.js +117 -0
- package/lib/types/channel/activity.d.ts +53 -0
- package/lib/types/channel/activity.d.ts.map +1 -0
- package/lib/types/channel/activity.js +955 -0
- package/lib/types/channel/capabilities.d.ts +24 -0
- package/lib/types/channel/capabilities.d.ts.map +1 -0
- package/lib/types/channel/capabilities.js +57 -0
- package/lib/types/channel/channel-slug.d.ts +9 -0
- package/lib/types/channel/channel-slug.d.ts.map +1 -0
- package/lib/types/channel/channel-slug.js +15 -0
- package/lib/types/channel/channel-wizard.d.ts +30 -0
- package/lib/types/channel/channel-wizard.d.ts.map +1 -0
- package/lib/types/channel/channel-wizard.js +226 -0
- package/lib/types/channel/elicitation.d.ts +135 -0
- package/lib/types/channel/elicitation.d.ts.map +1 -0
- package/lib/types/channel/elicitation.js +360 -0
- package/lib/types/channel/goal-command.d.ts +49 -0
- package/lib/types/channel/goal-command.d.ts.map +1 -0
- package/lib/types/channel/goal-command.js +72 -0
- package/lib/types/channel/history-restore.d.ts +16 -0
- package/lib/types/channel/history-restore.d.ts.map +1 -0
- package/lib/types/channel/history-restore.js +214 -0
- package/lib/types/channel/interaction.d.ts +38 -0
- package/lib/types/channel/interaction.d.ts.map +1 -0
- package/lib/types/channel/interaction.js +110 -0
- package/lib/types/channel/job-format.d.ts +6 -0
- package/lib/types/channel/job-format.d.ts.map +1 -0
- package/lib/types/channel/job-format.js +12 -0
- package/lib/types/channel/live-output.d.ts +35 -0
- package/lib/types/channel/live-output.d.ts.map +1 -0
- package/lib/types/channel/live-output.js +74 -0
- package/lib/types/channel/model-capabilities.d.ts +10 -0
- package/lib/types/channel/model-capabilities.d.ts.map +1 -0
- package/lib/types/channel/model-capabilities.js +51 -0
- package/lib/types/channel/permissions.d.ts +155 -0
- package/lib/types/channel/permissions.d.ts.map +1 -0
- package/lib/types/channel/permissions.js +188 -0
- package/lib/types/channel/projection.d.ts +110 -0
- package/lib/types/channel/projection.d.ts.map +1 -0
- package/lib/types/channel/projection.js +1521 -0
- package/lib/types/channel/question-record.d.ts +76 -0
- package/lib/types/channel/question-record.d.ts.map +1 -0
- package/lib/types/channel/question-record.js +109 -0
- package/lib/types/channel/questions.d.ts +204 -0
- package/lib/types/channel/questions.d.ts.map +1 -0
- package/lib/types/channel/questions.js +286 -0
- package/lib/types/channel/sanitize.d.ts +49 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -0
- package/lib/types/channel/sanitize.js +88 -0
- package/lib/types/channel/selection-record.d.ts +18 -0
- package/lib/types/channel/selection-record.d.ts.map +1 -0
- package/lib/types/channel/selection-record.js +45 -0
- package/lib/types/channel/side-prompts.d.ts +59 -0
- package/lib/types/channel/side-prompts.d.ts.map +1 -0
- package/lib/types/channel/side-prompts.js +127 -0
- package/lib/types/channel/transcript.d.ts +17 -0
- package/lib/types/channel/transcript.d.ts.map +1 -0
- package/lib/types/channel/transcript.js +19 -0
- package/lib/types/channel/usage.d.ts +48 -0
- package/lib/types/channel/usage.d.ts.map +1 -0
- package/lib/types/channel/usage.js +143 -0
- package/lib/types/commands.d.ts +147 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +196 -2
- package/lib/types/components/AgentMessageComposer.d.ts +50 -0
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
- package/lib/types/components/AgentMessageComposer.js +159 -0
- package/lib/types/components/BtwPanel.d.ts +13 -12
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +35 -24
- package/lib/types/components/ChannelPicker.d.ts +40 -0
- package/lib/types/components/ChannelPicker.d.ts.map +1 -0
- package/lib/types/components/ChannelPicker.js +26 -0
- package/lib/types/components/Chat/JobCard.d.ts +29 -31
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +31 -112
- package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
- package/lib/types/components/Chat/SubagentMessage.js +10 -3
- package/lib/types/components/ClaudeGirl.d.ts +27 -0
- package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
- package/lib/types/components/ClaudeGirl.js +30 -0
- package/lib/types/components/CodeBlockFrame.d.ts +19 -0
- package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
- package/lib/types/components/CodeBlockFrame.js +138 -0
- package/lib/types/components/CommandSuggestions.d.ts +10 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -3
- package/lib/types/components/ContextBarView.d.ts +2 -2
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +18 -8
- package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
- package/lib/types/components/EffortChargeGlyph.js +3 -4
- package/lib/types/components/EffortInputBorder.d.ts +1 -2
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +7 -4
- package/lib/types/components/EffortSlider.d.ts +5 -1
- package/lib/types/components/EffortSlider.d.ts.map +1 -1
- package/lib/types/components/EffortSlider.js +2 -2
- package/lib/types/components/EffortTierBadge.d.ts +1 -2
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
- package/lib/types/components/EffortTierBadge.js +8 -5
- package/lib/types/components/GoalTodoPanel.d.ts +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +11 -5
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/JobsPanel.d.ts +8 -9
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +72 -13
- package/lib/types/components/KernelPicker.d.ts +28 -0
- package/lib/types/components/KernelPicker.d.ts.map +1 -0
- package/lib/types/components/KernelPicker.js +37 -0
- package/lib/types/components/LogoV2.d.ts +7 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +120 -24
- package/lib/types/components/Markdown.d.ts +2 -1
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +37 -8
- package/lib/types/components/MathBlock.d.ts.map +1 -1
- package/lib/types/components/MathBlock.js +3 -1
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
- package/lib/types/components/MermaidDiagram.js +7 -5
- package/lib/types/components/MessageList.d.ts +21 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +62 -42
- package/lib/types/components/ModePicker.d.ts +20 -0
- package/lib/types/components/ModePicker.d.ts.map +1 -0
- package/lib/types/components/ModePicker.js +17 -0
- package/lib/types/components/PromptInput.d.ts +2 -2
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +308 -55
- package/lib/types/components/SdkInstallWizard.d.ts +44 -0
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
- package/lib/types/components/SdkInstallWizard.js +18 -0
- package/lib/types/components/SearchBox.d.ts +7 -8
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +18 -9
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +113 -6
- package/lib/types/components/StarPrompt.d.ts.map +1 -1
- package/lib/types/components/StarPrompt.js +5 -3
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +6 -4
- package/lib/types/components/SubagentCard.d.ts +2 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +25 -18
- package/lib/types/components/SubagentDashboard.d.ts +10 -6
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +32 -21
- package/lib/types/components/SubagentDetailScene.d.ts +16 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +196 -45
- package/lib/types/components/SyntaxText.d.ts.map +1 -1
- package/lib/types/components/SyntaxText.js +4 -1
- package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
- package/lib/types/components/TurnInterruptedRow.js +6 -3
- package/lib/types/components/TurnUsageRow.d.ts +24 -0
- package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
- package/lib/types/components/TurnUsageRow.js +46 -0
- package/lib/types/components/WorkingSpinner.d.ts +2 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +21 -4
- package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +173 -25
- package/lib/types/components/claudeGirlSprite.d.ts +18 -0
- package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
- package/lib/types/components/claudeGirlSprite.js +48 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +46 -13
- package/lib/types/components/design-system/ThemedText.d.ts +3 -1
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/diffPatch.d.ts +55 -0
- package/lib/types/components/diffPatch.d.ts.map +1 -0
- package/lib/types/components/diffPatch.js +142 -0
- package/lib/types/components/kernelCatalog.d.ts +48 -0
- package/lib/types/components/kernelCatalog.d.ts.map +1 -0
- package/lib/types/components/kernelCatalog.js +53 -0
- package/lib/types/components/launchpadActions.d.ts +13 -6
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +26 -4
- package/lib/types/components/launchpadParams.d.ts +101 -0
- package/lib/types/components/launchpadParams.d.ts.map +1 -0
- package/lib/types/components/launchpadParams.js +171 -0
- package/lib/types/components/maidPortrait.d.ts +37 -5
- package/lib/types/components/maidPortrait.d.ts.map +1 -1
- package/lib/types/components/maidPortrait.js +73 -54
- package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
- package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
- package/lib/types/components/messages/AgentMessageFlow.js +37 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
- package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
- package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptLeaves.js +74 -0
- package/lib/types/components/messages/agentTeam.d.ts +69 -0
- package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
- package/lib/types/components/messages/agentTeam.js +53 -0
- package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
- package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
- package/lib/types/components/messages/liveOutputLines.js +100 -0
- package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
- package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
- package/lib/types/components/messages/subagentTranscript.js +304 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
- package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +11 -6
- package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
- package/lib/types/components/questions/ProviderModelEditor.js +266 -0
- package/lib/types/components/shimmer.d.ts +26 -0
- package/lib/types/components/shimmer.d.ts.map +1 -1
- package/lib/types/components/shimmer.js +26 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/InfoPanel.js +13 -8
- package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +55 -77
- package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +8 -4
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
- package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
- package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/agentViewStore.js +26 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/threads.js +302 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +70 -30
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
- package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/mood.js +44 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +203 -29
- package/lib/types/components/splashFonts.d.ts +17 -9
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +119 -15
- package/lib/types/components/splashLayout.d.ts.map +1 -1
- package/lib/types/components/splashLayout.js +3 -1
- package/lib/types/components/subagentDetailMemory.d.ts +17 -0
- package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
- package/lib/types/components/subagentDetailMemory.js +28 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
- package/lib/types/components/trajectory/Inspector.js +9 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
- package/lib/types/components/trajectory/Ledger.js +7 -1
- package/lib/types/components/trajectory/scope.d.ts +64 -0
- package/lib/types/components/trajectory/scope.d.ts.map +1 -0
- package/lib/types/components/trajectory/scope.js +88 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
- package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
- package/lib/types/customTheme.d.ts +4 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +6 -8
- package/lib/types/dsh-adapter/approvals.d.ts +18 -5
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +17 -4
- package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
- package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/session.js +291 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/translate.js +467 -0
- package/lib/types/dsh-adapter/backends.d.ts +49 -0
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.js +124 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +7 -5
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
- package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding.js +102 -35
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +3 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/files.js +45 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/host.js +116 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/decisions.js +4 -4
- package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/emitter.js +5 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/extensions.js +714 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
- package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
- 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 +16 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +38 -1143
- package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/question-record.js +3 -107
- package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
- package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +7 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +17 -21
- package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.js +5 -111
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
- package/lib/types/dsh-adapter/channel.d.ts +17 -8
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +24 -1059
- package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +6 -1
- package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/decision-guard.js +44 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extension-events.js +22 -10
- package/lib/types/dsh-adapter/index.d.ts +41 -3
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +28 -1
- package/lib/types/dsh-adapter/jobs.d.ts +5 -3
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +53 -14
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
- package/lib/types/dsh-adapter/plugin.d.ts +38 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +546 -110
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +118 -52
- package/lib/types/dsh-adapter/questions.d.ts +29 -124
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +33 -267
- package/lib/types/dsh-adapter/recap.d.ts +3 -15
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
- package/lib/types/dsh-adapter/recap.js +3 -46
- package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sanitize.js +4 -84
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
- package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +60 -27
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +6 -4
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +1 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +3 -13
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +7 -0
- package/lib/types/dsh-adapter/themes.d.ts +1 -1
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/index.js +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +7 -0
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +11 -2
- package/lib/types/handoffAck.d.ts +57 -0
- package/lib/types/handoffAck.d.ts.map +1 -0
- package/lib/types/handoffAck.js +154 -0
- package/lib/types/handoffEvents.d.ts +52 -0
- package/lib/types/handoffEvents.d.ts.map +1 -0
- package/lib/types/handoffEvents.js +128 -0
- package/lib/types/i18n.d.ts +3189 -68
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +855 -9
- package/lib/types/ink/colorize.d.ts.map +1 -1
- package/lib/types/ink/colorize.js +8 -2
- package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
- package/lib/types/ink/components/AlternateScreen.js +25 -4
- package/lib/types/ink/components/App.d.ts +5 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +52 -5
- package/lib/types/ink/components/Image.d.ts +8 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/components/Text.d.ts +8 -1
- package/lib/types/ink/components/Text.d.ts.map +1 -1
- package/lib/types/ink/components/Text.js +11 -1
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +75 -3
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +9 -4
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +8 -2
- package/lib/types/ink/kitty-graphics.d.ts +7 -2
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +15 -7
- package/lib/types/ink/node-cache.d.ts +15 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +4 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +2 -0
- package/lib/types/ink/parse-keypress.d.ts +13 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +438 -19
- package/lib/types/ink/reconciler.d.ts.map +1 -1
- package/lib/types/ink/reconciler.js +9 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +200 -4
- package/lib/types/ink/render-stats.d.ts +35 -0
- package/lib/types/ink/render-stats.d.ts.map +1 -0
- package/lib/types/ink/render-stats.js +53 -0
- package/lib/types/ink/sixel-codec.d.ts +11 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +10 -3
- package/lib/types/ink/sixel-graphics.js +2 -2
- package/lib/types/ink/styles.d.ts +46 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +7 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +1 -1
- package/lib/types/ink/terminal-querier.js +4 -4
- package/lib/types/ink/text-decoration.d.ts +49 -0
- package/lib/types/ink/text-decoration.d.ts.map +1 -0
- package/lib/types/ink/text-decoration.js +235 -0
- package/lib/types/ink/update-overflow-guard.d.ts +9 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +41 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +5 -1
- package/lib/types/kernelPrefs.d.ts +51 -0
- package/lib/types/kernelPrefs.d.ts.map +1 -0
- package/lib/types/kernelPrefs.js +126 -0
- package/lib/types/modelRecents.d.ts +10 -2
- package/lib/types/modelRecents.d.ts.map +1 -1
- package/lib/types/modelRecents.js +20 -7
- package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
- package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
- package/lib/types/screens/AgentTranscriptScene.js +269 -0
- package/lib/types/screens/Chat.d.ts +45 -7
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +625 -113
- package/lib/types/screens/Launchpad.d.ts +24 -7
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +147 -28
- package/lib/types/screens/SessionSupervisor.d.ts +3 -3
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +69 -5
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +211 -7
- package/lib/types/screens/StatusLine.d.ts +40 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +131 -19
- package/lib/types/screens/StatusMetrics.d.ts +53 -17
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +141 -30
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/screens/TrajectoryScene.js +74 -12
- package/lib/types/screens/chat/backendCommands.d.ts +37 -0
- package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
- package/lib/types/screens/chat/backendCommands.js +51 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
- package/lib/types/screens/chat/useBackendChannels.js +117 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useKernelPicker.js +72 -0
- package/lib/types/screens/chatOverlay.d.ts +32 -2
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +9 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
- package/lib/types/sessionHistory.d.ts +18 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +46 -4
- package/lib/types/sessionPins.d.ts +7 -0
- package/lib/types/sessionPins.d.ts.map +1 -1
- package/lib/types/sessionPins.js +9 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
- package/lib/types/sessions/resumeFailure.js +2 -1
- package/lib/types/settings/definitions.d.ts +74 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +50 -4
- package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
- package/lib/types/terminal-utils/hyperlink.js +21 -4
- package/lib/types/terminal-utils/markdown.d.ts +34 -6
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +257 -66
- package/lib/types/theme.d.ts +49 -8
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +514 -18
- package/lib/types/tips.js +2 -2
- package/lib/types/trajectory/effortIgnition.d.ts +25 -7
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
- package/lib/types/trajectory/effortIgnition.js +106 -34
- package/lib/types/trajectory/window.d.ts +26 -0
- package/lib/types/trajectory/window.d.ts.map +1 -0
- package/lib/types/trajectory/window.js +27 -0
- package/lib/types/tuiDisplayPrefs.d.ts +38 -1
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +45 -1
- package/lib/types/update.d.ts +88 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +285 -18
- package/lib/types/utils/crashDetail.d.ts +56 -0
- package/lib/types/utils/crashDetail.d.ts.map +1 -0
- package/lib/types/utils/crashDetail.js +175 -0
- package/lib/types/utils/imageResize.d.ts +9 -23
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +24 -20
- package/lib/types/utils/inputPaste.d.ts +9 -8
- package/lib/types/utils/inputPaste.d.ts.map +1 -1
- package/lib/types/utils/inputPaste.js +53 -16
- package/lib/types/utils/jsonl.d.ts +24 -0
- package/lib/types/utils/jsonl.d.ts.map +1 -0
- package/lib/types/utils/jsonl.js +36 -0
- package/package.json +18 -2
package/README.md
CHANGED
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
- **Mermaid diagrams** — ````mermaid ```` fences drawn as Unicode diagrams.
|
|
32
32
|
- **LaTeX math** — `$…$` and `$$…$$` formulas as Unicode text, fractions and limits stacked in display blocks; `mathRendering: image` typesets block and one-row inline formulas as terminal images on graphics terminals.
|
|
33
33
|
- **Timeline rail** — every turn clickable; timeline / scrollbar / hidden gutter.
|
|
34
|
-
- **Side panel** — `Ctrl+B` splits the chat with a panel column
|
|
34
|
+
- **Side panel** — `Ctrl+B` splits the chat with a panel column once the terminal is wide enough; all eight built-in panels are enabled by default. Narrow terminals and inline mode keep full-screen panels.
|
|
35
35
|
- **Live state** — activity animation, context bar, TPS, cache hit rate, effort, tokens, session cost estimate (main + subagents), Git and session metadata.
|
|
36
|
+
Context-bar fill follows backend occupancy; colors estimate content composition. Compaction clears obsolete estimates, and missing composition displays a single used block.
|
|
36
37
|
- **One session manager** — `/resume` `/home` `/agentview` `/bg` `⌸`.
|
|
37
38
|
- **Session workflow** — `/new` `/compact` `/export` `/btw`, model hot-switch, fork, rewind, vim, fullscreen draft editor.
|
|
38
39
|
- **IDE selection channel** — a VS Code selection lands in the prompt.
|
|
@@ -171,11 +172,86 @@ Full guide: [Session migration](docs/migrate.en.md).
|
|
|
171
172
|
|
|
172
173
|
**VS Code**: use the integrated terminal or the `dsh-tui-vscode` extension. See [VS Code guide](docs/vscode.en.md). **Herdr**: run `dsh-tui` in a [Herdr](https://herdr.dev) pane; `idle` / `working` / `blocked` are reported through its local integration API.
|
|
173
174
|
|
|
175
|
+
### Experimental: Claude backend
|
|
176
|
+
|
|
177
|
+
dsh-TUI can also run its session on Claude: the same interface, driving the
|
|
178
|
+
Claude Code CLI through the Claude Agent SDK. Your project's `CLAUDE.md`,
|
|
179
|
+
settings, hooks, MCP servers and plugins load as the CLI loads them.
|
|
180
|
+
|
|
181
|
+
```sh
|
|
182
|
+
# once, in the dsh-tui profile directory (the SDK is an optional dependency)
|
|
183
|
+
cd ~/.dsh/profiles/dsh-tui && pnpm add @anthropic-ai/claude-agent-sdk@0.3.287
|
|
184
|
+
dsh-tui --backend claude # or pick Claude in /kernel; that choice is remembered
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
The easiest install: open the kernel picker (the launchpad "Kernel" entry or
|
|
188
|
+
`/kernel`) and press Enter on the dim Claude row — the wizard locates the
|
|
189
|
+
profile directory and installs the pinned SDK for you; the command above is
|
|
190
|
+
its manual equivalent.
|
|
191
|
+
|
|
192
|
+
- **Sign-in**: a `/channel` relay profile, your dsh-auth `anthropic` sign-in
|
|
193
|
+
(`/login`), `ANTHROPIC_API_KEY` or cloud-provider variables, or an existing
|
|
194
|
+
`claude login`, in that order. A `claude` on `PATH` is used when present,
|
|
195
|
+
otherwise the SDK's bundled binary.
|
|
196
|
+
- **Works**: streaming, tool cards, approvals and questions, `/model`,
|
|
197
|
+
`/effort`, Claude's permission modes (`/permission`, `Shift+Tab`),
|
|
198
|
+
`/compact`, `/context`, `/mcp`, `/resume`, `/fork`, double-`Esc` rewind,
|
|
199
|
+
subagents, background jobs, images, `/btw`, and the USD cost Claude reports.
|
|
200
|
+
- **Not available**: DSH-only commands such as `/tree`, `/preset`,
|
|
201
|
+
`/provider`, `/workspace`, `/agentview` and `/bg`. One process runs one
|
|
202
|
+
backend; `/kernel` switches by restarting into a new session.
|
|
203
|
+
|
|
204
|
+
Details and known limitations: [Claude backend](docs/claude-backend.en.md).
|
|
205
|
+
|
|
206
|
+
### Experimental: native Codex backend
|
|
207
|
+
|
|
208
|
+
Run your own Codex through `codex app-server`, sharing its configuration,
|
|
209
|
+
login, instructions, skills, hooks, MCP and native threads:
|
|
210
|
+
|
|
211
|
+
```sh
|
|
212
|
+
npm install -g @openai/codex@0.160.1
|
|
213
|
+
dsh-tui --backend codex
|
|
214
|
+
dsh-tui --backend codex --resume <thread-id>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Protocol baseline **0.160.1**, minimum **0.144.0**; other versions may show
|
|
218
|
+
drift. `CODEX_EXECUTABLE` selects a binary; `/kernel` remembers the backend.
|
|
219
|
+
`codex resume <id>` can open the same thread after the other writer exits.
|
|
220
|
+
This is not `migrate codex`, which imports history into DSH.
|
|
221
|
+
With native credentials, a writer conflict for an idle thread retained by the
|
|
222
|
+
official background server triggers a reconnection to that server. Managed
|
|
223
|
+
subscription credentials and `/channel` connections use private app-server processes.
|
|
224
|
+
|
|
225
|
+
Streaming/tool cards, approvals, questions, steer/queue/interrupt, model and
|
|
226
|
+
effort controls, Plan, `/review`, `/diff`, `/usage`, `/init`, skills and MCP
|
|
227
|
+
share the existing UI. **Shift+Tab only toggles Plan**, keeping its underlying
|
|
228
|
+
permission preset; Full Access requires an explicit choice. Existing Codex
|
|
229
|
+
settings are respected, not overwritten with defaults. `/login` offers
|
|
230
|
+
ChatGPT OAuth, a device code or an API key (the last writes to Codex’s own
|
|
231
|
+
credential store). Relay `/channel` connections take precedence; managed
|
|
232
|
+
subscription tokens are only injected on first-party routes. dsh-TUI does
|
|
233
|
+
not write `~/.codex/config.toml` or log out your native Codex account.
|
|
234
|
+
|
|
235
|
+
TPS includes hidden reasoning time and excludes tool execution time. Live
|
|
236
|
+
text estimates are corrected when Codex reports output token usage.
|
|
237
|
+
|
|
238
|
+
Native browsing/archive, fork/conversation rewind, paged history, images,
|
|
239
|
+
subagents, polled background terminals, goals and `/btw`/`/recap` use the
|
|
240
|
+
existing surfaces. `/logout` removes only the matching dsh-auth credential;
|
|
241
|
+
already-loaded managed tokens require a normal restart, not native logout.
|
|
242
|
+
The real 0.160.1 app-server passed nine credential-free offline checks and eight
|
|
243
|
+
daemon-resume checks, with no model turn or charge; real subscription login, credentialed model calls
|
|
244
|
+
and real-TTY interaction were not run. Only Codex identification/title
|
|
245
|
+
changes automatically, not palette or companion.
|
|
246
|
+
Using ChatGPT subscription tokens in third-party clients is subject to
|
|
247
|
+
OpenAI’s terms. Full instructions and current boundaries:
|
|
248
|
+
[Codex backend](docs/codex-backend.en.md).
|
|
249
|
+
|
|
174
250
|
## Keybindings & Mouse
|
|
175
251
|
|
|
176
|
-
`Enter` send · `Tab` complete · `Ctrl+Enter` interrupt and send · `Alt+Up` recall the last message · `Esc` dismiss, double-`Esc` rewinds · `Ctrl+B` side panel · `Ctrl+O` details · `Ctrl+R` history (`↑`/`↓` and `Ctrl+R` are scoped to the current project) · `Ctrl+V` paste · `Ctrl+Shift+E` fullscreen draft editor · `?` shortcuts · `←`
|
|
252
|
+
`Enter` send · `Tab` complete · `Ctrl+Enter` interrupt and send · `Alt+Up` recall the last message · `Esc` dismiss, double-`Esc` rewinds · `Ctrl+B` side panel · `Ctrl+O` details · `Ctrl+R` history (`↑`/`↓` and `Ctrl+R` are scoped to the current project) · `Ctrl+V` paste · `Ctrl+Shift+E` fullscreen draft editor · `?` shortcuts · `←` open the session manager (DSH backgrounds the current session first).
|
|
177
253
|
|
|
178
|
-
While the model is working: `Enter` steers, `Tab` queues a follow-up, `Ctrl+Enter` interrupts and sends.
|
|
254
|
+
While the model is working: `Enter` steers, `Tab` queues a follow-up, `Ctrl+Enter` interrupts and sends. Input that names a command is still a command — with or without arguments — so `/model` or `/new` reach their own gate (and the `/` overlay sinks the commands that affect the running conversation) instead of silently becoming an interruption; only text that is not a command — and a direct skill gesture such as `/skill-name …` — steers.
|
|
179
255
|
|
|
180
256
|
On native Windows, fragmented Win32 input records are reassembled across short input delays instead of appearing as numeric protocol text. The platform check only reports that this machine might run the private mode (win32-input-mode); a bare `ESC[` fragment is held only after one record has actually been decoded, while a fragment whose own shape is already record-specific holds on its own (which is how even the first record can survive a split). Windows terminals that never enter the mode (mintty, GitBash) therefore keep the classic VT path: a lone `Esc` keeps its normal response time, and a letter typed after a timed-out `ESC[` is not swallowed.
|
|
181
257
|
|
|
@@ -197,7 +273,7 @@ Mouse (fullscreen): drag to select and copy, double/triple click to select a wor
|
|
|
197
273
|
|
|
198
274
|
File paths in prose can open the file-action menu; automatic detection does not extract a path from inside a slash-delimited token such as `working/idle/needs-input` or a date such as `2024/01/15`.
|
|
199
275
|
|
|
200
|
-
**Pasting**: native and bracketed paste keeps ordinary text and newlines, and never submits itself on arrival. On Windows terminals that deliver a paste as win32-input-mode key records, the
|
|
276
|
+
**Pasting**: native and bracketed paste keeps ordinary text and newlines, and never submits itself on arrival. On Windows terminals that deliver a paste as win32-input-mode key records, a record stream leaked into the payload is decoded back into the characters its `Uc` field encodes — newlines included — so the composer's line count matches what was pasted; only records with no character meaning are stripped (a multi-line paste no longer leaves stray `_`), and a complete record is always consumed before an ESC-less tail, so no payload character is deleted along with an orphan escape. Pasted CRLF collapses to a single newline; genuine underscores and bracketed-paste text are untouched.
|
|
201
277
|
|
|
202
278
|
**Dropped files**: a native Windows desktop drop (Windows Terminal / OpenConsole) arrives as an OSC 8 hyperlink; the parser restores its `file://` URI to a decoded local path before paste hygiene runs, so the `]8;id=…;` parameter bytes never reach the draft. Image paths enter the existing image staging pipeline; other files are inserted as a referenceable path (a path containing whitespace arrives in the composer's quoted `"…"` single-token form). Only `file://` URIs are restored, and it is fail-closed: a remote authority/UNC, a payload carrying several distinct URIs, or a URI that carries several tokens is refused and stays literal text rather than guessed.
|
|
203
279
|
|
|
@@ -207,11 +283,15 @@ Full reference: [Interaction and commands](docs/interaction.en.md).
|
|
|
207
283
|
|
|
208
284
|
`/resume` · `/home` · `/agentview` · `/bg` · `⌸` open the same session manager: workspace rail, live state, filter, ★ pins. Also `/model` `/new` `/compact` `/export` `/btw` `/tree` `/fork` `/rewind` `/settings` `/setup` `/status` `/cost` `/jobs` `/skills` `/mcp` `/provider` `/auth` `/login` `/update`.
|
|
209
285
|
|
|
286
|
+
In `/provider`'s model list, focus a model and press `Tab` to edit its context window, max output tokens, reasoning efforts, and image input capability.
|
|
287
|
+
|
|
210
288
|
The session manager paints the last successful list immediately while it checks the persistence store for changes. Titles that require a deeper log scan appear first with a fallback name and update in place when recovery finishes.
|
|
211
289
|
Removing a workspace registration keeps its sessions accessible under a "History only" directory in the rail.
|
|
212
290
|
History-only directories offer edit and new-session actions; rename and remove are available for registered workspaces.
|
|
213
291
|
|
|
214
|
-
**Background
|
|
292
|
+
**Background jobs**: card headers open the focused task panel. Click the card body or use `Ctrl+O` to toggle the command between its first statement and full script. Commands and output use separate colored edges with `❯` (`>` on Windows) and `≡` on their first rows; output always stays at the latest two visible rows. `/jobs` and the side panel keep the full output scrollable, while `e` toggles the focused command. Consecutive blank script lines collapse to one.
|
|
293
|
+
|
|
294
|
+
**Background sessions**: On the DSH backend, `/bg` or `←` on an empty prompt backgrounds the current session and opens the session manager; `Esc` returns to it. Background sessions run in this process and stop when the TUI exits. Logs survive. On Claude/Codex, those entries open the session manager without backgrounding the session.
|
|
215
295
|
|
|
216
296
|
Full commands: [Interaction and commands](docs/interaction.en.md).
|
|
217
297
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/bin/dsh-tui.js
CHANGED
|
@@ -62,6 +62,8 @@ const ownPackage = readJson(join(ownDir, 'package.json'))
|
|
|
62
62
|
const ownVersion = ownPackage?.name === '@deepseek-harness-tui/dsh-tui' ? ownPackage.version : undefined
|
|
63
63
|
const PACKAGE = '@deepseek-harness-tui/dsh-tui'
|
|
64
64
|
const PROFILE = 'dsh-tui'
|
|
65
|
+
// Kept local so the launcher also works without compiled modules.
|
|
66
|
+
const KERNEL_IDS = ['dsh', 'claude', 'codex']
|
|
65
67
|
|
|
66
68
|
// 随包用户手册(guide/,见 scripts/build-guide.mjs):交给 dsh 当内核
|
|
67
69
|
// dsh-skill-filesystem 的随包技能根(rank 600 的 bundledSkillDir 默认取这个
|
|
@@ -464,6 +466,7 @@ const MSG = {
|
|
|
464
466
|
`Options:\n` +
|
|
465
467
|
` --resume [id] Resume the last (or the given) session\n` +
|
|
466
468
|
` -c, --continue Same as --resume\n` +
|
|
469
|
+
` --backend <id> Agent backend: dsh | claude | codex (claude, codex: experimental)\n` +
|
|
467
470
|
` -- <prompt...> Treat the remaining arguments as literal prompt text\n` +
|
|
468
471
|
` <path|url> Open with the given workspace target\n\n` +
|
|
469
472
|
`Leading DSH options (e.g. --dump-config, --patch <path>) are forwarded unchanged.\n` +
|
|
@@ -481,6 +484,7 @@ const MSG = {
|
|
|
481
484
|
`选项:\n` +
|
|
482
485
|
` --resume [id] 恢复上次(或指定 id 的)会话\n` +
|
|
483
486
|
` -c, --continue 同 --resume\n` +
|
|
487
|
+
` --backend <id> Agent 后端:dsh | claude | codex(claude、codex 为实验性)\n` +
|
|
484
488
|
` -- <提示词...> 将剩余参数作为字面提示词\n` +
|
|
485
489
|
` <路径|URL> 以指定工作区目标启动\n\n` +
|
|
486
490
|
`前置 DSH 选项(如 --dump-config、--patch <路径>)原样转发。\n` +
|
|
@@ -646,8 +650,7 @@ const runDoctorChecks = () => {
|
|
|
646
650
|
return { hardFailure, lines }
|
|
647
651
|
}
|
|
648
652
|
// ─── safe 会话支撑(清单解析与报告渲染,交互/非交互共用)──────────────────────
|
|
649
|
-
//
|
|
650
|
-
// 功能将复用的唯一分类规则,不得合并简化(spec §6.1)。
|
|
653
|
+
// Packages that profile repair and rescue must never remove.
|
|
651
654
|
const PROTECTED_PLUGINS = new Set(['@deepseek-ai/dsh-base', PACKAGE])
|
|
652
655
|
// dir 参数供救援 profile 复用同一套解析规则(两处 manifest 契约不许分叉)。
|
|
653
656
|
const readProfileInventory = (dir = profileDir) => {
|
|
@@ -738,7 +741,7 @@ const forwardExit = child => {
|
|
|
738
741
|
// 统一表示子进程结局;不在此处做任何退出决定——退出权在调用者(首启结算
|
|
739
742
|
// 或 safe 菜单)。Windows 经 cmd()/shell:true 启动(见 cmd 注释),壳层
|
|
740
743
|
// 观察到的 signal 不保证等同内部 dsh 的中断语义:判定一律只看数值 code,
|
|
741
|
-
//
|
|
744
|
+
// Do not infer a signal from the numeric exit code.
|
|
742
745
|
const startDshSession = (dshArgs, profile = PROFILE, env = process.env) =>
|
|
743
746
|
new Promise(resolve => {
|
|
744
747
|
const child = spawn(...cmd('dsh', ['--profile', profile, ...dshArgs]), {
|
|
@@ -766,19 +769,76 @@ const rescueEnv = () => {
|
|
|
766
769
|
return env
|
|
767
770
|
}
|
|
768
771
|
|
|
772
|
+
// ─── 最后运行记录 ────────────────────────────────────────────────────────────
|
|
773
|
+
// TUI 把 {backendId,sessionId,cwd,attemptId} 写进 ~/.dsh-tui/last-run.json
|
|
774
|
+
// (boot 写一次,退出时刷新,见 src/update.ts 的 writeLastRunRecord)。
|
|
775
|
+
// 内核切换后本进程的 env 仍是原内核,安全模式重试若按 env 去读 resume.txt
|
|
776
|
+
// 或其他后端偏好,会回到原内核,甚至拿 DSH 的会话 id 跨后端恢复;所以
|
|
777
|
+
// 本次启动之后写下的记录优先。
|
|
778
|
+
const readLastRunRecord = () => {
|
|
779
|
+
try {
|
|
780
|
+
const parsed = JSON.parse(readFileSync(join(homedir(), '.dsh-tui', 'last-run.json'), 'utf8'))
|
|
781
|
+
if (parsed === null || typeof parsed !== 'object') return undefined
|
|
782
|
+
if (!KERNEL_IDS.includes(parsed.backendId)) return undefined
|
|
783
|
+
if (typeof parsed.sessionId !== 'string' || typeof parsed.cwd !== 'string' || typeof parsed.attemptId !== 'string') return undefined
|
|
784
|
+
if (typeof parsed.updatedAt !== 'number' || !Number.isFinite(parsed.updatedAt)) return undefined
|
|
785
|
+
return parsed
|
|
786
|
+
} catch {
|
|
787
|
+
return undefined
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
// 记录 → 重试 env:DSH_TUI_BACKEND 与一次性的 DSH_TUI_BACKEND_HANDOFF(后者
|
|
791
|
+
// 压过 Config 行)都设成记录里的内核;记录有可恢复的会话 id 才设
|
|
792
|
+
// DSH_TUI_RESUME_SESSION,否则删掉继承来的值,在该内核上冷启动。
|
|
793
|
+
const envFromLastRun = record => {
|
|
794
|
+
const env = { ...process.env }
|
|
795
|
+
env.DSH_TUI_BACKEND = record.backendId
|
|
796
|
+
env.DSH_TUI_BACKEND_HANDOFF = record.backendId
|
|
797
|
+
if (typeof record.sessionId === 'string' && record.sessionId.trim() !== '') {
|
|
798
|
+
env.DSH_TUI_RESUME_SESSION = record.sessionId
|
|
799
|
+
} else {
|
|
800
|
+
delete env.DSH_TUI_RESUME_SESSION
|
|
801
|
+
}
|
|
802
|
+
return env
|
|
803
|
+
}
|
|
804
|
+
// 首次 spawn 前记下的时刻:updatedAt 不早于它的记录是本次启动的 TUI 写的,
|
|
805
|
+
// 更早的是上一次启动留下的。
|
|
806
|
+
let launchChain = null
|
|
807
|
+
const noteLaunchChain = () => {
|
|
808
|
+
launchChain = { startedAt: Date.now() }
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
// 非 DSH 内核的上次会话来自各自 backends/<id>/prefs.json 的 lastSession。
|
|
812
|
+
const readBackendLastSession = backendId => {
|
|
813
|
+
try {
|
|
814
|
+
const prefs = JSON.parse(readFileSync(join(homedir(), '.dsh-tui', 'backends', backendId, 'prefs.json'), 'utf8'))
|
|
815
|
+
return typeof prefs?.lastSession === 'string' ? prefs.lastSession.trim() : ''
|
|
816
|
+
} catch {
|
|
817
|
+
return ''
|
|
818
|
+
}
|
|
819
|
+
}
|
|
769
820
|
// 安全模式「重试正常启动」的环境(菜单选项 1,首启 fallback 与 `safe` 共用):
|
|
770
|
-
//
|
|
771
|
-
//
|
|
772
|
-
//
|
|
773
|
-
//
|
|
774
|
-
//
|
|
821
|
+
// 1. 本次启动之后写下的最后运行记录:崩溃时实际在跑的内核与会话,压过
|
|
822
|
+
// env 里的 --resume(内核切换是用户更新的选择)。
|
|
823
|
+
// 2. 没有这样的记录(崩得太早,或旧版本不写):env 里已有
|
|
824
|
+
// DSH_TUI_RESUME_SESSION 就照用;否则按 env 的后端读它的上次会话
|
|
825
|
+
// (resume.txt 或对应后端偏好文件),读不到就冷启动。
|
|
775
826
|
const resumeEnvForRetry = () => {
|
|
827
|
+
const chain = launchChain
|
|
828
|
+
const record = readLastRunRecord()
|
|
829
|
+
if (record !== undefined && chain !== null && record.updatedAt >= chain.startedAt) {
|
|
830
|
+
return envFromLastRun(record)
|
|
831
|
+
}
|
|
776
832
|
if (process.env.DSH_TUI_RESUME_SESSION !== undefined) return process.env
|
|
777
833
|
let target = ''
|
|
778
|
-
|
|
779
|
-
target =
|
|
780
|
-
}
|
|
781
|
-
|
|
834
|
+
if (KERNEL_IDS.includes(process.env.DSH_TUI_BACKEND) && process.env.DSH_TUI_BACKEND !== 'dsh') {
|
|
835
|
+
target = readBackendLastSession(process.env.DSH_TUI_BACKEND)
|
|
836
|
+
} else {
|
|
837
|
+
try {
|
|
838
|
+
target = readFileSync(join(homedir(), '.dsh-tui', 'resume.txt'), 'utf8').trim()
|
|
839
|
+
} catch {
|
|
840
|
+
// 没有历史会话可恢复——静默冷启动。
|
|
841
|
+
}
|
|
782
842
|
}
|
|
783
843
|
return target === '' ? process.env : { ...process.env, DSH_TUI_RESUME_SESSION: target }
|
|
784
844
|
}
|
|
@@ -789,7 +849,7 @@ const isInteractive = () => Boolean(process.stdin.isTTY && process.stdout.isTTY)
|
|
|
789
849
|
|
|
790
850
|
// 子进程异常退出后终端可能停在脏状态(alt-screen/鼠标/隐藏光标——清理
|
|
791
851
|
// 责任在 TUI 的 ink 退出路径,不保证完成)。进入询问/菜单前做最小恢复,
|
|
792
|
-
//
|
|
852
|
+
// Reset the screen and mouse modes before prompting after a child exit.
|
|
793
853
|
const restoreTerminalMinimal = () => {
|
|
794
854
|
process.stdout.write('\x1b[?1049l\x1b[?1000l\x1b[?1006l\x1b[?25h')
|
|
795
855
|
}
|
|
@@ -803,7 +863,7 @@ const askSafeEntry = async pendingExitCode => {
|
|
|
803
863
|
// 与 runSafeSession.askChoice 同款 close 竞速:接口 close(上方 SIGINT
|
|
804
864
|
// 处理器主动 close,或 TTY 的 Ctrl+D/EOF)时 question 可能永不结算——
|
|
805
865
|
// 裸 await 会让 fallback 询问挂死(PTY 实测 Ctrl+C 下顶层 await 以退出
|
|
806
|
-
// 码 13 异常中止)。close
|
|
866
|
+
// 码 13 异常中止)。close 一律按取消:Ctrl+C/Ctrl+D/EOF
|
|
807
867
|
// 等价拒绝(按原退出码收束)。
|
|
808
868
|
let answer
|
|
809
869
|
try {
|
|
@@ -907,7 +967,7 @@ const runSafeSession = async ({ pendingExitCode = 0, retryDsh, extraLines, rescu
|
|
|
907
967
|
// cold start = 手动入口无已规范化 args,按空参数冷启动。
|
|
908
968
|
const replay = typeof retryDsh === 'function'
|
|
909
969
|
console.log(L.retry + (replay ? L.replaySource : L.coldStartSource))
|
|
910
|
-
//
|
|
970
|
+
// Both retry paths require a ready profile; neither bootstraps it.
|
|
911
971
|
if (!profileReady()) { console.error(msg('safeListUnreadable')(msg('safeGuideLabels').notReadyReason)); continue }
|
|
912
972
|
state.handingOff = true // 主动交接:此刻起的中断不算用户取消
|
|
913
973
|
const settled = settleRetry(replay ? await retryDsh() : await startDshSession([]))
|
|
@@ -1223,7 +1283,7 @@ const checkProfileAlignment = installedVersion => {
|
|
|
1223
1283
|
// ─── 子命令:safe(安全模式入口,两种角色同一段代码)──────────────────────────
|
|
1224
1284
|
// 零 lib 依赖、不委托、不自举(对齐 doctor 的依赖边界,而非 update 的
|
|
1225
1285
|
// profile-lib 路径):profile 损坏时它必须仍可达。控制面只读;重试与
|
|
1226
|
-
//
|
|
1286
|
+
// Recovery and retry behavior lives in runSafeSession.
|
|
1227
1287
|
// `safe --rescue` 是同一个救援动作的显式入口(不是新动作):交互终端里
|
|
1228
1288
|
// 等价于菜单选项 5(门禁 → 创建/复用 → 干净启动),非交互终端里只做
|
|
1229
1289
|
// 门禁 + 创建/复用并报告结论(没有终端可交接时不启动 TUI),以便脚本与
|
|
@@ -1376,6 +1436,11 @@ if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_
|
|
|
1376
1436
|
const hostArgs = []
|
|
1377
1437
|
const args = []
|
|
1378
1438
|
const argv = process.argv.slice(2)
|
|
1439
|
+
// Resume flags in command-line order: an explicit id, or `null` for a bare
|
|
1440
|
+
// flag. Replayed after the whole line is read, with the original
|
|
1441
|
+
// "each flag sets it, the last one wins" semantics — only a bare flag's
|
|
1442
|
+
// source depends on the backend, which may be named after it.
|
|
1443
|
+
const resumeFlags = []
|
|
1379
1444
|
for (let i = 0; i < argv.length; i++) {
|
|
1380
1445
|
const a = argv[i]
|
|
1381
1446
|
if (a === '--') {
|
|
@@ -1396,6 +1461,18 @@ if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_
|
|
|
1396
1461
|
continue
|
|
1397
1462
|
}
|
|
1398
1463
|
}
|
|
1464
|
+
// `--backend <id>`: which agent backend the app opens its session with
|
|
1465
|
+
// (the row reads DSH_TUI_BACKEND; absent falls back to kernel.json, then dsh).
|
|
1466
|
+
if (a === '--backend' || a.startsWith('--backend=')) {
|
|
1467
|
+
const backend = a.startsWith('--backend=') ? a.slice('--backend='.length).trim() : (argv[i + 1] ?? '').trim()
|
|
1468
|
+
if (a === '--backend' && argv[i + 1] !== undefined) i += 1
|
|
1469
|
+
if (!KERNEL_IDS.includes(backend)) {
|
|
1470
|
+
console.error(lang === 'zh' ? `未知的 --backend:${backend}(可选 ${KERNEL_IDS.join(' / ')})` : `Unknown --backend: ${backend} (expected ${KERNEL_IDS.join(' or ')})`)
|
|
1471
|
+
process.exit(2)
|
|
1472
|
+
}
|
|
1473
|
+
process.env.DSH_TUI_BACKEND = backend
|
|
1474
|
+
continue
|
|
1475
|
+
}
|
|
1399
1476
|
if (a === '--resume' || a === '-c' || a === '--continue' || a.startsWith('--resume=')) {
|
|
1400
1477
|
let sessionId = ''
|
|
1401
1478
|
if (a.startsWith('--resume=')) {
|
|
@@ -1403,8 +1480,8 @@ if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_
|
|
|
1403
1480
|
} else if (a === '--resume' && argv[i + 1] !== undefined && !argv[i + 1].startsWith('-')) {
|
|
1404
1481
|
sessionId = argv[++i].trim()
|
|
1405
1482
|
}
|
|
1406
|
-
|
|
1407
|
-
|
|
1483
|
+
// 裸 --resume:等整条命令行读完再决定(`--backend` 可能在它后面)。
|
|
1484
|
+
resumeFlags.push(sessionId || null)
|
|
1408
1485
|
} else if (
|
|
1409
1486
|
process.env.DSH_TUI_WORKSPACE_TARGET === undefined
|
|
1410
1487
|
&& !a.startsWith('-')
|
|
@@ -1416,6 +1493,13 @@ if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_
|
|
|
1416
1493
|
}
|
|
1417
1494
|
}
|
|
1418
1495
|
|
|
1496
|
+
// 按出现顺序重放 --resume:裸 --resume 时 DSH 读 resume.txt(契约不变),
|
|
1497
|
+
// 其他内核读各自的上次会话。
|
|
1498
|
+
for (const flag of resumeFlags) {
|
|
1499
|
+
const sessionId = flag ?? (KERNEL_IDS.includes(process.env.DSH_TUI_BACKEND) && process.env.DSH_TUI_BACKEND !== 'dsh' ? readBackendLastSession(process.env.DSH_TUI_BACKEND) : readLastResumeTarget())
|
|
1500
|
+
if (sessionId) setResumeEnv(sessionId)
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1419
1503
|
// 启动:被委托场景下本副本自己的版本即对齐诊断所见的启动器代际。
|
|
1420
1504
|
if (process.env.DSH_TUI_LAUNCHER_VERSION === undefined && ownVersion !== undefined) {
|
|
1421
1505
|
process.env.DSH_TUI_LAUNCHER_VERSION = ownVersion
|
|
@@ -1424,5 +1508,7 @@ if (!runningInsideProfile && ownVersion !== undefined && process.env.DSH_TUI_NO_
|
|
|
1424
1508
|
// DSH consumes its own --; only the app tail belongs behind it. Preserve
|
|
1425
1509
|
// the app-level separator too, and replay this same argv on a safe retry.
|
|
1426
1510
|
const firstArgs = [...hostArgs, ...(args.length > 0 ? ['--', ...args] : [])]
|
|
1511
|
+
// 必须在首次 spawn 之前:本次启动的 TUI 写的记录都晚于这个时刻。
|
|
1512
|
+
noteLaunchChain()
|
|
1427
1513
|
settleFirstResult(await startDshSession(firstArgs), firstArgs)
|
|
1428
1514
|
}
|
package/cordis.patch.yml
CHANGED
|
@@ -509,6 +509,8 @@
|
|
|
509
509
|
preset: !!js process.env.DSH_TUI_PRESET ?? undefined
|
|
510
510
|
workspace: !!js process.env.DSH_TUI_WORKSPACE_TARGET ?? undefined
|
|
511
511
|
sessionId: !!js process.env.DSH_TUI_RESUME_SESSION ?? undefined
|
|
512
|
+
# Agent backend (`dsh-tui --backend claude` → DSH_TUI_BACKEND); unset → /kernel's remembered pick, else dsh.
|
|
513
|
+
backend: !!js process.env.DSH_TUI_BACKEND || undefined
|
|
512
514
|
|
|
513
515
|
# Live working-line data source (thinking copy / running tool / turn
|
|
514
516
|
# summary). Mounted through @deepseek-harness-tui/dsh-tui's own
|
package/cordis.yml
CHANGED
|
@@ -91,6 +91,8 @@
|
|
|
91
91
|
# feeds the chosen session id through this env var (see
|
|
92
92
|
# src/sessionHistory.ts for the launcher contract).
|
|
93
93
|
sessionId: !!js process.env.DSH_TUI_RESUME_SESSION ?? undefined
|
|
94
|
+
# Agent backend (`dsh-tui --backend claude` → DSH_TUI_BACKEND); unset → /kernel's remembered pick, else dsh.
|
|
95
|
+
backend: !!js process.env.DSH_TUI_BACKEND || undefined
|
|
94
96
|
workspace: !!js process.env.DSH_TUI_WORKSPACE_TARGET ?? undefined
|
|
95
97
|
|
|
96
98
|
# The DeepSeek adapter. Shipped default: full thinking at max effort.
|
|
@@ -5,14 +5,14 @@ description: Use when the user asks about dsh-tui itself (usage, shortcuts, conf
|
|
|
5
5
|
|
|
6
6
|
# dsh-tui 用户手册(索引)
|
|
7
7
|
|
|
8
|
-
用户手册全文就在**本文件所在目录**——`skill` 工具返回的 `resourceBase`。共
|
|
8
|
+
用户手册全文就在**本文件所在目录**——`skill` 工具返回的 `resourceBase`。共 10 篇,
|
|
9
9
|
每篇中英各一份:中文文件名无后缀,英文加 `.en.md`。拿不到绝对路径时,用
|
|
10
10
|
`glob` 在 dsh-tui 包里搜 `guide/dsh-tui-guide`。
|
|
11
11
|
|
|
12
12
|
## 怎么用
|
|
13
13
|
|
|
14
14
|
1. **跟用户同语言**:中文提问读无后缀文件,英文提问读加后缀的那份;回答也用同一种语言。
|
|
15
|
-
2. **先定位再读**:
|
|
15
|
+
2. **先定位再读**:20 个文件按主题分篇,整篇读既慢又挤上下文。先 `grep` 关键词拿到命中行,
|
|
16
16
|
再用 `read` 带 `offset`/`limit` 只展开需要的那几段。
|
|
17
17
|
3. **一次一到两篇**:按下面的路由表挑最贴近的;跨主题时再补第二篇。
|
|
18
18
|
4. **给出处**:回答末尾写清来源(文件名 + 小节标题),用户能直接翻回去核对。
|
|
@@ -26,6 +26,8 @@ description: Use when the user asks about dsh-tui itself (usage, shortcuts, conf
|
|
|
26
26
|
| 日常使用、键位、斜杠命令、会话与工作流、设置 | `user-guide.md` |
|
|
27
27
|
| 输入框、鼠标、选中复制、粘贴、图片、问卷与审批 | `interaction.md` |
|
|
28
28
|
| 配置覆盖层、TUI 开关、agent preset、模型路由、MCP | `configuration.md` |
|
|
29
|
+
| Claude 后端:启用、登录、与 DSH 的差异、已知限制 | `claude-backend.md` |
|
|
30
|
+
| Codex 后端:安装、登录、渠道、Plan、会话与原生能力 | `codex-backend.md` |
|
|
29
31
|
| 主题、配色、自动检测、自定义主题 | `themes.md` |
|
|
30
32
|
| 从 Claude Code / Codex / OMP / zcode / Grok 迁移会话 | `migrate.md` |
|
|
31
33
|
| VS Code 集成、扩展、IDE 选区 | `vscode.md` |
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Claude backend (experimental)
|
|
2
|
+
|
|
3
|
+
[Documentation index](README.md) · [中文](claude-backend.md)
|
|
4
|
+
|
|
5
|
+
dsh-TUI can run its session on the Claude Agent backend instead of the DeepSeek
|
|
6
|
+
Harness agent: the same interface, driving the Claude Code CLI through the Claude
|
|
7
|
+
Agent SDK. Your project's `CLAUDE.md`, settings, hooks, MCP servers and plugins
|
|
8
|
+
load the way the CLI loads them. The backend is still experimental; the
|
|
9
|
+
implementation is described in [Agent backends](agent-backend-design.md)
|
|
10
|
+
(Chinese).
|
|
11
|
+
|
|
12
|
+
## Enabling it
|
|
13
|
+
|
|
14
|
+
You need:
|
|
15
|
+
|
|
16
|
+
- The Claude Agent SDK. It is an optional dependency and is not installed by
|
|
17
|
+
default. The easiest install: open the kernel picker (the launchpad "Kernel"
|
|
18
|
+
entry or `/kernel`) and press Enter on the dim Claude row — the wizard
|
|
19
|
+
locates the profile directory and installs the pinned SDK via pnpm; the row
|
|
20
|
+
lights up when it finishes (standalone builds and profile-less launches get
|
|
21
|
+
manual instructions). The manual equivalent, run once in the dsh-tui profile
|
|
22
|
+
directory (`~/.dsh/profiles/dsh-tui`, or `$DSH_HOME/profiles/dsh-tui` when
|
|
23
|
+
`DSH_HOME` is set):
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
cd ~/.dsh/profiles/dsh-tui && pnpm add @anthropic-ai/claude-agent-sdk@0.3.287
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- A Claude credential; see "Signing in" below.
|
|
30
|
+
- The `claude` command is optional: a working `claude` on `PATH` is used (same
|
|
31
|
+
version and session store as the CLI you already use), otherwise the SDK's
|
|
32
|
+
bundled binary.
|
|
33
|
+
|
|
34
|
+
To pick the backend, use any of:
|
|
35
|
+
|
|
36
|
+
- The launchpad's Kernel entry, the kernel block in its bottom-right corner, or
|
|
37
|
+
`/kernel` inside a session, which open the kernel picker. Picking the other
|
|
38
|
+
kernel remembers the choice (`~/.dsh-tui/kernel.json`) and restarts dsh-TUI
|
|
39
|
+
into a new session on it; the old session stays in `/resume`. A running turn
|
|
40
|
+
blocks the switch. Without the SDK or a credential the picker marks Claude as
|
|
41
|
+
*Not installed* or *Not signed in*.
|
|
42
|
+
- `dsh-tui --backend claude` (this launch only).
|
|
43
|
+
- `backend: claude` in the dsh-tui config row.
|
|
44
|
+
|
|
45
|
+
An explicit `--backend` or config value wins over the picker's remembered choice.
|
|
46
|
+
|
|
47
|
+
## Signing in
|
|
48
|
+
|
|
49
|
+
Credentials are used in this order; `/login` shows which one the session runs on:
|
|
50
|
+
|
|
51
|
+
1. The active channel in `/channel` (see
|
|
52
|
+
[Channel profiles](interaction.en.md#channel-profiles-channel-claude-only)).
|
|
53
|
+
2. Your dsh-auth `anthropic` sign-in, the same OAuth `/provider` offers. `/login`
|
|
54
|
+
in a Claude session opens it directly and reconnects the session afterwards
|
|
55
|
+
(after the running turn, if there is one). While it is used,
|
|
56
|
+
`ANTHROPIC_API_KEY` / `ANTHROPIC_AUTH_TOKEN` from your environment are kept
|
|
57
|
+
away from the CLI so an old key cannot override the sign-in you just made.
|
|
58
|
+
3. `ANTHROPIC_API_KEY` / `ANTHROPIC_AUTH_TOKEN` or cloud-provider routing
|
|
59
|
+
variables in your environment.
|
|
60
|
+
4. Your existing `claude login`.
|
|
61
|
+
|
|
62
|
+
The subscription sign-in is used only for Anthropic's own API. When
|
|
63
|
+
`ANTHROPIC_BASE_URL` (in your environment or a Claude settings `env`) points
|
|
64
|
+
anywhere other than `https://api.anthropic.com`, or a Unix socket, a cloud
|
|
65
|
+
provider or gateway route, or an `apiKeyHelper` is configured, dsh-TUI does not
|
|
66
|
+
use the subscription token, passes your environment through untouched, and
|
|
67
|
+
`/login` names the route instead. A token about to expire is refreshed before
|
|
68
|
+
the CLI starts; if the CLI rejects it mid-session, dsh-TUI refreshes it and
|
|
69
|
+
reconnects the same session once, then asks you to `/login`. Token material is
|
|
70
|
+
never logged.
|
|
71
|
+
|
|
72
|
+
## Compared with the DSH backend
|
|
73
|
+
|
|
74
|
+
Works the same as on DSH: streaming replies, thinking (a token count only when the
|
|
75
|
+
model sends no thinking text), tool cards, `Ctrl+C` cancel, queued messages and
|
|
76
|
+
holding the queue on `Esc`, `/new`, `/status`, `/export`, `!cmd` / `!!cmd`, the IDE selection,
|
|
77
|
+
the git branch in the status line, `/clear` (clears the view only; Claude keeps
|
|
78
|
+
its context).
|
|
79
|
+
|
|
80
|
+
Works, served by Claude:
|
|
81
|
+
|
|
82
|
+
| Feature | Notes |
|
|
83
|
+
| --- | --- |
|
|
84
|
+
| `/model` | Claude's own model list, no provider prefix (`/model sonnet`); the choice is remembered for later sessions |
|
|
85
|
+
| `/effort` | The levels the current model declares; none for a model without effort support |
|
|
86
|
+
| `/permission`, `Shift+Tab` | Claude's permission modes, see below |
|
|
87
|
+
| `/compact`, `/context` | Claude's compaction and context report |
|
|
88
|
+
| `/mcp` | Server status; `/mcp reconnect <server>` and `/mcp toggle <server> on\|off`, server names complete |
|
|
89
|
+
| `/cost`, status-line cost | The USD cost Claude reports; hover the cost field for subscription usage (5h / 7d) |
|
|
90
|
+
| `/doctor` | CLI path and version, SDK version, start permission mode, credential and account |
|
|
91
|
+
| `/rename`, `/color` | The title goes into Claude's session list; the accent is stored per session by dsh-TUI |
|
|
92
|
+
| `/btw`, `/recap` | One question over a throwaway copy of the conversation (no tools, one turn, nothing written to the transcript), one model call each; no automatic recap when a session opens |
|
|
93
|
+
| Claude's own slash commands | Listed in completion and sent to Claude as typed; where a name matches a dsh-TUI built-in, the built-in wins |
|
|
94
|
+
| `/channel` | Claude only: model names and connection of a relay channel, see [Channel profiles](interaction.en.md#channel-profiles-channel-claude-only) |
|
|
95
|
+
|
|
96
|
+
`/init` delegates to Claude's native initialization command. `/logout` only removes the Anthropic login stored by dsh-auth; it does not invoke native Claude logout. A running child may retain the managed token until a normal restart.
|
|
97
|
+
|
|
98
|
+
Not available (hidden from completion; typing one shows a notice and nothing is
|
|
99
|
+
sent to the model): `/tree`, `/agentview`, `/bg`, `/home`, `/workspace`,
|
|
100
|
+
`/preset`, `/provider`, `/balance`, `/config`, `/reload`,
|
|
101
|
+
`/setup`, `/migrate`, `/skills`, `/plugins`, `/hooks`, `/add-dir`,
|
|
102
|
+
`/goal` (Claude has no goal capability). Other commands the DSH composition
|
|
103
|
+
registers (such as `/plan`) do not appear either.
|
|
104
|
+
|
|
105
|
+
Startup still lands on the launchpad; the first-run guide and the workspace home
|
|
106
|
+
are DSH-only. A launch with a resume target goes straight into the session.
|
|
107
|
+
|
|
108
|
+
## Approvals and questions
|
|
109
|
+
|
|
110
|
+
- Tool approvals use the same panel as DSH: allow once, allow always, reject.
|
|
111
|
+
*Allow always* appears only when the CLI suggests a rule, and its label says
|
|
112
|
+
what the CLI will remember (for example auto-accepting edits for this session,
|
|
113
|
+
or a permission rule for this project); the CLI stores it, dsh-TUI writes no
|
|
114
|
+
settings file. With the focus on the reject row (`↓` / `Tab`) you can type a
|
|
115
|
+
reason to send with the rejection; *allow always* then has no digit shortcut,
|
|
116
|
+
so move to it and press `Enter`.
|
|
117
|
+
- Questions from the model (`AskUserQuestion`) use the questionnaire. A plan from
|
|
118
|
+
plan mode opens the plan review: approve with auto-accepted edits, approve with
|
|
119
|
+
per-edit approval, or keep planning with feedback.
|
|
120
|
+
- An MCP server asking for input uses the questionnaire too: one question per
|
|
121
|
+
form field, checked against the field (an invalid answer is asked again with the
|
|
122
|
+
reason), then *Send* or *Decline*. A server that needs a browser step shows its
|
|
123
|
+
link.
|
|
124
|
+
- When the model declines a request and a fallback model is configured, a
|
|
125
|
+
question offers retrying on it.
|
|
126
|
+
- `Esc` cancels any of these.
|
|
127
|
+
|
|
128
|
+
## Permission modes
|
|
129
|
+
|
|
130
|
+
`/permission` lists Claude's modes: `default` (ask each time), `acceptEdits`
|
|
131
|
+
(auto-accept edits), `plan` (read-only planning), `bypassPermissions` (skip every
|
|
132
|
+
check), plus `auto` where the model supports it. `Shift+Tab` cycles default →
|
|
133
|
+
acceptEdits → plan (→ auto) and never reaches `bypassPermissions`; that one can
|
|
134
|
+
only be picked explicitly in `/permission`.
|
|
135
|
+
|
|
136
|
+
The `/permission` pick is remembered (`~/.dsh-tui/backends/claude/prefs.json`) and
|
|
137
|
+
the next session starts in it, except `bypassPermissions`: it lasts for the current
|
|
138
|
+
session only, a new session says once that it was not carried over, and you turn it
|
|
139
|
+
on again with `/permission` when you want it. Start-mode precedence: the
|
|
140
|
+
`DSH_TUI_CLAUDE_PERMISSION_MODE` environment variable (the only way to start in
|
|
141
|
+
bypass) > the remembered pick > Claude settings > `default`. A
|
|
142
|
+
`defaultMode: bypassPermissions` in Claude settings is downgraded to `default` with
|
|
143
|
+
a notice, so a cloned repository cannot silently switch off every check.
|
|
144
|
+
|
|
145
|
+
## Sessions
|
|
146
|
+
|
|
147
|
+
- `/resume` opens the session browser on your Claude sessions, the current project
|
|
148
|
+
by default, all projects on request. Sessions dsh-TUI created are listed too
|
|
149
|
+
(Claude Code's own `/resume` picker hides them; open them there with
|
|
150
|
+
`claude --resume <id>`). `Enter` resumes (history is replayed, then the
|
|
151
|
+
conversation continues), `Ctrl+R` renames, `Ctrl+D` deletes; the open session and
|
|
152
|
+
one another dsh-TUI terminal is using cannot be deleted. Pins are kept per
|
|
153
|
+
backend.
|
|
154
|
+
- From a shell: `dsh-tui --backend claude --resume <id>`; without an id it resumes
|
|
155
|
+
the last Claude session this install used. dsh-TUI prints that command on exit.
|
|
156
|
+
A session another dsh-TUI terminal has open is refused, and a `--resume` that
|
|
157
|
+
cannot open fails instead of starting a fresh session. The short session id in
|
|
158
|
+
the status line is the id `--resume` takes.
|
|
159
|
+
- `/fork` writes a copy you can resume later; the open session is untouched.
|
|
160
|
+
- Double-`Esc` rewinds to an earlier prompt: the conversation (continuing in a
|
|
161
|
+
copy cut just before it, with the prompt back in the input), the files Claude
|
|
162
|
+
edited since (restored from Claude's file checkpoints, previewed before you
|
|
163
|
+
confirm), or both.
|
|
164
|
+
- When Claude itself resets the conversation (leaving plan mode with *clear
|
|
165
|
+
context*), the view, subagents and background jobs are cleared with a notice and
|
|
166
|
+
the session continues under the new id Claude gives it.
|
|
167
|
+
- A session resumed after a compaction shows *load earlier* at the top; each use
|
|
168
|
+
brings back one compacted stretch, read-only from Claude's own transcript file.
|
|
169
|
+
Long sessions fold old rows to bound memory, and the same entry restores them.
|
|
170
|
+
|
|
171
|
+
## Subagents and background jobs
|
|
172
|
+
|
|
173
|
+
- Each `Agent` delegation is a subagent card in the transcript; its text, tool
|
|
174
|
+
calls and token count go into the card, never into the main conversation.
|
|
175
|
+
`/agents` lists them, `Ctrl+A` opens the subagent dashboard and its detail view,
|
|
176
|
+
where a running one can be stopped.
|
|
177
|
+
- A command Claude runs in the background (`Bash` with `run_in_background`, or a
|
|
178
|
+
running command moved to the background) is a job card with the status-line job
|
|
179
|
+
marker; `/jobs` lists them, and `k` twice stops one. While on screen, the card and
|
|
180
|
+
the panel show the tail of the job's output file (read-only, the last 64 KiB, at
|
|
181
|
+
most once a second).
|
|
182
|
+
- Interrupting a turn never stops a job. A job or subagent Claude stops reporting
|
|
183
|
+
shows as *status unknown*.
|
|
184
|
+
|
|
185
|
+
## Images
|
|
186
|
+
|
|
187
|
+
Paste an image or `@`-mention an image file (PNG, JPEG, GIF, WebP) and it is sent
|
|
188
|
+
with the message. Limits: 5 MiB, 2000 px per side and 4 megapixels per image; 20
|
|
189
|
+
images and 20 MiB per message. Oversized images are scaled down when sharp is
|
|
190
|
+
available. Staged images are held in memory only. Resumed sessions show the images
|
|
191
|
+
their prompts carried.
|
|
192
|
+
|
|
193
|
+
## Known limitations
|
|
194
|
+
|
|
195
|
+
- One dsh-TUI process runs one backend; switching restarts through `/kernel`.
|
|
196
|
+
- In a Claude session the side panel's workspace panel reports it is unsupported
|
|
197
|
+
and the trajectory panel stays empty.
|
|
198
|
+
- No `/add-dir`; the refusal dialog offers only *Retry* and *Cancel*; an MCP
|
|
199
|
+
request that needs a browser step does not open the browser for you.
|
|
200
|
+
- dsh-TUI cannot tell when the same session is also open in a plain
|
|
201
|
+
`claude --resume`.
|
|
202
|
+
- Using a claude.ai subscription sign-in in a third-party client is subject to
|
|
203
|
+
Anthropic's terms; use an API key if that is a concern.
|