@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -5
- package/assets/claude-girl/claude-girl-happy.png +0 -0
- package/assets/claude-girl/claude-girl.png +0 -0
- package/assets/codex-girl/codex-girl-happy.png +0 -0
- package/assets/codex-girl/codex-girl.png +0 -0
- package/bin/dsh-tui.js +104 -18
- package/cordis.patch.yml +2 -0
- package/cordis.yml +2 -0
- package/guide/dsh-tui-guide/SKILL.md +4 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
- package/guide/dsh-tui-guide/claude-backend.md +161 -0
- package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
- package/guide/dsh-tui-guide/codex-backend.md +257 -0
- package/guide/dsh-tui-guide/configuration.en.md +9 -2
- package/guide/dsh-tui-guide/configuration.md +9 -2
- package/guide/dsh-tui-guide/interaction.en.md +169 -27
- package/guide/dsh-tui-guide/interaction.md +115 -17
- package/guide/dsh-tui-guide/themes.en.md +24 -2
- package/guide/dsh-tui-guide/themes.md +21 -2
- package/guide/dsh-tui-guide/user-guide.en.md +38 -23
- package/guide/dsh-tui-guide/user-guide.md +22 -11
- package/guide/dsh-tui-guide/vscode.en.md +1 -0
- package/guide/dsh-tui-guide/vscode.md +1 -0
- package/lib/settings.json +139 -6
- package/lib/types/adapter/channel/state.d.ts.map +1 -1
- package/lib/types/adapter/channel/state.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +29 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +45 -5
- package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-display.d.ts +7 -1
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +5 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +477 -13
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/agent/backend.d.ts +168 -0
- package/lib/types/agent/backend.d.ts.map +1 -0
- package/lib/types/agent/backend.js +1 -0
- package/lib/types/agent/capabilities.d.ts +461 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -0
- package/lib/types/agent/capabilities.js +1 -0
- package/lib/types/agent/events.d.ts +733 -0
- package/lib/types/agent/events.d.ts.map +1 -0
- package/lib/types/agent/events.js +2 -0
- package/lib/types/agent/index.d.ts +8 -0
- package/lib/types/agent/index.d.ts.map +1 -0
- package/lib/types/agent/index.js +7 -0
- package/lib/types/agent/messages.d.ts +52 -0
- package/lib/types/agent/messages.d.ts.map +1 -0
- package/lib/types/agent/messages.js +91 -0
- package/lib/types/agent/presentation.d.ts +29 -0
- package/lib/types/agent/presentation.d.ts.map +1 -0
- package/lib/types/agent/presentation.js +4 -0
- package/lib/types/agent/refs.d.ts +30 -0
- package/lib/types/agent/refs.d.ts.map +1 -0
- package/lib/types/agent/refs.js +39 -0
- package/lib/types/agent/session.d.ts +78 -0
- package/lib/types/agent/session.d.ts.map +1 -0
- package/lib/types/agent/session.js +1 -0
- package/lib/types/backends/claude/activity.d.ts +53 -0
- package/lib/types/backends/claude/activity.d.ts.map +1 -0
- package/lib/types/backends/claude/activity.js +103 -0
- package/lib/types/backends/claude/auth.d.ts +245 -0
- package/lib/types/backends/claude/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/auth.js +503 -0
- package/lib/types/backends/claude/backend.d.ts +32 -0
- package/lib/types/backends/claude/backend.d.ts.map +1 -0
- package/lib/types/backends/claude/backend.js +296 -0
- package/lib/types/backends/claude/catalog.d.ts +17 -0
- package/lib/types/backends/claude/catalog.d.ts.map +1 -0
- package/lib/types/backends/claude/catalog.js +94 -0
- package/lib/types/backends/claude/channels.d.ts +63 -0
- package/lib/types/backends/claude/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/channels.js +275 -0
- package/lib/types/backends/claude/contract.d.ts +37 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -0
- package/lib/types/backends/claude/contract.js +46 -0
- package/lib/types/backends/claude/controls.d.ts +134 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -0
- package/lib/types/backends/claude/controls.js +425 -0
- package/lib/types/backends/claude/dialogs.d.ts +62 -0
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
- package/lib/types/backends/claude/dialogs.js +253 -0
- package/lib/types/backends/claude/flag-settings.d.ts +12 -0
- package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
- package/lib/types/backends/claude/flag-settings.js +49 -0
- package/lib/types/backends/claude/images.d.ts +49 -0
- package/lib/types/backends/claude/images.d.ts.map +1 -0
- package/lib/types/backends/claude/images.js +94 -0
- package/lib/types/backends/claude/index.d.ts +5 -0
- package/lib/types/backends/claude/index.d.ts.map +1 -0
- package/lib/types/backends/claude/index.js +4 -0
- package/lib/types/backends/claude/install.d.ts +15 -0
- package/lib/types/backends/claude/install.d.ts.map +1 -0
- package/lib/types/backends/claude/install.js +91 -0
- package/lib/types/backends/claude/modelEnv.d.ts +64 -0
- package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
- package/lib/types/backends/claude/modelEnv.js +199 -0
- package/lib/types/backends/claude/narrow.d.ts +10 -0
- package/lib/types/backends/claude/narrow.d.ts.map +1 -0
- package/lib/types/backends/claude/narrow.js +8 -0
- package/lib/types/backends/claude/older-history.d.ts +16 -0
- package/lib/types/backends/claude/older-history.d.ts.map +1 -0
- package/lib/types/backends/claude/older-history.js +101 -0
- package/lib/types/backends/claude/options.d.ts +181 -0
- package/lib/types/backends/claude/options.d.ts.map +1 -0
- package/lib/types/backends/claude/options.js +208 -0
- package/lib/types/backends/claude/permissions.d.ts +83 -0
- package/lib/types/backends/claude/permissions.d.ts.map +1 -0
- package/lib/types/backends/claude/permissions.js +331 -0
- package/lib/types/backends/claude/prefs.d.ts +55 -0
- package/lib/types/backends/claude/prefs.d.ts.map +1 -0
- package/lib/types/backends/claude/prefs.js +150 -0
- package/lib/types/backends/claude/process.d.ts +19 -0
- package/lib/types/backends/claude/process.d.ts.map +1 -0
- package/lib/types/backends/claude/process.js +156 -0
- package/lib/types/backends/claude/replay.d.ts +129 -0
- package/lib/types/backends/claude/replay.d.ts.map +1 -0
- package/lib/types/backends/claude/replay.js +505 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk-warnings.js +55 -0
- package/lib/types/backends/claude/sdk.d.ts +12 -0
- package/lib/types/backends/claude/sdk.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk.js +34 -0
- package/lib/types/backends/claude/send-message.d.ts +54 -0
- package/lib/types/backends/claude/send-message.d.ts.map +1 -0
- package/lib/types/backends/claude/send-message.js +65 -0
- package/lib/types/backends/claude/session/auth.d.ts +47 -0
- package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/session/auth.js +226 -0
- package/lib/types/backends/claude/session/channels.d.ts +82 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/session/channels.js +45 -0
- package/lib/types/backends/claude/session/input.d.ts +16 -0
- package/lib/types/backends/claude/session/input.d.ts.map +1 -0
- package/lib/types/backends/claude/session/input.js +64 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
- package/lib/types/backends/claude/session/lifecycle.js +852 -0
- package/lib/types/backends/claude/session/store.d.ts +17 -0
- package/lib/types/backends/claude/session/store.d.ts.map +1 -0
- package/lib/types/backends/claude/session/store.js +122 -0
- package/lib/types/backends/claude/session/subagents.d.ts +13 -0
- package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/claude/session/subagents.js +77 -0
- package/lib/types/backends/claude/session/types.d.ts +89 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -0
- package/lib/types/backends/claude/session/types.js +1 -0
- package/lib/types/backends/claude/session.d.ts +4 -0
- package/lib/types/backends/claude/session.d.ts.map +1 -0
- package/lib/types/backends/claude/session.js +2 -0
- package/lib/types/backends/claude/side-query.d.ts +34 -0
- package/lib/types/backends/claude/side-query.d.ts.map +1 -0
- package/lib/types/backends/claude/side-query.js +116 -0
- package/lib/types/backends/claude/task-output.d.ts +13 -0
- package/lib/types/backends/claude/task-output.d.ts.map +1 -0
- package/lib/types/backends/claude/task-output.js +101 -0
- package/lib/types/backends/claude/tools.d.ts +45 -0
- package/lib/types/backends/claude/tools.d.ts.map +1 -0
- package/lib/types/backends/claude/tools.js +231 -0
- package/lib/types/backends/claude/transcript-file.d.ts +41 -0
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
- package/lib/types/backends/claude/transcript-file.js +195 -0
- package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
- package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/attempts.js +243 -0
- package/lib/types/backends/claude/translate/content.d.ts +33 -0
- package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/content.js +91 -0
- package/lib/types/backends/claude/translate/core.d.ts +76 -0
- package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/core.js +447 -0
- package/lib/types/backends/claude/translate/events.d.ts +9 -0
- package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/events.js +77 -0
- package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
- package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/lanes.js +177 -0
- package/lib/types/backends/claude/translate/messages.d.ts +36 -0
- package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/messages.js +202 -0
- package/lib/types/backends/claude/translate/system.d.ts +40 -0
- package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/system.js +399 -0
- package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
- package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/tasks.js +159 -0
- package/lib/types/backends/claude/translate/types.d.ts +114 -0
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/types.js +1 -0
- package/lib/types/backends/claude/translate.d.ts +9 -0
- package/lib/types/backends/claude/translate.d.ts.map +1 -0
- package/lib/types/backends/claude/translate.js +6 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/external-tokens.js +325 -0
- package/lib/types/backends/codex/auth/route.d.ts +14 -0
- package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/route.js +52 -0
- package/lib/types/backends/codex/auth/status.d.ts +16 -0
- package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/status.js +115 -0
- package/lib/types/backends/codex/backend.d.ts +58 -0
- package/lib/types/backends/codex/backend.d.ts.map +1 -0
- package/lib/types/backends/codex/backend.js +201 -0
- package/lib/types/backends/codex/catalog.d.ts +17 -0
- package/lib/types/backends/codex/catalog.d.ts.map +1 -0
- package/lib/types/backends/codex/catalog.js +128 -0
- package/lib/types/backends/codex/channels.d.ts +59 -0
- package/lib/types/backends/codex/channels.d.ts.map +1 -0
- package/lib/types/backends/codex/channels.js +274 -0
- package/lib/types/backends/codex/contract.d.ts +46 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -0
- package/lib/types/backends/codex/contract.js +80 -0
- package/lib/types/backends/codex/detect.d.ts +14 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -0
- package/lib/types/backends/codex/detect.js +90 -0
- package/lib/types/backends/codex/index.d.ts +6 -0
- package/lib/types/backends/codex/index.d.ts.map +1 -0
- package/lib/types/backends/codex/index.js +5 -0
- package/lib/types/backends/codex/modes.d.ts +16 -0
- package/lib/types/backends/codex/modes.d.ts.map +1 -0
- package/lib/types/backends/codex/modes.js +49 -0
- package/lib/types/backends/codex/narrow.d.ts +20 -0
- package/lib/types/backends/codex/narrow.d.ts.map +1 -0
- package/lib/types/backends/codex/narrow.js +18 -0
- package/lib/types/backends/codex/prefs.d.ts +42 -0
- package/lib/types/backends/codex/prefs.d.ts.map +1 -0
- package/lib/types/backends/codex/prefs.js +124 -0
- package/lib/types/backends/codex/protocol/index.d.ts +149 -0
- package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
- package/lib/types/backends/codex/protocol/index.js +130 -0
- package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
- package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/binary.js +174 -0
- package/lib/types/backends/codex/rpc/client.d.ts +72 -0
- package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/client.js +214 -0
- package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
- package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/hub.js +532 -0
- package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
- package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/transport.js +212 -0
- package/lib/types/backends/codex/session/activity.d.ts +18 -0
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
- package/lib/types/backends/codex/session/activity.js +108 -0
- package/lib/types/backends/codex/session/approvals.d.ts +39 -0
- package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/approvals.js +477 -0
- package/lib/types/backends/codex/session/commands.d.ts +37 -0
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/session/commands.js +141 -0
- package/lib/types/backends/codex/session/controls.d.ts +37 -0
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
- package/lib/types/backends/codex/session/controls.js +303 -0
- package/lib/types/backends/codex/session/goals.d.ts +25 -0
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/goals.js +97 -0
- package/lib/types/backends/codex/session/history.d.ts +52 -0
- package/lib/types/backends/codex/session/history.d.ts.map +1 -0
- package/lib/types/backends/codex/session/history.js +196 -0
- package/lib/types/backends/codex/session/images.d.ts +17 -0
- package/lib/types/backends/codex/session/images.d.ts.map +1 -0
- package/lib/types/backends/codex/session/images.js +138 -0
- package/lib/types/backends/codex/session/input.d.ts +75 -0
- package/lib/types/backends/codex/session/input.d.ts.map +1 -0
- package/lib/types/backends/codex/session/input.js +294 -0
- package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
- package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
- package/lib/types/backends/codex/session/plan-review.js +48 -0
- package/lib/types/backends/codex/session/prompts.d.ts +7 -0
- package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
- package/lib/types/backends/codex/session/prompts.js +47 -0
- package/lib/types/backends/codex/session/session.d.ts +12 -0
- package/lib/types/backends/codex/session/session.d.ts.map +1 -0
- package/lib/types/backends/codex/session/session.js +871 -0
- package/lib/types/backends/codex/session/side-query.d.ts +25 -0
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
- package/lib/types/backends/codex/session/side-query.js +121 -0
- package/lib/types/backends/codex/session/state.d.ts +57 -0
- package/lib/types/backends/codex/session/state.d.ts.map +1 -0
- package/lib/types/backends/codex/session/state.js +1 -0
- package/lib/types/backends/codex/session/subagents.d.ts +28 -0
- package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/codex/session/subagents.js +286 -0
- package/lib/types/backends/codex/session/tasks.d.ts +25 -0
- package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tasks.js +207 -0
- package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
- package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tool-output.js +29 -0
- package/lib/types/backends/codex/translate/commands.d.ts +30 -0
- package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/commands.js +103 -0
- package/lib/types/backends/codex/translate/events.d.ts +9 -0
- package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/events.js +71 -0
- package/lib/types/backends/codex/translate/items.d.ts +112 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/items.js +375 -0
- package/lib/types/backends/codex/translate/live.d.ts +39 -0
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/live.js +315 -0
- package/lib/types/backends/codex/translate/notices.d.ts +27 -0
- package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/notices.js +99 -0
- package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
- package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/presentation.js +237 -0
- package/lib/types/backends/codex/translate/replay.d.ts +18 -0
- package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/replay.js +33 -0
- package/lib/types/backends/codex/translate/usage.d.ts +29 -0
- package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/usage.js +65 -0
- package/lib/types/backends/shared/atomic-file.d.ts +4 -0
- package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
- package/lib/types/backends/shared/atomic-file.js +52 -0
- package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-tokens.js +161 -0
- package/lib/types/backends/shared/display-path.d.ts +3 -0
- package/lib/types/backends/shared/display-path.d.ts.map +1 -0
- package/lib/types/backends/shared/display-path.js +12 -0
- package/lib/types/branding.d.ts +92 -0
- package/lib/types/branding.d.ts.map +1 -0
- package/lib/types/branding.js +117 -0
- package/lib/types/channel/activity.d.ts +53 -0
- package/lib/types/channel/activity.d.ts.map +1 -0
- package/lib/types/channel/activity.js +955 -0
- package/lib/types/channel/capabilities.d.ts +24 -0
- package/lib/types/channel/capabilities.d.ts.map +1 -0
- package/lib/types/channel/capabilities.js +57 -0
- package/lib/types/channel/channel-slug.d.ts +9 -0
- package/lib/types/channel/channel-slug.d.ts.map +1 -0
- package/lib/types/channel/channel-slug.js +15 -0
- package/lib/types/channel/channel-wizard.d.ts +30 -0
- package/lib/types/channel/channel-wizard.d.ts.map +1 -0
- package/lib/types/channel/channel-wizard.js +226 -0
- package/lib/types/channel/elicitation.d.ts +135 -0
- package/lib/types/channel/elicitation.d.ts.map +1 -0
- package/lib/types/channel/elicitation.js +360 -0
- package/lib/types/channel/goal-command.d.ts +49 -0
- package/lib/types/channel/goal-command.d.ts.map +1 -0
- package/lib/types/channel/goal-command.js +72 -0
- package/lib/types/channel/history-restore.d.ts +16 -0
- package/lib/types/channel/history-restore.d.ts.map +1 -0
- package/lib/types/channel/history-restore.js +214 -0
- package/lib/types/channel/interaction.d.ts +38 -0
- package/lib/types/channel/interaction.d.ts.map +1 -0
- package/lib/types/channel/interaction.js +110 -0
- package/lib/types/channel/job-format.d.ts +6 -0
- package/lib/types/channel/job-format.d.ts.map +1 -0
- package/lib/types/channel/job-format.js +12 -0
- package/lib/types/channel/live-output.d.ts +35 -0
- package/lib/types/channel/live-output.d.ts.map +1 -0
- package/lib/types/channel/live-output.js +74 -0
- package/lib/types/channel/model-capabilities.d.ts +10 -0
- package/lib/types/channel/model-capabilities.d.ts.map +1 -0
- package/lib/types/channel/model-capabilities.js +51 -0
- package/lib/types/channel/permissions.d.ts +155 -0
- package/lib/types/channel/permissions.d.ts.map +1 -0
- package/lib/types/channel/permissions.js +188 -0
- package/lib/types/channel/projection.d.ts +110 -0
- package/lib/types/channel/projection.d.ts.map +1 -0
- package/lib/types/channel/projection.js +1521 -0
- package/lib/types/channel/question-record.d.ts +76 -0
- package/lib/types/channel/question-record.d.ts.map +1 -0
- package/lib/types/channel/question-record.js +109 -0
- package/lib/types/channel/questions.d.ts +204 -0
- package/lib/types/channel/questions.d.ts.map +1 -0
- package/lib/types/channel/questions.js +286 -0
- package/lib/types/channel/sanitize.d.ts +49 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -0
- package/lib/types/channel/sanitize.js +88 -0
- package/lib/types/channel/selection-record.d.ts +18 -0
- package/lib/types/channel/selection-record.d.ts.map +1 -0
- package/lib/types/channel/selection-record.js +45 -0
- package/lib/types/channel/side-prompts.d.ts +59 -0
- package/lib/types/channel/side-prompts.d.ts.map +1 -0
- package/lib/types/channel/side-prompts.js +127 -0
- package/lib/types/channel/transcript.d.ts +17 -0
- package/lib/types/channel/transcript.d.ts.map +1 -0
- package/lib/types/channel/transcript.js +19 -0
- package/lib/types/channel/usage.d.ts +48 -0
- package/lib/types/channel/usage.d.ts.map +1 -0
- package/lib/types/channel/usage.js +143 -0
- package/lib/types/commands.d.ts +147 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +196 -2
- package/lib/types/components/AgentMessageComposer.d.ts +50 -0
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
- package/lib/types/components/AgentMessageComposer.js +159 -0
- package/lib/types/components/BtwPanel.d.ts +13 -12
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +35 -24
- package/lib/types/components/ChannelPicker.d.ts +40 -0
- package/lib/types/components/ChannelPicker.d.ts.map +1 -0
- package/lib/types/components/ChannelPicker.js +26 -0
- package/lib/types/components/Chat/JobCard.d.ts +29 -31
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +31 -112
- package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
- package/lib/types/components/Chat/SubagentMessage.js +10 -3
- package/lib/types/components/ClaudeGirl.d.ts +27 -0
- package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
- package/lib/types/components/ClaudeGirl.js +30 -0
- package/lib/types/components/CodeBlockFrame.d.ts +19 -0
- package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
- package/lib/types/components/CodeBlockFrame.js +138 -0
- package/lib/types/components/CommandSuggestions.d.ts +10 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -3
- package/lib/types/components/ContextBarView.d.ts +2 -2
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +18 -8
- package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
- package/lib/types/components/EffortChargeGlyph.js +3 -4
- package/lib/types/components/EffortInputBorder.d.ts +1 -2
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +7 -4
- package/lib/types/components/EffortSlider.d.ts +5 -1
- package/lib/types/components/EffortSlider.d.ts.map +1 -1
- package/lib/types/components/EffortSlider.js +2 -2
- package/lib/types/components/EffortTierBadge.d.ts +1 -2
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
- package/lib/types/components/EffortTierBadge.js +8 -5
- package/lib/types/components/GoalTodoPanel.d.ts +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +11 -5
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/JobsPanel.d.ts +8 -9
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +72 -13
- package/lib/types/components/KernelPicker.d.ts +28 -0
- package/lib/types/components/KernelPicker.d.ts.map +1 -0
- package/lib/types/components/KernelPicker.js +37 -0
- package/lib/types/components/LogoV2.d.ts +7 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +120 -24
- package/lib/types/components/Markdown.d.ts +2 -1
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +37 -8
- package/lib/types/components/MathBlock.d.ts.map +1 -1
- package/lib/types/components/MathBlock.js +3 -1
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
- package/lib/types/components/MermaidDiagram.js +7 -5
- package/lib/types/components/MessageList.d.ts +21 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +62 -42
- package/lib/types/components/ModePicker.d.ts +20 -0
- package/lib/types/components/ModePicker.d.ts.map +1 -0
- package/lib/types/components/ModePicker.js +17 -0
- package/lib/types/components/PromptInput.d.ts +2 -2
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +308 -55
- package/lib/types/components/SdkInstallWizard.d.ts +44 -0
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
- package/lib/types/components/SdkInstallWizard.js +18 -0
- package/lib/types/components/SearchBox.d.ts +7 -8
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +18 -9
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +113 -6
- package/lib/types/components/StarPrompt.d.ts.map +1 -1
- package/lib/types/components/StarPrompt.js +5 -3
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +6 -4
- package/lib/types/components/SubagentCard.d.ts +2 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +25 -18
- package/lib/types/components/SubagentDashboard.d.ts +10 -6
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +32 -21
- package/lib/types/components/SubagentDetailScene.d.ts +16 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +196 -45
- package/lib/types/components/SyntaxText.d.ts.map +1 -1
- package/lib/types/components/SyntaxText.js +4 -1
- package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
- package/lib/types/components/TurnInterruptedRow.js +6 -3
- package/lib/types/components/TurnUsageRow.d.ts +24 -0
- package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
- package/lib/types/components/TurnUsageRow.js +46 -0
- package/lib/types/components/WorkingSpinner.d.ts +2 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +21 -4
- package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +173 -25
- package/lib/types/components/claudeGirlSprite.d.ts +18 -0
- package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
- package/lib/types/components/claudeGirlSprite.js +48 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +46 -13
- package/lib/types/components/design-system/ThemedText.d.ts +3 -1
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/diffPatch.d.ts +55 -0
- package/lib/types/components/diffPatch.d.ts.map +1 -0
- package/lib/types/components/diffPatch.js +142 -0
- package/lib/types/components/kernelCatalog.d.ts +48 -0
- package/lib/types/components/kernelCatalog.d.ts.map +1 -0
- package/lib/types/components/kernelCatalog.js +53 -0
- package/lib/types/components/launchpadActions.d.ts +13 -6
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +26 -4
- package/lib/types/components/launchpadParams.d.ts +101 -0
- package/lib/types/components/launchpadParams.d.ts.map +1 -0
- package/lib/types/components/launchpadParams.js +171 -0
- package/lib/types/components/maidPortrait.d.ts +37 -5
- package/lib/types/components/maidPortrait.d.ts.map +1 -1
- package/lib/types/components/maidPortrait.js +73 -54
- package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
- package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
- package/lib/types/components/messages/AgentMessageFlow.js +37 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
- package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
- package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptLeaves.js +74 -0
- package/lib/types/components/messages/agentTeam.d.ts +69 -0
- package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
- package/lib/types/components/messages/agentTeam.js +53 -0
- package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
- package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
- package/lib/types/components/messages/liveOutputLines.js +100 -0
- package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
- package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
- package/lib/types/components/messages/subagentTranscript.js +304 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
- package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +11 -6
- package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
- package/lib/types/components/questions/ProviderModelEditor.js +266 -0
- package/lib/types/components/shimmer.d.ts +26 -0
- package/lib/types/components/shimmer.d.ts.map +1 -1
- package/lib/types/components/shimmer.js +26 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/InfoPanel.js +13 -8
- package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +55 -77
- package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +8 -4
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
- package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
- package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/agentViewStore.js +26 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/threads.js +302 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +70 -30
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
- package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/mood.js +44 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +203 -29
- package/lib/types/components/splashFonts.d.ts +17 -9
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +119 -15
- package/lib/types/components/splashLayout.d.ts.map +1 -1
- package/lib/types/components/splashLayout.js +3 -1
- package/lib/types/components/subagentDetailMemory.d.ts +17 -0
- package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
- package/lib/types/components/subagentDetailMemory.js +28 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
- package/lib/types/components/trajectory/Inspector.js +9 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
- package/lib/types/components/trajectory/Ledger.js +7 -1
- package/lib/types/components/trajectory/scope.d.ts +64 -0
- package/lib/types/components/trajectory/scope.d.ts.map +1 -0
- package/lib/types/components/trajectory/scope.js +88 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
- package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
- package/lib/types/customTheme.d.ts +4 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +6 -8
- package/lib/types/dsh-adapter/approvals.d.ts +18 -5
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +17 -4
- package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
- package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/session.js +291 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/translate.js +467 -0
- package/lib/types/dsh-adapter/backends.d.ts +49 -0
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.js +124 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +7 -5
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
- package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding.js +102 -35
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +3 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/files.js +45 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/host.js +116 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/decisions.js +4 -4
- package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/emitter.js +5 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/extensions.js +714 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
- package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
- package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/preferences.js +16 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +38 -1143
- package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/question-record.js +3 -107
- package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
- package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +7 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +17 -21
- package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.js +5 -111
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
- package/lib/types/dsh-adapter/channel.d.ts +17 -8
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +24 -1059
- package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +6 -1
- package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/decision-guard.js +44 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extension-events.js +22 -10
- package/lib/types/dsh-adapter/index.d.ts +41 -3
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +28 -1
- package/lib/types/dsh-adapter/jobs.d.ts +5 -3
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +53 -14
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
- package/lib/types/dsh-adapter/plugin.d.ts +38 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +546 -110
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +118 -52
- package/lib/types/dsh-adapter/questions.d.ts +29 -124
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +33 -267
- package/lib/types/dsh-adapter/recap.d.ts +3 -15
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
- package/lib/types/dsh-adapter/recap.js +3 -46
- package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sanitize.js +4 -84
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
- package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +60 -27
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +6 -4
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +1 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +3 -13
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +7 -0
- package/lib/types/dsh-adapter/themes.d.ts +1 -1
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/index.js +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +7 -0
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +11 -2
- package/lib/types/handoffAck.d.ts +57 -0
- package/lib/types/handoffAck.d.ts.map +1 -0
- package/lib/types/handoffAck.js +154 -0
- package/lib/types/handoffEvents.d.ts +52 -0
- package/lib/types/handoffEvents.d.ts.map +1 -0
- package/lib/types/handoffEvents.js +128 -0
- package/lib/types/i18n.d.ts +3189 -68
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +855 -9
- package/lib/types/ink/colorize.d.ts.map +1 -1
- package/lib/types/ink/colorize.js +8 -2
- package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
- package/lib/types/ink/components/AlternateScreen.js +25 -4
- package/lib/types/ink/components/App.d.ts +5 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +52 -5
- package/lib/types/ink/components/Image.d.ts +8 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/components/Text.d.ts +8 -1
- package/lib/types/ink/components/Text.d.ts.map +1 -1
- package/lib/types/ink/components/Text.js +11 -1
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +75 -3
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +9 -4
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +8 -2
- package/lib/types/ink/kitty-graphics.d.ts +7 -2
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +15 -7
- package/lib/types/ink/node-cache.d.ts +15 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +4 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +2 -0
- package/lib/types/ink/parse-keypress.d.ts +13 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +438 -19
- package/lib/types/ink/reconciler.d.ts.map +1 -1
- package/lib/types/ink/reconciler.js +9 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +200 -4
- package/lib/types/ink/render-stats.d.ts +35 -0
- package/lib/types/ink/render-stats.d.ts.map +1 -0
- package/lib/types/ink/render-stats.js +53 -0
- package/lib/types/ink/sixel-codec.d.ts +11 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +10 -3
- package/lib/types/ink/sixel-graphics.js +2 -2
- package/lib/types/ink/styles.d.ts +46 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +7 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +1 -1
- package/lib/types/ink/terminal-querier.js +4 -4
- package/lib/types/ink/text-decoration.d.ts +49 -0
- package/lib/types/ink/text-decoration.d.ts.map +1 -0
- package/lib/types/ink/text-decoration.js +235 -0
- package/lib/types/ink/update-overflow-guard.d.ts +9 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +41 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +5 -1
- package/lib/types/kernelPrefs.d.ts +51 -0
- package/lib/types/kernelPrefs.d.ts.map +1 -0
- package/lib/types/kernelPrefs.js +126 -0
- package/lib/types/modelRecents.d.ts +10 -2
- package/lib/types/modelRecents.d.ts.map +1 -1
- package/lib/types/modelRecents.js +20 -7
- package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
- package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
- package/lib/types/screens/AgentTranscriptScene.js +269 -0
- package/lib/types/screens/Chat.d.ts +45 -7
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +625 -113
- package/lib/types/screens/Launchpad.d.ts +24 -7
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +147 -28
- package/lib/types/screens/SessionSupervisor.d.ts +3 -3
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +69 -5
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +211 -7
- package/lib/types/screens/StatusLine.d.ts +40 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +131 -19
- package/lib/types/screens/StatusMetrics.d.ts +53 -17
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +141 -30
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/screens/TrajectoryScene.js +74 -12
- package/lib/types/screens/chat/backendCommands.d.ts +37 -0
- package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
- package/lib/types/screens/chat/backendCommands.js +51 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
- package/lib/types/screens/chat/useBackendChannels.js +117 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useKernelPicker.js +72 -0
- package/lib/types/screens/chatOverlay.d.ts +32 -2
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +9 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
- package/lib/types/sessionHistory.d.ts +18 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +46 -4
- package/lib/types/sessionPins.d.ts +7 -0
- package/lib/types/sessionPins.d.ts.map +1 -1
- package/lib/types/sessionPins.js +9 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
- package/lib/types/sessions/resumeFailure.js +2 -1
- package/lib/types/settings/definitions.d.ts +74 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +50 -4
- package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
- package/lib/types/terminal-utils/hyperlink.js +21 -4
- package/lib/types/terminal-utils/markdown.d.ts +34 -6
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +257 -66
- package/lib/types/theme.d.ts +49 -8
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +514 -18
- package/lib/types/tips.js +2 -2
- package/lib/types/trajectory/effortIgnition.d.ts +25 -7
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
- package/lib/types/trajectory/effortIgnition.js +106 -34
- package/lib/types/trajectory/window.d.ts +26 -0
- package/lib/types/trajectory/window.d.ts.map +1 -0
- package/lib/types/trajectory/window.js +27 -0
- package/lib/types/tuiDisplayPrefs.d.ts +38 -1
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +45 -1
- package/lib/types/update.d.ts +88 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +285 -18
- package/lib/types/utils/crashDetail.d.ts +56 -0
- package/lib/types/utils/crashDetail.d.ts.map +1 -0
- package/lib/types/utils/crashDetail.js +175 -0
- package/lib/types/utils/imageResize.d.ts +9 -23
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +24 -20
- package/lib/types/utils/inputPaste.d.ts +9 -8
- package/lib/types/utils/inputPaste.d.ts.map +1 -1
- package/lib/types/utils/inputPaste.js +53 -16
- package/lib/types/utils/jsonl.d.ts +24 -0
- package/lib/types/utils/jsonl.d.ts.map +1 -0
- package/lib/types/utils/jsonl.js +36 -0
- package/package.json +18 -2
package/lib/types/commands.js
CHANGED
|
@@ -39,8 +39,8 @@ export const LOCAL_COMMANDS = [
|
|
|
39
39
|
{ name: 'btw', description: 'Ask a quick side question without interrupting the conversation' },
|
|
40
40
|
{ name: 'trace', description: 'Show the session event trace timeline' },
|
|
41
41
|
{ name: 'agentview', description: 'Open the agent view (all sessions)' },
|
|
42
|
-
{ name: 'bg', description: '
|
|
43
|
-
{ name: 'background', description: '
|
|
42
|
+
{ name: 'bg', description: 'Open the session manager (DSH backgrounds this session first)' },
|
|
43
|
+
{ name: 'background', description: 'Open the session manager (DSH backgrounds this session first)', tag: 'alias of /bg' },
|
|
44
44
|
// Session / environment
|
|
45
45
|
{ name: 'context', description: 'Show loaded context details' },
|
|
46
46
|
{ name: 'status', description: 'Show session status' },
|
|
@@ -88,11 +88,111 @@ export const LOCAL_COMMANDS = [
|
|
|
88
88
|
// Help / exit
|
|
89
89
|
{ name: 'help', description: 'Show shortcuts and commands' },
|
|
90
90
|
{ name: 'tips', description: 'Show usage tips and shortcuts' },
|
|
91
|
+
{ name: 'kernel', description: 'Choose the kernel dsh-tui runs on (DSH or Claude)' },
|
|
91
92
|
{ name: 'restart', description: 'Restart dsh-tui and resume this session' },
|
|
92
93
|
{ name: 'exit', description: 'Exit dsh-tui' },
|
|
93
94
|
{ name: 'quit', description: 'Exit dsh-tui', tag: 'alias of /exit' },
|
|
94
95
|
{ name: 'q', description: 'Exit dsh-tui', tag: 'alias of /exit' },
|
|
95
96
|
];
|
|
97
|
+
/**
|
|
98
|
+
* `/permission` as a modes-capable backend serves it. Deliberately NOT a
|
|
99
|
+
* LOCAL_COMMANDS entry: DSH's own /permission comes from the permission-
|
|
100
|
+
* presets registry row, and a local entry would shadow it in the merged
|
|
101
|
+
* list (locals win collisions), flipping the external-command route the
|
|
102
|
+
* DSH pipeline depends on. The backend capability snapshot appends this
|
|
103
|
+
* shape instead (channel/capabilities.ts → session-controls), so a session
|
|
104
|
+
* with the typed `modes` capability offers the same command surface
|
|
105
|
+
* without touching DSH's.
|
|
106
|
+
*/
|
|
107
|
+
export const BACKEND_PERMISSION_COMMAND = {
|
|
108
|
+
name: 'permission',
|
|
109
|
+
description: 'Show or switch the permission mode',
|
|
110
|
+
descriptionKey: 'cmd-desc-permission',
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* `/channel` as a channels-capable backend serves it (the Claude backend's
|
|
114
|
+
* relay channel profiles, backends/claude/channels.ts). Like /permission,
|
|
115
|
+
* deliberately NOT a LOCAL_COMMANDS entry: the command must appear only on a
|
|
116
|
+
* backend that declares the typed `channels` capability — a DSH session
|
|
117
|
+
* (every built-in) and other backends never list it, so typing `/channel`
|
|
118
|
+
* there keeps today's not-a-command behavior. The capability snapshot
|
|
119
|
+
* appends the name (channel/capabilities.ts) and session-controls rides it
|
|
120
|
+
* here.
|
|
121
|
+
*/
|
|
122
|
+
export const BACKEND_CHANNEL_COMMAND = {
|
|
123
|
+
name: 'channel',
|
|
124
|
+
description: 'Manage relay channel profiles (switch, import, view mappings)',
|
|
125
|
+
descriptionKey: 'cmd-desc-channel',
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* `/goal` as a goals-capable backend serves it (the typed `goals`
|
|
129
|
+
* capability; the channel core's `backendGoals` host). Like /permission,
|
|
130
|
+
* deliberately NOT a LOCAL_COMMANDS entry: DSH's own /goal is the
|
|
131
|
+
* `dsh-command-goal` registry row, and a local entry would shadow it. The
|
|
132
|
+
* capability snapshot appends the name (channel/capabilities.ts) and
|
|
133
|
+
* session-controls rides it here. On a backend without the capability the
|
|
134
|
+
* typed command is refused as unavailable (`isUnavailableLocalCommand`).
|
|
135
|
+
*/
|
|
136
|
+
export const BACKEND_GOAL_COMMAND = {
|
|
137
|
+
name: 'goal',
|
|
138
|
+
description: 'Set or show the session goal',
|
|
139
|
+
descriptionKey: 'cmd-desc-goal',
|
|
140
|
+
};
|
|
141
|
+
const LOCAL_COMMAND_REQUIREMENTS = new Map([
|
|
142
|
+
['new', 'any'], ['clear', 'any'], ['status', 'any'], ['cost', 'any'], ['tokens', 'any'],
|
|
143
|
+
['settings', 'any'], ['star', 'any'], ['doctor', 'any'], ['help', 'any'], ['tips', 'any'],
|
|
144
|
+
['exit', 'any'], ['quit', 'any'], ['q', 'any'], ['theme', 'any'], ['lang', 'any'],
|
|
145
|
+
['activity', 'any'], ['thinking', 'any'], ['vim', 'any'], ['terminal-setup', 'any'],
|
|
146
|
+
['connect', 'any'], ['update', 'any'], ['export', 'any'], ['panel', 'any'],
|
|
147
|
+
// The composition root serves these by respawning the process, so every
|
|
148
|
+
// backend offers them. /kernel is also the only way back to DSH from
|
|
149
|
+
// inside a non-DSH conversation (the launchpad's kernel entry is the other).
|
|
150
|
+
['kernel', 'any'], ['restart', 'any'],
|
|
151
|
+
['compact', 'compact'], ['resume', 'resume'], ['home', 'resume'], ['agentview', 'resume'],
|
|
152
|
+
['bg', 'resume'], ['background', 'resume'], ['rewind', 'rewind'], ['fork', 'fork'],
|
|
153
|
+
['model', 'models'], ['effort', 'effort'], ['agents', 'subagents'], ['jobs', 'tasks'], ['mcp', 'mcp'],
|
|
154
|
+
['context', 'context'], ['login', 'login'], ['logout', 'login'], ['init', 'init'],
|
|
155
|
+
['recap', 'sideQuery'], ['btw', 'sideQuery'], ['rename', 'rename'], ['color', 'color'],
|
|
156
|
+
// /trace opens on every backend; one without trajectory data shows the
|
|
157
|
+
// unsupported state (channel.trajectorySource() decides, not this table).
|
|
158
|
+
['trace', 'any'],
|
|
159
|
+
]);
|
|
160
|
+
/** The requirement of one built-in command name (unlisted → `dsh`). */
|
|
161
|
+
export function localCommandRequirement(name) {
|
|
162
|
+
return LOCAL_COMMAND_REQUIREMENTS.get(name) ?? 'dsh';
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Names of the built-in commands a backend supports, in catalog order. A DSH
|
|
166
|
+
* session supports every built-in (today's list, unchanged); any other
|
|
167
|
+
* session supports the `any` commands plus those whose capability it has.
|
|
168
|
+
*/
|
|
169
|
+
export function supportedLocalCommandNames(backend) {
|
|
170
|
+
return LOCAL_COMMANDS.filter(command => {
|
|
171
|
+
if (backend.dsh)
|
|
172
|
+
return true;
|
|
173
|
+
const requirement = localCommandRequirement(command.name);
|
|
174
|
+
if (requirement === 'any')
|
|
175
|
+
return true;
|
|
176
|
+
if (requirement === 'dsh')
|
|
177
|
+
return false;
|
|
178
|
+
return backend.has(requirement);
|
|
179
|
+
}).map(command => command.name);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Whether a typed name is a built-in command the bound backend lacks. Such a
|
|
183
|
+
* line must neither run nor reach the model: the caller shows
|
|
184
|
+
* `cmd-unavailable-backend`. An absent snapshot (a partial embedder channel)
|
|
185
|
+
* means everything is supported. `/goal` counts as one when the snapshot
|
|
186
|
+
* says goals are not served (a backend without the `goals` capability; a
|
|
187
|
+
* snapshot without the flag predates it and serves everything).
|
|
188
|
+
*/
|
|
189
|
+
export function isUnavailableLocalCommand(name, capabilities) {
|
|
190
|
+
if (capabilities === undefined)
|
|
191
|
+
return false;
|
|
192
|
+
if (name === BACKEND_GOAL_COMMAND.name)
|
|
193
|
+
return capabilities.goals === false;
|
|
194
|
+
return LOCAL_COMMANDS.some(command => command.name === name) && !capabilities.commands.includes(name);
|
|
195
|
+
}
|
|
96
196
|
/**
|
|
97
197
|
* Hidden slash commands: intentionally not exposed in the `/` suggestion
|
|
98
198
|
* menu or Help, but still recognized as local commands when typed. They are
|
|
@@ -126,6 +226,100 @@ export function localizedDescription(command) {
|
|
|
126
226
|
return translated;
|
|
127
227
|
return tOr(command.descriptionKey ?? `cmd-desc-${command.name}`, command.description);
|
|
128
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Commands the channel REFUSES to run while a turn is streaming, mapped to the
|
|
231
|
+
* i18n key of the refusal notice. This table is the single source of truth for
|
|
232
|
+
* what a gate SAYS and for the `/` suggestion overlay that sinks the rows
|
|
233
|
+
* affecting the running conversation — so the refusal text and the overlay
|
|
234
|
+
* annotation can never drift. WHETHER a command is refused still lives in each
|
|
235
|
+
* gate's own `state.working` / `channel.working` branch — the 11 bail-outs under
|
|
236
|
+
* `src/dsh-adapter/` plus the UI-side gates that share the same refusals — so
|
|
237
|
+
* a new gate means a new entry here: `scripts/verify-command-hold.ts` fails when
|
|
238
|
+
* a `working` bail-out under `src/dsh-adapter/` notifies with a literal key of
|
|
239
|
+
* its own, and when a new name joins this dictionary without a conscious edit
|
|
240
|
+
* there. A `t(...)` call in a gate pins the key type, so removing an entry from
|
|
241
|
+
* the dict fails the build.
|
|
242
|
+
*/
|
|
243
|
+
export const WORKING_GATE_NOTICES = {
|
|
244
|
+
new: 'new-session-while-working',
|
|
245
|
+
compact: 'compact-while-working',
|
|
246
|
+
fork: 'fork-while-working',
|
|
247
|
+
model: 'model-switch-while-working',
|
|
248
|
+
preset: 'preset-agent-running',
|
|
249
|
+
workspace: 'workspace-switch-working',
|
|
250
|
+
update: 'update-working',
|
|
251
|
+
restart: 'update-working',
|
|
252
|
+
// `/resume` and the core's `/rewind` refuse mid-turn in the session-switch
|
|
253
|
+
// transaction; under DSH the rewind extension instead CANCELS the turn and
|
|
254
|
+
// re-arms (session-rewind.ts), so the refusal is the core's own path. The
|
|
255
|
+
// `/resume` KEY stays here for that core path and for `resumeFailureText`,
|
|
256
|
+
// but its ROW is not gray-zoned — see GRAY_ZONE_EXEMPT_COMMANDS.
|
|
257
|
+
resume: 'resume-while-working',
|
|
258
|
+
rewind: 'rewind-while-working',
|
|
259
|
+
// Both backend pickers open while a turn runs, but every mutating row inside
|
|
260
|
+
// them is refused (`/kernel` confirms a switch; `/channel` imports, adds,
|
|
261
|
+
// manages or switches to a profile that needs a process restart).
|
|
262
|
+
kernel: 'kernel-switch-while-working',
|
|
263
|
+
channel: 'channel-switch-while-working',
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Commands that DO have a mid-turn refusal notice of their own, yet whose ROW
|
|
267
|
+
* stays in the overlay's normal region: the command only OPENS a browser, and
|
|
268
|
+
* the refusals belong to the separate, separately confirmed actions INSIDE it.
|
|
269
|
+
*
|
|
270
|
+
* `/resume` opens the session manager (`Chat.tsx` `setSupervisorOpen`); the
|
|
271
|
+
* per-row switch is a separate action that PARKS the outgoing session and lets
|
|
272
|
+
* its turn keep running (`session-resume.ts`), so neither the command nor the
|
|
273
|
+
* switch interrupts the running turn — the same reason `/tree` is in the normal
|
|
274
|
+
* region. Its key stays in {@link WORKING_GATE_NOTICES} because the core's own
|
|
275
|
+
* session-switch transaction still refuses mid-turn on a backend that gets no
|
|
276
|
+
* DSH extension (Claude, `core/session-switch.ts`), and `resumeFailureText`
|
|
277
|
+
* reports that reason with it.
|
|
278
|
+
*/
|
|
279
|
+
export const GRAY_ZONE_EXEMPT_COMMANDS = ['resume'];
|
|
280
|
+
/**
|
|
281
|
+
* Commands that MAY run while a turn is streaming but act ON the conversation
|
|
282
|
+
* itself rather than on the running turn: `clear` empties the visible view (the
|
|
283
|
+
* running turn keeps writing into it, `local-actions.ts`), and `exit` (with its
|
|
284
|
+
* `quit`/`q` aliases) tears the process — and the running turn — down.
|
|
285
|
+
*
|
|
286
|
+
* `/rewind` used to live here, because it cancels only once a target is
|
|
287
|
+
* CONFIRMED (`session-rewind.ts`) and replacing the conversation is its whole
|
|
288
|
+
* purpose. It moved to {@link WORKING_GATE_NOTICES} when the session-switch
|
|
289
|
+
* transaction grew its own mid-turn refusal: under DSH the extension still
|
|
290
|
+
* cancels and re-arms, but the core's rewind path REFUSES, and one command
|
|
291
|
+
* cannot be both. `/tree` deliberately stays out of both families: it only
|
|
292
|
+
* opens the family-tree browser (`Chat.tsx` `setTreeOpen(true)`) and leaves the
|
|
293
|
+
* running turn untouched — its per-node rewind/fork/adopt are separate,
|
|
294
|
+
* separately confirmed actions (`session-tree-actions.ts`), and browsing the
|
|
295
|
+
* tree is inspection, not impact (issue #1072 review: measured on a real turn —
|
|
296
|
+
* `/tree` does not interrupt). `/resume` belongs to that same normal region for
|
|
297
|
+
* the same reason, even though it does own a notice key for the core's refusal:
|
|
298
|
+
* see {@link GRAY_ZONE_EXEMPT_COMMANDS}.
|
|
299
|
+
*/
|
|
300
|
+
export const WORKING_CONVERSATION_COMMANDS = [
|
|
301
|
+
'clear', 'exit', 'quit', 'q',
|
|
302
|
+
];
|
|
303
|
+
/**
|
|
304
|
+
* Classify a command by its impact on the running conversation.
|
|
305
|
+
* @param name Bare command name or a completion path (`model deepseek-chat`);
|
|
306
|
+
* only the first token is classified, so every child of a gated command
|
|
307
|
+
* (`/model <id>`, `/workspace rename <t>`) inherits the parent's hold.
|
|
308
|
+
* @param skill Whether the entry is a user-invocable skill.
|
|
309
|
+
* @returns The hold, or `undefined` for the normal region.
|
|
310
|
+
*/
|
|
311
|
+
export function workingHoldOf(name, skill) {
|
|
312
|
+
if (skill === true)
|
|
313
|
+
return 'inject';
|
|
314
|
+
const root = name.replace(/^\//, '').trim().split(/[\t ]+/u)[0]?.toLowerCase() ?? '';
|
|
315
|
+
if (root === '')
|
|
316
|
+
return undefined;
|
|
317
|
+
if (GRAY_ZONE_EXEMPT_COMMANDS.includes(root))
|
|
318
|
+
return undefined;
|
|
319
|
+
if (Object.hasOwn(WORKING_GATE_NOTICES, root))
|
|
320
|
+
return 'gated';
|
|
321
|
+
return WORKING_CONVERSATION_COMMANDS.includes(root) ? 'conversation' : undefined;
|
|
322
|
+
}
|
|
129
323
|
/**
|
|
130
324
|
* Parse a slash-command line into its name and the verbatim input following
|
|
131
325
|
* the name (separator whitespace included) — the same split the DSH command
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AgentComposeTarget, AgentMessageControl, AgentMessageView } from './messages/agentTeam.js';
|
|
3
|
+
export interface AgentMessageComposerProps {
|
|
4
|
+
/** Resolved target: unique name, or the stable id when ambiguous. */
|
|
5
|
+
readonly target: AgentComposeTarget;
|
|
6
|
+
/** The channel's message control (`subagentControl.message`); the wiring
|
|
7
|
+
* already proved the member exists. */
|
|
8
|
+
readonly control: AgentMessageControl;
|
|
9
|
+
/** The durable feed for this child — later facts about our intents. */
|
|
10
|
+
readonly messages: readonly AgentMessageView[];
|
|
11
|
+
/** Keyboard focus; the scene yields plain typing here while true. */
|
|
12
|
+
readonly focused: boolean;
|
|
13
|
+
onFocusChange(focused: boolean): void;
|
|
14
|
+
/** Side-panel form: the panel's own key handler forwards keys through
|
|
15
|
+
* this ref instead of the composer listening with useInput. The panel
|
|
16
|
+
* host swallows every plain key before a later-mounted listener sees it,
|
|
17
|
+
* so a direct listener would never get the typing, and one left active
|
|
18
|
+
* after focus moves back to chat would pick up the chat's keystrokes. */
|
|
19
|
+
readonly keyHandlerRef?: React.MutableRefObject<ComposerKeyHandler | null>;
|
|
20
|
+
}
|
|
21
|
+
/** Ink's key flags as the composer reads them (the panel dispatcher passes
|
|
22
|
+
* the same runtime object, with `return_` added). */
|
|
23
|
+
type ComposerKey = {
|
|
24
|
+
readonly escape?: boolean;
|
|
25
|
+
readonly return?: boolean;
|
|
26
|
+
readonly return_?: boolean;
|
|
27
|
+
readonly ctrl?: boolean;
|
|
28
|
+
readonly meta?: boolean;
|
|
29
|
+
readonly shift?: boolean;
|
|
30
|
+
readonly backspace?: boolean;
|
|
31
|
+
readonly delete?: boolean;
|
|
32
|
+
readonly leftArrow?: boolean;
|
|
33
|
+
readonly rightArrow?: boolean;
|
|
34
|
+
readonly home?: boolean;
|
|
35
|
+
readonly end?: boolean;
|
|
36
|
+
};
|
|
37
|
+
/** true = the composer consumed the key. */
|
|
38
|
+
export type ComposerKeyHandler = (input: string, key: ComposerKey) => boolean;
|
|
39
|
+
/** Caret steps over whole code points, so an emoji is never split. */
|
|
40
|
+
export declare function previousCodePoint(text: string, caret: number): number;
|
|
41
|
+
export declare function nextCodePoint(text: string, caret: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* The user→child send box. It owns its own draft (never the parent's
|
|
44
|
+
* PromptInput, dock or queue) and submits only through the channel's
|
|
45
|
+
* AgentMessageControl (Claude: relayed by the parent; DSH: a direct prompt
|
|
46
|
+
* to a continuable child). A failure keeps the draft and says why.
|
|
47
|
+
*/
|
|
48
|
+
export declare function AgentMessageComposer({ target, control, messages, focused, onFocusChange, keyHandlerRef }: AgentMessageComposerProps): React.ReactNode;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=AgentMessageComposer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentMessageComposer.d.ts","sourceRoot":"","sources":["../../../src/components/AgentMessageComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EAGnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAmChC,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC;4CACwC;IACxC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;IACrC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC9C,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACrC;;;;8EAI0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;CAC3E;AAED;sDACsD;AACtD,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAA;AAE7E,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,yBAAyB,GAAG,KAAK,CAAC,SAAS,CA0JrJ"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Box, Text, useInput } from '../ui.js';
|
|
4
|
+
import { t } from '../i18n.js';
|
|
5
|
+
import { isPlainReturnInput } from '../utils/modifiers.js';
|
|
6
|
+
import { agentMessageStateColor, agentMessageStateText, agentMessageViaText } from './messages/TranscriptLeaves.js';
|
|
7
|
+
/** The control's stable failure reason → the notice word. */
|
|
8
|
+
const NOTICE_OF_REASON = {
|
|
9
|
+
unavailable: 'agent-message-unavailable',
|
|
10
|
+
'target-ambiguous': 'agent-message-target-ambiguous',
|
|
11
|
+
'not-resumable': 'agent-message-target-not-resumable',
|
|
12
|
+
'parent-unavailable': 'agent-message-parent-unavailable',
|
|
13
|
+
unauthorized: 'agent-message-unauthorized',
|
|
14
|
+
'delivery-unavailable': 'agent-message-delivery-unavailable',
|
|
15
|
+
cancelled: 'agent-message-parent-interrupted',
|
|
16
|
+
failed: 'agent-message-dispatch-failed',
|
|
17
|
+
};
|
|
18
|
+
/** Caret steps over whole code points, so an emoji is never split. */
|
|
19
|
+
export function previousCodePoint(text, caret) {
|
|
20
|
+
if (caret <= 0)
|
|
21
|
+
return 0;
|
|
22
|
+
const low = text.charCodeAt(caret - 1);
|
|
23
|
+
const high = caret >= 2 ? text.charCodeAt(caret - 2) : 0;
|
|
24
|
+
return low >= 0xdc00 && low <= 0xdfff && high >= 0xd800 && high <= 0xdbff ? caret - 2 : caret - 1;
|
|
25
|
+
}
|
|
26
|
+
export function nextCodePoint(text, caret) {
|
|
27
|
+
if (caret >= text.length)
|
|
28
|
+
return text.length;
|
|
29
|
+
return (text.codePointAt(caret) ?? 0) > 0xffff ? caret + 2 : caret + 1;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The user→child send box. It owns its own draft (never the parent's
|
|
33
|
+
* PromptInput, dock or queue) and submits only through the channel's
|
|
34
|
+
* AgentMessageControl (Claude: relayed by the parent; DSH: a direct prompt
|
|
35
|
+
* to a continuable child). A failure keeps the draft and says why.
|
|
36
|
+
*/
|
|
37
|
+
export function AgentMessageComposer({ target, control, messages, focused, onFocusChange, keyHandlerRef }) {
|
|
38
|
+
// The draft lives in a ref as well as in state: keys can arrive faster
|
|
39
|
+
// than React re-renders, and a handler reading a render-time copy would
|
|
40
|
+
// overwrite the previous keystroke (or submit twice on a double Enter).
|
|
41
|
+
const draftRef = React.useRef({ text: '', caret: 0 });
|
|
42
|
+
const [draft, setDraftState] = React.useState(draftRef.current);
|
|
43
|
+
const setDraft = (next) => {
|
|
44
|
+
draftRef.current = next;
|
|
45
|
+
setDraftState(next);
|
|
46
|
+
};
|
|
47
|
+
const { text, caret } = draft;
|
|
48
|
+
const sendingRef = React.useRef(false);
|
|
49
|
+
const [sending, setSending] = React.useState(false);
|
|
50
|
+
const [sent, setSent] = React.useState(null);
|
|
51
|
+
const [notice, setNotice] = React.useState(null);
|
|
52
|
+
// The display name: the unique name, the stable id when ambiguous, or the
|
|
53
|
+
// short id when the backend reports no name at all.
|
|
54
|
+
const shownName = target.ambiguous === true ? target.agentId.slice(0, 8) : target.name ?? target.agentId.slice(0, 8);
|
|
55
|
+
const canSubmit = target.name !== undefined && !sending;
|
|
56
|
+
// Later channel facts about our newest intent advance the status line.
|
|
57
|
+
const latestIntentState = React.useMemo(() => {
|
|
58
|
+
if (sent === null)
|
|
59
|
+
return undefined;
|
|
60
|
+
const advance = [...messages].reverse().find(message => message.intentId === sent.intentId);
|
|
61
|
+
return advance?.state ?? sent.state;
|
|
62
|
+
}, [messages, sent]);
|
|
63
|
+
const submit = (delivery) => {
|
|
64
|
+
const submitted = draftRef.current.text;
|
|
65
|
+
if (target.name === undefined || sendingRef.current || submitted.trim() === '')
|
|
66
|
+
return;
|
|
67
|
+
sendingRef.current = true;
|
|
68
|
+
setSending(true);
|
|
69
|
+
setNotice(null);
|
|
70
|
+
const settle = () => {
|
|
71
|
+
sendingRef.current = false;
|
|
72
|
+
setSending(false);
|
|
73
|
+
};
|
|
74
|
+
control.submit({
|
|
75
|
+
targetId: target.agentId,
|
|
76
|
+
targetName: target.name,
|
|
77
|
+
text: submitted,
|
|
78
|
+
delivery,
|
|
79
|
+
}).then(outcome => {
|
|
80
|
+
settle();
|
|
81
|
+
if (outcome.ok) {
|
|
82
|
+
// The channel mints the intent id; the receipt state is a FACT the
|
|
83
|
+
// transport stated (an accepted inbox is 'queued', never more).
|
|
84
|
+
// Text typed while the submit was in flight stays in the box.
|
|
85
|
+
if (draftRef.current.text === submitted)
|
|
86
|
+
setDraft({ text: '', caret: 0 });
|
|
87
|
+
setSent({ intentId: outcome.intentId, text: submitted, state: outcome.state });
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
// Failure keeps the draft verbatim; the notice names the stable
|
|
91
|
+
// reason, never a raw provider error.
|
|
92
|
+
setNotice({ key: NOTICE_OF_REASON[outcome.reason], failure: true });
|
|
93
|
+
}, () => {
|
|
94
|
+
settle();
|
|
95
|
+
setNotice({ key: 'agent-message-dispatch-failed', failure: true });
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
const handleKey = (input, key) => {
|
|
99
|
+
// Esc: the editor layer consumes it first — hand focus back to the scene
|
|
100
|
+
// with the draft retained (the next Esc leaves the Agent View).
|
|
101
|
+
if (key.escape === true) {
|
|
102
|
+
onFocusChange(false);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
const returnKey = key.return === true || key.return_ === true;
|
|
106
|
+
if (isPlainReturnInput(input, { ...key, return: returnKey })) {
|
|
107
|
+
submit('queue');
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
// Ctrl+Enter steers ONLY under an explicit capability; Claude mediation
|
|
111
|
+
// keeps the followup placement (never interruptAndDeliver).
|
|
112
|
+
if (returnKey && key.ctrl === true) {
|
|
113
|
+
submit(control.steer === true ? 'steer' : 'queue');
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
const current = draftRef.current;
|
|
117
|
+
if (key.backspace === true || key.delete === true) {
|
|
118
|
+
if (current.caret > 0) {
|
|
119
|
+
const at = previousCodePoint(current.text, current.caret);
|
|
120
|
+
setDraft({ text: current.text.slice(0, at) + current.text.slice(current.caret), caret: at });
|
|
121
|
+
}
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
if (key.leftArrow === true) {
|
|
125
|
+
setDraft({ ...current, caret: previousCodePoint(current.text, current.caret) });
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
if (key.rightArrow === true) {
|
|
129
|
+
setDraft({ ...current, caret: nextCodePoint(current.text, current.caret) });
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
if (key.home === true || (key.ctrl === true && input === 'a')) {
|
|
133
|
+
setDraft({ ...current, caret: 0 });
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
if (key.end === true || (key.ctrl === true && input === 'e')) {
|
|
137
|
+
setDraft({ ...current, caret: current.text.length });
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
if (input !== '' && key.ctrl !== true && key.meta !== true) {
|
|
141
|
+
setDraft({ text: current.text.slice(0, current.caret) + input + current.text.slice(current.caret), caret: current.caret + input.length });
|
|
142
|
+
setNotice(null);
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
};
|
|
147
|
+
if (keyHandlerRef !== undefined)
|
|
148
|
+
keyHandlerRef.current = focused ? handleKey : null;
|
|
149
|
+
useInput((input, key, event) => {
|
|
150
|
+
if (handleKey(input, key))
|
|
151
|
+
event.stopImmediatePropagation();
|
|
152
|
+
}, { isActive: focused && keyHandlerRef === undefined });
|
|
153
|
+
const viaLabel = agentMessageViaText(control.via);
|
|
154
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: "accent", children: '› ' }), _jsx(Text, { bold: true, children: t('agent-message-compose-title', { name: shownName }) }), _jsx(Text, { dimColor: true, children: ` · ${viaLabel}` })] }), target.ambiguous === true && (_jsx(Text, { dimColor: true, children: t('agent-message-target-ambiguous', { id: target.agentId.slice(0, 8) }) })), target.name === undefined && (_jsx(Text, { color: "warning", children: t('agent-message-target-nameless') })), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { children: text.slice(0, caret) }), _jsx(Text, { inverse: true, children: ' ' }), _jsx(Text, { children: text.slice(caret) })] }), notice !== null && (_jsx(Text, { color: notice.failure === true ? 'error' : undefined, children: `${t(notice.key)}${notice.failure === true ? ` · ${t('agent-message-draft-retained')}` : ''}` })), latestIntentState !== undefined && sent !== null && (_jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { dimColor: true, children: `${t('agent-message-submitted')}: ` }), _jsx(Text, { color: agentMessageStateColor(latestIntentState), children: agentMessageStateText(latestIntentState) }), _jsx(Text, { dimColor: true, children: ` · ${t('agent-message-inbox-note')}` })] })), _jsx(Text, { dimColor: true, children: canSubmit
|
|
155
|
+
? (control.steer === true
|
|
156
|
+
? t('agent-message-hint-queue-steer')
|
|
157
|
+
: t('agent-message-hint-queue'))
|
|
158
|
+
: t('agent-message-hint-nameless') })] }));
|
|
159
|
+
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* BtwPanelFallback:btw 侧栏面板未启用时的 /btw 浮层。同一问答只在一处
|
|
3
|
+
* 呈现,Chat 只在面板未启用时挂它。
|
|
4
|
+
*
|
|
5
|
+
* 内容是当前 session 的 btw 线程(只读:无 composer、无 attach)。键位:
|
|
6
|
+
* Esc/Enter/Space 关闭(关闭即中止在途的一轮,由 Chat 接线)、↑/↓ 滚动、
|
|
7
|
+
* c 复制;浮层打开时吞掉其余所有键。底部提示如何启用 btw 面板,不替用户
|
|
8
|
+
* 改面板列表。
|
|
7
9
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
onCopy: () => void;
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import type { BtwThreadSnapshot } from './sidePanel/btw/threads.js';
|
|
12
|
+
export declare function BtwPanelFallback({ thread, onClose, onCopy, }: {
|
|
13
|
+
readonly thread: BtwThreadSnapshot | undefined;
|
|
14
|
+
readonly onClose: () => void;
|
|
15
|
+
readonly onCopy: (answer: string) => void;
|
|
15
16
|
}): React.ReactNode;
|
|
16
17
|
//# sourceMappingURL=BtwPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BtwPanel.d.ts","sourceRoot":"","sources":["../../../src/components/BtwPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"BtwPanel.d.ts","sourceRoot":"","sources":["../../../src/components/BtwPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE;IACD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C,GAAG,KAAK,CAAC,SAAS,CA+ClB"}
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* BtwPanelFallback:btw 侧栏面板未启用时的 /btw 浮层。同一问答只在一处
|
|
4
|
+
* 呈现,Chat 只在面板未启用时挂它。
|
|
5
|
+
*
|
|
6
|
+
* 内容是当前 session 的 btw 线程(只读:无 composer、无 attach)。键位:
|
|
7
|
+
* Esc/Enter/Space 关闭(关闭即中止在途的一轮,由 Chat 接线)、↑/↓ 滚动、
|
|
8
|
+
* c 复制;浮层打开时吞掉其余所有键。底部提示如何启用 btw 面板,不替用户
|
|
9
|
+
* 改面板列表。
|
|
10
|
+
*/
|
|
2
11
|
import React from 'react';
|
|
3
|
-
import { Box, Text, useInput,
|
|
4
|
-
import { Markdown } from './Markdown.js';
|
|
5
|
-
import { SpinnerGlyph } from './Spinner/SpinnerGlyph.js';
|
|
12
|
+
import { Box, Text, useInput, useTerminalSize } from '../ui.js';
|
|
6
13
|
import { t } from '../i18n.js';
|
|
7
14
|
import { isPlainReturnInput } from '../utils/modifiers.js';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* title line with the question, a scrollable answer body (error /
|
|
11
|
-
* markdown answer / answering spinner), and a hint line. Owns the keyboard
|
|
12
|
-
* while open — every key it sees is consumed here.
|
|
13
|
-
*/
|
|
14
|
-
export function BtwPanel({ question, answer, error, streaming, onClose, onCopy, }) {
|
|
15
|
+
import { BtwThreadView } from './sidePanel/btw/BtwThreadView.js';
|
|
16
|
+
export function BtwPanelFallback({ thread, onClose, onCopy, }) {
|
|
15
17
|
const scrollRef = React.useRef(null);
|
|
16
|
-
const { rows } = useTerminalSize();
|
|
17
|
-
// Spinner frame (80ms cadence, only while waiting for the first text).
|
|
18
|
-
const [frame, setFrame] = React.useState(0);
|
|
19
|
-
React.useEffect(() => {
|
|
20
|
-
if (!streaming || answer !== '')
|
|
21
|
-
return;
|
|
22
|
-
const interval = setInterval(() => setFrame(f => f + 1), 80);
|
|
23
|
-
return () => clearInterval(interval);
|
|
24
|
-
}, [streaming, answer]);
|
|
18
|
+
const { rows, columns } = useTerminalSize();
|
|
25
19
|
useInput((input, key, event) => {
|
|
20
|
+
// A pasted chunk can carry the return flag; it must not close the
|
|
21
|
+
// overlay (closing aborts the side question in flight).
|
|
26
22
|
if (key.escape || isPlainReturnInput(input, key) || input === ' ') {
|
|
27
23
|
event.stopImmediatePropagation();
|
|
28
24
|
onClose();
|
|
@@ -35,13 +31,28 @@ export function BtwPanel({ question, answer, error, streaming, onClose, onCopy,
|
|
|
35
31
|
}
|
|
36
32
|
if (input === 'c' && !key.ctrl) {
|
|
37
33
|
event.stopImmediatePropagation();
|
|
38
|
-
|
|
34
|
+
const latest = latestAnswer(thread);
|
|
35
|
+
if (latest !== '')
|
|
36
|
+
onCopy(latest);
|
|
39
37
|
return;
|
|
40
38
|
}
|
|
41
|
-
//
|
|
42
|
-
// nothing leaks into the prompt input behind it.
|
|
39
|
+
// 浮层拥有键盘:吞掉其余一切,不泄漏进身后的输入框。
|
|
43
40
|
event.stopImmediatePropagation();
|
|
44
41
|
});
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { flexDirection: "column", maxHeight: Math.max(5, rows - 8), children: _jsx(BtwThreadView, { thread: thread, width: columns, height: Math.max(5, rows - 10), alive: true, scrollHandleRef: scrollRef }) }), _jsx(Box, { onClick: settled(thread) ? () => { const latest = latestAnswer(thread); if (latest !== '')
|
|
43
|
+
onCopy(latest); } : undefined, children: _jsxs(Text, { dimColor: true, children: [settled(thread) ? t('btw-hint-done') : t('btw-hint-loading'), ' · ', t('btw-panel-unavailable')] }) })] }));
|
|
44
|
+
}
|
|
45
|
+
function latestAnswer(thread) {
|
|
46
|
+
if (thread === undefined)
|
|
47
|
+
return '';
|
|
48
|
+
for (let index = thread.turns.length - 1; index >= 0; index -= 1) {
|
|
49
|
+
const turn = thread.turns[index];
|
|
50
|
+
if (turn.answer !== '')
|
|
51
|
+
return turn.answer;
|
|
52
|
+
}
|
|
53
|
+
return '';
|
|
54
|
+
}
|
|
55
|
+
function settled(thread) {
|
|
56
|
+
const active = thread?.turns.find(turn => turn.turnId === thread.activeTurnId);
|
|
57
|
+
return thread === undefined || active === undefined || active.answer !== '' || active.phase === 'failed';
|
|
47
58
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BackendChannelOption } from '../dsh-adapter/channel.js';
|
|
3
|
+
/**
|
|
4
|
+
* 渠道档案选择器(/channel,仅 channels 能力的后端——即 Claude):一行一个
|
|
5
|
+
* 渠道(当前渠道打 ✓、行尾副行是映射规模),末尾两行固定动作——「从
|
|
6
|
+
* settings.json 导入」与「查看映射」。
|
|
7
|
+
*
|
|
8
|
+
* 视觉照 KernelPicker/ColorPicker 先例(Pane color=permission + 标题 +
|
|
9
|
+
* 行列表 + 底部提示行);行是 ListItem 但 **styled=false**,❯ 焦点指针
|
|
10
|
+
* 恒在、✓ 跟 activeId 走。键盘归宿主(Chat 的 overlay 分支):↑/↓ 移焦点、
|
|
11
|
+
* Enter 走确认路径、Esc 关掉,本组件不碰 useInput。
|
|
12
|
+
*
|
|
13
|
+
* 名册不冻在 overlay 里(rows 是 Chat 每渲染现读 channels.json 的派生值):
|
|
14
|
+
* 切换/导入后 ✓ 与行自己就刷新,选择器留在屏上(管理器姿态,与 /kernel
|
|
15
|
+
* 的「选完即关」刻意不同——这里还要继续导入/查看)。
|
|
16
|
+
*
|
|
17
|
+
* 鼠标契约照仓库规矩:给了 onPick 行才可点(hover 底色随之出现),点击
|
|
18
|
+
* 回的是**行号**——宿主把它喂给与键盘 Enter 完全相同的那条确认路径。
|
|
19
|
+
*/
|
|
20
|
+
/** 一行:渠道、或固定动作之一(导入 / 新增 / 管理 / 查看映射)。 */
|
|
21
|
+
export type ChannelPickerRow = {
|
|
22
|
+
readonly kind: 'channel';
|
|
23
|
+
readonly option: BackendChannelOption;
|
|
24
|
+
readonly active: boolean;
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: 'import';
|
|
27
|
+
} | {
|
|
28
|
+
readonly kind: 'add';
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: 'manage';
|
|
31
|
+
} | {
|
|
32
|
+
readonly kind: 'view';
|
|
33
|
+
};
|
|
34
|
+
export declare function ChannelPicker({ rows, focusIndex, onPick }: {
|
|
35
|
+
rows: readonly ChannelPickerRow[];
|
|
36
|
+
focusIndex: number;
|
|
37
|
+
/** 鼠标点行(落到 Chat 同一条确认路径) */
|
|
38
|
+
onPick?: (index: number) => void;
|
|
39
|
+
}): React.ReactNode;
|
|
40
|
+
//# sourceMappingURL=ChannelPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelPicker.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAKrE;;;;;;;;;;;;;;;;GAgBG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC7F;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7B,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;IAC1D,IAAI,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC,GAAG,KAAK,CAAC,SAAS,CAoElB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { t } from '../i18n.js';
|
|
3
|
+
import { Box, Text } from '../ui.js';
|
|
4
|
+
import { Pane } from './design-system/Pane.js';
|
|
5
|
+
import { ListItem } from './design-system/ListItem.js';
|
|
6
|
+
import { HintLine } from './design-system/HintLine.js';
|
|
7
|
+
export function ChannelPicker({ rows, focusIndex, onPick }) {
|
|
8
|
+
return (_jsx(Pane, { color: "permission", children: _jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "remember", bold: true, children: t('channel-picker-title') }) }), !rows.some(row => row.kind === 'channel') && (_jsx(Box, { paddingLeft: 2, marginBottom: 1, children: _jsx(Text, { dimColor: true, wrap: "wrap", children: t('channel-empty-hint') }) })), rows.map((row, index) => {
|
|
9
|
+
const focused = index === focusIndex;
|
|
10
|
+
if (row.kind === 'channel') {
|
|
11
|
+
return (_jsx(ListItem, { isFocused: focused, isSelected: row.active, description: row.option.connection === undefined
|
|
12
|
+
? t('channel-row-summary', { models: String(row.option.models.length), tiers: String(row.option.tiers.length) })
|
|
13
|
+
: t('channel-row-summary-conn', {
|
|
14
|
+
url: row.option.connection.baseUrl ?? t('channel-row-no-url'),
|
|
15
|
+
token: row.option.connection.hasToken ? '✓' : '—',
|
|
16
|
+
env: String(row.option.connection.envKeys.length),
|
|
17
|
+
models: String(row.option.models.length),
|
|
18
|
+
tiers: String(row.option.tiers.length),
|
|
19
|
+
}), styled: false, onClick: onPick === undefined ? undefined : () => onPick(index), children: _jsx(Text, { color: row.active ? 'success' : focused ? 'suggestion' : undefined, bold: focused, wrap: "truncate-end", children: row.option.name }) }, row.option.id));
|
|
20
|
+
}
|
|
21
|
+
return (_jsx(ListItem, { isFocused: focused, styled: false, onClick: onPick === undefined ? undefined : () => onPick(index), children: _jsx(Text, { color: focused ? 'suggestion' : undefined, bold: focused, wrap: "truncate-end", children: t(row.kind === 'import' ? 'channel-action-import'
|
|
22
|
+
: row.kind === 'add' ? 'channel-action-add'
|
|
23
|
+
: row.kind === 'manage' ? 'channel-action-manage'
|
|
24
|
+
: 'channel-action-view') }) }, row.kind));
|
|
25
|
+
}), _jsx(Text, { dimColor: true, italic: true, children: _jsx(HintLine, { text: t('channel-picker-hint') }) })] }) }));
|
|
26
|
+
}
|