@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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React, { createContext, useContext, useEffect, useState } from 'react';
|
|
3
|
-
import { isThemeAvailable, isLightThemeActive, registerCustomThemeResolver, setActiveThemeName, setAutoThemeBase, getAutoThemeBase, AUTO_THEME_NAME, } from '../../theme.js';
|
|
2
|
+
import React, { createContext, useContext, useEffect, useState, useSyncExternalStore } from 'react';
|
|
3
|
+
import { getTheme, isThemeAvailable, isLightThemeActive, registerCustomThemeResolver, setActiveThemeName, setAutoThemeBase, getAutoThemeBase, AUTO_THEME_NAME, THEME_NAMES, } from '../../theme.js';
|
|
4
|
+
import { BRAND_THEMES, getActiveBrand, subscribeActiveBrand } from '../../branding.js';
|
|
4
5
|
import instances from '../../ink/instances.js';
|
|
5
6
|
import { resolveCustomTheme } from '../../customTheme.js';
|
|
6
7
|
import { useRuntimeThemeSnapshot } from '../../hooks/useRuntimeThemeSnapshot.js';
|
|
@@ -78,7 +79,7 @@ export function ThemeProvider({ children, theme, themeHost, }) {
|
|
|
78
79
|
return false;
|
|
79
80
|
if (isThemeAvailable(forced))
|
|
80
81
|
return true;
|
|
81
|
-
console.warn(`[dsh-tui] theme "${forced}" not found (built-ins:
|
|
82
|
+
console.warn(`[dsh-tui] theme "${forced}" not found (built-ins: ${AUTO_THEME_NAME}, ${THEME_NAMES.join(', ')}; static ~/.dsh-tui/themes/*.json; runtime plugin themes); falling back to auto-detection`);
|
|
82
83
|
return false;
|
|
83
84
|
});
|
|
84
85
|
// `auto` (like the unforced path) stays null until detection settles, so
|
|
@@ -197,6 +198,8 @@ export function ThemeProvider({ children, theme, themeHost, }) {
|
|
|
197
198
|
return false;
|
|
198
199
|
}
|
|
199
200
|
requestedThemeRef.current = name;
|
|
201
|
+
// /theme 手选是明确意愿:品牌默认档从此让位(见 renderedTheme 的锁定判定)。
|
|
202
|
+
brandThemeLockRef.current = true;
|
|
200
203
|
setActive(name);
|
|
201
204
|
if (name === AUTO_THEME_NAME)
|
|
202
205
|
redetectAutoBase();
|
|
@@ -221,11 +224,45 @@ export function ThemeProvider({ children, theme, themeHost, }) {
|
|
|
221
224
|
setActive(requested);
|
|
222
225
|
}
|
|
223
226
|
}, [active, redetectAutoBase, runtimeThemeSnapshot]);
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
227
|
+
// ── 品牌默认档(branding.ts)───────────────────────────────────────────
|
|
228
|
+
// Claude 后端(claude 品牌)时把默认主题档替换成 Claude 双主题(claude-dark
|
|
229
|
+
// / claude-paper,按解析档深浅自动落位)——启动页
|
|
230
|
+
// 与对话页跟着后端整体换色。锁定判定(用户表达过明确意愿时不覆盖):
|
|
231
|
+
// - 显式 `theme` prop / `DSH_TUI_THEME`:锁;
|
|
232
|
+
// - 会话内 `/theme` 手选:锁(setTheme 置位);
|
|
233
|
+
// - 启动时读到的 `~/.dsh-tui/theme.json` 持久化偏好:**不锁**——那是切换
|
|
234
|
+
// 品档联动之前的历史选择,压住「选了后端整个主题就变」的联动就再也
|
|
235
|
+
// 切不过去;想固定外观走 `/theme` 重选或设置项 `dsh-tui.brand`。
|
|
236
|
+
// 品牌经 useSyncExternalStore 订阅:`/settings` 切品牌 → Chat 调
|
|
237
|
+
// setActiveBrand → 这里即时换档,不重挂组件。
|
|
238
|
+
const brand = useSyncExternalStore(subscribeActiveBrand, getActiveBrand);
|
|
239
|
+
const brandThemeLockRef = React.useRef(theme !== undefined || envThemeOverride() !== undefined);
|
|
240
|
+
const renderedTheme = (() => {
|
|
241
|
+
const resolved = active === null
|
|
242
|
+
? 'dark'
|
|
243
|
+
: isThemeAvailable(active)
|
|
244
|
+
? active
|
|
245
|
+
: AUTO_THEME_NAME;
|
|
246
|
+
const brandThemes = BRAND_THEMES[brand];
|
|
247
|
+
if (brandThemes === undefined || brandThemeLockRef.current)
|
|
248
|
+
return resolved;
|
|
249
|
+
// 品牌双主题按解析档深浅落位:浅色终端(或历史 light 偏好)→ 浅色版,
|
|
250
|
+
// 深色 → 深色版——同一套品牌强调色,切明暗不丢品牌识别(claude 陶土橙、
|
|
251
|
+
// codex 薰衣草紫)。
|
|
252
|
+
const lightness = resolved === 'light' || (resolved === AUTO_THEME_NAME && autoBase === 'light') ? 'light' : 'dark';
|
|
253
|
+
return brandThemes[lightness];
|
|
254
|
+
})();
|
|
255
|
+
// 模块级镜像必须**在渲染期**写入(不是 effect):markdown 把主题色烤进
|
|
256
|
+
// ANSI 字符串(链接 accent、行内代码 permission…),而它正是被这次 context
|
|
257
|
+
// 更新触发重渲染的——放进 effect 会让它读到上一帧的主题名,于是换主题后
|
|
258
|
+
// 链接颜色要等重启才更新。镜像只服务非 React 渲染(markdown/hyperlink)。
|
|
259
|
+
// 当前色板的**身份**:运行时主题在同一批里释放并重注册时名字不变,但 resolver
|
|
260
|
+
// 已经换了一个新色板对象(themes.ts 每次注册都新建并冻结)。context value 必须
|
|
261
|
+
// 跟着它换,否则消费者(含按色板身份 memo 的 Markdown)完全不重渲染,屏幕停在
|
|
262
|
+
// 旧色——切走再切回才刷新。放进 value 依赖即可:内置/静态主题的身份稳定,
|
|
263
|
+
// 不会因此多渲染。
|
|
264
|
+
const renderedPalette = getTheme(renderedTheme);
|
|
265
|
+
setActiveThemeName(renderedTheme);
|
|
229
266
|
const value = React.useMemo(() => ({
|
|
230
267
|
theme: renderedTheme,
|
|
231
268
|
autoBase,
|
|
@@ -236,11 +273,7 @@ export function ThemeProvider({ children, theme, themeHost, }) {
|
|
|
236
273
|
// 的终端会报一个跟画面对不上的颜色,那时宁可用纯白(浅色主题)或
|
|
237
274
|
// 纯黑(深色主题)——深色终端上糊一块白底最突兀。
|
|
238
275
|
terminalBackground: hexRgb(imageBackingColor(detectedBackground, renderedTheme)),
|
|
239
|
-
}), [renderedTheme, autoBase, setTheme, detectedBackground]);
|
|
240
|
-
useEffect(() => {
|
|
241
|
-
if (active !== null)
|
|
242
|
-
setActiveThemeName(renderedTheme);
|
|
243
|
-
}, [active, renderedTheme]);
|
|
276
|
+
}), [renderedTheme, renderedPalette, autoBase, setTheme, detectedBackground]);
|
|
244
277
|
// Backdrop shade target: the detected terminal background when OSC 11
|
|
245
278
|
// answered, else black/white by the rendered theme's lightness. `autoBase`
|
|
246
279
|
// is a dependency because `auto` resolves through it.
|
|
@@ -50,6 +50,8 @@ export type Props = {
|
|
|
50
50
|
* parking the native cursor on an inline caret cell).
|
|
51
51
|
*/
|
|
52
52
|
readonly ref?: React.Ref<DOMElement>;
|
|
53
|
+
/** Typed paint metadata; see ink Text's decoration prop. */
|
|
54
|
+
readonly decoration?: Styles['decoration'];
|
|
53
55
|
readonly children?: React.ReactNode;
|
|
54
56
|
};
|
|
55
57
|
/**
|
|
@@ -57,5 +59,5 @@ export type Props = {
|
|
|
57
59
|
* in the dsh-TUI visual language). This lets components use
|
|
58
60
|
* `color="subtle"`-style theme keys consistently.
|
|
59
61
|
*/
|
|
60
|
-
export default function ThemedText({ color, backgroundColor, dimColor, bold, italic, underline, strikethrough, inverse, wrap, ref, children, }: Props): React.ReactNode;
|
|
62
|
+
export default function ThemedText({ color, backgroundColor, dimColor, bold, italic, underline, strikethrough, inverse, wrap, ref, decoration, children, }: Props): React.ReactNode;
|
|
61
63
|
//# sourceMappingURL=ThemedText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemedText.d.ts","sourceRoot":"","sources":["../../../../src/components/design-system/ThemedText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAGrD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wCAEtB,CAAA;AAqBZ,MAAM,MAAM,KAAK,GAAG;IAClB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAA;IAEpC;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAA;IAE9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAE3B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAE5B;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAElC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAEpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACpC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,eAAe,EACf,QAAgB,EAChB,IAAY,EACZ,MAAc,EACd,SAAiB,EACjB,aAAqB,EACrB,OAAe,EACf,IAAa,EACb,GAAG,EACH,QAAQ,GACT,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"ThemedText.d.ts","sourceRoot":"","sources":["../../../../src/components/design-system/ThemedText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAGrD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wCAEtB,CAAA;AAqBZ,MAAM,MAAM,KAAK,GAAG;IAClB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAA;IAEpC;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,GAAG,KAAK,CAAA;IAE9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAE3B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAE5B;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAElC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAEpC,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;IAE1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACpC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,eAAe,EACf,QAAgB,EAChB,IAAY,EACZ,MAAc,EACd,SAAiB,EACjB,aAAqB,EACrB,OAAe,EACf,IAAa,EACb,GAAG,EACH,UAAU,EACV,QAAQ,GACT,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA8BzB"}
|
|
@@ -27,7 +27,7 @@ function resolveColor(color, theme) {
|
|
|
27
27
|
* in the dsh-TUI visual language). This lets components use
|
|
28
28
|
* `color="subtle"`-style theme keys consistently.
|
|
29
29
|
*/
|
|
30
|
-
export default function ThemedText({ color, backgroundColor, dimColor = false, bold = false, italic = false, underline = false, strikethrough = false, inverse = false, wrap = 'wrap', ref, children, }) {
|
|
30
|
+
export default function ThemedText({ color, backgroundColor, dimColor = false, bold = false, italic = false, underline = false, strikethrough = false, inverse = false, wrap = 'wrap', ref, decoration, children, }) {
|
|
31
31
|
const [themeName] = useTheme();
|
|
32
32
|
const theme = getTheme(themeName);
|
|
33
33
|
const hoverColor = React.useContext(TextHoverColorContext);
|
|
@@ -38,5 +38,5 @@ export default function ThemedText({ color, backgroundColor, dimColor = false, b
|
|
|
38
38
|
? theme.inactive
|
|
39
39
|
: resolveColor(color, theme);
|
|
40
40
|
const resolvedBackgroundColor = resolveColor(backgroundColor, theme);
|
|
41
|
-
return (_jsx(Text, { ref: ref, color: resolvedColor, backgroundColor: resolvedBackgroundColor, bold: bold, italic: italic, underline: underline, strikethrough: strikethrough, inverse: inverse, wrap: wrap, children: children }));
|
|
41
|
+
return (_jsx(Text, { ref: ref, color: resolvedColor, backgroundColor: resolvedBackgroundColor, bold: bold, italic: italic, underline: underline, strikethrough: strikethrough, inverse: inverse, wrap: wrap, decoration: decoration, children: children }));
|
|
42
42
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ToolFileDiff } from '../dsh-adapter/channel.js';
|
|
2
|
+
/** The `patch` member of the union. */
|
|
3
|
+
export type ToolPatchDiff = Extract<ToolFileDiff, {
|
|
4
|
+
readonly patch: string;
|
|
5
|
+
}>;
|
|
6
|
+
/** Whether a file diff carries a unified patch (vs old/new texts). */
|
|
7
|
+
export declare const isPatchDiff: (diff: ToolFileDiff) => diff is ToolPatchDiff;
|
|
8
|
+
/** One line of a hunk with its real file line numbers. */
|
|
9
|
+
export interface PatchLine {
|
|
10
|
+
readonly kind: 'context' | 'del' | 'add';
|
|
11
|
+
readonly text: string;
|
|
12
|
+
/** Line number in the old file (context and removed lines). */
|
|
13
|
+
readonly oldNo?: number;
|
|
14
|
+
/** Line number in the new file (context and added lines). */
|
|
15
|
+
readonly newNo?: number;
|
|
16
|
+
}
|
|
17
|
+
/** One parsed hunk. */
|
|
18
|
+
export interface PatchHunk {
|
|
19
|
+
readonly oldStart: number;
|
|
20
|
+
readonly newStart: number;
|
|
21
|
+
readonly lines: readonly PatchLine[];
|
|
22
|
+
}
|
|
23
|
+
/** One file's parsed patch. */
|
|
24
|
+
export interface ParsedPatch {
|
|
25
|
+
readonly hunks: readonly PatchHunk[];
|
|
26
|
+
/** Added / removed line counts over every hunk (the `(+N -M)` stat). */
|
|
27
|
+
readonly added: number;
|
|
28
|
+
readonly removed: number;
|
|
29
|
+
/** The widest line number any hunk shows (gutter width). */
|
|
30
|
+
readonly maxLineNo: number;
|
|
31
|
+
/** No hunk could be read: the patch's own lines, shown as-is. */
|
|
32
|
+
readonly raw?: readonly string[];
|
|
33
|
+
}
|
|
34
|
+
/** Parse one file's patch (cached by its text, path and change kind). */
|
|
35
|
+
export declare function parseFilePatch(diff: ToolPatchDiff): ParsedPatch;
|
|
36
|
+
/**
|
|
37
|
+
* The header a patch file renders above its hunks. In a multi-file card
|
|
38
|
+
* every file gets a path row (`path` / `path → moved`, clickable, opening
|
|
39
|
+
* `target`) followed by a dim `suffix` (` · new file (+3 -0)`). A lone file
|
|
40
|
+
* already has its path in the card title, so it gets only the dim stat
|
|
41
|
+
* line (`(+1 -1)`, `new file (+3 -0)`, `→ moved.ts (+1 -1)`).
|
|
42
|
+
*/
|
|
43
|
+
export type PatchHeader = {
|
|
44
|
+
readonly kind: 'path';
|
|
45
|
+
readonly path: string;
|
|
46
|
+
readonly target: string;
|
|
47
|
+
readonly suffix: string;
|
|
48
|
+
} | {
|
|
49
|
+
readonly kind: 'stat';
|
|
50
|
+
readonly text: string;
|
|
51
|
+
};
|
|
52
|
+
export declare function patchHeader(diff: ToolPatchDiff, parsed: ParsedPatch, multiFile: boolean): PatchHeader;
|
|
53
|
+
/** The plain text of a header (split view separators, tests). */
|
|
54
|
+
export declare const patchHeaderText: (header: PatchHeader) => string;
|
|
55
|
+
//# sourceMappingURL=diffPatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diffPatch.d.ts","sourceRoot":"","sources":["../../../src/components/diffPatch.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG7D,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE7E,sEAAsE;AACtE,eAAO,MAAM,WAAW,GAAI,MAAM,YAAY,KAAG,IAAI,IAAI,aAAgC,CAAA;AAEzF,0DAA0D;AAC1D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,uBAAuB;AACvB,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CACrC;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IACpC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAyED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAqB/D;AAUD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,GAAG,WAAW,CAarG;AAED,iEAAiE;AACjE,eAAO,MAAM,eAAe,GAAI,QAAQ,WAAW,KAAG,MAAiF,CAAA"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `patch` branch of a {@link ToolFileDiff} (N5): one file's unified diff
|
|
3
|
+
* hunks, as a backend that only has the patch reports them (Codex
|
|
4
|
+
* `fileChange`: `@@ -1,3 +1,3 @@\n one\n-two\n+TWO\n three\n`, no file
|
|
5
|
+
* headers). Both diff renderers — the unified card body and the two-pane
|
|
6
|
+
* SplitDiffView — read the parsed form from here, so they agree on line
|
|
7
|
+
* numbers and on the `(+N -M)` stat.
|
|
8
|
+
*
|
|
9
|
+
* Parsing uses jsdiff's `parsePatch` (file headers are synthesized when the
|
|
10
|
+
* text has none). A hunk whose line counts disagree with its header makes
|
|
11
|
+
* `parsePatch` throw; such a patch, and a headerless one jsdiff cannot
|
|
12
|
+
* place, falls back to a lenient line walk under the same rules. An `add` /
|
|
13
|
+
* `delete` change whose text holds no hunk at all is the file's raw
|
|
14
|
+
* content (Codex reports a new file that way) and becomes one all-added /
|
|
15
|
+
* all-removed hunk. Anything still without hunks keeps its raw lines
|
|
16
|
+
* (`raw`), so nothing the backend sent is silently dropped.
|
|
17
|
+
*
|
|
18
|
+
* Results are cached by patch text (bounded): a running card re-renders
|
|
19
|
+
* every second, and the same patch must not be re-parsed each time.
|
|
20
|
+
*/
|
|
21
|
+
import * as JsDiff from 'diff';
|
|
22
|
+
import { t } from '../i18n.js';
|
|
23
|
+
/** Whether a file diff carries a unified patch (vs old/new texts). */
|
|
24
|
+
export const isPatchDiff = (diff) => 'patch' in diff;
|
|
25
|
+
const HUNK_HEADER = /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/u;
|
|
26
|
+
/** Number the lines of one hunk from its starts. */
|
|
27
|
+
function numberHunk(oldStart, newStart, rawLines) {
|
|
28
|
+
const lines = [];
|
|
29
|
+
let oldNo = oldStart;
|
|
30
|
+
let newNo = newStart;
|
|
31
|
+
for (const raw of rawLines) {
|
|
32
|
+
const marker = raw[0];
|
|
33
|
+
const text = raw.slice(1);
|
|
34
|
+
if (marker === ' ')
|
|
35
|
+
lines.push({ kind: 'context', text, oldNo: oldNo++, newNo: newNo++ });
|
|
36
|
+
else if (marker === '-')
|
|
37
|
+
lines.push({ kind: 'del', text, oldNo: oldNo++ });
|
|
38
|
+
else if (marker === '+')
|
|
39
|
+
lines.push({ kind: 'add', text, newNo: newNo++ });
|
|
40
|
+
// `` and stray lines carry no content.
|
|
41
|
+
}
|
|
42
|
+
return { oldStart, newStart, lines };
|
|
43
|
+
}
|
|
44
|
+
/** A start line as a header states it: `-0,0` (nothing on that side) still
|
|
45
|
+
* numbers the first line it would hold as 1. */
|
|
46
|
+
const startOf = (start, count) => (count === 0 && start === 0 ? 1 : start);
|
|
47
|
+
/** The lenient walk: every `@@` header opens a hunk; ` `/`-`/`+` lines
|
|
48
|
+
* belong to it until the next header, whatever its counts claim. */
|
|
49
|
+
function lenientHunks(text) {
|
|
50
|
+
const hunks = [];
|
|
51
|
+
let current;
|
|
52
|
+
const close = () => {
|
|
53
|
+
if (current !== undefined)
|
|
54
|
+
hunks.push(numberHunk(current.oldStart, current.newStart, current.lines));
|
|
55
|
+
};
|
|
56
|
+
for (const line of text.split('\n')) {
|
|
57
|
+
const header = HUNK_HEADER.exec(line);
|
|
58
|
+
if (header !== null) {
|
|
59
|
+
close();
|
|
60
|
+
current = {
|
|
61
|
+
oldStart: startOf(Number(header[1]), header[2] === undefined ? undefined : Number(header[2])),
|
|
62
|
+
newStart: startOf(Number(header[3]), header[4] === undefined ? undefined : Number(header[4])),
|
|
63
|
+
lines: [],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else if (current !== undefined && (line.startsWith(' ') || line.startsWith('-') || line.startsWith('+') || line.startsWith('\\'))) {
|
|
67
|
+
current.lines.push(line);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
close();
|
|
71
|
+
return hunks;
|
|
72
|
+
}
|
|
73
|
+
/** jsdiff's reading of the patch; undefined when it refuses it. */
|
|
74
|
+
function jsdiffHunks(text, path) {
|
|
75
|
+
// Synthesize the file headers jsdiff expects before the first hunk.
|
|
76
|
+
const first = text.search(/^@@ /mu);
|
|
77
|
+
const preamble = first === -1 ? text : text.slice(0, first);
|
|
78
|
+
const withHeaders = /^--- /mu.test(preamble) ? text : `--- a/${path}\n+++ b/${path}\n${text}`;
|
|
79
|
+
try {
|
|
80
|
+
const files = JsDiff.parsePatch(withHeaders);
|
|
81
|
+
return files.flatMap(file => file.hunks.map(hunk => numberHunk(hunk.oldStart, hunk.newStart, hunk.lines)));
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** A raw-content add/delete as one hunk of added/removed lines. */
|
|
88
|
+
function contentHunk(text, kind) {
|
|
89
|
+
const body = text.endsWith('\n') ? text.slice(0, -1) : text;
|
|
90
|
+
const marker = kind === 'add' ? '+' : '-';
|
|
91
|
+
return numberHunk(1, 1, body === '' ? [] : body.split('\n').map(line => `${marker}${line}`));
|
|
92
|
+
}
|
|
93
|
+
const CACHE_LIMIT = 64;
|
|
94
|
+
const cache = new Map();
|
|
95
|
+
/** Parse one file's patch (cached by its text, path and change kind). */
|
|
96
|
+
export function parseFilePatch(diff) {
|
|
97
|
+
const key = `${diff.change ?? ''}\u0000${diff.path}\u0000${diff.patch}`;
|
|
98
|
+
const known = cache.get(key);
|
|
99
|
+
if (known !== undefined)
|
|
100
|
+
return known;
|
|
101
|
+
let hunks = /^@@ -\d/mu.test(diff.patch) ? jsdiffHunks(diff.patch, diff.path) ?? lenientHunks(diff.patch) : [];
|
|
102
|
+
if (hunks.length === 0 && (diff.change === 'add' || diff.change === 'delete') && diff.patch !== '')
|
|
103
|
+
hunks = [contentHunk(diff.patch, diff.change)];
|
|
104
|
+
let added = 0;
|
|
105
|
+
let removed = 0;
|
|
106
|
+
let maxLineNo = 0;
|
|
107
|
+
for (const hunk of hunks) {
|
|
108
|
+
for (const line of hunk.lines) {
|
|
109
|
+
if (line.kind === 'add')
|
|
110
|
+
added += 1;
|
|
111
|
+
else if (line.kind === 'del')
|
|
112
|
+
removed += 1;
|
|
113
|
+
maxLineNo = Math.max(maxLineNo, line.oldNo ?? 0, line.newNo ?? 0);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const raw = hunks.length === 0 && diff.patch.trim() !== '' ? diff.patch.replace(/\n$/u, '').split('\n') : undefined;
|
|
117
|
+
const parsed = { hunks, added, removed, maxLineNo, ...(raw === undefined ? {} : { raw }) };
|
|
118
|
+
if (cache.size >= CACHE_LIMIT)
|
|
119
|
+
cache.delete(cache.keys().next().value);
|
|
120
|
+
cache.set(key, parsed);
|
|
121
|
+
return parsed;
|
|
122
|
+
}
|
|
123
|
+
/** A moved file's destination (absent when it did not move). */
|
|
124
|
+
const movedTo = (diff) => diff.movePath === undefined || diff.movePath === diff.path ? undefined : diff.movePath;
|
|
125
|
+
/** The change-kind word of an added / deleted file. */
|
|
126
|
+
const changeLabel = (diff) => diff.change === 'add' ? t('diff-patch-added') : diff.change === 'delete' ? t('diff-patch-deleted') : undefined;
|
|
127
|
+
export function patchHeader(diff, parsed, multiFile) {
|
|
128
|
+
const moved = movedTo(diff);
|
|
129
|
+
const label = changeLabel(diff);
|
|
130
|
+
const stat = `(+${parsed.added} -${parsed.removed})`;
|
|
131
|
+
if (multiFile) {
|
|
132
|
+
return {
|
|
133
|
+
kind: 'path',
|
|
134
|
+
path: moved === undefined ? diff.path : `${diff.path} → ${moved}`,
|
|
135
|
+
target: moved ?? diff.path,
|
|
136
|
+
suffix: `${label === undefined ? '' : ` · ${label}`} ${stat}`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return { kind: 'stat', text: [moved === undefined ? undefined : `→ ${moved}`, label, stat].filter((part) => part !== undefined).join(' ') };
|
|
140
|
+
}
|
|
141
|
+
/** The plain text of a header (split view separators, tests). */
|
|
142
|
+
export const patchHeaderText = (header) => header.kind === 'path' ? `${header.path}${header.suffix}` : header.text;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** Kernel rows shared by the launchpad and picker. Detection is supplied by the host. */
|
|
2
|
+
import { type KernelBackendId } from '../kernelPrefs.js';
|
|
3
|
+
export { kernelDisplayName } from '../kernelPrefs.js';
|
|
4
|
+
export type KernelUnavailableReason = 'kernel-unavailable-not-installed' | 'kernel-unavailable-auth-missing' | 'kernel-probing'
|
|
5
|
+
/** The installable variant of not-installed: the row stays dim but Enter
|
|
6
|
+
* opens the SDK install wizard instead of a dead-end toast. */
|
|
7
|
+
| 'kernel-not-installed-installable'
|
|
8
|
+
/** Installed, but older than the backend supports (its hint says how to upgrade). */
|
|
9
|
+
| 'kernel-unavailable-too-old';
|
|
10
|
+
/** Product-qualified version; unknown kernels keep the raw version. */
|
|
11
|
+
export declare function kernelVersionLabel(id: string, version?: string): string | undefined;
|
|
12
|
+
export interface KernelOption {
|
|
13
|
+
readonly id: KernelBackendId;
|
|
14
|
+
readonly labelKey: string;
|
|
15
|
+
readonly current: boolean;
|
|
16
|
+
readonly selectable: boolean;
|
|
17
|
+
readonly reasonKey?: KernelUnavailableReason;
|
|
18
|
+
/** A selectable row's caveat (signed out, but `/login` works in-session). */
|
|
19
|
+
readonly noteKey?: 'kernel-login-in-session';
|
|
20
|
+
/** An unavailable row's own guidance from detection (install / upgrade). */
|
|
21
|
+
readonly hint?: string;
|
|
22
|
+
readonly version?: string;
|
|
23
|
+
/** Not installed, but the host can install it (Enter opens the wizard). */
|
|
24
|
+
readonly installable?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface KernelStatus {
|
|
27
|
+
readonly installed: boolean;
|
|
28
|
+
readonly auth?: 'ok' | 'missing' | 'unknown';
|
|
29
|
+
readonly version?: string;
|
|
30
|
+
/** A missing credential can be supplied after start (BackendDetection). */
|
|
31
|
+
readonly loginInSession?: true;
|
|
32
|
+
/** Detection's install / upgrade / sign-in guidance. */
|
|
33
|
+
readonly hint?: string;
|
|
34
|
+
}
|
|
35
|
+
/** DSH is always available. Optional kernels stay disabled until detection completes. */
|
|
36
|
+
export declare function buildKernelCatalog(input: {
|
|
37
|
+
readonly current: string;
|
|
38
|
+
readonly dshVersion?: string;
|
|
39
|
+
readonly statuses?: Readonly<Record<string, KernelStatus>>;
|
|
40
|
+
/** The host provides an install path (the wizard callbacks): a dim
|
|
41
|
+
* not-installed row of a kernel the wizard can install
|
|
42
|
+
* (`KERNEL_INFO[id].installable`) then says "press Enter to install"
|
|
43
|
+
* instead of a dead-end reason. */
|
|
44
|
+
readonly canInstallSdk?: boolean;
|
|
45
|
+
}): readonly KernelOption[];
|
|
46
|
+
/** Join the available version and unavailability reason without an empty subtitle. */
|
|
47
|
+
export declare function kernelSubtitle(option: KernelOption, reason: (key: KernelUnavailableReason | 'kernel-login-in-session') => string): string | undefined;
|
|
48
|
+
//# sourceMappingURL=kernelCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernelCatalog.d.ts","sourceRoot":"","sources":["../../../src/components/kernelCatalog.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,MAAM,uBAAuB,GAC/B,kCAAkC,GAClC,iCAAiC,GACjC,gBAAgB;AAClB;gEACgE;GAC9D,kCAAkC;AACpC,qFAAqF;GACnF,4BAA4B,CAAA;AAEhC,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAA;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;IAC5C,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC1D;;;wCAGoC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CACjC,GAAG,SAAS,YAAY,EAAE,CA+B1B;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,CAAC,GAAG,EAAE,uBAAuB,GAAG,yBAAyB,KAAK,MAAM,GAC3E,MAAM,GAAG,SAAS,CAMpB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Kernel rows shared by the launchpad and picker. Detection is supplied by the host. */
|
|
2
|
+
import { KERNEL_IDS, KERNEL_INFO, isKernelId } from '../kernelPrefs.js';
|
|
3
|
+
export { kernelDisplayName } from '../kernelPrefs.js';
|
|
4
|
+
/** Product-qualified version; unknown kernels keep the raw version. */
|
|
5
|
+
export function kernelVersionLabel(id, version) {
|
|
6
|
+
if (version === undefined || version === '')
|
|
7
|
+
return undefined;
|
|
8
|
+
return isKernelId(id) ? KERNEL_INFO[id].product + ' v' + version : version;
|
|
9
|
+
}
|
|
10
|
+
/** DSH is always available. Optional kernels stay disabled until detection completes. */
|
|
11
|
+
export function buildKernelCatalog(input) {
|
|
12
|
+
return KERNEL_IDS.map(id => {
|
|
13
|
+
const status = input.statuses?.[id];
|
|
14
|
+
const signInLater = status?.auth === 'missing' && status.loginInSession === true;
|
|
15
|
+
const selectable = id === 'dsh' || (status !== undefined && status.installed && (status.auth !== 'missing' || signInLater));
|
|
16
|
+
// `!selectable` already implies `id !== 'dsh'` (the DSH row is always
|
|
17
|
+
// selectable), so an unselectable, undetected row is an install miss.
|
|
18
|
+
const installable = !selectable && status !== undefined && !status.installed && input.canInstallSdk === true && KERNEL_INFO[id].installable;
|
|
19
|
+
const reasonKey = status === undefined
|
|
20
|
+
? 'kernel-probing'
|
|
21
|
+
: installable
|
|
22
|
+
? 'kernel-not-installed-installable'
|
|
23
|
+
: status.installed && status.auth === 'missing'
|
|
24
|
+
? 'kernel-unavailable-auth-missing'
|
|
25
|
+
// Not installed but a version was read: the binary is too old.
|
|
26
|
+
: id === 'codex' && !status.installed && status.version !== undefined
|
|
27
|
+
? 'kernel-unavailable-too-old'
|
|
28
|
+
: 'kernel-unavailable-not-installed';
|
|
29
|
+
const version = kernelVersionLabel(id, id === 'dsh' ? input.dshVersion : status?.version);
|
|
30
|
+
return {
|
|
31
|
+
id,
|
|
32
|
+
labelKey: KERNEL_INFO[id].labelKey,
|
|
33
|
+
current: input.current === id,
|
|
34
|
+
selectable,
|
|
35
|
+
...(selectable ? {} : { reasonKey }),
|
|
36
|
+
...(selectable || status?.hint === undefined || status.hint === '' ? {} : { hint: status.hint }),
|
|
37
|
+
...(selectable && signInLater ? { noteKey: 'kernel-login-in-session' } : {}),
|
|
38
|
+
...(installable ? { installable } : {}),
|
|
39
|
+
...(version === undefined ? {} : { version }),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** Join the available version and unavailability reason without an empty subtitle. */
|
|
44
|
+
export function kernelSubtitle(option, reason) {
|
|
45
|
+
const parts = [];
|
|
46
|
+
if (option.version !== undefined && option.version !== '')
|
|
47
|
+
parts.push(option.version);
|
|
48
|
+
if (option.reasonKey !== undefined)
|
|
49
|
+
parts.push(reason(option.reasonKey));
|
|
50
|
+
if (option.noteKey !== undefined)
|
|
51
|
+
parts.push(reason(option.noteKey));
|
|
52
|
+
return parts.length === 0 ? undefined : parts.join(' \u00b7 ');
|
|
53
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 落地页的一个动作入口(第四版:状态驱动的"下一步建议")。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* jobs / update / star / help
|
|
6
|
-
*
|
|
4
|
+
* 动作走命令名(第七版表 + 内核入口:continue / home / settings / backend
|
|
5
|
+
* / jobs / update / star / help)——除 backend 外全部是既有命令;backend 打开
|
|
6
|
+
* 内核选择器(选择器渲染与 runCommand 处理在 Chat 侧)。它把"当前状态下最
|
|
7
|
+
* 可能的下一步"摆到台面上。知道了名字,键盘用户直接敲;鼠标用户点一下,
|
|
7
8
|
* 两条路落到同一个 `runCommand`。
|
|
8
9
|
*/
|
|
9
10
|
export interface LaunchpadAction {
|
|
@@ -38,6 +39,9 @@ export interface LaunchpadActionState {
|
|
|
38
39
|
readonly updateAvailable: boolean;
|
|
39
40
|
/** 用量到档且从未 star(条件位③)。 */
|
|
40
41
|
readonly starDue: boolean;
|
|
42
|
+
/** 当前内核(channel.backendCapabilities.backendId);缺省 = 未知,内核
|
|
43
|
+
* 入口用不带名的短标签。 */
|
|
44
|
+
readonly backendId?: string | undefined;
|
|
41
45
|
}
|
|
42
46
|
/** Continue 标题的截断上限(显示宽度,含截断省略号)。 */
|
|
43
47
|
export declare const LAUNCHPAD_CONTINUE_TITLE_MAX = 16;
|
|
@@ -49,13 +53,16 @@ export declare function truncateContinueTitle(title: string, max?: number): stri
|
|
|
49
53
|
/**
|
|
50
54
|
* 落地页第七版的核心纯函数:按状态快照决定入口行放什么。
|
|
51
55
|
*
|
|
52
|
-
*
|
|
56
|
+
* 版面(用户拍板的四格 + 内核入口;第一格条件性缺席,最多五格):
|
|
53
57
|
*
|
|
54
58
|
* 1. `继续「<标题>」` —— 有可继续会话才画(无历史不放假动作);
|
|
55
59
|
* 快捷键 Alt+R(keymap 的 `continue` 动作,见 utils/keymap.ts)。
|
|
56
60
|
* 2. `会话与工作区` —— 历史会话 + 工作区合并入口;命令用既有 `home`。
|
|
57
61
|
* 3. `设置` —— /settings。
|
|
58
|
-
* 4.
|
|
62
|
+
* 4. `内核` —— 打开内核选择器(backendId 已知时「内核 · Claude」;选择
|
|
63
|
+
* 器本体在 Chat 侧渲染)。窄屏装不下时它排在条件位**之后**被裁——
|
|
64
|
+
* fitChips 整条取舍,条件位先让位。
|
|
65
|
+
* 5. 条件位,**按优先级取第一个成立者**(同时成立时高优先级胜出,
|
|
59
66
|
* 回归按这张优先级表驱动):
|
|
60
67
|
* ① jobsRunning → `后台任务`(/jobs)
|
|
61
68
|
* ② updateAvailable → `有新版本`(/update,走既有更新路径)
|
|
@@ -65,7 +72,7 @@ export declare function truncateContinueTitle(title: string, max?: number): stri
|
|
|
65
72
|
* 第六版的 doctor 入口已删(第七版):它的输出属于转录区,天然把人带进
|
|
66
73
|
* 对话页,不适合留在"Esc 必须回启动页"的这一屏;首启/配置问题专属按钮
|
|
67
74
|
* 也随之退役——首启由引导向导(盖在落地页之上)承担,provider 配置经
|
|
68
|
-
* 向导或 /settings 可达。输出恒 ≤
|
|
75
|
+
* 向导或 /settings 可达。输出恒 ≤5 条。
|
|
69
76
|
*
|
|
70
77
|
* 纯函数:不改入参、不读环境、同样输入恒同样输出——表驱动回归钉死每个状态。
|
|
71
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadActions.d.ts","sourceRoot":"","sources":["../../../src/components/launchpadActions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launchpadActions.d.ts","sourceRoot":"","sources":["../../../src/components/launchpadActions.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,sCAAsC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,qBAAqB;IACrB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,qBAAqB;IACrB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;sBACkB;IAClB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACxC;AAED,qCAAqC;AACrC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAA+B,GAAG,MAAM,CAY/F;AA8DD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,eAAe,EAAE,CAwB/F"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { stringWidth } from '../ink/stringWidth.js';
|
|
2
|
+
import { kernelDisplayName } from './kernelCatalog.js';
|
|
2
3
|
/** Continue 标题的截断上限(显示宽度,含截断省略号)。 */
|
|
3
4
|
export const LAUNCHPAD_CONTINUE_TITLE_MAX = 16;
|
|
4
5
|
/**
|
|
@@ -43,6 +44,18 @@ const SETTINGS = {
|
|
|
43
44
|
labelKey: 'launchpad-action-settings',
|
|
44
45
|
command: 'settings',
|
|
45
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* 内核(第四格,固定入口):打开内核选择器。当前内核已知时带名
|
|
49
|
+
* (「内核 · Claude」),未知(接线前)用短标签——kernelCatalog 的
|
|
50
|
+
* displayName 是品牌名的唯一来源。
|
|
51
|
+
*/
|
|
52
|
+
const BACKEND = {
|
|
53
|
+
id: 'backend',
|
|
54
|
+
labelKey: 'launchpad-action-backend',
|
|
55
|
+
// 命令名 = /kernel(LOCAL_COMMANDS 的登记名,requirement 'any'):入口、
|
|
56
|
+
// 手敲命令与 Chat 的 case 'kernel' 三条路同一个名字,不给第二个别名。
|
|
57
|
+
command: 'kernel',
|
|
58
|
+
};
|
|
46
59
|
/** 条件位①:有后台任务在跑。 */
|
|
47
60
|
const JOBS = {
|
|
48
61
|
id: 'jobs',
|
|
@@ -70,13 +83,16 @@ const HELP = {
|
|
|
70
83
|
/**
|
|
71
84
|
* 落地页第七版的核心纯函数:按状态快照决定入口行放什么。
|
|
72
85
|
*
|
|
73
|
-
*
|
|
86
|
+
* 版面(用户拍板的四格 + 内核入口;第一格条件性缺席,最多五格):
|
|
74
87
|
*
|
|
75
88
|
* 1. `继续「<标题>」` —— 有可继续会话才画(无历史不放假动作);
|
|
76
89
|
* 快捷键 Alt+R(keymap 的 `continue` 动作,见 utils/keymap.ts)。
|
|
77
90
|
* 2. `会话与工作区` —— 历史会话 + 工作区合并入口;命令用既有 `home`。
|
|
78
91
|
* 3. `设置` —— /settings。
|
|
79
|
-
* 4.
|
|
92
|
+
* 4. `内核` —— 打开内核选择器(backendId 已知时「内核 · Claude」;选择
|
|
93
|
+
* 器本体在 Chat 侧渲染)。窄屏装不下时它排在条件位**之后**被裁——
|
|
94
|
+
* fitChips 整条取舍,条件位先让位。
|
|
95
|
+
* 5. 条件位,**按优先级取第一个成立者**(同时成立时高优先级胜出,
|
|
80
96
|
* 回归按这张优先级表驱动):
|
|
81
97
|
* ① jobsRunning → `后台任务`(/jobs)
|
|
82
98
|
* ② updateAvailable → `有新版本`(/update,走既有更新路径)
|
|
@@ -86,7 +102,7 @@ const HELP = {
|
|
|
86
102
|
* 第六版的 doctor 入口已删(第七版):它的输出属于转录区,天然把人带进
|
|
87
103
|
* 对话页,不适合留在"Esc 必须回启动页"的这一屏;首启/配置问题专属按钮
|
|
88
104
|
* 也随之退役——首启由引导向导(盖在落地页之上)承担,provider 配置经
|
|
89
|
-
* 向导或 /settings 可达。输出恒 ≤
|
|
105
|
+
* 向导或 /settings 可达。输出恒 ≤5 条。
|
|
90
106
|
*
|
|
91
107
|
* 纯函数:不改入参、不读环境、同样输入恒同样输出——表驱动回归钉死每个状态。
|
|
92
108
|
*/
|
|
@@ -98,14 +114,20 @@ export function resolveLaunchpadActions(state) {
|
|
|
98
114
|
: state.starDue
|
|
99
115
|
? STAR
|
|
100
116
|
: HELP;
|
|
117
|
+
// 内核入口:当前内核已知 → 带名(「内核 · Claude」);未知(Chat 侧接线
|
|
118
|
+
// 前)→ 短标签。显示名走 kernelCatalog,与选择器和重启通知同源。
|
|
119
|
+
const backend = state.backendId === undefined
|
|
120
|
+
? BACKEND
|
|
121
|
+
: { ...BACKEND, labelKey: 'launchpad-action-backend-named', values: { name: kernelDisplayName(state.backendId) } };
|
|
101
122
|
const title = truncateContinueTitle(state.lastSessionTitle ?? '');
|
|
102
123
|
if (title !== '') {
|
|
103
124
|
return [
|
|
104
125
|
{ ...CONTINUE, labelKey: 'launchpad-action-continue-titled', values: { title } },
|
|
105
126
|
SESSIONS_WORKSPACE,
|
|
106
127
|
SETTINGS,
|
|
128
|
+
backend,
|
|
107
129
|
conditional,
|
|
108
130
|
];
|
|
109
131
|
}
|
|
110
|
-
return [SESSIONS_WORKSPACE, SETTINGS, conditional];
|
|
132
|
+
return [SESSIONS_WORKSPACE, SETTINGS, backend, conditional];
|
|
111
133
|
}
|