@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -5
- package/assets/claude-girl/claude-girl-happy.png +0 -0
- package/assets/claude-girl/claude-girl.png +0 -0
- package/assets/codex-girl/codex-girl-happy.png +0 -0
- package/assets/codex-girl/codex-girl.png +0 -0
- package/bin/dsh-tui.js +104 -18
- package/cordis.patch.yml +2 -0
- package/cordis.yml +2 -0
- package/guide/dsh-tui-guide/SKILL.md +4 -2
- package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
- package/guide/dsh-tui-guide/claude-backend.md +161 -0
- package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
- package/guide/dsh-tui-guide/codex-backend.md +257 -0
- package/guide/dsh-tui-guide/configuration.en.md +9 -2
- package/guide/dsh-tui-guide/configuration.md +9 -2
- package/guide/dsh-tui-guide/interaction.en.md +169 -27
- package/guide/dsh-tui-guide/interaction.md +115 -17
- package/guide/dsh-tui-guide/themes.en.md +24 -2
- package/guide/dsh-tui-guide/themes.md +21 -2
- package/guide/dsh-tui-guide/user-guide.en.md +38 -23
- package/guide/dsh-tui-guide/user-guide.md +22 -11
- package/guide/dsh-tui-guide/vscode.en.md +1 -0
- package/guide/dsh-tui-guide/vscode.md +1 -0
- package/lib/settings.json +139 -6
- package/lib/types/adapter/channel/state.d.ts.map +1 -1
- package/lib/types/adapter/channel/state.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +29 -0
- package/lib/types/adapter/channel/ui.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui.js +45 -5
- package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-display.d.ts +7 -1
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +5 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +477 -13
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/agent/backend.d.ts +168 -0
- package/lib/types/agent/backend.d.ts.map +1 -0
- package/lib/types/agent/backend.js +1 -0
- package/lib/types/agent/capabilities.d.ts +461 -0
- package/lib/types/agent/capabilities.d.ts.map +1 -0
- package/lib/types/agent/capabilities.js +1 -0
- package/lib/types/agent/events.d.ts +733 -0
- package/lib/types/agent/events.d.ts.map +1 -0
- package/lib/types/agent/events.js +2 -0
- package/lib/types/agent/index.d.ts +8 -0
- package/lib/types/agent/index.d.ts.map +1 -0
- package/lib/types/agent/index.js +7 -0
- package/lib/types/agent/messages.d.ts +52 -0
- package/lib/types/agent/messages.d.ts.map +1 -0
- package/lib/types/agent/messages.js +91 -0
- package/lib/types/agent/presentation.d.ts +29 -0
- package/lib/types/agent/presentation.d.ts.map +1 -0
- package/lib/types/agent/presentation.js +4 -0
- package/lib/types/agent/refs.d.ts +30 -0
- package/lib/types/agent/refs.d.ts.map +1 -0
- package/lib/types/agent/refs.js +39 -0
- package/lib/types/agent/session.d.ts +78 -0
- package/lib/types/agent/session.d.ts.map +1 -0
- package/lib/types/agent/session.js +1 -0
- package/lib/types/backends/claude/activity.d.ts +53 -0
- package/lib/types/backends/claude/activity.d.ts.map +1 -0
- package/lib/types/backends/claude/activity.js +103 -0
- package/lib/types/backends/claude/auth.d.ts +245 -0
- package/lib/types/backends/claude/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/auth.js +503 -0
- package/lib/types/backends/claude/backend.d.ts +32 -0
- package/lib/types/backends/claude/backend.d.ts.map +1 -0
- package/lib/types/backends/claude/backend.js +296 -0
- package/lib/types/backends/claude/catalog.d.ts +17 -0
- package/lib/types/backends/claude/catalog.d.ts.map +1 -0
- package/lib/types/backends/claude/catalog.js +94 -0
- package/lib/types/backends/claude/channels.d.ts +63 -0
- package/lib/types/backends/claude/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/channels.js +275 -0
- package/lib/types/backends/claude/contract.d.ts +37 -0
- package/lib/types/backends/claude/contract.d.ts.map +1 -0
- package/lib/types/backends/claude/contract.js +46 -0
- package/lib/types/backends/claude/controls.d.ts +134 -0
- package/lib/types/backends/claude/controls.d.ts.map +1 -0
- package/lib/types/backends/claude/controls.js +425 -0
- package/lib/types/backends/claude/dialogs.d.ts +62 -0
- package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
- package/lib/types/backends/claude/dialogs.js +253 -0
- package/lib/types/backends/claude/flag-settings.d.ts +12 -0
- package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
- package/lib/types/backends/claude/flag-settings.js +49 -0
- package/lib/types/backends/claude/images.d.ts +49 -0
- package/lib/types/backends/claude/images.d.ts.map +1 -0
- package/lib/types/backends/claude/images.js +94 -0
- package/lib/types/backends/claude/index.d.ts +5 -0
- package/lib/types/backends/claude/index.d.ts.map +1 -0
- package/lib/types/backends/claude/index.js +4 -0
- package/lib/types/backends/claude/install.d.ts +15 -0
- package/lib/types/backends/claude/install.d.ts.map +1 -0
- package/lib/types/backends/claude/install.js +91 -0
- package/lib/types/backends/claude/modelEnv.d.ts +64 -0
- package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
- package/lib/types/backends/claude/modelEnv.js +199 -0
- package/lib/types/backends/claude/narrow.d.ts +10 -0
- package/lib/types/backends/claude/narrow.d.ts.map +1 -0
- package/lib/types/backends/claude/narrow.js +8 -0
- package/lib/types/backends/claude/older-history.d.ts +16 -0
- package/lib/types/backends/claude/older-history.d.ts.map +1 -0
- package/lib/types/backends/claude/older-history.js +101 -0
- package/lib/types/backends/claude/options.d.ts +181 -0
- package/lib/types/backends/claude/options.d.ts.map +1 -0
- package/lib/types/backends/claude/options.js +208 -0
- package/lib/types/backends/claude/permissions.d.ts +83 -0
- package/lib/types/backends/claude/permissions.d.ts.map +1 -0
- package/lib/types/backends/claude/permissions.js +331 -0
- package/lib/types/backends/claude/prefs.d.ts +55 -0
- package/lib/types/backends/claude/prefs.d.ts.map +1 -0
- package/lib/types/backends/claude/prefs.js +150 -0
- package/lib/types/backends/claude/process.d.ts +19 -0
- package/lib/types/backends/claude/process.d.ts.map +1 -0
- package/lib/types/backends/claude/process.js +156 -0
- package/lib/types/backends/claude/replay.d.ts +129 -0
- package/lib/types/backends/claude/replay.d.ts.map +1 -0
- package/lib/types/backends/claude/replay.js +505 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
- package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk-warnings.js +55 -0
- package/lib/types/backends/claude/sdk.d.ts +12 -0
- package/lib/types/backends/claude/sdk.d.ts.map +1 -0
- package/lib/types/backends/claude/sdk.js +34 -0
- package/lib/types/backends/claude/send-message.d.ts +54 -0
- package/lib/types/backends/claude/send-message.d.ts.map +1 -0
- package/lib/types/backends/claude/send-message.js +65 -0
- package/lib/types/backends/claude/session/auth.d.ts +47 -0
- package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
- package/lib/types/backends/claude/session/auth.js +226 -0
- package/lib/types/backends/claude/session/channels.d.ts +82 -0
- package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
- package/lib/types/backends/claude/session/channels.js +45 -0
- package/lib/types/backends/claude/session/input.d.ts +16 -0
- package/lib/types/backends/claude/session/input.d.ts.map +1 -0
- package/lib/types/backends/claude/session/input.js +64 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
- package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
- package/lib/types/backends/claude/session/lifecycle.js +852 -0
- package/lib/types/backends/claude/session/store.d.ts +17 -0
- package/lib/types/backends/claude/session/store.d.ts.map +1 -0
- package/lib/types/backends/claude/session/store.js +122 -0
- package/lib/types/backends/claude/session/subagents.d.ts +13 -0
- package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/claude/session/subagents.js +77 -0
- package/lib/types/backends/claude/session/types.d.ts +89 -0
- package/lib/types/backends/claude/session/types.d.ts.map +1 -0
- package/lib/types/backends/claude/session/types.js +1 -0
- package/lib/types/backends/claude/session.d.ts +4 -0
- package/lib/types/backends/claude/session.d.ts.map +1 -0
- package/lib/types/backends/claude/session.js +2 -0
- package/lib/types/backends/claude/side-query.d.ts +34 -0
- package/lib/types/backends/claude/side-query.d.ts.map +1 -0
- package/lib/types/backends/claude/side-query.js +116 -0
- package/lib/types/backends/claude/task-output.d.ts +13 -0
- package/lib/types/backends/claude/task-output.d.ts.map +1 -0
- package/lib/types/backends/claude/task-output.js +101 -0
- package/lib/types/backends/claude/tools.d.ts +45 -0
- package/lib/types/backends/claude/tools.d.ts.map +1 -0
- package/lib/types/backends/claude/tools.js +231 -0
- package/lib/types/backends/claude/transcript-file.d.ts +41 -0
- package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
- package/lib/types/backends/claude/transcript-file.js +195 -0
- package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
- package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/attempts.js +243 -0
- package/lib/types/backends/claude/translate/content.d.ts +33 -0
- package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/content.js +91 -0
- package/lib/types/backends/claude/translate/core.d.ts +76 -0
- package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/core.js +447 -0
- package/lib/types/backends/claude/translate/events.d.ts +9 -0
- package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/events.js +77 -0
- package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
- package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/lanes.js +177 -0
- package/lib/types/backends/claude/translate/messages.d.ts +36 -0
- package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/messages.js +202 -0
- package/lib/types/backends/claude/translate/system.d.ts +40 -0
- package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/system.js +399 -0
- package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
- package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/tasks.js +159 -0
- package/lib/types/backends/claude/translate/types.d.ts +114 -0
- package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
- package/lib/types/backends/claude/translate/types.js +1 -0
- package/lib/types/backends/claude/translate.d.ts +9 -0
- package/lib/types/backends/claude/translate.d.ts.map +1 -0
- package/lib/types/backends/claude/translate.js +6 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
- package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/external-tokens.js +325 -0
- package/lib/types/backends/codex/auth/route.d.ts +14 -0
- package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/route.js +52 -0
- package/lib/types/backends/codex/auth/status.d.ts +16 -0
- package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
- package/lib/types/backends/codex/auth/status.js +115 -0
- package/lib/types/backends/codex/backend.d.ts +58 -0
- package/lib/types/backends/codex/backend.d.ts.map +1 -0
- package/lib/types/backends/codex/backend.js +201 -0
- package/lib/types/backends/codex/catalog.d.ts +17 -0
- package/lib/types/backends/codex/catalog.d.ts.map +1 -0
- package/lib/types/backends/codex/catalog.js +128 -0
- package/lib/types/backends/codex/channels.d.ts +59 -0
- package/lib/types/backends/codex/channels.d.ts.map +1 -0
- package/lib/types/backends/codex/channels.js +274 -0
- package/lib/types/backends/codex/contract.d.ts +46 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -0
- package/lib/types/backends/codex/contract.js +80 -0
- package/lib/types/backends/codex/detect.d.ts +14 -0
- package/lib/types/backends/codex/detect.d.ts.map +1 -0
- package/lib/types/backends/codex/detect.js +90 -0
- package/lib/types/backends/codex/index.d.ts +6 -0
- package/lib/types/backends/codex/index.d.ts.map +1 -0
- package/lib/types/backends/codex/index.js +5 -0
- package/lib/types/backends/codex/modes.d.ts +16 -0
- package/lib/types/backends/codex/modes.d.ts.map +1 -0
- package/lib/types/backends/codex/modes.js +49 -0
- package/lib/types/backends/codex/narrow.d.ts +20 -0
- package/lib/types/backends/codex/narrow.d.ts.map +1 -0
- package/lib/types/backends/codex/narrow.js +18 -0
- package/lib/types/backends/codex/prefs.d.ts +42 -0
- package/lib/types/backends/codex/prefs.d.ts.map +1 -0
- package/lib/types/backends/codex/prefs.js +124 -0
- package/lib/types/backends/codex/protocol/index.d.ts +149 -0
- package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
- package/lib/types/backends/codex/protocol/index.js +130 -0
- package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
- package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/binary.js +174 -0
- package/lib/types/backends/codex/rpc/client.d.ts +72 -0
- package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/client.js +214 -0
- package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
- package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/hub.js +532 -0
- package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
- package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
- package/lib/types/backends/codex/rpc/transport.js +212 -0
- package/lib/types/backends/codex/session/activity.d.ts +18 -0
- package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
- package/lib/types/backends/codex/session/activity.js +108 -0
- package/lib/types/backends/codex/session/approvals.d.ts +39 -0
- package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/approvals.js +477 -0
- package/lib/types/backends/codex/session/commands.d.ts +37 -0
- package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/session/commands.js +141 -0
- package/lib/types/backends/codex/session/controls.d.ts +37 -0
- package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
- package/lib/types/backends/codex/session/controls.js +303 -0
- package/lib/types/backends/codex/session/goals.d.ts +25 -0
- package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
- package/lib/types/backends/codex/session/goals.js +97 -0
- package/lib/types/backends/codex/session/history.d.ts +52 -0
- package/lib/types/backends/codex/session/history.d.ts.map +1 -0
- package/lib/types/backends/codex/session/history.js +196 -0
- package/lib/types/backends/codex/session/images.d.ts +17 -0
- package/lib/types/backends/codex/session/images.d.ts.map +1 -0
- package/lib/types/backends/codex/session/images.js +138 -0
- package/lib/types/backends/codex/session/input.d.ts +75 -0
- package/lib/types/backends/codex/session/input.d.ts.map +1 -0
- package/lib/types/backends/codex/session/input.js +294 -0
- package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
- package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
- package/lib/types/backends/codex/session/plan-review.js +48 -0
- package/lib/types/backends/codex/session/prompts.d.ts +7 -0
- package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
- package/lib/types/backends/codex/session/prompts.js +47 -0
- package/lib/types/backends/codex/session/session.d.ts +12 -0
- package/lib/types/backends/codex/session/session.d.ts.map +1 -0
- package/lib/types/backends/codex/session/session.js +871 -0
- package/lib/types/backends/codex/session/side-query.d.ts +25 -0
- package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
- package/lib/types/backends/codex/session/side-query.js +121 -0
- package/lib/types/backends/codex/session/state.d.ts +57 -0
- package/lib/types/backends/codex/session/state.d.ts.map +1 -0
- package/lib/types/backends/codex/session/state.js +1 -0
- package/lib/types/backends/codex/session/subagents.d.ts +28 -0
- package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
- package/lib/types/backends/codex/session/subagents.js +286 -0
- package/lib/types/backends/codex/session/tasks.d.ts +25 -0
- package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tasks.js +207 -0
- package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
- package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
- package/lib/types/backends/codex/session/tool-output.js +29 -0
- package/lib/types/backends/codex/translate/commands.d.ts +30 -0
- package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/commands.js +103 -0
- package/lib/types/backends/codex/translate/events.d.ts +9 -0
- package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/events.js +71 -0
- package/lib/types/backends/codex/translate/items.d.ts +112 -0
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/items.js +375 -0
- package/lib/types/backends/codex/translate/live.d.ts +39 -0
- package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/live.js +315 -0
- package/lib/types/backends/codex/translate/notices.d.ts +27 -0
- package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/notices.js +99 -0
- package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
- package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/presentation.js +237 -0
- package/lib/types/backends/codex/translate/replay.d.ts +18 -0
- package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/replay.js +33 -0
- package/lib/types/backends/codex/translate/usage.d.ts +29 -0
- package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/usage.js +65 -0
- package/lib/types/backends/shared/atomic-file.d.ts +4 -0
- package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
- package/lib/types/backends/shared/atomic-file.js +52 -0
- package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
- package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
- package/lib/types/backends/shared/channel-tokens.js +161 -0
- package/lib/types/backends/shared/display-path.d.ts +3 -0
- package/lib/types/backends/shared/display-path.d.ts.map +1 -0
- package/lib/types/backends/shared/display-path.js +12 -0
- package/lib/types/branding.d.ts +92 -0
- package/lib/types/branding.d.ts.map +1 -0
- package/lib/types/branding.js +117 -0
- package/lib/types/channel/activity.d.ts +53 -0
- package/lib/types/channel/activity.d.ts.map +1 -0
- package/lib/types/channel/activity.js +955 -0
- package/lib/types/channel/capabilities.d.ts +24 -0
- package/lib/types/channel/capabilities.d.ts.map +1 -0
- package/lib/types/channel/capabilities.js +57 -0
- package/lib/types/channel/channel-slug.d.ts +9 -0
- package/lib/types/channel/channel-slug.d.ts.map +1 -0
- package/lib/types/channel/channel-slug.js +15 -0
- package/lib/types/channel/channel-wizard.d.ts +30 -0
- package/lib/types/channel/channel-wizard.d.ts.map +1 -0
- package/lib/types/channel/channel-wizard.js +226 -0
- package/lib/types/channel/elicitation.d.ts +135 -0
- package/lib/types/channel/elicitation.d.ts.map +1 -0
- package/lib/types/channel/elicitation.js +360 -0
- package/lib/types/channel/goal-command.d.ts +49 -0
- package/lib/types/channel/goal-command.d.ts.map +1 -0
- package/lib/types/channel/goal-command.js +72 -0
- package/lib/types/channel/history-restore.d.ts +16 -0
- package/lib/types/channel/history-restore.d.ts.map +1 -0
- package/lib/types/channel/history-restore.js +214 -0
- package/lib/types/channel/interaction.d.ts +38 -0
- package/lib/types/channel/interaction.d.ts.map +1 -0
- package/lib/types/channel/interaction.js +110 -0
- package/lib/types/channel/job-format.d.ts +6 -0
- package/lib/types/channel/job-format.d.ts.map +1 -0
- package/lib/types/channel/job-format.js +12 -0
- package/lib/types/channel/live-output.d.ts +35 -0
- package/lib/types/channel/live-output.d.ts.map +1 -0
- package/lib/types/channel/live-output.js +74 -0
- package/lib/types/channel/model-capabilities.d.ts +10 -0
- package/lib/types/channel/model-capabilities.d.ts.map +1 -0
- package/lib/types/channel/model-capabilities.js +51 -0
- package/lib/types/channel/permissions.d.ts +155 -0
- package/lib/types/channel/permissions.d.ts.map +1 -0
- package/lib/types/channel/permissions.js +188 -0
- package/lib/types/channel/projection.d.ts +110 -0
- package/lib/types/channel/projection.d.ts.map +1 -0
- package/lib/types/channel/projection.js +1521 -0
- package/lib/types/channel/question-record.d.ts +76 -0
- package/lib/types/channel/question-record.d.ts.map +1 -0
- package/lib/types/channel/question-record.js +109 -0
- package/lib/types/channel/questions.d.ts +204 -0
- package/lib/types/channel/questions.d.ts.map +1 -0
- package/lib/types/channel/questions.js +286 -0
- package/lib/types/channel/sanitize.d.ts +49 -0
- package/lib/types/channel/sanitize.d.ts.map +1 -0
- package/lib/types/channel/sanitize.js +88 -0
- package/lib/types/channel/selection-record.d.ts +18 -0
- package/lib/types/channel/selection-record.d.ts.map +1 -0
- package/lib/types/channel/selection-record.js +45 -0
- package/lib/types/channel/side-prompts.d.ts +59 -0
- package/lib/types/channel/side-prompts.d.ts.map +1 -0
- package/lib/types/channel/side-prompts.js +127 -0
- package/lib/types/channel/transcript.d.ts +17 -0
- package/lib/types/channel/transcript.d.ts.map +1 -0
- package/lib/types/channel/transcript.js +19 -0
- package/lib/types/channel/usage.d.ts +48 -0
- package/lib/types/channel/usage.d.ts.map +1 -0
- package/lib/types/channel/usage.js +143 -0
- package/lib/types/commands.d.ts +147 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +196 -2
- package/lib/types/components/AgentMessageComposer.d.ts +50 -0
- package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
- package/lib/types/components/AgentMessageComposer.js +159 -0
- package/lib/types/components/BtwPanel.d.ts +13 -12
- package/lib/types/components/BtwPanel.d.ts.map +1 -1
- package/lib/types/components/BtwPanel.js +35 -24
- package/lib/types/components/ChannelPicker.d.ts +40 -0
- package/lib/types/components/ChannelPicker.d.ts.map +1 -0
- package/lib/types/components/ChannelPicker.js +26 -0
- package/lib/types/components/Chat/JobCard.d.ts +29 -31
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +31 -112
- package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
- package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
- package/lib/types/components/Chat/SubagentMessage.js +10 -3
- package/lib/types/components/ClaudeGirl.d.ts +27 -0
- package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
- package/lib/types/components/ClaudeGirl.js +30 -0
- package/lib/types/components/CodeBlockFrame.d.ts +19 -0
- package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
- package/lib/types/components/CodeBlockFrame.js +138 -0
- package/lib/types/components/CommandSuggestions.d.ts +10 -1
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +20 -3
- package/lib/types/components/ContextBarView.d.ts +2 -2
- package/lib/types/components/ContextBarView.d.ts.map +1 -1
- package/lib/types/components/ContextBarView.js +18 -8
- package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
- package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
- package/lib/types/components/EffortChargeGlyph.js +3 -4
- package/lib/types/components/EffortInputBorder.d.ts +1 -2
- package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
- package/lib/types/components/EffortInputBorder.js +7 -4
- package/lib/types/components/EffortSlider.d.ts +5 -1
- package/lib/types/components/EffortSlider.d.ts.map +1 -1
- package/lib/types/components/EffortSlider.js +2 -2
- package/lib/types/components/EffortTierBadge.d.ts +1 -2
- package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
- package/lib/types/components/EffortTierBadge.js +8 -5
- package/lib/types/components/GoalTodoPanel.d.ts +2 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/GoalTodoPanel.js +11 -5
- package/lib/types/components/InlineMathParagraph.js +1 -1
- package/lib/types/components/JobsPanel.d.ts +8 -9
- package/lib/types/components/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +72 -13
- package/lib/types/components/KernelPicker.d.ts +28 -0
- package/lib/types/components/KernelPicker.d.ts.map +1 -0
- package/lib/types/components/KernelPicker.js +37 -0
- package/lib/types/components/LogoV2.d.ts +7 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +120 -24
- package/lib/types/components/Markdown.d.ts +2 -1
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +37 -8
- package/lib/types/components/MathBlock.d.ts.map +1 -1
- package/lib/types/components/MathBlock.js +3 -1
- package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
- package/lib/types/components/MermaidDiagram.js +7 -5
- package/lib/types/components/MessageList.d.ts +21 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +62 -42
- package/lib/types/components/ModePicker.d.ts +20 -0
- package/lib/types/components/ModePicker.d.ts.map +1 -0
- package/lib/types/components/ModePicker.js +17 -0
- package/lib/types/components/PromptInput.d.ts +2 -2
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +308 -55
- package/lib/types/components/SdkInstallWizard.d.ts +44 -0
- package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
- package/lib/types/components/SdkInstallWizard.js +18 -0
- package/lib/types/components/SearchBox.d.ts +7 -8
- package/lib/types/components/SearchBox.d.ts.map +1 -1
- package/lib/types/components/SearchBox.js +18 -9
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +113 -6
- package/lib/types/components/StarPrompt.d.ts.map +1 -1
- package/lib/types/components/StarPrompt.js +5 -3
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +6 -4
- package/lib/types/components/SubagentCard.d.ts +2 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +25 -18
- package/lib/types/components/SubagentDashboard.d.ts +10 -6
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +32 -21
- package/lib/types/components/SubagentDetailScene.d.ts +16 -1
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +196 -45
- package/lib/types/components/SyntaxText.d.ts.map +1 -1
- package/lib/types/components/SyntaxText.js +4 -1
- package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
- package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
- package/lib/types/components/TurnInterruptedRow.js +6 -3
- package/lib/types/components/TurnUsageRow.d.ts +24 -0
- package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
- package/lib/types/components/TurnUsageRow.js +46 -0
- package/lib/types/components/WorkingSpinner.d.ts +2 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +21 -4
- package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +173 -25
- package/lib/types/components/claudeGirlSprite.d.ts +18 -0
- package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
- package/lib/types/components/claudeGirlSprite.js +48 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +46 -13
- package/lib/types/components/design-system/ThemedText.d.ts +3 -1
- package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/diffPatch.d.ts +55 -0
- package/lib/types/components/diffPatch.d.ts.map +1 -0
- package/lib/types/components/diffPatch.js +142 -0
- package/lib/types/components/kernelCatalog.d.ts +48 -0
- package/lib/types/components/kernelCatalog.d.ts.map +1 -0
- package/lib/types/components/kernelCatalog.js +53 -0
- package/lib/types/components/launchpadActions.d.ts +13 -6
- package/lib/types/components/launchpadActions.d.ts.map +1 -1
- package/lib/types/components/launchpadActions.js +26 -4
- package/lib/types/components/launchpadParams.d.ts +101 -0
- package/lib/types/components/launchpadParams.d.ts.map +1 -0
- package/lib/types/components/launchpadParams.js +171 -0
- package/lib/types/components/maidPortrait.d.ts +37 -5
- package/lib/types/components/maidPortrait.d.ts.map +1 -1
- package/lib/types/components/maidPortrait.js +73 -54
- package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
- package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
- package/lib/types/components/messages/AgentMessageFlow.js +37 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
- package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
- package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
- package/lib/types/components/messages/TranscriptLeaves.js +74 -0
- package/lib/types/components/messages/agentTeam.d.ts +69 -0
- package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
- package/lib/types/components/messages/agentTeam.js +53 -0
- package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
- package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
- package/lib/types/components/messages/liveOutputLines.js +100 -0
- package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
- package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
- package/lib/types/components/messages/subagentTranscript.js +304 -0
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
- package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +11 -6
- package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
- package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
- package/lib/types/components/questions/ProviderModelEditor.js +266 -0
- package/lib/types/components/shimmer.d.ts +26 -0
- package/lib/types/components/shimmer.d.ts.map +1 -1
- package/lib/types/components/shimmer.js +26 -0
- package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/InfoPanel.js +13 -8
- package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
- package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelBar.js +55 -77
- package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +8 -4
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
- package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
- package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
- package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
- package/lib/types/components/sidePanel/agentViewStore.js +26 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
- package/lib/types/components/sidePanel/btw/threads.js +302 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +70 -30
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
- package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
- package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
- package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/mood.js +44 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +203 -29
- package/lib/types/components/splashFonts.d.ts +17 -9
- package/lib/types/components/splashFonts.d.ts.map +1 -1
- package/lib/types/components/splashFonts.js +119 -15
- package/lib/types/components/splashLayout.d.ts.map +1 -1
- package/lib/types/components/splashLayout.js +3 -1
- package/lib/types/components/subagentDetailMemory.d.ts +17 -0
- package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
- package/lib/types/components/subagentDetailMemory.js +28 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
- package/lib/types/components/trajectory/Inspector.js +9 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
- package/lib/types/components/trajectory/Ledger.js +7 -1
- package/lib/types/components/trajectory/scope.d.ts +64 -0
- package/lib/types/components/trajectory/scope.d.ts.map +1 -0
- package/lib/types/components/trajectory/scope.js +88 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
- package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
- package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
- package/lib/types/customTheme.d.ts +4 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +6 -8
- package/lib/types/dsh-adapter/approvals.d.ts +18 -5
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +17 -4
- package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
- package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/session.js +291 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend/translate.js +467 -0
- package/lib/types/dsh-adapter/backends.d.ts +49 -0
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backends.js +124 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +7 -5
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
- package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
- package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding.js +102 -35
- package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +3 -2
- package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
- package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
- package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
- package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/files.js +45 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
- package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/host.js +116 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
- package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
- package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
- package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
- package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
- package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/decisions.js +4 -4
- package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
- package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/emitter.js +5 -3
- package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/extensions.js +714 -0
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
- package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
- package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
- package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
- package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
- package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
- package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
- package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/preferences.js +16 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +38 -1143
- package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/question-record.js +3 -107
- package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
- package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
- package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
- package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +7 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +17 -21
- package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
- package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/usage.js +5 -111
- package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
- package/lib/types/dsh-adapter/channel.d.ts +17 -8
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +24 -1059
- package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
- package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
- package/lib/types/dsh-adapter/context-occupancy.js +6 -1
- package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
- package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/decision-guard.js +44 -0
- package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
- package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/extension-events.js +22 -10
- package/lib/types/dsh-adapter/index.d.ts +41 -3
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +28 -1
- package/lib/types/dsh-adapter/jobs.d.ts +5 -3
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +53 -14
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
- package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
- package/lib/types/dsh-adapter/plugin.d.ts +38 -2
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +546 -110
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
- package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +118 -52
- package/lib/types/dsh-adapter/questions.d.ts +29 -124
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +33 -267
- package/lib/types/dsh-adapter/recap.d.ts +3 -15
- package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
- package/lib/types/dsh-adapter/recap.js +3 -46
- package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
- package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sanitize.js +4 -84
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
- package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
- package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +60 -27
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +6 -4
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
- package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +1 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
- package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +3 -13
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +7 -0
- package/lib/types/dsh-adapter/themes.d.ts +1 -1
- package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/index.js +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
- package/lib/types/effortPrefs.d.ts +7 -0
- package/lib/types/effortPrefs.d.ts.map +1 -1
- package/lib/types/effortPrefs.js +11 -2
- package/lib/types/handoffAck.d.ts +57 -0
- package/lib/types/handoffAck.d.ts.map +1 -0
- package/lib/types/handoffAck.js +154 -0
- package/lib/types/handoffEvents.d.ts +52 -0
- package/lib/types/handoffEvents.d.ts.map +1 -0
- package/lib/types/handoffEvents.js +128 -0
- package/lib/types/i18n.d.ts +3189 -68
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +855 -9
- package/lib/types/ink/colorize.d.ts.map +1 -1
- package/lib/types/ink/colorize.js +8 -2
- package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
- package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
- package/lib/types/ink/components/AlternateScreen.js +25 -4
- package/lib/types/ink/components/App.d.ts +5 -1
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +52 -5
- package/lib/types/ink/components/Image.d.ts +8 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/components/Text.d.ts +8 -1
- package/lib/types/ink/components/Text.d.ts.map +1 -1
- package/lib/types/ink/components/Text.js +11 -1
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +75 -3
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +9 -4
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +8 -2
- package/lib/types/ink/kitty-graphics.d.ts +7 -2
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +15 -7
- package/lib/types/ink/node-cache.d.ts +15 -1
- package/lib/types/ink/node-cache.d.ts.map +1 -1
- package/lib/types/ink/node-cache.js +4 -1
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +2 -0
- package/lib/types/ink/parse-keypress.d.ts +13 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +438 -19
- package/lib/types/ink/reconciler.d.ts.map +1 -1
- package/lib/types/ink/reconciler.js +9 -0
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +200 -4
- package/lib/types/ink/render-stats.d.ts +35 -0
- package/lib/types/ink/render-stats.d.ts.map +1 -0
- package/lib/types/ink/render-stats.js +53 -0
- package/lib/types/ink/sixel-codec.d.ts +11 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +10 -3
- package/lib/types/ink/sixel-graphics.js +2 -2
- package/lib/types/ink/styles.d.ts +46 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +7 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +1 -1
- package/lib/types/ink/terminal-querier.js +4 -4
- package/lib/types/ink/text-decoration.d.ts +49 -0
- package/lib/types/ink/text-decoration.d.ts.map +1 -0
- package/lib/types/ink/text-decoration.js +235 -0
- package/lib/types/ink/update-overflow-guard.d.ts +9 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +41 -0
- package/lib/types/ink/wrap-text.d.ts.map +1 -1
- package/lib/types/ink/wrap-text.js +5 -1
- package/lib/types/kernelPrefs.d.ts +51 -0
- package/lib/types/kernelPrefs.d.ts.map +1 -0
- package/lib/types/kernelPrefs.js +126 -0
- package/lib/types/modelRecents.d.ts +10 -2
- package/lib/types/modelRecents.d.ts.map +1 -1
- package/lib/types/modelRecents.js +20 -7
- package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
- package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
- package/lib/types/screens/AgentTranscriptScene.js +269 -0
- package/lib/types/screens/Chat.d.ts +45 -7
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +625 -113
- package/lib/types/screens/Launchpad.d.ts +24 -7
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +147 -28
- package/lib/types/screens/SessionSupervisor.d.ts +3 -3
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +69 -5
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +211 -7
- package/lib/types/screens/StatusLine.d.ts +40 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +131 -19
- package/lib/types/screens/StatusMetrics.d.ts +53 -17
- package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
- package/lib/types/screens/StatusMetrics.js +141 -30
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
- package/lib/types/screens/TrajectoryScene.js +74 -12
- package/lib/types/screens/chat/backendCommands.d.ts +37 -0
- package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
- package/lib/types/screens/chat/backendCommands.js +51 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
- package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
- package/lib/types/screens/chat/useBackendChannels.js +117 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
- package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
- package/lib/types/screens/chat/useKernelPicker.js +72 -0
- package/lib/types/screens/chatOverlay.d.ts +32 -2
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +9 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
- package/lib/types/sessionHistory.d.ts +18 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +46 -4
- package/lib/types/sessionPins.d.ts +7 -0
- package/lib/types/sessionPins.d.ts.map +1 -1
- package/lib/types/sessionPins.js +9 -0
- package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
- package/lib/types/sessions/resumeFailure.js +2 -1
- package/lib/types/settings/definitions.d.ts +74 -0
- package/lib/types/settings/definitions.d.ts.map +1 -1
- package/lib/types/settings/definitions.js +50 -4
- package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
- package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
- package/lib/types/terminal-utils/hyperlink.js +21 -4
- package/lib/types/terminal-utils/markdown.d.ts +34 -6
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +257 -66
- package/lib/types/theme.d.ts +49 -8
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +514 -18
- package/lib/types/tips.js +2 -2
- package/lib/types/trajectory/effortIgnition.d.ts +25 -7
- package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
- package/lib/types/trajectory/effortIgnition.js +106 -34
- package/lib/types/trajectory/window.d.ts +26 -0
- package/lib/types/trajectory/window.d.ts.map +1 -0
- package/lib/types/trajectory/window.js +27 -0
- package/lib/types/tuiDisplayPrefs.d.ts +38 -1
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +45 -1
- package/lib/types/update.d.ts +88 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +285 -18
- package/lib/types/utils/crashDetail.d.ts +56 -0
- package/lib/types/utils/crashDetail.d.ts.map +1 -0
- package/lib/types/utils/crashDetail.js +175 -0
- package/lib/types/utils/imageResize.d.ts +9 -23
- package/lib/types/utils/imageResize.d.ts.map +1 -1
- package/lib/types/utils/imageResize.js +24 -20
- package/lib/types/utils/inputPaste.d.ts +9 -8
- package/lib/types/utils/inputPaste.d.ts.map +1 -1
- package/lib/types/utils/inputPaste.js +53 -16
- package/lib/types/utils/jsonl.d.ts +24 -0
- package/lib/types/utils/jsonl.d.ts.map +1 -0
- package/lib/types/utils/jsonl.js +36 -0
- package/package.json +18 -2
|
@@ -117,6 +117,14 @@ const WIN32_CS_SHIFT = 0x10;
|
|
|
117
117
|
// modifier keys. Their pressed state rides on the NEXT real key's Cs field,
|
|
118
118
|
// so both their keydown and keyup records are dropped.
|
|
119
119
|
const WIN32_VK_MODIFIER = new Set([16, 17, 18]); // VK_SHIFT, VK_CONTROL, VK_MENU
|
|
120
|
+
// VK_PACKET: the record's payload IS the character in Uc (SendInput /
|
|
121
|
+
// keybd_event Unicode injection; Windows Terminal re-encodes a paste that way
|
|
122
|
+
// under win32-input-mode). It therefore takes the same "character rides in Uc"
|
|
123
|
+
// lane as conhost's Vk=0 synthesized records — without it, a pasted break
|
|
124
|
+
// spelled as VK_PACKET CR/LF was swallowed whole and the reassembled paste
|
|
125
|
+
// lost one newline per line boundary (#1251 UAT: a 10-line / 760-char Ctrl+V
|
|
126
|
+
// folded to `1 line・751 chars` and never submitted).
|
|
127
|
+
const WIN32_VK_PACKET = 231;
|
|
120
128
|
// Virtual-key code → key name for non-printing keys. Names match the
|
|
121
129
|
// keyName vocabulary below so input-event's nonAlphanumericKeys filter
|
|
122
130
|
// clears their raw sequence from text input. Printable keys are NOT here —
|
|
@@ -239,14 +247,340 @@ const OSC_IN_PASTE = /\u001b\][^\u0007\u001b]*(?:\u0007|\u001b\\)/gu;
|
|
|
239
247
|
function cleanPastePayload(content) {
|
|
240
248
|
return content.replace(OSC_IN_PASTE, '');
|
|
241
249
|
}
|
|
242
|
-
|
|
250
|
+
/**
|
|
251
|
+
* Record grammar as TEXT inside a paste payload: `CSI Vk;Sc;Uc;Kd;Cs;Rc _`
|
|
252
|
+
* with an optional leading ESC, so ONE leftmost scan covers both spellings —
|
|
253
|
+
* the complete record {@link WIN32_INPUT_RE} decodes at token level, and the
|
|
254
|
+
* ESC-less tail a consumed ESC leaves behind (ADR-0002). Matching leftmost
|
|
255
|
+
* means a complete record is always taken whole, never sliced from its middle.
|
|
256
|
+
*
|
|
257
|
+
* Shape source: keep the field shape in sync with {@link WIN32_INPUT_RE} and
|
|
258
|
+
* with `WIN32_RECORD_RESIDUE` / `WIN32_RECORD_RESIDUE_TAIL` in
|
|
259
|
+
* `components/PromptInput.tsx`, which mirror this grammar for the ingress-side
|
|
260
|
+
* residue rules.
|
|
261
|
+
*/
|
|
262
|
+
const WIN32_RECORD_TEXT_RE = /\u001b?\[(\d*);(\d*);(\d*);(\d*);(\d*);(\d*)_/gu;
|
|
263
|
+
/**
|
|
264
|
+
* The in-payload frame evidence a decode requires: at least one COMPLETE
|
|
265
|
+
* ESC-bearing record (ADR-0008). Without it the payload's own characters can
|
|
266
|
+
* spell the shape, and nothing may be rewritten.
|
|
267
|
+
*/
|
|
268
|
+
const WIN32_RECORD_FRAME_RE = /\u001b\[\d*(?:;\d*){5}_/u;
|
|
269
|
+
/**
|
|
270
|
+
* The character one record's `Uc` carries, or undefined when it carries none.
|
|
271
|
+
* Mirrors what the token-level translator turns a record into and what
|
|
272
|
+
* {@link win32RecordChar} then hands to the paste buffer: ESC/TAB/space/DEL
|
|
273
|
+
* are named keys there, everything above 0x20 outside the C0/C1/DEL band is
|
|
274
|
+
* text, and the rest (0, other control codes) has no character meaning and is
|
|
275
|
+
* swallowed. `Uc` is one UTF-16 code unit, so a supplementary character
|
|
276
|
+
* streams as a high half followed by its low half.
|
|
277
|
+
*
|
|
278
|
+
* EVERY surrogate half is text of its own (T-FIX-06). The halves of one
|
|
279
|
+
* character arrive next to each other and concatenate — UTF-16 concatenation
|
|
280
|
+
* IS the pairing rule — while a half whose partner never arrived stays visible
|
|
281
|
+
* instead of being consumed with nothing in return (L-012: `probe/review/
|
|
282
|
+
* minimal-counterexamples.txt` R10 measured `a` + a high-half pair + `b` as
|
|
283
|
+
* `ab`, both records eaten and zero handed back). There is deliberately NO
|
|
284
|
+
* scratch slot to carry a half across records: the previous `pending` state
|
|
285
|
+
* let an unrelated record's low half pair with an earlier orphan and printed a
|
|
286
|
+
* character the source never contained (`edge-frames.txt` D2: `aX😀b` for a
|
|
287
|
+
* stream that never held U+1F600). With no state, no two inputs can be stitched
|
|
288
|
+
* together — across records or across payload text.
|
|
289
|
+
*/
|
|
290
|
+
function decodedRecordChar(uc) {
|
|
291
|
+
// Either half is handed back as the code unit it is; adjacency alone (never a
|
|
292
|
+
// banked half) decides whether two of them spell one supplementary char.
|
|
293
|
+
if (uc >= 0xd800 && uc <= 0xdfff)
|
|
294
|
+
return String.fromCharCode(uc);
|
|
295
|
+
if (uc === 27)
|
|
296
|
+
return '\x1b';
|
|
297
|
+
if (uc === 9)
|
|
298
|
+
return '\t';
|
|
299
|
+
if (uc === 8 || uc === 0x7f)
|
|
300
|
+
return '\x7f';
|
|
301
|
+
if (uc === 0x20)
|
|
302
|
+
return ' ';
|
|
303
|
+
if (uc > 0x20 && !(uc >= 0x7f && uc <= 0x9f))
|
|
304
|
+
return String.fromCharCode(uc);
|
|
305
|
+
return undefined;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* One numeric field of a matched record (`Vk;Sc;Uc;Kd;Cs;Rc`). A missing
|
|
309
|
+
* group and an empty field both read 0, exactly like the token-level
|
|
310
|
+
* translator's own field reader.
|
|
311
|
+
*/
|
|
312
|
+
function recordField(match, index) {
|
|
313
|
+
const raw = match[index + 1];
|
|
314
|
+
return raw === undefined || raw === '' ? 0 : Number(raw);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* True when a record hands the fold a character or a break — asked of the DOWN
|
|
318
|
+
* half of a transition pair before the LITERAL lane consumes it (T-FIX-05). A
|
|
319
|
+
* keyup, a bare modifier transition and a `Uc` with no character meaning carry
|
|
320
|
+
* nothing, and L-012 forbids consuming bytes on a lane that cannot hand them
|
|
321
|
+
* back: such a pair keeps its own bytes and stays subject to the ingress's
|
|
322
|
+
* residue contract, exactly as before.
|
|
323
|
+
*/
|
|
324
|
+
function recordCarriesText(match) {
|
|
325
|
+
const vk = recordField(match, 0);
|
|
326
|
+
const uc = recordField(match, 2);
|
|
327
|
+
if (recordField(match, 3) !== 1)
|
|
328
|
+
return false;
|
|
329
|
+
if (WIN32_VK_MODIFIER.has(vk))
|
|
330
|
+
return false;
|
|
331
|
+
if (uc === 13 || uc === 10)
|
|
332
|
+
return true;
|
|
333
|
+
return decodedRecordChar(uc) !== undefined;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Fold ONE matched record into the decode. Its `Uc` is either a break half —
|
|
337
|
+
* CR and LF both go through {@link foldNewline} — or a character
|
|
338
|
+
* ({@link decodedRecordChar}); a record that carries neither returns the fold
|
|
339
|
+
* untouched, which is exactly what the matcher itself does with a keyup, a
|
|
340
|
+
* bare modifier transition, and a Uc with no character meaning (ADR-0002,
|
|
341
|
+
* "not decodable → nothing").
|
|
342
|
+
*/
|
|
343
|
+
function appendDecodedRecord(fold, match) {
|
|
344
|
+
const vk = recordField(match, 0);
|
|
345
|
+
const uc = recordField(match, 2);
|
|
346
|
+
const keydown = recordField(match, 3) === 1;
|
|
347
|
+
// Alt+numpad synthesis rides ONE keyup whose Uc carries the composed
|
|
348
|
+
// character (same exception the token-level translator makes); every other
|
|
349
|
+
// keyup and every bare modifier transition carries no new character and is
|
|
350
|
+
// dropped, leaving the fold flag alone exactly as the matcher does.
|
|
351
|
+
const altNumpadRelease = !keydown && vk === 18 && uc !== 0;
|
|
352
|
+
if (!keydown && !altNumpadRelease)
|
|
353
|
+
return fold;
|
|
354
|
+
if (keydown && WIN32_VK_MODIFIER.has(vk))
|
|
355
|
+
return fold;
|
|
356
|
+
if (uc === 13 || uc === 10)
|
|
357
|
+
return foldNewline(fold, uc);
|
|
358
|
+
const ch = decodedRecordChar(uc);
|
|
359
|
+
if (ch === undefined)
|
|
360
|
+
return fold;
|
|
361
|
+
return { text: `${fold.text}${ch}`, lastWasCarriageReturn: false };
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Decode the record TEXT a paste payload can carry back into the characters
|
|
365
|
+
* those records encode (DESIGN D7 direction ③).
|
|
366
|
+
*
|
|
367
|
+
* A leaked record stream is not a damaged copy of the payload — it IS the
|
|
368
|
+
* payload, spelled as records. Deleting it is lossy by construction
|
|
369
|
+
* (measurement: even a strip-free ingress still loses the newline and the
|
|
370
|
+
* line-start character), so rewriting each record's own fields is the only way
|
|
371
|
+
* "chip lines == payload lines" can hold. "Not decodable → strip" stays for
|
|
372
|
+
* the records that carry no character at all (ADR-0002).
|
|
373
|
+
*
|
|
374
|
+
* Evidence gate (ADR-0008) — BOTH must hold before a single byte is touched:
|
|
375
|
+
* the caller knows the payload was assembled by the decomposed win32 paste
|
|
376
|
+
* matcher (every byte arrived as a key record, so the record stream is the
|
|
377
|
+
* payload's own origin), and the payload itself carries a complete ESC-bearing
|
|
378
|
+
* record as frame evidence. Anything else keeps its literal bytes.
|
|
379
|
+
*
|
|
380
|
+
* Newlines reach {@link foldNewline} from BOTH lanes — a record's own Uc, and
|
|
381
|
+
* an LF byte inside the payload text between records (T08's X1: the two halves
|
|
382
|
+
* of one break may arrive as one of each) — so the rule stays single. The
|
|
383
|
+
* mirror leak (T08's X1d) needs one more input, because payload text cannot
|
|
384
|
+
* show it: `carriageReturnBreaks` names the newlines that ARE a CR half, since
|
|
385
|
+
* a Return/CR record in the matcher produced them.
|
|
386
|
+
*/
|
|
387
|
+
function decodeWin32RecordText(payload, carriageReturnBreaks = []) {
|
|
388
|
+
if (!WIN32_RECORD_FRAME_RE.test(payload))
|
|
389
|
+
return payload;
|
|
390
|
+
// The assembler's offsets are in payload order and this scan only moves
|
|
391
|
+
// forward, so one monotonic cursor reads them all.
|
|
392
|
+
let breakCursor = 0;
|
|
393
|
+
/** Offset of a CR-half newline INSIDE the run `[from, to)`, or -1. */
|
|
394
|
+
const carriageReturnIn = (from, to) => {
|
|
395
|
+
while (breakCursor < carriageReturnBreaks.length &&
|
|
396
|
+
carriageReturnBreaks[breakCursor] < from) {
|
|
397
|
+
breakCursor++;
|
|
398
|
+
}
|
|
399
|
+
const at = carriageReturnBreaks[breakCursor];
|
|
400
|
+
return at !== undefined && at < to ? at - from : -1;
|
|
401
|
+
};
|
|
402
|
+
let cursor = 0;
|
|
403
|
+
let fold = { text: '', lastWasCarriageReturn: false };
|
|
404
|
+
for (const match of payload.matchAll(WIN32_RECORD_TEXT_RE)) {
|
|
405
|
+
const start = match.index;
|
|
406
|
+
if (start > cursor) {
|
|
407
|
+
// Bytes between two records are payload text, but an LF among them is
|
|
408
|
+
// the LF HALF of a break: it goes through the ONE rule
|
|
409
|
+
// ({@link appendPayloadText} → {@link foldNewline}) instead of being
|
|
410
|
+
// printed beside the newline a CR record already emitted — and when the
|
|
411
|
+
// assembler says this newline IS the CR half, the rule learns that too.
|
|
412
|
+
fold = appendPayloadText(fold, payload.slice(cursor, start), carriageReturnIn(cursor, start));
|
|
413
|
+
}
|
|
414
|
+
cursor = start + match[0].length;
|
|
415
|
+
fold = appendDecodedRecord(fold, match);
|
|
416
|
+
}
|
|
417
|
+
// The tail after the last record is payload text like any run between two
|
|
418
|
+
// records, and it reaches the SAME rule for the same reason.
|
|
419
|
+
return appendPayloadText(fold, payload.slice(cursor), carriageReturnIn(cursor, payload.length)).text;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Decode the records a LITERAL paste carries (T-FIX-05) — the VT
|
|
423
|
+
* bracketed-paste lane, whose payload arrives as bytes instead of as records,
|
|
424
|
+
* and therefore has no assembler behind it. The evidence must come from the
|
|
425
|
+
* payload itself, and the user's capture says which shape qualifies: Windows
|
|
426
|
+
* Terminal + PowerShell deliver a `Ctrl+V` payload INSIDE the bracketed-paste
|
|
427
|
+
* markers with every line break spelled as the terminal's own down+up record
|
|
428
|
+
* PAIR — the next
|
|
429
|
+
* record, ESC-bearing like its down half, same `Vk;Sc;Uc;Cs`, `Kd` 1 → 0, so
|
|
430
|
+
* `CSI 13;28;13;1;0;1_` then `CSI 13;28;13;0;0;1_` (`Uc=13`). That pair is how
|
|
431
|
+
* the terminal spells ONE pasted character (conhost
|
|
432
|
+
* `Clipboard::TextToKeyEvents`), and the ingress residue strip deletes every
|
|
433
|
+
* ESC-bearing record — pair and all — so without the decode the line break is
|
|
434
|
+
* thrown away (`1 line・751 chars` on the capture; `10 lines・760 chars` with
|
|
435
|
+
* it).
|
|
436
|
+
*
|
|
437
|
+
* The pair is the unit of both the rewrite and its evidence, which keeps the
|
|
438
|
+
* decode strictly narrower than the deletion it replaces:
|
|
439
|
+
*
|
|
440
|
+
* - the gate is the pair itself — and a NEAR-MISS pair is still a pair
|
|
441
|
+
* ({@link recordTransition}: same `Uc`, one press + one release, either
|
|
442
|
+
* arrival order, payload text allowed between the two spellings). A lone
|
|
443
|
+
* record shape is the payload's own text (ADR-0008 D1) and is not rewritten,
|
|
444
|
+
* as is an ESC-less shape even when a decodable pair sits beside it (that
|
|
445
|
+
* shape is exactly what a user pasting a record fragment delivers);
|
|
446
|
+
* - a pair whose down half hands the fold nothing (`Uc=0`, a bare modifier
|
|
447
|
+
* transition) is not consumed either ({@link recordCarriesText}, L-012);
|
|
448
|
+
* - the up half carries no character of its own, so consuming it drops nothing
|
|
449
|
+
* — the one character the pair spells is its down half's `Uc` — and breaks go
|
|
450
|
+
* through the ONE newline rule ({@link foldNewline}), so a decoded break and
|
|
451
|
+
* an adjacent real newline still fold into a single line.
|
|
452
|
+
*
|
|
453
|
+
* What the decode does NOT do is rescue the bytes it declines to rewrite: every
|
|
454
|
+
* complete ESC-bearing record is deleted by the ingress's residue contract
|
|
455
|
+
* (ADR-0002 decision 1 / ADR-0008 decision 2, `sanitizePastedText`), so a lone
|
|
456
|
+
* record's bytes survive HERE and nowhere else. The earlier reading of this
|
|
457
|
+
* function claimed a lone record "keeps every byte" as if that held
|
|
458
|
+
* end-to-end; it never did — the ingress deletes it, and that split of
|
|
459
|
+
* responsibility is what `verify-paste-integrity.tsx` (m) pins as the declared
|
|
460
|
+
* residual. Widening the gate is safe in the other direction: every record the
|
|
461
|
+
* decode consumes would have been deleted whole anyway, so a near miss now
|
|
462
|
+
* yields the character it spells instead of nothing (T-FIX-06, F-2).
|
|
463
|
+
*/
|
|
464
|
+
function decodeLiteralRecordText(payload) {
|
|
465
|
+
// Nothing can be rewritten without an ESC-bearing record, and a payload with
|
|
466
|
+
// no `ESC[` in it cannot spell a pair: the ordinary paste skips the scan,
|
|
467
|
+
// exactly as it did before this decode existed.
|
|
468
|
+
if (!payload.includes('\u001b['))
|
|
469
|
+
return payload;
|
|
470
|
+
const records = [...payload.matchAll(WIN32_RECORD_TEXT_RE)];
|
|
471
|
+
let cursor = 0;
|
|
472
|
+
let fold = { text: '', lastWasCarriageReturn: false };
|
|
473
|
+
for (let i = 0; i < records.length; i++) {
|
|
474
|
+
const first = records[i];
|
|
475
|
+
const second = records[i + 1];
|
|
476
|
+
if (second === undefined)
|
|
477
|
+
continue;
|
|
478
|
+
// Not consumed — either the gate found no transition, or the pair's down
|
|
479
|
+
// half carries nothing to hand back: leaving the cursor in place copies the
|
|
480
|
+
// bytes verbatim through the payload-text run below. That is the path for an
|
|
481
|
+
// ESC-less shape, a lone record, and a `Uc=0` / bare-modifier pair (L-012
|
|
482
|
+
// forbids consuming bytes on a lane that cannot hand them back).
|
|
483
|
+
const transition = recordTransition(first, second);
|
|
484
|
+
if (transition === null)
|
|
485
|
+
continue;
|
|
486
|
+
if (!recordCarriesText(transition))
|
|
487
|
+
continue;
|
|
488
|
+
const start = first.index ?? 0;
|
|
489
|
+
if (start > cursor)
|
|
490
|
+
fold = appendPayloadText(fold, payload.slice(cursor, start));
|
|
491
|
+
cursor = (second.index ?? 0) + second[0].length;
|
|
492
|
+
// Arrival order decides where the pair's one character lands: the down half
|
|
493
|
+
// hands it over at ITS position inside the pair, and the run between the
|
|
494
|
+
// two halves is payload text that keeps its place between them. (A release
|
|
495
|
+
// first is the reversed spelling; the character still arrives with its
|
|
496
|
+
// press, and nothing else sits between the two record spellings.)
|
|
497
|
+
const gap = payload.slice(start + first[0].length, second.index);
|
|
498
|
+
if (first === transition) {
|
|
499
|
+
fold = appendDecodedRecord(fold, transition);
|
|
500
|
+
if (gap !== '')
|
|
501
|
+
fold = appendPayloadText(fold, gap);
|
|
502
|
+
}
|
|
503
|
+
else {
|
|
504
|
+
if (gap !== '')
|
|
505
|
+
fold = appendPayloadText(fold, gap);
|
|
506
|
+
fold = appendDecodedRecord(fold, transition);
|
|
507
|
+
}
|
|
508
|
+
// The pair was consumed WHOLE: its other half is not a candidate for the
|
|
509
|
+
// next round either, so the loop moves past it.
|
|
510
|
+
i++;
|
|
511
|
+
}
|
|
512
|
+
return appendPayloadText(fold, payload.slice(cursor)).text;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* The DOWN half of the key transition two adjacent RECORDS spell, or null when
|
|
516
|
+
* they cannot be one character's down+up pair. The pair is the unit of evidence
|
|
517
|
+
* (ADR-0008 D1), and T-FIX-06 widened what counts as one: two ESC-bearing
|
|
518
|
+
* records of the SAME `Uc` — the field that IS the character — one press and one
|
|
519
|
+
* release, in EITHER arrival order, with payload text allowed between the two
|
|
520
|
+
* spellings (the release half is the next RECORD, not the next byte; text
|
|
521
|
+
* between two records is not a third record).
|
|
522
|
+
*
|
|
523
|
+
* `Vk`/`Sc`/`Cs` are deliberately NOT part of the identity. They describe which
|
|
524
|
+
* physical key the terminal attributed the transition to, and a synthesized
|
|
525
|
+
* release is allowed to spell them differently — conhost emits keyups with
|
|
526
|
+
* `Vk=0`/`Sc=0`, and `Cs` changes when a modifier is released before the keyup.
|
|
527
|
+
* Requiring them to match turned every such near miss into a silent deletion:
|
|
528
|
+
* the pair failed this gate, fell through to the payload-text run, and the
|
|
529
|
+
* ingress's residue strip deleted both records — and with them the break the
|
|
530
|
+
* down half encoded (`probe/review/minimal-counterexamples.txt` R1/R2/R3/R3b/
|
|
531
|
+
* R3c, each pinned by an assertion in `verify-paste-integrity.tsx` (m)).
|
|
532
|
+
*
|
|
533
|
+
* Only the DOWN half is returned: it is the half that hands the character over,
|
|
534
|
+
* and whether it came first decides where that character lands in arrival
|
|
535
|
+
* order (`verify-paste-integrity.tsx` m2).
|
|
536
|
+
*/
|
|
537
|
+
function recordTransition(a, b) {
|
|
538
|
+
// Both halves must keep their ESC: an ESC-less spelling has no frame of its
|
|
539
|
+
// own (ADR-0008 D1) and stays literal.
|
|
540
|
+
if (!a[0].startsWith('\u001b') || !b[0].startsWith('\u001b'))
|
|
541
|
+
return null;
|
|
542
|
+
const aIsDown = recordField(a, 3) === 1;
|
|
543
|
+
const bIsDown = recordField(b, 3) === 1;
|
|
544
|
+
// Exactly one press and one release: two presses or two releases are not a
|
|
545
|
+
// transition, whatever else they share.
|
|
546
|
+
if (aIsDown === bIsDown)
|
|
547
|
+
return null;
|
|
548
|
+
const down = aIsDown ? a : b;
|
|
549
|
+
const up = aIsDown ? b : a;
|
|
550
|
+
return recordField(down, 2) === recordField(up, 2) ? down : null;
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Build the one paste key every paste path emits.
|
|
554
|
+
*
|
|
555
|
+
* @param content - the payload bytes of that path.
|
|
556
|
+
* @param assembledFromKeyRecords - true only for the payloads the decomposed
|
|
557
|
+
* win32 paste matcher assembled from per-key records. That provenance is one
|
|
558
|
+
* of the two evidences a record decode can rest on
|
|
559
|
+
* ({@link decodeWin32RecordText}); every other caller (VT bracketed paste, a
|
|
560
|
+
* restored drop path, the VT flush) hands over literal bytes, which
|
|
561
|
+
* {@link decodeLiteralRecordText} rewrites only under the payload's own
|
|
562
|
+
* paired-transition evidence.
|
|
563
|
+
* @param carriageReturnBreaks - the breaks that matcher opened with a
|
|
564
|
+
* Return/CR record and has not closed with an LF record yet
|
|
565
|
+
* ({@link Win32PasteState.carriageReturnBreaks}), so the decoder can fold a
|
|
566
|
+
* leaked LF record into the newline that already stands for its CR half.
|
|
567
|
+
* Only meaningful together with `assembledFromKeyRecords`.
|
|
568
|
+
*/
|
|
569
|
+
function createPasteKey(content, assembledFromKeyRecords = false, carriageReturnBreaks = []) {
|
|
243
570
|
// Order is a contract (D6/D1): a complete OSC 8 drop frame is RESTORED to
|
|
244
571
|
// its local path BEFORE the payload hygiene — hygiene strips the very OSC
|
|
245
572
|
// frame the drop is encoded in. Every paste path goes through this ONE
|
|
246
573
|
// choke point (VT bracketed paste, the decomposed win32 paste, and both
|
|
247
|
-
// flush paths), so no caller has to remember the order.
|
|
574
|
+
// flush paths), so no caller has to remember the order. Record decoding
|
|
575
|
+
// (ADR-0008) sits between the restore and the hygiene: decode the leaked
|
|
576
|
+
// stream first, then let the hygiene see the payload the user actually
|
|
577
|
+
// pasted.
|
|
248
578
|
const dropPath = osc8DropPath(content);
|
|
249
|
-
const text = dropPath === null
|
|
579
|
+
const text = dropPath === null
|
|
580
|
+
? cleanPastePayload(assembledFromKeyRecords
|
|
581
|
+
? decodeWin32RecordText(content, carriageReturnBreaks)
|
|
582
|
+
: decodeLiteralRecordText(content))
|
|
583
|
+
: pastePayloadForPath(dropPath);
|
|
250
584
|
return {
|
|
251
585
|
kind: 'key',
|
|
252
586
|
name: '',
|
|
@@ -756,10 +1090,14 @@ function parseWin32KeyEvent(s, ctx) {
|
|
|
756
1090
|
}
|
|
757
1091
|
// Synthesized character records (conhost's SynthesizeKeyEvent: Vk=0,
|
|
758
1092
|
// Sc=0, Cs=0) carry their entire payload in Uc — including the control
|
|
759
|
-
// chars that spell the bracketed-paste markers (ESC[200~ / ESC[201~)
|
|
1093
|
+
// chars that spell the bracketed-paste markers (ESC[200~ / ESC[201~) and,
|
|
1094
|
+
// inside a decomposed paste, the break records (CR 13 / LF 10 / Tab 9 /
|
|
1095
|
+
// Backspace 8 or DEL 127 / Escape 27). VK_PACKET records carry the same
|
|
1096
|
+
// payload in Uc, so they take this lane too; only a record with NO
|
|
1097
|
+
// decodable payload (Uc=0) is still swallowed.
|
|
760
1098
|
// Map the editing-relevant ones to named keys so the decomposed-paste
|
|
761
1099
|
// reassembler below can see the marker characters at all.
|
|
762
|
-
if (vk === 0) {
|
|
1100
|
+
if (vk === 0 || vk === WIN32_VK_PACKET) {
|
|
763
1101
|
if (uc === 27)
|
|
764
1102
|
return { key: { ...base, name: 'escape', sequence: s }, repeat };
|
|
765
1103
|
if (uc === 13 || uc === 10)
|
|
@@ -843,11 +1181,77 @@ function win32RecordUc(key) {
|
|
|
843
1181
|
return field === undefined || field === '' ? 0 : parseInt(field, 10);
|
|
844
1182
|
}
|
|
845
1183
|
/**
|
|
846
|
-
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
*
|
|
850
|
-
*
|
|
1184
|
+
* ADR-0002 decision 2 as ONE rule, shared by every win32 newline path — the
|
|
1185
|
+
* decomposed matcher's {@link appendWin32PasteChar}, the payload decoder
|
|
1186
|
+
* {@link decodeWin32RecordText}, and the payload TEXT that decoder copies
|
|
1187
|
+
* between records ({@link appendPayloadText}) — so they can never disagree: a
|
|
1188
|
+
* pasted CRLF break arrives as a CR half (Uc=13) followed by an LF half
|
|
1189
|
+
* (Uc=10), and the LF half folds into the newline the CR already produced.
|
|
1190
|
+
* Only a CR arms the fold, so LF-only text, a lone CR, and ordinary characters
|
|
1191
|
+
* (including a real `_`) keep their bytes. A CR half that never travelled as a
|
|
1192
|
+
* record — the translated Return of a half-leaked break — reaches this rule
|
|
1193
|
+
* with uc=13 from {@link appendPayloadText}, which is the same CR provenance
|
|
1194
|
+
* the matcher records in {@link Win32PasteState.carriageReturnBreaks}.
|
|
1195
|
+
*/
|
|
1196
|
+
function foldNewline(fold, uc) {
|
|
1197
|
+
if (uc === 10 && fold.lastWasCarriageReturn) {
|
|
1198
|
+
// LF record closing the CRLF pair: the CR already emitted the newline.
|
|
1199
|
+
return { text: fold.text, lastWasCarriageReturn: false };
|
|
1200
|
+
}
|
|
1201
|
+
return { text: `${fold.text}\n`, lastWasCarriageReturn: uc === 13 };
|
|
1202
|
+
}
|
|
1203
|
+
/**
|
|
1204
|
+
* Append one run of payload TEXT — the bytes between two records, or the tail
|
|
1205
|
+
* after the last one — through {@link foldNewline}, so an LF in it folds into
|
|
1206
|
+
* the break a CR half already opened instead of printing a second newline for
|
|
1207
|
+
* the same break.
|
|
1208
|
+
*
|
|
1209
|
+
* The two halves of a break may arrive in either lane (ADR-0002 decision 2),
|
|
1210
|
+
* and T08's independent review read both orders. In X1 the CR half leaked as
|
|
1211
|
+
* record text while the LF half was still a real newline, and this copy path —
|
|
1212
|
+
* the one newline site that bypassed the rule — turned that ONE break into two
|
|
1213
|
+
* lines (4-line source → 7 lines, chip 7 lines, AC-3②). In X1d it is the other
|
|
1214
|
+
* way round: the CR half was a TRANSLATED Return, so the newline it produced is
|
|
1215
|
+
* already IN this run, and the LF half leaked as record text, whose record the
|
|
1216
|
+
* decoder then reads right after. `carriageReturnAt` is the assembler's answer
|
|
1217
|
+
* to "which of these `\n` is that CR half" — a run offset from
|
|
1218
|
+
* {@link Win32PasteState.carriageReturnBreaks} — so that byte, and only that
|
|
1219
|
+
* byte, arms the fold the leaked LF record needs. Every other byte keeps its
|
|
1220
|
+
* bytes and disarms the fold exactly as before, including a literal CR: its own
|
|
1221
|
+
* CRLF fold belongs to the ingress, not to the decoder.
|
|
1222
|
+
*/
|
|
1223
|
+
function appendPayloadText(fold, text, carriageReturnAt = -1) {
|
|
1224
|
+
let out = fold.text;
|
|
1225
|
+
let lastWasCarriageReturn = fold.lastWasCarriageReturn;
|
|
1226
|
+
let at = 0;
|
|
1227
|
+
for (const ch of text) {
|
|
1228
|
+
if (ch !== '\n') {
|
|
1229
|
+
out += ch;
|
|
1230
|
+
lastWasCarriageReturn = false;
|
|
1231
|
+
at += ch.length;
|
|
1232
|
+
continue;
|
|
1233
|
+
}
|
|
1234
|
+
// uc=13 when the assembler opened this newline with a Return/CR record:
|
|
1235
|
+
// the ONE rule, with the provenance that byte cannot carry itself. `at`
|
|
1236
|
+
// counts UTF-16 units, like the offsets it is compared against.
|
|
1237
|
+
const folded = foldNewline({ text: out, lastWasCarriageReturn }, at === carriageReturnAt ? 13 : 10);
|
|
1238
|
+
out = folded.text;
|
|
1239
|
+
lastWasCarriageReturn = folded.lastWasCarriageReturn;
|
|
1240
|
+
at += 1;
|
|
1241
|
+
}
|
|
1242
|
+
return { text: out, lastWasCarriageReturn };
|
|
1243
|
+
}
|
|
1244
|
+
/**
|
|
1245
|
+
* Append one paste-body key to the decomposed-paste buffer. Newlines go
|
|
1246
|
+
* through {@link foldNewline}; anything else keeps its own bytes.
|
|
1247
|
+
*
|
|
1248
|
+
* This lane is also the only place that knows a newline's PROVENANCE: a
|
|
1249
|
+
* Return/CR record's break is recorded in `carriageReturnBreaks` and retired
|
|
1250
|
+
* once an LF record closes it, so the payload decoder can fold a leaked LF
|
|
1251
|
+
* record into the very newline whose CR half this matcher already emitted
|
|
1252
|
+
* (T08's X1d). The characters of a leaked record are ordinary payload text
|
|
1253
|
+
* here and deliberately leave that record alone — they are the LF half's own
|
|
1254
|
+
* spelling, so the break is still open behind them.
|
|
851
1255
|
*/
|
|
852
1256
|
function appendWin32PasteChar(state, key) {
|
|
853
1257
|
const ch = win32RecordChar(key);
|
|
@@ -859,13 +1263,18 @@ function appendWin32PasteChar(state, key) {
|
|
|
859
1263
|
return;
|
|
860
1264
|
}
|
|
861
1265
|
const uc = win32RecordUc(key);
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
1266
|
+
const closesCarriageReturnBreak = uc === 10 && state.lastWasCarriageReturn;
|
|
1267
|
+
const folded = foldNewline({ text: state.buffer, lastWasCarriageReturn: state.lastWasCarriageReturn }, uc);
|
|
1268
|
+
state.buffer = folded.text;
|
|
1269
|
+
state.lastWasCarriageReturn = folded.lastWasCarriageReturn;
|
|
1270
|
+
if (closesCarriageReturnBreak) {
|
|
1271
|
+
// The LF half arrived in this lane too, so the break is complete: its
|
|
1272
|
+
// newline is no longer waiting and may not absorb a LATER break's LF.
|
|
1273
|
+
state.carriageReturnBreaks.pop();
|
|
1274
|
+
}
|
|
1275
|
+
else if (uc === 13) {
|
|
1276
|
+
state.carriageReturnBreaks.push(state.buffer.length - 1);
|
|
866
1277
|
}
|
|
867
|
-
state.lastWasCarriageReturn = uc === 13;
|
|
868
|
-
state.buffer += '\n';
|
|
869
1278
|
}
|
|
870
1279
|
/**
|
|
871
1280
|
* Feed one translated win32 key through the decomposed-paste matcher.
|
|
@@ -888,13 +1297,18 @@ function feedWin32Paste(state, key) {
|
|
|
888
1297
|
state.active = true;
|
|
889
1298
|
state.buffer = '';
|
|
890
1299
|
state.lastWasCarriageReturn = false;
|
|
1300
|
+
state.carriageReturnBreaks = [];
|
|
891
1301
|
return [];
|
|
892
1302
|
}
|
|
893
|
-
// End marker complete: the whole paste as a single event.
|
|
894
|
-
|
|
1303
|
+
// End marker complete: the whole paste as a single event. Its body was
|
|
1304
|
+
// assembled from key records, which is exactly the provenance the
|
|
1305
|
+
// payload decoder needs (a leaked record stream is spelled as text in
|
|
1306
|
+
// it) — see `createPasteKey`.
|
|
1307
|
+
const paste = createPasteKey(state.buffer, true, state.carriageReturnBreaks);
|
|
895
1308
|
state.active = false;
|
|
896
1309
|
state.buffer = '';
|
|
897
1310
|
state.lastWasCarriageReturn = false;
|
|
1311
|
+
state.carriageReturnBreaks = [];
|
|
898
1312
|
return [paste];
|
|
899
1313
|
}
|
|
900
1314
|
return [];
|
|
@@ -1259,6 +1673,7 @@ export function parseMultipleKeypresses(prevState, input = '') {
|
|
|
1259
1673
|
held: [],
|
|
1260
1674
|
buffer: '',
|
|
1261
1675
|
lastWasCarriageReturn: false,
|
|
1676
|
+
carriageReturnBreaks: [],
|
|
1262
1677
|
};
|
|
1263
1678
|
const win32Protocol = prevState.win32Protocol ?? {
|
|
1264
1679
|
held: [],
|
|
@@ -1734,18 +2149,22 @@ export function parseMultipleKeypresses(prevState, input = '') {
|
|
|
1734
2149
|
let content = win32Paste.buffer;
|
|
1735
2150
|
for (const k of win32Paste.held)
|
|
1736
2151
|
content += win32RecordChar(k) ?? '';
|
|
1737
|
-
|
|
2152
|
+
// Assembled from key records like the end-marker path, so the payload
|
|
2153
|
+
// decoder gets the same provenance.
|
|
2154
|
+
keys.push(createPasteKey(content, true, win32Paste.carriageReturnBreaks));
|
|
1738
2155
|
win32Paste.active = false;
|
|
1739
2156
|
win32Paste.buffer = '';
|
|
1740
2157
|
win32Paste.held = [];
|
|
1741
2158
|
win32Paste.matched = 0;
|
|
1742
2159
|
win32Paste.lastWasCarriageReturn = false;
|
|
2160
|
+
win32Paste.carriageReturnBreaks = [];
|
|
1743
2161
|
}
|
|
1744
2162
|
else if (isFlush && !deferFlush && win32Paste.held.length > 0) {
|
|
1745
2163
|
keys.push(...win32Paste.held);
|
|
1746
2164
|
win32Paste.held = [];
|
|
1747
2165
|
win32Paste.matched = 0;
|
|
1748
2166
|
win32Paste.lastWasCarriageReturn = false;
|
|
2167
|
+
win32Paste.carriageReturnBreaks = [];
|
|
1749
2168
|
}
|
|
1750
2169
|
// A quiet timeout ends a synthesized protocol candidate. Incomplete mouse
|
|
1751
2170
|
// reports are terminal input and must not become prompt text; other held
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../src/ink/reconciler.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,MAAM,kBAAkB,CAAA;AAG/C,OAAO,EAKL,KAAK,UAAU,EAUf,KAAK,QAAQ,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAsInD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAmBtD;AAGD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAKhD;AAED,qFAAqF;AACrF,eAAO,MAAM,UAAU,YAAmB,CAAA;AAkB1C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE7C;AACD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AACD,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AACD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AACD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAGD;;;GAGG;AACH,QAAA,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../src/ink/reconciler.ts"],"names":[],"mappings":"AAGA,OAAO,gBAAgB,MAAM,kBAAkB,CAAA;AAG/C,OAAO,EAKL,KAAK,UAAU,EAUf,KAAK,QAAQ,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAsInD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAmBtD;AAGD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAKhD;AAED,qFAAqF;AACrF,eAAO,MAAM,UAAU,YAAmB,CAAA;AAkB1C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE7C;AACD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AACD,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AACD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AACD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAGD;;;GAGG;AACH,QAAA,MAAM,UAAU,gGAwSd,CAAA;AAMF,eAAe,UAAU,CAAA"}
|
|
@@ -381,6 +381,15 @@ const reconciler = createReconciler({
|
|
|
381
381
|
},
|
|
382
382
|
startSuspendingCommit() { },
|
|
383
383
|
suspendInstance() { },
|
|
384
|
+
// react-reconciler 0.34 calls this from completeRootWhenReady for every
|
|
385
|
+
// commit on a transition, retry or idle lane, whether or not a
|
|
386
|
+
// ViewTransition exists; without it a commit resuming after Suspense
|
|
387
|
+
// throws "is not a function". This renderer has no ViewTransition, so
|
|
388
|
+
// a no-op matches react-dom with no active transition.
|
|
389
|
+
// @types/react-reconciler (0.33) does not list it yet; drop the
|
|
390
|
+
// expect-error once it does.
|
|
391
|
+
// @ts-expect-error suspendOnActiveViewTransition missing from react-reconciler 0.34 HostConfig types
|
|
392
|
+
suspendOnActiveViewTransition() { },
|
|
384
393
|
waitForCommitToBeReady() {
|
|
385
394
|
return null;
|
|
386
395
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-node-to-output.d.ts","sourceRoot":"","sources":["../../../src/ink/render-node-to-output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"render-node-to-output.d.ts","sourceRoot":"","sources":["../../../src/ink/render-node-to-output.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AASrD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAA;AAiCxD,6CAA6C;AAC7C,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAOD;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AA0BvE,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAYpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,gBAAgB,EAAE,CAEhE;AAED,iFAAiF;AACjF,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAsED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAuBhD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAyBtE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AASD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,UAAU,GAAG,IAAI,CAEtD;AAgBD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAGD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,wEAAwE;IACxE,IAAI,EAAE,aAAa,GAAG,WAAW,CAAA;IACjC,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAGD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,WAAW,CAO7B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,cAAc,EAAE,CAIzD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,EAAE,CAIpD;AAoFD;;;;;GAKG;AACH,iBAAS,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CASlE;AAED;;;;;;;;;;;GAWG;AACH,iBAAS,wBAAwB,CAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,aAAa,EAAE,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,OAAe,GAC3B,MAAM,CA0GR;AAwRD;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAM9B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wBAAwB,CAAC,EAAE,KAAK,CAAA;CACjC,GACA,IAAI,CA4uCN;AA2OD,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,CAAA;AAE1D,eAAe,kBAAkB,CAAA"}
|