@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ProviderModelEditor as ModelEditor } from '../../adapter/ports/channel-settings.js';
|
|
3
|
+
import { type ClipboardRead } from '../../utils/clipboard.js';
|
|
4
|
+
/** Draft-only capability form nested in /provider's model-selection question. */
|
|
5
|
+
export declare function ProviderModelEditor({ model, editor, onClose, onAbort, readClipboardOverride }: {
|
|
6
|
+
readonly model: string;
|
|
7
|
+
readonly editor: ModelEditor;
|
|
8
|
+
readonly onClose: () => void;
|
|
9
|
+
readonly onAbort: () => void;
|
|
10
|
+
readonly readClipboardOverride?: () => Promise<ClipboardRead>;
|
|
11
|
+
}): React.ReactNode;
|
|
12
|
+
//# sourceMappingURL=ProviderModelEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderModelEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/questions/ProviderModelEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,mBAAmB,IAAI,WAAW,EAAE,MAAM,yCAAyC,CAAA;AAOjG,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAc5E,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE;IAC9F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;CAC9D,GAAG,KAAK,CAAC,SAAS,CAyQlB"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { formatModelReasoning, parseModelCapacity, parseModelReasoning } from '../../channel/model-capabilities.js';
|
|
4
|
+
import { capCells, cleanRenderText, flattenPasteInline } from '../../channel/sanitize.js';
|
|
5
|
+
import { t } from '../../i18n.js';
|
|
6
|
+
import { useDeclaredCursor } from '../../ink/hooks/use-declared-cursor.js';
|
|
7
|
+
import { stringWidth } from '../../ink/stringWidth.js';
|
|
8
|
+
import { Box, Text, useInput, useTerminalSize } from '../../ui.js';
|
|
9
|
+
import { readClipboard } from '../../utils/clipboard.js';
|
|
10
|
+
import { actionMatches } from '../../utils/keymap.js';
|
|
11
|
+
import { isPlainReturnInput } from '../../utils/modifiers.js';
|
|
12
|
+
import { Divider } from '../design-system/Divider.js';
|
|
13
|
+
import { POINTER } from '../../terminal-utils/figures.js';
|
|
14
|
+
import { listWindow } from '../listWindow.js';
|
|
15
|
+
const FIELDS = ['contextWindow', 'maxTokens', 'reasoningEfforts', 'input', 'save'];
|
|
16
|
+
const INPUT_MODES = ['inherit', 'text', 'image'];
|
|
17
|
+
const FIELD_MAX_POINTS = 1024;
|
|
18
|
+
/** Draft-only capability form nested in /provider's model-selection question. */
|
|
19
|
+
export function ProviderModelEditor({ model, editor, onClose, onAbort, readClipboardOverride }) {
|
|
20
|
+
const initial = React.useMemo(() => editor.read(model), [editor, model]);
|
|
21
|
+
const initialText = {
|
|
22
|
+
contextWindow: String(initial.values.contextWindow ?? ''),
|
|
23
|
+
maxTokens: String(initial.values.maxTokens ?? ''),
|
|
24
|
+
reasoningEfforts: flattenPasteInline(formatModelReasoning(initial.values.reasoningEfforts)),
|
|
25
|
+
};
|
|
26
|
+
const initialMode = initial.values.input === undefined ? 'inherit'
|
|
27
|
+
: initial.values.input.includes('image') ? 'image' : 'text';
|
|
28
|
+
const [values, setValues] = React.useState(initialText);
|
|
29
|
+
const valuesRef = React.useRef(initialText);
|
|
30
|
+
const [cursors, setCursors] = React.useState({
|
|
31
|
+
contextWindow: [...initialText.contextWindow].length,
|
|
32
|
+
maxTokens: [...initialText.maxTokens].length,
|
|
33
|
+
reasoningEfforts: [...initialText.reasoningEfforts].length,
|
|
34
|
+
});
|
|
35
|
+
const cursorsRef = React.useRef(cursors);
|
|
36
|
+
const [focus, setFocus] = React.useState(0);
|
|
37
|
+
const focusRef = React.useRef(0);
|
|
38
|
+
const [inputMode, setInputMode] = React.useState(initialMode);
|
|
39
|
+
const inputModeRef = React.useRef(initialMode);
|
|
40
|
+
const [error, setError] = React.useState(null);
|
|
41
|
+
const closed = React.useRef(false);
|
|
42
|
+
const mounted = React.useRef(true);
|
|
43
|
+
const pasteBusy = React.useRef(false);
|
|
44
|
+
React.useEffect(() => () => { mounted.current = false; }, []);
|
|
45
|
+
const { columns, rows } = useTerminalSize();
|
|
46
|
+
const width = Math.max(1, columns - 6);
|
|
47
|
+
const compact = columns < 64;
|
|
48
|
+
const field = FIELDS[focus];
|
|
49
|
+
const textFocused = field !== 'input' && field !== 'save'
|
|
50
|
+
&& (field !== 'reasoningEfforts' || editor.reasoningEditable);
|
|
51
|
+
const caretRef = useDeclaredCursor({ line: 0, column: 0, active: textFocused });
|
|
52
|
+
const { start, end } = listWindow([1, 1, 1, 1, 1], focus, Math.max(2, rows - 16));
|
|
53
|
+
const placeFocus = (next) => {
|
|
54
|
+
focusRef.current = next;
|
|
55
|
+
setFocus(next);
|
|
56
|
+
setError(null);
|
|
57
|
+
};
|
|
58
|
+
const moveFocus = (delta) => {
|
|
59
|
+
let next = (focusRef.current + delta + FIELDS.length) % FIELDS.length;
|
|
60
|
+
if (FIELDS[next] === 'reasoningEfforts' && !editor.reasoningEditable) {
|
|
61
|
+
next = (next + delta + FIELDS.length) % FIELDS.length;
|
|
62
|
+
}
|
|
63
|
+
placeFocus(next);
|
|
64
|
+
};
|
|
65
|
+
const edit = (name, value, cursor) => {
|
|
66
|
+
if ([...value].length > FIELD_MAX_POINTS) {
|
|
67
|
+
setError(t('provider-model-field-too-long', { n: FIELD_MAX_POINTS }));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
valuesRef.current = { ...valuesRef.current, [name]: value };
|
|
71
|
+
cursorsRef.current = { ...cursorsRef.current, [name]: cursor };
|
|
72
|
+
setValues(valuesRef.current);
|
|
73
|
+
setCursors(cursorsRef.current);
|
|
74
|
+
setError(null);
|
|
75
|
+
};
|
|
76
|
+
const insert = (name, raw) => {
|
|
77
|
+
const text = flattenPasteInline(raw);
|
|
78
|
+
const points = [...valuesRef.current[name]];
|
|
79
|
+
const at = cursorsRef.current[name];
|
|
80
|
+
points.splice(at, 0, ...text);
|
|
81
|
+
edit(name, points.join(''), at + [...text].length);
|
|
82
|
+
};
|
|
83
|
+
const cycleInput = (delta) => {
|
|
84
|
+
const next = INPUT_MODES[(INPUT_MODES.indexOf(inputModeRef.current) + delta + INPUT_MODES.length) % INPUT_MODES.length];
|
|
85
|
+
inputModeRef.current = next;
|
|
86
|
+
setInputMode(next);
|
|
87
|
+
setError(null);
|
|
88
|
+
};
|
|
89
|
+
const save = () => {
|
|
90
|
+
if (closed.current)
|
|
91
|
+
return;
|
|
92
|
+
try {
|
|
93
|
+
editor.save(model, {
|
|
94
|
+
contextWindow: parseModelCapacity(valuesRef.current.contextWindow),
|
|
95
|
+
maxTokens: parseModelCapacity(valuesRef.current.maxTokens),
|
|
96
|
+
reasoningEfforts: valuesRef.current.reasoningEfforts === initialText.reasoningEfforts
|
|
97
|
+
? initial.values.reasoningEfforts : parseModelReasoning(valuesRef.current.reasoningEfforts),
|
|
98
|
+
input: inputModeRef.current === initialMode ? initial.values.input
|
|
99
|
+
: inputModeRef.current === 'inherit' ? undefined
|
|
100
|
+
: inputModeRef.current === 'image' ? ['text', 'image'] : ['text'],
|
|
101
|
+
});
|
|
102
|
+
closed.current = true;
|
|
103
|
+
onClose();
|
|
104
|
+
}
|
|
105
|
+
catch (cause) {
|
|
106
|
+
setError(cause instanceof Error ? cause.message : String(cause));
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
useInput((input, key, event) => {
|
|
110
|
+
// Own the whole key, including the frame that closes the editor: Enter
|
|
111
|
+
// must not also submit the surrounding model-selection question.
|
|
112
|
+
event.stopImmediatePropagation();
|
|
113
|
+
if (closed.current)
|
|
114
|
+
return;
|
|
115
|
+
if (key.escape || (key.ctrl && input === 'c')) {
|
|
116
|
+
closed.current = true;
|
|
117
|
+
if (key.ctrl)
|
|
118
|
+
onAbort();
|
|
119
|
+
else
|
|
120
|
+
onClose();
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const current = FIELDS[focusRef.current];
|
|
124
|
+
const isText = current !== 'input' && current !== 'save'
|
|
125
|
+
&& (current !== 'reasoningEfforts' || editor.reasoningEditable);
|
|
126
|
+
// Pasted newlines/tabs are data, never save or field navigation.
|
|
127
|
+
if (key.isPasted) {
|
|
128
|
+
if (isText)
|
|
129
|
+
insert(current, input);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (actionMatches('paste', input, key)) {
|
|
133
|
+
if (!isText || pasteBusy.current)
|
|
134
|
+
return;
|
|
135
|
+
const name = current;
|
|
136
|
+
pasteBusy.current = true;
|
|
137
|
+
void (readClipboardOverride ?? readClipboard)().then(content => {
|
|
138
|
+
if (!mounted.current || closed.current || FIELDS[focusRef.current] !== name)
|
|
139
|
+
return;
|
|
140
|
+
if (content?.kind === 'text')
|
|
141
|
+
insert(name, content.text);
|
|
142
|
+
else
|
|
143
|
+
setError(t('provider-model-paste-text-only'));
|
|
144
|
+
}).catch(() => {
|
|
145
|
+
if (mounted.current && !closed.current)
|
|
146
|
+
setError(t('provider-model-paste-text-only'));
|
|
147
|
+
}).finally(() => { pasteBusy.current = false; });
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (isPlainReturnInput(input, key) || (key.ctrl && input === 's')) {
|
|
151
|
+
save();
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (key.upArrow || (key.tab && key.shift)) {
|
|
155
|
+
moveFocus(-1);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (key.downArrow || key.tab) {
|
|
159
|
+
moveFocus(1);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (current === 'input') {
|
|
163
|
+
if (key.leftArrow)
|
|
164
|
+
cycleInput(-1);
|
|
165
|
+
else if (key.rightArrow || input === ' ')
|
|
166
|
+
cycleInput(1);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (!isText)
|
|
170
|
+
return;
|
|
171
|
+
const name = current;
|
|
172
|
+
const points = [...valuesRef.current[name]];
|
|
173
|
+
const at = cursorsRef.current[name];
|
|
174
|
+
if (key.home) {
|
|
175
|
+
edit(name, points.join(''), 0);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (key.end) {
|
|
179
|
+
edit(name, points.join(''), points.length);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (key.ctrl && input === 'u') {
|
|
183
|
+
edit(name, '', 0);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (key.leftArrow) {
|
|
187
|
+
edit(name, points.join(''), Math.max(0, at - 1));
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (key.rightArrow) {
|
|
191
|
+
edit(name, points.join(''), Math.min(points.length, at + 1));
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
if (key.backspace && at > 0) {
|
|
195
|
+
points.splice(at - 1, 1);
|
|
196
|
+
edit(name, points.join(''), at - 1);
|
|
197
|
+
}
|
|
198
|
+
else if (key.delete) {
|
|
199
|
+
points.splice(at, 1);
|
|
200
|
+
edit(name, points.join(''), at);
|
|
201
|
+
}
|
|
202
|
+
else if (input && !key.ctrl && !key.meta && !key.super && !key.backspace)
|
|
203
|
+
insert(name, input);
|
|
204
|
+
}, { prepend: true });
|
|
205
|
+
const labels = {
|
|
206
|
+
contextWindow: t('provider-model-context-window'),
|
|
207
|
+
maxTokens: t('provider-model-max-tokens'),
|
|
208
|
+
reasoningEfforts: t('provider-model-reasoning-efforts'),
|
|
209
|
+
input: t('provider-model-multimodal'),
|
|
210
|
+
save: t('provider-model-save'),
|
|
211
|
+
};
|
|
212
|
+
const compactLabels = {
|
|
213
|
+
contextWindow: 'ctx',
|
|
214
|
+
maxTokens: 'output',
|
|
215
|
+
reasoningEfforts: 'effort',
|
|
216
|
+
input: t('provider-model-multimodal-short'),
|
|
217
|
+
save: t('provider-model-save-short'),
|
|
218
|
+
};
|
|
219
|
+
const inheritedInputLabel = initial.defaults.input === undefined ? t('provider-model-inherit')
|
|
220
|
+
: initial.defaults.input.includes('image') ? t('provider-model-default-image') : t('provider-model-default-text');
|
|
221
|
+
const inputLabel = inputMode === 'inherit' ? inheritedInputLabel
|
|
222
|
+
: inputMode === 'image' ? t('provider-model-input-image') : t('provider-model-input-text');
|
|
223
|
+
const renderValue = (name, focused, availableWidth) => {
|
|
224
|
+
const points = [...values[name]];
|
|
225
|
+
const at = cursors[name];
|
|
226
|
+
// Keep the caret in the horizontal viewport without slicing UTF-16 or
|
|
227
|
+
// assuming one code point equals one terminal cell.
|
|
228
|
+
let first = 0;
|
|
229
|
+
while (first < at && stringWidth(points.slice(first, at).join('')) >= availableWidth)
|
|
230
|
+
first += 1;
|
|
231
|
+
const prefix = points.slice(first, at).join('');
|
|
232
|
+
const caret = points[at] ?? ' ';
|
|
233
|
+
const suffix = capCells(points.slice(at + 1).join(''), Math.max(0, availableWidth - stringWidth(prefix) - stringWidth(caret)));
|
|
234
|
+
const fallback = name === 'reasoningEfforts' ? t('provider-model-inherit')
|
|
235
|
+
: initial.defaults[name] === undefined ? t('provider-model-inherit')
|
|
236
|
+
: t('provider-model-default-capacity', { n: initial.defaults[name] });
|
|
237
|
+
if (!focused)
|
|
238
|
+
return _jsx(Text, { dimColor: points.length === 0, wrap: "truncate", children: points.length === 0 ? fallback : values[name] });
|
|
239
|
+
return _jsxs(Text, { children: [prefix, _jsx(Text, { ref: caretRef, inverse: true, children: caret }), suffix, points.length === 0 ? _jsx(Text, { dimColor: true, children: capCells(fallback, Math.max(0, availableWidth - 1)) }) : null] });
|
|
240
|
+
};
|
|
241
|
+
return _jsxs(Box, { flexDirection: "column", marginTop: 1, paddingX: 2, width: "100%", children: [_jsx(Divider, { color: "permission", title: t('provider-model-editor-title') }), _jsx(Box, { marginTop: 1, marginBottom: 1, children: _jsx(Text, { bold: true, wrap: "truncate", children: cleanRenderText(model, Math.max(1, columns - 4)) }) }), FIELDS.slice(start, end).map((name, index) => {
|
|
242
|
+
const absolute = start + index;
|
|
243
|
+
const focused = absolute === focus;
|
|
244
|
+
const isText = name !== 'input' && name !== 'save';
|
|
245
|
+
const valueWidth = Math.max(1, width - (compact ? 10 : 27));
|
|
246
|
+
return _jsxs(Box, { flexDirection: "row", height: 1, flexShrink: 0, overflow: "hidden", width: "100%", onClick: () => {
|
|
247
|
+
if (name === 'reasoningEfforts' && !editor.reasoningEditable)
|
|
248
|
+
return;
|
|
249
|
+
if (name === 'save')
|
|
250
|
+
save();
|
|
251
|
+
else {
|
|
252
|
+
placeFocus(absolute);
|
|
253
|
+
if (name === 'input')
|
|
254
|
+
cycleInput(1);
|
|
255
|
+
}
|
|
256
|
+
}, children: [_jsx(Box, { width: 1, flexShrink: 0, children: _jsx(Text, { color: focused ? 'accent' : undefined, dimColor: name === 'reasoningEfforts' && !editor.reasoningEditable, children: focused ? POINTER : absolute === start && start > 0 ? '↑' : absolute === end - 1 && end < FIELDS.length ? '↓' : ' ' }) }), _jsx(Box, { width: compact ? 9 : 26, flexShrink: 0, children: _jsx(Text, { bold: focused, color: focused ? 'accent' : undefined, dimColor: name === 'reasoningEfforts' && !editor.reasoningEditable, wrap: "truncate", children: compact ? compactLabels[name] : labels[name] }) }), _jsx(Box, { width: valueWidth, flexShrink: 0, overflow: "hidden", children: name === 'input'
|
|
257
|
+
? _jsx(Text, { wrap: "truncate", children: compact ? inputMode === 'inherit' ? initial.defaults.input?.includes('image') ? 'image default' : 'text default' : inputMode : inputLabel })
|
|
258
|
+
: name === 'save'
|
|
259
|
+
? _jsx(Text, { color: "success", wrap: "truncate", children: compact ? 'Enter' : t('provider-model-enter-to-save') })
|
|
260
|
+
: name === 'reasoningEfforts' && !editor.reasoningEditable
|
|
261
|
+
? _jsx(Text, { dimColor: true, wrap: "truncate", children: t('provider-model-reasoning-unavailable-short') })
|
|
262
|
+
: renderValue(name, focused && textFocused, valueWidth) })] }, name);
|
|
263
|
+
}), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, wrap: "truncate", children: field === 'reasoningEfforts'
|
|
264
|
+
? editor.reasoningEditable ? t('provider-model-reasoning-hint') : t('provider-model-reasoning-unavailable')
|
|
265
|
+
: field === 'input' ? t('provider-model-input-hint') : t('provider-model-capacity-hint') }) }), error !== null ? _jsx(Text, { color: "error", wrap: "truncate", children: error }) : null, _jsx(Text, { dimColor: true, wrap: "truncate", children: t('hint-provider-model-editor') })] });
|
|
266
|
+
}
|
|
@@ -18,6 +18,32 @@ export declare const ICE: Rgb;
|
|
|
18
18
|
export declare const PALE: Rgb;
|
|
19
19
|
/** Soft ice flash blue (`#C6D8F8`); stays visibly blue, never pure white. */
|
|
20
20
|
export declare const FLASH: Rgb;
|
|
21
|
+
/**
|
|
22
|
+
* Claude 陶土橙阶(claude 品牌开屏用,branding.ts / theme.ts 双主题共用):
|
|
23
|
+
* 深底从正色 `#D77757` 起步、经亮橙、奔奶油橙收——三档对比拉满(用户反馈
|
|
24
|
+
* "渐变要明显、要亮",起点不再用暗端);浅底(claude-paper)反向:深化橙
|
|
25
|
+
* 起步、正色收(浅底上"亮"是加深)。
|
|
26
|
+
*/
|
|
27
|
+
export declare const EMBER: Rgb;
|
|
28
|
+
export declare const EMBER_BRIGHT: Rgb;
|
|
29
|
+
export declare const EMBER_PALE: Rgb;
|
|
30
|
+
export declare const EMBER_LIGHT: Rgb;
|
|
31
|
+
export declare const EMBER_FLASH: Rgb;
|
|
32
|
+
export declare const EMBER_PAPER: Rgb;
|
|
33
|
+
export declare const EMBER_PAPER_FLASH: Rgb;
|
|
34
|
+
/**
|
|
35
|
+
* Codex 薰衣草紫阶(codex 品牌开屏用,branding.ts / theme.ts 双主题共用):
|
|
36
|
+
* 与 claude 同构——深底从亮紫起步、经淡紫、奔近白的薰衣草收(三档对比拉
|
|
37
|
+
* 满);浅底(codex-paper)反向:深化紫起步、正色收(浅底上"亮"是加深)。
|
|
38
|
+
*/
|
|
39
|
+
export declare const LAVENDER: Rgb;
|
|
40
|
+
export declare const LAVENDER_BRIGHT: Rgb;
|
|
41
|
+
export declare const LAVENDER_SOFT: Rgb;
|
|
42
|
+
export declare const LAVENDER_PALE: Rgb;
|
|
43
|
+
export declare const LAVENDER_LIGHT: Rgb;
|
|
44
|
+
export declare const LAVENDER_FLASH: Rgb;
|
|
45
|
+
export declare const LAVENDER_PAPER: Rgb;
|
|
46
|
+
export declare const LAVENDER_PAPER_FLASH: Rgb;
|
|
21
47
|
/**
|
|
22
48
|
* Paint `word` with a 10-column highlight window sweeping across it. The
|
|
23
49
|
* window advances one column per `stepMs` and the brightness pulse follows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shimmer.d.ts","sourceRoot":"","sources":["../../../src/components/shimmer.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;iDAEiD;AACjD,eAAO,MAAM,KAAK,EAAE,GAA+B,CAAA;AACnD,0CAA0C;AAC1C,eAAO,MAAM,GAAG,EAAE,GAAgC,CAAA;AAClD,2CAA2C;AAC3C,eAAO,MAAM,IAAI,EAAE,GAAgC,CAAA;AACnD,6EAA6E;AAC7E,eAAO,MAAM,KAAK,EAAE,GAAgC,CAAA;AAEpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,SAAK,GAAG,MAAM,CAehG"}
|
|
1
|
+
{"version":3,"file":"shimmer.d.ts","sourceRoot":"","sources":["../../../src/components/shimmer.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;iDAEiD;AACjD,eAAO,MAAM,KAAK,EAAE,GAA+B,CAAA;AACnD,0CAA0C;AAC1C,eAAO,MAAM,GAAG,EAAE,GAAgC,CAAA;AAClD,2CAA2C;AAC3C,eAAO,MAAM,IAAI,EAAE,GAAgC,CAAA;AACnD,6EAA6E;AAC7E,eAAO,MAAM,KAAK,EAAE,GAAgC,CAAA;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,GAA+B,CAAA;AACnD,eAAO,MAAM,YAAY,EAAE,GAAgC,CAAA;AAC3D,eAAO,MAAM,UAAU,EAAE,GAAgC,CAAA;AACzD,eAAO,MAAM,WAAW,EAAE,GAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,GAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,GAA+B,CAAA;AACzD,eAAO,MAAM,iBAAiB,EAAE,GAA8B,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,GAAgC,CAAA;AACvD,eAAO,MAAM,eAAe,EAAE,GAAgC,CAAA;AAC9D,eAAO,MAAM,aAAa,EAAE,GAAgC,CAAA;AAC5D,eAAO,MAAM,aAAa,EAAE,GAAgC,CAAA;AAC5D,eAAO,MAAM,cAAc,EAAE,GAAgC,CAAA;AAC7D,eAAO,MAAM,cAAc,EAAE,GAAgC,CAAA;AAC7D,eAAO,MAAM,cAAc,EAAE,GAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,EAAE,GAAgC,CAAA;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,SAAK,GAAG,MAAM,CAehG"}
|
|
@@ -12,6 +12,32 @@ export const ICE = { r: 147, g: 190, b: 255 };
|
|
|
12
12
|
export const PALE = { r: 215, g: 228, b: 255 };
|
|
13
13
|
/** Soft ice flash blue (`#C6D8F8`); stays visibly blue, never pure white. */
|
|
14
14
|
export const FLASH = { r: 198, g: 216, b: 248 };
|
|
15
|
+
/**
|
|
16
|
+
* Claude 陶土橙阶(claude 品牌开屏用,branding.ts / theme.ts 双主题共用):
|
|
17
|
+
* 深底从正色 `#D77757` 起步、经亮橙、奔奶油橙收——三档对比拉满(用户反馈
|
|
18
|
+
* "渐变要明显、要亮",起点不再用暗端);浅底(claude-paper)反向:深化橙
|
|
19
|
+
* 起步、正色收(浅底上"亮"是加深)。
|
|
20
|
+
*/
|
|
21
|
+
export const EMBER = { r: 215, g: 119, b: 87 }; // #D77757 陶土橙(深底起点/正色)
|
|
22
|
+
export const EMBER_BRIGHT = { r: 239, g: 169, b: 126 }; // #EFA97E 亮橙(深底中档/浅底终点)
|
|
23
|
+
export const EMBER_PALE = { r: 251, g: 214, b: 176 }; // #FBD6B0 奶油橙(深底终点,够亮)
|
|
24
|
+
export const EMBER_LIGHT = { r: 230, g: 138, b: 105 }; // #E68A69 亮橙(浅底终点档)
|
|
25
|
+
export const EMBER_FLASH = { r: 245, g: 201, b: 180 }; // #F5C9B4 暖阳高光(深底)
|
|
26
|
+
export const EMBER_PAPER = { r: 201, g: 100, b: 66 }; // #C96442 深化橙(浅底起点)
|
|
27
|
+
export const EMBER_PAPER_FLASH = { r: 184, g: 87, b: 56 }; // #B85738 浅底高光
|
|
28
|
+
/**
|
|
29
|
+
* Codex 薰衣草紫阶(codex 品牌开屏用,branding.ts / theme.ts 双主题共用):
|
|
30
|
+
* 与 claude 同构——深底从亮紫起步、经淡紫、奔近白的薰衣草收(三档对比拉
|
|
31
|
+
* 满);浅底(codex-paper)反向:深化紫起步、正色收(浅底上"亮"是加深)。
|
|
32
|
+
*/
|
|
33
|
+
export const LAVENDER = { r: 166, g: 155, b: 232 }; // #A69BE8 薰衣草紫(正色/浅底终点)
|
|
34
|
+
export const LAVENDER_BRIGHT = { r: 197, g: 191, b: 238 }; // #C5BFEE 亮紫(深底起点)
|
|
35
|
+
export const LAVENDER_SOFT = { r: 217, g: 213, b: 243 }; // #D9D5F3 淡紫(深底中档)
|
|
36
|
+
export const LAVENDER_PALE = { r: 226, g: 222, b: 248 }; // #E2DEF8 近白薰衣草(深底终点,够亮)
|
|
37
|
+
export const LAVENDER_LIGHT = { r: 138, g: 126, b: 217 }; // #8A7ED9 深亮紫(浅底中档)
|
|
38
|
+
export const LAVENDER_FLASH = { r: 207, g: 199, b: 245 }; // #CFC7F5 高光(深底)
|
|
39
|
+
export const LAVENDER_PAPER = { r: 107, g: 92, b: 200 }; // #6B5CC8 深化紫(浅底起点)
|
|
40
|
+
export const LAVENDER_PAPER_FLASH = { r: 122, g: 106, b: 214 }; // #7A6AD6 浅底高光
|
|
15
41
|
/**
|
|
16
42
|
* Paint `word` with a 10-column highlight window sweeping across it. The
|
|
17
43
|
* window advances one column per `stepMs` and the brightness pulse follows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/sidePanel/InfoPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAwB5C,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"InfoPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/sidePanel/InfoPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAwB5C,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC,SAAS,CA2J1F"}
|
|
@@ -20,7 +20,7 @@ import { formatTokens } from '../../terminal-utils/format.js';
|
|
|
20
20
|
import { formatContextUsage } from '../../tuiDisplayPrefs.js';
|
|
21
21
|
import { modeDisplayName } from '../../sessionModes.js';
|
|
22
22
|
import { estimateSessionCostSnapshotCny, isDeepSeekOfficialProvider, isPeakHour } from '../../deepseekPricing.js';
|
|
23
|
-
import { formatCacheHitRate } from '../../screens/StatusLine.js';
|
|
23
|
+
import { formatCacheHitRate, formatCostReport } from '../../screens/StatusLine.js';
|
|
24
24
|
import { contextPressureStep, speedColor } from '../../screens/StatusMetrics.js';
|
|
25
25
|
import { formatProject } from '../../sessions/format.js';
|
|
26
26
|
import { homeDir } from '../../utils/paths.js';
|
|
@@ -81,8 +81,11 @@ export function InfoPanel({ width, height, focused, visible }) {
|
|
|
81
81
|
: undefined;
|
|
82
82
|
const contextStep = contextPct !== undefined ? contextPressureStep(contextPct) : undefined;
|
|
83
83
|
const cacheText = formatCacheHitRate(usage) ?? none;
|
|
84
|
-
//
|
|
85
|
-
|
|
84
|
+
// 花费:与状态栏同一规则——后端自报的会话花费(Claude `total_cost_usd`)
|
|
85
|
+
// 优先;否则官方 DeepSeek 路由 + 有计价金额或未计价 token。
|
|
86
|
+
// oxlint-disable-next-line typescript/no-unnecessary-condition -- partial embedder channels omit the report
|
|
87
|
+
const costReport = channel.costReport;
|
|
88
|
+
const estimate = costReport === undefined && isDeepSeekOfficialProvider(channel.provider)
|
|
86
89
|
? estimateSessionCostSnapshotCny({
|
|
87
90
|
provider: channel.provider,
|
|
88
91
|
main: channel.mainCost ?? {},
|
|
@@ -91,11 +94,13 @@ export function InfoPanel({ width, height, focused, visible }) {
|
|
|
91
94
|
fallbackModel: channel.model,
|
|
92
95
|
})
|
|
93
96
|
: undefined;
|
|
94
|
-
const costText =
|
|
95
|
-
?
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
const costText = costReport !== undefined
|
|
98
|
+
? formatCostReport(costReport)
|
|
99
|
+
: estimate !== undefined && (estimate.total > 0 || estimate.unpricedTokens > 0)
|
|
100
|
+
? estimate.total > 0
|
|
101
|
+
? '¥' + estimate.total.toFixed(2) + ' ' + t(isPeakHour() ? 'cost-now-peak' : 'cost-now-idle')
|
|
102
|
+
: t('cost-unpriced', { tokens: formatTokens(estimate.unpricedTokens) })
|
|
103
|
+
: none;
|
|
99
104
|
const tpsText = channel.tps !== undefined
|
|
100
105
|
? speedColor(channel.tps, String(Math.round(channel.tps))) + ' tps'
|
|
101
106
|
: none;
|
|
@@ -1,26 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PanelBar: the 1-row tab strip on top of the side panel (design doc §6.1).
|
|
3
|
-
*
|
|
4
|
-
* Visual language:
|
|
5
|
-
* - the ACTIVE panel is a capsule: ‹ Title ›, accent + bold — one glance
|
|
6
|
-
* tells you where you are;
|
|
7
|
-
* - inactive panels collapse to their single-cell icon (or first letter),
|
|
8
|
-
* dim, with a status dot only when the panel has something to say
|
|
9
|
-
* (● unread/active, ! warning, × error — theme colors, never emoji);
|
|
10
|
-
* - overflow is windowed, never a trail of dots: what does not fit
|
|
11
|
-
* becomes a dim +N on the right edge.
|
|
12
|
-
*
|
|
13
|
-
* The bar's width demand is content-independent (capsule titles truncate
|
|
14
|
-
* to a fixed budget, icons are fixed cells) — a panel MUST never make the
|
|
15
|
-
* column want to resize (design doc §16.6).
|
|
16
|
-
*/
|
|
17
1
|
import React from 'react';
|
|
18
2
|
export type PanelBadgeLevel = 'info' | 'warning' | 'error';
|
|
19
3
|
export interface PanelBarTab {
|
|
20
4
|
readonly id: string;
|
|
21
5
|
readonly title: string;
|
|
22
|
-
/** Single-cell glyph; falls back to the title's first letter. */
|
|
23
|
-
readonly icon?: string;
|
|
24
6
|
readonly badge?: {
|
|
25
7
|
readonly level: PanelBadgeLevel;
|
|
26
8
|
readonly unread: number;
|
|
@@ -30,15 +12,9 @@ export interface PanelBarProps {
|
|
|
30
12
|
readonly tabs: readonly PanelBarTab[];
|
|
31
13
|
readonly activeId: string | undefined;
|
|
32
14
|
readonly width: number;
|
|
33
|
-
/** Focus is in the right column: the bar brightens to match the divider. */
|
|
34
15
|
readonly focused: boolean;
|
|
35
|
-
/** The ACTIVE panel has a fullscreen form (capabilities.fullscreen): the
|
|
36
|
-
* bar reserves the two trailing cells and draws the clickable ⤢. */
|
|
37
16
|
readonly canExpand?: boolean;
|
|
38
|
-
/** Click/Enter on ⤢: switch the active panel to its fullscreen surface. */
|
|
39
17
|
readonly onExpand?: () => void;
|
|
40
|
-
/** Click on a tab (icon or capsule): make that panel active. The host
|
|
41
|
-
* funnels this into the same openPanel() path the keyboard uses. */
|
|
42
18
|
readonly onSelect?: (id: string) => void;
|
|
43
19
|
}
|
|
44
20
|
export declare function PanelBar({ tabs, activeId, width, focused, canExpand, onExpand, onSelect }: PanelBarProps): React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelBar.d.ts","sourceRoot":"","sources":["../../../../src/components/sidePanel/PanelBar.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"PanelBar.d.ts","sourceRoot":"","sources":["../../../../src/components/sidePanel/PanelBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACrF;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAuED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,SAAS,CAkG1H"}
|
|
@@ -1,32 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
/**
|
|
3
|
-
* PanelBar: the 1-row tab strip on top of the side panel (design doc §6.1).
|
|
4
|
-
*
|
|
5
|
-
* Visual language:
|
|
6
|
-
* - the ACTIVE panel is a capsule: ‹ Title ›, accent + bold — one glance
|
|
7
|
-
* tells you where you are;
|
|
8
|
-
* - inactive panels collapse to their single-cell icon (or first letter),
|
|
9
|
-
* dim, with a status dot only when the panel has something to say
|
|
10
|
-
* (● unread/active, ! warning, × error — theme colors, never emoji);
|
|
11
|
-
* - overflow is windowed, never a trail of dots: what does not fit
|
|
12
|
-
* becomes a dim +N on the right edge.
|
|
13
|
-
*
|
|
14
|
-
* The bar's width demand is content-independent (capsule titles truncate
|
|
15
|
-
* to a fixed budget, icons are fixed cells) — a panel MUST never make the
|
|
16
|
-
* column want to resize (design doc §16.6).
|
|
17
|
-
*/
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
2
|
import React from 'react';
|
|
19
3
|
import { Box, Text } from '../../ui.js';
|
|
20
4
|
import { stringWidth } from '../../ink/stringWidth.js';
|
|
21
|
-
|
|
22
|
-
const ACTIVE_TITLE_MAX = 12;
|
|
23
|
-
function badgeGlyph(level) {
|
|
24
|
-
if (level === 'warning')
|
|
25
|
-
return '!';
|
|
26
|
-
if (level === 'error')
|
|
27
|
-
return '×';
|
|
28
|
-
return '●';
|
|
29
|
-
}
|
|
5
|
+
import { useTooltip } from '../Tooltip.js';
|
|
30
6
|
function badgeColor(level) {
|
|
31
7
|
if (level === 'warning')
|
|
32
8
|
return 'warning';
|
|
@@ -40,65 +16,67 @@ function truncateCells(text, maxCells) {
|
|
|
40
16
|
let out = '';
|
|
41
17
|
let cells = 0;
|
|
42
18
|
for (const char of text) {
|
|
43
|
-
const
|
|
44
|
-
if (cells +
|
|
19
|
+
const width = stringWidth(char);
|
|
20
|
+
if (cells + width > Math.max(1, maxCells - 1))
|
|
45
21
|
break;
|
|
46
22
|
out += char;
|
|
47
|
-
cells +=
|
|
23
|
+
cells += width;
|
|
48
24
|
}
|
|
49
25
|
return out + '…';
|
|
50
26
|
}
|
|
27
|
+
function ActiveTitle({ title, left, width, focused }) {
|
|
28
|
+
const clipped = stringWidth(title) > width;
|
|
29
|
+
const tooltip = useTooltip(title);
|
|
30
|
+
return (_jsx(Box, { position: "absolute", left: left, top: 0, width: width, height: 1, justifyContent: "center", overflow: "hidden", ...(clipped ? tooltip : {}), children: _jsx(Text, { bold: true, color: focused ? 'accent' : 'inactive', wrap: "truncate-end", children: truncateCells(title, width) }) }));
|
|
31
|
+
}
|
|
32
|
+
function PanelDot({ tab, left, width, focused, hovered, onHover, onSelect }) {
|
|
33
|
+
const tooltip = useTooltip(tab.title);
|
|
34
|
+
const unread = tab.badge?.unread ?? 0;
|
|
35
|
+
const label = (tab.badge == null ? '○' : '●') + (unread > 0 ? String(unread) : '');
|
|
36
|
+
return (_jsx(Box, { position: "absolute", left: left, top: 0, width: width, height: 1, flexShrink: 0, justifyContent: "center", ...tooltip, onMouseEnter: event => { tooltip.onMouseEnter(event); onHover(tab.id); }, onMouseLeave: () => { tooltip.onMouseLeave(); onHover(null); }, onClick: onSelect === undefined ? undefined : event => {
|
|
37
|
+
event.stopImmediatePropagation();
|
|
38
|
+
onSelect(tab.id);
|
|
39
|
+
}, children: _jsx(Text, { bold: hovered, dimColor: !hovered && tab.badge == null && !focused, color: tab.badge != null ? badgeColor(tab.badge.level) : hovered || focused ? 'accent' : undefined, children: label }) }));
|
|
40
|
+
}
|
|
51
41
|
export function PanelBar({ tabs, activeId, width, focused, canExpand, onExpand, onSelect }) {
|
|
52
42
|
const [expandHovered, setExpandHovered] = React.useState(false);
|
|
53
|
-
// Mouse feedback is per-tab: the bar is the only place where a click
|
|
54
|
-
// switches WHAT the whole right column shows, so it must read as clickable
|
|
55
|
-
// (hover brightens the glyph; the click path mirrors the ←/→ host keys).
|
|
56
43
|
const [hoveredTab, setHoveredTab] = React.useState(null);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
let
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const isActive = active !== undefined && tab.id === active.id;
|
|
71
|
-
// Budget per segment includes the 1-col gap rendered between them
|
|
72
|
-
// (marginRight), otherwise the +N badge gets clipped at full bars.
|
|
73
|
-
const cells = (isActive ? Math.min(stringWidth(tab.title), ACTIVE_TITLE_MAX) + 4 : 2) + (segments.length > 0 ? 1 : 0);
|
|
74
|
-
// Reserve room for the eventual +N badge while tabs remain after this one.
|
|
75
|
-
const remaining = tabs.length - segments.length - hidden - 1;
|
|
76
|
-
const reserve = remaining > 0 ? moreCells(remaining) : 0;
|
|
77
|
-
if (!isActive && used + cells + reserve > barWidth) {
|
|
78
|
-
hidden += 1;
|
|
79
|
-
continue;
|
|
44
|
+
const activeIndex = Math.max(0, tabs.findIndex(tab => tab.id === activeId));
|
|
45
|
+
const active = tabs[activeIndex];
|
|
46
|
+
const hasArrows = tabs.length > 1;
|
|
47
|
+
const contentWidth = Math.max(0, width - 2);
|
|
48
|
+
const arrowWidth = hasArrows ? 1 : 0;
|
|
49
|
+
const expandWidth = canExpand === true ? 2 : 0;
|
|
50
|
+
const middleStart = arrowWidth;
|
|
51
|
+
const middleWidth = Math.max(0, contentWidth - arrowWidth * 2 - expandWidth);
|
|
52
|
+
const dots = [];
|
|
53
|
+
for (let distance = 1; dots.length < tabs.length - 1; distance += 1) {
|
|
54
|
+
dots.push({ tab: tabs[(activeIndex + distance) % tabs.length], side: 'right' });
|
|
55
|
+
if (dots.length < tabs.length - 1) {
|
|
56
|
+
dots.push({ tab: tabs[(activeIndex - distance + tabs.length) % tabs.length], side: 'left' });
|
|
80
57
|
}
|
|
81
|
-
used += cells;
|
|
82
|
-
const hovered = hoveredTab === tab.id;
|
|
83
|
-
segments.push({
|
|
84
|
-
key: tab.id,
|
|
85
|
-
node: isActive ? (_jsxs(Text, { bold: true, underline: hovered, color: hovered || focused ? 'accent' : 'inactive', wrap: "truncate-end", children: ['‹ ', truncateCells(tab.title, ACTIVE_TITLE_MAX), ' ›'] })) : (_jsxs(Text, { bold: hovered, dimColor: !hovered && tab.badge == null, color: tab.badge != null ? badgeColor(tab.badge.level) : hovered ? 'accent' : undefined, children: [(tab.icon ?? tab.title.slice(0, 1)).slice(0, 1), tab.badge != null ? badgeGlyph(tab.badge.level) : ''] })),
|
|
86
|
-
// Every tab is clickable: on an inactive one it switches the column,
|
|
87
|
-
// on the active one it just takes the focus (same three-state as the
|
|
88
|
-
// Ctrl+B smart toggle, minus the closing step).
|
|
89
|
-
clickable: onSelect !== undefined,
|
|
90
|
-
onHover: (next) => setHoveredTab(previous => (next ? tab.id : previous === tab.id ? null : previous)),
|
|
91
|
-
});
|
|
92
58
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
59
|
+
const dotWidth = Math.max(2, ...dots.map(dot => stringWidth((dot.tab.badge == null ? '○' : '●') + (dot.tab.badge !== undefined && dot.tab.badge !== null && dot.tab.badge.unread > 0 ? String(dot.tab.badge.unread) : ''))));
|
|
60
|
+
const titleWidth = active === undefined
|
|
61
|
+
? 0
|
|
62
|
+
: Math.max(6, Math.min(stringWidth(active.title), Math.max(6, middleWidth - dots.length * dotWidth)));
|
|
63
|
+
const pitch = dots.length === 0 ? 0 : Math.max(2, Math.floor((middleWidth - titleWidth) / dots.length));
|
|
64
|
+
const titleLeft = middleStart + Math.floor((middleWidth - titleWidth) / 2);
|
|
65
|
+
let rightIndex = 0;
|
|
66
|
+
let leftIndex = 0;
|
|
67
|
+
const dotPositions = dots.map(dot => {
|
|
68
|
+
const index = dot.side === 'right' ? rightIndex++ : leftIndex++;
|
|
69
|
+
return {
|
|
70
|
+
...dot,
|
|
71
|
+
left: dot.side === 'right'
|
|
72
|
+
? titleLeft + titleWidth + index * pitch
|
|
73
|
+
: titleLeft - (index + 1) * pitch,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
const changePanel = (delta) => {
|
|
77
|
+
if (active === undefined || tabs.length <= 1)
|
|
78
|
+
return;
|
|
79
|
+
onSelect?.(tabs[(activeIndex + delta + tabs.length) % tabs.length].id);
|
|
80
|
+
};
|
|
81
|
+
return (_jsx(Box, { height: 1, flexShrink: 0, paddingX: 1, overflow: "hidden", children: _jsxs(Box, { width: contentWidth, height: 1, position: "relative", overflow: "hidden", flexShrink: 0, children: [active !== undefined && _jsx(ActiveTitle, { title: active.title, left: titleLeft, width: titleWidth, focused: focused }), dotPositions.map(dot => (_jsx(PanelDot, { tab: dot.tab, left: dot.left, width: pitch, focused: focused, hovered: hoveredTab === dot.tab.id, onHover: setHoveredTab, onSelect: onSelect }, dot.tab.id))), hasArrows && (_jsxs(_Fragment, { children: [_jsx(Box, { position: "absolute", left: 0, top: 0, width: 1, height: 1, justifyContent: "center", onClick: event => { event.stopImmediatePropagation(); changePanel(-1); }, children: _jsx(Text, { color: focused ? 'accent' : 'inactive', children: "\u25C0" }) }), _jsx(Box, { position: "absolute", left: contentWidth - expandWidth - 1, top: 0, width: 1, height: 1, justifyContent: "center", onClick: event => { event.stopImmediatePropagation(); changePanel(1); }, children: _jsx(Text, { color: focused ? 'accent' : 'inactive', children: "\u25B6" }) })] })), canExpand === true && (_jsx(Box, { position: "absolute", left: contentWidth - 1, top: 0, width: 1, height: 1, onMouseEnter: () => { setExpandHovered(true); }, onMouseLeave: () => { setExpandHovered(false); }, onClick: event => { event.stopImmediatePropagation(); onExpand?.(); }, children: _jsx(Text, { bold: expandHovered, color: expandHovered || focused ? 'accent' : 'inactive', children: "\u2922" }) }))] }) }));
|
|
104
82
|
}
|
|
@@ -43,7 +43,9 @@ export declare class PanelStore {
|
|
|
43
43
|
register(definition: PanelDefinition, owner: PanelOwner): () => void;
|
|
44
44
|
list(): readonly PanelEntry[];
|
|
45
45
|
get(id: string): PanelEntry | undefined;
|
|
46
|
-
/** 只允许 owner 或宿主调用(调用侧自律,与 tuiStatus 相同)。
|
|
46
|
+
/** 只允许 owner 或宿主调用(调用侧自律,与 tuiStatus 相同)。
|
|
47
|
+
* level/unread 都没变时不通知:适配器在每次 channel 变化(流式时每个
|
|
48
|
+
* delta)都会调这里,每次通知都会让订阅 list() 的宿主重渲染。 */
|
|
47
49
|
setBadge(id: string, badge: Omit<PanelBadge, 'latestAt'> | null): void;
|
|
48
50
|
clearBadge(id: string): void;
|
|
49
51
|
reportError(id: string, error: unknown): void;
|