@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
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { Box, Text } from '../../ui.js';
|
|
5
5
|
import { t } from '../../i18n.js';
|
|
6
6
|
import { StreamingMarkdown } from '../StreamingMarkdown.js';
|
|
7
|
-
import { formatDuration } from '../../terminal-utils/format.js';
|
|
7
|
+
import { formatDuration, formatTokens } from '../../terminal-utils/format.js';
|
|
8
8
|
import { THINKING_SPINNER_FRAMES, THINKING_SPINNER_INTERVAL_MS, THINKING_SETTLED_MARKER, } from '../../terminal-utils/figures.js';
|
|
9
9
|
import { BRAND, ICE } from '../shimmer.js';
|
|
10
10
|
import { interpolateColor } from '../Spinner/spinnerUtils.js';
|
|
@@ -27,9 +27,12 @@ const PREVIEW_ROWS = 3;
|
|
|
27
27
|
* (`⚓ Thinking · 12s …`) — dsh-tui's take on making thinking time visible in
|
|
28
28
|
* the transcript.
|
|
29
29
|
*/
|
|
30
|
-
export function AssistantThinkingMessage({ thinking, textFull, marginTopOnTurn, verbose, streaming = false, preview = false, durationMs, isSelected = false, onClick, }) {
|
|
31
|
-
if (!thinking)
|
|
32
|
-
|
|
30
|
+
export function AssistantThinkingMessage({ thinking, textFull, marginTopOnTurn, verbose, streaming = false, preview = false, durationMs, reasoningTokens, isSelected = false, onClick, }) {
|
|
31
|
+
if (!thinking) {
|
|
32
|
+
if (reasoningTokens === undefined)
|
|
33
|
+
return null;
|
|
34
|
+
return (_jsx(ThinkingTokensHeader, { tokens: reasoningTokens, streaming: streaming, marginTopOnTurn: marginTopOnTurn, isSelected: isSelected, onClick: onClick }));
|
|
35
|
+
}
|
|
33
36
|
// The preview ticker tracks the newest ARRIVED line (smooth streaming must
|
|
34
37
|
// not lag it behind the reveal); the expanded body below paints `thinking`
|
|
35
38
|
// — the revealed slice under smooth streaming, the full text otherwise.
|
|
@@ -83,3 +86,24 @@ export function AssistantThinkingMessage({ thinking, textFull, marginTopOnTurn,
|
|
|
83
86
|
}
|
|
84
87
|
return (_jsxs(Box, { flexDirection: "column", gap: 1, marginTop: marginTopOnTurn ? 1 : 0, width: "100%", backgroundColor: isSelected ? 'messageActionsBackground' : undefined, onClick: onClick, ...hoverProps, children: [header, _jsx(Box, { paddingLeft: 2, children: _jsx(StreamingMarkdown, { dimColor: true, children: thinking }) })] }));
|
|
85
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Count-only thinking: the backend streams an
|
|
91
|
+
* estimated token count but no thinking text. One header line in the same
|
|
92
|
+
* visual language as a text block — the pulsing braille spinner while live,
|
|
93
|
+
* the settled anchor afterwards — with nothing to expand.
|
|
94
|
+
*/
|
|
95
|
+
function ThinkingTokensHeader({ tokens, streaming, marginTopOnTurn, isSelected, onClick, }) {
|
|
96
|
+
const [frame, setFrame] = React.useState(0);
|
|
97
|
+
React.useEffect(() => {
|
|
98
|
+
if (!streaming)
|
|
99
|
+
return;
|
|
100
|
+
const interval = setInterval(() => setFrame(f => f + 1), THINKING_SPINNER_INTERVAL_MS);
|
|
101
|
+
return () => clearInterval(interval);
|
|
102
|
+
}, [streaming]);
|
|
103
|
+
const minimalUi = isMinimalUiMode();
|
|
104
|
+
const n = formatTokens(tokens);
|
|
105
|
+
const pulse = (Math.sin(frame * 0.9) + 1) / 2;
|
|
106
|
+
const pulseColor = interpolateColor(BRAND, ICE, pulse);
|
|
107
|
+
const frameText = THINKING_SPINNER_FRAMES[frame % THINKING_SPINNER_FRAMES.length];
|
|
108
|
+
return (_jsx(Box, { flexDirection: "row", marginTop: marginTopOnTurn ? 1 : 0, backgroundColor: isSelected ? 'messageActionsBackground' : undefined, onClick: onClick, children: streaming ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: minimalUi ? frameText : chalk.rgb(pulseColor.r, pulseColor.g, pulseColor.b).bold(frameText) }), _jsx(Text, { dimColor: true, italic: true, children: ` ${t('thinking-tokens-live', { n })}` })] })) : (_jsx(Text, { dimColor: true, italic: true, children: `${minimalUi ? '*' : THINKING_SETTLED_MARKER} ${t('thinking-tokens-done', { n })}` })) }));
|
|
109
|
+
}
|
|
@@ -59,14 +59,23 @@ type Props = {
|
|
|
59
59
|
fresh?: boolean;
|
|
60
60
|
/** Reveal version supplied by MessageList to avoid one store subscriber per card. */
|
|
61
61
|
revealVersion?: number;
|
|
62
|
+
/** The transcript window cap folded this row's source: full args/result
|
|
63
|
+
* payloads were dropped (the session log retains them) and only previews
|
|
64
|
+
* remain — the expanded card says so instead of passing the preview off
|
|
65
|
+
* as the full text. */
|
|
66
|
+
sourceFolded?: boolean;
|
|
67
|
+
/** Fullscreen layout: a running card shows more live output lines
|
|
68
|
+
* (`tool.liveOutput`: 8 instead of 5; the whole retained tail when
|
|
69
|
+
* verbose/expanded). */
|
|
70
|
+
fullscreen?: boolean;
|
|
62
71
|
};
|
|
63
|
-
export declare function toolNameColor(raw: string): keyof Theme;
|
|
72
|
+
export declare function toolNameColor(raw: string, category?: 'mutate' | 'exec' | 'other'): keyof Theme;
|
|
64
73
|
/**
|
|
65
74
|
* Tool-call card: `● Edit /path` header with a blinking status dot, then the
|
|
66
75
|
* structured body under a ` ⎿ ` gutter — diff hunks in red/green, terminal
|
|
67
76
|
* output, read content — instead of the raw result dump. The channel captures
|
|
68
77
|
* the structured views per call.
|
|
69
78
|
*/
|
|
70
|
-
export declare function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSelected, isExpanded, onClick, footnote, diffLayout, toolBackground, onOpenFile, foldTerminalCommand, smoothReveal, fresh, revealVersion, }: Props): React.ReactNode;
|
|
79
|
+
export declare function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSelected, isExpanded, onClick, footnote, diffLayout, toolBackground, onOpenFile, foldTerminalCommand, smoothReveal, fresh, revealVersion, sourceFolded, fullscreen, }: Props): React.ReactNode;
|
|
71
80
|
export {};
|
|
72
81
|
//# sourceMappingURL=AssistantToolUseMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantToolUseMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/AssistantToolUseMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,8BAA8B,CAAA;AASvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"AssistantToolUseMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/AssistantToolUseMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,8BAA8B,CAAA;AASvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AASjE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,OAAO,CAAA;IACb,4CAA4C;IAC5C,eAAe,EAAE,OAAO,CAAA;IACxB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAA;IAChB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACzC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;8CAC0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;4BAGwB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;6BAEyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AA2LD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,KAAK,CAS9F;AA+YD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,eAAe,EACf,OAAO,EACP,UAAkB,EAClB,UAAkB,EAClB,OAAO,EACP,QAAQ,EACR,UAAmB,EACnB,cAAuB,EACvB,UAAU,EACV,mBAA2B,EAC3B,YAAoB,EACpB,KAAa,EACb,aAAa,EACb,YAAoB,EACpB,UAAkB,GACnB,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAyXzB"}
|
|
@@ -11,10 +11,13 @@ import { useTooltip } from '../Tooltip.js';
|
|
|
11
11
|
import { formatDuration } from '../../terminal-utils/format.js';
|
|
12
12
|
import { formatClock } from '../../trajectory/format.js';
|
|
13
13
|
import { foldLongLines } from '../../utils/fold-long-lines.js';
|
|
14
|
-
import { getLang, t } from '../../i18n.js';
|
|
14
|
+
import { getLang, t, tOr } from '../../i18n.js';
|
|
15
15
|
import { revealLinesOf, snapReveal } from '../smoothReveal.js';
|
|
16
16
|
import { useRevealVersion } from '../../hooks/useRevealVersion.js';
|
|
17
17
|
import { primaryComboString } from '../../utils/keymap.js';
|
|
18
|
+
import { agentMessageStateColor, agentMessageStateText } from './TranscriptLeaves.js';
|
|
19
|
+
import { liveOutputMaxLines, liveOutputView } from './liveOutputLines.js';
|
|
20
|
+
import { isPatchDiff, parseFilePatch, patchHeader } from '../diffPatch.js';
|
|
18
21
|
/** Tool display names localize through the `tool-name-*` dictionary family
|
|
19
22
|
* (i18n.ts): DSH emits lowercase tool ids (`bash`), display names resolve
|
|
20
23
|
* per language — proper nouns (Bash, PowerShell) stay identical in zh.
|
|
@@ -34,7 +37,11 @@ const TOOL_NAME_KEYS = {
|
|
|
34
37
|
subagent: 'tool-name-subagent',
|
|
35
38
|
web_search: 'tool-name-web_search',
|
|
36
39
|
};
|
|
37
|
-
function displayName(name) {
|
|
40
|
+
function displayName(name, displayKey) {
|
|
41
|
+
// A backend that names its tools its own way (Claude `Read`, `Bash`)
|
|
42
|
+
// supplies the key with the card view; the raw name is the fallback.
|
|
43
|
+
if (displayKey !== undefined)
|
|
44
|
+
return tOr(displayKey, name);
|
|
38
45
|
const key = TOOL_NAME_KEYS[name];
|
|
39
46
|
if (key !== undefined)
|
|
40
47
|
return t(key);
|
|
@@ -53,6 +60,75 @@ function parseJsonArgs(args) {
|
|
|
53
60
|
function jsonArgsLanguage(args) {
|
|
54
61
|
return parseJsonArgs(args) === undefined ? undefined : 'json';
|
|
55
62
|
}
|
|
63
|
+
// --- SendMessage card (the parent relaying a message to a subagent) --------
|
|
64
|
+
/** The CC relay tool as the card claims it. Task* delegations already have
|
|
65
|
+
* a first-class surface (the subagent card + waterfall), so the raw-JSON
|
|
66
|
+
* dump this card replaces is SendMessage's alone — a second message-style
|
|
67
|
+
* card for Task would duplicate that surface. */
|
|
68
|
+
const SEND_MESSAGE_TOOL = 'SendMessage';
|
|
69
|
+
const recOf = (value) => typeof value === 'object' && value !== null && !Array.isArray(value) ? value : undefined;
|
|
70
|
+
const strOf = (value) => typeof value === 'string' && value !== '' ? value : undefined;
|
|
71
|
+
/** Parse one SendMessage call; undefined when the args are not the
|
|
72
|
+
* recognizable relay shape (then the generic card stands). */
|
|
73
|
+
function sendMessageCardOf(tool) {
|
|
74
|
+
if (tool.name !== SEND_MESSAGE_TOOL)
|
|
75
|
+
return undefined;
|
|
76
|
+
const args = recOf(parseJsonArgs(tool.argsFull ?? tool.argsText));
|
|
77
|
+
if (args === undefined)
|
|
78
|
+
return undefined;
|
|
79
|
+
const to = strOf(args.to) ?? strOf(args.recipient);
|
|
80
|
+
const text = strOf(args.message) ?? strOf(args.text);
|
|
81
|
+
if (to === undefined || text === undefined)
|
|
82
|
+
return undefined;
|
|
83
|
+
const pin = recOf(args.pin);
|
|
84
|
+
const pinName = strOf(pin?.name);
|
|
85
|
+
const target = pinName ?? (to.length > 8 ? `${to.slice(0, 8)}…` : to);
|
|
86
|
+
return {
|
|
87
|
+
target,
|
|
88
|
+
resuming: args.resuming === true || args.resume === true,
|
|
89
|
+
text,
|
|
90
|
+
...(strOf(args.summary) === undefined ? {} : { summary: strOf(args.summary) }),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/** The delivery states a structured result may name explicitly. */
|
|
94
|
+
const SEND_MESSAGE_EXPLICIT = Object.freeze({
|
|
95
|
+
delivered: 'delivered',
|
|
96
|
+
held: 'held',
|
|
97
|
+
refused: 'refused',
|
|
98
|
+
expired: 'expired',
|
|
99
|
+
});
|
|
100
|
+
/** The settled state of one SendMessage card — the UI-side mirror of
|
|
101
|
+
* backends/claude/send-message.ts's rules (UI layers must not import
|
|
102
|
+
* backends, verify:boundary): a call alone is `issued`; an error result is
|
|
103
|
+
* a refusal fact; a structured `delivery`/`status` field naming a state
|
|
104
|
+
* marks exactly that; any other shape — including bare success — is
|
|
105
|
+
* `unknown`, never a guessed delivery. */
|
|
106
|
+
function sendMessageCardState(tool) {
|
|
107
|
+
if (tool.status === 'running')
|
|
108
|
+
return 'issued';
|
|
109
|
+
if (tool.status === 'error')
|
|
110
|
+
return 'refused';
|
|
111
|
+
const structured = recOf(parseJsonArgs(tool.resultFull ?? tool.resultText ?? ''));
|
|
112
|
+
if (structured !== undefined) {
|
|
113
|
+
for (const key of ['delivery', 'status']) {
|
|
114
|
+
const named = SEND_MESSAGE_EXPLICIT[strOf(structured[key]) ?? ''];
|
|
115
|
+
if (named !== undefined)
|
|
116
|
+
return named;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return 'unknown';
|
|
120
|
+
}
|
|
121
|
+
/** The resumed fact of a structured result: resumedAgentId, or the pin's
|
|
122
|
+
* agent id — displayed as「已唤醒 <短id>」. */
|
|
123
|
+
function sendMessageResumedOf(tool) {
|
|
124
|
+
if (tool.status === 'running')
|
|
125
|
+
return undefined;
|
|
126
|
+
const structured = recOf(parseJsonArgs(tool.resultFull ?? tool.resultText ?? ''));
|
|
127
|
+
if (structured === undefined)
|
|
128
|
+
return undefined;
|
|
129
|
+
const resumed = strOf(structured.resumedAgentId) ?? strOf(recOf(structured.pin)?.agentId) ?? strOf(recOf(structured.pin)?.id);
|
|
130
|
+
return resumed === undefined ? undefined : resumed.length > 8 ? `${resumed.slice(0, 8)}…` : resumed;
|
|
131
|
+
}
|
|
56
132
|
function filePathFromTool(tool, view) {
|
|
57
133
|
if (view !== undefined && 'path' in view && typeof view.path === 'string')
|
|
58
134
|
return view.path;
|
|
@@ -77,6 +153,12 @@ const DIFF_BODY_MAX_LINES = 8;
|
|
|
77
153
|
/** Minimum terminal width for the two-pane diff: below this the panes
|
|
78
154
|
* would squeeze under ~50 columns each and the unified view reads better. */
|
|
79
155
|
const SPLIT_DIFF_MIN_COLS = 110;
|
|
156
|
+
/** Verbose (Ctrl+O / expanded) bodies render through a bounded line window:
|
|
157
|
+
* a full result can be tens of thousands of lines, and laying that out in
|
|
158
|
+
* one render builds a Yoga tree the frame budget cannot pay. The window
|
|
159
|
+
* keeps the head readable and says exactly how much of the retained source
|
|
160
|
+
* it is showing — the source itself keeps every line. */
|
|
161
|
+
const VERBOSE_BODY_WINDOW = 400;
|
|
80
162
|
const GUTTER_FIRST = ' ⎿ ';
|
|
81
163
|
const GUTTER_REST = ' ';
|
|
82
164
|
const add = (text) => ({ text, tone: 'add' });
|
|
@@ -89,7 +171,14 @@ const plain = (text) => ({ text, tone: 'plain' });
|
|
|
89
171
|
* mirrors the transcript tool-card name styling. */
|
|
90
172
|
const TOOL_NAME_MUTATE = new Set(['edit', 'write', 'multiedit', 'notebookedit']);
|
|
91
173
|
const TOOL_NAME_EXEC = new Set(['bash', 'bashpersistent', 'sh', 'shell', 'terminal']);
|
|
92
|
-
export function toolNameColor(raw) {
|
|
174
|
+
export function toolNameColor(raw, category) {
|
|
175
|
+
// A backend-declared colour family wins over the id heuristics below.
|
|
176
|
+
if (category === 'mutate')
|
|
177
|
+
return 'toolNameMutate';
|
|
178
|
+
if (category === 'exec')
|
|
179
|
+
return 'toolNameExec';
|
|
180
|
+
if (category === 'other')
|
|
181
|
+
return 'accent';
|
|
93
182
|
const n = raw.toLowerCase();
|
|
94
183
|
if (TOOL_NAME_MUTATE.has(n))
|
|
95
184
|
return 'toolNameMutate';
|
|
@@ -108,13 +197,50 @@ function sideLines(text) {
|
|
|
108
197
|
lines.pop();
|
|
109
198
|
return lines;
|
|
110
199
|
}
|
|
200
|
+
/** A patch file → its header and numbered hunk rows: each line carries
|
|
201
|
+
* its real line number (old for a removed line, new otherwise) in a gutter
|
|
202
|
+
* as wide as the file's largest number; `⋯` separates hunks. A patch with
|
|
203
|
+
* no readable hunk shows its own lines, coloured by their marker. */
|
|
204
|
+
function patchLines(diff, multiFile) {
|
|
205
|
+
const parsed = parseFilePatch(diff);
|
|
206
|
+
const header = patchHeader(diff, parsed, multiFile);
|
|
207
|
+
const out = [header.kind === 'path'
|
|
208
|
+
? { text: header.path, tone: 'path', target: header.target, suffix: header.suffix }
|
|
209
|
+
: dim(header.text)];
|
|
210
|
+
if (parsed.raw !== undefined) {
|
|
211
|
+
for (const line of parsed.raw)
|
|
212
|
+
out.push(line.startsWith('+') ? add(line) : line.startsWith('-') ? del(line) : plain(line));
|
|
213
|
+
return out;
|
|
214
|
+
}
|
|
215
|
+
const width = String(parsed.maxLineNo).length;
|
|
216
|
+
parsed.hunks.forEach((hunk, index) => {
|
|
217
|
+
if (index > 0)
|
|
218
|
+
out.push(dim('⋯'));
|
|
219
|
+
for (const line of hunk.lines) {
|
|
220
|
+
const no = String((line.kind === 'del' ? line.oldNo : line.newNo) ?? '').padStart(width);
|
|
221
|
+
if (line.kind === 'del')
|
|
222
|
+
out.push(del(`${no} - ${line.text}`));
|
|
223
|
+
else if (line.kind === 'add')
|
|
224
|
+
out.push(add(`${no} + ${line.text}`));
|
|
225
|
+
else
|
|
226
|
+
out.push(plain(`${no} ${line.text}`));
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
return out;
|
|
230
|
+
}
|
|
111
231
|
/** Diff hunks → add/del rows. The header already carries the path for the
|
|
112
232
|
* common single-hunk case; with several hunks a path row separates files
|
|
113
|
-
* and `⋯` separates scattered hunks of one file (upstream DiffBlock).
|
|
233
|
+
* and `⋯` separates scattered hunks of one file (upstream DiffBlock). A
|
|
234
|
+
* patch file (`ToolFileDiff.patch`) renders through {@link patchLines}. */
|
|
114
235
|
function diffLines(diffs) {
|
|
115
236
|
const out = [];
|
|
116
237
|
let prevPath;
|
|
117
238
|
for (const diff of diffs) {
|
|
239
|
+
if (isPatchDiff(diff)) {
|
|
240
|
+
out.push(...patchLines(diff, diffs.length > 1));
|
|
241
|
+
prevPath = diff.path;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
118
244
|
if (diffs.length > 1) {
|
|
119
245
|
if (diff.path !== prevPath)
|
|
120
246
|
out.push({ text: diff.path, tone: 'path' });
|
|
@@ -146,16 +272,12 @@ function viewLines(view) {
|
|
|
146
272
|
return diffLines(view.diffs);
|
|
147
273
|
case 'terminal': {
|
|
148
274
|
// The call-side terminal card has no output yet; only presentResult's
|
|
149
|
-
// does. `in` narrows the call/result union without extra types.
|
|
275
|
+
// does. `in` narrows the call/result union without extra types. The
|
|
276
|
+
// exit-code / signal lines are NOT body content: the component renders
|
|
277
|
+
// them after the line cap (see terminalExitLines) so a long output can
|
|
278
|
+
// never fold the failure verdict away.
|
|
150
279
|
const out = (('output' in view ? view.output : undefined) ?? '').trimEnd();
|
|
151
|
-
|
|
152
|
-
if ('exitCode' in view && view.exitCode !== undefined && view.exitCode !== 0) {
|
|
153
|
-
lines.push({ text: t('tool-exit-code', { code: view.exitCode }), tone: 'error' });
|
|
154
|
-
}
|
|
155
|
-
if ('signal' in view && view.signal !== undefined) {
|
|
156
|
-
lines.push({ text: t('tool-killed-signal', { name: String(view.signal) }), tone: 'error' });
|
|
157
|
-
}
|
|
158
|
-
return lines;
|
|
280
|
+
return out === '' ? [] : out.split('\n').map(plain);
|
|
159
281
|
}
|
|
160
282
|
case 'read':
|
|
161
283
|
return contentLines('content' in view ? view.content : undefined);
|
|
@@ -183,17 +305,45 @@ function viewLines(view) {
|
|
|
183
305
|
return [];
|
|
184
306
|
}
|
|
185
307
|
}
|
|
308
|
+
/** Compact char counter for fold hints (1.2k / 3.4M). */
|
|
309
|
+
function compactChars(count) {
|
|
310
|
+
if (count < 10_000)
|
|
311
|
+
return String(count);
|
|
312
|
+
if (count < 10_000_000)
|
|
313
|
+
return `${(count / 1000).toFixed(1)}k`;
|
|
314
|
+
return `${(count / 1_000_000).toFixed(1)}M`;
|
|
315
|
+
}
|
|
316
|
+
/** Fold-hint parts: "3 行", "1.2k 字符" or "3 行 · 1.2k 字符" — one count per
|
|
317
|
+
* fold kind that actually hid something, composed in the localized unit
|
|
318
|
+
* words so the sentence grammar stays with i18n. */
|
|
319
|
+
function foldHintParts(hiddenLines, hiddenChars) {
|
|
320
|
+
const parts = [];
|
|
321
|
+
if (hiddenLines > 0)
|
|
322
|
+
parts.push(t('tool-card-lines-unit', { n: hiddenLines }));
|
|
323
|
+
if (hiddenChars > 0)
|
|
324
|
+
parts.push(t('tool-card-chars-unit', { n: compactChars(hiddenChars) }));
|
|
325
|
+
return parts.join(' · ');
|
|
326
|
+
}
|
|
186
327
|
/** Collapsed bodies fold past the card's line budget; verbose (Ctrl+O) is
|
|
187
|
-
* always uncapped. Mirrors wrapText's "one extra line is shown directly".
|
|
188
|
-
|
|
328
|
+
* always uncapped. Mirrors wrapText's "one extra line is shown directly".
|
|
329
|
+
* A lines-only fold keeps the historical shared hint (lines-folded-expand)
|
|
330
|
+
* byte-identical; a fold that also (or only) clipped CHARACTERS inside long
|
|
331
|
+
* lines uses the combined indicator so the hidden volume stays honest. */
|
|
332
|
+
function capLines(lines, max, verbose, hiddenChars) {
|
|
189
333
|
if (verbose || lines.length <= max)
|
|
190
334
|
return lines;
|
|
191
335
|
if (lines.length - max === 1)
|
|
192
336
|
return lines;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
337
|
+
const hiddenLines = lines.length - max;
|
|
338
|
+
// Chars clipped inside the VISIBLE lines carry their own inline marker
|
|
339
|
+
// (fold-long-lines); the hint aggregates what the line fold hid — the
|
|
340
|
+
// clipped characters of the sliced-away rows included — so "how much is
|
|
341
|
+
// hidden" answers in one place. A lines-only fold keeps the historical
|
|
342
|
+
// shared hint byte-identical.
|
|
343
|
+
const hint = hiddenChars > 0
|
|
344
|
+
? { ...dim(t('tool-card-lines-hidden', { parts: foldHintParts(hiddenLines, hiddenChars), key: primaryComboString('transcript') })), revealOnHover: true }
|
|
345
|
+
: { ...dim(t('lines-folded-expand', { n: hiddenLines, key: primaryComboString('transcript') })), revealOnHover: true };
|
|
346
|
+
return [...lines.slice(0, max), hint];
|
|
197
347
|
}
|
|
198
348
|
/** Long-line clip for the body rows (utils/fold-long-lines.ts): the line cap
|
|
199
349
|
* above bounds how MANY rows a card paints, this bounds how many rows ONE
|
|
@@ -205,6 +355,7 @@ function capLines(lines, max, verbose) {
|
|
|
205
355
|
* nothing. */
|
|
206
356
|
function foldBodyLines(lines) {
|
|
207
357
|
let out;
|
|
358
|
+
let hiddenChars = 0;
|
|
208
359
|
for (let index = 0; index < lines.length; index++) {
|
|
209
360
|
const line = lines[index];
|
|
210
361
|
const folded = foldLongLines(line.text);
|
|
@@ -214,8 +365,9 @@ function foldBodyLines(lines) {
|
|
|
214
365
|
}
|
|
215
366
|
out ??= lines.slice(0, index);
|
|
216
367
|
out.push({ ...line, text: folded.text });
|
|
368
|
+
hiddenChars += folded.hiddenChars;
|
|
217
369
|
}
|
|
218
|
-
return out
|
|
370
|
+
return out === undefined ? { lines, hiddenChars: 0 } : { lines: out, hiddenChars };
|
|
219
371
|
}
|
|
220
372
|
/** Header title from the presentation view: terminal cards keep the
|
|
221
373
|
* `Name(command)` shape; everything else renders the tool's own title
|
|
@@ -362,7 +514,7 @@ function HeaderTitle({ name, title, isTerminal, folded, displayArgs, argsLanguag
|
|
|
362
514
|
* output, read content — instead of the raw result dump. The channel captures
|
|
363
515
|
* the structured views per call.
|
|
364
516
|
*/
|
|
365
|
-
export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSelected = false, isExpanded = false, onClick, footnote, diffLayout = 'auto', toolBackground = 'none', onOpenFile, foldTerminalCommand = false, smoothReveal = false, fresh = false, revealVersion, }) {
|
|
517
|
+
export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSelected = false, isExpanded = false, onClick, footnote, diffLayout = 'auto', toolBackground = 'none', onOpenFile, foldTerminalCommand = false, smoothReveal = false, fresh = false, revealVersion, sourceFolded = false, fullscreen = false, }) {
|
|
366
518
|
// MessageList owns the single production subscription and passes a version
|
|
367
519
|
// prop only to active reveal rows. Standalone consumers keep the fallback
|
|
368
520
|
// subscription so the component contract remains self-contained.
|
|
@@ -372,20 +524,28 @@ export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSele
|
|
|
372
524
|
useRevealVersion(revealVersion === undefined);
|
|
373
525
|
const isRunning = tool.status === 'running';
|
|
374
526
|
const isError = tool.status === 'error';
|
|
527
|
+
const sendMessage = sendMessageCardOf(tool);
|
|
528
|
+
// The send-message card's raw layer (args/result JSON) shows on verbose OR
|
|
529
|
+
// a row click — the click is the mouse user's only「看全量」path.
|
|
530
|
+
const sendMessageRawOpen = sendMessage !== undefined && (verbose || isExpanded);
|
|
375
531
|
const displayArgs = verbose ? tool.argsFull ?? tool.argsText : tool.argsText;
|
|
376
532
|
const result = tool.resultFull ?? tool.resultText;
|
|
377
|
-
const name = displayName(tool.name);
|
|
378
|
-
const minWidth = stringWidth(name) + 2;
|
|
379
533
|
// The settled view carries the applied diff / actual output; while running,
|
|
380
534
|
// the call view already shows the pending change.
|
|
381
535
|
const view = tool.resultView ?? tool.callView;
|
|
536
|
+
const name = displayName(tool.name, view?.displayKey ?? tool.callView?.displayKey);
|
|
537
|
+
const minWidth = stringWidth(name) + 2;
|
|
382
538
|
const filePath = filePathFromTool(tool, view);
|
|
383
539
|
const syntaxLanguage = view?.card === 'read' || view?.card === 'generic' || view === undefined
|
|
384
540
|
? languageFromPath(filePath)
|
|
385
541
|
: undefined;
|
|
386
542
|
// presentResult may omit a title (terminal results carry output, not a
|
|
387
|
-
// command) — then the call view's title stands.
|
|
388
|
-
|
|
543
|
+
// command) — then the call view's title stands. The SendMessage card owns
|
|
544
|
+
// its header outright: `SendMessage → <target>` (+ the resume mark), the
|
|
545
|
+
// raw args parens stay out of the header.
|
|
546
|
+
const headerTitle = sendMessage !== undefined
|
|
547
|
+
? `${displayName(tool.name)} → ${sendMessage.target}${sendMessage.resuming ? ` · ${t('send-message-card-resuming')}` : ''}`
|
|
548
|
+
: tool.resultView?.title ?? tool.callView?.title;
|
|
389
549
|
const headerIsTerminal = view?.card === 'terminal';
|
|
390
550
|
// Fold the terminal header: multi-line command script (setting-gated) plus
|
|
391
551
|
// the always-on long-line clip, both off once the card is verbose/expanded
|
|
@@ -432,10 +592,45 @@ export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSele
|
|
|
432
592
|
- (!isRunning && elapsedText !== '' ? stringWidth(elapsedText) : 0));
|
|
433
593
|
const useSplitDiff = !isError && view?.card === 'diff' &&
|
|
434
594
|
(diffLayout === 'split' || (diffLayout !== 'unified' && columns >= SPLIT_DIFF_MIN_COLS));
|
|
595
|
+
// Live output of the running call: the newest lines of the bounded tail,
|
|
596
|
+
// sanitized and cut to the body width in cells (liveOutputLines.ts).
|
|
597
|
+
// Memoized on the tail itself, so the 1 s elapsed tick re-renders without
|
|
598
|
+
// rescanning; only a new chunk (a new string) recomputes.
|
|
599
|
+
const liveText = isRunning && !isError && sendMessage === undefined && !useSplitDiff ? tool.liveOutput ?? '' : '';
|
|
600
|
+
const liveDropped = tool.liveOutputDropped ?? 0;
|
|
601
|
+
const liveMaxLines = liveOutputMaxLines(verbose, fullscreen);
|
|
602
|
+
const liveWidth = Math.max(1, columns - 4);
|
|
603
|
+
const liveView = React.useMemo(() => liveText === '' ? undefined : liveOutputView(liveText, liveDropped, liveMaxLines, liveWidth), [liveText, liveDropped, liveMaxLines, liveWidth]);
|
|
435
604
|
let body = [];
|
|
436
|
-
if (
|
|
605
|
+
if (sendMessage !== undefined) {
|
|
606
|
+
// 正文 = message 文本预览(长文走既有的三行折叠),summary 作副行;
|
|
607
|
+
// to/type/recipient/content 等原始字段只在 raw 层出现。
|
|
608
|
+
body = sendMessage.text.split('\n').map(plain);
|
|
609
|
+
if (sendMessage.summary !== undefined) {
|
|
610
|
+
body.push(dim(`${t('send-message-card-summary-label')}: ${sendMessage.summary}`));
|
|
611
|
+
}
|
|
612
|
+
// 失败文案不属于 raw 层:折叠态也要看得见拒绝原因。
|
|
613
|
+
if (isError && tool.errorText !== undefined && tool.errorText !== '') {
|
|
614
|
+
body.push(...tool.errorText.split('\n').map(line => ({ text: line, tone: 'error' })));
|
|
615
|
+
}
|
|
616
|
+
if (sendMessageRawOpen) {
|
|
617
|
+
const rawArgs = (verbose ? tool.argsFull : undefined) ?? tool.argsText;
|
|
618
|
+
body.push(dim(t('send-message-card-args')));
|
|
619
|
+
body.push(...rawArgs.split('\n').map(dim));
|
|
620
|
+
const rawResult = tool.resultFull ?? tool.resultText;
|
|
621
|
+
if (rawResult !== undefined && rawResult !== '') {
|
|
622
|
+
body.push(dim(t('send-message-card-result')));
|
|
623
|
+
body.push(...rawResult.split('\n').map(dim));
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
else if (isError) {
|
|
628
|
+
// Line-aware like every other body: a multi-line error (a stack trace)
|
|
629
|
+
// goes through the SAME line budget and fold hint as tool output — the
|
|
630
|
+
// verdict visibility problem the exit lines solve does not excuse an
|
|
631
|
+
// unbounded error body in a collapsed card.
|
|
437
632
|
if (tool.errorText)
|
|
438
|
-
body =
|
|
633
|
+
body = tool.errorText.split('\n').map((text) => ({ text, tone: 'error' }));
|
|
439
634
|
}
|
|
440
635
|
else if (!useSplitDiff) {
|
|
441
636
|
if (view !== undefined)
|
|
@@ -448,16 +643,57 @@ export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSele
|
|
|
448
643
|
}
|
|
449
644
|
}
|
|
450
645
|
const cap = view?.card === 'diff' ? DIFF_BODY_MAX_LINES : TEXT_BODY_MAX_LINES;
|
|
646
|
+
// 展开态(点击/verbose)的 SendMessage 卡不截断——raw 层就是「全量」。
|
|
647
|
+
const bodyUncapped = verbose || sendMessageRawOpen;
|
|
451
648
|
// Long-line clip before anything downstream reads the body: the syntax
|
|
452
649
|
// highlighter walks `bodySource` by line index, so the folded text must be
|
|
453
650
|
// the single source of truth for both.
|
|
454
|
-
const
|
|
651
|
+
const foldedBody = bodyUncapped ? { lines: body, hiddenChars: 0 } : foldBodyLines(body);
|
|
652
|
+
const bodyLines = foldedBody.lines;
|
|
455
653
|
const bodySource = bodyLines.map(line => line.text).join('\n');
|
|
456
654
|
const argsLanguage = jsonArgsLanguage(displayArgs);
|
|
655
|
+
const capped = capLines(bodyLines, cap, bodyUncapped, foldedBody.hiddenChars);
|
|
656
|
+
// Verbose bodies walk a bounded window (see VERBOSE_BODY_WINDOW): the tail
|
|
657
|
+
// stays in the retained source, and the card says what it is showing.
|
|
658
|
+
const lines = verbose && capped.length > VERBOSE_BODY_WINDOW
|
|
659
|
+
? [
|
|
660
|
+
...capped.slice(0, VERBOSE_BODY_WINDOW),
|
|
661
|
+
{ ...dim(t('tool-card-window-shown', { shown: VERBOSE_BODY_WINDOW, total: capped.length })), revealOnHover: false },
|
|
662
|
+
]
|
|
663
|
+
: capped;
|
|
664
|
+
// The terminal verdict rides OUTSIDE every cap (the footnote's rule): a
|
|
665
|
+
// long output must never fold the non-zero exit code or kill signal away —
|
|
666
|
+
// the settled card keeps the failure readable without the hover tooltip.
|
|
667
|
+
const terminalExitLines = [];
|
|
668
|
+
if (!isError && tool.resultView !== undefined && tool.resultView.card === 'terminal') {
|
|
669
|
+
const rv = tool.resultView;
|
|
670
|
+
if (rv.exitCode !== undefined && rv.exitCode !== 0) {
|
|
671
|
+
terminalExitLines.push({ text: t('tool-exit-code', { code: rv.exitCode }), tone: 'error' });
|
|
672
|
+
}
|
|
673
|
+
if (rv.signal !== undefined) {
|
|
674
|
+
terminalExitLines.push({ text: t('tool-killed-signal', { name: String(rv.signal) }), tone: 'error' });
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
// Full-vs-preview disclosure (expanded cards only — the collapsed card is
|
|
678
|
+
// a preview by design and its fold indicator already says so): a folded
|
|
679
|
+
// SOURCE cannot expand past its preview, and a structured-only result has
|
|
680
|
+
// no raw full text to expand into. Both say so instead of passing the
|
|
681
|
+
// visible slice off as everything.
|
|
682
|
+
const disclosure = verbose
|
|
683
|
+
? sourceFolded
|
|
684
|
+
? [dim(t('tool-card-source-truncated'))]
|
|
685
|
+
: tool.resultFull === undefined && tool.resultView !== undefined && !isRunning
|
|
686
|
+
? [dim(t('tool-card-full-unavailable'))]
|
|
687
|
+
: []
|
|
688
|
+
: [];
|
|
457
689
|
// The footnote rides OUTSIDE the cap: it is a pointer, not content, and a
|
|
458
690
|
// long error body must not be the reason it disappears.
|
|
459
|
-
const
|
|
460
|
-
|
|
691
|
+
const rendered = [
|
|
692
|
+
...lines,
|
|
693
|
+
...disclosure,
|
|
694
|
+
...terminalExitLines,
|
|
695
|
+
...(footnote === undefined ? [] : [{ text: footnote, tone: 'hint' }]),
|
|
696
|
+
];
|
|
461
697
|
// Smooth reveal (line-unit, pending CALL body only): model-authored prose
|
|
462
698
|
// (diff hunks, write content) flows in at ~30fps; the settled RESULT view,
|
|
463
699
|
// error bodies, verbose/expanded cards, and replayed (non-fresh) cards all
|
|
@@ -472,7 +708,20 @@ export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSele
|
|
|
472
708
|
const revealedLineCount = revealable
|
|
473
709
|
? revealLinesOf(revealKey, rendered.length, { enabled: true, active: true })
|
|
474
710
|
: rendered.length;
|
|
475
|
-
const
|
|
711
|
+
const revealedLines = revealedLineCount >= rendered.length ? rendered : rendered.slice(0, revealedLineCount);
|
|
712
|
+
// Live output rides OUTSIDE the line cap and the smooth reveal: it is the
|
|
713
|
+
// tool's real progress (never prose), so it paints complete, right under
|
|
714
|
+
// the body (the running line), once the body itself is fully shown. The
|
|
715
|
+
// omitted header counts every older line, dropped or above the window.
|
|
716
|
+
const liveLines = liveView === undefined
|
|
717
|
+
? []
|
|
718
|
+
: [
|
|
719
|
+
...(liveView.omitted > 0 ? [dim(t('tool-live-omitted', { count: liveView.omitted }))] : []),
|
|
720
|
+
...liveView.lines.map((text) => ({ text, tone: 'live' })),
|
|
721
|
+
];
|
|
722
|
+
const shownLines = liveLines.length === 0 || revealedLines.length < rendered.length
|
|
723
|
+
? revealedLines
|
|
724
|
+
: [...lines, ...liveLines, ...rendered.slice(lines.length)];
|
|
476
725
|
// Nested split-diff context panes must also yield to interaction highlights.
|
|
477
726
|
// `none` leaves them transparent so the selected/expanded root shows through.
|
|
478
727
|
const ordinaryToolBackground = isSelected || isExpanded ? 'none' : toolBackground;
|
|
@@ -490,21 +739,25 @@ export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSele
|
|
|
490
739
|
// body never moves.
|
|
491
740
|
const [hovered, setHovered] = React.useState(false);
|
|
492
741
|
const hoverTint = interactive && hovered && !isSelected;
|
|
742
|
+
// SendMessage 结果行:状态只取结果里明确给出的值;resumedAgentId/pin
|
|
743
|
+
// 显示为「已唤醒 <短id>」;没有明确状态时注明送达状态未知。
|
|
744
|
+
const sendMessageState = sendMessage === undefined ? undefined : sendMessageCardState(tool);
|
|
745
|
+
const sendMessageResumed = sendMessage === undefined ? undefined : sendMessageResumedOf(tool);
|
|
493
746
|
return (_jsx(Box, { ref: viewportRef, flexDirection: "row", justifyContent: "space-between", marginTop: marginTopOnTurn ? 1 : 0, width: "100%", onClick: onClick,
|
|
494
747
|
// Only selection paints a highlight; the configured treatment applies
|
|
495
748
|
// to an ordinary card. Diff line tints stay - they are content, not chrome.
|
|
496
|
-
backgroundColor: isSelected ? 'messageActionsBackground' : hoverTint ? 'toolCardBackground' : ordinaryBackground, onMouseEnter: interactive ? () => setHovered(true) : undefined, onMouseLeave: interactive ? () => setHovered(false) : undefined, children: _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { flexDirection: "row", flexWrap: "nowrap", minWidth: minWidth, children: [_jsx(ToolUseLoader, { shouldAnimate: isRunning, isUnresolved: isRunning, isError: isError, toolName: tool.name }), _jsx(HeaderTitle, { name: name, title: headerTitle, isTerminal: headerIsTerminal, folded: foldedHeader, displayArgs: displayArgs, argsLanguage: argsLanguage, nameColor: toolNameColor(tool.name), filePath: filePath, onOpenFile: onOpenFile, metaTooltip: () => toolCardMetaTooltip(tool, isRunning, isError), headerTextBudget: headerTextBudget }), !isRunning && (_jsx(Box, { flexWrap: "nowrap", children: _jsx(Text, { dimColor: !hovered, children: elapsedText }) })), hovered && (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: isExpanded ? '▴' : '▾' }) }))] }), useSplitDiff && view?.card === 'diff' ? (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { dimColor: true, children: GUTTER_FIRST }) }), _jsx(SplitDiffView, { diffs: view.diffs, width: columns - 4, maxRows: DIFF_BODY_MAX_LINES, verbose: verbose, toolBackground: ordinaryToolBackground, reveal: revealable ? { key: `${revealKey}:split` } : undefined })] })) : (shownLines.map((line, index) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { color: line.tone === 'add'
|
|
749
|
+
backgroundColor: isSelected ? 'messageActionsBackground' : hoverTint ? 'toolCardBackground' : ordinaryBackground, onMouseEnter: interactive ? () => setHovered(true) : undefined, onMouseLeave: interactive ? () => setHovered(false) : undefined, children: _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsxs(Box, { flexDirection: "row", flexWrap: "nowrap", minWidth: minWidth, children: [_jsx(ToolUseLoader, { shouldAnimate: isRunning, isUnresolved: isRunning, isError: isError, toolName: tool.name }), _jsx(HeaderTitle, { name: name, title: headerTitle, isTerminal: headerIsTerminal, folded: foldedHeader, displayArgs: displayArgs, argsLanguage: argsLanguage, nameColor: toolNameColor(tool.name, view?.category ?? tool.callView?.category), filePath: filePath, onOpenFile: onOpenFile, metaTooltip: () => toolCardMetaTooltip(tool, isRunning, isError), headerTextBudget: headerTextBudget }), !isRunning && (_jsx(Box, { flexWrap: "nowrap", children: _jsx(Text, { dimColor: !hovered, children: elapsedText }) })), hovered && (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: isExpanded ? '▴' : '▾' }) }))] }), useSplitDiff && view?.card === 'diff' ? (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { dimColor: true, children: GUTTER_FIRST }) }), _jsx(SplitDiffView, { diffs: view.diffs, width: columns - 4, maxRows: DIFF_BODY_MAX_LINES, verbose: verbose, toolBackground: ordinaryToolBackground, reveal: revealable ? { key: `${revealKey}:split` } : undefined })] })) : (shownLines.map((line, index) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { color: line.tone === 'add'
|
|
497
750
|
? 'diffAddedWord'
|
|
498
751
|
: line.tone === 'del'
|
|
499
752
|
? 'diffRemovedWord'
|
|
500
753
|
: line.tone === 'path'
|
|
501
754
|
? 'ide'
|
|
502
|
-
: undefined, dimColor: line.tone !== 'add' && line.tone !== 'del' && line.tone !== 'path', children: index === 0 ? GUTTER_FIRST : GUTTER_REST }) }), _jsx(Box, { flexGrow: 1, children: line.tone === 'path' && onOpenFile !== undefined ? (
|
|
755
|
+
: undefined, dimColor: line.tone !== 'add' && line.tone !== 'del' && line.tone !== 'path', children: index === 0 ? GUTTER_FIRST : GUTTER_REST }) }), _jsx(Box, { flexGrow: 1, children: line.tone === 'path' && onOpenFile !== undefined ? (_jsxs(Box, { onClick: (event) => {
|
|
503
756
|
// Stop propagation so the row's fold toggle does not
|
|
504
757
|
// fire when clicking the path.
|
|
505
758
|
event.stopImmediatePropagation();
|
|
506
|
-
onOpenFile(line.text);
|
|
507
|
-
}, children: _jsx(Text, { color: "ide", underline: true, children: line.text }) })) : (
|
|
759
|
+
onOpenFile(line.target ?? line.text);
|
|
760
|
+
}, children: [_jsx(Text, { color: "ide", underline: true, children: line.text }), line.suffix !== undefined && _jsx(Text, { dimColor: true, children: line.suffix })] })) : (_jsxs(Text, { color: line.tone === 'add'
|
|
508
761
|
? 'diffAddedWord'
|
|
509
762
|
: line.tone === 'del'
|
|
510
763
|
? 'diffRemovedWord'
|
|
@@ -514,5 +767,5 @@ export function AssistantToolUseMessage({ tool, marginTopOnTurn, verbose, isSele
|
|
|
514
767
|
? 'subtle'
|
|
515
768
|
: line.tone === 'path'
|
|
516
769
|
? 'ide'
|
|
517
|
-
: undefined, dimColor: line.tone === 'dim' && !(line.revealOnHover === true && hovered), wrap:
|
|
770
|
+
: undefined, dimColor: (line.tone === 'dim' && !(line.revealOnHover === true && hovered)) || line.tone === 'live', wrap: line.tone === 'live' ? 'truncate-end' : 'wrap', children: [line.tone === 'plain' && syntaxLanguage !== undefined ? (_jsx(SyntaxText, { text: line.text, sourceText: bodySource, lineIndex: index, language: syntaxLanguage })) : (line.text === '' ? ' ' : line.text), line.suffix !== undefined && _jsx(Text, { dimColor: true, children: line.suffix })] })) })] }, index)))), sendMessage !== undefined && sendMessageState !== undefined && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { dimColor: true, children: GUTTER_REST }) }), _jsx(Text, { color: agentMessageStateColor(sendMessageState), children: agentMessageStateText(sendMessageState) }), sendMessageResumed !== undefined && (_jsx(Text, { dimColor: true, children: ` · ${t('send-message-card-resumed', { id: sendMessageResumed })}` })), sendMessageState === 'unknown' && (_jsx(Text, { dimColor: true, italic: true, children: ` · ${t('agent-message-no-delivery-fact')}` }))] })), useSplitDiff && disclosure.length > 0 && disclosure.map((line, index) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { dimColor: true, children: GUTTER_REST }) }), _jsx(Text, { dimColor: true, children: line.text })] }, `disclosure-${index}`))), useSplitDiff && footnote !== undefined && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 3, flexShrink: 0, children: _jsx(Text, { dimColor: true, children: GUTTER_REST }) }), _jsx(Text, { color: "subtle", children: footnote })] }))] }) }));
|
|
518
771
|
}
|