@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -5
- package/assets/claude-girl/claude-girl-happy.png +0 -0
- package/assets/claude-girl/claude-girl.png +0 -0
- package/assets/codex-girl/codex-girl-happy.png +0 -0
- package/assets/codex-girl/codex-girl.png +0 -0
- package/bin/dsh-tui.js +104 -18
- package/cordis.patch.yml +2 -0
- package/cordis.yml +2 -0
- package/guide/dsh-tui-guide/SKILL.md +4 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
- package/guide/dsh-tui-guide/claude-backend.md +161 -0
- package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
- package/guide/dsh-tui-guide/codex-backend.md +257 -0
- package/guide/dsh-tui-guide/configuration.en.md +9 -2
- package/guide/dsh-tui-guide/configuration.md +9 -2
- package/guide/dsh-tui-guide/interaction.en.md +169 -27
- package/guide/dsh-tui-guide/interaction.md +115 -17
- package/guide/dsh-tui-guide/themes.en.md +24 -2
- package/guide/dsh-tui-guide/themes.md +21 -2
- package/guide/dsh-tui-guide/user-guide.en.md +38 -23
- package/guide/dsh-tui-guide/user-guide.md +22 -11
- package/guide/dsh-tui-guide/vscode.en.md +1 -0
- package/guide/dsh-tui-guide/vscode.md +1 -0
- package/lib/settings.json +139 -6
- package/lib/types/adapter/channel/state.d.ts.map +1 -1
- package/lib/types/adapter/channel/state.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +29 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +45 -5
- package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-display.d.ts +7 -1
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +5 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +477 -13
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/agent/backend.d.ts +168 -0
- package/lib/types/agent/backend.d.ts.map +1 -0
- package/lib/types/agent/backend.js +1 -0
- package/lib/types/agent/capabilities.d.ts +461 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -0
- package/lib/types/agent/capabilities.js +1 -0
- package/lib/types/agent/events.d.ts +733 -0
- package/lib/types/agent/events.d.ts.map +1 -0
- package/lib/types/agent/events.js +2 -0
- package/lib/types/agent/index.d.ts +8 -0
- package/lib/types/agent/index.d.ts.map +1 -0
- package/lib/types/agent/index.js +7 -0
- package/lib/types/agent/messages.d.ts +52 -0
- package/lib/types/agent/messages.d.ts.map +1 -0
- package/lib/types/agent/messages.js +91 -0
- package/lib/types/agent/presentation.d.ts +29 -0
- package/lib/types/agent/presentation.d.ts.map +1 -0
- package/lib/types/agent/presentation.js +4 -0
- package/lib/types/agent/refs.d.ts +30 -0
- package/lib/types/agent/refs.d.ts.map +1 -0
- package/lib/types/agent/refs.js +39 -0
- package/lib/types/agent/session.d.ts +78 -0
- package/lib/types/agent/session.d.ts.map +1 -0
- package/lib/types/agent/session.js +1 -0
- package/lib/types/backends/claude/activity.d.ts +53 -0
- package/lib/types/backends/claude/activity.d.ts.map +1 -0
- package/lib/types/backends/claude/activity.js +103 -0
- package/lib/types/backends/claude/auth.d.ts +245 -0
- package/lib/types/backends/claude/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/auth.js +503 -0
- package/lib/types/backends/claude/backend.d.ts +32 -0
- package/lib/types/backends/claude/backend.d.ts.map +1 -0
- package/lib/types/backends/claude/backend.js +296 -0
- package/lib/types/backends/claude/catalog.d.ts +17 -0
- package/lib/types/backends/claude/catalog.d.ts.map +1 -0
- package/lib/types/backends/claude/catalog.js +94 -0
- package/lib/types/backends/claude/channels.d.ts +63 -0
- package/lib/types/backends/claude/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/channels.js +275 -0
- package/lib/types/backends/claude/contract.d.ts +37 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -0
- package/lib/types/backends/claude/contract.js +46 -0
- package/lib/types/backends/claude/controls.d.ts +134 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -0
- package/lib/types/backends/claude/controls.js +425 -0
- package/lib/types/backends/claude/dialogs.d.ts +62 -0
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
- package/lib/types/backends/claude/dialogs.js +253 -0
- package/lib/types/backends/claude/flag-settings.d.ts +12 -0
- package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
- package/lib/types/backends/claude/flag-settings.js +49 -0
- package/lib/types/backends/claude/images.d.ts +49 -0
- package/lib/types/backends/claude/images.d.ts.map +1 -0
- package/lib/types/backends/claude/images.js +94 -0
- package/lib/types/backends/claude/index.d.ts +5 -0
- package/lib/types/backends/claude/index.d.ts.map +1 -0
- package/lib/types/backends/claude/index.js +4 -0
- package/lib/types/backends/claude/install.d.ts +15 -0
- package/lib/types/backends/claude/install.d.ts.map +1 -0
- package/lib/types/backends/claude/install.js +91 -0
- package/lib/types/backends/claude/modelEnv.d.ts +64 -0
- package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
- package/lib/types/backends/claude/modelEnv.js +199 -0
- package/lib/types/backends/claude/narrow.d.ts +10 -0
- package/lib/types/backends/claude/narrow.d.ts.map +1 -0
- package/lib/types/backends/claude/narrow.js +8 -0
- package/lib/types/backends/claude/older-history.d.ts +16 -0
- package/lib/types/backends/claude/older-history.d.ts.map +1 -0
- package/lib/types/backends/claude/older-history.js +101 -0
- package/lib/types/backends/claude/options.d.ts +181 -0
- package/lib/types/backends/claude/options.d.ts.map +1 -0
- package/lib/types/backends/claude/options.js +208 -0
- package/lib/types/backends/claude/permissions.d.ts +83 -0
- package/lib/types/backends/claude/permissions.d.ts.map +1 -0
- package/lib/types/backends/claude/permissions.js +331 -0
- package/lib/types/backends/claude/prefs.d.ts +55 -0
- package/lib/types/backends/claude/prefs.d.ts.map +1 -0
- package/lib/types/backends/claude/prefs.js +150 -0
- package/lib/types/backends/claude/process.d.ts +19 -0
- package/lib/types/backends/claude/process.d.ts.map +1 -0
- package/lib/types/backends/claude/process.js +156 -0
- package/lib/types/backends/claude/replay.d.ts +129 -0
- package/lib/types/backends/claude/replay.d.ts.map +1 -0
- package/lib/types/backends/claude/replay.js +505 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk-warnings.js +55 -0
- package/lib/types/backends/claude/sdk.d.ts +12 -0
- package/lib/types/backends/claude/sdk.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk.js +34 -0
- package/lib/types/backends/claude/send-message.d.ts +54 -0
- package/lib/types/backends/claude/send-message.d.ts.map +1 -0
- package/lib/types/backends/claude/send-message.js +65 -0
- package/lib/types/backends/claude/session/auth.d.ts +47 -0
- package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/session/auth.js +226 -0
- package/lib/types/backends/claude/session/channels.d.ts +82 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/session/channels.js +45 -0
- package/lib/types/backends/claude/session/input.d.ts +16 -0
- package/lib/types/backends/claude/session/input.d.ts.map +1 -0
- package/lib/types/backends/claude/session/input.js +64 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
- package/lib/types/backends/claude/session/lifecycle.js +852 -0
- package/lib/types/backends/claude/session/store.d.ts +17 -0
- package/lib/types/backends/claude/session/store.d.ts.map +1 -0
- package/lib/types/backends/claude/session/store.js +122 -0
- package/lib/types/backends/claude/session/subagents.d.ts +13 -0
- package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/claude/session/subagents.js +77 -0
- package/lib/types/backends/claude/session/types.d.ts +89 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -0
- package/lib/types/backends/claude/session/types.js +1 -0
- package/lib/types/backends/claude/session.d.ts +4 -0
- package/lib/types/backends/claude/session.d.ts.map +1 -0
- package/lib/types/backends/claude/session.js +2 -0
- package/lib/types/backends/claude/side-query.d.ts +34 -0
- package/lib/types/backends/claude/side-query.d.ts.map +1 -0
- package/lib/types/backends/claude/side-query.js +116 -0
- package/lib/types/backends/claude/task-output.d.ts +13 -0
- package/lib/types/backends/claude/task-output.d.ts.map +1 -0
- package/lib/types/backends/claude/task-output.js +101 -0
- package/lib/types/backends/claude/tools.d.ts +45 -0
- package/lib/types/backends/claude/tools.d.ts.map +1 -0
- package/lib/types/backends/claude/tools.js +231 -0
- package/lib/types/backends/claude/transcript-file.d.ts +41 -0
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
- package/lib/types/backends/claude/transcript-file.js +195 -0
- package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
- package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/attempts.js +243 -0
- package/lib/types/backends/claude/translate/content.d.ts +33 -0
- package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/content.js +91 -0
- package/lib/types/backends/claude/translate/core.d.ts +76 -0
- package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/core.js +447 -0
- package/lib/types/backends/claude/translate/events.d.ts +9 -0
- package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/events.js +77 -0
- package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
- package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/lanes.js +177 -0
- package/lib/types/backends/claude/translate/messages.d.ts +36 -0
- package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/messages.js +202 -0
- package/lib/types/backends/claude/translate/system.d.ts +40 -0
- package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/system.js +399 -0
- package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
- package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/tasks.js +159 -0
- package/lib/types/backends/claude/translate/types.d.ts +114 -0
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/types.js +1 -0
- package/lib/types/backends/claude/translate.d.ts +9 -0
- package/lib/types/backends/claude/translate.d.ts.map +1 -0
- package/lib/types/backends/claude/translate.js +6 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/external-tokens.js +325 -0
- package/lib/types/backends/codex/auth/route.d.ts +14 -0
- package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/route.js +52 -0
- package/lib/types/backends/codex/auth/status.d.ts +16 -0
- package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/status.js +115 -0
- package/lib/types/backends/codex/backend.d.ts +58 -0
- package/lib/types/backends/codex/backend.d.ts.map +1 -0
- package/lib/types/backends/codex/backend.js +201 -0
- package/lib/types/backends/codex/catalog.d.ts +17 -0
- package/lib/types/backends/codex/catalog.d.ts.map +1 -0
- package/lib/types/backends/codex/catalog.js +128 -0
- package/lib/types/backends/codex/channels.d.ts +59 -0
- package/lib/types/backends/codex/channels.d.ts.map +1 -0
- package/lib/types/backends/codex/channels.js +274 -0
- package/lib/types/backends/codex/contract.d.ts +46 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -0
- package/lib/types/backends/codex/contract.js +80 -0
- package/lib/types/backends/codex/detect.d.ts +14 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -0
- package/lib/types/backends/codex/detect.js +90 -0
- package/lib/types/backends/codex/index.d.ts +6 -0
- package/lib/types/backends/codex/index.d.ts.map +1 -0
- package/lib/types/backends/codex/index.js +5 -0
- package/lib/types/backends/codex/modes.d.ts +16 -0
- package/lib/types/backends/codex/modes.d.ts.map +1 -0
- package/lib/types/backends/codex/modes.js +49 -0
- package/lib/types/backends/codex/narrow.d.ts +20 -0
- package/lib/types/backends/codex/narrow.d.ts.map +1 -0
- package/lib/types/backends/codex/narrow.js +18 -0
- package/lib/types/backends/codex/prefs.d.ts +42 -0
- package/lib/types/backends/codex/prefs.d.ts.map +1 -0
- package/lib/types/backends/codex/prefs.js +124 -0
- package/lib/types/backends/codex/protocol/index.d.ts +149 -0
- package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
- package/lib/types/backends/codex/protocol/index.js +130 -0
- package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
- package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/binary.js +174 -0
- package/lib/types/backends/codex/rpc/client.d.ts +72 -0
- package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/client.js +214 -0
- package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
- package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/hub.js +532 -0
- package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
- package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/transport.js +212 -0
- package/lib/types/backends/codex/session/activity.d.ts +18 -0
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
- package/lib/types/backends/codex/session/activity.js +108 -0
- package/lib/types/backends/codex/session/approvals.d.ts +39 -0
- package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/approvals.js +477 -0
- package/lib/types/backends/codex/session/commands.d.ts +37 -0
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/session/commands.js +141 -0
- package/lib/types/backends/codex/session/controls.d.ts +37 -0
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
- package/lib/types/backends/codex/session/controls.js +303 -0
- package/lib/types/backends/codex/session/goals.d.ts +25 -0
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/goals.js +97 -0
- package/lib/types/backends/codex/session/history.d.ts +52 -0
- package/lib/types/backends/codex/session/history.d.ts.map +1 -0
- package/lib/types/backends/codex/session/history.js +196 -0
- package/lib/types/backends/codex/session/images.d.ts +17 -0
- package/lib/types/backends/codex/session/images.d.ts.map +1 -0
- package/lib/types/backends/codex/session/images.js +138 -0
- package/lib/types/backends/codex/session/input.d.ts +75 -0
- package/lib/types/backends/codex/session/input.d.ts.map +1 -0
- package/lib/types/backends/codex/session/input.js +294 -0
- package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
- package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
- package/lib/types/backends/codex/session/plan-review.js +48 -0
- package/lib/types/backends/codex/session/prompts.d.ts +7 -0
- package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
- package/lib/types/backends/codex/session/prompts.js +47 -0
- package/lib/types/backends/codex/session/session.d.ts +12 -0
- package/lib/types/backends/codex/session/session.d.ts.map +1 -0
- package/lib/types/backends/codex/session/session.js +871 -0
- package/lib/types/backends/codex/session/side-query.d.ts +25 -0
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
- package/lib/types/backends/codex/session/side-query.js +121 -0
- package/lib/types/backends/codex/session/state.d.ts +57 -0
- package/lib/types/backends/codex/session/state.d.ts.map +1 -0
- package/lib/types/backends/codex/session/state.js +1 -0
- package/lib/types/backends/codex/session/subagents.d.ts +28 -0
- package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/codex/session/subagents.js +286 -0
- package/lib/types/backends/codex/session/tasks.d.ts +25 -0
- package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tasks.js +207 -0
- package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
- package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tool-output.js +29 -0
- package/lib/types/backends/codex/translate/commands.d.ts +30 -0
- package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/commands.js +103 -0
- package/lib/types/backends/codex/translate/events.d.ts +9 -0
- package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/events.js +71 -0
- package/lib/types/backends/codex/translate/items.d.ts +112 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/items.js +375 -0
- package/lib/types/backends/codex/translate/live.d.ts +39 -0
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/live.js +315 -0
- package/lib/types/backends/codex/translate/notices.d.ts +27 -0
- package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/notices.js +99 -0
- package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
- package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/presentation.js +237 -0
- package/lib/types/backends/codex/translate/replay.d.ts +18 -0
- package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/replay.js +33 -0
- package/lib/types/backends/codex/translate/usage.d.ts +29 -0
- package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/usage.js +65 -0
- package/lib/types/backends/shared/atomic-file.d.ts +4 -0
- package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
- package/lib/types/backends/shared/atomic-file.js +52 -0
- package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-tokens.js +161 -0
- package/lib/types/backends/shared/display-path.d.ts +3 -0
- package/lib/types/backends/shared/display-path.d.ts.map +1 -0
- package/lib/types/backends/shared/display-path.js +12 -0
- package/lib/types/branding.d.ts +92 -0
- package/lib/types/branding.d.ts.map +1 -0
- package/lib/types/branding.js +117 -0
- package/lib/types/channel/activity.d.ts +53 -0
- package/lib/types/channel/activity.d.ts.map +1 -0
- package/lib/types/channel/activity.js +955 -0
- package/lib/types/channel/capabilities.d.ts +24 -0
- package/lib/types/channel/capabilities.d.ts.map +1 -0
- package/lib/types/channel/capabilities.js +57 -0
- package/lib/types/channel/channel-slug.d.ts +9 -0
- package/lib/types/channel/channel-slug.d.ts.map +1 -0
- package/lib/types/channel/channel-slug.js +15 -0
- package/lib/types/channel/channel-wizard.d.ts +30 -0
- package/lib/types/channel/channel-wizard.d.ts.map +1 -0
- package/lib/types/channel/channel-wizard.js +226 -0
- package/lib/types/channel/elicitation.d.ts +135 -0
- package/lib/types/channel/elicitation.d.ts.map +1 -0
- package/lib/types/channel/elicitation.js +360 -0
- package/lib/types/channel/goal-command.d.ts +49 -0
- package/lib/types/channel/goal-command.d.ts.map +1 -0
- package/lib/types/channel/goal-command.js +72 -0
- package/lib/types/channel/history-restore.d.ts +16 -0
- package/lib/types/channel/history-restore.d.ts.map +1 -0
- package/lib/types/channel/history-restore.js +214 -0
- package/lib/types/channel/interaction.d.ts +38 -0
- package/lib/types/channel/interaction.d.ts.map +1 -0
- package/lib/types/channel/interaction.js +110 -0
- package/lib/types/channel/job-format.d.ts +6 -0
- package/lib/types/channel/job-format.d.ts.map +1 -0
- package/lib/types/channel/job-format.js +12 -0
- package/lib/types/channel/live-output.d.ts +35 -0
- package/lib/types/channel/live-output.d.ts.map +1 -0
- package/lib/types/channel/live-output.js +74 -0
- package/lib/types/channel/model-capabilities.d.ts +10 -0
- package/lib/types/channel/model-capabilities.d.ts.map +1 -0
- package/lib/types/channel/model-capabilities.js +51 -0
- package/lib/types/channel/permissions.d.ts +155 -0
- package/lib/types/channel/permissions.d.ts.map +1 -0
- package/lib/types/channel/permissions.js +188 -0
- package/lib/types/channel/projection.d.ts +110 -0
- package/lib/types/channel/projection.d.ts.map +1 -0
- package/lib/types/channel/projection.js +1521 -0
- package/lib/types/channel/question-record.d.ts +76 -0
- package/lib/types/channel/question-record.d.ts.map +1 -0
- package/lib/types/channel/question-record.js +109 -0
- package/lib/types/channel/questions.d.ts +204 -0
- package/lib/types/channel/questions.d.ts.map +1 -0
- package/lib/types/channel/questions.js +286 -0
- package/lib/types/channel/sanitize.d.ts +49 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -0
- package/lib/types/channel/sanitize.js +88 -0
- package/lib/types/channel/selection-record.d.ts +18 -0
- package/lib/types/channel/selection-record.d.ts.map +1 -0
- package/lib/types/channel/selection-record.js +45 -0
- package/lib/types/channel/side-prompts.d.ts +59 -0
- package/lib/types/channel/side-prompts.d.ts.map +1 -0
- package/lib/types/channel/side-prompts.js +127 -0
- package/lib/types/channel/transcript.d.ts +17 -0
- package/lib/types/channel/transcript.d.ts.map +1 -0
- package/lib/types/channel/transcript.js +19 -0
- package/lib/types/channel/usage.d.ts +48 -0
- package/lib/types/channel/usage.d.ts.map +1 -0
- package/lib/types/channel/usage.js +143 -0
- package/lib/types/commands.d.ts +147 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +196 -2
- package/lib/types/components/AgentMessageComposer.d.ts +50 -0
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
- package/lib/types/components/AgentMessageComposer.js +159 -0
- package/lib/types/components/BtwPanel.d.ts +13 -12
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +35 -24
- package/lib/types/components/ChannelPicker.d.ts +40 -0
- package/lib/types/components/ChannelPicker.d.ts.map +1 -0
- package/lib/types/components/ChannelPicker.js +26 -0
- package/lib/types/components/Chat/JobCard.d.ts +29 -31
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +31 -112
- package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
- package/lib/types/components/Chat/SubagentMessage.js +10 -3
- package/lib/types/components/ClaudeGirl.d.ts +27 -0
- package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
- package/lib/types/components/ClaudeGirl.js +30 -0
- package/lib/types/components/CodeBlockFrame.d.ts +19 -0
- package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
- package/lib/types/components/CodeBlockFrame.js +138 -0
- package/lib/types/components/CommandSuggestions.d.ts +10 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -3
- package/lib/types/components/ContextBarView.d.ts +2 -2
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +18 -8
- package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
- package/lib/types/components/EffortChargeGlyph.js +3 -4
- package/lib/types/components/EffortInputBorder.d.ts +1 -2
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +7 -4
- package/lib/types/components/EffortSlider.d.ts +5 -1
- package/lib/types/components/EffortSlider.d.ts.map +1 -1
- package/lib/types/components/EffortSlider.js +2 -2
- package/lib/types/components/EffortTierBadge.d.ts +1 -2
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
- package/lib/types/components/EffortTierBadge.js +8 -5
- package/lib/types/components/GoalTodoPanel.d.ts +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +11 -5
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/JobsPanel.d.ts +8 -9
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +72 -13
- package/lib/types/components/KernelPicker.d.ts +28 -0
- package/lib/types/components/KernelPicker.d.ts.map +1 -0
- package/lib/types/components/KernelPicker.js +37 -0
- package/lib/types/components/LogoV2.d.ts +7 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +120 -24
- package/lib/types/components/Markdown.d.ts +2 -1
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +37 -8
- package/lib/types/components/MathBlock.d.ts.map +1 -1
- package/lib/types/components/MathBlock.js +3 -1
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
- package/lib/types/components/MermaidDiagram.js +7 -5
- package/lib/types/components/MessageList.d.ts +21 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +62 -42
- package/lib/types/components/ModePicker.d.ts +20 -0
- package/lib/types/components/ModePicker.d.ts.map +1 -0
- package/lib/types/components/ModePicker.js +17 -0
- package/lib/types/components/PromptInput.d.ts +2 -2
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +308 -55
- package/lib/types/components/SdkInstallWizard.d.ts +44 -0
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
- package/lib/types/components/SdkInstallWizard.js +18 -0
- package/lib/types/components/SearchBox.d.ts +7 -8
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +18 -9
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +113 -6
- package/lib/types/components/StarPrompt.d.ts.map +1 -1
- package/lib/types/components/StarPrompt.js +5 -3
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +6 -4
- package/lib/types/components/SubagentCard.d.ts +2 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +25 -18
- package/lib/types/components/SubagentDashboard.d.ts +10 -6
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +32 -21
- package/lib/types/components/SubagentDetailScene.d.ts +16 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +196 -45
- package/lib/types/components/SyntaxText.d.ts.map +1 -1
- package/lib/types/components/SyntaxText.js +4 -1
- package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
- package/lib/types/components/TurnInterruptedRow.js +6 -3
- package/lib/types/components/TurnUsageRow.d.ts +24 -0
- package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
- package/lib/types/components/TurnUsageRow.js +46 -0
- package/lib/types/components/WorkingSpinner.d.ts +2 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +21 -4
- package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +173 -25
- package/lib/types/components/claudeGirlSprite.d.ts +18 -0
- package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
- package/lib/types/components/claudeGirlSprite.js +48 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +46 -13
- package/lib/types/components/design-system/ThemedText.d.ts +3 -1
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/diffPatch.d.ts +55 -0
- package/lib/types/components/diffPatch.d.ts.map +1 -0
- package/lib/types/components/diffPatch.js +142 -0
- package/lib/types/components/kernelCatalog.d.ts +48 -0
- package/lib/types/components/kernelCatalog.d.ts.map +1 -0
- package/lib/types/components/kernelCatalog.js +53 -0
- package/lib/types/components/launchpadActions.d.ts +13 -6
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +26 -4
- package/lib/types/components/launchpadParams.d.ts +101 -0
- package/lib/types/components/launchpadParams.d.ts.map +1 -0
- package/lib/types/components/launchpadParams.js +171 -0
- package/lib/types/components/maidPortrait.d.ts +37 -5
- package/lib/types/components/maidPortrait.d.ts.map +1 -1
- package/lib/types/components/maidPortrait.js +73 -54
- package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
- package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
- package/lib/types/components/messages/AgentMessageFlow.js +37 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
- package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
- package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptLeaves.js +74 -0
- package/lib/types/components/messages/agentTeam.d.ts +69 -0
- package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
- package/lib/types/components/messages/agentTeam.js +53 -0
- package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
- package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
- package/lib/types/components/messages/liveOutputLines.js +100 -0
- package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
- package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
- package/lib/types/components/messages/subagentTranscript.js +304 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
- package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +11 -6
- package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
- package/lib/types/components/questions/ProviderModelEditor.js +266 -0
- package/lib/types/components/shimmer.d.ts +26 -0
- package/lib/types/components/shimmer.d.ts.map +1 -1
- package/lib/types/components/shimmer.js +26 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/InfoPanel.js +13 -8
- package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +55 -77
- package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +8 -4
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
- package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
- package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/agentViewStore.js +26 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/threads.js +302 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +70 -30
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
- package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/mood.js +44 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +203 -29
- package/lib/types/components/splashFonts.d.ts +17 -9
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +119 -15
- package/lib/types/components/splashLayout.d.ts.map +1 -1
- package/lib/types/components/splashLayout.js +3 -1
- package/lib/types/components/subagentDetailMemory.d.ts +17 -0
- package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
- package/lib/types/components/subagentDetailMemory.js +28 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
- package/lib/types/components/trajectory/Inspector.js +9 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
- package/lib/types/components/trajectory/Ledger.js +7 -1
- package/lib/types/components/trajectory/scope.d.ts +64 -0
- package/lib/types/components/trajectory/scope.d.ts.map +1 -0
- package/lib/types/components/trajectory/scope.js +88 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
- package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
- package/lib/types/customTheme.d.ts +4 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +6 -8
- package/lib/types/dsh-adapter/approvals.d.ts +18 -5
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +17 -4
- package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
- package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/session.js +291 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/translate.js +467 -0
- package/lib/types/dsh-adapter/backends.d.ts +49 -0
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.js +124 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +7 -5
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
- package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding.js +102 -35
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +3 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/files.js +45 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/host.js +116 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/decisions.js +4 -4
- package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/emitter.js +5 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/extensions.js +714 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
- package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
- package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/preferences.js +16 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +38 -1143
- package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/question-record.js +3 -107
- package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
- package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +7 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +17 -21
- package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.js +5 -111
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
- package/lib/types/dsh-adapter/channel.d.ts +17 -8
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +24 -1059
- package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +6 -1
- package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/decision-guard.js +44 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extension-events.js +22 -10
- package/lib/types/dsh-adapter/index.d.ts +41 -3
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +28 -1
- package/lib/types/dsh-adapter/jobs.d.ts +5 -3
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +53 -14
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
- package/lib/types/dsh-adapter/plugin.d.ts +38 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +546 -110
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +118 -52
- package/lib/types/dsh-adapter/questions.d.ts +29 -124
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +33 -267
- package/lib/types/dsh-adapter/recap.d.ts +3 -15
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
- package/lib/types/dsh-adapter/recap.js +3 -46
- package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sanitize.js +4 -84
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
- package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +60 -27
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +6 -4
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +1 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +3 -13
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +7 -0
- package/lib/types/dsh-adapter/themes.d.ts +1 -1
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/index.js +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +7 -0
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +11 -2
- package/lib/types/handoffAck.d.ts +57 -0
- package/lib/types/handoffAck.d.ts.map +1 -0
- package/lib/types/handoffAck.js +154 -0
- package/lib/types/handoffEvents.d.ts +52 -0
- package/lib/types/handoffEvents.d.ts.map +1 -0
- package/lib/types/handoffEvents.js +128 -0
- package/lib/types/i18n.d.ts +3189 -68
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +855 -9
- package/lib/types/ink/colorize.d.ts.map +1 -1
- package/lib/types/ink/colorize.js +8 -2
- package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
- package/lib/types/ink/components/AlternateScreen.js +25 -4
- package/lib/types/ink/components/App.d.ts +5 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +52 -5
- package/lib/types/ink/components/Image.d.ts +8 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/components/Text.d.ts +8 -1
- package/lib/types/ink/components/Text.d.ts.map +1 -1
- package/lib/types/ink/components/Text.js +11 -1
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +75 -3
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +9 -4
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +8 -2
- package/lib/types/ink/kitty-graphics.d.ts +7 -2
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +15 -7
- package/lib/types/ink/node-cache.d.ts +15 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +4 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +2 -0
- package/lib/types/ink/parse-keypress.d.ts +13 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +438 -19
- package/lib/types/ink/reconciler.d.ts.map +1 -1
- package/lib/types/ink/reconciler.js +9 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +200 -4
- package/lib/types/ink/render-stats.d.ts +35 -0
- package/lib/types/ink/render-stats.d.ts.map +1 -0
- package/lib/types/ink/render-stats.js +53 -0
- package/lib/types/ink/sixel-codec.d.ts +11 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +10 -3
- package/lib/types/ink/sixel-graphics.js +2 -2
- package/lib/types/ink/styles.d.ts +46 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +7 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +1 -1
- package/lib/types/ink/terminal-querier.js +4 -4
- package/lib/types/ink/text-decoration.d.ts +49 -0
- package/lib/types/ink/text-decoration.d.ts.map +1 -0
- package/lib/types/ink/text-decoration.js +235 -0
- package/lib/types/ink/update-overflow-guard.d.ts +9 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +41 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +5 -1
- package/lib/types/kernelPrefs.d.ts +51 -0
- package/lib/types/kernelPrefs.d.ts.map +1 -0
- package/lib/types/kernelPrefs.js +126 -0
- package/lib/types/modelRecents.d.ts +10 -2
- package/lib/types/modelRecents.d.ts.map +1 -1
- package/lib/types/modelRecents.js +20 -7
- package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
- package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
- package/lib/types/screens/AgentTranscriptScene.js +269 -0
- package/lib/types/screens/Chat.d.ts +45 -7
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +625 -113
- package/lib/types/screens/Launchpad.d.ts +24 -7
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +147 -28
- package/lib/types/screens/SessionSupervisor.d.ts +3 -3
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +69 -5
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +211 -7
- package/lib/types/screens/StatusLine.d.ts +40 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +131 -19
- package/lib/types/screens/StatusMetrics.d.ts +53 -17
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +141 -30
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/screens/TrajectoryScene.js +74 -12
- package/lib/types/screens/chat/backendCommands.d.ts +37 -0
- package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
- package/lib/types/screens/chat/backendCommands.js +51 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
- package/lib/types/screens/chat/useBackendChannels.js +117 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useKernelPicker.js +72 -0
- package/lib/types/screens/chatOverlay.d.ts +32 -2
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +9 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
- package/lib/types/sessionHistory.d.ts +18 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +46 -4
- package/lib/types/sessionPins.d.ts +7 -0
- package/lib/types/sessionPins.d.ts.map +1 -1
- package/lib/types/sessionPins.js +9 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
- package/lib/types/sessions/resumeFailure.js +2 -1
- package/lib/types/settings/definitions.d.ts +74 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +50 -4
- package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
- package/lib/types/terminal-utils/hyperlink.js +21 -4
- package/lib/types/terminal-utils/markdown.d.ts +34 -6
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +257 -66
- package/lib/types/theme.d.ts +49 -8
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +514 -18
- package/lib/types/tips.js +2 -2
- package/lib/types/trajectory/effortIgnition.d.ts +25 -7
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
- package/lib/types/trajectory/effortIgnition.js +106 -34
- package/lib/types/trajectory/window.d.ts +26 -0
- package/lib/types/trajectory/window.d.ts.map +1 -0
- package/lib/types/trajectory/window.js +27 -0
- package/lib/types/tuiDisplayPrefs.d.ts +38 -1
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +45 -1
- package/lib/types/update.d.ts +88 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +285 -18
- package/lib/types/utils/crashDetail.d.ts +56 -0
- package/lib/types/utils/crashDetail.d.ts.map +1 -0
- package/lib/types/utils/crashDetail.js +175 -0
- package/lib/types/utils/imageResize.d.ts +9 -23
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +24 -20
- package/lib/types/utils/inputPaste.d.ts +9 -8
- package/lib/types/utils/inputPaste.d.ts.map +1 -1
- package/lib/types/utils/inputPaste.js +53 -16
- package/lib/types/utils/jsonl.d.ts +24 -0
- package/lib/types/utils/jsonl.d.ts.map +1 -0
- package/lib/types/utils/jsonl.js +36 -0
- package/package.json +18 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptInput.d.ts","sourceRoot":"","sources":["../../../src/components/PromptInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"PromptInput.d.ts","sourceRoot":"","sources":["../../../src/components/PromptInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AA+BzB,OAAO,KAAK,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAa1E,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAkOjF;gFACgF;AAChF,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,gBAAgB,EAAE,CAWpB;AA+MD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAA;IAClB,yFAAyF;IACzF,IAAI,IAAI,MAAM,CAAA;IACd,4EAA4E;IAC5E,aAAa,CAAC,IAAI,SAAS;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACtE,KAAK,IAAI,IAAI,CAAA;IACb;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B;;;;;OAKG;IACH,oBAAoB,IAAI,OAAO,CAAA;IAC/B,yEAAyE;IACzE,aAAa,IAAI,OAAO,CAAA;IACxB,2EAA2E;IAC3E,SAAS,IAAI,OAAO,CAAA;IACpB;yEACqE;IACrE,SAAS,IAAI,OAAO,CAAA;CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAA;IACrE;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,IAAI,IAAI,CAAA;IACpB;;;OAGG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,6EAA6E;IAC7E,eAAe,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,cAAc,CAAC,IAAI,IAAI,CAAA;IACvB,kEAAkE;IAClE,eAAe,CAAC,IAAI,IAAI,CAAA;IACxB;;;OAGG;IACH,mBAAmB,CAAC,IAAI,IAAI,CAAA;IAC5B;;;;;;;;OAQG;IACH,cAAc,CAAC,IAAI,IAAI,CAAA;IACvB;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAA;IACrC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IACxD;;;;;;;OAOG;IACH,YAAY,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAA;IAC7G;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,qBAAqB,CAAC,IAAI,IAAI,CAAA;IAC9B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,eAAe,EACf,SAAiB,EACjB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,aAAa,EACb,YAAY,EACZ,gBAAwB,EACxB,qBAAqB,EACrB,GAAc,GACf,EAAE,gBAAgB,4BAw3HlB"}
|
|
@@ -7,11 +7,12 @@ import { constants as fsConstants } from 'node:fs';
|
|
|
7
7
|
import { open, unlink } from 'node:fs/promises';
|
|
8
8
|
import { basename, resolve } from 'node:path';
|
|
9
9
|
import { t } from '../i18n.js';
|
|
10
|
+
import { kernelDisplayName } from './kernelCatalog.js';
|
|
10
11
|
import { Box, Text, useInput, useTerminalSize, useTheme } from '../ui.js';
|
|
11
12
|
import { EffortChargeGlyph } from './EffortChargeGlyph.js';
|
|
12
13
|
import { EffortInputBorder } from './EffortInputBorder.js';
|
|
13
14
|
import { EffortTierBadge } from './EffortTierBadge.js';
|
|
14
|
-
import {
|
|
15
|
+
import { cursorGlyphColor, getTheme } from '../theme.js';
|
|
15
16
|
import { sessionColorHex } from '../terminal-utils/sessionColors.js';
|
|
16
17
|
import { useDeclaredCursor } from '../ink/hooks/use-declared-cursor.js';
|
|
17
18
|
import { TerminalWriteContext } from '../ink/useTerminalNotification.js';
|
|
@@ -26,7 +27,7 @@ import { formatClipboardInsert, readClipboard } from '../utils/clipboard.js';
|
|
|
26
27
|
import { imagePathMediaType, parsePastedImagePath, stageClipboardFilePaths } from '../utils/pastedImagePath.js';
|
|
27
28
|
import { editInExternalEditor } from '../utils/externalEditor.js';
|
|
28
29
|
import { setPromptEditorNode, EditorButton } from './PromptEditor.js';
|
|
29
|
-
import { isHiddenCommandName, parseCommandName } from '../commands.js';
|
|
30
|
+
import { isHiddenCommandName, isUnavailableLocalCommand, parseCommandName, workingHoldOf } from '../commands.js';
|
|
30
31
|
import { appendHistory, HISTORY_LIMIT, historyProjectKey, loadHistoryOldestFirst } from '../history.js';
|
|
31
32
|
import { mentionAtCaret } from '../utils/mentions.js';
|
|
32
33
|
import { preserveSelection } from '../utils/fileSuggestions.js';
|
|
@@ -35,7 +36,8 @@ import { actionMatches } from '../utils/keymap.js';
|
|
|
35
36
|
import { CommandSuggestions } from './CommandSuggestions.js';
|
|
36
37
|
import { FileSuggestions } from './FileSuggestions.js';
|
|
37
38
|
import { HelpMenu } from './HelpMenu.js';
|
|
38
|
-
import { OverlayAbove } from './OverlayAbove.js';
|
|
39
|
+
import { OverlayAbove, useOverlayListRows } from './OverlayAbove.js';
|
|
40
|
+
import { listWindow } from './listWindow.js';
|
|
39
41
|
import { SuggestionCard, cardContentWidth } from './SuggestionCard.js';
|
|
40
42
|
import { filterLiveImageBindings, isUsableDraftSnapshot, resolveBindingGeneration, } from './promptDraftCache.js';
|
|
41
43
|
export { sanitizeEditableText, sanitizePastedText } from '../utils/inputPaste.js';
|
|
@@ -421,6 +423,23 @@ const DOUBLE_CLICK_MS = 500;
|
|
|
421
423
|
*/
|
|
422
424
|
export function PromptInput({ channel, toastSuppressed, suspended = false, draftCache, helpOpen, onToggleHelp, onRunCommand, selectionActive, fillText, onFillConsumed, onRewindRequest, onBackgroundRequest, onOpenSessions, backgroundAgentsNeedingInput, controllerRef, onCaretImage, caretPreviewOpen = false, onDismissCaretPreview, now = Date.now, }) {
|
|
423
425
|
const [themeName] = useTheme();
|
|
426
|
+
/**
|
|
427
|
+
* Caret fill. The face is self-drawn (the native cursor is hidden), and it
|
|
428
|
+
* used to be `inverse` only — i.e. always the ink color, which a theme whose
|
|
429
|
+
* input surface is already ink-adjacent cannot make readable. `cursor` names
|
|
430
|
+
* the block fill, and the glyph on it is whichever ink contrasts with that
|
|
431
|
+
* fill (cursorGlyphColor) — `inverseText` alone cannot serve a light caret;
|
|
432
|
+
* empty keeps the inverse-video caret for palettes that predate the key.
|
|
433
|
+
*
|
|
434
|
+
* A palette a legacy runtime resolver returns can be missing the key
|
|
435
|
+
* altogether (normalizeThemePalette hands such a palette back untouched), so
|
|
436
|
+
* the undefined case normalizes here — ONE place, both consumers below read
|
|
437
|
+
* `''` and take the inverse path. Without it the caret renders with no
|
|
438
|
+
* background at all (the native cursor is hidden: the caret disappears).
|
|
439
|
+
*/
|
|
440
|
+
const cursorTheme = getTheme(themeName);
|
|
441
|
+
const cursorColor = cursorTheme.cursor ?? '';
|
|
442
|
+
const cursorGlyph = cursorGlyphColor(cursorTheme);
|
|
424
443
|
// Raw stdout writer for OSC 52 clipboard writes (selection copy) — must
|
|
425
444
|
// bypass the frame pipeline; null outside a mounted Ink App.
|
|
426
445
|
const writeRaw = React.useContext(TerminalWriteContext);
|
|
@@ -573,6 +592,15 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
573
592
|
const [homeHovered, setHomeHovered] = React.useState(false);
|
|
574
593
|
/** Pointer over the input box (drives the hover peek card). */
|
|
575
594
|
const [hovered, setHovered] = React.useState(false);
|
|
595
|
+
/** Highlighted row of the docked-queue selector (null = inactive; the
|
|
596
|
+
* index runs over the docked subset of `channel.pending`, oldest first).
|
|
597
|
+
* The ref mirrors it for the deferred consumeEscape controller closure. */
|
|
598
|
+
const [dockSelected, setDockSelectedState] = React.useState(null);
|
|
599
|
+
const dockSelectedRef = React.useRef(null);
|
|
600
|
+
const setDockSelected = (index) => {
|
|
601
|
+
dockSelectedRef.current = index;
|
|
602
|
+
setDockSelectedState(index);
|
|
603
|
+
};
|
|
576
604
|
/** 120ms grace so the pointer crossing the input border row from the
|
|
577
605
|
* chip up onto the peek card never flickers the card. */
|
|
578
606
|
const hoverLeaveTimerRef = React.useRef(null);
|
|
@@ -995,7 +1023,24 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
995
1023
|
// loses nothing functional. (PR #446; restored after the picker
|
|
996
1024
|
// snapshot's cherry-pick resurrected the old formula.)
|
|
997
1025
|
const helpViewportHeight = Math.max(3, Math.min(terminalRows - 7, 15));
|
|
998
|
-
|
|
1026
|
+
// Issue #1072: while a turn runs, the overlay groups the commands that
|
|
1027
|
+
// AFFECT the running conversation (gated / conversation-acting / steering)
|
|
1028
|
+
// below the ones that do not. The partition is a stable reorder and keeps ONE
|
|
1029
|
+
// index space: `suggestions` stays the only list selection, Enter dispatch and
|
|
1030
|
+
// clicks read, and the default selection stays the first normal-region row.
|
|
1031
|
+
// The region is marked by colour only — it costs no display row.
|
|
1032
|
+
const completions = value.startsWith('/') ? channel.commandCompletions(value) : [];
|
|
1033
|
+
const holdOf = (commandLine) => workingHoldOf(commandLine, channel.commandList.find(command => command.name === commandLine.replace(/^\//, '').split(/[\t ]/u)[0])?.skill === true) !== undefined;
|
|
1034
|
+
const normalCompletions = channel.working
|
|
1035
|
+
? completions.filter(completion => !holdOf(completion.commandLine))
|
|
1036
|
+
: completions;
|
|
1037
|
+
/** 灰区起始索引;灰区为空时不分区。 */
|
|
1038
|
+
const suggestionsHoldFrom = channel.working && normalCompletions.length < completions.length
|
|
1039
|
+
? normalCompletions.length
|
|
1040
|
+
: undefined;
|
|
1041
|
+
const suggestions = suggestionsHoldFrom === undefined
|
|
1042
|
+
? completions
|
|
1043
|
+
: [...normalCompletions, ...completions.filter(completion => holdOf(completion.commandLine))];
|
|
999
1044
|
const overlayOpen = suggestions.length > 0 &&
|
|
1000
1045
|
!expanded &&
|
|
1001
1046
|
!helpOpen &&
|
|
@@ -1163,6 +1208,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1163
1208
|
// this edit replaces, and `diffSpan` needs both texts. `reset` ends the
|
|
1164
1209
|
// draft's history, `silent` (undo itself, a recall) leaves it untouched.
|
|
1165
1210
|
if (next !== prev) {
|
|
1211
|
+
// Every real text change (typing, paste, history, external editor,
|
|
1212
|
+
// undo) hands the arrows back to the draft: a held-queue selection
|
|
1213
|
+
// must not survive an edited draft and steer ↑/↓ over the text.
|
|
1214
|
+
// Caret-only moves (next === prev) never land here.
|
|
1215
|
+
if (dockSelectedRef.current !== null)
|
|
1216
|
+
setDockSelected(null);
|
|
1166
1217
|
if (undo === 'reset')
|
|
1167
1218
|
clearDraftUndo();
|
|
1168
1219
|
else if (undo !== 'silent') {
|
|
@@ -1448,6 +1499,9 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1448
1499
|
* cannot withdraw inbox messages (released package without the inbox API).
|
|
1449
1500
|
*/
|
|
1450
1501
|
const pullBackLast = () => {
|
|
1502
|
+
// Alt+↑ keeps its direct last-item meaning even while the dock selector
|
|
1503
|
+
// is open — one press, one retracted row (the selector closes with it).
|
|
1504
|
+
setDockSelected(null);
|
|
1451
1505
|
const item = channel.pending[channel.pending.length - 1];
|
|
1452
1506
|
if (!item)
|
|
1453
1507
|
return;
|
|
@@ -1489,6 +1543,87 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1489
1543
|
channel.notify(t('input-cannot-retract'), { color: 'warning', timeoutMs: 2500 });
|
|
1490
1544
|
}
|
|
1491
1545
|
};
|
|
1546
|
+
/**
|
|
1547
|
+
* The docked queue (Esc parked it while interrupting, Claude Code parity):
|
|
1548
|
+
* previews the composer keeps until the user sends them all (⏎ on an empty
|
|
1549
|
+
* draft / the clickable hint) or retracts items (the ↑ selector / Alt+↑).
|
|
1550
|
+
*/
|
|
1551
|
+
const dockedPending = channel.pending.filter(item => item.docked === true);
|
|
1552
|
+
const dockCount = dockedPending.length;
|
|
1553
|
+
/** Send the whole dock now (⏎ on an empty draft, or the hint row click):
|
|
1554
|
+
* FIFO, exactly once, through the channel's own delivery chain. */
|
|
1555
|
+
const sendDocked = () => {
|
|
1556
|
+
const sent = channel.deliverDocked();
|
|
1557
|
+
if (sent > 0)
|
|
1558
|
+
channel.notify(t('input-dock-sent', { n: sent }), { timeoutMs: 2500 });
|
|
1559
|
+
setDockSelected(null);
|
|
1560
|
+
};
|
|
1561
|
+
/** Retract one docked row into the draft for editing (selector ⏎, row
|
|
1562
|
+
* click, Alt+↑ on the last): purely local — the backend dropped its copy
|
|
1563
|
+
* with the aborted turn, so every backend can do it.
|
|
1564
|
+
*
|
|
1565
|
+
* A draft with real content is never destroyed by the retraction: it
|
|
1566
|
+
* SWAPS — the whole draft (text + staged images) parks at
|
|
1567
|
+
* the dock's tail while the clicked row comes into the input. Nothing
|
|
1568
|
+
* sends; the swap is one undo step, so Ctrl+Z brings the parked draft
|
|
1569
|
+
* back (text, caret, images and fold block; the parked row retains the
|
|
1570
|
+
* image capabilities, see stageIdIsRetained). Only an empty (or
|
|
1571
|
+
* whitespace-only) draft takes the plain retraction path. */
|
|
1572
|
+
const editDocked = (index) => {
|
|
1573
|
+
const item = dockedPending[index];
|
|
1574
|
+
setDockSelected(null);
|
|
1575
|
+
if (item === undefined)
|
|
1576
|
+
return;
|
|
1577
|
+
if (valueRef.current.trim() !== '') {
|
|
1578
|
+
// Park the draft FIRST: its capabilities must already be retained by
|
|
1579
|
+
// the pending row when setInput's undo bookkeeping and sidecar pruning
|
|
1580
|
+
// run below, or a later swap-back would find them discarded.
|
|
1581
|
+
const swapped = channel.swapDockedForDraft(item.id, {
|
|
1582
|
+
text: valueRef.current,
|
|
1583
|
+
images: imageRefsFor(valueRef.current),
|
|
1584
|
+
});
|
|
1585
|
+
if (!swapped) {
|
|
1586
|
+
channel.notify(t('input-cannot-retract'), { color: 'warning', timeoutMs: 2500 });
|
|
1587
|
+
return;
|
|
1588
|
+
}
|
|
1589
|
+
// One sealed undo step captures the draft the swap replaces (same
|
|
1590
|
+
// shape as the external-editor refill): snapshot the fold block
|
|
1591
|
+
// BEFORE clearing it, so Ctrl+Z restores the chip too. setInput runs
|
|
1592
|
+
// while the sidecar still maps the parked draft's tokens — the undo
|
|
1593
|
+
// snapshot then carries them, and its pruning sees the pending row
|
|
1594
|
+
// already retains every capability (nothing is discarded).
|
|
1595
|
+
const beforeBlock = foldBlockRef.current;
|
|
1596
|
+
updateFoldBlock(null);
|
|
1597
|
+
setInput(item.text, item.text.length, 'step', beforeBlock);
|
|
1598
|
+
replaceDraftImages(item.images ?? []);
|
|
1599
|
+
setSelectedCommand(0);
|
|
1600
|
+
setFileSelected(0);
|
|
1601
|
+
channel.notify(t('input-dock-swapped'), { timeoutMs: 2000 });
|
|
1602
|
+
return;
|
|
1603
|
+
}
|
|
1604
|
+
if (!channel.removePending(item.id)) {
|
|
1605
|
+
channel.notify(t('input-cannot-retract'), { color: 'warning', timeoutMs: 2500 });
|
|
1606
|
+
return;
|
|
1607
|
+
}
|
|
1608
|
+
restoreDraftImages({
|
|
1609
|
+
text: item.text,
|
|
1610
|
+
images: item.images ?? [],
|
|
1611
|
+
});
|
|
1612
|
+
setInput(item.text, item.text.length, 'silent');
|
|
1613
|
+
updateFoldBlock(null);
|
|
1614
|
+
setSelectedCommand(0);
|
|
1615
|
+
setFileSelected(0);
|
|
1616
|
+
channel.notify(t('input-retracted'), { timeoutMs: 2000 });
|
|
1617
|
+
};
|
|
1618
|
+
// A dock that empties or shrinks under an open selector (rows claimed,
|
|
1619
|
+
// a receipt un-docking them, a session reset) leaves the highlight
|
|
1620
|
+
// pointing past the list — fold it instead of steering arrows at an
|
|
1621
|
+
// invisible row.
|
|
1622
|
+
React.useEffect(() => {
|
|
1623
|
+
if (dockSelected !== null && (dockSelected >= dockCount || dockCount === 0)) {
|
|
1624
|
+
setDockSelected(null);
|
|
1625
|
+
}
|
|
1626
|
+
}, [dockSelected, dockCount]);
|
|
1492
1627
|
/**
|
|
1493
1628
|
* Ctrl+Enter: abort the running turn and send the input immediately — the
|
|
1494
1629
|
* model stops what it is doing and starts on this message right away.
|
|
@@ -1501,10 +1636,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1501
1636
|
}
|
|
1502
1637
|
// Abort the running turn and deliver: previously queued pending
|
|
1503
1638
|
// messages first (FIFO), then the current input — all processed
|
|
1504
|
-
// immediately once the abort settles.
|
|
1639
|
+
// immediately once the abort settles. Docked rows are NOT listed here:
|
|
1640
|
+
// the channel's interruptAndDeliver takes the dock itself first (same
|
|
1641
|
+
// FIFO order), so including them would send each docked text twice.
|
|
1505
1642
|
const images = imageRefsFor(trimmed);
|
|
1506
1643
|
const queued = [
|
|
1507
|
-
...channel.pending.map(item => ({ text: item.text, images: item.images ?? [] })),
|
|
1644
|
+
...channel.pending.filter(item => item.docked !== true).map(item => ({ text: item.text, images: item.images ?? [] })),
|
|
1508
1645
|
{ text: value, images },
|
|
1509
1646
|
];
|
|
1510
1647
|
const count = channel.interruptAndDeliver(queued);
|
|
@@ -1529,6 +1666,18 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1529
1666
|
if (parsed === undefined)
|
|
1530
1667
|
return false;
|
|
1531
1668
|
const command = channel.commandList.find(entry => entry.name === parsed.name);
|
|
1669
|
+
// A built-in the bound backend does not serve is hidden from the menu and
|
|
1670
|
+
// Tab, and a typed one must neither run nor reach the model as text. A
|
|
1671
|
+
// partial embedder channel carries no snapshot: everything is served.
|
|
1672
|
+
// oxlint-disable-next-line typescript/no-unnecessary-condition -- partial embedder channels omit the snapshot
|
|
1673
|
+
const capabilities = channel.backendCapabilities;
|
|
1674
|
+
if (command === undefined && isUnavailableLocalCommand(parsed.name, capabilities)) {
|
|
1675
|
+
channel.notify(t('cmd-unavailable-backend', { cmd: parsed.name, backend: capabilities === undefined ? '' : kernelDisplayName(capabilities.backendId) }), {
|
|
1676
|
+
color: 'warning',
|
|
1677
|
+
timeoutMs: 4000,
|
|
1678
|
+
});
|
|
1679
|
+
return true;
|
|
1680
|
+
}
|
|
1532
1681
|
const known = command !== undefined || isHiddenCommandName(parsed.name);
|
|
1533
1682
|
if (!known)
|
|
1534
1683
|
return false;
|
|
@@ -1603,8 +1752,9 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1603
1752
|
* The Enter main path, shared by the inline prompt, the expanded
|
|
1604
1753
|
* editor's Ctrl+Enter, and its Send button:
|
|
1605
1754
|
* - command menu open → run the SELECTED command (never send `/mo`);
|
|
1606
|
-
* - model working →
|
|
1607
|
-
*
|
|
1755
|
+
* - model working → a KNOWN command is still a command; anything else
|
|
1756
|
+
* STEERS into the running turn (next step boundary, agent continues —
|
|
1757
|
+
* the "immediate" send; Codex/pi semantics);
|
|
1608
1758
|
* - otherwise → submit directly (or run a unique command).
|
|
1609
1759
|
* Reads valueRef so a key batch (typing + Enter in one stdin read)
|
|
1610
1760
|
* operates on the text the preceding keys produced.
|
|
@@ -1618,6 +1768,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1618
1768
|
return;
|
|
1619
1769
|
lastEnterAtRef.current = now;
|
|
1620
1770
|
const value = valueRef.current;
|
|
1771
|
+
// The docked-queue selector owns Enter while a row is highlighted and
|
|
1772
|
+
// the draft is untouched: retract that row into the input for editing.
|
|
1773
|
+
if (dockSelectedRef.current !== null && value.trim() === '' && dockCount > 0) {
|
|
1774
|
+
editDocked(dockSelectedRef.current);
|
|
1775
|
+
return;
|
|
1776
|
+
}
|
|
1621
1777
|
if (overlayOpen) {
|
|
1622
1778
|
const command = suggestions[selectedCommand];
|
|
1623
1779
|
if (command) {
|
|
@@ -1634,19 +1790,23 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1634
1790
|
return;
|
|
1635
1791
|
}
|
|
1636
1792
|
}
|
|
1793
|
+
// A docked queue (Esc parked it) owns a bare Enter on an EMPTY draft
|
|
1794
|
+
// (Claude Code parity: "…or Enter to send them now"). A draft in
|
|
1795
|
+
// progress keeps the ordinary submit path and the dock stays parked —
|
|
1796
|
+
// sending parked messages silently along with the next typed submit is
|
|
1797
|
+
// exactly the surprise the dock exists to prevent.
|
|
1798
|
+
if (value.trim() === '' && !channel.working && dockCount > 0) {
|
|
1799
|
+
sendDocked();
|
|
1800
|
+
return;
|
|
1801
|
+
}
|
|
1637
1802
|
if (channel.working && value.trim() !== '') {
|
|
1638
|
-
//
|
|
1639
|
-
//
|
|
1640
|
-
//
|
|
1641
|
-
//
|
|
1642
|
-
//
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
&& channel.commandList.some(c => c.name === parsed.name))
|
|
1646
|
-
|| isHiddenCommandName(parsed.name))) {
|
|
1647
|
-
if (tryRunCommand(value))
|
|
1648
|
-
return;
|
|
1649
|
-
}
|
|
1803
|
+
// While a turn is running a KNOWN command is dispatched as a command:
|
|
1804
|
+
// with or without arguments, with the completion overlay open or closed,
|
|
1805
|
+
// from the inline prompt or the fullscreen editor (issue #1072). Each
|
|
1806
|
+
// command's own gate decides whether it can run mid-turn and says why;
|
|
1807
|
+
// steering is reserved for input that is NOT a command.
|
|
1808
|
+
if (tryRunCommand(value))
|
|
1809
|
+
return;
|
|
1650
1810
|
steerSend(value);
|
|
1651
1811
|
return;
|
|
1652
1812
|
}
|
|
@@ -1684,6 +1844,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
1684
1844
|
/** Local Esc layers, shared by the prompt listener and Chat's delegation.
|
|
1685
1845
|
* Refs preserve this order even when expansion and Esc share a stdin batch. */
|
|
1686
1846
|
const consumeEditingEscape = () => {
|
|
1847
|
+
// The docked-queue selector folds first: Esc leaves the selector and the
|
|
1848
|
+
// dock itself stays put (⏎/↑ keep working afterwards).
|
|
1849
|
+
if (dockSelectedRef.current !== null) {
|
|
1850
|
+
setDockSelected(null);
|
|
1851
|
+
return true;
|
|
1852
|
+
}
|
|
1687
1853
|
if (selectionRef.current && !helpOpen && !overlayOpen && !fileOverlayOpen) {
|
|
1688
1854
|
clearSelection();
|
|
1689
1855
|
return true;
|
|
@@ -2276,6 +2442,12 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2276
2442
|
// indentation arm so the expanded editor participates in the cycle too —
|
|
2277
2443
|
// the parser reports backtab as key.tab + key.shift.
|
|
2278
2444
|
if (key.tab && key.shift) {
|
|
2445
|
+
// A backend without native modes has nothing to cycle (capability
|
|
2446
|
+
// snapshots absent on test stubs = DSH).
|
|
2447
|
+
if (channel.backendCapabilities?.modes === false) {
|
|
2448
|
+
channel.notify(t('capability-unavailable-backend', { name: 'mode' }), { color: 'warning', timeoutMs: 4000 });
|
|
2449
|
+
return;
|
|
2450
|
+
}
|
|
2279
2451
|
// The key is consumed either way. `cycleMode` is best-effort inside the
|
|
2280
2452
|
// channel, but a dropped rejection here would be an unhandledRejection
|
|
2281
2453
|
// (the process guard rethrows everything that is not React #185), and
|
|
@@ -2358,6 +2530,17 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2358
2530
|
return;
|
|
2359
2531
|
}
|
|
2360
2532
|
if (key.upArrow) {
|
|
2533
|
+
// The docked-queue selector owns ↑ while a row is highlighted
|
|
2534
|
+
// (Claude Code parity: "Press up to select a queued message to
|
|
2535
|
+
// edit"); the walk wraps around the dock. The REF drives it: one
|
|
2536
|
+
// stdin read can carry several ↑ (key repeat / a coalescing
|
|
2537
|
+
// terminal), and the state value would pin every handler in the
|
|
2538
|
+
// batch to the same row — N presses collapsing to one step.
|
|
2539
|
+
if (dockSelectedRef.current !== null) {
|
|
2540
|
+
const current = dockSelectedRef.current;
|
|
2541
|
+
setDockSelected(current <= 0 ? dockCount - 1 : current - 1);
|
|
2542
|
+
return;
|
|
2543
|
+
}
|
|
2361
2544
|
// A history walk owns the arrows until it returns to the draft: a
|
|
2362
2545
|
// recalled entry can itself open the @ menu or the slash menu (e.g.
|
|
2363
2546
|
// `/model`), and letting the overlay navigate here strands the stashed
|
|
@@ -2395,6 +2578,14 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2395
2578
|
setSelectedCommand(index => index <= 0 ? suggestions.length - 1 : index - 1);
|
|
2396
2579
|
return;
|
|
2397
2580
|
}
|
|
2581
|
+
// An EMPTY draft while idle with a docked queue takes ↑ into the dock
|
|
2582
|
+
// selector, ahead of the history walk (Claude Code parity). Any draft
|
|
2583
|
+
// keeps ↑ as cursor movement; the menus above keep their priority.
|
|
2584
|
+
if (value === '' && !channel.working && !expandedRef.current
|
|
2585
|
+
&& !overlayOpen && !fileOverlayOpen && dockCount > 0) {
|
|
2586
|
+
setDockSelected(dockCount - 1);
|
|
2587
|
+
return;
|
|
2588
|
+
}
|
|
2398
2589
|
// A workspace switch mid-walk keeps the draft that walk started from:
|
|
2399
2590
|
// the composer shows the previous project's entry, not a new draft.
|
|
2400
2591
|
const interrupted = seedHistory();
|
|
@@ -2426,6 +2617,13 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2426
2617
|
return;
|
|
2427
2618
|
}
|
|
2428
2619
|
if (key.downArrow) {
|
|
2620
|
+
// The docked-queue selector owns ↓ too (wraps down around the dock;
|
|
2621
|
+
// the REF, so a batch of ↓ advances one row per press — see ↑).
|
|
2622
|
+
if (dockSelectedRef.current !== null) {
|
|
2623
|
+
const current = dockSelectedRef.current;
|
|
2624
|
+
setDockSelected(current >= dockCount - 1 ? 0 : current + 1);
|
|
2625
|
+
return;
|
|
2626
|
+
}
|
|
2429
2627
|
// Same history-walk ownership as ↑ above.
|
|
2430
2628
|
if (fileOverlayOpen && historyIndex.current < 0) {
|
|
2431
2629
|
setFileSelected(index => index >= fileMatches.length - 1 ? 0 : index + 1);
|
|
@@ -2510,8 +2708,8 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2510
2708
|
return;
|
|
2511
2709
|
}
|
|
2512
2710
|
if (key.leftArrow) {
|
|
2513
|
-
// ← on an EMPTY prompt
|
|
2514
|
-
//
|
|
2711
|
+
// ← on an EMPTY prompt opens the session manager; the caller decides
|
|
2712
|
+
// whether the backend can background the session first.
|
|
2515
2713
|
// (The command/file overlays both imply non-empty text, so no extra
|
|
2516
2714
|
// gate beyond the help menu is needed.)
|
|
2517
2715
|
if (value.length === 0 && !helpOpen) {
|
|
@@ -2886,17 +3084,20 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2886
3084
|
fileEscRef.current = mention?.start ?? -1;
|
|
2887
3085
|
return;
|
|
2888
3086
|
}
|
|
2889
|
-
//
|
|
2890
|
-
//
|
|
2891
|
-
|
|
3087
|
+
// The docked-queue selector folds before anything else: Esc leaves the
|
|
3088
|
+
// selector (Chat's delegation reaches this through consumeEscape too).
|
|
3089
|
+
if (dockSelectedRef.current !== null) {
|
|
3090
|
+
setDockSelected(null);
|
|
3091
|
+
return;
|
|
3092
|
+
}
|
|
3093
|
+
// With pending messages while working, Esc = interrupt and DOCK the
|
|
3094
|
+
// queue (Claude Code parity): the previews park channel-side and the
|
|
3095
|
+
// dock hint offers ↑ to edit one / ⏎ to send them all — nothing
|
|
3096
|
+
// auto-sends. A queue already fully docked docks nothing new; the
|
|
3097
|
+
// turn still needs its plain abort.
|
|
2892
3098
|
if (channel.working && channel.pending.length > 0) {
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
images: item.images ?? [],
|
|
2896
|
-
})));
|
|
2897
|
-
channel.notify(t('interrupt-delivered', { n: count }), {
|
|
2898
|
-
timeoutMs: 2500,
|
|
2899
|
-
});
|
|
3099
|
+
if (channel.interruptAndDock() === 0)
|
|
3100
|
+
channel.cancel();
|
|
2900
3101
|
return;
|
|
2901
3102
|
}
|
|
2902
3103
|
// "Send to Chat" chips peel before the draft: the first Esc drops the
|
|
@@ -2950,9 +3151,13 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
2950
3151
|
return;
|
|
2951
3152
|
}
|
|
2952
3153
|
if (input && !key.ctrl && !key.meta && !key.super && !key.tab && !key.escape) {
|
|
2953
|
-
// Typing anything else dismisses the help menu
|
|
3154
|
+
// Typing anything else dismisses the help menu…
|
|
2954
3155
|
if (helpOpen)
|
|
2955
3156
|
onToggleHelp();
|
|
3157
|
+
// …and leaves the docked-queue selector: the draft is no longer empty,
|
|
3158
|
+
// so ↑ goes back to cursor movement.
|
|
3159
|
+
if (dockSelectedRef.current !== null)
|
|
3160
|
+
setDockSelected(null);
|
|
2956
3161
|
// An active selection is REPLACED by the typed text, caret after it.
|
|
2957
3162
|
const sel = selectionRef.current;
|
|
2958
3163
|
const at = sel ? sel.start : cursor;
|
|
@@ -3121,23 +3326,30 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3121
3326
|
]
|
|
3122
3327
|
: visualLineRanges(value, inputWidth);
|
|
3123
3328
|
/**
|
|
3124
|
-
*
|
|
3329
|
+
* Highlight runs for one rendered row, shared by the inline prompt and the
|
|
3125
3330
|
* expanded editor: the selection's intersection (if any) and the caret
|
|
3126
|
-
* cluster on the caret's row.
|
|
3127
|
-
* intervals merge so a caret inside the selection
|
|
3128
|
-
* highlight. The caret row inverts the WHOLE cluster at
|
|
3129
|
-
* (solid block) — [col, next boundary) covers a surrogate
|
|
3130
|
-
* emoji as one glyph; at the text end it shows a blank inverse
|
|
3131
|
-
* the empty-input caret (appended after everything, so a selection
|
|
3331
|
+
* cluster on the caret's row. Without a palette `cursor` both are inverse
|
|
3332
|
+
* runs and overlapping intervals merge, so a caret inside the selection
|
|
3333
|
+
* stays one continuous highlight. The caret row inverts the WHOLE cluster at
|
|
3334
|
+
* the caret column (solid block) — [col, next boundary) covers a surrogate
|
|
3335
|
+
* pair or ZWJ emoji as one glyph; at the text end it shows a blank inverse
|
|
3336
|
+
* cell like the empty-input caret (appended after everything, so a selection
|
|
3132
3337
|
* ending there cannot swallow it).
|
|
3338
|
+
*
|
|
3339
|
+
* A palette that sets `cursor` splits the caret off the selection: the
|
|
3340
|
+
* caret is then its own kind (painted with `caretCell`) instead of merging
|
|
3341
|
+
* into the selection's inverse run.
|
|
3133
3342
|
*/
|
|
3134
3343
|
const rowHighlightPieces = (text, absoluteLine) => {
|
|
3135
3344
|
const [rowStart] = lineRanges[absoluteLine] ?? [0, 0];
|
|
3136
3345
|
// Per-character style: 0 plain, 1 chip (a staged token), 2 inverse
|
|
3137
|
-
// (selection or caret
|
|
3346
|
+
// (selection, or caret when the palette has no `cursor`), 3 caret.
|
|
3347
|
+
// Later fills win: chip < selection < caret.
|
|
3138
3348
|
const PLAIN = 0;
|
|
3139
3349
|
const CHIP = 1;
|
|
3140
3350
|
const INVERSE = 2;
|
|
3351
|
+
const CARET = 3;
|
|
3352
|
+
const caretKind = cursorColor === '' ? INVERSE : CARET;
|
|
3141
3353
|
const kinds = new Uint8Array(text.length);
|
|
3142
3354
|
const fill = (lo, hi, kind) => {
|
|
3143
3355
|
for (let i = Math.max(lo, 0); i < Math.min(hi, text.length); i++)
|
|
@@ -3159,7 +3371,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3159
3371
|
? Math.min(tokenAtCaret.end - rowStart, text.length)
|
|
3160
3372
|
: nextGraphemeBoundary(graphemeBoundaries(text), col);
|
|
3161
3373
|
if (clusterEnd > col)
|
|
3162
|
-
fill(col, clusterEnd,
|
|
3374
|
+
fill(col, clusterEnd, caretKind);
|
|
3163
3375
|
else
|
|
3164
3376
|
endBlankCaret = col === text.length;
|
|
3165
3377
|
}
|
|
@@ -3170,13 +3382,27 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3170
3382
|
let end = pos + 1;
|
|
3171
3383
|
while (end < text.length && kinds[end] === kind)
|
|
3172
3384
|
end++;
|
|
3173
|
-
pieces.push({
|
|
3385
|
+
pieces.push({
|
|
3386
|
+
text: text.slice(pos, end),
|
|
3387
|
+
inverse: kind === INVERSE,
|
|
3388
|
+
chip: kind === CHIP,
|
|
3389
|
+
caret: kind === CARET,
|
|
3390
|
+
});
|
|
3174
3391
|
pos = end;
|
|
3175
3392
|
}
|
|
3176
|
-
if (endBlankCaret)
|
|
3177
|
-
pieces.push({ text: ' ', inverse:
|
|
3393
|
+
if (endBlankCaret) {
|
|
3394
|
+
pieces.push({ text: ' ', inverse: caretKind === INVERSE, chip: false, caret: caretKind === CARET });
|
|
3395
|
+
}
|
|
3178
3396
|
return pieces;
|
|
3179
3397
|
};
|
|
3398
|
+
/**
|
|
3399
|
+
* One caret cell: the palette's `cursor` fill with the glyph in whichever
|
|
3400
|
+
* palette ink contrasts with it, or the inverse-video block it replaces when
|
|
3401
|
+
* the palette predates the key.
|
|
3402
|
+
*/
|
|
3403
|
+
const caretCell = (key, text) => cursorColor === ''
|
|
3404
|
+
? _jsx(Text, { inverse: true, children: text }, key)
|
|
3405
|
+
: _jsx(Text, { backgroundColor: cursorColor, color: cursorGlyph, children: text }, key);
|
|
3180
3406
|
const rendered = visibleLines.map((line, index) => {
|
|
3181
3407
|
const absoluteLine = windowStart + index;
|
|
3182
3408
|
if (block && absoluteLine === chipRow) {
|
|
@@ -3191,7 +3417,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3191
3417
|
const text = withPrefix ? truncateToWidth(line, inputWidth - prefixCols) : line;
|
|
3192
3418
|
const prefix = withPrefix ? _jsx(Text, { dimColor: true, children: prefixLabel }) : null;
|
|
3193
3419
|
const pieces = rowHighlightPieces(text, absoluteLine);
|
|
3194
|
-
return (_jsxs(Text, { wrap: "truncate-end", children: [prefix, pieces.length === 0 ? ' ' : pieces.map((piece, pieceIndex) => piece.inverse ? (_jsx(Text, { inverse: true, children: piece.text }, pieceIndex)) : piece.chip ? (_jsx(Text, { color: "suggestion", children: piece.text }, pieceIndex)) : (piece.text))] }, absoluteLine));
|
|
3420
|
+
return (_jsxs(Text, { wrap: "truncate-end", children: [prefix, pieces.length === 0 ? ' ' : pieces.map((piece, pieceIndex) => piece.caret ? (caretCell(pieceIndex, piece.text)) : piece.inverse ? (_jsx(Text, { inverse: true, children: piece.text }, pieceIndex)) : piece.chip ? (_jsx(Text, { color: "suggestion", children: piece.text }, pieceIndex)) : (piece.text))] }, absoluteLine));
|
|
3195
3421
|
});
|
|
3196
3422
|
// ── 展开态编辑行 ────────────────────────────────────────────────────
|
|
3197
3423
|
// Logical line number per visual row (a wrapped continuation keeps its
|
|
@@ -3216,7 +3442,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3216
3442
|
? ' '.repeat(editorNoWidth)
|
|
3217
3443
|
: String(logicalNo + 1).padStart(editorNoWidth, ' ');
|
|
3218
3444
|
const pieces = rowHighlightPieces(line, absoluteLine);
|
|
3219
|
-
return (_jsxs(Text, { wrap: "truncate-end", backgroundColor: isCaretRow ? 'toolCardBackgroundDim' : undefined, children: [_jsx(Text, { dimColor: !isCaretRow, bold: isCaretRow, color: isCaretRow ? promptAccent : undefined, children: `${gutterLabel} │ ` }), pieces.map((piece, pieceIndex) => piece.inverse ? (_jsx(Text, { inverse: true, children: piece.text }, pieceIndex)) : piece.chip ? (_jsx(Text, { color: "suggestion", children: piece.text }, pieceIndex)) : (piece.text))] }, absoluteLine));
|
|
3445
|
+
return (_jsxs(Text, { wrap: "truncate-end", backgroundColor: isCaretRow ? 'toolCardBackgroundDim' : undefined, children: [_jsx(Text, { dimColor: !isCaretRow, bold: isCaretRow, color: isCaretRow ? promptAccent : undefined, children: `${gutterLabel} │ ` }), pieces.map((piece, pieceIndex) => piece.caret ? (caretCell(pieceIndex, piece.text)) : piece.inverse ? (_jsx(Text, { inverse: true, children: piece.text }, pieceIndex)) : piece.chip ? (_jsx(Text, { color: "suggestion", children: piece.text }, pieceIndex)) : (piece.text))] }, absoluteLine));
|
|
3220
3446
|
})
|
|
3221
3447
|
: null;
|
|
3222
3448
|
// Peek card content: the BLOCK's text wrapped to the card's inner width,
|
|
@@ -3489,6 +3715,22 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3489
3715
|
// 的 style.position,常驻浮层 + 移除普通子节点不会触发 blit 解毒,被
|
|
3490
3716
|
// 覆盖的转录行会留空(见 Chat.tsx dialogOverlayOpen 注释)。展开态由
|
|
3491
3717
|
// 全屏编辑器接管,内联浮层全部撤下。
|
|
3718
|
+
// The dock rows are windowed, never rendered in full: OverlayAbove clips
|
|
3719
|
+
// overflow from the top without scrolling, so a long dock would push the
|
|
3720
|
+
// highlighted row off-screen while Enter still retracts by index. The
|
|
3721
|
+
// window keeps the focused row
|
|
3722
|
+
// visible (listWindow centers on it); Enter and the row click both
|
|
3723
|
+
// operate on the absolute dock index, so they always name the row the
|
|
3724
|
+
// user SEES highlighted. The budget subtracts every other row the
|
|
3725
|
+
// pending block paints (steer/followup previews, labels, hints, padding)
|
|
3726
|
+
// so the window always fits the overlay's effective height.
|
|
3727
|
+
const steerPreviewCount = channel.pending.filter(item => item.placement === 'steer' && item.docked !== true).length;
|
|
3728
|
+
const followupPreviewCount = channel.pending.filter(item => item.placement === 'followup' && item.docked !== true).length;
|
|
3729
|
+
const dockWindowRows = useOverlayListRows((steerPreviewCount > 0 ? 1 + steerPreviewCount : 0)
|
|
3730
|
+
+ (followupPreviewCount > 0 ? 1 + followupPreviewCount : 0)
|
|
3731
|
+
+ 1 /* dock label */ + 1 /* dock hint row */ + 1 /* Alt+↑ hint */ + 1 /* block paddingBottom */);
|
|
3732
|
+
const dockFocus = dockSelected ?? Math.max(dockCount - 1, 0);
|
|
3733
|
+
const { start: dockStart, end: dockEnd } = listWindow(dockedPending.map(() => 1), dockFocus, dockWindowRows);
|
|
3492
3734
|
const floatersOpen = !suspended &&
|
|
3493
3735
|
!expanded &&
|
|
3494
3736
|
(helpOpen || channel.pending.length > 0 || fileOverlayOpen || overlayOpen || peekOpen);
|
|
@@ -3597,11 +3839,22 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3597
3839
|
// `/${name} ` — the whole fill is one undo step.
|
|
3598
3840
|
setInput(`/${name} `, name.length + 2, 'step');
|
|
3599
3841
|
onToggleHelp();
|
|
3600
|
-
} }) })), !helpOpen && channel.pending.length > 0 && (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, paddingBottom: 1, children: [channel.pending.some(item => item.placement === 'steer') && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: ["\u26A1 ", t('input-pending-steer-label')] }), channel.pending
|
|
3601
|
-
.filter(item => item.placement === 'steer')
|
|
3602
|
-
.map(item => (_jsxs(Text, { dimColor: true, wrap: "truncate", children: [' ', "\u21B3 ", item.text] }, item.id)))] })), channel.pending.some(item => item.placement === 'followup') && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: ["\u23F3 ", t('input-pending-queue-label')] }), channel.pending
|
|
3603
|
-
.filter(item => item.placement === 'followup')
|
|
3604
|
-
.map(item => (_jsxs(Text, { dimColor: true, wrap: "truncate", children: [' ', "\u21B3 ", item.text] }, item.id)))] })), _jsxs(Text, { dimColor: true, children: ["
|
|
3842
|
+
} }) })), !helpOpen && channel.pending.length > 0 && (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, paddingBottom: 1, children: [channel.pending.some(item => item.placement === 'steer' && item.docked !== true) && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: ["\u26A1 ", t('input-pending-steer-label')] }), channel.pending
|
|
3843
|
+
.filter(item => item.placement === 'steer' && item.docked !== true)
|
|
3844
|
+
.map(item => (_jsxs(Text, { dimColor: true, wrap: "truncate", children: [' ', "\u21B3 ", item.text] }, item.id)))] })), channel.pending.some(item => item.placement === 'followup' && item.docked !== true) && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: ["\u23F3 ", t('input-pending-queue-label')] }), channel.pending
|
|
3845
|
+
.filter(item => item.placement === 'followup' && item.docked !== true)
|
|
3846
|
+
.map(item => (_jsxs(Text, { dimColor: true, wrap: "truncate", children: [' ', "\u21B3 ", item.text] }, item.id)))] })), dockCount > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { dimColor: true, children: ["\u23F8 ", t('input-pending-dock-label')] }), dockedPending.slice(dockStart, dockEnd).map((item, index) => {
|
|
3847
|
+
// The window maps to absolute dock indices: the click and
|
|
3848
|
+
// the highlight name the same row the user sees.
|
|
3849
|
+
const absoluteIndex = dockStart + index;
|
|
3850
|
+
return (_jsx(Box, {
|
|
3851
|
+
// 点击停靠行 = 撤回该条进输入框编辑(与选择器 ⏎ 同路径)
|
|
3852
|
+
onClick: () => { editDocked(absoluteIndex); }, children: _jsxs(Text, { wrap: "truncate", dimColor: dockSelected === null || dockSelected !== absoluteIndex, color: dockSelected === absoluteIndex ? promptAccent : undefined, children: [' ', dockSelected === absoluteIndex ? '❯' : '↳', " ", item.text] }) }, item.id));
|
|
3853
|
+
}), _jsx(Box
|
|
3854
|
+
// 点击提示行 = 全部发送(与空输入 ⏎ 同路径)
|
|
3855
|
+
, {
|
|
3856
|
+
// 点击提示行 = 全部发送(与空输入 ⏎ 同路径)
|
|
3857
|
+
onClick: () => { sendDocked(); }, children: _jsxs(Text, { dimColor: true, children: [' ', t('input-pending-dock-hint')] }) })] })), _jsxs(Text, { dimColor: true, children: ["Alt+\u2191 ", t('input-pending-actions-hint')] })] })), fileOverlayOpen && (_jsx(FileSuggestions, { files: fileMatches, selectedIndex: fileSelected, columns: columns, query: mention?.query ?? '', accent: promptAccent,
|
|
3605
3858
|
// 点击行 = 接受该项(与 Enter 同路径)
|
|
3606
3859
|
onPick: (index) => {
|
|
3607
3860
|
const file = fileMatches[index];
|
|
@@ -3611,7 +3864,7 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3611
3864
|
// 滚轮 = 移动选中行(与 ↑/↓ 同路径,窗口跟随)
|
|
3612
3865
|
onWheelStep: (step) => {
|
|
3613
3866
|
setFileSelected(i => Math.max(0, Math.min(fileMatches.length - 1, i + step)));
|
|
3614
|
-
} })), overlayOpen && (_jsx(CommandSuggestions, { commands: suggestions, selectedIndex: selectedCommand, columns: columns, query: value, accent: promptAccent,
|
|
3867
|
+
} })), overlayOpen && (_jsx(CommandSuggestions, { commands: suggestions, selectedIndex: selectedCommand, columns: columns, query: value, accent: promptAccent, holdFrom: suggestionsHoldFrom,
|
|
3615
3868
|
// 点击行 = 运行该命令(与 Enter 同路径)
|
|
3616
3869
|
onPick: (index) => {
|
|
3617
3870
|
const command = suggestions[index];
|
|
@@ -3626,14 +3879,14 @@ export function PromptInput({ channel, toastSuppressed, suspended = false, draft
|
|
|
3626
3879
|
: undefined, rows: peekVisualLines.map((row, index) => (_jsx(Text, { wrap: "truncate-end", children: row }, index))), onRowPick: () => {
|
|
3627
3880
|
updateFoldBlock(null);
|
|
3628
3881
|
setHovered(false);
|
|
3629
|
-
} }) }))] })), attachedContexts.length > 0 && (_jsx(Box, { flexDirection: "row", width: "100%", height: 1, overflow: "hidden", paddingLeft: 2, columnGap: 2, children: attachedContexts.map(item => (_jsx(Box, { overflow: "hidden", children: _jsx(Text, { color: promptAccent, wrap: "truncate-end", children: t('prompt-attached-context-chip', { title: item.title }) }) }, item.id))) })), lastNotification && toastVisible && (_jsx(Box, { position: "absolute", marginTop: -1, height: 1, width: "100%", paddingLeft: 2, paddingRight: 1, flexDirection: "column", justifyContent: "flex-end", overflow: "hidden", children: _jsx(Box, { justifyContent: "flex-end", children: _jsx(Text, { color: lastNotification.color, dimColor: !lastNotification.color, wrap: "truncate", children: lastNotification.text }) }) })), _jsx(EffortInputBorder, { effort: channel.reasoningEffort, levels: channel.effortLevels, columns: columns,
|
|
3882
|
+
} }) }))] })), attachedContexts.length > 0 && (_jsx(Box, { flexDirection: "row", width: "100%", height: 1, overflow: "hidden", paddingLeft: 2, columnGap: 2, children: attachedContexts.map(item => (_jsx(Box, { overflow: "hidden", children: _jsx(Text, { color: promptAccent, wrap: "truncate-end", children: t('prompt-attached-context-chip', { title: item.title }) }) }, item.id))) })), lastNotification && toastVisible && (_jsx(Box, { position: "absolute", marginTop: -1, height: 1, width: "100%", paddingLeft: 2, paddingRight: 1, flexDirection: "column", justifyContent: "flex-end", overflow: "hidden", children: _jsx(Box, { justifyContent: "flex-end", children: _jsx(Text, { color: lastNotification.color, dimColor: !lastNotification.color, wrap: "truncate", children: lastNotification.text }) }) })), _jsx(EffortInputBorder, { effort: channel.reasoningEffort, levels: channel.effortLevels, columns: columns, idleColor: promptAccent, topRightLabel: topRightLabel, children: _jsxs(Box, { flexDirection: "row", alignItems: "flex-start", width: "100%", children: [onOpenSessions !== undefined && (_jsx(Box, { flexShrink: 0, onClick: (event) => {
|
|
3630
3883
|
event.stopImmediatePropagation();
|
|
3631
3884
|
onOpenSessions?.();
|
|
3632
3885
|
}, onMouseEnter: () => {
|
|
3633
3886
|
setHomeHovered(true);
|
|
3634
3887
|
}, onMouseLeave: () => {
|
|
3635
3888
|
setHomeHovered(false);
|
|
3636
|
-
}, children: _jsx(Text, { dimColor: !homeHovered, bold: homeHovered, color: homeHovered ? promptAccent : undefined, children: HOME_BUTTON_TEXT }) })), _jsx(EffortChargeGlyph, { effort: channel.reasoningEffort, levels: channel.effortLevels, working: channel.working }), vimEnabled && (_jsxs(Text, { bold: true, color: vimInsert ? 'success' : 'warning', children: [vimInsert ? 'INSERT' : 'NORMAL', " "] })), _jsx(Box, { ref: expanded ? undefined : valueBoxRef, flexGrow: 1, flexShrink: 1, onClick: handleValueClick, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragEnd: handleDragEnd, children: value.length === 0 ? (_jsxs(_Fragment, { children: [
|
|
3889
|
+
}, children: _jsx(Text, { dimColor: !homeHovered, bold: homeHovered, color: homeHovered ? promptAccent : undefined, children: HOME_BUTTON_TEXT }) })), _jsx(EffortChargeGlyph, { effort: channel.reasoningEffort, levels: channel.effortLevels, working: channel.working }), vimEnabled && (_jsxs(Text, { bold: true, color: vimInsert ? 'success' : 'warning', children: [vimInsert ? 'INSERT' : 'NORMAL', " "] })), _jsx(Box, { ref: expanded ? undefined : valueBoxRef, flexGrow: 1, flexShrink: 1, onClick: handleValueClick, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragEnd: handleDragEnd, children: value.length === 0 ? (_jsxs(_Fragment, { children: [caretCell('empty', ' '), _jsx(EffortTierBadge, { effort: channel.reasoningEffort, levels: channel.effortLevels, columns: columns, leadingColumns: 3 + homeButtonCols })] })) : (_jsx(Box, { flexDirection: "column", children: rendered })) }), expandEnabled && (_jsx(Box, { flexShrink: 0, onClick: (event) => {
|
|
3637
3890
|
event.stopImmediatePropagation();
|
|
3638
3891
|
toggleExpand();
|
|
3639
3892
|
}, onMouseEnter: () => {
|