@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -5
- package/assets/claude-girl/claude-girl-happy.png +0 -0
- package/assets/claude-girl/claude-girl.png +0 -0
- package/assets/codex-girl/codex-girl-happy.png +0 -0
- package/assets/codex-girl/codex-girl.png +0 -0
- package/bin/dsh-tui.js +104 -18
- package/cordis.patch.yml +2 -0
- package/cordis.yml +2 -0
- package/guide/dsh-tui-guide/SKILL.md +4 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
- package/guide/dsh-tui-guide/claude-backend.md +161 -0
- package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
- package/guide/dsh-tui-guide/codex-backend.md +257 -0
- package/guide/dsh-tui-guide/configuration.en.md +9 -2
- package/guide/dsh-tui-guide/configuration.md +9 -2
- package/guide/dsh-tui-guide/interaction.en.md +169 -27
- package/guide/dsh-tui-guide/interaction.md +115 -17
- package/guide/dsh-tui-guide/themes.en.md +24 -2
- package/guide/dsh-tui-guide/themes.md +21 -2
- package/guide/dsh-tui-guide/user-guide.en.md +38 -23
- package/guide/dsh-tui-guide/user-guide.md +22 -11
- package/guide/dsh-tui-guide/vscode.en.md +1 -0
- package/guide/dsh-tui-guide/vscode.md +1 -0
- package/lib/settings.json +139 -6
- package/lib/types/adapter/channel/state.d.ts.map +1 -1
- package/lib/types/adapter/channel/state.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +29 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +45 -5
- package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-display.d.ts +7 -1
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +5 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +477 -13
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/agent/backend.d.ts +168 -0
- package/lib/types/agent/backend.d.ts.map +1 -0
- package/lib/types/agent/backend.js +1 -0
- package/lib/types/agent/capabilities.d.ts +461 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -0
- package/lib/types/agent/capabilities.js +1 -0
- package/lib/types/agent/events.d.ts +733 -0
- package/lib/types/agent/events.d.ts.map +1 -0
- package/lib/types/agent/events.js +2 -0
- package/lib/types/agent/index.d.ts +8 -0
- package/lib/types/agent/index.d.ts.map +1 -0
- package/lib/types/agent/index.js +7 -0
- package/lib/types/agent/messages.d.ts +52 -0
- package/lib/types/agent/messages.d.ts.map +1 -0
- package/lib/types/agent/messages.js +91 -0
- package/lib/types/agent/presentation.d.ts +29 -0
- package/lib/types/agent/presentation.d.ts.map +1 -0
- package/lib/types/agent/presentation.js +4 -0
- package/lib/types/agent/refs.d.ts +30 -0
- package/lib/types/agent/refs.d.ts.map +1 -0
- package/lib/types/agent/refs.js +39 -0
- package/lib/types/agent/session.d.ts +78 -0
- package/lib/types/agent/session.d.ts.map +1 -0
- package/lib/types/agent/session.js +1 -0
- package/lib/types/backends/claude/activity.d.ts +53 -0
- package/lib/types/backends/claude/activity.d.ts.map +1 -0
- package/lib/types/backends/claude/activity.js +103 -0
- package/lib/types/backends/claude/auth.d.ts +245 -0
- package/lib/types/backends/claude/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/auth.js +503 -0
- package/lib/types/backends/claude/backend.d.ts +32 -0
- package/lib/types/backends/claude/backend.d.ts.map +1 -0
- package/lib/types/backends/claude/backend.js +296 -0
- package/lib/types/backends/claude/catalog.d.ts +17 -0
- package/lib/types/backends/claude/catalog.d.ts.map +1 -0
- package/lib/types/backends/claude/catalog.js +94 -0
- package/lib/types/backends/claude/channels.d.ts +63 -0
- package/lib/types/backends/claude/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/channels.js +275 -0
- package/lib/types/backends/claude/contract.d.ts +37 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -0
- package/lib/types/backends/claude/contract.js +46 -0
- package/lib/types/backends/claude/controls.d.ts +134 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -0
- package/lib/types/backends/claude/controls.js +425 -0
- package/lib/types/backends/claude/dialogs.d.ts +62 -0
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
- package/lib/types/backends/claude/dialogs.js +253 -0
- package/lib/types/backends/claude/flag-settings.d.ts +12 -0
- package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
- package/lib/types/backends/claude/flag-settings.js +49 -0
- package/lib/types/backends/claude/images.d.ts +49 -0
- package/lib/types/backends/claude/images.d.ts.map +1 -0
- package/lib/types/backends/claude/images.js +94 -0
- package/lib/types/backends/claude/index.d.ts +5 -0
- package/lib/types/backends/claude/index.d.ts.map +1 -0
- package/lib/types/backends/claude/index.js +4 -0
- package/lib/types/backends/claude/install.d.ts +15 -0
- package/lib/types/backends/claude/install.d.ts.map +1 -0
- package/lib/types/backends/claude/install.js +91 -0
- package/lib/types/backends/claude/modelEnv.d.ts +64 -0
- package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
- package/lib/types/backends/claude/modelEnv.js +199 -0
- package/lib/types/backends/claude/narrow.d.ts +10 -0
- package/lib/types/backends/claude/narrow.d.ts.map +1 -0
- package/lib/types/backends/claude/narrow.js +8 -0
- package/lib/types/backends/claude/older-history.d.ts +16 -0
- package/lib/types/backends/claude/older-history.d.ts.map +1 -0
- package/lib/types/backends/claude/older-history.js +101 -0
- package/lib/types/backends/claude/options.d.ts +181 -0
- package/lib/types/backends/claude/options.d.ts.map +1 -0
- package/lib/types/backends/claude/options.js +208 -0
- package/lib/types/backends/claude/permissions.d.ts +83 -0
- package/lib/types/backends/claude/permissions.d.ts.map +1 -0
- package/lib/types/backends/claude/permissions.js +331 -0
- package/lib/types/backends/claude/prefs.d.ts +55 -0
- package/lib/types/backends/claude/prefs.d.ts.map +1 -0
- package/lib/types/backends/claude/prefs.js +150 -0
- package/lib/types/backends/claude/process.d.ts +19 -0
- package/lib/types/backends/claude/process.d.ts.map +1 -0
- package/lib/types/backends/claude/process.js +156 -0
- package/lib/types/backends/claude/replay.d.ts +129 -0
- package/lib/types/backends/claude/replay.d.ts.map +1 -0
- package/lib/types/backends/claude/replay.js +505 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk-warnings.js +55 -0
- package/lib/types/backends/claude/sdk.d.ts +12 -0
- package/lib/types/backends/claude/sdk.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk.js +34 -0
- package/lib/types/backends/claude/send-message.d.ts +54 -0
- package/lib/types/backends/claude/send-message.d.ts.map +1 -0
- package/lib/types/backends/claude/send-message.js +65 -0
- package/lib/types/backends/claude/session/auth.d.ts +47 -0
- package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/session/auth.js +226 -0
- package/lib/types/backends/claude/session/channels.d.ts +82 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/session/channels.js +45 -0
- package/lib/types/backends/claude/session/input.d.ts +16 -0
- package/lib/types/backends/claude/session/input.d.ts.map +1 -0
- package/lib/types/backends/claude/session/input.js +64 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
- package/lib/types/backends/claude/session/lifecycle.js +852 -0
- package/lib/types/backends/claude/session/store.d.ts +17 -0
- package/lib/types/backends/claude/session/store.d.ts.map +1 -0
- package/lib/types/backends/claude/session/store.js +122 -0
- package/lib/types/backends/claude/session/subagents.d.ts +13 -0
- package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/claude/session/subagents.js +77 -0
- package/lib/types/backends/claude/session/types.d.ts +89 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -0
- package/lib/types/backends/claude/session/types.js +1 -0
- package/lib/types/backends/claude/session.d.ts +4 -0
- package/lib/types/backends/claude/session.d.ts.map +1 -0
- package/lib/types/backends/claude/session.js +2 -0
- package/lib/types/backends/claude/side-query.d.ts +34 -0
- package/lib/types/backends/claude/side-query.d.ts.map +1 -0
- package/lib/types/backends/claude/side-query.js +116 -0
- package/lib/types/backends/claude/task-output.d.ts +13 -0
- package/lib/types/backends/claude/task-output.d.ts.map +1 -0
- package/lib/types/backends/claude/task-output.js +101 -0
- package/lib/types/backends/claude/tools.d.ts +45 -0
- package/lib/types/backends/claude/tools.d.ts.map +1 -0
- package/lib/types/backends/claude/tools.js +231 -0
- package/lib/types/backends/claude/transcript-file.d.ts +41 -0
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
- package/lib/types/backends/claude/transcript-file.js +195 -0
- package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
- package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/attempts.js +243 -0
- package/lib/types/backends/claude/translate/content.d.ts +33 -0
- package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/content.js +91 -0
- package/lib/types/backends/claude/translate/core.d.ts +76 -0
- package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/core.js +447 -0
- package/lib/types/backends/claude/translate/events.d.ts +9 -0
- package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/events.js +77 -0
- package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
- package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/lanes.js +177 -0
- package/lib/types/backends/claude/translate/messages.d.ts +36 -0
- package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/messages.js +202 -0
- package/lib/types/backends/claude/translate/system.d.ts +40 -0
- package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/system.js +399 -0
- package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
- package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/tasks.js +159 -0
- package/lib/types/backends/claude/translate/types.d.ts +114 -0
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/types.js +1 -0
- package/lib/types/backends/claude/translate.d.ts +9 -0
- package/lib/types/backends/claude/translate.d.ts.map +1 -0
- package/lib/types/backends/claude/translate.js +6 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/external-tokens.js +325 -0
- package/lib/types/backends/codex/auth/route.d.ts +14 -0
- package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/route.js +52 -0
- package/lib/types/backends/codex/auth/status.d.ts +16 -0
- package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/status.js +115 -0
- package/lib/types/backends/codex/backend.d.ts +58 -0
- package/lib/types/backends/codex/backend.d.ts.map +1 -0
- package/lib/types/backends/codex/backend.js +201 -0
- package/lib/types/backends/codex/catalog.d.ts +17 -0
- package/lib/types/backends/codex/catalog.d.ts.map +1 -0
- package/lib/types/backends/codex/catalog.js +128 -0
- package/lib/types/backends/codex/channels.d.ts +59 -0
- package/lib/types/backends/codex/channels.d.ts.map +1 -0
- package/lib/types/backends/codex/channels.js +274 -0
- package/lib/types/backends/codex/contract.d.ts +46 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -0
- package/lib/types/backends/codex/contract.js +80 -0
- package/lib/types/backends/codex/detect.d.ts +14 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -0
- package/lib/types/backends/codex/detect.js +90 -0
- package/lib/types/backends/codex/index.d.ts +6 -0
- package/lib/types/backends/codex/index.d.ts.map +1 -0
- package/lib/types/backends/codex/index.js +5 -0
- package/lib/types/backends/codex/modes.d.ts +16 -0
- package/lib/types/backends/codex/modes.d.ts.map +1 -0
- package/lib/types/backends/codex/modes.js +49 -0
- package/lib/types/backends/codex/narrow.d.ts +20 -0
- package/lib/types/backends/codex/narrow.d.ts.map +1 -0
- package/lib/types/backends/codex/narrow.js +18 -0
- package/lib/types/backends/codex/prefs.d.ts +42 -0
- package/lib/types/backends/codex/prefs.d.ts.map +1 -0
- package/lib/types/backends/codex/prefs.js +124 -0
- package/lib/types/backends/codex/protocol/index.d.ts +149 -0
- package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
- package/lib/types/backends/codex/protocol/index.js +130 -0
- package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
- package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/binary.js +174 -0
- package/lib/types/backends/codex/rpc/client.d.ts +72 -0
- package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/client.js +214 -0
- package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
- package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/hub.js +532 -0
- package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
- package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/transport.js +212 -0
- package/lib/types/backends/codex/session/activity.d.ts +18 -0
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
- package/lib/types/backends/codex/session/activity.js +108 -0
- package/lib/types/backends/codex/session/approvals.d.ts +39 -0
- package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/approvals.js +477 -0
- package/lib/types/backends/codex/session/commands.d.ts +37 -0
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/session/commands.js +141 -0
- package/lib/types/backends/codex/session/controls.d.ts +37 -0
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
- package/lib/types/backends/codex/session/controls.js +303 -0
- package/lib/types/backends/codex/session/goals.d.ts +25 -0
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/goals.js +97 -0
- package/lib/types/backends/codex/session/history.d.ts +52 -0
- package/lib/types/backends/codex/session/history.d.ts.map +1 -0
- package/lib/types/backends/codex/session/history.js +196 -0
- package/lib/types/backends/codex/session/images.d.ts +17 -0
- package/lib/types/backends/codex/session/images.d.ts.map +1 -0
- package/lib/types/backends/codex/session/images.js +138 -0
- package/lib/types/backends/codex/session/input.d.ts +75 -0
- package/lib/types/backends/codex/session/input.d.ts.map +1 -0
- package/lib/types/backends/codex/session/input.js +294 -0
- package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
- package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
- package/lib/types/backends/codex/session/plan-review.js +48 -0
- package/lib/types/backends/codex/session/prompts.d.ts +7 -0
- package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
- package/lib/types/backends/codex/session/prompts.js +47 -0
- package/lib/types/backends/codex/session/session.d.ts +12 -0
- package/lib/types/backends/codex/session/session.d.ts.map +1 -0
- package/lib/types/backends/codex/session/session.js +871 -0
- package/lib/types/backends/codex/session/side-query.d.ts +25 -0
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
- package/lib/types/backends/codex/session/side-query.js +121 -0
- package/lib/types/backends/codex/session/state.d.ts +57 -0
- package/lib/types/backends/codex/session/state.d.ts.map +1 -0
- package/lib/types/backends/codex/session/state.js +1 -0
- package/lib/types/backends/codex/session/subagents.d.ts +28 -0
- package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/codex/session/subagents.js +286 -0
- package/lib/types/backends/codex/session/tasks.d.ts +25 -0
- package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tasks.js +207 -0
- package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
- package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tool-output.js +29 -0
- package/lib/types/backends/codex/translate/commands.d.ts +30 -0
- package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/commands.js +103 -0
- package/lib/types/backends/codex/translate/events.d.ts +9 -0
- package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/events.js +71 -0
- package/lib/types/backends/codex/translate/items.d.ts +112 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/items.js +375 -0
- package/lib/types/backends/codex/translate/live.d.ts +39 -0
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/live.js +315 -0
- package/lib/types/backends/codex/translate/notices.d.ts +27 -0
- package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/notices.js +99 -0
- package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
- package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/presentation.js +237 -0
- package/lib/types/backends/codex/translate/replay.d.ts +18 -0
- package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/replay.js +33 -0
- package/lib/types/backends/codex/translate/usage.d.ts +29 -0
- package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/usage.js +65 -0
- package/lib/types/backends/shared/atomic-file.d.ts +4 -0
- package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
- package/lib/types/backends/shared/atomic-file.js +52 -0
- package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-tokens.js +161 -0
- package/lib/types/backends/shared/display-path.d.ts +3 -0
- package/lib/types/backends/shared/display-path.d.ts.map +1 -0
- package/lib/types/backends/shared/display-path.js +12 -0
- package/lib/types/branding.d.ts +92 -0
- package/lib/types/branding.d.ts.map +1 -0
- package/lib/types/branding.js +117 -0
- package/lib/types/channel/activity.d.ts +53 -0
- package/lib/types/channel/activity.d.ts.map +1 -0
- package/lib/types/channel/activity.js +955 -0
- package/lib/types/channel/capabilities.d.ts +24 -0
- package/lib/types/channel/capabilities.d.ts.map +1 -0
- package/lib/types/channel/capabilities.js +57 -0
- package/lib/types/channel/channel-slug.d.ts +9 -0
- package/lib/types/channel/channel-slug.d.ts.map +1 -0
- package/lib/types/channel/channel-slug.js +15 -0
- package/lib/types/channel/channel-wizard.d.ts +30 -0
- package/lib/types/channel/channel-wizard.d.ts.map +1 -0
- package/lib/types/channel/channel-wizard.js +226 -0
- package/lib/types/channel/elicitation.d.ts +135 -0
- package/lib/types/channel/elicitation.d.ts.map +1 -0
- package/lib/types/channel/elicitation.js +360 -0
- package/lib/types/channel/goal-command.d.ts +49 -0
- package/lib/types/channel/goal-command.d.ts.map +1 -0
- package/lib/types/channel/goal-command.js +72 -0
- package/lib/types/channel/history-restore.d.ts +16 -0
- package/lib/types/channel/history-restore.d.ts.map +1 -0
- package/lib/types/channel/history-restore.js +214 -0
- package/lib/types/channel/interaction.d.ts +38 -0
- package/lib/types/channel/interaction.d.ts.map +1 -0
- package/lib/types/channel/interaction.js +110 -0
- package/lib/types/channel/job-format.d.ts +6 -0
- package/lib/types/channel/job-format.d.ts.map +1 -0
- package/lib/types/channel/job-format.js +12 -0
- package/lib/types/channel/live-output.d.ts +35 -0
- package/lib/types/channel/live-output.d.ts.map +1 -0
- package/lib/types/channel/live-output.js +74 -0
- package/lib/types/channel/model-capabilities.d.ts +10 -0
- package/lib/types/channel/model-capabilities.d.ts.map +1 -0
- package/lib/types/channel/model-capabilities.js +51 -0
- package/lib/types/channel/permissions.d.ts +155 -0
- package/lib/types/channel/permissions.d.ts.map +1 -0
- package/lib/types/channel/permissions.js +188 -0
- package/lib/types/channel/projection.d.ts +110 -0
- package/lib/types/channel/projection.d.ts.map +1 -0
- package/lib/types/channel/projection.js +1521 -0
- package/lib/types/channel/question-record.d.ts +76 -0
- package/lib/types/channel/question-record.d.ts.map +1 -0
- package/lib/types/channel/question-record.js +109 -0
- package/lib/types/channel/questions.d.ts +204 -0
- package/lib/types/channel/questions.d.ts.map +1 -0
- package/lib/types/channel/questions.js +286 -0
- package/lib/types/channel/sanitize.d.ts +49 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -0
- package/lib/types/channel/sanitize.js +88 -0
- package/lib/types/channel/selection-record.d.ts +18 -0
- package/lib/types/channel/selection-record.d.ts.map +1 -0
- package/lib/types/channel/selection-record.js +45 -0
- package/lib/types/channel/side-prompts.d.ts +59 -0
- package/lib/types/channel/side-prompts.d.ts.map +1 -0
- package/lib/types/channel/side-prompts.js +127 -0
- package/lib/types/channel/transcript.d.ts +17 -0
- package/lib/types/channel/transcript.d.ts.map +1 -0
- package/lib/types/channel/transcript.js +19 -0
- package/lib/types/channel/usage.d.ts +48 -0
- package/lib/types/channel/usage.d.ts.map +1 -0
- package/lib/types/channel/usage.js +143 -0
- package/lib/types/commands.d.ts +147 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +196 -2
- package/lib/types/components/AgentMessageComposer.d.ts +50 -0
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
- package/lib/types/components/AgentMessageComposer.js +159 -0
- package/lib/types/components/BtwPanel.d.ts +13 -12
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +35 -24
- package/lib/types/components/ChannelPicker.d.ts +40 -0
- package/lib/types/components/ChannelPicker.d.ts.map +1 -0
- package/lib/types/components/ChannelPicker.js +26 -0
- package/lib/types/components/Chat/JobCard.d.ts +29 -31
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +31 -112
- package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
- package/lib/types/components/Chat/SubagentMessage.js +10 -3
- package/lib/types/components/ClaudeGirl.d.ts +27 -0
- package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
- package/lib/types/components/ClaudeGirl.js +30 -0
- package/lib/types/components/CodeBlockFrame.d.ts +19 -0
- package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
- package/lib/types/components/CodeBlockFrame.js +138 -0
- package/lib/types/components/CommandSuggestions.d.ts +10 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -3
- package/lib/types/components/ContextBarView.d.ts +2 -2
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +18 -8
- package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
- package/lib/types/components/EffortChargeGlyph.js +3 -4
- package/lib/types/components/EffortInputBorder.d.ts +1 -2
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +7 -4
- package/lib/types/components/EffortSlider.d.ts +5 -1
- package/lib/types/components/EffortSlider.d.ts.map +1 -1
- package/lib/types/components/EffortSlider.js +2 -2
- package/lib/types/components/EffortTierBadge.d.ts +1 -2
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
- package/lib/types/components/EffortTierBadge.js +8 -5
- package/lib/types/components/GoalTodoPanel.d.ts +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +11 -5
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/JobsPanel.d.ts +8 -9
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +72 -13
- package/lib/types/components/KernelPicker.d.ts +28 -0
- package/lib/types/components/KernelPicker.d.ts.map +1 -0
- package/lib/types/components/KernelPicker.js +37 -0
- package/lib/types/components/LogoV2.d.ts +7 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +120 -24
- package/lib/types/components/Markdown.d.ts +2 -1
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +37 -8
- package/lib/types/components/MathBlock.d.ts.map +1 -1
- package/lib/types/components/MathBlock.js +3 -1
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
- package/lib/types/components/MermaidDiagram.js +7 -5
- package/lib/types/components/MessageList.d.ts +21 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +62 -42
- package/lib/types/components/ModePicker.d.ts +20 -0
- package/lib/types/components/ModePicker.d.ts.map +1 -0
- package/lib/types/components/ModePicker.js +17 -0
- package/lib/types/components/PromptInput.d.ts +2 -2
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +308 -55
- package/lib/types/components/SdkInstallWizard.d.ts +44 -0
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
- package/lib/types/components/SdkInstallWizard.js +18 -0
- package/lib/types/components/SearchBox.d.ts +7 -8
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +18 -9
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +113 -6
- package/lib/types/components/StarPrompt.d.ts.map +1 -1
- package/lib/types/components/StarPrompt.js +5 -3
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +6 -4
- package/lib/types/components/SubagentCard.d.ts +2 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +25 -18
- package/lib/types/components/SubagentDashboard.d.ts +10 -6
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +32 -21
- package/lib/types/components/SubagentDetailScene.d.ts +16 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +196 -45
- package/lib/types/components/SyntaxText.d.ts.map +1 -1
- package/lib/types/components/SyntaxText.js +4 -1
- package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
- package/lib/types/components/TurnInterruptedRow.js +6 -3
- package/lib/types/components/TurnUsageRow.d.ts +24 -0
- package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
- package/lib/types/components/TurnUsageRow.js +46 -0
- package/lib/types/components/WorkingSpinner.d.ts +2 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +21 -4
- package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +173 -25
- package/lib/types/components/claudeGirlSprite.d.ts +18 -0
- package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
- package/lib/types/components/claudeGirlSprite.js +48 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +46 -13
- package/lib/types/components/design-system/ThemedText.d.ts +3 -1
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/diffPatch.d.ts +55 -0
- package/lib/types/components/diffPatch.d.ts.map +1 -0
- package/lib/types/components/diffPatch.js +142 -0
- package/lib/types/components/kernelCatalog.d.ts +48 -0
- package/lib/types/components/kernelCatalog.d.ts.map +1 -0
- package/lib/types/components/kernelCatalog.js +53 -0
- package/lib/types/components/launchpadActions.d.ts +13 -6
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +26 -4
- package/lib/types/components/launchpadParams.d.ts +101 -0
- package/lib/types/components/launchpadParams.d.ts.map +1 -0
- package/lib/types/components/launchpadParams.js +171 -0
- package/lib/types/components/maidPortrait.d.ts +37 -5
- package/lib/types/components/maidPortrait.d.ts.map +1 -1
- package/lib/types/components/maidPortrait.js +73 -54
- package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
- package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
- package/lib/types/components/messages/AgentMessageFlow.js +37 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
- package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
- package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptLeaves.js +74 -0
- package/lib/types/components/messages/agentTeam.d.ts +69 -0
- package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
- package/lib/types/components/messages/agentTeam.js +53 -0
- package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
- package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
- package/lib/types/components/messages/liveOutputLines.js +100 -0
- package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
- package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
- package/lib/types/components/messages/subagentTranscript.js +304 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
- package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +11 -6
- package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
- package/lib/types/components/questions/ProviderModelEditor.js +266 -0
- package/lib/types/components/shimmer.d.ts +26 -0
- package/lib/types/components/shimmer.d.ts.map +1 -1
- package/lib/types/components/shimmer.js +26 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/InfoPanel.js +13 -8
- package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +55 -77
- package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +8 -4
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
- package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
- package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/agentViewStore.js +26 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/threads.js +302 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +70 -30
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
- package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/mood.js +44 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +203 -29
- package/lib/types/components/splashFonts.d.ts +17 -9
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +119 -15
- package/lib/types/components/splashLayout.d.ts.map +1 -1
- package/lib/types/components/splashLayout.js +3 -1
- package/lib/types/components/subagentDetailMemory.d.ts +17 -0
- package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
- package/lib/types/components/subagentDetailMemory.js +28 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
- package/lib/types/components/trajectory/Inspector.js +9 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
- package/lib/types/components/trajectory/Ledger.js +7 -1
- package/lib/types/components/trajectory/scope.d.ts +64 -0
- package/lib/types/components/trajectory/scope.d.ts.map +1 -0
- package/lib/types/components/trajectory/scope.js +88 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
- package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
- package/lib/types/customTheme.d.ts +4 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +6 -8
- package/lib/types/dsh-adapter/approvals.d.ts +18 -5
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +17 -4
- package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
- package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/session.js +291 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/translate.js +467 -0
- package/lib/types/dsh-adapter/backends.d.ts +49 -0
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.js +124 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +7 -5
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
- package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding.js +102 -35
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +3 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/files.js +45 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/host.js +116 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/decisions.js +4 -4
- package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/emitter.js +5 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/extensions.js +714 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
- package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
- package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/preferences.js +16 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +38 -1143
- package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/question-record.js +3 -107
- package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
- package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +7 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +17 -21
- package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.js +5 -111
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
- package/lib/types/dsh-adapter/channel.d.ts +17 -8
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +24 -1059
- package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +6 -1
- package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/decision-guard.js +44 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extension-events.js +22 -10
- package/lib/types/dsh-adapter/index.d.ts +41 -3
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +28 -1
- package/lib/types/dsh-adapter/jobs.d.ts +5 -3
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +53 -14
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
- package/lib/types/dsh-adapter/plugin.d.ts +38 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +546 -110
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +118 -52
- package/lib/types/dsh-adapter/questions.d.ts +29 -124
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +33 -267
- package/lib/types/dsh-adapter/recap.d.ts +3 -15
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
- package/lib/types/dsh-adapter/recap.js +3 -46
- package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sanitize.js +4 -84
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
- package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +60 -27
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +6 -4
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +1 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +3 -13
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +7 -0
- package/lib/types/dsh-adapter/themes.d.ts +1 -1
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/index.js +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +7 -0
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +11 -2
- package/lib/types/handoffAck.d.ts +57 -0
- package/lib/types/handoffAck.d.ts.map +1 -0
- package/lib/types/handoffAck.js +154 -0
- package/lib/types/handoffEvents.d.ts +52 -0
- package/lib/types/handoffEvents.d.ts.map +1 -0
- package/lib/types/handoffEvents.js +128 -0
- package/lib/types/i18n.d.ts +3189 -68
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +855 -9
- package/lib/types/ink/colorize.d.ts.map +1 -1
- package/lib/types/ink/colorize.js +8 -2
- package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
- package/lib/types/ink/components/AlternateScreen.js +25 -4
- package/lib/types/ink/components/App.d.ts +5 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +52 -5
- package/lib/types/ink/components/Image.d.ts +8 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/components/Text.d.ts +8 -1
- package/lib/types/ink/components/Text.d.ts.map +1 -1
- package/lib/types/ink/components/Text.js +11 -1
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +75 -3
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +9 -4
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +8 -2
- package/lib/types/ink/kitty-graphics.d.ts +7 -2
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +15 -7
- package/lib/types/ink/node-cache.d.ts +15 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +4 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +2 -0
- package/lib/types/ink/parse-keypress.d.ts +13 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +438 -19
- package/lib/types/ink/reconciler.d.ts.map +1 -1
- package/lib/types/ink/reconciler.js +9 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +200 -4
- package/lib/types/ink/render-stats.d.ts +35 -0
- package/lib/types/ink/render-stats.d.ts.map +1 -0
- package/lib/types/ink/render-stats.js +53 -0
- package/lib/types/ink/sixel-codec.d.ts +11 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +10 -3
- package/lib/types/ink/sixel-graphics.js +2 -2
- package/lib/types/ink/styles.d.ts +46 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +7 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +1 -1
- package/lib/types/ink/terminal-querier.js +4 -4
- package/lib/types/ink/text-decoration.d.ts +49 -0
- package/lib/types/ink/text-decoration.d.ts.map +1 -0
- package/lib/types/ink/text-decoration.js +235 -0
- package/lib/types/ink/update-overflow-guard.d.ts +9 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +41 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +5 -1
- package/lib/types/kernelPrefs.d.ts +51 -0
- package/lib/types/kernelPrefs.d.ts.map +1 -0
- package/lib/types/kernelPrefs.js +126 -0
- package/lib/types/modelRecents.d.ts +10 -2
- package/lib/types/modelRecents.d.ts.map +1 -1
- package/lib/types/modelRecents.js +20 -7
- package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
- package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
- package/lib/types/screens/AgentTranscriptScene.js +269 -0
- package/lib/types/screens/Chat.d.ts +45 -7
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +625 -113
- package/lib/types/screens/Launchpad.d.ts +24 -7
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +147 -28
- package/lib/types/screens/SessionSupervisor.d.ts +3 -3
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +69 -5
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +211 -7
- package/lib/types/screens/StatusLine.d.ts +40 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +131 -19
- package/lib/types/screens/StatusMetrics.d.ts +53 -17
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +141 -30
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/screens/TrajectoryScene.js +74 -12
- package/lib/types/screens/chat/backendCommands.d.ts +37 -0
- package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
- package/lib/types/screens/chat/backendCommands.js +51 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
- package/lib/types/screens/chat/useBackendChannels.js +117 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useKernelPicker.js +72 -0
- package/lib/types/screens/chatOverlay.d.ts +32 -2
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +9 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
- package/lib/types/sessionHistory.d.ts +18 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +46 -4
- package/lib/types/sessionPins.d.ts +7 -0
- package/lib/types/sessionPins.d.ts.map +1 -1
- package/lib/types/sessionPins.js +9 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
- package/lib/types/sessions/resumeFailure.js +2 -1
- package/lib/types/settings/definitions.d.ts +74 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +50 -4
- package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
- package/lib/types/terminal-utils/hyperlink.js +21 -4
- package/lib/types/terminal-utils/markdown.d.ts +34 -6
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +257 -66
- package/lib/types/theme.d.ts +49 -8
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +514 -18
- package/lib/types/tips.js +2 -2
- package/lib/types/trajectory/effortIgnition.d.ts +25 -7
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
- package/lib/types/trajectory/effortIgnition.js +106 -34
- package/lib/types/trajectory/window.d.ts +26 -0
- package/lib/types/trajectory/window.d.ts.map +1 -0
- package/lib/types/trajectory/window.js +27 -0
- package/lib/types/tuiDisplayPrefs.d.ts +38 -1
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +45 -1
- package/lib/types/update.d.ts +88 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +285 -18
- package/lib/types/utils/crashDetail.d.ts +56 -0
- package/lib/types/utils/crashDetail.d.ts.map +1 -0
- package/lib/types/utils/crashDetail.js +175 -0
- package/lib/types/utils/imageResize.d.ts +9 -23
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +24 -20
- package/lib/types/utils/inputPaste.d.ts +9 -8
- package/lib/types/utils/inputPaste.d.ts.map +1 -1
- package/lib/types/utils/inputPaste.js +53 -16
- package/lib/types/utils/jsonl.d.ts +24 -0
- package/lib/types/utils/jsonl.d.ts.map +1 -0
- package/lib/types/utils/jsonl.js +36 -0
- package/package.json +18 -2
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
import { NO_EVENTS } from '../../agent/events.js';
|
|
2
|
+
import { isPeakHour } from '../../deepseekPricing.js';
|
|
3
|
+
import { BACKGROUND_START_ACK, isSubagentToolName, parseJobOutputId, todoPanelItems, toolCommandOf } from '../channel/projection-helpers.js';
|
|
4
|
+
import { harnessToolResultView, prepareReplayEvents, toolErrorText } from '../channel/transcript.js';
|
|
5
|
+
import { isCompactionCheckpointSource, toolResultPayload } from '../compat/messages.js';
|
|
6
|
+
import { transcriptImagesOf } from '../transcript-images.js';
|
|
7
|
+
/**
|
|
8
|
+
* DeepSeek's rate windows, injected into the shared projector as its
|
|
9
|
+
* `pricingWindow`: each usage buckets by the time its request ran.
|
|
10
|
+
*/
|
|
11
|
+
export function dshPricingWindow(time) {
|
|
12
|
+
return isPeakHour(new Date(time)) ? 'peak' : 'idle';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The DSH backend's decision for every Agent Domain event type: whether this
|
|
16
|
+
* translator (or its session, for the bus-derived `session.status`,
|
|
17
|
+
* `pending.changed` and `compaction.progress`) ever emits it. The exhaustive
|
|
18
|
+
* switch is the point: a new `AgentEvent` variant fails `tsc` here until the
|
|
19
|
+
* DSH side decides, and `verify:agent-domain` checks every translated fixture
|
|
20
|
+
* event against it.
|
|
21
|
+
*/
|
|
22
|
+
export function dshEmits(type) {
|
|
23
|
+
switch (type) {
|
|
24
|
+
case 'session.title':
|
|
25
|
+
case 'session.color':
|
|
26
|
+
case 'session.status':
|
|
27
|
+
case 'turn.start':
|
|
28
|
+
case 'turn.end':
|
|
29
|
+
case 'step.start':
|
|
30
|
+
case 'step.end':
|
|
31
|
+
case 'user.message':
|
|
32
|
+
case 'pending.changed':
|
|
33
|
+
case 'assistant.attempt.start':
|
|
34
|
+
case 'assistant.delta':
|
|
35
|
+
case 'assistant.attempt.end':
|
|
36
|
+
case 'assistant.message':
|
|
37
|
+
case 'tool.call':
|
|
38
|
+
case 'tool.result':
|
|
39
|
+
case 'task.start':
|
|
40
|
+
case 'task.output':
|
|
41
|
+
case 'compaction.start':
|
|
42
|
+
case 'compaction.progress':
|
|
43
|
+
case 'compaction.end':
|
|
44
|
+
case 'context.capacity':
|
|
45
|
+
case 'goal.change':
|
|
46
|
+
case 'todo.write':
|
|
47
|
+
case 'preset.selected':
|
|
48
|
+
case 'system.prompt':
|
|
49
|
+
case 'request.header':
|
|
50
|
+
case 'custom':
|
|
51
|
+
return true;
|
|
52
|
+
// Owned elsewhere on DSH (subagent/job extensions, approval and question
|
|
53
|
+
// stores, model/mode actions) or not a DSH concept. Agent-to-agent relay
|
|
54
|
+
// messages are folded by the adapter's subagent projection straight from
|
|
55
|
+
// the durable session events, so the translator emits none.
|
|
56
|
+
case 'agent.message':
|
|
57
|
+
case 'session.ready':
|
|
58
|
+
case 'session.reset':
|
|
59
|
+
case 'tool.progress':
|
|
60
|
+
// Optional, unused: DSH tool output reaches the card through the
|
|
61
|
+
// settled result (and background jobs through task.output).
|
|
62
|
+
case 'tool.output':
|
|
63
|
+
case 'permission.request':
|
|
64
|
+
case 'permission.settled':
|
|
65
|
+
case 'question.request':
|
|
66
|
+
case 'question.settled':
|
|
67
|
+
case 'subagent.start':
|
|
68
|
+
case 'subagent.progress':
|
|
69
|
+
case 'subagent.end':
|
|
70
|
+
case 'task.update':
|
|
71
|
+
case 'task.end':
|
|
72
|
+
case 'tasks.snapshot':
|
|
73
|
+
case 'usage':
|
|
74
|
+
case 'context.usage':
|
|
75
|
+
case 'model.changed':
|
|
76
|
+
case 'effort.changed':
|
|
77
|
+
case 'mode.changed':
|
|
78
|
+
case 'commands.changed':
|
|
79
|
+
case 'notice':
|
|
80
|
+
case 'rate-limit':
|
|
81
|
+
return false;
|
|
82
|
+
default: {
|
|
83
|
+
// Exhaustiveness: a new AgentEvent variant must be classified above.
|
|
84
|
+
const unhandled = type;
|
|
85
|
+
return unhandled;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Official presets recorded under a former name (blank-session preset
|
|
90
|
+
* markers show the user's current spelling, issue #8). A Map, not an object
|
|
91
|
+
* literal: the key is untrusted log data, and a plain-object lookup would
|
|
92
|
+
* resolve `constructor`/`toString`/… through `Object.prototype`. */
|
|
93
|
+
const PRESET_ALIASES = new Map([
|
|
94
|
+
['code', ['ptc']],
|
|
95
|
+
['ptc', ['code']],
|
|
96
|
+
]);
|
|
97
|
+
const QUESTION = { card: 'question' };
|
|
98
|
+
const SUBAGENT = { card: 'subagent' };
|
|
99
|
+
const OTHER_DELTA = { kind: 'other' };
|
|
100
|
+
// ContentBlockMap is merge-extensible: plugin-added block types are silently
|
|
101
|
+
// skipped (v1 renders text blocks only) — never crashes.
|
|
102
|
+
const textOf = (content) => (content ?? []).map(block => (block.type === 'text' ? block.text : '')).join('').trim();
|
|
103
|
+
/**
|
|
104
|
+
* Transcript-facing text of a user message: the first text block only.
|
|
105
|
+
* `@`-mention attachments (issue #15) travel as later, model-facing blocks,
|
|
106
|
+
* so joining every block would dump file contents into the bubble, the
|
|
107
|
+
* sticky header and session titles.
|
|
108
|
+
*/
|
|
109
|
+
const firstTextOf = (content) => (content ?? []).find(block => block.type === 'text')?.text.trim() ?? '';
|
|
110
|
+
const goalChange = (change) => ({
|
|
111
|
+
type: 'goal.change',
|
|
112
|
+
operation: change.operation,
|
|
113
|
+
goal: change.goal,
|
|
114
|
+
roundsStarted: change.roundsStarted,
|
|
115
|
+
});
|
|
116
|
+
const usageDelta = (usage) => usage === undefined
|
|
117
|
+
? undefined
|
|
118
|
+
: { input: usage.inputTokens, output: usage.outputTokens, cacheRead: usage.cacheReadTokens, cacheWrite: usage.cacheWriteTokens };
|
|
119
|
+
/** DSH turn-close reasons; the ones without a shared name keep their label. */
|
|
120
|
+
const turnEndReason = (reason) => {
|
|
121
|
+
switch (reason.kind) {
|
|
122
|
+
case 'completed':
|
|
123
|
+
case 'aborted':
|
|
124
|
+
case 'interrupted':
|
|
125
|
+
case 'blocked':
|
|
126
|
+
return { kind: reason.kind };
|
|
127
|
+
case 'error':
|
|
128
|
+
return { kind: 'error', message: reason.error.message };
|
|
129
|
+
default:
|
|
130
|
+
return { kind: 'other', label: reason.kind };
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
/** One stream chunk as a domain delta; non-content records stay `other`. */
|
|
134
|
+
const deltaOf = (chunk) => {
|
|
135
|
+
switch (chunk.type) {
|
|
136
|
+
case 'text-delta':
|
|
137
|
+
return { kind: 'text', text: chunk.text };
|
|
138
|
+
case 'reasoning-delta':
|
|
139
|
+
return { kind: 'reasoning', text: chunk.text };
|
|
140
|
+
case 'tool-call-delta':
|
|
141
|
+
return { kind: 'tool-args', callId: chunk.id, partialJson: chunk.argumentsDelta, name: chunk.name };
|
|
142
|
+
default:
|
|
143
|
+
return OTHER_DELTA;
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
/** Create one translator; it serves exactly one session's event stream. */
|
|
147
|
+
export function createDshTranslator(deps) {
|
|
148
|
+
/** Frame revisions are monotone within one attached Agent lifecycle; a
|
|
149
|
+
* re-delivered or out-of-order frame is dropped here. */
|
|
150
|
+
let lastStreamRevision = -1;
|
|
151
|
+
/**
|
|
152
|
+
* Open calls by callId until their result: what the result's presenter,
|
|
153
|
+
* images and task feeds need. `card: false` = question-presented (the
|
|
154
|
+
* projector projects the record from the result text). Subagent calls are
|
|
155
|
+
* not tracked: nothing about their result is projected. Bounded like the
|
|
156
|
+
* projector's own card index: deleted on result, cleared on reset.
|
|
157
|
+
*/
|
|
158
|
+
const openCalls = new Map();
|
|
159
|
+
/** Ask the producing tool how its call should render (diff/terminal/…).
|
|
160
|
+
* Unknown tool, unparseable args, or a throwing presenter all degrade to
|
|
161
|
+
* the plain text card. */
|
|
162
|
+
const presentCallView = (name, rawArgs) => {
|
|
163
|
+
try {
|
|
164
|
+
const tool = deps.tools()?.get(name, deps.scope());
|
|
165
|
+
if (tool?.presentCall === undefined)
|
|
166
|
+
return undefined;
|
|
167
|
+
return tool.presentCall(JSON.parse(rawArgs));
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
/** Same for the settled result; `meta` is the tool-private presentation
|
|
174
|
+
* payload the tool attached to its tool/result event (dsh-tool-fs reads
|
|
175
|
+
* its result-time contextual diff back from here). */
|
|
176
|
+
const presentResultView = (name, rawArgs, data) => {
|
|
177
|
+
try {
|
|
178
|
+
// Harness goal/todo tools first: their raw JSON is noise in the
|
|
179
|
+
// transcript, so known shapes fold into a summary card before the
|
|
180
|
+
// registry is asked (it may not know these tools).
|
|
181
|
+
const local = harnessToolResultView(name, data);
|
|
182
|
+
if (local !== undefined)
|
|
183
|
+
return local;
|
|
184
|
+
const tool = deps.tools()?.get(name, deps.scope());
|
|
185
|
+
if (tool?.presentResult === undefined)
|
|
186
|
+
return undefined;
|
|
187
|
+
return tool.presentResult(JSON.parse(rawArgs), {
|
|
188
|
+
...toolResultPayload(data.message),
|
|
189
|
+
...(data.meta !== undefined ? { meta: data.meta } : {}),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const translateUserMessage = (event) => {
|
|
197
|
+
const data = event.data;
|
|
198
|
+
const base = { id: data.id, anchor: String(event.seq), seq: event.seq, time: event.time, blocks: data.content };
|
|
199
|
+
// Both legacy and V4 checkpoints render as a folded summary rather than
|
|
200
|
+
// disappearing with the other injected context.
|
|
201
|
+
if (isCompactionCheckpointSource(data.source)) {
|
|
202
|
+
return [{ type: 'user.message', ...base, source: 'compaction', text: textOf(data.content) }];
|
|
203
|
+
}
|
|
204
|
+
// Same-session goal domain: goal-sourced messages are the round driver's
|
|
205
|
+
// continuation prompts (positive rounds advance the counter); some hosts
|
|
206
|
+
// also inline the durable snapshot in a round-zero source. They are not
|
|
207
|
+
// transcript bubbles — they drive the goal panel's projection (replayed on
|
|
208
|
+
// resume/rewind like every other event; the snapshot itself arrives as
|
|
209
|
+
// the top-level `goal/change` event).
|
|
210
|
+
if (data.source.kind === 'goal') {
|
|
211
|
+
const source = data.source;
|
|
212
|
+
if (source.round > 0)
|
|
213
|
+
return [{ type: 'goal.change', operation: 'round', round: source.round }];
|
|
214
|
+
const change = source.change;
|
|
215
|
+
// oxlint-disable-next-line typescript/no-unnecessary-condition -- durable replay data may not match the static type
|
|
216
|
+
if (change === undefined || change.kind !== 'goal/change')
|
|
217
|
+
return NO_EVENTS;
|
|
218
|
+
return [goalChange(change)];
|
|
219
|
+
}
|
|
220
|
+
// Injected context (plugin/skill source) is model-facing only; it has no
|
|
221
|
+
// transcript-facing text.
|
|
222
|
+
if (data.source.kind !== 'user')
|
|
223
|
+
return [{ type: 'user.message', ...base, source: 'injected', text: '' }];
|
|
224
|
+
return [{
|
|
225
|
+
type: 'user.message',
|
|
226
|
+
...base,
|
|
227
|
+
source: 'user',
|
|
228
|
+
text: firstTextOf(data.content),
|
|
229
|
+
images: transcriptImagesOf(data.content, deps.attachments),
|
|
230
|
+
}];
|
|
231
|
+
};
|
|
232
|
+
const translateToolResult = (event) => {
|
|
233
|
+
const data = event.data;
|
|
234
|
+
const callId = data.message.source.callId;
|
|
235
|
+
const call = openCalls.get(callId);
|
|
236
|
+
openCalls.delete(callId);
|
|
237
|
+
const payload = toolResultPayload(data.message);
|
|
238
|
+
const isError = data.error !== undefined || payload.isError;
|
|
239
|
+
// Text/presentation/images are derived only for results something
|
|
240
|
+
// projects (a card or a question record).
|
|
241
|
+
const text = call === undefined || isError ? '' : textOf(payload.content);
|
|
242
|
+
const card = call?.card === true ? call : undefined;
|
|
243
|
+
const result = {
|
|
244
|
+
type: 'tool.result',
|
|
245
|
+
seq: event.seq,
|
|
246
|
+
turn: data.turn,
|
|
247
|
+
step: data.step,
|
|
248
|
+
callId,
|
|
249
|
+
isError,
|
|
250
|
+
time: event.time,
|
|
251
|
+
content: payload.content,
|
|
252
|
+
text,
|
|
253
|
+
...(isError && call !== undefined ? { errorText: toolErrorText(event) } : {}),
|
|
254
|
+
...(card === undefined ? {} : { images: transcriptImagesOf(data.message.content, deps.attachments) }),
|
|
255
|
+
...(data.meta === undefined ? {} : { meta: data.meta }),
|
|
256
|
+
...(card === undefined || isError ? {} : { presentation: presentResultView(card.name, card.args, data) }),
|
|
257
|
+
};
|
|
258
|
+
if (card === undefined || isError)
|
|
259
|
+
return [result];
|
|
260
|
+
const events = [result];
|
|
261
|
+
// A job_output read doubles as the job card's output feed (the
|
|
262
|
+
// registry's read is consuming and reserved for the owning agent).
|
|
263
|
+
if (card.name === 'job_output' && text !== '') {
|
|
264
|
+
const id = parseJobOutputId(card.args);
|
|
265
|
+
if (id !== undefined)
|
|
266
|
+
events.push({ type: 'task.output', taskId: id, text, time: event.time, callId });
|
|
267
|
+
}
|
|
268
|
+
// A `started background job <id>` ack pairs the job with its tool call.
|
|
269
|
+
// Take the full command from the args; the registry label is only the
|
|
270
|
+
// friendly description.
|
|
271
|
+
const startAck = BACKGROUND_START_ACK.exec(text);
|
|
272
|
+
if (startAck !== null) {
|
|
273
|
+
const command = toolCommandOf(card.args);
|
|
274
|
+
if (command !== undefined) {
|
|
275
|
+
events.push({ type: 'task.start', taskId: startAck[1], kind: 'shell', description: '', command, callId, background: true, time: event.time });
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return events;
|
|
279
|
+
};
|
|
280
|
+
/** Translate one durable session event (live or as part of a replay). */
|
|
281
|
+
const translateEvent = (event) => {
|
|
282
|
+
const type = event.type;
|
|
283
|
+
// Top-level `goal/change` events are how the goal service records durable
|
|
284
|
+
// goal mutations (create/edit/pause/resume/complete/block/clear) —
|
|
285
|
+
// confirmed in production logs. The pinned peer's SessionEvent union
|
|
286
|
+
// predates the type, so admit it structurally.
|
|
287
|
+
if (type === 'goal/change')
|
|
288
|
+
return [goalChange(event.data)];
|
|
289
|
+
switch (event.type) {
|
|
290
|
+
case 'user/message':
|
|
291
|
+
return translateUserMessage(event);
|
|
292
|
+
case 'step/start':
|
|
293
|
+
return [{ type: 'step.start', turn: event.data.turn, step: event.data.step }];
|
|
294
|
+
case 'assistant/attempt':
|
|
295
|
+
// A durable failed attempt, located by position (it has no stream id).
|
|
296
|
+
return [{ type: 'assistant.attempt.end', attemptId: `seq:${event.seq}`, outcome: 'abandoned', turn: event.data.turn, step: event.data.step }];
|
|
297
|
+
case 'assistant/message': {
|
|
298
|
+
const data = event.data;
|
|
299
|
+
const content = data.message.content;
|
|
300
|
+
return [{
|
|
301
|
+
type: 'assistant.message',
|
|
302
|
+
seq: event.seq,
|
|
303
|
+
anchor: String(event.seq),
|
|
304
|
+
turn: data.turn,
|
|
305
|
+
step: data.step,
|
|
306
|
+
attemptId: `seq:${event.seq}`,
|
|
307
|
+
time: event.time,
|
|
308
|
+
blocks: content,
|
|
309
|
+
images: transcriptImagesOf(content, deps.attachments),
|
|
310
|
+
usage: usageDelta(data.usage),
|
|
311
|
+
...(data.interrupted === true ? { interrupted: true } : {}),
|
|
312
|
+
// V3 embeds its complete attempt stream; older settlements may omit
|
|
313
|
+
// reasoning that is still durably recorded in assistant/chunk events.
|
|
314
|
+
canonical: Array.isArray(data.stream),
|
|
315
|
+
}];
|
|
316
|
+
}
|
|
317
|
+
case 'tool/call': {
|
|
318
|
+
const data = event.data;
|
|
319
|
+
const callId = data.callId;
|
|
320
|
+
const base = { type: 'tool.call', seq: event.seq, anchor: String(event.seq), turn: data.turn, step: data.step, callId, name: data.name, argsJson: data.arguments, time: event.time };
|
|
321
|
+
// ask_user_question renders as the interactive questionnaire panel
|
|
322
|
+
// (DSH user-interaction seam), not as a tool card.
|
|
323
|
+
if (data.name === 'ask_user_question') {
|
|
324
|
+
openCalls.set(callId, { name: data.name, args: data.arguments, card: false });
|
|
325
|
+
return [{ ...base, presentation: QUESTION }];
|
|
326
|
+
}
|
|
327
|
+
// The delegation tools render as the live subagent card.
|
|
328
|
+
if (isSubagentToolName(data.name))
|
|
329
|
+
return [{ ...base, presentation: SUBAGENT }];
|
|
330
|
+
openCalls.set(callId, { name: data.name, args: data.arguments, card: true });
|
|
331
|
+
return [{ ...base, presentation: presentCallView(data.name, data.arguments) }];
|
|
332
|
+
}
|
|
333
|
+
case 'tool/result':
|
|
334
|
+
return translateToolResult(event);
|
|
335
|
+
case 'step/end':
|
|
336
|
+
return [{ type: 'step.end', turn: event.data.turn, step: event.data.step }];
|
|
337
|
+
case 'turn/start':
|
|
338
|
+
return [{ type: 'turn.start', turn: event.data.turn, origin: 'user', time: event.time }];
|
|
339
|
+
case 'turn/end':
|
|
340
|
+
return [{ type: 'turn.end', turn: event.data.turn, reason: turnEndReason(event.data.reason), time: event.time }];
|
|
341
|
+
case 'request/context':
|
|
342
|
+
// Adapter-advertised context capacity, when the route reports one.
|
|
343
|
+
return event.data.contextWindow === undefined ? NO_EVENTS : [{ type: 'context.capacity', contextWindow: event.data.contextWindow }];
|
|
344
|
+
case 'system/message':
|
|
345
|
+
// V3 system prompts are surface nodes, not header fields: the latest
|
|
346
|
+
// node holds the active instructions (an empty render clears them).
|
|
347
|
+
return [{ type: 'system.prompt', text: textOf(event.data.message.content) }];
|
|
348
|
+
case 'request/header': {
|
|
349
|
+
// The header carries the conversation's call config
|
|
350
|
+
// (provider/model/effort/sampling). The system prompt moved out of
|
|
351
|
+
// the header at V3 (see system/message); pre-V3 logs still carry it,
|
|
352
|
+
// admitted structurally below.
|
|
353
|
+
// oxlint-disable-next-line typescript/no-unnecessary-condition -- durable session data may lack header config
|
|
354
|
+
const effort = event.data.header.config?.reasoningEffort;
|
|
355
|
+
const headerModel = event.data.header.config?.model;
|
|
356
|
+
const header = {
|
|
357
|
+
type: 'request.header',
|
|
358
|
+
// A missing/empty model must clear the previous header's value, or
|
|
359
|
+
// later usage would keep billing the old model.
|
|
360
|
+
model: typeof headerModel === 'string' && headerModel !== '' ? headerModel : undefined,
|
|
361
|
+
effort: typeof effort === 'string' ? effort : undefined,
|
|
362
|
+
};
|
|
363
|
+
const legacySystem = event.data.header.system;
|
|
364
|
+
return typeof legacySystem === 'string' ? [header, { type: 'system.prompt', text: legacySystem }] : [header];
|
|
365
|
+
}
|
|
366
|
+
case 'session/title': {
|
|
367
|
+
const source = event.data.source;
|
|
368
|
+
return [{ type: 'session.title', title: event.data.title, source: source?.kind === 'user' ? 'user' : 'auto' }];
|
|
369
|
+
}
|
|
370
|
+
default:
|
|
371
|
+
break;
|
|
372
|
+
}
|
|
373
|
+
const data = event.data;
|
|
374
|
+
switch (type) {
|
|
375
|
+
case 'assistant/chunk': {
|
|
376
|
+
// Pre-0.1.5 live streams and raw pre-V3 logs carry per-token chunks
|
|
377
|
+
// as durable session events (0.1.5 moved live chunks to transient
|
|
378
|
+
// frames and compacts the durable record into
|
|
379
|
+
// `assistant/message.stream`). Matched by name so the current union
|
|
380
|
+
// (which no longer lists the type) stays compile-clean.
|
|
381
|
+
const chunk = data;
|
|
382
|
+
return [{
|
|
383
|
+
type: 'assistant.delta',
|
|
384
|
+
attemptId: `seq:${event.seq}`,
|
|
385
|
+
index: chunk.chunk.index ?? 0,
|
|
386
|
+
time: event.time,
|
|
387
|
+
turn: chunk.turn,
|
|
388
|
+
step: chunk.step,
|
|
389
|
+
seq: event.seq,
|
|
390
|
+
delta: deltaOf(chunk.chunk),
|
|
391
|
+
}];
|
|
392
|
+
}
|
|
393
|
+
case 'todo/write': {
|
|
394
|
+
// dsh-tool-todo owns this optional module augmentation; matched by
|
|
395
|
+
// name so the TUI remains loadable without that plugin.
|
|
396
|
+
const todos = todoPanelItems(data);
|
|
397
|
+
return todos === undefined ? NO_EVENTS : [{ type: 'todo.write', items: todos }];
|
|
398
|
+
}
|
|
399
|
+
case 'agent-preset/selected': {
|
|
400
|
+
// Logged preset switch (blank sessions only, issue #8). Not in
|
|
401
|
+
// dsh-session's typed union — matched by name.
|
|
402
|
+
const recorded = data.agentPreset;
|
|
403
|
+
const preset = typeof recorded === 'string' ? recorded : 'unknown';
|
|
404
|
+
const aliases = PRESET_ALIASES.get(preset);
|
|
405
|
+
return [{ type: 'preset.selected', preset, ...(aliases === undefined ? {} : { aliases }) }];
|
|
406
|
+
}
|
|
407
|
+
case 'session/color': {
|
|
408
|
+
// `/color` accent (dsh-tui plugin event): '' clears to the default.
|
|
409
|
+
const color = data.color;
|
|
410
|
+
return [{ type: 'session.color', color: typeof color === 'string' ? color : '' }];
|
|
411
|
+
}
|
|
412
|
+
// The compaction bracket is a plugin-appended event pair (not part of
|
|
413
|
+
// dsh-session's typed map): the host writes `compaction/start` before
|
|
414
|
+
// the summarizer runs and `compaction/end` once the checkpoint is
|
|
415
|
+
// committed or abandoned. The checkpoint `user/message` tells which,
|
|
416
|
+
// so the close itself carries no outcome.
|
|
417
|
+
case 'compaction/start':
|
|
418
|
+
return [{ type: 'compaction.start', trigger: 'auto', cancellable: false, time: event.time }];
|
|
419
|
+
case 'compaction/end':
|
|
420
|
+
return [{ type: 'compaction.end', ok: true, time: event.time }];
|
|
421
|
+
default:
|
|
422
|
+
// Custom plugin events: the tuiRenderers seam decides whether they
|
|
423
|
+
// render at all.
|
|
424
|
+
return [{ type: 'custom', nativeType: type, data }];
|
|
425
|
+
}
|
|
426
|
+
};
|
|
427
|
+
/**
|
|
428
|
+
* Translate one live assistant stream frame (0.1.5+): the transient
|
|
429
|
+
* per-token counterpart of the durable `assistant/message` /
|
|
430
|
+
* `assistant/attempt` settlement.
|
|
431
|
+
*/
|
|
432
|
+
const translateFrame = (frame) => {
|
|
433
|
+
if (frame.revision <= lastStreamRevision)
|
|
434
|
+
return NO_EVENTS;
|
|
435
|
+
lastStreamRevision = frame.revision;
|
|
436
|
+
const attemptId = frame.attemptId;
|
|
437
|
+
if (frame.type === 'start')
|
|
438
|
+
return [{ type: 'assistant.attempt.start', attemptId, turn: frame.turn, step: frame.step }];
|
|
439
|
+
if (frame.type === 'end') {
|
|
440
|
+
// A settlement recorded as `assistant/attempt` is a failed attempt: its
|
|
441
|
+
// provisional rows go, exactly like a live abandonment.
|
|
442
|
+
const discarded = frame.outcome.kind === 'abandoned' || frame.outcome.eventType === 'assistant/attempt';
|
|
443
|
+
return [{ type: 'assistant.attempt.end', attemptId, outcome: discarded ? 'abandoned' : 'committed' }];
|
|
444
|
+
}
|
|
445
|
+
return [{ type: 'assistant.delta', attemptId, index: frame.index, time: frame.time, delta: deltaOf(frame.chunk) }];
|
|
446
|
+
};
|
|
447
|
+
/**
|
|
448
|
+
* Translate a durable replay seed (resume / rewind / model-switch fork).
|
|
449
|
+
* Settled `assistant/chunk` runs are dropped first (`prepareReplayEvents`);
|
|
450
|
+
* the frame fence restarts with the replacement session.
|
|
451
|
+
*/
|
|
452
|
+
const translateReplay = (events) => {
|
|
453
|
+
lastStreamRevision = -1;
|
|
454
|
+
const out = [];
|
|
455
|
+
for (const event of prepareReplayEvents(events)) {
|
|
456
|
+
for (const translated of translateEvent(event))
|
|
457
|
+
out.push(translated);
|
|
458
|
+
}
|
|
459
|
+
return out;
|
|
460
|
+
};
|
|
461
|
+
/** Forget the frame fence and every open call (paired with a projector reset). */
|
|
462
|
+
const reset = () => {
|
|
463
|
+
lastStreamRevision = -1;
|
|
464
|
+
openCalls.clear();
|
|
465
|
+
};
|
|
466
|
+
return { translateEvent, translateFrame, translateReplay, reset, presentCallView, presentResultView };
|
|
467
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Non-DSH backend loading, detection and startup session ownership. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import type { AgentBackend, BackendHost, OpenTarget, SdkInstallTarget, SdkInstaller } from '../agent/backend.js';
|
|
4
|
+
import type { AgentEvent } from '../agent/events.js';
|
|
5
|
+
import type { AgentSession } from '../agent/session.js';
|
|
6
|
+
import type { KernelStatus } from '../components/kernelCatalog.js';
|
|
7
|
+
/** Close an already-loaded backend's pooled processes without loading it on DSH. */
|
|
8
|
+
export declare function closeBackendResources(): Promise<void>;
|
|
9
|
+
export declare const BACKEND_LOADERS: {
|
|
10
|
+
claude: () => Promise<AgentBackend>;
|
|
11
|
+
codex: () => Promise<AgentBackend>;
|
|
12
|
+
};
|
|
13
|
+
/** The kernel picker's one-click SDK install surface (Chat consumes it as
|
|
14
|
+
* props; the types are the neutral ones from agent/backend.js). */
|
|
15
|
+
export declare const sdkInstall: {
|
|
16
|
+
resolveTarget: () => SdkInstallTarget;
|
|
17
|
+
start: (dir: string) => SdkInstaller;
|
|
18
|
+
checkPnpm: () => Promise<boolean>;
|
|
19
|
+
pinned: {
|
|
20
|
+
readonly specifier: "@anthropic-ai/claude-agent-sdk@0.3.287";
|
|
21
|
+
readonly version: "0.3.287";
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
/** All probes and sessions share one credential source per provider. */
|
|
25
|
+
export declare function createBackendHost(ctx: Context, cwd: string, stderr: (line: string) => void): Promise<BackendHost>;
|
|
26
|
+
/** Resume failures abort boot; history is read before the channel's first paint. */
|
|
27
|
+
export declare function openBackendStartup(ctx: Context, backend: AgentBackend, input: {
|
|
28
|
+
readonly cwd: string;
|
|
29
|
+
readonly stderr: (line: string) => void;
|
|
30
|
+
readonly configuredSessionId?: string;
|
|
31
|
+
readonly argv: readonly string[];
|
|
32
|
+
}): Promise<{
|
|
33
|
+
session: AgentSession;
|
|
34
|
+
label: string;
|
|
35
|
+
backendId: string;
|
|
36
|
+
initialHistory: readonly AgentEvent[];
|
|
37
|
+
catalog: import("../agent/backend.js").SessionCatalog | undefined;
|
|
38
|
+
sessionPrefs: import("../agent/backend.js").BackendSessionPrefs;
|
|
39
|
+
persisted: (_sessionId: string, rows: readonly {
|
|
40
|
+
readonly kind: string;
|
|
41
|
+
}[]) => boolean;
|
|
42
|
+
resumeCommand: (sessionId: string) => string;
|
|
43
|
+
open: (target: Extract<OpenTarget, {
|
|
44
|
+
readonly kind: "create" | "resume";
|
|
45
|
+
}>) => Promise<AgentSession>;
|
|
46
|
+
}>;
|
|
47
|
+
/** Probe optional backends lazily; failed loading leaves their row unavailable. */
|
|
48
|
+
export declare function probeKernels(ctx: Context, cwd: string): Promise<Record<string, KernelStatus>>;
|
|
49
|
+
//# sourceMappingURL=backends.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/backends.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAyB,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvI,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAclE,oFAAoF;AACpF,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,eAAO,MAAM,eAAe;;;CAMoD,CAAA;AAEhF;oEACoE;AACpE,eAAO,MAAM,UAAU;yBACF,gBAAgB;iBACtB,MAAM,KAAG,YAAY;qBACnB,OAAO,CAAC,OAAO,CAAC;;;;;CAEhC,CAAA;AAID,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBvH;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;IACnF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;;;;;;;4BAgD2B,MAAM,QAAQ,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;+BAC/C,MAAM;mBAClB,OAAO,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC;GAG7E;AAED,mFAAmF;AACnF,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAYnG"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { formatSessionRef } from '../agent/refs.js';
|
|
2
|
+
import { reserveMount, reserveNewSession } from '../sessionMounts.js';
|
|
3
|
+
import { resumeTargetFromArgv } from '../sessionHistory.js';
|
|
4
|
+
import { mountFailureText } from '../sessions/resumeFailure.js';
|
|
5
|
+
import { logForDebugging } from '../utils/debug.js';
|
|
6
|
+
// Static on purpose: the install module imports no vendor package (node
|
|
7
|
+
// built-ins + update.ts, which this adapter loads anyway), so a DSH-only
|
|
8
|
+
// boot pays nothing for having the wizard's surface at hand.
|
|
9
|
+
import { checkPnpmAvailable, CLAUDE_SDK_SPECIFIER, resolveSdkInstallTarget, startClaudeSdkInstall } from '../backends/claude/install.js';
|
|
10
|
+
import { VALIDATED_SDK_VERSION } from '../backends/claude/contract.js';
|
|
11
|
+
import { fileChannelTokens } from '../backends/shared/channel-tokens.js';
|
|
12
|
+
let closeCodexHubs;
|
|
13
|
+
/** Close an already-loaded backend's pooled processes without loading it on DSH. */
|
|
14
|
+
export async function closeBackendResources() {
|
|
15
|
+
await closeCodexHubs?.();
|
|
16
|
+
}
|
|
17
|
+
export const BACKEND_LOADERS = {
|
|
18
|
+
claude: () => import('../backends/claude/index.js').then(m => m.claudeBackend),
|
|
19
|
+
codex: () => import('../backends/codex/index.js').then(m => {
|
|
20
|
+
closeCodexHubs = m.closeAllCodexHubs;
|
|
21
|
+
return m.codexBackend;
|
|
22
|
+
}),
|
|
23
|
+
};
|
|
24
|
+
/** The kernel picker's one-click SDK install surface (Chat consumes it as
|
|
25
|
+
* props; the types are the neutral ones from agent/backend.js). */
|
|
26
|
+
export const sdkInstall = {
|
|
27
|
+
resolveTarget: () => resolveSdkInstallTarget(),
|
|
28
|
+
start: (dir) => startClaudeSdkInstall(dir),
|
|
29
|
+
checkPnpm: () => checkPnpmAvailable(),
|
|
30
|
+
pinned: { specifier: CLAUDE_SDK_SPECIFIER, version: VALIDATED_SDK_VERSION },
|
|
31
|
+
};
|
|
32
|
+
const credentialSources = new Map();
|
|
33
|
+
/** All probes and sessions share one credential source per provider. */
|
|
34
|
+
export async function createBackendHost(ctx, cwd, stderr) {
|
|
35
|
+
const { createOAuthCredentialSource } = await import('./oauth-credential-source.js');
|
|
36
|
+
return {
|
|
37
|
+
cwd,
|
|
38
|
+
debug: message => logForDebugging(message),
|
|
39
|
+
warn: message => ctx.logger.warn(message),
|
|
40
|
+
stderr,
|
|
41
|
+
tokenStore: fileChannelTokens(undefined, message => logForDebugging(message)),
|
|
42
|
+
oauthCredential: provider => {
|
|
43
|
+
let source = credentialSources.get(provider);
|
|
44
|
+
if (source === undefined) {
|
|
45
|
+
source = createOAuthCredentialSource(provider);
|
|
46
|
+
credentialSources.set(provider, source);
|
|
47
|
+
}
|
|
48
|
+
return source;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Resume failures abort boot; history is read before the channel's first paint. */
|
|
53
|
+
export async function openBackendStartup(ctx, backend, input) {
|
|
54
|
+
const launch = backend.launch;
|
|
55
|
+
if (launch === undefined)
|
|
56
|
+
throw new Error(`dsh-tui: backend "${backend.id}" does not support startup`);
|
|
57
|
+
const host = await createBackendHost(ctx, input.cwd, input.stderr);
|
|
58
|
+
const prefs = launch.sessionPrefs(host.debug);
|
|
59
|
+
const requested = (input.configuredSessionId ?? resumeTargetFromArgv(input.argv, () => prefs.lastSession()))?.trim();
|
|
60
|
+
const resumeId = requested === undefined || requested === ''
|
|
61
|
+
? undefined
|
|
62
|
+
: requested.startsWith(`${backend.id}:`) ? requested.slice(backend.id.length + 1) : requested;
|
|
63
|
+
let session;
|
|
64
|
+
let initialHistory = [];
|
|
65
|
+
if (resumeId !== undefined) {
|
|
66
|
+
const key = formatSessionRef({ backendId: backend.id, sessionId: resumeId });
|
|
67
|
+
const reserved = await reserveMount(key);
|
|
68
|
+
if (!reserved.ok) {
|
|
69
|
+
throw new Error(`dsh-tui: cannot resume ${backend.descriptor.label} session "${resumeId}": ${mountFailureText(reserved)} — ` +
|
|
70
|
+
'two processes driving one session would interleave its transcript. Close that terminal, or drop --resume to start a fresh session.');
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
session = await backend.open({ kind: 'resume', sessionId: resumeId }, host);
|
|
74
|
+
try {
|
|
75
|
+
initialHistory = await session.history();
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
await session.dispose().catch(() => undefined);
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
reserved.reservation.abandon();
|
|
84
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
85
|
+
throw new Error(`dsh-tui: cannot resume ${backend.descriptor.label} session "${resumeId}": ${reason} — no fresh session was started instead. ` +
|
|
86
|
+
'Drop --resume to start a fresh session.', { cause: error });
|
|
87
|
+
}
|
|
88
|
+
reserved.reservation.settle();
|
|
89
|
+
prefs.setLastSession(resumeId);
|
|
90
|
+
prefs.touch(resumeId);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
session = await backend.open({ kind: 'create', cwd: input.cwd }, host);
|
|
94
|
+
const { reservation } = await reserveNewSession(formatSessionRef(session.ref));
|
|
95
|
+
reservation.settle();
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
session,
|
|
99
|
+
label: backend.descriptor.label,
|
|
100
|
+
backendId: backend.id,
|
|
101
|
+
initialHistory,
|
|
102
|
+
catalog: backend.catalog,
|
|
103
|
+
sessionPrefs: prefs,
|
|
104
|
+
// A submitted user row means the backend has persisted a resumable transcript.
|
|
105
|
+
persisted: (_sessionId, rows) => rows.some(row => row.kind === 'user'),
|
|
106
|
+
resumeCommand: (sessionId) => launch.resumeCommand(sessionId),
|
|
107
|
+
open: (target) => backend.open(target, target.kind === 'create' ? { ...host, cwd: target.cwd } : host),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Probe optional backends lazily; failed loading leaves their row unavailable. */
|
|
111
|
+
export async function probeKernels(ctx, cwd) {
|
|
112
|
+
const host = await createBackendHost(ctx, cwd, () => undefined);
|
|
113
|
+
const statuses = {};
|
|
114
|
+
for (const [id, load] of Object.entries(BACKEND_LOADERS)) {
|
|
115
|
+
try {
|
|
116
|
+
statuses[id] = await (await load()).detect(host);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
host.debug('dsh-tui: kernel probe failed (' + (error instanceof Error ? error.message : String(error)) + ')');
|
|
120
|
+
statuses[id] = { installed: false };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return statuses;
|
|
124
|
+
}
|
|
@@ -16,5 +16,21 @@ export declare function createChannelActionReadiness(): {
|
|
|
16
16
|
install(next: ChannelActionDelegates): void;
|
|
17
17
|
getReadyActions(): ChannelActionDelegates;
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* The explicit-unavailable half of a non-DSH composition: one delegate per
|
|
21
|
+
* public action, each failing per its own contract (`false`, `null`,
|
|
22
|
+
* `undefined`, an empty list or an `{ ok: false }` result) and, for an
|
|
23
|
+
* action the user invoked, saying so through `unavailable(name)` (which
|
|
24
|
+
* notifies `capability-unavailable-backend`). Nothing here pretends to succeed.
|
|
25
|
+
*
|
|
26
|
+
* Passive reads the renderer performs on its own (agent-view rows and their
|
|
27
|
+
* subscription, the cached session list, workspace sub-commands, cache
|
|
28
|
+
* invalidation, approval-store wiring) answer with their empty value
|
|
29
|
+
* silently: they are not user actions, and a toast per render would be
|
|
30
|
+
* noise. The composition overrides the generic actions (submit path, clear,
|
|
31
|
+
* local rows, file queries, completions, `/new`, `/doctor`) and every action
|
|
32
|
+
* whose capability the session does have.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createUnavailableActionDelegates(unavailable: (name: string) => void, unavailableLines: (name: string) => string[]): ChannelActionDelegates;
|
|
19
35
|
export {};
|
|
20
36
|
//# sourceMappingURL=action-readiness.d.ts.map
|