@songtonyli/dsh-cli 0.1.11 → 0.1.13
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 +1 -1
- package/bin/dsh.mjs +1 -1
- package/node_modules/@deepseek-ai/cordis/lib/index.js +3 -2
- package/node_modules/@deepseek-ai/cordis/src/logger.ts +3 -2
- package/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/cordis-plugin-loader/src/config/entry.ts +1 -1
- package/node_modules/@deepseek-ai/dsh/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh/README.md +6 -4
- package/node_modules/@deepseek-ai/dsh/README.zh.md +6 -4
- package/node_modules/@deepseek-ai/dsh/lib/bin.js +118 -54
- package/node_modules/@deepseek-ai/dsh/lib/{dump-config-CpQgpJa2.js → dump-config-Bb5YvFIX.js} +1 -1
- package/node_modules/@deepseek-ai/dsh/lib/plugin-DJ-rVHUS.js +31 -0
- package/node_modules/@deepseek-ai/dsh/lib/{profile-boot-CuwbWsnH.js → profile-boot-BNu17Y9U.js} +82 -135
- package/node_modules/@deepseek-ai/dsh/lib/profile-boot.js +2 -0
- package/node_modules/@deepseek-ai/dsh/package.json +117 -102
- package/node_modules/@deepseek-ai/dsh-acp/package.json +22 -22
- package/node_modules/@deepseek-ai/dsh-acp-app/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-acp-app/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-acp-app/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-acp-app/cordis.patch.yml +3 -0
- package/node_modules/@deepseek-ai/dsh-acp-app/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-agent/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-agent-default-model/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-agent-instructions/package.json +21 -21
- package/node_modules/@deepseek-ai/dsh-agent-loop/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-agent-loop/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-loop/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-loop/lib/index.js +2 -3
- package/node_modules/@deepseek-ai/dsh-agent-loop/package.json +25 -25
- package/node_modules/@deepseek-ai/dsh-agent-presets/package.json +27 -27
- package/node_modules/@deepseek-ai/dsh-agent-presets/presets/cordis/agent.cordis.yml +23 -13
- package/node_modules/@deepseek-ai/dsh-agent-presets/presets/cordis/preset.yml +1 -1
- package/node_modules/@deepseek-ai/dsh-agent-presets/presets/cordis/skills/cordis-plugin-development/SKILL.md +73 -385
- package/node_modules/@deepseek-ai/dsh-agent-presets/presets/cordis/skills/editing-cordis-compositions/SKILL.md +9 -72
- package/node_modules/@deepseek-ai/dsh-agent-presets/presets/ptc/agent.cordis.yml +4 -0
- package/node_modules/@deepseek-ai/dsh-agent-presets/presets/standard/agent.cordis.yml +4 -0
- package/node_modules/@deepseek-ai/dsh-agent-tool-presentation/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-anonymous-user-id/package.json +5 -5
- package/node_modules/@deepseek-ai/dsh-api-authorization-controller/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-api-gateway/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-api-gateway/README.md +9 -5
- package/node_modules/@deepseek-ai/dsh-api-gateway/README.zh.md +9 -5
- package/node_modules/@deepseek-ai/dsh-api-gateway/lib/client.js +41 -51
- package/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/index.js +4 -17
- package/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/remote-events.js +33 -38
- package/node_modules/@deepseek-ai/dsh-api-gateway/lib/types/client/stream-client.js +2 -1
- package/node_modules/@deepseek-ai/dsh-api-gateway/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-api-remotes/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-api-remotes/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-api-remotes/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-api-remotes/lib/client.js +754 -76
- package/node_modules/@deepseek-ai/dsh-api-remotes/lib/index.js +12 -0
- package/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/client/index.js +5 -4
- package/node_modules/@deepseek-ai/dsh-api-remotes/lib/types/remote-events.js +3 -0
- package/node_modules/@deepseek-ai/dsh-api-remotes/package.json +37 -35
- package/node_modules/@deepseek-ai/dsh-api-session-controller/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-api-session-controller/README.md +15 -3
- package/node_modules/@deepseek-ai/dsh-api-session-controller/README.zh.md +15 -3
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/client.js +428 -471
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/index.js +16 -47
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.host.js +11 -32
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/typert.remote-client.js +0 -21
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/agent.js +8 -1
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/index.js +16 -5
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/scope.js +15 -22
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/lineage.js +1 -3
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/manager.js +75 -174
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/projection-store.js +6 -14
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/service.js +259 -244
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/client/sessions/session.js +29 -33
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/commands.js +10 -4
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/control.js +1 -41
- package/node_modules/@deepseek-ai/dsh-api-session-controller/lib/types/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-api-session-controller/package.json +66 -66
- package/node_modules/@deepseek-ai/dsh-api-settings-controller/package.json +13 -13
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/README.md +14 -5
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/README.zh.md +14 -5
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/client.js +249 -19
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/index.js +258 -50
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/typert.host.js +67 -11
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/typert.remote-client.js +54 -9
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/client/bindings.js +71 -0
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/client/index.js +83 -8
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/client/model.js +20 -7
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/client/retention.js +77 -0
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/index.js +49 -43
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/retention.js +153 -0
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/lib/types/terminal.js +35 -0
- package/node_modules/@deepseek-ai/dsh-api-terminal-controller/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-api-workspace-controller/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/lib/index.js +6 -11
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/lib/typert.host.js +4 -4
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/lib/typert.remote-client.js +4 -4
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/lib/types/index.js +6 -7
- package/node_modules/@deepseek-ai/dsh-api-workspace-files/package.json +11 -10
- package/node_modules/@deepseek-ai/dsh-app-boot/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-app-boot/README.md +18 -8
- package/node_modules/@deepseek-ai/dsh-app-boot/README.zh.md +17 -7
- package/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js +360 -202
- package/node_modules/@deepseek-ai/dsh-app-boot/package.json +9 -17
- package/node_modules/@deepseek-ai/dsh-atomic-write/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-atomic-write/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-atomic-write/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-atomic-write/lib/index.js +8 -3
- package/node_modules/@deepseek-ai/dsh-atomic-write/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-attachment/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-attachment-local/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-authorization/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml +12 -5
- package/node_modules/@deepseek-ai/dsh-base/package.json +89 -88
- package/node_modules/@deepseek-ai/dsh-bash-local/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-bash-sandbox/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-brand/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-chunked-list/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-client-connection/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-connection/README.md +4 -0
- package/node_modules/@deepseek-ai/dsh-client-connection/README.zh.md +4 -0
- package/node_modules/@deepseek-ai/dsh-client-connection/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-connection/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-client-file-upload/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-client-hmr/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-hmr/README.md +11 -11
- package/node_modules/@deepseek-ai/dsh-client-hmr/README.zh.md +11 -11
- package/node_modules/@deepseek-ai/dsh-client-hmr/lib/client.js +10 -59
- package/node_modules/@deepseek-ai/dsh-client-hmr/lib/index.js +15 -7
- package/node_modules/@deepseek-ai/dsh-client-hmr/package.json +5 -5
- package/node_modules/@deepseek-ai/dsh-client-locale/package.json +8 -6
- package/node_modules/@deepseek-ai/dsh-client-modules/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-modules/README.md +14 -4
- package/node_modules/@deepseek-ai/dsh-client-modules/README.zh.md +14 -4
- package/node_modules/@deepseek-ai/dsh-client-modules/lib/client.js +407 -26
- package/node_modules/@deepseek-ai/dsh-client-modules/lib/index.js +62 -10
- package/node_modules/@deepseek-ai/dsh-client-modules/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-client-resources/package.json +4 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +140 -48
- package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/package.json +15 -12
- package/node_modules/@deepseek-ai/dsh-client-ui-approval/package.json +12 -10
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/lib/client.js +24 -12
- package/node_modules/@deepseek-ai/dsh-client-ui-attachment/package.json +9 -7
- package/node_modules/@deepseek-ai/dsh-client-ui-brand-official/package.json +4 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-chat/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-chat/README.md +4 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-chat/README.zh.md +4 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-chat/lib/client.js +49 -34
- package/node_modules/@deepseek-ai/dsh-client-ui-chat/package.json +33 -29
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +107 -34
- package/node_modules/@deepseek-ai/dsh-client-ui-commands/package.json +14 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/README.md +13 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/README.zh.md +13 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +520 -384
- package/node_modules/@deepseek-ai/dsh-client-ui-conversation/package.json +30 -26
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/README.md +9 -13
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/README.zh.md +9 -13
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +3 -35
- package/node_modules/@deepseek-ai/dsh-client-ui-cordis/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/README.md +25 -15
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/README.zh.md +25 -15
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +1364 -160
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/index.js +164 -41
- package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +27 -22
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/package.json +7 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/README.md +8 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/README.zh.md +7 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/lib/client.js +3 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-goal/package.json +14 -12
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +112 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/package.json +11 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-jobs/package.json +8 -6
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +27 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-layout/package.json +7 -6
- package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/package.json +15 -13
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/README.md +5 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/README.zh.md +5 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +152 -33
- package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/package.json +14 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-open-in-app/package.json +10 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/package.json +14 -12
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/README.md +9 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/README.zh.md +9 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +564 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-plan/package.json +26 -10
- package/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/README.md +129 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/README.zh.md +129 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/lib/client.js +2550 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/lib/index.js +6 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-plugin-manager/package.json +65 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/LICENSE +21 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/README.md +172 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/README.zh.md +172 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Button.module.css +79 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Checkbox.module.css +28 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/ConnectionIndicator.module.css +123 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/DiffBlock.module.css +109 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/DisclosureRow.module.css +84 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/FileTypeIcon.module.css +50 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/HoverCard.module.css +54 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Input.module.css +38 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/JsonTree.module.css +345 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Menu.module.css +261 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Modal.module.css +103 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/OnboardingSurface.module.css +29 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Pill.module.css +27 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/ReadBlock.module.css +111 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/RiskConfirmation.module.css +73 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/SearchBlock.module.css +112 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/StateDot.module.css +73 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Switch.module.css +50 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Tag.module.css +57 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/TerminalBlock.module.css +205 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Toast.module.css +72 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/Tooltip.module.css +42 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/WebBlock.module.css +141 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/index.js +8666 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/CodeBlock.module.css +130 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/JsonBlock.module.css +32 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/markdown/MarkdownText.module.css +462 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/BrandWordmark.d.ts +15 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Button.d.ts +18 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Checkbox.d.ts +20 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/CodeFileIcon.d.ts +12 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/ConnectionIndicator.d.ts +26 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/DiffBlock.d.ts +52 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/DisclosureRow.d.ts +29 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/FileTypeIcon.d.ts +43 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/FishLogo.d.ts +16 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/FoldToggle.d.ts +20 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/HoverCard.d.ts +24 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Input.d.ts +11 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/JsonTree.d.ts +59 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/LinkIcon.d.ts +49 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Menu.d.ts +90 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Modal.d.ts +36 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/OnboardingSurface.d.ts +11 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Pill.d.ts +13 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/ReadBlock.d.ts +47 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/ReferenceIcon.d.ts +16 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/RiskConfirmation.d.ts +20 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/SearchBlock.d.ts +72 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/SiteGlyph.d.ts +25 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/StateDot.d.ts +18 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Switch.d.ts +20 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Tag.d.ts +32 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/TerminalBlock.d.ts +66 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Toast.d.ts +32 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/Tooltip.d.ts +34 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/WebBlock.d.ts +61 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/ansi.d.ts +17 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/clipboard.d.ts +9 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/code-file-icon-artwork.d.ts +54 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/code-file-types.d.ts +30 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/darwin-desktop.d.ts +9 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/file-size.d.ts +8 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/head-tail-cap.d.ts +23 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/icons/index.d.ts +200 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/icons/props.d.ts +9 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/index.d.ts +70 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/CodeBlock.d.ts +30 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/JsonBlock.d.ts +8 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/MarkdownDelegate.d.ts +36 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/MarkdownText.d.ts +49 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/cjkFriendlyStrong.d.ts +9 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/file-link.d.ts +13 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/highlight.d.ts +142 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/incremental.d.ts +80 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/katex.d.ts +27 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/mathCompatibility.d.ts +11 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/parse.d.ts +25 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/plain-text.d.ts +22 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/render.d.ts +138 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/markdown/useViewportHighlighting.d.ts +11 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/pointer-grace.d.ts +22 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/rank-by-name.d.ts +22 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/relative-time.d.ts +23 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/use-copy-feedback.d.ts +14 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/useAnchoredMaxHeight.d.ts +11 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/useAnchoredPosition.d.ts +34 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/useDismissOnOutsidePointer.d.ts +11 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/types/user-text.d.ts +37 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/lib/user-text.module.css +43 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-primitives/package.json +60 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-reference/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-reference/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-reference/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-reference/lib/client.js +19 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-reference/package.json +13 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-renderer/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-renderer/README.md +4 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-renderer/README.zh.md +4 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-renderer/lib/client.js +463 -57
- package/node_modules/@deepseek-ai/dsh-client-ui-renderer/package.json +3 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-schedule/package.json +10 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-session/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-session/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-session/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-session/lib/client.js +232 -72
- package/node_modules/@deepseek-ai/dsh-client-ui-session/package.json +8 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-settings/package.json +5 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +293 -27
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/package.json +11 -9
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/README.md +4 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/README.zh.md +4 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +244 -227
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/package.json +8 -6
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/README.md +6 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/README.zh.md +6 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +52 -10
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/package.json +12 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/README.md +24 -19
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/README.zh.md +23 -18
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +649 -509
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/package.json +10 -7
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-signin/package.json +7 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-settings-unarchive-sessions/package.json +11 -9
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/README.md +8 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/README.zh.md +8 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +105 -25
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/package.json +11 -7
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/README.md +117 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/README.zh.md +117 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/lib/client.js +821 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/lib/index.js +6 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-browser/package.json +60 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/README.md +39 -6
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/README.zh.md +39 -6
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.js +1821 -25130
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/client.pdf.js +32609 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/lib/index.js +26 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-documentpreview/package.json +25 -15
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-files/package.json +11 -9
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/README.md +9 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/README.zh.md +9 -3
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/lib/client.js +4538 -13
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-right/package.json +13 -10
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/README.md +8 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/README.zh.md +8 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.js +42 -13423
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/lib/client.terminal.js +13494 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-sidebar-terminal/package.json +14 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-skill/package.json +13 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/LICENSE +21 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/README.md +111 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/README.zh.md +111 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/lib/index.js +577 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/lib/types/index.d.ts +951 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/lib/types/renderer.d.ts +263 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/lib/types/store.d.ts +3 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-slots/package.json +37 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/README.md +3 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/README.zh.md +3 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +212 -16
- package/node_modules/@deepseek-ai/dsh-client-ui-subagent/package.json +22 -12
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/client.js +1 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/lib/index.js +1 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-theme/package.json +10 -8
- package/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +1 -0
- package/node_modules/@deepseek-ai/dsh-client-ui-tool/package.json +21 -19
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/README.md +5 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/README.zh.md +5 -1
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +132 -66
- package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/package.json +15 -13
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/README.md +6 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/README.zh.md +6 -4
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +71 -74
- package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/package.json +18 -15
- package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +12 -5
- package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/package.json +15 -11
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/README.md +10 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/README.zh.md +10 -2
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +403 -217
- package/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +18 -15
- package/node_modules/@deepseek-ai/dsh-cmdline/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-command-compact/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-command-feedback/package.json +11 -11
- package/node_modules/@deepseek-ai/dsh-command-goal/package.json +11 -11
- package/node_modules/@deepseek-ai/dsh-commands/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-compaction/package.json +11 -11
- package/node_modules/@deepseek-ai/dsh-compaction-basic/package.json +22 -22
- package/node_modules/@deepseek-ai/dsh-compaction-image-offload/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner/package.json +13 -13
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/README.md +7 -7
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/README.zh.md +7 -7
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/lib/client.js +736 -219
- package/node_modules/@deepseek-ai/dsh-cordis-client-runner/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/README.md +7 -7
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/README.zh.md +7 -7
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/lib/index.js +5 -5
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/lib/types/index.js +5 -8
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/lib/types/lifecycle.js +2 -2
- package/node_modules/@deepseek-ai/dsh-cordis-host-runner/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-credentials/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-credentials-local/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-deepseek-llm-api-extensions/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-deque/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/README.md +220 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/README.zh.md +220 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/index.js +1894 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/invariant.js +361 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/typert.host.js +879 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/typert.remote-client.js +218 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/activity.js +85 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/client.js +3 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/error.js +23 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/index.js +313 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/invariant.js +26 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/journal.js +63 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/lifecycle.js +85 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/mailbox.js +293 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/persisted.js +20 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/projection.js +260 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/roster.js +448 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/session-message.js +23 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/task-board.js +275 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/task-graph.js +62 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/types.js +26 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/lib/types/validation.js +33 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team/package.json +87 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-profile/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-profile/README.md +107 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-profile/README.zh.md +107 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-profile/cordis.patch.yml +30 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-profile/lib/index.js +1 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-profile/package.json +48 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-web-profile/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-web-profile/README.md +98 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-web-profile/README.zh.md +98 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-web-profile/cordis.patch.yml +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-web-profile/lib/index.js +1 -0
- package/node_modules/@deepseek-ai/dsh-experimental-agent-team-web-profile/package.json +47 -0
- package/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/README.md +98 -0
- package/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/README.zh.md +98 -0
- package/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/lib/client.js +4979 -0
- package/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/lib/index.js +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-client-ui-agent-team/package.json +81 -0
- package/node_modules/@deepseek-ai/dsh-experimental-tool-agent-team/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-experimental-tool-agent-team/README.md +159 -0
- package/node_modules/@deepseek-ai/dsh-experimental-tool-agent-team/README.zh.md +159 -0
- package/node_modules/@deepseek-ai/dsh-experimental-tool-agent-team/lib/index.js +550 -0
- package/node_modules/@deepseek-ai/dsh-experimental-tool-agent-team/package.json +59 -0
- package/node_modules/@deepseek-ai/dsh-file-reference/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-file-reference-local/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-fs/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-fs-local/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-fs-observation-policy/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-fs-sandbox/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-goal/package.json +22 -22
- package/node_modules/@deepseek-ai/dsh-goal-round-driver/package.json +15 -15
- package/node_modules/@deepseek-ai/dsh-headless/cordis.patch.yml +3 -0
- package/node_modules/@deepseek-ai/dsh-headless/package.json +17 -17
- package/node_modules/@deepseek-ai/dsh-hmr/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-hmr/README.md +95 -0
- package/node_modules/@deepseek-ai/dsh-hmr/README.zh.md +95 -0
- package/node_modules/@deepseek-ai/dsh-hmr/lib/index.js +672 -0
- package/node_modules/@deepseek-ai/{cordis-plugin-hmr → dsh-hmr}/package.json +18 -21
- package/node_modules/@deepseek-ai/dsh-home-paths/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-hook-protocol/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-hooks-claude-code/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-hooks-codex/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-host-directory-picker/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-auto/package.json +13 -13
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-browse/package.json +2 -2
- package/node_modules/@deepseek-ai/dsh-host-directory-picker-native/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-host-frontend-static/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-host-open-in-app/package.json +5 -5
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/lib/index.js +40 -24
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/lib/typert.host.js +2 -1
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/lib/typert.remote-client.js +2 -1
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/lib/types/index.js +36 -24
- package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-host-webserver/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-http-proxy/package.json +2 -2
- package/node_modules/@deepseek-ai/dsh-invariants/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-jobs/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-jobs-local/package.json +11 -11
- package/node_modules/@deepseek-ai/dsh-launch-environment/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-lazy-require/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-llm/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-llm/lib/index.js +2 -1
- package/node_modules/@deepseek-ai/dsh-llm/lib/typert.host.js +3 -2
- package/node_modules/@deepseek-ai/dsh-llm/lib/typert.remote-client.js +2 -1
- package/node_modules/@deepseek-ai/dsh-llm/lib/types/index.js +1 -0
- package/node_modules/@deepseek-ai/dsh-llm/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/README.md +4 -4
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/README.zh.md +4 -4
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/lib/index.js +33 -37
- package/node_modules/@deepseek-ai/dsh-llm-deepseek/package.json +37 -37
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/README.md +3 -2
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/README.zh.md +3 -2
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/lib/index.js +47 -3
- package/node_modules/@deepseek-ai/dsh-llm-pi-ai/package.json +21 -21
- package/node_modules/@deepseek-ai/dsh-llm-retry/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-mcp-client/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-mcp-resources/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-message-feedback/package.json +14 -14
- package/node_modules/@deepseek-ai/dsh-native-command/package.json +2 -2
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/README.md +105 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/README.zh.md +105 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/index.js +659 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/typert.host.js +193 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/typert.remote-client.js +94 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/types/errors.js +15 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/types/identity.js +23 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/types/index.js +287 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/types/output.js +47 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/types/queue.js +246 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/lib/types/types.js +2 -0
- package/node_modules/@deepseek-ai/dsh-office-to-pdf/package.json +64 -0
- package/node_modules/@deepseek-ai/dsh-output-retention/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-package-manifest/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-permission-presets/package.json +21 -21
- package/node_modules/@deepseek-ai/dsh-persona/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-plan-mode/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-plan-mode/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-plan-mode/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-plan-mode/lib/index.js +2 -1
- package/node_modules/@deepseek-ai/dsh-plan-mode/lib/types/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-plan-mode/package.json +22 -22
- package/node_modules/@deepseek-ai/dsh-plugin-manager/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/README.md +133 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/README.zh.md +133 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/index.js +1174 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/typert.host.js +604 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/typert.remote-client.js +393 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/build-approval.js +56 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/failure.js +8 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/index.js +623 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/install-failure.js +33 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/install-spec.js +73 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/operations.js +177 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/patch.js +50 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/tools.js +74 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/lib/types/types.js +2 -0
- package/node_modules/@deepseek-ai/dsh-plugin-manager/package.json +102 -0
- package/node_modules/@deepseek-ai/dsh-plugin-package-inventory-deepseek/package.json +13 -13
- package/node_modules/@deepseek-ai/dsh-ptc-runtime/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-ptc-runtime-node/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-ptc-runtime-node/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-ptc-runtime-node/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-ptc-runtime-node/lib/index.js +1 -1
- package/node_modules/@deepseek-ai/dsh-ptc-runtime-node/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-pwsh-local/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-pwsh-sandbox/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-repeat-tool-reminder/lib/index.js +2 -1
- package/node_modules/@deepseek-ai/dsh-repeat-tool-reminder/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-sandbox/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-sandbox/README.md +2 -2
- package/node_modules/@deepseek-ai/dsh-sandbox/README.zh.md +2 -2
- package/node_modules/@deepseek-ai/dsh-sandbox/lib/index.js +6 -9
- package/node_modules/@deepseek-ai/dsh-sandbox/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-sandbox-local/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-sandbox-policy/package.json +13 -13
- package/node_modules/@deepseek-ai/dsh-sandbox-windows-acl/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-schedule/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-scope/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-sdk-app/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-sdk-app/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-sdk-app/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-sdk-app/cordis.patch.yml +3 -0
- package/node_modules/@deepseek-ai/dsh-sdk-app/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-sdk-jsonrpc-server/package.json +21 -21
- package/node_modules/@deepseek-ai/dsh-sdk-minimal/package.json +28 -28
- package/node_modules/@deepseek-ai/dsh-sdk-protocol/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-session/lib/index.js +2 -1
- package/node_modules/@deepseek-ai/dsh-session/lib/types/known-event-types.js +1 -0
- package/node_modules/@deepseek-ai/dsh-session/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-session-checkpoint-policy/package.json +15 -15
- package/node_modules/@deepseek-ai/dsh-session-format/package.json +2 -2
- package/node_modules/@deepseek-ai/dsh-session-format-catalog/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-session-format-v0-to-v1/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-session-format-v1-to-v2/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-session-format-v2-to-v3/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-session-log-deepseek/package.json +14 -14
- package/node_modules/@deepseek-ai/dsh-session-log-export/package.json +19 -17
- package/node_modules/@deepseek-ai/dsh-session-persistence/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/lib/worker.cjs +7 -4
- package/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-session-projection/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-session-query/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-session-reference/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-session-reference/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-session-reference/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-session-reference/lib/index.js +20 -16
- package/node_modules/@deepseek-ai/dsh-session-reference/lib/typert.host.js +4 -3
- package/node_modules/@deepseek-ai/dsh-session-reference/lib/typert.remote-client.js +2 -1
- package/node_modules/@deepseek-ai/dsh-session-reference/lib/types/index.js +30 -23
- package/node_modules/@deepseek-ai/dsh-session-reference/package.json +34 -32
- package/node_modules/@deepseek-ai/dsh-session-stats/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-session-telemetry/package.json +5 -5
- package/node_modules/@deepseek-ai/dsh-session-telemetry-otel/package.json +19 -19
- package/node_modules/@deepseek-ai/dsh-session-title/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-session-title-llm/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-session-turn-outline/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-settings/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-settings-file/package.json +8 -8
- package/node_modules/@deepseek-ai/dsh-shell/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-shell-env/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-skill/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-skill-badge/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-skill-filesystem/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-spill/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-spill-local/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-spill-policy/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-storage/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-storage-domain/package.json +5 -5
- package/node_modules/@deepseek-ai/dsh-storage-json/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-subagent/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-subagent/README.md +12 -0
- package/node_modules/@deepseek-ai/dsh-subagent/README.zh.md +12 -0
- package/node_modules/@deepseek-ai/dsh-subagent/lib/index.js +116 -50
- package/node_modules/@deepseek-ai/dsh-subagent/lib/typert.host.js +11 -4
- package/node_modules/@deepseek-ai/dsh-subagent/lib/typert.remote-client.js +3 -3
- package/node_modules/@deepseek-ai/dsh-subagent/lib/types/continuation-activation.js +41 -4
- package/node_modules/@deepseek-ai/dsh-subagent/lib/types/continuation.js +2 -2
- package/node_modules/@deepseek-ai/dsh-subagent/lib/types/control.js +1 -0
- package/node_modules/@deepseek-ai/dsh-subagent/lib/types/index.js +29 -3
- package/node_modules/@deepseek-ai/dsh-subagent/package.json +54 -48
- package/node_modules/@deepseek-ai/dsh-subagent-acp/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-subagent-fork-in-process/package.json +14 -14
- package/node_modules/@deepseek-ai/dsh-subagent-in-process-driver/package.json +22 -22
- package/node_modules/@deepseek-ai/dsh-subagent-spawn-in-process/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-subprocess/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-subprocess/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-subprocess/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-subprocess/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-subprocess-local/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-subprocess-local/README.md +7 -0
- package/node_modules/@deepseek-ai/dsh-subprocess-local/README.zh.md +7 -0
- package/node_modules/@deepseek-ai/dsh-subprocess-local/lib/index.js +267 -20
- package/node_modules/@deepseek-ai/dsh-subprocess-local/lib/runner-launch-DGV26RBf.js +1525 -0
- package/node_modules/@deepseek-ai/dsh-subprocess-local/lib/runner.js +1 -1
- package/node_modules/@deepseek-ai/dsh-subprocess-local/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-system-prompt/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-terminal/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-terminal-bash/package.json +17 -17
- package/node_modules/@deepseek-ai/dsh-time-context/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-timeout/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-tmux-context/lib/index.js +2 -1
- package/node_modules/@deepseek-ai/dsh-tmux-context/package.json +11 -11
- package/node_modules/@deepseek-ai/dsh-token-meter/package.json +14 -14
- package/node_modules/@deepseek-ai/dsh-tool-ask-user/package.json +9 -9
- package/node_modules/@deepseek-ai/dsh-tool-bash/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-tool-bash/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-bash/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-bash/package.json +29 -29
- package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/package.json +17 -17
- package/node_modules/@deepseek-ai/dsh-tool-call-timeout-policy/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-tool-cordis/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-tool-cordis/README.md +11 -131
- package/node_modules/@deepseek-ai/dsh-tool-cordis/README.zh.md +15 -135
- package/node_modules/@deepseek-ai/dsh-tool-cordis/lib/index.js +688 -743
- package/node_modules/@deepseek-ai/dsh-tool-cordis/package.json +10 -16
- package/node_modules/@deepseek-ai/dsh-tool-fs/lib/index.js +10 -6
- package/node_modules/@deepseek-ai/dsh-tool-fs/package.json +27 -27
- package/node_modules/@deepseek-ai/dsh-tool-fs-search/package.json +20 -20
- package/node_modules/@deepseek-ai/dsh-tool-goal/package.json +16 -16
- package/node_modules/@deepseek-ai/dsh-tool-jobs/package.json +15 -15
- package/node_modules/@deepseek-ai/dsh-tool-present/README.i18n.yaml +1 -1
- package/node_modules/@deepseek-ai/dsh-tool-present/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-tool-pwsh/package.json +28 -28
- package/node_modules/@deepseek-ai/dsh-tool-pwsh-persistent/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-tool-ralph/package.json +19 -19
- package/node_modules/@deepseek-ai/dsh-tool-skill/package.json +12 -12
- package/node_modules/@deepseek-ai/dsh-tool-str-replace-editor/package.json +17 -17
- package/node_modules/@deepseek-ai/dsh-tool-subagent/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-tool-subagent/README.md +2 -2
- package/node_modules/@deepseek-ai/dsh-tool-subagent/README.zh.md +2 -2
- package/node_modules/@deepseek-ai/dsh-tool-subagent/lib/index.js +3 -3
- package/node_modules/@deepseek-ai/dsh-tool-subagent/package.json +28 -28
- package/node_modules/@deepseek-ai/dsh-tool-subagent-control/package.json +19 -19
- package/node_modules/@deepseek-ai/dsh-tool-todo/package.json +15 -15
- package/node_modules/@deepseek-ai/dsh-tool-web/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-tool-workflow/package.json +18 -18
- package/node_modules/@deepseek-ai/dsh-tools/package.json +24 -24
- package/node_modules/@deepseek-ai/dsh-tui-app/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-tui-app/README.md +30 -18
- package/node_modules/@deepseek-ai/dsh-tui-app/README.zh.md +30 -18
- package/node_modules/@deepseek-ai/dsh-tui-app/cordis.patch.yml +9 -0
- package/node_modules/@deepseek-ai/dsh-tui-app/lib/index.js +1510 -181
- package/node_modules/@deepseek-ai/dsh-tui-app/package.json +68 -62
- package/node_modules/@deepseek-ai/dsh-typert-loader/package.json +4 -4
- package/node_modules/@deepseek-ai/dsh-typert-protocol/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-typert-protocol/README.md +3 -1
- package/node_modules/@deepseek-ai/dsh-typert-protocol/README.zh.md +3 -1
- package/node_modules/@deepseek-ai/dsh-typert-protocol/lib/index.js +32 -1
- package/node_modules/@deepseek-ai/dsh-typert-protocol/lib/types/index.js +1 -0
- package/node_modules/@deepseek-ai/dsh-typert-protocol/lib/types/owned-value.js +32 -0
- package/node_modules/@deepseek-ai/dsh-typert-protocol/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-typert-registry/package.json +2 -2
- package/node_modules/@deepseek-ai/dsh-user-approval/package.json +15 -15
- package/node_modules/@deepseek-ai/dsh-user-questions/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-user-questions/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-user-questions/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-user-questions/lib/index.js +2 -1
- package/node_modules/@deepseek-ai/dsh-user-questions/lib/types/plan-review.js +5 -1
- package/node_modules/@deepseek-ai/dsh-user-questions/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-util-crypto/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-util-time/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-util-values/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-util-values/README.md +6 -3
- package/node_modules/@deepseek-ai/dsh-util-values/README.zh.md +6 -3
- package/node_modules/@deepseek-ai/dsh-util-values/lib/index.js +62 -1
- package/node_modules/@deepseek-ai/dsh-util-values/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-util-workspace-path/package.json +1 -1
- package/node_modules/@deepseek-ai/dsh-web/package.json +3 -3
- package/node_modules/@deepseek-ai/dsh-web-app/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-web-app/README.md +1 -1
- package/node_modules/@deepseek-ai/dsh-web-app/README.zh.md +1 -1
- package/node_modules/@deepseek-ai/dsh-web-app/cordis.patch.yml +35 -12
- package/node_modules/@deepseek-ai/dsh-web-app/package.json +98 -86
- package/node_modules/@deepseek-ai/dsh-web-fetch-http/package.json +7 -7
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-8VXBH-f-.js +127 -0
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-lP1BfJ4l.css +1 -0
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/index.html +2 -2
- package/node_modules/@deepseek-ai/dsh-web-frontend/package.json +9 -6
- package/node_modules/@deepseek-ai/dsh-web-search-deepseek/package.json +15 -15
- package/node_modules/@deepseek-ai/dsh-web-search-exa/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-web-search-perplexity/package.json +6 -6
- package/node_modules/@deepseek-ai/dsh-webhook/package.json +21 -21
- package/node_modules/@deepseek-ai/dsh-webhook-github/package.json +10 -10
- package/node_modules/@deepseek-ai/dsh-win32-process/README.i18n.yaml +2 -2
- package/node_modules/@deepseek-ai/dsh-win32-process/README.md +2 -0
- package/node_modules/@deepseek-ai/dsh-win32-process/README.zh.md +2 -0
- package/node_modules/@deepseek-ai/dsh-win32-process/lib/index.js +7 -4
- package/node_modules/@deepseek-ai/dsh-win32-process/package.json +2 -2
- package/node_modules/@deepseek-ai/dsh-workflow/package.json +11 -11
- package/node_modules/@deepseek-ai/dsh-workflow-ptc/package.json +33 -33
- package/node_modules/@deepseek-ai/dsh-workspace/package.json +14 -14
- package/node_modules/@deepseek-ai/dsh-workspace-changes/README.i18n.yaml +6 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/README.md +108 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/README.zh.md +108 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/index.js +1106 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/capture.js +107 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/compare.js +56 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/git.js +224 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/index.js +139 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/numstat.js +45 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/paths.js +106 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/recorder.js +333 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/lib/types/types.js +2 -0
- package/node_modules/@deepseek-ai/dsh-workspace-changes/package.json +56 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/LICENSE +373 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/NOTICE +26 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/README.md +73 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/README.zh.md +73 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/lib/index.js +924 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/lib/worker.js +800 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/CHANGELOG.md +115 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/LICENSE +21 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/README.md +558 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/esm/browser.js +2665 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/esm/index.mjs +2679 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/lib/browser.cjs +2688 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/lib/index.cjs +2668 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/lib/node-worker.cjs +32 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/lib/node.cjs +2700 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/lib/worker.cjs +20 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/package.json +127 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/node_modules/fflate/umd/index.js +1 -0
- package/node_modules/@deepseek-ai/libreoffice-kit/package.json +39 -0
- package/node_modules/@sec-ant/readable-stream/LICENSE +21 -0
- package/node_modules/@sec-ant/readable-stream/README.md +230 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/asyncIterator.js +5 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/fromAnyIterable.js +5 -0
- package/node_modules/@sec-ant/readable-stream/dist/index/index.js +8 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/asyncIterator.js +3 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/fromAnyIterable.js +2 -0
- package/node_modules/@sec-ant/readable-stream/dist/polyfill/index.js +4 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js +89 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/fromAnyIterable.js +34 -0
- package/node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js +6 -0
- package/node_modules/@sec-ant/readable-stream/package.json +73 -0
- package/node_modules/@sindresorhus/merge-streams/index.js +265 -0
- package/node_modules/@sindresorhus/merge-streams/license +9 -0
- package/node_modules/@sindresorhus/merge-streams/package.json +46 -0
- package/node_modules/@sindresorhus/merge-streams/readme.md +53 -0
- package/node_modules/@swc/helpers/LICENSE +201 -0
- package/node_modules/@swc/helpers/_/_apply_decorated_descriptor/package.json +4 -0
- package/node_modules/@swc/helpers/_/_apply_decs_2203_r/package.json +4 -0
- package/node_modules/@swc/helpers/_/_apply_decs_2311/package.json +4 -0
- package/node_modules/@swc/helpers/_/_array_like_to_array/package.json +4 -0
- package/node_modules/@swc/helpers/_/_array_with_holes/package.json +4 -0
- package/node_modules/@swc/helpers/_/_array_without_holes/package.json +4 -0
- package/node_modules/@swc/helpers/_/_assert_this_initialized/package.json +4 -0
- package/node_modules/@swc/helpers/_/_async_generator/package.json +4 -0
- package/node_modules/@swc/helpers/_/_async_generator_delegate/package.json +4 -0
- package/node_modules/@swc/helpers/_/_async_iterator/package.json +4 -0
- package/node_modules/@swc/helpers/_/_async_to_generator/package.json +4 -0
- package/node_modules/@swc/helpers/_/_await_async_generator/package.json +4 -0
- package/node_modules/@swc/helpers/_/_await_value/package.json +4 -0
- package/node_modules/@swc/helpers/_/_call_super/package.json +4 -0
- package/node_modules/@swc/helpers/_/_check_private_redeclaration/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_apply_descriptor_destructure/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_apply_descriptor_get/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_apply_descriptor_set/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_apply_descriptor_update/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_call_check/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_check_private_static_access/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_check_private_static_field_descriptor/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_extract_field_descriptor/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_name_tdz_error/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_destructure/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_get/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_init/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_set/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_field_update/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_method_get/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_method_init/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_private_method_set/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_static_private_field_destructure/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_static_private_field_spec_get/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_static_private_field_spec_set/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_static_private_field_update/package.json +4 -0
- package/node_modules/@swc/helpers/_/_class_static_private_method_get/package.json +4 -0
- package/node_modules/@swc/helpers/_/_construct/package.json +4 -0
- package/node_modules/@swc/helpers/_/_create_class/package.json +4 -0
- package/node_modules/@swc/helpers/_/_create_for_of_iterator_helper_loose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_create_super/package.json +4 -0
- package/node_modules/@swc/helpers/_/_decorate/package.json +4 -0
- package/node_modules/@swc/helpers/_/_defaults/package.json +4 -0
- package/node_modules/@swc/helpers/_/_define_enumerable_properties/package.json +4 -0
- package/node_modules/@swc/helpers/_/_define_property/package.json +4 -0
- package/node_modules/@swc/helpers/_/_dispose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_export_star/package.json +4 -0
- package/node_modules/@swc/helpers/_/_extends/package.json +4 -0
- package/node_modules/@swc/helpers/_/_get/package.json +4 -0
- package/node_modules/@swc/helpers/_/_get_prototype_of/package.json +4 -0
- package/node_modules/@swc/helpers/_/_identity/package.json +4 -0
- package/node_modules/@swc/helpers/_/_inherits/package.json +4 -0
- package/node_modules/@swc/helpers/_/_inherits_loose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_initializer_define_property/package.json +4 -0
- package/node_modules/@swc/helpers/_/_initializer_warning_helper/package.json +4 -0
- package/node_modules/@swc/helpers/_/_instanceof/package.json +4 -0
- package/node_modules/@swc/helpers/_/_interop_require_default/package.json +4 -0
- package/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json +4 -0
- package/node_modules/@swc/helpers/_/_is_native_function/package.json +4 -0
- package/node_modules/@swc/helpers/_/_is_native_reflect_construct/package.json +4 -0
- package/node_modules/@swc/helpers/_/_iterable_to_array/package.json +4 -0
- package/node_modules/@swc/helpers/_/_iterable_to_array_limit/package.json +4 -0
- package/node_modules/@swc/helpers/_/_iterable_to_array_limit_loose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_jsx/package.json +4 -0
- package/node_modules/@swc/helpers/_/_new_arrow_check/package.json +4 -0
- package/node_modules/@swc/helpers/_/_non_iterable_rest/package.json +4 -0
- package/node_modules/@swc/helpers/_/_non_iterable_spread/package.json +4 -0
- package/node_modules/@swc/helpers/_/_object_destructuring_empty/package.json +4 -0
- package/node_modules/@swc/helpers/_/_object_spread/package.json +4 -0
- package/node_modules/@swc/helpers/_/_object_spread_props/package.json +4 -0
- package/node_modules/@swc/helpers/_/_object_without_properties/package.json +4 -0
- package/node_modules/@swc/helpers/_/_object_without_properties_loose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_overload_yield/package.json +4 -0
- package/node_modules/@swc/helpers/_/_possible_constructor_return/package.json +4 -0
- package/node_modules/@swc/helpers/_/_read_only_error/package.json +4 -0
- package/node_modules/@swc/helpers/_/_set/package.json +4 -0
- package/node_modules/@swc/helpers/_/_set_prototype_of/package.json +4 -0
- package/node_modules/@swc/helpers/_/_skip_first_generator_next/package.json +4 -0
- package/node_modules/@swc/helpers/_/_sliced_to_array/package.json +4 -0
- package/node_modules/@swc/helpers/_/_sliced_to_array_loose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_super_prop_base/package.json +4 -0
- package/node_modules/@swc/helpers/_/_tagged_template_literal/package.json +4 -0
- package/node_modules/@swc/helpers/_/_tagged_template_literal_loose/package.json +4 -0
- package/node_modules/@swc/helpers/_/_throw/package.json +4 -0
- package/node_modules/@swc/helpers/_/_to_array/package.json +4 -0
- package/node_modules/@swc/helpers/_/_to_consumable_array/package.json +4 -0
- package/node_modules/@swc/helpers/_/_to_primitive/package.json +4 -0
- package/node_modules/@swc/helpers/_/_to_property_key/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_add_disposable_resource/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_decorate/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_dispose_resources/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_generator/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_metadata/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_param/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_rewrite_relative_import_extension/package.json +4 -0
- package/node_modules/@swc/helpers/_/_ts_values/package.json +4 -0
- package/node_modules/@swc/helpers/_/_type_of/package.json +4 -0
- package/node_modules/@swc/helpers/_/_unsupported_iterable_to_array/package.json +4 -0
- package/node_modules/@swc/helpers/_/_update/package.json +4 -0
- package/node_modules/@swc/helpers/_/_using/package.json +4 -0
- package/node_modules/@swc/helpers/_/_using_ctx/package.json +4 -0
- package/node_modules/@swc/helpers/_/_wrap_async_generator/package.json +4 -0
- package/node_modules/@swc/helpers/_/_wrap_native_super/package.json +4 -0
- package/node_modules/@swc/helpers/_/_wrap_reg_exp/package.json +4 -0
- package/node_modules/@swc/helpers/_/_write_only_error/package.json +4 -0
- package/node_modules/@swc/helpers/_/index/package.json +4 -0
- package/node_modules/@swc/helpers/cjs/_apply_decorated_descriptor.cjs +35 -0
- package/node_modules/@swc/helpers/cjs/_apply_decs_2203_r.cjs +574 -0
- package/node_modules/@swc/helpers/cjs/_apply_decs_2311.cjs +346 -0
- package/node_modules/@swc/helpers/cjs/_array_like_to_array.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_array_with_holes.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_array_without_holes.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_assert_this_initialized.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_async_generator.cjs +76 -0
- package/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs +53 -0
- package/node_modules/@swc/helpers/cjs/_async_iterator.cjs +46 -0
- package/node_modules/@swc/helpers/cjs/_async_to_generator.cjs +33 -0
- package/node_modules/@swc/helpers/cjs/_await_async_generator.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_await_value.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_call_super.cjs +19 -0
- package/node_modules/@swc/helpers/cjs/_check_private_redeclaration.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_destructure.cjs +25 -0
- package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_get.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_set.cjs +15 -0
- package/node_modules/@swc/helpers/cjs/_class_apply_descriptor_update.cjs +30 -0
- package/node_modules/@swc/helpers/cjs/_class_call_check.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_class_check_private_static_access.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_class_check_private_static_field_descriptor.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_class_extract_field_descriptor.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_class_name_tdz_error.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_destructure.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_get.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_init.cjs +9 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_set.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_class_private_field_update.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_class_private_method_get.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_class_private_method_init.cjs +9 -0
- package/node_modules/@swc/helpers/cjs/_class_private_method_set.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_class_static_private_field_destructure.cjs +13 -0
- package/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_get.cjs +13 -0
- package/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_set.cjs +14 -0
- package/node_modules/@swc/helpers/cjs/_class_static_private_field_update.cjs +13 -0
- package/node_modules/@swc/helpers/cjs/_class_static_private_method_get.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_construct.cjs +22 -0
- package/node_modules/@swc/helpers/cjs/_create_class.cjs +20 -0
- package/node_modules/@swc/helpers/cjs/_create_for_of_iterator_helper_loose.cjs +24 -0
- package/node_modules/@swc/helpers/cjs/_create_super.cjs +23 -0
- package/node_modules/@swc/helpers/cjs/_decorate.cjs +270 -0
- package/node_modules/@swc/helpers/cjs/_defaults.cjs +15 -0
- package/node_modules/@swc/helpers/cjs/_define_enumerable_properties.cjs +26 -0
- package/node_modules/@swc/helpers/cjs/_define_property.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_dispose.cjs +43 -0
- package/node_modules/@swc/helpers/cjs/_export_star.cjs +17 -0
- package/node_modules/@swc/helpers/cjs/_extends.cjs +15 -0
- package/node_modules/@swc/helpers/cjs/_get.cjs +23 -0
- package/node_modules/@swc/helpers/cjs/_get_prototype_of.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_identity.cjs +7 -0
- package/node_modules/@swc/helpers/cjs/_inherits.cjs +14 -0
- package/node_modules/@swc/helpers/cjs/_inherits_loose.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_initializer_define_property.cjs +13 -0
- package/node_modules/@swc/helpers/cjs/_initializer_warning_helper.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_instanceof.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
- package/node_modules/@swc/helpers/cjs/_is_native_function.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_is_native_reflect_construct.cjs +18 -0
- package/node_modules/@swc/helpers/cjs/_iterable_to_array.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_iterable_to_array_limit.cjs +31 -0
- package/node_modules/@swc/helpers/cjs/_iterable_to_array_limit_loose.cjs +17 -0
- package/node_modules/@swc/helpers/cjs/_jsx.cjs +28 -0
- package/node_modules/@swc/helpers/cjs/_new_arrow_check.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_non_iterable_rest.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_object_destructuring_empty.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_object_spread.cjs +25 -0
- package/node_modules/@swc/helpers/cjs/_object_spread_props.cjs +30 -0
- package/node_modules/@swc/helpers/cjs/_object_without_properties.cjs +35 -0
- package/node_modules/@swc/helpers/cjs/_object_without_properties_loose.cjs +16 -0
- package/node_modules/@swc/helpers/cjs/_overload_yield.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_possible_constructor_return.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_read_only_error.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_set.cjs +44 -0
- package/node_modules/@swc/helpers/cjs/_set_prototype_of.cjs +12 -0
- package/node_modules/@swc/helpers/cjs/_skip_first_generator_next.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_sliced_to_array.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_sliced_to_array_loose.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_super_prop_base.cjs +13 -0
- package/node_modules/@swc/helpers/cjs/_tagged_template_literal.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_tagged_template_literal_loose.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_throw.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/_to_array.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_to_consumable_array.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_to_primitive.cjs +18 -0
- package/node_modules/@swc/helpers/cjs/_to_property_key.cjs +11 -0
- package/node_modules/@swc/helpers/cjs/_ts_add_disposable_resource.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_ts_decorate.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_ts_dispose_resources.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_ts_generator.cjs +31 -0
- package/node_modules/@swc/helpers/cjs/_ts_metadata.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_ts_param.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_ts_rewrite_relative_import_extension.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_ts_values.cjs +3 -0
- package/node_modules/@swc/helpers/cjs/_type_of.cjs +8 -0
- package/node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs +15 -0
- package/node_modules/@swc/helpers/cjs/_update.cjs +16 -0
- package/node_modules/@swc/helpers/cjs/_using.cjs +24 -0
- package/node_modules/@swc/helpers/cjs/_using_ctx.cjs +75 -0
- package/node_modules/@swc/helpers/cjs/_wrap_async_generator.cjs +10 -0
- package/node_modules/@swc/helpers/cjs/_wrap_native_super.cjs +28 -0
- package/node_modules/@swc/helpers/cjs/_wrap_reg_exp.cjs +84 -0
- package/node_modules/@swc/helpers/cjs/_write_only_error.cjs +6 -0
- package/node_modules/@swc/helpers/cjs/index.cjs +439 -0
- package/node_modules/@swc/helpers/esm/_apply_decorated_descriptor.js +33 -0
- package/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js +572 -0
- package/node_modules/@swc/helpers/esm/_apply_decs_2311.js +344 -0
- package/node_modules/@swc/helpers/esm/_array_like_to_array.js +8 -0
- package/node_modules/@swc/helpers/esm/_array_with_holes.js +4 -0
- package/node_modules/@swc/helpers/esm/_array_without_holes.js +6 -0
- package/node_modules/@swc/helpers/esm/_assert_this_initialized.js +6 -0
- package/node_modules/@swc/helpers/esm/_async_generator.js +74 -0
- package/node_modules/@swc/helpers/esm/_async_generator_delegate.js +51 -0
- package/node_modules/@swc/helpers/esm/_async_iterator.js +44 -0
- package/node_modules/@swc/helpers/esm/_async_to_generator.js +31 -0
- package/node_modules/@swc/helpers/esm/_await_async_generator.js +6 -0
- package/node_modules/@swc/helpers/esm/_await_value.js +4 -0
- package/node_modules/@swc/helpers/esm/_call_super.js +17 -0
- package/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +6 -0
- package/node_modules/@swc/helpers/esm/_class_apply_descriptor_destructure.js +23 -0
- package/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +6 -0
- package/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +13 -0
- package/node_modules/@swc/helpers/esm/_class_apply_descriptor_update.js +28 -0
- package/node_modules/@swc/helpers/esm/_class_call_check.js +4 -0
- package/node_modules/@swc/helpers/esm/_class_check_private_static_access.js +4 -0
- package/node_modules/@swc/helpers/esm/_class_check_private_static_field_descriptor.js +6 -0
- package/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +6 -0
- package/node_modules/@swc/helpers/esm/_class_name_tdz_error.js +4 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_destructure.js +8 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_get.js +8 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_init.js +7 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js +8 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js +6 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_set.js +9 -0
- package/node_modules/@swc/helpers/esm/_class_private_field_update.js +8 -0
- package/node_modules/@swc/helpers/esm/_class_private_method_get.js +6 -0
- package/node_modules/@swc/helpers/esm/_class_private_method_init.js +7 -0
- package/node_modules/@swc/helpers/esm/_class_private_method_set.js +4 -0
- package/node_modules/@swc/helpers/esm/_class_static_private_field_destructure.js +11 -0
- package/node_modules/@swc/helpers/esm/_class_static_private_field_spec_get.js +11 -0
- package/node_modules/@swc/helpers/esm/_class_static_private_field_spec_set.js +12 -0
- package/node_modules/@swc/helpers/esm/_class_static_private_field_update.js +11 -0
- package/node_modules/@swc/helpers/esm/_class_static_private_method_get.js +8 -0
- package/node_modules/@swc/helpers/esm/_construct.js +20 -0
- package/node_modules/@swc/helpers/esm/_create_class.js +18 -0
- package/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js +22 -0
- package/node_modules/@swc/helpers/esm/_create_super.js +21 -0
- package/node_modules/@swc/helpers/esm/_decorate.js +268 -0
- package/node_modules/@swc/helpers/esm/_defaults.js +13 -0
- package/node_modules/@swc/helpers/esm/_define_enumerable_properties.js +24 -0
- package/node_modules/@swc/helpers/esm/_define_property.js +8 -0
- package/node_modules/@swc/helpers/esm/_dispose.js +41 -0
- package/node_modules/@swc/helpers/esm/_export_star.js +15 -0
- package/node_modules/@swc/helpers/esm/_extends.js +13 -0
- package/node_modules/@swc/helpers/esm/_get.js +21 -0
- package/node_modules/@swc/helpers/esm/_get_prototype_of.js +8 -0
- package/node_modules/@swc/helpers/esm/_identity.js +5 -0
- package/node_modules/@swc/helpers/esm/_inherits.js +12 -0
- package/node_modules/@swc/helpers/esm/_inherits_loose.js +6 -0
- package/node_modules/@swc/helpers/esm/_initializer_define_property.js +11 -0
- package/node_modules/@swc/helpers/esm/_initializer_warning_helper.js +9 -0
- package/node_modules/@swc/helpers/esm/_instanceof.js +8 -0
- package/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
- package/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
- package/node_modules/@swc/helpers/esm/_is_native_function.js +4 -0
- package/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js +16 -0
- package/node_modules/@swc/helpers/esm/_iterable_to_array.js +6 -0
- package/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js +29 -0
- package/node_modules/@swc/helpers/esm/_iterable_to_array_limit_loose.js +15 -0
- package/node_modules/@swc/helpers/esm/_jsx.js +26 -0
- package/node_modules/@swc/helpers/esm/_new_arrow_check.js +4 -0
- package/node_modules/@swc/helpers/esm/_non_iterable_rest.js +4 -0
- package/node_modules/@swc/helpers/esm/_non_iterable_spread.js +4 -0
- package/node_modules/@swc/helpers/esm/_object_destructuring_empty.js +6 -0
- package/node_modules/@swc/helpers/esm/_object_spread.js +23 -0
- package/node_modules/@swc/helpers/esm/_object_spread_props.js +28 -0
- package/node_modules/@swc/helpers/esm/_object_without_properties.js +33 -0
- package/node_modules/@swc/helpers/esm/_object_without_properties_loose.js +14 -0
- package/node_modules/@swc/helpers/esm/_overload_yield.js +6 -0
- package/node_modules/@swc/helpers/esm/_possible_constructor_return.js +9 -0
- package/node_modules/@swc/helpers/esm/_read_only_error.js +4 -0
- package/node_modules/@swc/helpers/esm/_set.js +42 -0
- package/node_modules/@swc/helpers/esm/_set_prototype_of.js +10 -0
- package/node_modules/@swc/helpers/esm/_skip_first_generator_next.js +9 -0
- package/node_modules/@swc/helpers/esm/_sliced_to_array.js +9 -0
- package/node_modules/@swc/helpers/esm/_sliced_to_array_loose.js +9 -0
- package/node_modules/@swc/helpers/esm/_super_prop_base.js +11 -0
- package/node_modules/@swc/helpers/esm/_tagged_template_literal.js +6 -0
- package/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js +8 -0
- package/node_modules/@swc/helpers/esm/_throw.js +4 -0
- package/node_modules/@swc/helpers/esm/_to_array.js +9 -0
- package/node_modules/@swc/helpers/esm/_to_consumable_array.js +9 -0
- package/node_modules/@swc/helpers/esm/_to_primitive.js +16 -0
- package/node_modules/@swc/helpers/esm/_to_property_key.js +9 -0
- package/node_modules/@swc/helpers/esm/_ts_add_disposable_resource.js +1 -0
- package/node_modules/@swc/helpers/esm/_ts_decorate.js +1 -0
- package/node_modules/@swc/helpers/esm/_ts_dispose_resources.js +1 -0
- package/node_modules/@swc/helpers/esm/_ts_generator.js +29 -0
- package/node_modules/@swc/helpers/esm/_ts_metadata.js +1 -0
- package/node_modules/@swc/helpers/esm/_ts_param.js +1 -0
- package/node_modules/@swc/helpers/esm/_ts_rewrite_relative_import_extension.js +1 -0
- package/node_modules/@swc/helpers/esm/_ts_values.js +1 -0
- package/node_modules/@swc/helpers/esm/_type_of.js +6 -0
- package/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js +13 -0
- package/node_modules/@swc/helpers/esm/_update.js +14 -0
- package/node_modules/@swc/helpers/esm/_using.js +22 -0
- package/node_modules/@swc/helpers/esm/_using_ctx.js +73 -0
- package/node_modules/@swc/helpers/esm/_wrap_async_generator.js +8 -0
- package/node_modules/@swc/helpers/esm/_wrap_native_super.js +26 -0
- package/node_modules/@swc/helpers/esm/_wrap_reg_exp.js +82 -0
- package/node_modules/@swc/helpers/esm/_write_only_error.js +4 -0
- package/node_modules/@swc/helpers/esm/index.js +110 -0
- package/node_modules/@swc/helpers/package.json +702 -0
- package/node_modules/@swc/helpers/scripts/ast_grep.js +218 -0
- package/node_modules/@swc/helpers/scripts/build.js +133 -0
- package/node_modules/@swc/helpers/scripts/errors.js +1 -0
- package/node_modules/@swc/helpers/scripts/utils.js +3 -0
- package/node_modules/@swc/helpers/src/_apply_decorated_descriptor.mjs +1 -0
- package/node_modules/@swc/helpers/src/_apply_decs_2203_r.mjs +1 -0
- package/node_modules/@swc/helpers/src/_apply_decs_2311.mjs +1 -0
- package/node_modules/@swc/helpers/src/_array_like_to_array.mjs +1 -0
- package/node_modules/@swc/helpers/src/_array_with_holes.mjs +1 -0
- package/node_modules/@swc/helpers/src/_array_without_holes.mjs +1 -0
- package/node_modules/@swc/helpers/src/_assert_this_initialized.mjs +1 -0
- package/node_modules/@swc/helpers/src/_async_generator.mjs +1 -0
- package/node_modules/@swc/helpers/src/_async_generator_delegate.mjs +1 -0
- package/node_modules/@swc/helpers/src/_async_iterator.mjs +1 -0
- package/node_modules/@swc/helpers/src/_async_to_generator.mjs +1 -0
- package/node_modules/@swc/helpers/src/_await_async_generator.mjs +1 -0
- package/node_modules/@swc/helpers/src/_await_value.mjs +1 -0
- package/node_modules/@swc/helpers/src/_call_super.mjs +1 -0
- package/node_modules/@swc/helpers/src/_check_private_redeclaration.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_apply_descriptor_destructure.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_apply_descriptor_get.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_apply_descriptor_set.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_apply_descriptor_update.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_call_check.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_check_private_static_access.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_check_private_static_field_descriptor.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_extract_field_descriptor.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_name_tdz_error.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_destructure.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_get.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_init.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_loose_base.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_loose_key.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_set.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_field_update.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_method_get.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_method_init.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_private_method_set.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_static_private_field_destructure.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_static_private_field_spec_get.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_static_private_field_spec_set.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_static_private_field_update.mjs +1 -0
- package/node_modules/@swc/helpers/src/_class_static_private_method_get.mjs +1 -0
- package/node_modules/@swc/helpers/src/_construct.mjs +1 -0
- package/node_modules/@swc/helpers/src/_create_class.mjs +1 -0
- package/node_modules/@swc/helpers/src/_create_for_of_iterator_helper_loose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_create_super.mjs +1 -0
- package/node_modules/@swc/helpers/src/_decorate.mjs +1 -0
- package/node_modules/@swc/helpers/src/_defaults.mjs +1 -0
- package/node_modules/@swc/helpers/src/_define_enumerable_properties.mjs +1 -0
- package/node_modules/@swc/helpers/src/_define_property.mjs +1 -0
- package/node_modules/@swc/helpers/src/_dispose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_export_star.mjs +1 -0
- package/node_modules/@swc/helpers/src/_extends.mjs +1 -0
- package/node_modules/@swc/helpers/src/_get.mjs +1 -0
- package/node_modules/@swc/helpers/src/_get_prototype_of.mjs +1 -0
- package/node_modules/@swc/helpers/src/_identity.mjs +1 -0
- package/node_modules/@swc/helpers/src/_inherits.mjs +1 -0
- package/node_modules/@swc/helpers/src/_inherits_loose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_initializer_define_property.mjs +1 -0
- package/node_modules/@swc/helpers/src/_initializer_warning_helper.mjs +1 -0
- package/node_modules/@swc/helpers/src/_instanceof.mjs +1 -0
- package/node_modules/@swc/helpers/src/_interop_require_default.mjs +1 -0
- package/node_modules/@swc/helpers/src/_interop_require_wildcard.mjs +1 -0
- package/node_modules/@swc/helpers/src/_is_native_function.mjs +1 -0
- package/node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs +1 -0
- package/node_modules/@swc/helpers/src/_iterable_to_array.mjs +1 -0
- package/node_modules/@swc/helpers/src/_iterable_to_array_limit.mjs +1 -0
- package/node_modules/@swc/helpers/src/_iterable_to_array_limit_loose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_jsx.mjs +1 -0
- package/node_modules/@swc/helpers/src/_new_arrow_check.mjs +1 -0
- package/node_modules/@swc/helpers/src/_non_iterable_rest.mjs +1 -0
- package/node_modules/@swc/helpers/src/_non_iterable_spread.mjs +1 -0
- package/node_modules/@swc/helpers/src/_object_destructuring_empty.mjs +1 -0
- package/node_modules/@swc/helpers/src/_object_spread.mjs +1 -0
- package/node_modules/@swc/helpers/src/_object_spread_props.mjs +1 -0
- package/node_modules/@swc/helpers/src/_object_without_properties.mjs +1 -0
- package/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_overload_yield.mjs +1 -0
- package/node_modules/@swc/helpers/src/_possible_constructor_return.mjs +1 -0
- package/node_modules/@swc/helpers/src/_read_only_error.mjs +1 -0
- package/node_modules/@swc/helpers/src/_set.mjs +1 -0
- package/node_modules/@swc/helpers/src/_set_prototype_of.mjs +1 -0
- package/node_modules/@swc/helpers/src/_skip_first_generator_next.mjs +1 -0
- package/node_modules/@swc/helpers/src/_sliced_to_array.mjs +1 -0
- package/node_modules/@swc/helpers/src/_sliced_to_array_loose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_super_prop_base.mjs +1 -0
- package/node_modules/@swc/helpers/src/_tagged_template_literal.mjs +1 -0
- package/node_modules/@swc/helpers/src/_tagged_template_literal_loose.mjs +1 -0
- package/node_modules/@swc/helpers/src/_throw.mjs +1 -0
- package/node_modules/@swc/helpers/src/_to_array.mjs +1 -0
- package/node_modules/@swc/helpers/src/_to_consumable_array.mjs +1 -0
- package/node_modules/@swc/helpers/src/_to_primitive.mjs +1 -0
- package/node_modules/@swc/helpers/src/_to_property_key.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_add_disposable_resource.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_decorate.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_dispose_resources.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_generator.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_metadata.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_param.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_rewrite_relative_import_extension.mjs +1 -0
- package/node_modules/@swc/helpers/src/_ts_values.mjs +1 -0
- package/node_modules/@swc/helpers/src/_type_of.mjs +1 -0
- package/node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs +1 -0
- package/node_modules/@swc/helpers/src/_update.mjs +1 -0
- package/node_modules/@swc/helpers/src/_using.mjs +1 -0
- package/node_modules/@swc/helpers/src/_using_ctx.mjs +1 -0
- package/node_modules/@swc/helpers/src/_wrap_async_generator.mjs +1 -0
- package/node_modules/@swc/helpers/src/_wrap_native_super.mjs +1 -0
- package/node_modules/@swc/helpers/src/_wrap_reg_exp.mjs +1 -0
- package/node_modules/@swc/helpers/src/_write_only_error.mjs +1 -0
- package/node_modules/@swc/helpers/src/index.mjs +1 -0
- package/node_modules/brotli/build/encode.js +57 -0
- package/node_modules/brotli/build/mem.js +1 -0
- package/node_modules/brotli/compress.js +43 -0
- package/node_modules/brotli/dec/bit_reader.js +124 -0
- package/node_modules/brotli/dec/context.js +250 -0
- package/node_modules/brotli/dec/decode.js +938 -0
- package/node_modules/brotli/dec/dictionary-browser.js +14 -0
- package/node_modules/brotli/dec/dictionary-data.js +9469 -0
- package/node_modules/brotli/dec/dictionary.bin.js +1 -0
- package/node_modules/brotli/dec/dictionary.js +36 -0
- package/node_modules/brotli/dec/huffman.js +123 -0
- package/node_modules/brotli/dec/prefix.js +60 -0
- package/node_modules/brotli/dec/streams.js +34 -0
- package/node_modules/brotli/dec/transform.js +247 -0
- package/node_modules/brotli/decompress.js +1 -0
- package/node_modules/brotli/enc/pre.js +7 -0
- package/node_modules/brotli/index.js +2 -0
- package/node_modules/brotli/package.json +31 -0
- package/node_modules/brotli/readme.md +61 -0
- package/node_modules/clone/.npmignore +4 -0
- package/node_modules/clone/LICENSE +18 -0
- package/node_modules/clone/README.md +194 -0
- package/node_modules/clone/clone.iml +10 -0
- package/node_modules/clone/clone.js +257 -0
- package/node_modules/clone/package.json +53 -0
- package/node_modules/dfa/README.md +83 -0
- package/node_modules/dfa/compile.js +1834 -0
- package/node_modules/dfa/index.js +91 -0
- package/node_modules/dfa/package.json +38 -0
- package/node_modules/execa/index.js +25 -0
- package/node_modules/execa/lib/arguments/command-file.js +201 -0
- package/node_modules/execa/lib/arguments/command.js +20 -0
- package/node_modules/execa/lib/arguments/cwd.js +39 -0
- package/node_modules/execa/lib/arguments/encoding-option.js +50 -0
- package/node_modules/execa/lib/arguments/escape.js +88 -0
- package/node_modules/execa/lib/arguments/fd-options.js +109 -0
- package/node_modules/execa/lib/arguments/file-url.js +25 -0
- package/node_modules/execa/lib/arguments/options.js +105 -0
- package/node_modules/execa/lib/arguments/shell.js +11 -0
- package/node_modules/execa/lib/arguments/specific.js +112 -0
- package/node_modules/execa/lib/convert/add.js +19 -0
- package/node_modules/execa/lib/convert/concurrent.js +33 -0
- package/node_modules/execa/lib/convert/duplex.js +69 -0
- package/node_modules/execa/lib/convert/iterable.js +34 -0
- package/node_modules/execa/lib/convert/readable.js +129 -0
- package/node_modules/execa/lib/convert/shared.js +46 -0
- package/node_modules/execa/lib/convert/web.js +7 -0
- package/node_modules/execa/lib/convert/writable.js +111 -0
- package/node_modules/execa/lib/io/contents.js +116 -0
- package/node_modules/execa/lib/io/input-sync.js +44 -0
- package/node_modules/execa/lib/io/iterate.js +110 -0
- package/node_modules/execa/lib/io/max-buffer.js +89 -0
- package/node_modules/execa/lib/io/output-async.js +82 -0
- package/node_modules/execa/lib/io/output-sync.js +136 -0
- package/node_modules/execa/lib/io/pipeline.js +48 -0
- package/node_modules/execa/lib/io/strip-newline.js +12 -0
- package/node_modules/execa/lib/ipc/array.js +4 -0
- package/node_modules/execa/lib/ipc/buffer-messages.js +47 -0
- package/node_modules/execa/lib/ipc/forward.js +56 -0
- package/node_modules/execa/lib/ipc/get-each.js +113 -0
- package/node_modules/execa/lib/ipc/get-one.js +92 -0
- package/node_modules/execa/lib/ipc/graceful.js +72 -0
- package/node_modules/execa/lib/ipc/incoming.js +79 -0
- package/node_modules/execa/lib/ipc/ipc-input.js +50 -0
- package/node_modules/execa/lib/ipc/methods.js +50 -0
- package/node_modules/execa/lib/ipc/outgoing.js +53 -0
- package/node_modules/execa/lib/ipc/reference.js +48 -0
- package/node_modules/execa/lib/ipc/send.js +91 -0
- package/node_modules/execa/lib/ipc/strict.js +113 -0
- package/node_modules/execa/lib/ipc/validation.js +111 -0
- package/node_modules/execa/lib/methods/bind.js +23 -0
- package/node_modules/execa/lib/methods/command.js +27 -0
- package/node_modules/execa/lib/methods/create.js +63 -0
- package/node_modules/execa/lib/methods/main-async.js +235 -0
- package/node_modules/execa/lib/methods/main-sync.js +167 -0
- package/node_modules/execa/lib/methods/node.js +63 -0
- package/node_modules/execa/lib/methods/parameters.js +32 -0
- package/node_modules/execa/lib/methods/promise.js +2 -0
- package/node_modules/execa/lib/methods/script.js +22 -0
- package/node_modules/execa/lib/methods/template.js +153 -0
- package/node_modules/execa/lib/pipe/abort.js +20 -0
- package/node_modules/execa/lib/pipe/pipe-arguments.js +91 -0
- package/node_modules/execa/lib/pipe/sequence.js +24 -0
- package/node_modules/execa/lib/pipe/setup.js +230 -0
- package/node_modules/execa/lib/pipe/streaming.js +51 -0
- package/node_modules/execa/lib/pipe/throw.js +58 -0
- package/node_modules/execa/lib/resolve/all-async.js +46 -0
- package/node_modules/execa/lib/resolve/all-sync.js +33 -0
- package/node_modules/execa/lib/resolve/exit-async.js +54 -0
- package/node_modules/execa/lib/resolve/exit-sync.js +25 -0
- package/node_modules/execa/lib/resolve/stdio.js +47 -0
- package/node_modules/execa/lib/resolve/wait-stream.js +97 -0
- package/node_modules/execa/lib/resolve/wait-subprocess.js +150 -0
- package/node_modules/execa/lib/return/duration.js +8 -0
- package/node_modules/execa/lib/return/early-error.js +77 -0
- package/node_modules/execa/lib/return/final-error.js +44 -0
- package/node_modules/execa/lib/return/message.js +157 -0
- package/node_modules/execa/lib/return/reject.js +13 -0
- package/node_modules/execa/lib/return/result.js +186 -0
- package/node_modules/execa/lib/stdio/direction.js +89 -0
- package/node_modules/execa/lib/stdio/duplicate.js +119 -0
- package/node_modules/execa/lib/stdio/handle-async.js +52 -0
- package/node_modules/execa/lib/stdio/handle-sync.js +68 -0
- package/node_modules/execa/lib/stdio/handle.js +243 -0
- package/node_modules/execa/lib/stdio/input-option.js +54 -0
- package/node_modules/execa/lib/stdio/native.js +106 -0
- package/node_modules/execa/lib/stdio/stdio-option.js +95 -0
- package/node_modules/execa/lib/stdio/type.js +181 -0
- package/node_modules/execa/lib/terminate/cancel.js +20 -0
- package/node_modules/execa/lib/terminate/cleanup.js +16 -0
- package/node_modules/execa/lib/terminate/graceful.js +73 -0
- package/node_modules/execa/lib/terminate/kill-descendants.js +79 -0
- package/node_modules/execa/lib/terminate/kill.js +93 -0
- package/node_modules/execa/lib/terminate/signal.js +70 -0
- package/node_modules/execa/lib/terminate/timeout.js +21 -0
- package/node_modules/execa/lib/transform/encoding-transform.js +51 -0
- package/node_modules/execa/lib/transform/generator.js +107 -0
- package/node_modules/execa/lib/transform/normalize.js +106 -0
- package/node_modules/execa/lib/transform/object-mode.js +41 -0
- package/node_modules/execa/lib/transform/run-async.js +60 -0
- package/node_modules/execa/lib/transform/run-sync.js +50 -0
- package/node_modules/execa/lib/transform/split.js +112 -0
- package/node_modules/execa/lib/transform/validate.js +43 -0
- package/node_modules/execa/lib/utils/abort-signal.js +8 -0
- package/node_modules/execa/lib/utils/deferred.js +7 -0
- package/node_modules/execa/lib/utils/max-listeners.js +14 -0
- package/node_modules/execa/lib/utils/standard-stream.js +6 -0
- package/node_modules/execa/lib/utils/uint-array.js +69 -0
- package/node_modules/execa/lib/verbose/complete.js +24 -0
- package/node_modules/execa/lib/verbose/custom.js +26 -0
- package/node_modules/execa/lib/verbose/default.js +54 -0
- package/node_modules/execa/lib/verbose/error.js +13 -0
- package/node_modules/execa/lib/verbose/info.js +39 -0
- package/node_modules/execa/lib/verbose/ipc.js +15 -0
- package/node_modules/execa/lib/verbose/log.js +54 -0
- package/node_modules/execa/lib/verbose/output.js +60 -0
- package/node_modules/execa/lib/verbose/start.js +15 -0
- package/node_modules/execa/lib/verbose/values.js +33 -0
- package/node_modules/execa/license +9 -0
- package/node_modules/execa/package.json +124 -0
- package/node_modules/execa/readme.md +461 -0
- package/node_modules/fast-deep-equal/LICENSE +21 -0
- package/node_modules/fast-deep-equal/README.md +96 -0
- package/node_modules/fast-deep-equal/es6/index.js +72 -0
- package/node_modules/fast-deep-equal/es6/react.js +79 -0
- package/node_modules/fast-deep-equal/index.js +46 -0
- package/node_modules/fast-deep-equal/package.json +51 -0
- package/node_modules/fast-deep-equal/react.js +53 -0
- package/node_modules/figures/index.js +292 -0
- package/node_modules/figures/license +9 -0
- package/node_modules/figures/package.json +46 -0
- package/node_modules/figures/readme.md +337 -0
- package/node_modules/fontkit/README.md +266 -0
- package/node_modules/fontkit/dist/browser-module.mjs +13316 -0
- package/node_modules/fontkit/dist/browser.cjs +13333 -0
- package/node_modules/fontkit/dist/main.cjs +13355 -0
- package/node_modules/fontkit/dist/module.mjs +13337 -0
- package/node_modules/fontkit/package.json +87 -0
- package/node_modules/fontkit/src/CmapProcessor.js +286 -0
- package/node_modules/fontkit/src/DFont.js +117 -0
- package/node_modules/fontkit/src/TTFFont.js +554 -0
- package/node_modules/fontkit/src/TrueTypeCollection.js +67 -0
- package/node_modules/fontkit/src/WOFF2Font.js +216 -0
- package/node_modules/fontkit/src/WOFFFont.js +36 -0
- package/node_modules/fontkit/src/aat/AATFeatureMap.js +543 -0
- package/node_modules/fontkit/src/aat/AATLayoutEngine.js +49 -0
- package/node_modules/fontkit/src/aat/AATLookupTable.js +125 -0
- package/node_modules/fontkit/src/aat/AATMorxProcessor.js +430 -0
- package/node_modules/fontkit/src/aat/AATStateMachine.js +96 -0
- package/node_modules/fontkit/src/base.js +29 -0
- package/node_modules/fontkit/src/cff/CFFCharsets.js +99 -0
- package/node_modules/fontkit/src/cff/CFFDict.js +167 -0
- package/node_modules/fontkit/src/cff/CFFEncodings.js +48 -0
- package/node_modules/fontkit/src/cff/CFFFont.js +159 -0
- package/node_modules/fontkit/src/cff/CFFIndex.js +150 -0
- package/node_modules/fontkit/src/cff/CFFOperand.js +134 -0
- package/node_modules/fontkit/src/cff/CFFPointer.js +50 -0
- package/node_modules/fontkit/src/cff/CFFPrivateDict.js +39 -0
- package/node_modules/fontkit/src/cff/CFFStandardStrings.js +71 -0
- package/node_modules/fontkit/src/cff/CFFTop.js +237 -0
- package/node_modules/fontkit/src/decorators.js +36 -0
- package/node_modules/fontkit/src/encodings.js +219 -0
- package/node_modules/fontkit/src/fs.js +17 -0
- package/node_modules/fontkit/src/glyph/BBox.js +72 -0
- package/node_modules/fontkit/src/glyph/CFFGlyph.js +604 -0
- package/node_modules/fontkit/src/glyph/COLRGlyph.js +90 -0
- package/node_modules/fontkit/src/glyph/Glyph.js +212 -0
- package/node_modules/fontkit/src/glyph/GlyphVariationProcessor.js +486 -0
- package/node_modules/fontkit/src/glyph/Path.js +244 -0
- package/node_modules/fontkit/src/glyph/SBIXGlyph.js +54 -0
- package/node_modules/fontkit/src/glyph/StandardNames.js +27 -0
- package/node_modules/fontkit/src/glyph/TTFGlyph.js +393 -0
- package/node_modules/fontkit/src/glyph/TTFGlyphEncoder.js +158 -0
- package/node_modules/fontkit/src/glyph/WOFF2Glyph.js +17 -0
- package/node_modules/fontkit/src/index.js +15 -0
- package/node_modules/fontkit/src/layout/GlyphPosition.js +30 -0
- package/node_modules/fontkit/src/layout/GlyphRun.js +108 -0
- package/node_modules/fontkit/src/layout/KernProcessor.js +94 -0
- package/node_modules/fontkit/src/layout/LayoutEngine.js +189 -0
- package/node_modules/fontkit/src/layout/Script.js +231 -0
- package/node_modules/fontkit/src/layout/UnicodeLayoutEngine.js +250 -0
- package/node_modules/fontkit/src/node.js +17 -0
- package/node_modules/fontkit/src/opentype/GPOSProcessor.js +353 -0
- package/node_modules/fontkit/src/opentype/GSUBProcessor.js +192 -0
- package/node_modules/fontkit/src/opentype/GlyphInfo.js +57 -0
- package/node_modules/fontkit/src/opentype/GlyphIterator.js +70 -0
- package/node_modules/fontkit/src/opentype/OTLayoutEngine.js +113 -0
- package/node_modules/fontkit/src/opentype/OTProcessor.js +438 -0
- package/node_modules/fontkit/src/opentype/ShapingPlan.js +118 -0
- package/node_modules/fontkit/src/opentype/shapers/ArabicShaper.js +123 -0
- package/node_modules/fontkit/src/opentype/shapers/DefaultShaper.js +72 -0
- package/node_modules/fontkit/src/opentype/shapers/HangulShaper.js +285 -0
- package/node_modules/fontkit/src/opentype/shapers/IndicShaper.js +911 -0
- package/node_modules/fontkit/src/opentype/shapers/UniversalShaper.js +185 -0
- package/node_modules/fontkit/src/opentype/shapers/data.trie +0 -0
- package/node_modules/fontkit/src/opentype/shapers/gen-indic.js +208 -0
- package/node_modules/fontkit/src/opentype/shapers/gen-use.js +287 -0
- package/node_modules/fontkit/src/opentype/shapers/generate-data.js +33 -0
- package/node_modules/fontkit/src/opentype/shapers/index.js +102 -0
- package/node_modules/fontkit/src/opentype/shapers/indic-data.js +175 -0
- package/node_modules/fontkit/src/opentype/shapers/indic.json +1 -0
- package/node_modules/fontkit/src/opentype/shapers/indic.machine +31 -0
- package/node_modules/fontkit/src/opentype/shapers/indic.trie +0 -0
- package/node_modules/fontkit/src/opentype/shapers/use.json +1 -0
- package/node_modules/fontkit/src/opentype/shapers/use.machine +44 -0
- package/node_modules/fontkit/src/opentype/shapers/use.trie +0 -0
- package/node_modules/fontkit/src/subset/CFFSubset.js +171 -0
- package/node_modules/fontkit/src/subset/Subset.js +27 -0
- package/node_modules/fontkit/src/subset/TTFSubset.js +131 -0
- package/node_modules/fontkit/src/tables/BASE.js +78 -0
- package/node_modules/fontkit/src/tables/COLR.js +25 -0
- package/node_modules/fontkit/src/tables/CPAL.js +24 -0
- package/node_modules/fontkit/src/tables/DSIG.js +21 -0
- package/node_modules/fontkit/src/tables/EBDT.js +91 -0
- package/node_modules/fontkit/src/tables/EBLC.js +80 -0
- package/node_modules/fontkit/src/tables/GDEF.js +57 -0
- package/node_modules/fontkit/src/tables/GPOS.js +209 -0
- package/node_modules/fontkit/src/tables/GSUB.js +84 -0
- package/node_modules/fontkit/src/tables/HVAR.js +44 -0
- package/node_modules/fontkit/src/tables/JSTF.js +43 -0
- package/node_modules/fontkit/src/tables/LTSH.js +10 -0
- package/node_modules/fontkit/src/tables/OS2.js +84 -0
- package/node_modules/fontkit/src/tables/PCLT.js +21 -0
- package/node_modules/fontkit/src/tables/VDMX.js +33 -0
- package/node_modules/fontkit/src/tables/VORG.js +14 -0
- package/node_modules/fontkit/src/tables/WOFF2Directory.js +74 -0
- package/node_modules/fontkit/src/tables/WOFFDirectory.js +38 -0
- package/node_modules/fontkit/src/tables/aat.js +157 -0
- package/node_modules/fontkit/src/tables/avar.js +19 -0
- package/node_modules/fontkit/src/tables/bsln.js +31 -0
- package/node_modules/fontkit/src/tables/cmap.js +127 -0
- package/node_modules/fontkit/src/tables/cvt.js +6 -0
- package/node_modules/fontkit/src/tables/directory.js +58 -0
- package/node_modules/fontkit/src/tables/feat.js +28 -0
- package/node_modules/fontkit/src/tables/fpgm.js +8 -0
- package/node_modules/fontkit/src/tables/fvar.js +31 -0
- package/node_modules/fontkit/src/tables/gasp.js +15 -0
- package/node_modules/fontkit/src/tables/glyf.js +4 -0
- package/node_modules/fontkit/src/tables/gvar.js +27 -0
- package/node_modules/fontkit/src/tables/hdmx.js +15 -0
- package/node_modules/fontkit/src/tables/head.js +25 -0
- package/node_modules/fontkit/src/tables/hhea.js +19 -0
- package/node_modules/fontkit/src/tables/hmtx.js +11 -0
- package/node_modules/fontkit/src/tables/index.js +117 -0
- package/node_modules/fontkit/src/tables/just.js +81 -0
- package/node_modules/fontkit/src/tables/kern.js +91 -0
- package/node_modules/fontkit/src/tables/loca.js +30 -0
- package/node_modules/fontkit/src/tables/maxp.js +20 -0
- package/node_modules/fontkit/src/tables/morx.js +79 -0
- package/node_modules/fontkit/src/tables/name.js +130 -0
- package/node_modules/fontkit/src/tables/opbd.js +15 -0
- package/node_modules/fontkit/src/tables/opentype.js +217 -0
- package/node_modules/fontkit/src/tables/post.js +34 -0
- package/node_modules/fontkit/src/tables/prep.js +6 -0
- package/node_modules/fontkit/src/tables/sbix.js +17 -0
- package/node_modules/fontkit/src/tables/variations.js +81 -0
- package/node_modules/fontkit/src/tables/vhea.js +19 -0
- package/node_modules/fontkit/src/tables/vmtx.js +12 -0
- package/node_modules/fontkit/src/utils.js +62 -0
- package/node_modules/get-stream/license +9 -0
- package/node_modules/get-stream/package.json +56 -0
- package/node_modules/get-stream/readme.md +303 -0
- package/node_modules/get-stream/source/array-buffer.js +84 -0
- package/node_modules/get-stream/source/array.js +32 -0
- package/node_modules/get-stream/source/buffer.js +19 -0
- package/node_modules/get-stream/source/contents.js +121 -0
- package/node_modules/get-stream/source/exports.js +5 -0
- package/node_modules/get-stream/source/index.js +13 -0
- package/node_modules/get-stream/source/stream.js +65 -0
- package/node_modules/get-stream/source/string.js +41 -0
- package/node_modules/get-stream/source/utils.js +11 -0
- package/node_modules/human-signals/LICENSE +201 -0
- package/node_modules/human-signals/README.md +171 -0
- package/node_modules/human-signals/build/src/core.js +273 -0
- package/node_modules/human-signals/build/src/main.js +70 -0
- package/node_modules/human-signals/build/src/realtime.js +16 -0
- package/node_modules/human-signals/build/src/signals.js +34 -0
- package/node_modules/human-signals/package.json +63 -0
- package/node_modules/is-plain-obj/index.js +8 -0
- package/node_modules/is-plain-obj/license +9 -0
- package/node_modules/is-plain-obj/package.json +38 -0
- package/node_modules/is-plain-obj/readme.md +58 -0
- package/node_modules/is-stream/index.js +37 -0
- package/node_modules/is-stream/license +9 -0
- package/node_modules/is-stream/package.json +45 -0
- package/node_modules/is-stream/readme.md +57 -0
- package/node_modules/is-unicode-supported/index.js +21 -0
- package/node_modules/is-unicode-supported/license +9 -0
- package/node_modules/is-unicode-supported/package.json +44 -0
- package/node_modules/is-unicode-supported/readme.md +35 -0
- package/node_modules/npm-run-path/index.js +55 -0
- package/node_modules/npm-run-path/license +9 -0
- package/node_modules/npm-run-path/node_modules/path-key/index.js +12 -0
- package/node_modules/npm-run-path/node_modules/path-key/license +9 -0
- package/node_modules/npm-run-path/node_modules/path-key/package.json +41 -0
- package/node_modules/npm-run-path/node_modules/path-key/readme.md +57 -0
- package/node_modules/npm-run-path/package.json +49 -0
- package/node_modules/npm-run-path/readme.md +104 -0
- package/node_modules/pako/LICENSE +21 -0
- package/node_modules/pako/README.md +176 -0
- package/node_modules/pako/dist/pako.js +6606 -0
- package/node_modules/pako/dist/pako.min.js +3 -0
- package/node_modules/pako/dist/pako_deflate.js +3879 -0
- package/node_modules/pako/dist/pako_deflate.min.js +2 -0
- package/node_modules/pako/dist/pako_inflate.js +3127 -0
- package/node_modules/pako/dist/pako_inflate.min.js +2 -0
- package/node_modules/pako/index.js +14 -0
- package/node_modules/pako/lib/deflate.js +400 -0
- package/node_modules/pako/lib/inflate.js +418 -0
- package/node_modules/pako/lib/utils/common.js +102 -0
- package/node_modules/pako/lib/utils/strings.js +185 -0
- package/node_modules/pako/lib/zlib/adler32.js +32 -0
- package/node_modules/pako/lib/zlib/constants.js +50 -0
- package/node_modules/pako/lib/zlib/crc32.js +41 -0
- package/node_modules/pako/lib/zlib/deflate.js +1855 -0
- package/node_modules/pako/lib/zlib/gzheader.js +40 -0
- package/node_modules/pako/lib/zlib/inffast.js +326 -0
- package/node_modules/pako/lib/zlib/inflate.js +1538 -0
- package/node_modules/pako/lib/zlib/inftrees.js +327 -0
- package/node_modules/pako/lib/zlib/messages.js +13 -0
- package/node_modules/pako/lib/zlib/trees.js +1202 -0
- package/node_modules/pako/lib/zlib/zstream.js +29 -0
- package/node_modules/pako/package.json +40 -0
- package/node_modules/parse-ms/index.js +45 -0
- package/node_modules/parse-ms/license +9 -0
- package/node_modules/parse-ms/package.json +44 -0
- package/node_modules/parse-ms/readme.md +46 -0
- package/node_modules/pretty-ms/index.js +150 -0
- package/node_modules/pretty-ms/license +9 -0
- package/node_modules/pretty-ms/package.json +52 -0
- package/node_modules/pretty-ms/readme.md +198 -0
- package/node_modules/restructure/LICENSE +21 -0
- package/node_modules/restructure/README.md +300 -0
- package/node_modules/restructure/dist/main.cjs +1019 -0
- package/node_modules/restructure/index.js +17 -0
- package/node_modules/restructure/package.json +36 -0
- package/node_modules/restructure/src/Array.js +106 -0
- package/node_modules/restructure/src/Base.js +17 -0
- package/node_modules/restructure/src/Bitfield.js +39 -0
- package/node_modules/restructure/src/Boolean.js +22 -0
- package/node_modules/restructure/src/Buffer.js +38 -0
- package/node_modules/restructure/src/DecodeStream.js +85 -0
- package/node_modules/restructure/src/EncodeStream.js +129 -0
- package/node_modules/restructure/src/Enum.js +27 -0
- package/node_modules/restructure/src/LazyArray.js +74 -0
- package/node_modules/restructure/src/Number.js +77 -0
- package/node_modules/restructure/src/Optional.js +44 -0
- package/node_modules/restructure/src/Pointer.js +167 -0
- package/node_modules/restructure/src/Reserved.js +23 -0
- package/node_modules/restructure/src/String.js +155 -0
- package/node_modules/restructure/src/Struct.js +113 -0
- package/node_modules/restructure/src/VersionedStruct.js +139 -0
- package/node_modules/restructure/src/utils.js +35 -0
- package/node_modules/restructure/test/Array.js +103 -0
- package/node_modules/restructure/test/Bitfield.js +29 -0
- package/node_modules/restructure/test/Boolean.js +39 -0
- package/node_modules/restructure/test/Buffer.js +45 -0
- package/node_modules/restructure/test/DecodeStream.js +101 -0
- package/node_modules/restructure/test/EncodeStream.js +104 -0
- package/node_modules/restructure/test/Enum.js +24 -0
- package/node_modules/restructure/test/LazyArray.js +59 -0
- package/node_modules/restructure/test/Number.js +356 -0
- package/node_modules/restructure/test/Optional.js +100 -0
- package/node_modules/restructure/test/Pointer.js +289 -0
- package/node_modules/restructure/test/Reserved.js +26 -0
- package/node_modules/restructure/test/String.js +151 -0
- package/node_modules/restructure/test/Struct.js +146 -0
- package/node_modules/restructure/test/VersionedStruct.js +495 -0
- package/node_modules/saxes/README.md +323 -0
- package/node_modules/saxes/package.json +55 -0
- package/node_modules/saxes/saxes.js +2053 -0
- package/node_modules/signal-exit/LICENSE.txt +16 -0
- package/node_modules/signal-exit/README.md +74 -0
- package/node_modules/signal-exit/dist/cjs/browser.js +10 -0
- package/node_modules/signal-exit/dist/cjs/index.js +279 -0
- package/node_modules/signal-exit/dist/cjs/package.json +3 -0
- package/node_modules/signal-exit/dist/cjs/signals.js +42 -0
- package/node_modules/signal-exit/dist/mjs/browser.js +4 -0
- package/node_modules/signal-exit/dist/mjs/index.js +275 -0
- package/node_modules/signal-exit/dist/mjs/package.json +3 -0
- package/node_modules/signal-exit/dist/mjs/signals.js +39 -0
- package/node_modules/signal-exit/package.json +93 -0
- package/node_modules/strip-final-newline/index.js +26 -0
- package/node_modules/strip-final-newline/license +9 -0
- package/node_modules/strip-final-newline/package.json +46 -0
- package/node_modules/strip-final-newline/readme.md +34 -0
- package/node_modules/tiny-inflate/LICENSE +21 -0
- package/node_modules/tiny-inflate/index.js +375 -0
- package/node_modules/tiny-inflate/package.json +25 -0
- package/node_modules/tiny-inflate/readme.md +31 -0
- package/node_modules/tiny-inflate/test/index.js +75 -0
- package/node_modules/tiny-inflate/test/lorem.txt +199 -0
- package/node_modules/unicode-properties/LICENSE +8 -0
- package/node_modules/unicode-properties/dist/main.cjs +150 -0
- package/node_modules/unicode-properties/dist/module.mjs +127 -0
- package/node_modules/unicode-properties/package.json +44 -0
- package/node_modules/unicode-properties/readme.md +78 -0
- package/node_modules/unicode-trie/LICENSE +8 -0
- package/node_modules/unicode-trie/README.md +77 -0
- package/node_modules/unicode-trie/builder.js +966 -0
- package/node_modules/unicode-trie/index.js +136 -0
- package/node_modules/unicode-trie/package.json +23 -0
- package/node_modules/unicode-trie/swap.js +25 -0
- package/node_modules/unicode-trie/test/mocha.opts +1 -0
- package/node_modules/unicode-trie/test/test.js +243 -0
- package/node_modules/unicorn-magic/default.js +14 -0
- package/node_modules/unicorn-magic/license +9 -0
- package/node_modules/unicorn-magic/node.js +49 -0
- package/node_modules/unicorn-magic/package.json +59 -0
- package/node_modules/unicorn-magic/readme.md +25 -0
- package/node_modules/which-command/cli.js +74 -0
- package/node_modules/which-command/index.js +170 -0
- package/node_modules/which-command/license +9 -0
- package/node_modules/which-command/package.json +46 -0
- package/node_modules/which-command/readme.md +121 -0
- package/node_modules/xmlchars/LICENSE +18 -0
- package/node_modules/xmlchars/README.md +33 -0
- package/node_modules/xmlchars/package.json +34 -0
- package/node_modules/xmlchars/xml/1.0/ed4.js +44 -0
- package/node_modules/xmlchars/xml/1.0/ed5.js +105 -0
- package/node_modules/xmlchars/xml/1.1/ed2.js +145 -0
- package/node_modules/xmlchars/xmlchars.js +191 -0
- package/node_modules/xmlchars/xmlns/1.0/ed3.js +65 -0
- package/node_modules/yoctocolors/base.js +118 -0
- package/node_modules/yoctocolors/index.js +2 -0
- package/node_modules/yoctocolors/license +9 -0
- package/node_modules/yoctocolors/package.json +66 -0
- package/node_modules/yoctocolors/readme.md +163 -0
- package/package.json +337 -246
- package/node_modules/@deepseek-ai/cordis-plugin-hmr/README.md +0 -51
- package/node_modules/@deepseek-ai/cordis-plugin-hmr/lib/index.js +0 -401
- package/node_modules/@deepseek-ai/cordis-plugin-hmr/src/error.ts +0 -36
- package/node_modules/@deepseek-ai/cordis-plugin-hmr/src/index.ts +0 -427
- package/node_modules/@deepseek-ai/dsh/lib/plugin-Bk_PbPwP.js +0 -130
- package/node_modules/@deepseek-ai/dsh/lib/profile-boot-DB8eVKBx.js +0 -2
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-BRtJ62WN.css +0 -1
- package/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/index-Ly7KS3xS.js +0 -127
- /package/node_modules/@deepseek-ai/{cordis-plugin-hmr → dsh-hmr}/LICENSE +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { CURSOR_MARKER, Container, Editor, Input, Loader, Markdown, ProcessTerminal, SelectList, Text, TuiMainScreen, decodeKittyPrintable, fuzzyFilter, matchesKey, sliceByColumn, stripTerminalSequences, visibleWidth, wrapTextWithAnsi } from "@earendil-works/pi-tui";
|
|
2
|
+
import { CURSOR_MARKER, Container, Editor, Input, Loader, Markdown, ProcessTerminal, SelectList, Text, TuiMainScreen, decodeKittyPrintable, fuzzyFilter, matchesKey, sliceByColumn, stripTerminalSequences, truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@earendil-works/pi-tui";
|
|
3
3
|
import z from "@deepseek-ai/schemastery";
|
|
4
4
|
import { brandString } from "@deepseek-ai/dsh-brand";
|
|
5
5
|
import { installModelSelection } from "@deepseek-ai/dsh-agent";
|
|
@@ -416,6 +416,20 @@ function toolResultLines(view, content) {
|
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
418
|
/**
|
|
419
|
+
* Cut rows to a maximum, naming what was left out on one trailing row. Every
|
|
420
|
+
* surface that shows part of something longer folds it this way - the collapsed
|
|
421
|
+
* tool card, an approval's call detail, the focused-section inspector - and each
|
|
422
|
+
* names the key that shows the rest.
|
|
423
|
+
* @param lines - the full rows.
|
|
424
|
+
* @param keep - rows kept ahead of the marker.
|
|
425
|
+
* @param marker - builds the trailing row from the number of rows left out.
|
|
426
|
+
* @returns the rows to draw; a copy of `lines` when they all fit.
|
|
427
|
+
*/
|
|
428
|
+
function foldRows(lines, keep, marker) {
|
|
429
|
+
if (lines.length <= keep) return [...lines];
|
|
430
|
+
return [...lines.slice(0, keep), marker(lines.length - keep)];
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
419
433
|
* Cut a card body to its collapsed preview.
|
|
420
434
|
* @param lines - the full body rows.
|
|
421
435
|
* @param previewLines - rows kept when collapsed.
|
|
@@ -423,17 +437,18 @@ function toolResultLines(view, content) {
|
|
|
423
437
|
* @returns the rows to draw, with a trailing count of hidden rows when cut.
|
|
424
438
|
*/
|
|
425
439
|
function previewLines(lines, previewLines, expanded) {
|
|
426
|
-
if (expanded
|
|
427
|
-
|
|
428
|
-
return [...lines.slice(0, previewLines), `… ${String(hidden)} more line${hidden === 1 ? "" : "s"} (Ctrl+O expands)`];
|
|
440
|
+
if (expanded) return [...lines];
|
|
441
|
+
return foldRows(lines, previewLines, (hidden) => `… ${String(hidden)} more line${hidden === 1 ? "" : "s"} (Ctrl+O expands)`);
|
|
429
442
|
}
|
|
430
443
|
//#endregion
|
|
431
444
|
//#region lib/types/catalog.js
|
|
432
445
|
/**
|
|
433
446
|
* Terminal rows for the browser's settings, plugins, subagents, deliverables,
|
|
434
|
-
* and turn-outline pages
|
|
435
|
-
*
|
|
436
|
-
* `
|
|
447
|
+
* changed-files, and turn-outline pages, and the plugin-management verbs the
|
|
448
|
+
* browser's Plugins page offers. Each reader resolves its service through
|
|
449
|
+
* `ctx.get` and throws an `Error` naming the absent service; the app prints
|
|
450
|
+
* the message. `subagentDetail` is the exception: it returns that message as a
|
|
451
|
+
* row.
|
|
437
452
|
* @module @deepseek-ai/dsh-tui-app/catalog
|
|
438
453
|
*/
|
|
439
454
|
var __addDisposableResource$1 = function(env, value, async) {
|
|
@@ -784,6 +799,191 @@ function sessionOutline(ctx, session) {
|
|
|
784
799
|
if (outline === void 0) throw new Error("the turnOutline projection is not registered in this profile");
|
|
785
800
|
return outline.flatMap(outlineRows);
|
|
786
801
|
}
|
|
802
|
+
/** The workspace-changes service, or a printable error naming its absence. */
|
|
803
|
+
function requireWorkspaceChanges(ctx) {
|
|
804
|
+
const changes = ctx.get("workspaceChanges");
|
|
805
|
+
if (changes === void 0) throw new Error("workspace changes are not recorded in this profile");
|
|
806
|
+
return changes;
|
|
807
|
+
}
|
|
808
|
+
/** `N file` or `N files`. */
|
|
809
|
+
function fileCount(total) {
|
|
810
|
+
return `${String(total)} file${total === 1 ? "" : "s"}`;
|
|
811
|
+
}
|
|
812
|
+
/**
|
|
813
|
+
* The files one turn changed, as `/changes` picker rows: the latest
|
|
814
|
+
* `workspace/changes` announcement of `turn`, or of the newest announced turn
|
|
815
|
+
* when `turn` is undefined, resolved through the Host's summary.
|
|
816
|
+
* @param ctx - plugin context carrying the optional workspace-changes service and session query engine.
|
|
817
|
+
* @param sessionId - the session whose log is read.
|
|
818
|
+
* @param turn - the turn to list, or undefined for the latest announced one.
|
|
819
|
+
* @param signal - cancels a cold log read.
|
|
820
|
+
* @returns the rows under the turn's totals, or undefined when no such turn was announced.
|
|
821
|
+
* @throws {Error} when either service is not mounted, or when the Host no longer holds the announced summary.
|
|
822
|
+
*/
|
|
823
|
+
async function listTurnChanges(ctx, sessionId, turn, signal) {
|
|
824
|
+
const env_3 = {
|
|
825
|
+
stack: [],
|
|
826
|
+
error: void 0,
|
|
827
|
+
hasError: false
|
|
828
|
+
};
|
|
829
|
+
try {
|
|
830
|
+
const changes = requireWorkspaceChanges(ctx);
|
|
831
|
+
const query = ctx.get("sessionQuery");
|
|
832
|
+
if (query === void 0) throw new Error("the session query engine is not mounted in this profile");
|
|
833
|
+
const observation = __addDisposableResource$1(env_3, await query.observeSession(sessionId, {
|
|
834
|
+
signal,
|
|
835
|
+
projectionMode: "none"
|
|
836
|
+
}), false);
|
|
837
|
+
let announced;
|
|
838
|
+
for (const event of observation.events) {
|
|
839
|
+
if (event.type !== "workspace/changes") continue;
|
|
840
|
+
if (turn !== void 0 && event.data.turn !== turn) continue;
|
|
841
|
+
announced = {
|
|
842
|
+
seq: event.seq,
|
|
843
|
+
turn: event.data.turn
|
|
844
|
+
};
|
|
845
|
+
}
|
|
846
|
+
if (announced === void 0) return void 0;
|
|
847
|
+
const summary = changes.summary(sessionId, announced.seq);
|
|
848
|
+
if (summary === void 0) throw new Error(`the changed files of turn ${String(announced.turn)} are no longer held by this host`);
|
|
849
|
+
const listed = summary.files.length === summary.total ? "" : ` (${String(summary.files.length)} listed)`;
|
|
850
|
+
return {
|
|
851
|
+
heading: `turn ${String(summary.turn)} · ${fileCount(summary.total)}${listed} · +${String(summary.added)} −${String(summary.deleted)}`,
|
|
852
|
+
choices: summary.files.map((file, index) => ({
|
|
853
|
+
index,
|
|
854
|
+
seq: announced.seq,
|
|
855
|
+
label: file.display,
|
|
856
|
+
description: file.binary === true ? "binary" : file.oversized === true ? "oversized" : `+${String(file.added)} −${String(file.deleted)}`
|
|
857
|
+
}))
|
|
858
|
+
};
|
|
859
|
+
} catch (e_3) {
|
|
860
|
+
env_3.error = e_3;
|
|
861
|
+
env_3.hasError = true;
|
|
862
|
+
} finally {
|
|
863
|
+
__disposeResources$1(env_3);
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* The one-row notice a `workspace/changes` event prints once its summary is read.
|
|
868
|
+
* @param summary - the announced turn's summary.
|
|
869
|
+
* @returns the turn's file and line totals, naming `/changes` for the files.
|
|
870
|
+
*/
|
|
871
|
+
function changesNotice(summary) {
|
|
872
|
+
return `turn ${String(summary.turn)} changed ${fileCount(summary.total)} (+${String(summary.added)} −${String(summary.deleted)}) · /changes`;
|
|
873
|
+
}
|
|
874
|
+
/**
|
|
875
|
+
* The comparison one `/changes` row opens: the file's turn-start and turn-end
|
|
876
|
+
* contents as unified hunks in the tool cards' diff row form, `@@` headers
|
|
877
|
+
* between them and `…` where hunks are apart.
|
|
878
|
+
* @param ctx - plugin context carrying the optional workspace-changes service.
|
|
879
|
+
* @param sessionId - the session the summary belongs to.
|
|
880
|
+
* @param choice - the entered picker row.
|
|
881
|
+
* @param signal - cancels the snapshot reads.
|
|
882
|
+
* @returns the rows; explanatory rows when no lines can be shown.
|
|
883
|
+
* @throws {Error} when the service is not mounted or a snapshot read fails.
|
|
884
|
+
*/
|
|
885
|
+
async function changeDiffRows(ctx, sessionId, choice, signal) {
|
|
886
|
+
const diff = await requireWorkspaceChanges(ctx).diff(sessionId, choice.seq, choice.index, signal);
|
|
887
|
+
if (diff === void 0) return [`${choice.label}: the comparison is no longer held by this host`];
|
|
888
|
+
switch (diff.kind) {
|
|
889
|
+
case "binary": return [`${diff.display}: binary content, no line comparison`];
|
|
890
|
+
case "oversized": return [`${diff.display}: larger than the comparison limit, no line comparison`];
|
|
891
|
+
case "text": {
|
|
892
|
+
const rows = [];
|
|
893
|
+
if (!diff.before) rows.push("new file");
|
|
894
|
+
if (!diff.after) rows.push("deleted");
|
|
895
|
+
if (diff.coarse) rows.push("comparison timed out: every line is shown as replaced");
|
|
896
|
+
if (diff.hunks.length === 0) rows.push("no line changes");
|
|
897
|
+
diff.hunks.forEach((hunk, index) => {
|
|
898
|
+
if (index > 0) rows.push(" …");
|
|
899
|
+
rows.push(`@@ -${String(hunk.oldStart)},${String(hunk.oldLines)} +${String(hunk.newStart)},${String(hunk.newLines)} @@`);
|
|
900
|
+
for (const line of hunk.lines) rows.push(`${line.slice(0, 1)} ${line.slice(1)}`);
|
|
901
|
+
});
|
|
902
|
+
return rows;
|
|
903
|
+
}
|
|
904
|
+
/* v8 ignore next -- closed-union exhaustiveness guard */
|
|
905
|
+
default: return assertNever(diff, "tui workspace file diff");
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
/** The plugin manager, or a printable error naming its absence. */
|
|
909
|
+
function requirePluginManager(ctx) {
|
|
910
|
+
const manager = ctx.get("pluginManager");
|
|
911
|
+
if (manager === void 0) throw new Error("plugin management is not mounted in this profile");
|
|
912
|
+
return manager;
|
|
913
|
+
}
|
|
914
|
+
/**
|
|
915
|
+
* One row per bundle the profile can manage: name, version, enablement, how
|
|
916
|
+
* the profile holds it, whether it can be removed, and its management error.
|
|
917
|
+
* @param ctx - plugin context carrying the optional plugin manager.
|
|
918
|
+
* @returns the rows in the manager's order.
|
|
919
|
+
* @throws {Error} when no plugin manager is mounted.
|
|
920
|
+
*/
|
|
921
|
+
async function listBundles(ctx) {
|
|
922
|
+
return (await requirePluginManager(ctx).listBundles()).map(bundleRow);
|
|
923
|
+
}
|
|
924
|
+
/** One bundle's facts, two spaces apart. */
|
|
925
|
+
function bundleRow(bundle) {
|
|
926
|
+
const held = bundle.installed ? "installed" : bundle.optional ? "optional" : "shipped";
|
|
927
|
+
const facts = [
|
|
928
|
+
bundle.name,
|
|
929
|
+
bundle.version ?? "-",
|
|
930
|
+
bundle.enabled ? "enabled" : "disabled",
|
|
931
|
+
held
|
|
932
|
+
];
|
|
933
|
+
if (bundle.removable) facts.push("removable");
|
|
934
|
+
if (bundle.readOnlyReason !== void 0) facts.push(`read-only (${bundle.readOnlyReason})`);
|
|
935
|
+
if (bundle.error !== void 0) facts.push(`error ${bundle.error.code}`);
|
|
936
|
+
return facts.join(" ");
|
|
937
|
+
}
|
|
938
|
+
/**
|
|
939
|
+
* Switch one plugin entry or one bundle on or off in the profile's persistent
|
|
940
|
+
* composition. A target naming a plugin entry id changes that entry;
|
|
941
|
+
* otherwise it names a bundle.
|
|
942
|
+
* @param ctx - plugin context carrying the optional plugin manager.
|
|
943
|
+
* @param target - a plugin entry id or a bundle name.
|
|
944
|
+
* @param enabled - the wanted state.
|
|
945
|
+
* @returns a confirmation row: the persisted change and how it applied.
|
|
946
|
+
* @throws {Error} when no plugin manager is mounted, when `target` names neither, or when the change failed.
|
|
947
|
+
*/
|
|
948
|
+
async function setPluginEnabled(ctx, target, enabled) {
|
|
949
|
+
const manager = requirePluginManager(ctx);
|
|
950
|
+
const plugin = (await manager.listPlugins()).find((candidate) => candidate.entryId === target);
|
|
951
|
+
if (plugin !== void 0) return reportChange(await manager.setPluginEnabled(plugin.entryId, enabled));
|
|
952
|
+
const bundle = (await manager.listBundles()).find((candidate) => candidate.name === target);
|
|
953
|
+
if (bundle !== void 0) return reportChange(await manager.setBundleEnabled(bundle.name, enabled));
|
|
954
|
+
throw new Error(`"${target}" is neither a plugin entry nor a bundle of this profile`);
|
|
955
|
+
}
|
|
956
|
+
/**
|
|
957
|
+
* Install one bundle into the profile and enable it.
|
|
958
|
+
* @param ctx - plugin context carrying the optional plugin manager.
|
|
959
|
+
* @param spec - what pnpm should add: a registry name, a path, a git address, or a tarball.
|
|
960
|
+
* @returns a confirmation row: the installation and how it applied.
|
|
961
|
+
* @throws {Error} when no plugin manager is mounted or the installation failed.
|
|
962
|
+
*/
|
|
963
|
+
async function installBundle(ctx, spec) {
|
|
964
|
+
return reportChange(await requirePluginManager(ctx).installBundle(spec));
|
|
965
|
+
}
|
|
966
|
+
/**
|
|
967
|
+
* Remove one installed bundle from the profile.
|
|
968
|
+
* @param ctx - plugin context carrying the optional plugin manager.
|
|
969
|
+
* @param name - the bundle's package name.
|
|
970
|
+
* @returns a confirmation row: the removal and how it applied.
|
|
971
|
+
* @throws {Error} when no plugin manager is mounted or the removal failed.
|
|
972
|
+
*/
|
|
973
|
+
async function removeBundle(ctx, name) {
|
|
974
|
+
return reportChange(await requirePluginManager(ctx).removeBundle(name));
|
|
975
|
+
}
|
|
976
|
+
/** One row over a change result; a failed change is thrown so the surface prints the row as an error. */
|
|
977
|
+
function reportChange(result) {
|
|
978
|
+
const facts = [`${result.stage} ${result.target}: ${result.changed ? result.application : `unchanged, ${result.application}`}`];
|
|
979
|
+
if (result.bundle !== void 0 && result.bundle !== result.target) facts.push(`bundle ${result.bundle}`);
|
|
980
|
+
if (result.error !== void 0) facts.push(result.error.diagnostic === void 0 ? result.error.code : `${result.error.code}: ${result.error.diagnostic}`);
|
|
981
|
+
if (result.pendingBuilds !== void 0 && result.pendingBuilds.length > 0) facts.push(`scripts awaiting approval: ${result.pendingBuilds.join(", ")}`);
|
|
982
|
+
if (result.warnings !== void 0) facts.push(...result.warnings);
|
|
983
|
+
const text = facts.join(" · ");
|
|
984
|
+
if (result.application === "failed") throw new Error(text);
|
|
985
|
+
return text;
|
|
986
|
+
}
|
|
787
987
|
/** Control Sequence Introducer. */
|
|
788
988
|
const CSI = "\x1B[";
|
|
789
989
|
/**
|
|
@@ -814,6 +1014,16 @@ const LUMINANCE = {
|
|
|
814
1014
|
};
|
|
815
1015
|
/** Largest value one color channel encodes. */
|
|
816
1016
|
const CHANNEL_MAX = 255;
|
|
1017
|
+
/** Encoded sRGB value below which the transfer function is the linear segment. */
|
|
1018
|
+
const SRGB_LINEAR_CUT = .04045;
|
|
1019
|
+
/** Linear intensity below which the sRGB transfer function is the linear segment. */
|
|
1020
|
+
const LINEAR_SRGB_CUT = .0031308;
|
|
1021
|
+
/** Slope of the sRGB transfer function's linear segment. */
|
|
1022
|
+
const SRGB_LINEAR_SLOPE = 12.92;
|
|
1023
|
+
/** Offset of the sRGB transfer function's power segment. */
|
|
1024
|
+
const SRGB_OFFSET = .055;
|
|
1025
|
+
/** Exponent of the sRGB transfer function's power segment. */
|
|
1026
|
+
const SRGB_GAMMA = 2.4;
|
|
817
1027
|
/**
|
|
818
1028
|
* Grapheme segmenter for the reverse column walk. pi-tui keeps its own
|
|
819
1029
|
* segmenter private, so this module holds one; grapheme segmentation does not
|
|
@@ -842,44 +1052,68 @@ function resolveFadeCapability(input) {
|
|
|
842
1052
|
return term.includes("256color") ? "ansi256" : "dim";
|
|
843
1053
|
}
|
|
844
1054
|
/**
|
|
845
|
-
* Build the brightness ramp a chunk climbs
|
|
846
|
-
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
1055
|
+
* Build the brightness ramp a chunk climbs: level `k` sits at
|
|
1056
|
+
* `t = (k + 1) / steps` of the way from `bg` to `fg`, eased by the smoothstep
|
|
1057
|
+
* `t * t * (3 - 2 * t)` and interpolated with each channel in linear light.
|
|
1058
|
+
* Both shape the ramp against what the eye reads rather than what the byte
|
|
1059
|
+
* says: sRGB bytes are gamma-encoded, so mixing them directly bunches the
|
|
1060
|
+
* visible change into the dark end, and an even ramp of levels arrives with a
|
|
1061
|
+
* hard start and stop. The last level is a copy of `fg` rather than a computed
|
|
1062
|
+
* value, so settled text and the last faded frame carry identical color.
|
|
849
1063
|
* @param bg - the terminal background color.
|
|
850
1064
|
* @param fg - the normal foreground color.
|
|
851
1065
|
* @param steps - brightness levels; defaults to {@link FADE_STEPS}.
|
|
852
1066
|
* @returns `steps` levels, darkest first.
|
|
853
1067
|
*/
|
|
854
|
-
function buildFadeRamp(bg, fg, steps =
|
|
1068
|
+
function buildFadeRamp(bg, fg, steps = 8) {
|
|
855
1069
|
return Array.from({ length: steps }, (_unused, level) => {
|
|
856
1070
|
if (level === steps - 1) return {
|
|
857
1071
|
r: fg.r,
|
|
858
1072
|
g: fg.g,
|
|
859
1073
|
b: fg.b
|
|
860
1074
|
};
|
|
861
|
-
const
|
|
1075
|
+
const position = (level + 1) / steps;
|
|
1076
|
+
const eased = position * position * (3 - 2 * position);
|
|
862
1077
|
return {
|
|
863
|
-
r: mix(bg.r, fg.r,
|
|
864
|
-
g: mix(bg.g, fg.g,
|
|
865
|
-
b: mix(bg.b, fg.b,
|
|
1078
|
+
r: mix(bg.r, fg.r, eased),
|
|
1079
|
+
g: mix(bg.g, fg.g, eased),
|
|
1080
|
+
b: mix(bg.b, fg.b, eased)
|
|
866
1081
|
};
|
|
867
1082
|
});
|
|
868
1083
|
}
|
|
869
1084
|
/**
|
|
870
|
-
* Interpolate one channel.
|
|
871
|
-
* @param from - the background channel.
|
|
872
|
-
* @param to - the foreground channel.
|
|
1085
|
+
* Interpolate one channel in linear light.
|
|
1086
|
+
* @param from - the background channel, sRGB-encoded.
|
|
1087
|
+
* @param to - the foreground channel, sRGB-encoded.
|
|
873
1088
|
* @param ratio - position between them, 0 at `from` and 1 at `to`.
|
|
874
|
-
* @returns the channel value rounded to a byte.
|
|
1089
|
+
* @returns the sRGB-encoded channel value rounded to a byte.
|
|
875
1090
|
*/
|
|
876
1091
|
function mix(from, to, ratio) {
|
|
877
|
-
|
|
1092
|
+
const linear = toLinear(from);
|
|
1093
|
+
return toSrgb(linear + (toLinear(to) - linear) * ratio);
|
|
1094
|
+
}
|
|
1095
|
+
/**
|
|
1096
|
+
* Decode one sRGB channel to linear light, by the sRGB transfer function.
|
|
1097
|
+
* @param value - the channel byte.
|
|
1098
|
+
* @returns the linear intensity in 0..1.
|
|
1099
|
+
*/
|
|
1100
|
+
function toLinear(value) {
|
|
1101
|
+
const encoded = value / CHANNEL_MAX;
|
|
1102
|
+
return encoded <= SRGB_LINEAR_CUT ? encoded / SRGB_LINEAR_SLOPE : ((encoded + SRGB_OFFSET) / 1.055) ** SRGB_GAMMA;
|
|
1103
|
+
}
|
|
1104
|
+
/**
|
|
1105
|
+
* Encode linear light back to an sRGB channel byte.
|
|
1106
|
+
* @param value - the linear intensity in 0..1.
|
|
1107
|
+
* @returns the channel byte.
|
|
1108
|
+
*/
|
|
1109
|
+
function toSrgb(value) {
|
|
1110
|
+
const encoded = value <= LINEAR_SRGB_CUT ? SRGB_LINEAR_SLOPE * value : 1.055 * value ** (1 / SRGB_GAMMA) - SRGB_OFFSET;
|
|
1111
|
+
return Math.round(encoded * CHANNEL_MAX);
|
|
878
1112
|
}
|
|
879
1113
|
/**
|
|
880
1114
|
* The SGR sequence one age draws under.
|
|
881
1115
|
* @param style - the capability and the ramp.
|
|
882
|
-
* @param age -
|
|
1116
|
+
* @param age - the brightness level; levels past the ramp draw its last one.
|
|
883
1117
|
* @returns the sequence to open the run with, or the empty string when the
|
|
884
1118
|
* chunk draws as the component rendered it, which is also what an empty ramp
|
|
885
1119
|
* yields under a color capability.
|
|
@@ -926,32 +1160,66 @@ function channel(value) {
|
|
|
926
1160
|
function restoreFor(capability) {
|
|
927
1161
|
return capability === "dim" ? RESET_INTENSITY : RESET_FOREGROUND;
|
|
928
1162
|
}
|
|
1163
|
+
/** Every SGR sequence, the sequences a block's own palette styling writes. */
|
|
1164
|
+
const SGR_SEQUENCE = /\u001b\[[0-9;]*m/g;
|
|
929
1165
|
/**
|
|
930
|
-
*
|
|
931
|
-
*
|
|
1166
|
+
* Draw whole rendered lines at one brightness level, for a block that fades in
|
|
1167
|
+
* as a unit rather than word by word.
|
|
1168
|
+
*
|
|
1169
|
+
* The level is opened at the start of the line and reasserted after every SGR
|
|
1170
|
+
* the line already carries, so the palette colors inside a card - the status
|
|
1171
|
+
* glyph, the dim body rule, the bold tool name - are overridden while the card
|
|
1172
|
+
* fades and come back on their own once it settles. Each line ends with the
|
|
1173
|
+
* sequence that undoes what the level set - the terminal's own foreground, or
|
|
1174
|
+
* its normal intensity in the two-level mode - so the level never leaks past
|
|
1175
|
+
* the line it was applied to. Empty lines come back byte-identical, so
|
|
1176
|
+
* the renderer leaves the blank rows around a card alone.
|
|
1177
|
+
* @param lines - the rendered lines of the block.
|
|
1178
|
+
* @param age - the brightness level to draw them at.
|
|
1179
|
+
* @param style - the capability and the ramp.
|
|
1180
|
+
* @param from - first line the level is applied to; the lines before it come
|
|
1181
|
+
* back byte-identical, which is how a caller keeps rows the renderer can no
|
|
1182
|
+
* longer repaint out of the fade.
|
|
1183
|
+
* @returns the lines at that level; copies when the style writes no sequence
|
|
1184
|
+
* for this age, which is what the `none` capability and a settled age yield.
|
|
1185
|
+
*/
|
|
1186
|
+
function recolorLines(lines, age, style, from = 0) {
|
|
1187
|
+
const sgr = fadeSgr(style, age);
|
|
1188
|
+
if (sgr === "") return [...lines];
|
|
1189
|
+
const restore = restoreFor(style.capability);
|
|
1190
|
+
return lines.map((line, index) => index < from || line === "" ? line : `${sgr}${line.replace(SGR_SEQUENCE, (match) => match + sgr)}${restore}`);
|
|
1191
|
+
}
|
|
1192
|
+
/**
|
|
1193
|
+
* The tail of one streaming region - the visible text or the reasoning of one
|
|
1194
|
+
* message: the chunks young enough to be recolored, each ageing on the wall
|
|
1195
|
+
* clock from the moment it became visible.
|
|
932
1196
|
*
|
|
933
1197
|
* Deltas are split at word boundaries, which reads more smoothly than raw
|
|
934
1198
|
* token edges. A delta that ends mid-word leaves that word open, and the next
|
|
935
1199
|
* delta extends it rather than starting a second chunk, so the word keeps the
|
|
936
|
-
*
|
|
1200
|
+
* moment it first became visible.
|
|
1201
|
+
*
|
|
1202
|
+
* Ages are read, never counted. A chunk's age is the elapsed time since it
|
|
1203
|
+
* became visible divided by `stepMs`, computed at the moment a render asks for
|
|
1204
|
+
* it, so a render triggered by a delta between two fade periods draws every
|
|
1205
|
+
* word at its own level and words do not move in lockstep. That is what makes
|
|
1206
|
+
* the trailing edge continuous rather than banded.
|
|
937
1207
|
*
|
|
938
|
-
*
|
|
939
|
-
*
|
|
940
|
-
*
|
|
941
|
-
*
|
|
942
|
-
* one tick without an arrival ends it, and chunks appended afterwards fade
|
|
943
|
-
* again. Recovery only affects new chunks, so it never re-darkens settled text.
|
|
1208
|
+
* Arrival rate changes the tail's length, never its depth: whatever the rate,
|
|
1209
|
+
* a chunk is at the foreground `steps * stepMs` after it appeared, so a fast
|
|
1210
|
+
* stream leaves a longer trail of brightening words and never a darker or a
|
|
1211
|
+
* lasting one. The tail is bounded in time, so it stays on at any rate.
|
|
944
1212
|
*/
|
|
945
1213
|
var FadeTracker = class {
|
|
946
1214
|
steps;
|
|
947
|
-
|
|
948
|
-
now
|
|
1215
|
+
stepMs;
|
|
1216
|
+
now;
|
|
949
1217
|
chunks = [];
|
|
950
1218
|
openChunk = void 0;
|
|
951
|
-
arrivals = /* @__PURE__ */ new Set();
|
|
952
1219
|
constructor(options) {
|
|
953
|
-
this.steps = options
|
|
954
|
-
this.
|
|
1220
|
+
this.steps = options.steps ?? 8;
|
|
1221
|
+
this.stepMs = options.stepMs ?? 33;
|
|
1222
|
+
this.now = options.now;
|
|
955
1223
|
}
|
|
956
1224
|
/**
|
|
957
1225
|
* Take one stream event.
|
|
@@ -959,42 +1227,39 @@ var FadeTracker = class {
|
|
|
959
1227
|
*/
|
|
960
1228
|
append(delta) {
|
|
961
1229
|
if (delta === "") return;
|
|
962
|
-
this.
|
|
963
|
-
if (this.isFastStream()) {
|
|
964
|
-
this.flush();
|
|
965
|
-
return;
|
|
966
|
-
}
|
|
1230
|
+
const at = this.now();
|
|
967
1231
|
const open = this.openChunk;
|
|
968
1232
|
const text = open === void 0 ? delta : open.text + delta;
|
|
969
|
-
const
|
|
1233
|
+
const bornAt = open === void 0 ? at : open.bornAt;
|
|
970
1234
|
if (open !== void 0) this.chunks.pop();
|
|
971
1235
|
this.openChunk = void 0;
|
|
972
1236
|
const words = text.match(/\s*\S+\s*/g);
|
|
973
1237
|
if (words === null) {
|
|
974
1238
|
this.openChunk = {
|
|
975
1239
|
text,
|
|
976
|
-
|
|
1240
|
+
bornAt
|
|
977
1241
|
};
|
|
978
1242
|
this.chunks.push(this.openChunk);
|
|
979
1243
|
return;
|
|
980
1244
|
}
|
|
981
1245
|
for (const [index, word] of words.entries()) this.chunks.push({
|
|
982
1246
|
text: word,
|
|
983
|
-
|
|
1247
|
+
bornAt: index === 0 ? bornAt : at
|
|
984
1248
|
});
|
|
985
1249
|
if (!/\s$/.test(text)) this.openChunk = this.chunks.at(-1);
|
|
986
1250
|
}
|
|
987
1251
|
/**
|
|
988
|
-
*
|
|
989
|
-
*
|
|
1252
|
+
* Drop the chunks that reached the step count, which the application runs
|
|
1253
|
+
* once per fade period so a settled chunk stops being matched against the
|
|
1254
|
+
* rendered lines.
|
|
1255
|
+
* @returns whether a chunk still draws below the last brightness level, and
|
|
1256
|
+
* so whether the tail keeps moving after this period.
|
|
990
1257
|
*/
|
|
991
1258
|
tick() {
|
|
992
|
-
const
|
|
993
|
-
this.
|
|
994
|
-
this.chunks = this.chunks.filter((chunk) => this.now - chunk.born < this.steps);
|
|
1259
|
+
const moving = this.needsRepaint();
|
|
1260
|
+
this.chunks = this.chunks.filter((chunk) => this.ageOf(chunk) < this.steps);
|
|
995
1261
|
if (this.openChunk !== void 0 && !this.chunks.includes(this.openChunk)) this.openChunk = void 0;
|
|
996
|
-
|
|
997
|
-
return changing;
|
|
1262
|
+
return moving;
|
|
998
1263
|
}
|
|
999
1264
|
/**
|
|
1000
1265
|
* Whether the current frame still differs from the settled rendering.
|
|
@@ -1002,36 +1267,98 @@ var FadeTracker = class {
|
|
|
1002
1267
|
* is the only reason to keep ticking.
|
|
1003
1268
|
*/
|
|
1004
1269
|
needsRepaint() {
|
|
1005
|
-
return this.chunks.some((chunk) => this.
|
|
1270
|
+
return this.chunks.some((chunk) => this.ageOf(chunk) < this.steps - 1);
|
|
1006
1271
|
}
|
|
1007
1272
|
/**
|
|
1008
1273
|
* The tail {@link recolorTail} recolors.
|
|
1009
|
-
* @returns one span per tracked chunk, oldest first, each with
|
|
1274
|
+
* @returns one span per tracked chunk, oldest first, each with the age it
|
|
1275
|
+
* carries at this instant.
|
|
1010
1276
|
*/
|
|
1011
1277
|
spans() {
|
|
1012
1278
|
return this.chunks.map((chunk) => ({
|
|
1013
1279
|
text: chunk.text,
|
|
1014
|
-
age: this.
|
|
1280
|
+
age: this.ageOf(chunk)
|
|
1015
1281
|
}));
|
|
1016
1282
|
}
|
|
1017
1283
|
/**
|
|
1018
1284
|
* Drop the whole tail so every chunk drawn so far renders at the foreground,
|
|
1019
1285
|
* and start tracking again from the next delta. The application calls this on
|
|
1020
|
-
* a terminal width change and at stream end.
|
|
1021
|
-
* a resize says nothing about the arrival rate.
|
|
1286
|
+
* a terminal width change and at stream end.
|
|
1022
1287
|
*/
|
|
1023
1288
|
flush() {
|
|
1024
1289
|
this.chunks = [];
|
|
1025
1290
|
this.openChunk = void 0;
|
|
1026
1291
|
}
|
|
1027
1292
|
/**
|
|
1028
|
-
* The
|
|
1029
|
-
* @
|
|
1293
|
+
* The brightness level one chunk draws at right now.
|
|
1294
|
+
* @param chunk - the tracked chunk.
|
|
1295
|
+
* @returns levels elapsed since it became visible, 0 for a chunk younger than one level.
|
|
1296
|
+
*/
|
|
1297
|
+
ageOf(chunk) {
|
|
1298
|
+
return Math.floor((this.now() - chunk.bornAt) / this.stepMs);
|
|
1299
|
+
}
|
|
1300
|
+
};
|
|
1301
|
+
/**
|
|
1302
|
+
* The age of one whole block that fades in as a unit - a tool card's rows,
|
|
1303
|
+
* which arrive complete rather than word by word.
|
|
1304
|
+
*
|
|
1305
|
+
* The last level is withheld the way the word tail withholds it: that level is
|
|
1306
|
+
* an assumed foreground, so a block one level below the end is handed back to
|
|
1307
|
+
* the terminal's own colors instead, and nothing jumps color as it settles.
|
|
1308
|
+
*/
|
|
1309
|
+
var BlockFadeClock = class {
|
|
1310
|
+
options;
|
|
1311
|
+
constructor(options) {
|
|
1312
|
+
this.options = options;
|
|
1313
|
+
}
|
|
1314
|
+
/**
|
|
1315
|
+
* The brightness level the block draws at right now.
|
|
1316
|
+
* @returns the level, or undefined once the block reached the last drawn
|
|
1317
|
+
* level and renders in the colors the component itself produced.
|
|
1030
1318
|
*/
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
return
|
|
1319
|
+
age() {
|
|
1320
|
+
const { bornAt, stepMs, steps, now } = this.options;
|
|
1321
|
+
const age = Math.floor((now() - bornAt) / stepMs);
|
|
1322
|
+
return age < steps - 1 ? age : void 0;
|
|
1323
|
+
}
|
|
1324
|
+
/**
|
|
1325
|
+
* Whether this block still draws below the last brightness level.
|
|
1326
|
+
* @returns true while {@link BlockFadeClock.age} yields a level.
|
|
1327
|
+
*/
|
|
1328
|
+
needsRepaint() {
|
|
1329
|
+
return this.age() !== void 0;
|
|
1330
|
+
}
|
|
1331
|
+
};
|
|
1332
|
+
/**
|
|
1333
|
+
* The block fades running right now. The application arms its repaint while
|
|
1334
|
+
* any member still moves, so the registry holds only members that have not
|
|
1335
|
+
* settled: {@link FadeRegistry.tick} drops the settled ones once per period,
|
|
1336
|
+
* and a session change clears the whole set.
|
|
1337
|
+
*/
|
|
1338
|
+
var FadeRegistry = class {
|
|
1339
|
+
members = /* @__PURE__ */ new Set();
|
|
1340
|
+
/**
|
|
1341
|
+
* Track one fade until it settles.
|
|
1342
|
+
* @param fade - the fade to follow.
|
|
1343
|
+
*/
|
|
1344
|
+
add(fade) {
|
|
1345
|
+
this.members.add(fade);
|
|
1346
|
+
}
|
|
1347
|
+
/**
|
|
1348
|
+
* Whether any tracked fade still moves.
|
|
1349
|
+
* @returns true while one of them needs another repaint.
|
|
1350
|
+
*/
|
|
1351
|
+
needsRepaint() {
|
|
1352
|
+
for (const member of this.members) if (member.needsRepaint()) return true;
|
|
1353
|
+
return false;
|
|
1354
|
+
}
|
|
1355
|
+
/** Forget the fades that settled, so a long session accumulates none of them. */
|
|
1356
|
+
tick() {
|
|
1357
|
+
for (const member of this.members) if (!member.needsRepaint()) this.members.delete(member);
|
|
1358
|
+
}
|
|
1359
|
+
/** Forget every tracked fade, which the application does when it draws another session. */
|
|
1360
|
+
clear() {
|
|
1361
|
+
this.members.clear();
|
|
1035
1362
|
}
|
|
1036
1363
|
};
|
|
1037
1364
|
/**
|
|
@@ -1056,10 +1383,13 @@ var FadeTracker = class {
|
|
|
1056
1383
|
* @param lines - the rendered lines of the streaming block, newest text last.
|
|
1057
1384
|
* @param spans - the tail from {@link FadeTracker.spans}, oldest first.
|
|
1058
1385
|
* @param style - the capability and the ramp.
|
|
1386
|
+
* @param from - first line the tail may recolor; the lines before it come back
|
|
1387
|
+
* byte-identical, which is how a caller keeps rows the renderer can no longer
|
|
1388
|
+
* repaint out of the fade.
|
|
1059
1389
|
* @returns the lines with the tail recolored; lines the tail does not cover
|
|
1060
1390
|
* are returned byte-identical, so the renderer leaves them alone.
|
|
1061
1391
|
*/
|
|
1062
|
-
function recolorTail(lines, spans, style) {
|
|
1392
|
+
function recolorTail(lines, spans, style, from = 0) {
|
|
1063
1393
|
if (style.capability === "none" || spans.length === 0 || lines.length === 0) return [...lines];
|
|
1064
1394
|
const cells = cellsFromEnd(lines);
|
|
1065
1395
|
const runs = [];
|
|
@@ -1077,7 +1407,7 @@ function recolorTail(lines, spans, style) {
|
|
|
1077
1407
|
}
|
|
1078
1408
|
const restore = restoreFor(style.capability);
|
|
1079
1409
|
return lines.map((text, index) => {
|
|
1080
|
-
const lineRuns = byLine.get(index);
|
|
1410
|
+
const lineRuns = index < from ? void 0 : byLine.get(index);
|
|
1081
1411
|
return lineRuns === void 0 ? text : paintLine(text, lineRuns, restore);
|
|
1082
1412
|
});
|
|
1083
1413
|
}
|
|
@@ -1281,20 +1611,74 @@ function editorTheme(palette) {
|
|
|
1281
1611
|
* Transcript components: one pi-tui component per rendered fact (a user
|
|
1282
1612
|
* prompt, an assistant reply, a tool card, a notice). Each owns its display
|
|
1283
1613
|
* state and re-renders from it at any width.
|
|
1614
|
+
*
|
|
1615
|
+
* The prompt, the reply, and the tool card are also the navigable blocks the
|
|
1616
|
+
* keyboard walks (`./navigation.ts`): each reports its sections as plain source
|
|
1617
|
+
* rows and draws a two-column gutter beside them while it holds the focus -
|
|
1618
|
+
* accented on the focused section's own lines and dim on the rest of the
|
|
1619
|
+
* block. The gutter narrows the width the block's content wraps at and is
|
|
1620
|
+
* prepended after any fade recoloring, so the fade keeps matching the block's
|
|
1621
|
+
* own text and the gutter's styling never enters that match.
|
|
1284
1622
|
* @module @deepseek-ai/dsh-tui-app/blocks
|
|
1285
1623
|
*/
|
|
1624
|
+
/** Columns the focus gutter takes from the width a block's content wraps at. */
|
|
1625
|
+
const GUTTER_WIDTH = 2;
|
|
1626
|
+
/** The gutter beside the lines of a focused block that are not the focused section. */
|
|
1627
|
+
const BLOCK_GUTTER = "│ ";
|
|
1628
|
+
/** The gutter beside the lines of the focused section itself. */
|
|
1629
|
+
const PART_GUTTER = "┃ ";
|
|
1630
|
+
/** What the call section reports for a tool the model called with no arguments. */
|
|
1631
|
+
const NO_ARGUMENTS = "(no arguments)";
|
|
1632
|
+
/** What the result section reports for a tool that answered with nothing. */
|
|
1633
|
+
const NO_OUTPUT = "(no output)";
|
|
1634
|
+
/**
|
|
1635
|
+
* Prepend the focus gutter to every line of a block that holds the focus.
|
|
1636
|
+
* @param palette - the palette the gutter marks are styled with.
|
|
1637
|
+
* @param lines - the block's final rendered lines, fades already applied.
|
|
1638
|
+
* @param focused - whether the line at one index belongs to the focused section.
|
|
1639
|
+
* @returns the lines behind their gutter.
|
|
1640
|
+
*/
|
|
1641
|
+
function withGutter(palette, lines, focused) {
|
|
1642
|
+
return lines.map((line, index) => `${focused(index) ? palette.accent(PART_GUTTER) : palette.dim(BLOCK_GUTTER)}${line}`);
|
|
1643
|
+
}
|
|
1286
1644
|
/** A prompt the user submitted, drawn with a leading `›`. */
|
|
1287
1645
|
var UserBlock = class {
|
|
1288
1646
|
theme;
|
|
1289
1647
|
text;
|
|
1290
|
-
|
|
1648
|
+
turn;
|
|
1649
|
+
navigable = true;
|
|
1650
|
+
blockKind = "user";
|
|
1651
|
+
/** The section drawn as focused; absent while the keyboard is elsewhere. */
|
|
1652
|
+
highlight;
|
|
1653
|
+
constructor(theme, text, turn) {
|
|
1291
1654
|
this.theme = theme;
|
|
1292
1655
|
this.text = text;
|
|
1656
|
+
this.turn = turn;
|
|
1657
|
+
}
|
|
1658
|
+
/**
|
|
1659
|
+
* The prompt as one navigable section.
|
|
1660
|
+
* @returns the single `user` part, carrying the submitted text.
|
|
1661
|
+
*/
|
|
1662
|
+
parts() {
|
|
1663
|
+
return [{
|
|
1664
|
+
kind: "user",
|
|
1665
|
+
rows: this.text.split("\n")
|
|
1666
|
+
}];
|
|
1667
|
+
}
|
|
1668
|
+
/**
|
|
1669
|
+
* Draw this prompt with the focus gutter, or without it.
|
|
1670
|
+
* @param part - the focused section, or undefined to clear the mark.
|
|
1671
|
+
*/
|
|
1672
|
+
setHighlight(part) {
|
|
1673
|
+
this.highlight = part;
|
|
1293
1674
|
}
|
|
1294
1675
|
invalidate() {}
|
|
1295
1676
|
render(width) {
|
|
1296
1677
|
const palette = this.theme.palette;
|
|
1297
|
-
|
|
1678
|
+
const marked = this.highlight !== void 0;
|
|
1679
|
+
const inner = marked ? Math.max(1, width - GUTTER_WIDTH) : width;
|
|
1680
|
+
const lines = ["", ...wrapTextWithAnsi(this.text, Math.max(1, inner - 2)).map((line, index) => `${palette.accent(index === 0 ? "›" : " ")} ${palette.bold(line)}`)];
|
|
1681
|
+
return marked ? withGutter(palette, lines, () => true) : lines;
|
|
1298
1682
|
}
|
|
1299
1683
|
};
|
|
1300
1684
|
/** A dim one-line notice about the session (a stopped turn, a command result, a model switch). */
|
|
@@ -1315,28 +1699,66 @@ var NoticeBlock = class {
|
|
|
1315
1699
|
* An assistant reply: streamed reasoning above streamed Markdown text. The
|
|
1316
1700
|
* durable `assistant/message` replaces both with the committed content.
|
|
1317
1701
|
*
|
|
1318
|
-
* A block that is streaming right now can carry a {@link FadeRender}
|
|
1319
|
-
*
|
|
1320
|
-
*
|
|
1321
|
-
*
|
|
1702
|
+
* A block that is streaming right now can carry a {@link FadeRender} for its
|
|
1703
|
+
* text and another for its reasoning, each drawing that region's newest words
|
|
1704
|
+
* dimmed and brightening. A block rebuilt from history carries neither, and
|
|
1705
|
+
* {@link AssistantBlock.commit} drops the ones a streaming block had, so
|
|
1706
|
+
* settled text is never recolored.
|
|
1322
1707
|
*/
|
|
1323
1708
|
var AssistantBlock = class {
|
|
1324
1709
|
theme;
|
|
1710
|
+
turn;
|
|
1711
|
+
navigable = true;
|
|
1712
|
+
blockKind = "assistant";
|
|
1325
1713
|
reasoning = "";
|
|
1326
1714
|
text = "";
|
|
1327
1715
|
interrupted = false;
|
|
1328
1716
|
markdown;
|
|
1329
1717
|
reasoningText;
|
|
1330
1718
|
fade;
|
|
1331
|
-
/** Width of the last render that drew a tail; absent before the first one. */
|
|
1719
|
+
/** Width of the last render that drew a text tail; absent before the first one. */
|
|
1332
1720
|
fadeWidth;
|
|
1333
|
-
|
|
1721
|
+
reasoningFade;
|
|
1722
|
+
/** Width of the last render that drew a reasoning tail; absent before the first one. */
|
|
1723
|
+
reasoningFadeWidth;
|
|
1724
|
+
/** First line of this block either tail may still recolor. */
|
|
1725
|
+
repaintFloor = 0;
|
|
1726
|
+
/** The section drawn as focused; absent while the keyboard is elsewhere. */
|
|
1727
|
+
highlight;
|
|
1728
|
+
constructor(theme, turn) {
|
|
1334
1729
|
this.theme = theme;
|
|
1730
|
+
this.turn = turn;
|
|
1335
1731
|
const palette = theme.palette;
|
|
1336
1732
|
this.markdown = new Markdown("", 0, 0, markdownTheme(palette));
|
|
1337
1733
|
this.reasoningText = new Text("", 0, 0);
|
|
1338
1734
|
}
|
|
1339
1735
|
/**
|
|
1736
|
+
* The message as navigable sections, carrying the model's own text: the
|
|
1737
|
+
* reasoning as it was streamed or committed, and the reply as Markdown
|
|
1738
|
+
* source rather than the rendering the transcript draws.
|
|
1739
|
+
* @returns the reasoning part while the message has reasoning, then the
|
|
1740
|
+
* reply, which is present from the start and empty until text arrives.
|
|
1741
|
+
*/
|
|
1742
|
+
parts() {
|
|
1743
|
+
const parts = [];
|
|
1744
|
+
if (this.reasoning.trim() !== "") parts.push({
|
|
1745
|
+
kind: "reasoning",
|
|
1746
|
+
rows: this.reasoning.split("\n")
|
|
1747
|
+
});
|
|
1748
|
+
parts.push({
|
|
1749
|
+
kind: "reply",
|
|
1750
|
+
rows: this.text.split("\n")
|
|
1751
|
+
});
|
|
1752
|
+
return parts;
|
|
1753
|
+
}
|
|
1754
|
+
/**
|
|
1755
|
+
* Draw this message with the focus gutter, or without it.
|
|
1756
|
+
* @param part - the focused section, or undefined to clear the mark.
|
|
1757
|
+
*/
|
|
1758
|
+
setHighlight(part) {
|
|
1759
|
+
this.highlight = part;
|
|
1760
|
+
}
|
|
1761
|
+
/**
|
|
1340
1762
|
* Draw this block's newest text through `fade` until it commits.
|
|
1341
1763
|
* @param fade - the tail and drawing settings of the running stream.
|
|
1342
1764
|
*/
|
|
@@ -1344,6 +1766,26 @@ var AssistantBlock = class {
|
|
|
1344
1766
|
this.fade = fade;
|
|
1345
1767
|
}
|
|
1346
1768
|
/**
|
|
1769
|
+
* Draw this block's newest reasoning through `fade` until it commits.
|
|
1770
|
+
* @param fade - the tail and drawing settings of the running stream.
|
|
1771
|
+
*/
|
|
1772
|
+
setReasoningFade(fade) {
|
|
1773
|
+
this.reasoningFade = fade;
|
|
1774
|
+
}
|
|
1775
|
+
/**
|
|
1776
|
+
* Hand the rows the renderer can no longer repaint back to the colors this
|
|
1777
|
+
* block drew them in, so a tail that is still moving never rewrites them.
|
|
1778
|
+
* @param floor - this block's own first repaintable line; the application
|
|
1779
|
+
* raises it as the frame grows and never lowers it.
|
|
1780
|
+
* @returns whether the floor took rows away from a tail that is drawing
|
|
1781
|
+
* right now, and so whether the frame differs from the one just built.
|
|
1782
|
+
*/
|
|
1783
|
+
setRepaintFloor(floor) {
|
|
1784
|
+
if (floor <= this.repaintFloor) return false;
|
|
1785
|
+
this.repaintFloor = floor;
|
|
1786
|
+
return drawnSpans(this.fade).length > 0 || drawnSpans(this.reasoningFade).length > 0;
|
|
1787
|
+
}
|
|
1788
|
+
/**
|
|
1347
1789
|
* Append streamed visible text.
|
|
1348
1790
|
* @param delta - the text delta.
|
|
1349
1791
|
*/
|
|
@@ -1370,6 +1812,7 @@ var AssistantBlock = class {
|
|
|
1370
1812
|
this.reasoning = reasoning;
|
|
1371
1813
|
this.interrupted = interrupted;
|
|
1372
1814
|
this.fade = void 0;
|
|
1815
|
+
this.reasoningFade = void 0;
|
|
1373
1816
|
this.markdown.setText(text);
|
|
1374
1817
|
this.reasoningText.setText(this.theme.palette.dim(this.theme.palette.italic(reasoning.trimEnd())));
|
|
1375
1818
|
}
|
|
@@ -1378,11 +1821,52 @@ var AssistantBlock = class {
|
|
|
1378
1821
|
this.reasoningText.invalidate();
|
|
1379
1822
|
}
|
|
1380
1823
|
render(width) {
|
|
1824
|
+
const marked = this.highlight !== void 0;
|
|
1825
|
+
const inner = marked ? Math.max(1, width - GUTTER_WIDTH) : width;
|
|
1381
1826
|
const lines = [""];
|
|
1382
|
-
|
|
1383
|
-
|
|
1827
|
+
const reasoning = {
|
|
1828
|
+
from: 0,
|
|
1829
|
+
to: 0
|
|
1830
|
+
};
|
|
1831
|
+
const reply = {
|
|
1832
|
+
from: 0,
|
|
1833
|
+
to: 0
|
|
1834
|
+
};
|
|
1835
|
+
if (this.reasoning.trim() !== "") {
|
|
1836
|
+
reasoning.from = lines.length;
|
|
1837
|
+
lines.push(...this.renderReasoning(inner, lines.length));
|
|
1838
|
+
reasoning.to = lines.length;
|
|
1839
|
+
lines.push("");
|
|
1840
|
+
}
|
|
1841
|
+
if (this.text !== "") {
|
|
1842
|
+
reply.from = lines.length;
|
|
1843
|
+
lines.push(...this.renderText(inner, lines.length));
|
|
1844
|
+
reply.to = lines.length;
|
|
1845
|
+
}
|
|
1384
1846
|
if (this.interrupted) lines.push(this.theme.palette.dim("[interrupted]"));
|
|
1385
|
-
return lines;
|
|
1847
|
+
if (!marked) return lines;
|
|
1848
|
+
const section = this.highlight === "reasoning" ? reasoning : reply;
|
|
1849
|
+
return withGutter(this.theme.palette, lines, (index) => index >= section.from && index < section.to);
|
|
1850
|
+
}
|
|
1851
|
+
/**
|
|
1852
|
+
* The reasoning lines, with the streaming tail recolored.
|
|
1853
|
+
*
|
|
1854
|
+
* The ramp climbs towards the assumed terminal foreground, but the reasoning
|
|
1855
|
+
* draws inside the faint and italic sequences `appendReasoning` wrapped it
|
|
1856
|
+
* in, and a recolored run reasserts the styling in force at its start. The
|
|
1857
|
+
* tail therefore arrives at the dim foreground the settled reasoning carries,
|
|
1858
|
+
* not at the plain one.
|
|
1859
|
+
* @param width - the width the reasoning lays out in.
|
|
1860
|
+
* @param at - index of the region's first line in this block's render.
|
|
1861
|
+
* @returns the lines to draw.
|
|
1862
|
+
*/
|
|
1863
|
+
renderReasoning(width, at) {
|
|
1864
|
+
const fade = this.reasoningFade;
|
|
1865
|
+
const lines = this.reasoningText.render(width);
|
|
1866
|
+
if (fade === void 0) return lines;
|
|
1867
|
+
if (this.reasoningFadeWidth !== void 0 && this.reasoningFadeWidth !== width) fade.flush();
|
|
1868
|
+
this.reasoningFadeWidth = width;
|
|
1869
|
+
return recolorTail(lines, drawnSpans(fade), fade.style(), this.repaintFloor - at);
|
|
1386
1870
|
}
|
|
1387
1871
|
/**
|
|
1388
1872
|
* The Markdown lines, with the streaming tail recolored.
|
|
@@ -1391,36 +1875,102 @@ var AssistantBlock = class {
|
|
|
1391
1875
|
* given, so it gets the Markdown lines alone: the reasoning above them and
|
|
1392
1876
|
* any marker below them would put the newest chunk somewhere other than the
|
|
1393
1877
|
* end and drop the whole tail to the plain foreground.
|
|
1394
|
-
*
|
|
1395
|
-
* Only chunks younger than `steps - 1` are handed over. The last ramp level
|
|
1396
|
-
* is an assumed foreground - pi-tui reports the terminal background but not
|
|
1397
|
-
* its foreground - so the oldest visible level is left to draw in the
|
|
1398
|
-
* terminal's own foreground, which is also what the chunk draws in once it
|
|
1399
|
-
* settles. No chunk can therefore jump color as it leaves the tail.
|
|
1400
1878
|
* @param width - the width the Markdown lays out in.
|
|
1879
|
+
* @param at - index of the region's first line in this block's render.
|
|
1401
1880
|
* @returns the lines to draw.
|
|
1402
1881
|
*/
|
|
1403
|
-
renderText(width) {
|
|
1882
|
+
renderText(width, at) {
|
|
1404
1883
|
const fade = this.fade;
|
|
1405
1884
|
const lines = this.markdown.render(width);
|
|
1406
1885
|
if (fade === void 0) return lines;
|
|
1407
1886
|
if (this.fadeWidth !== void 0 && this.fadeWidth !== width) fade.flush();
|
|
1408
1887
|
this.fadeWidth = width;
|
|
1409
|
-
return recolorTail(lines, fade
|
|
1888
|
+
return recolorTail(lines, drawnSpans(fade), fade.style(), this.repaintFloor - at);
|
|
1410
1889
|
}
|
|
1411
1890
|
};
|
|
1412
|
-
/**
|
|
1891
|
+
/**
|
|
1892
|
+
* A tool call card: status glyph, tool name, headline, then a foldable body.
|
|
1893
|
+
*
|
|
1894
|
+
* The card arrives in two pieces, and each fades in on its own: the header and
|
|
1895
|
+
* the call rows when the call is logged, the result rows when the tool
|
|
1896
|
+
* answers. A card rebuilt from history carries neither fade.
|
|
1897
|
+
*/
|
|
1413
1898
|
var ToolBlock = class {
|
|
1414
1899
|
theme;
|
|
1415
1900
|
name;
|
|
1416
1901
|
call;
|
|
1902
|
+
turn;
|
|
1903
|
+
navigable = true;
|
|
1904
|
+
blockKind = "tool";
|
|
1417
1905
|
status = "running";
|
|
1418
1906
|
resultLines = [];
|
|
1419
1907
|
expanded = false;
|
|
1420
|
-
|
|
1908
|
+
fade;
|
|
1909
|
+
resultFade;
|
|
1910
|
+
/** First line of this card either fade may still recolor. */
|
|
1911
|
+
repaintFloor = 0;
|
|
1912
|
+
/** The section drawn as focused; absent while the keyboard is elsewhere. */
|
|
1913
|
+
highlight;
|
|
1914
|
+
constructor(theme, name, call, turn) {
|
|
1421
1915
|
this.theme = theme;
|
|
1422
1916
|
this.name = name;
|
|
1423
1917
|
this.call = call;
|
|
1918
|
+
this.turn = turn;
|
|
1919
|
+
}
|
|
1920
|
+
/** The card headline, as the section heading names this call. */
|
|
1921
|
+
get title() {
|
|
1922
|
+
return this.call.title;
|
|
1923
|
+
}
|
|
1924
|
+
/**
|
|
1925
|
+
* The card as navigable sections, carrying its untruncated rows whatever the
|
|
1926
|
+
* collapsed body shows.
|
|
1927
|
+
* @returns the call section, then the result section once the tool answered.
|
|
1928
|
+
*/
|
|
1929
|
+
parts() {
|
|
1930
|
+
const call = [...this.call.title === "" ? [] : [this.call.title], ...this.call.lines];
|
|
1931
|
+
const parts = [{
|
|
1932
|
+
kind: "call",
|
|
1933
|
+
rows: call.length === 0 ? [NO_ARGUMENTS] : call
|
|
1934
|
+
}];
|
|
1935
|
+
if (this.status !== "running") parts.push({
|
|
1936
|
+
kind: "result",
|
|
1937
|
+
rows: this.resultLines.length === 0 ? [NO_OUTPUT] : this.resultLines
|
|
1938
|
+
});
|
|
1939
|
+
return parts;
|
|
1940
|
+
}
|
|
1941
|
+
/**
|
|
1942
|
+
* Draw this card with the focus gutter, or without it.
|
|
1943
|
+
* @param part - the focused section, or undefined to clear the mark.
|
|
1944
|
+
*/
|
|
1945
|
+
setHighlight(part) {
|
|
1946
|
+
this.highlight = part;
|
|
1947
|
+
}
|
|
1948
|
+
/**
|
|
1949
|
+
* Draw the header and the call rows through `fade` until it settles.
|
|
1950
|
+
* @param fade - the level and drawing settings of this card's own fade.
|
|
1951
|
+
*/
|
|
1952
|
+
setFade(fade) {
|
|
1953
|
+
this.fade = fade;
|
|
1954
|
+
}
|
|
1955
|
+
/**
|
|
1956
|
+
* Draw the result rows through `fade` until it settles.
|
|
1957
|
+
* @param fade - the level and drawing settings of the result's own fade.
|
|
1958
|
+
*/
|
|
1959
|
+
setResultFade(fade) {
|
|
1960
|
+
this.resultFade = fade;
|
|
1961
|
+
}
|
|
1962
|
+
/**
|
|
1963
|
+
* Hand the rows the renderer can no longer repaint back to the colors this
|
|
1964
|
+
* card drew them in, so a fade that is still climbing never rewrites them.
|
|
1965
|
+
* @param floor - this card's own first repaintable line; the application
|
|
1966
|
+
* raises it as the frame grows and never lowers it.
|
|
1967
|
+
* @returns whether the floor took rows away from a fade that is drawing
|
|
1968
|
+
* right now, and so whether the frame differs from the one just built.
|
|
1969
|
+
*/
|
|
1970
|
+
setRepaintFloor(floor) {
|
|
1971
|
+
if (floor <= this.repaintFloor) return false;
|
|
1972
|
+
this.repaintFloor = floor;
|
|
1973
|
+
return this.fade?.age() !== void 0 || this.resultFade?.age() !== void 0;
|
|
1424
1974
|
}
|
|
1425
1975
|
/**
|
|
1426
1976
|
* Attach the result rows and settle the status.
|
|
@@ -1441,17 +1991,63 @@ var ToolBlock = class {
|
|
|
1441
1991
|
invalidate() {}
|
|
1442
1992
|
render(width) {
|
|
1443
1993
|
const palette = this.theme.palette;
|
|
1994
|
+
const marked = this.highlight !== void 0;
|
|
1995
|
+
const outer = marked ? Math.max(1, width - GUTTER_WIDTH) : width;
|
|
1444
1996
|
const header = `${this.status === "running" ? palette.warning("●") : this.status === "done" ? palette.success("●") : palette.error("●")} ${palette.bold(this.name)}${this.call.title === "" ? "" : ` ${palette.dim(this.call.title)}`}`;
|
|
1445
|
-
const
|
|
1446
|
-
const
|
|
1447
|
-
const
|
|
1448
|
-
|
|
1997
|
+
const body = [...this.call.lines, ...this.resultLines];
|
|
1998
|
+
const shown = previewLines(body, this.theme.toolPreviewLines, this.expanded);
|
|
1999
|
+
const callCount = Math.min(this.call.lines.length, shown.length);
|
|
2000
|
+
const inner = Math.max(1, outer - 4);
|
|
2001
|
+
const rows = (lines) => lines.flatMap((line) => wrapTextWithAnsi(line, inner).map((part) => ` ${palette.dim("│")} ${part}`));
|
|
2002
|
+
const callLines = [...wrapTextWithAnsi(header, outer), ...rows(shown.slice(0, callCount))];
|
|
2003
|
+
const resultLines = rows(shown.slice(callCount));
|
|
2004
|
+
const call = faded(callLines, this.fade, this.repaintFloor - 1);
|
|
2005
|
+
const result = faded(resultLines, this.resultFade, this.repaintFloor - 1 - callLines.length);
|
|
2006
|
+
const lines = [
|
|
1449
2007
|
"",
|
|
1450
|
-
...
|
|
1451
|
-
...
|
|
2008
|
+
...call,
|
|
2009
|
+
...result
|
|
1452
2010
|
];
|
|
2011
|
+
if (!marked) return lines;
|
|
2012
|
+
const cut = !this.expanded && body.length > this.theme.toolPreviewLines;
|
|
2013
|
+
const sections = lines.length - (cut ? rows(shown.slice(-1)).length : 0);
|
|
2014
|
+
const section = this.highlight === "result" ? {
|
|
2015
|
+
from: 1 + callLines.length,
|
|
2016
|
+
to: lines.length
|
|
2017
|
+
} : {
|
|
2018
|
+
from: 1,
|
|
2019
|
+
to: 1 + callLines.length
|
|
2020
|
+
};
|
|
2021
|
+
return withGutter(palette, lines, (index) => index >= section.from && index < section.to && index < sections);
|
|
1453
2022
|
}
|
|
1454
2023
|
};
|
|
2024
|
+
/**
|
|
2025
|
+
* Draw one group of a card's rows at the level its fade reports.
|
|
2026
|
+
* @param lines - the group's final rendered lines.
|
|
2027
|
+
* @param fade - the group's fade; absent for a card that never faded.
|
|
2028
|
+
* @param from - first line of the group the fade may recolor.
|
|
2029
|
+
* @returns the lines at that level, or the lines themselves once the fade
|
|
2030
|
+
* settled or was never attached.
|
|
2031
|
+
*/
|
|
2032
|
+
function faded(lines, fade, from) {
|
|
2033
|
+
if (fade === void 0) return lines;
|
|
2034
|
+
const age = fade.age();
|
|
2035
|
+
return age === void 0 ? lines : recolorLines(lines, age, fade.style(), from);
|
|
2036
|
+
}
|
|
2037
|
+
/**
|
|
2038
|
+
* The tail chunks one streaming region still draws below the terminal's own
|
|
2039
|
+
* foreground.
|
|
2040
|
+
*
|
|
2041
|
+
* The last ramp level is an assumed foreground - pi-tui reports the terminal
|
|
2042
|
+
* background but not its foreground - so a chunk that reached it is left to
|
|
2043
|
+
* draw in the terminal's own foreground, which is also what it draws in once it
|
|
2044
|
+
* leaves the tail. No chunk can therefore jump color as it settles.
|
|
2045
|
+
* @param fade - the region's fade; absent for a region that never faded.
|
|
2046
|
+
* @returns the spans to recolor, oldest first.
|
|
2047
|
+
*/
|
|
2048
|
+
function drawnSpans(fade) {
|
|
2049
|
+
return fade === void 0 ? [] : fade.spans().filter((span) => span.age < fade.steps - 1);
|
|
2050
|
+
}
|
|
1455
2051
|
//#endregion
|
|
1456
2052
|
//#region lib/types/completion.js
|
|
1457
2053
|
/**
|
|
@@ -1685,6 +2281,285 @@ async function exportSessionZip(ctx, sessionId, directory, signal) {
|
|
|
1685
2281
|
return path;
|
|
1686
2282
|
}
|
|
1687
2283
|
//#endregion
|
|
2284
|
+
//#region lib/types/inspector.js
|
|
2285
|
+
/**
|
|
2286
|
+
* The docked inspector above the editor: while the keyboard walks the
|
|
2287
|
+
* transcript it shows the focused section in full - what it is, which part of
|
|
2288
|
+
* its block is held, and the start of that part's own rows.
|
|
2289
|
+
*
|
|
2290
|
+
* It is the focus indicator that is always on screen. A block is also marked
|
|
2291
|
+
* in place, but only while the renderer can still repaint its first line
|
|
2292
|
+
* (`./navigation.ts`), so the heading says when the marked block itself has
|
|
2293
|
+
* scrolled out of reach. Rows arrive as the block's source text with no fade
|
|
2294
|
+
* and no palette styling of their own, so a section that is still streaming
|
|
2295
|
+
* grows here as it arrives.
|
|
2296
|
+
* @module @deepseek-ai/dsh-tui-app/inspector
|
|
2297
|
+
*/
|
|
2298
|
+
/** What separates two labels of the parts strip. */
|
|
2299
|
+
const SEPARATOR$3 = " · ";
|
|
2300
|
+
/** Brackets the parts strip, so the strip reads as one row of choices. */
|
|
2301
|
+
const STRIP_ENDS = ["‹ ", " ›"];
|
|
2302
|
+
/** What the heading appends while the focused block lies outside the repaint window. */
|
|
2303
|
+
const OFF_SCREEN = " · off screen";
|
|
2304
|
+
/** The keys the inspector answers, drawn dim under its rows. */
|
|
2305
|
+
const HINT = "↑ ↓ blocks · ← → parts · Enter page · Esc back";
|
|
2306
|
+
/** What ends a line the width cut short; one column, so the mark itself fits. */
|
|
2307
|
+
const ELLIPSIS = "…";
|
|
2308
|
+
/**
|
|
2309
|
+
* Draw the focused section.
|
|
2310
|
+
* @param view - the section to show.
|
|
2311
|
+
* @param render - the palette, the row budget, and the width.
|
|
2312
|
+
* @returns the inspector's lines, none wider than `width`: a blank separator,
|
|
2313
|
+
* the heading, the parts strip when the block has more than one part, the
|
|
2314
|
+
* folded rows, and the hints.
|
|
2315
|
+
*/
|
|
2316
|
+
function renderInspector(view, render) {
|
|
2317
|
+
const { palette } = render;
|
|
2318
|
+
const width = Math.max(1, render.width);
|
|
2319
|
+
const lines = ["", heading(view, palette, width)];
|
|
2320
|
+
if (view.parts.length > 1) lines.push(partsStrip(view.parts, palette));
|
|
2321
|
+
const wrapped = view.rows.flatMap((row) => wrapTextWithAnsi(row, width));
|
|
2322
|
+
lines.push(...foldRows(wrapped, render.previewLines, (hidden) => palette.dim(`… ${String(hidden)} more row${hidden === 1 ? "" : "s"} · Enter opens the page`)));
|
|
2323
|
+
lines.push(palette.dim(HINT));
|
|
2324
|
+
return lines.map((line) => truncateToWidth(line, width, ELLIPSIS));
|
|
2325
|
+
}
|
|
2326
|
+
/**
|
|
2327
|
+
* The heading line. A tool title can run past any terminal, so the subject is
|
|
2328
|
+
* cut first and the off-screen mark stays whole: where the marked block went
|
|
2329
|
+
* must never be what the width hides.
|
|
2330
|
+
* @param view - the section to show.
|
|
2331
|
+
* @param palette - the palette the heading is styled with.
|
|
2332
|
+
* @param width - the width the line must fit; at least 1.
|
|
2333
|
+
* @returns the heading, with the mark when the block is not on screen.
|
|
2334
|
+
*/
|
|
2335
|
+
function heading(view, palette, width) {
|
|
2336
|
+
const subject = palette.bold(palette.accent(view.heading));
|
|
2337
|
+
if (view.highlighted) return subject;
|
|
2338
|
+
const suffix = palette.dim(OFF_SCREEN);
|
|
2339
|
+
return `${truncateToWidth(subject, Math.max(1, width - visibleWidth(suffix)), ELLIPSIS)}${suffix}`;
|
|
2340
|
+
}
|
|
2341
|
+
/**
|
|
2342
|
+
* Draw the parts of the focused block as one row of choices.
|
|
2343
|
+
* @param parts - the labels in reading order, the held one marked.
|
|
2344
|
+
* @param palette - the palette the labels are styled with.
|
|
2345
|
+
* @returns the strip line.
|
|
2346
|
+
*/
|
|
2347
|
+
function partsStrip(parts, palette) {
|
|
2348
|
+
const labels = parts.map((part) => part.focused ? palette.accent(part.label) : palette.dim(part.label)).join(palette.dim(SEPARATOR$3));
|
|
2349
|
+
return `${palette.dim(STRIP_ENDS[0])}${labels}${palette.dim(STRIP_ENDS[1])}`;
|
|
2350
|
+
}
|
|
2351
|
+
/**
|
|
2352
|
+
* The inspector as a mounted component.
|
|
2353
|
+
*
|
|
2354
|
+
* The view is read once per render rather than pushed in, so a section that is
|
|
2355
|
+
* still streaming and a tool result that has just landed reach the screen with
|
|
2356
|
+
* the frame that draws them, without the application refreshing the pane.
|
|
2357
|
+
*/
|
|
2358
|
+
var InspectorPane = class {
|
|
2359
|
+
view;
|
|
2360
|
+
settings;
|
|
2361
|
+
/**
|
|
2362
|
+
* @param view - reads the section to draw; undefined draws nothing at all,
|
|
2363
|
+
* which is what an unmounted moment and a transcript with no cursor yield.
|
|
2364
|
+
* @param settings - the palette and the row budget; the width arrives per render.
|
|
2365
|
+
*/
|
|
2366
|
+
constructor(view, settings) {
|
|
2367
|
+
this.view = view;
|
|
2368
|
+
this.settings = settings;
|
|
2369
|
+
}
|
|
2370
|
+
invalidate() {}
|
|
2371
|
+
/**
|
|
2372
|
+
* Draw the focused section at `width`.
|
|
2373
|
+
* @param width - the total width the pane lays out in.
|
|
2374
|
+
* @returns the inspector's lines, or none when no section is focused.
|
|
2375
|
+
*/
|
|
2376
|
+
render(width) {
|
|
2377
|
+
const view = this.view();
|
|
2378
|
+
return view === void 0 ? [] : renderInspector(view, {
|
|
2379
|
+
...this.settings,
|
|
2380
|
+
width
|
|
2381
|
+
});
|
|
2382
|
+
}
|
|
2383
|
+
};
|
|
2384
|
+
//#endregion
|
|
2385
|
+
//#region lib/types/navigation.js
|
|
2386
|
+
/**
|
|
2387
|
+
* The transcript as a list of navigable sections.
|
|
2388
|
+
*
|
|
2389
|
+
* A conversation is drawn as one component per fact, and the keyboard walks it
|
|
2390
|
+
* in two directions: between blocks and, inside a block, between its parts -
|
|
2391
|
+
* the reasoning and the reply of a message, the call and the result of a tool.
|
|
2392
|
+
* This module turns the transcript container's children into that list and
|
|
2393
|
+
* moves one cursor over it. Everything here is plain data: no pi-tui, no
|
|
2394
|
+
* palette, no clock. The rows a part carries are the block's own source text,
|
|
2395
|
+
* so the page `Enter` opens shows what the model wrote rather than a rendering
|
|
2396
|
+
* of it.
|
|
2397
|
+
* @module @deepseek-ai/dsh-tui-app/navigation
|
|
2398
|
+
*/
|
|
2399
|
+
/** What separates two facts inside one heading. */
|
|
2400
|
+
const SEPARATOR$2 = " · ";
|
|
2401
|
+
/**
|
|
2402
|
+
* Whether one transcript child is navigable.
|
|
2403
|
+
* @param child - a child of the transcript container.
|
|
2404
|
+
* @returns true when the child carries the navigable marker.
|
|
2405
|
+
*/
|
|
2406
|
+
function isSectionSource(child) {
|
|
2407
|
+
return typeof child === "object" && child !== null && child.navigable === true;
|
|
2408
|
+
}
|
|
2409
|
+
/**
|
|
2410
|
+
* The navigable blocks of a transcript, in drawing order.
|
|
2411
|
+
* @param children - the transcript container's children.
|
|
2412
|
+
* @returns the children that expose sections; notices and printed rows are left out.
|
|
2413
|
+
*/
|
|
2414
|
+
function navigableBlocks(children) {
|
|
2415
|
+
return children.filter(isSectionSource);
|
|
2416
|
+
}
|
|
2417
|
+
/**
|
|
2418
|
+
* Hold one index inside a list.
|
|
2419
|
+
* @param index - the wanted index.
|
|
2420
|
+
* @param length - the list length; at least 1.
|
|
2421
|
+
* @returns the index, moved to the nearest end when it falls outside.
|
|
2422
|
+
*/
|
|
2423
|
+
function clampIndex(index, length) {
|
|
2424
|
+
return Math.max(0, Math.min(index, length - 1));
|
|
2425
|
+
}
|
|
2426
|
+
/**
|
|
2427
|
+
* How many parts one block carries.
|
|
2428
|
+
* @param blocks - the navigable blocks.
|
|
2429
|
+
* @param index - the block to count.
|
|
2430
|
+
* @returns the count, and 0 for an index past the list.
|
|
2431
|
+
*/
|
|
2432
|
+
function partCount(blocks, index) {
|
|
2433
|
+
return blocks[index]?.parts().length ?? 0;
|
|
2434
|
+
}
|
|
2435
|
+
/**
|
|
2436
|
+
* Where the keyboard enters the transcript: the newest block, on its last
|
|
2437
|
+
* part, which is the most recent thing the session produced.
|
|
2438
|
+
* @param blocks - the navigable blocks.
|
|
2439
|
+
* @returns the cursor, or undefined when the transcript has nothing to inspect.
|
|
2440
|
+
*/
|
|
2441
|
+
function enterNewest(blocks) {
|
|
2442
|
+
const block = blocks.length - 1;
|
|
2443
|
+
const parts = partCount(blocks, block);
|
|
2444
|
+
if (parts === 0) return void 0;
|
|
2445
|
+
return {
|
|
2446
|
+
block,
|
|
2447
|
+
part: parts - 1
|
|
2448
|
+
};
|
|
2449
|
+
}
|
|
2450
|
+
/**
|
|
2451
|
+
* Move to another block, landing on its last part.
|
|
2452
|
+
* @param cursor - where the focus sits.
|
|
2453
|
+
* @param step - 1 for the next block, -1 for the previous one.
|
|
2454
|
+
* @param blocks - the navigable blocks.
|
|
2455
|
+
* @returns the new cursor; the cursor itself at either end of the list.
|
|
2456
|
+
*/
|
|
2457
|
+
function moveBlock(cursor, step, blocks) {
|
|
2458
|
+
const block = clampIndex(cursor.block + step, blocks.length);
|
|
2459
|
+
if (block === cursor.block) return cursor;
|
|
2460
|
+
return {
|
|
2461
|
+
block,
|
|
2462
|
+
part: Math.max(0, partCount(blocks, block) - 1)
|
|
2463
|
+
};
|
|
2464
|
+
}
|
|
2465
|
+
/**
|
|
2466
|
+
* Move between the parts of the held block.
|
|
2467
|
+
* @param cursor - where the focus sits.
|
|
2468
|
+
* @param step - 1 for the next part, -1 for the previous one.
|
|
2469
|
+
* @param blocks - the navigable blocks.
|
|
2470
|
+
* @returns the new cursor; the cursor itself at either end of the block.
|
|
2471
|
+
*/
|
|
2472
|
+
function movePart(cursor, step, blocks) {
|
|
2473
|
+
const parts = partCount(blocks, cursor.block);
|
|
2474
|
+
if (parts === 0) return cursor;
|
|
2475
|
+
return {
|
|
2476
|
+
block: cursor.block,
|
|
2477
|
+
part: clampIndex(cursor.part + step, parts)
|
|
2478
|
+
};
|
|
2479
|
+
}
|
|
2480
|
+
/**
|
|
2481
|
+
* Put a remembered cursor back on the current transcript, which grew a block,
|
|
2482
|
+
* grew a part, or was replaced by another session since it was taken.
|
|
2483
|
+
* @param cursor - the remembered cursor.
|
|
2484
|
+
* @param blocks - the navigable blocks as they are now.
|
|
2485
|
+
* @returns the cursor inside the current list, or undefined when the
|
|
2486
|
+
* transcript has nothing to hold it.
|
|
2487
|
+
*/
|
|
2488
|
+
function clampCursor(cursor, blocks) {
|
|
2489
|
+
if (blocks.length === 0) return void 0;
|
|
2490
|
+
const block = clampIndex(cursor.block, blocks.length);
|
|
2491
|
+
const parts = partCount(blocks, block);
|
|
2492
|
+
if (parts === 0) return void 0;
|
|
2493
|
+
return {
|
|
2494
|
+
block,
|
|
2495
|
+
part: clampIndex(cursor.part, parts)
|
|
2496
|
+
};
|
|
2497
|
+
}
|
|
2498
|
+
/**
|
|
2499
|
+
* The part the cursor holds.
|
|
2500
|
+
* @param cursor - where the focus sits.
|
|
2501
|
+
* @param blocks - the navigable blocks.
|
|
2502
|
+
* @returns the part, or undefined when the cursor points past the list.
|
|
2503
|
+
*/
|
|
2504
|
+
function partAt(cursor, blocks) {
|
|
2505
|
+
return blocks[cursor.block]?.parts()[cursor.part];
|
|
2506
|
+
}
|
|
2507
|
+
/**
|
|
2508
|
+
* What the inspector and the parts strip call one section.
|
|
2509
|
+
* @param kind - the section.
|
|
2510
|
+
* @returns the label; the user's own prompt reads as `you`.
|
|
2511
|
+
*/
|
|
2512
|
+
function partLabel(kind) {
|
|
2513
|
+
return kind === "user" ? "you" : kind;
|
|
2514
|
+
}
|
|
2515
|
+
/**
|
|
2516
|
+
* How a block names the held section after its position and turn.
|
|
2517
|
+
* @param block - the held block.
|
|
2518
|
+
* @param part - the held part.
|
|
2519
|
+
* @returns the naming facts, in heading order.
|
|
2520
|
+
*/
|
|
2521
|
+
function subjectOf(block, part) {
|
|
2522
|
+
switch (block.blockKind) {
|
|
2523
|
+
case "user":
|
|
2524
|
+
case "assistant": return [partLabel(part.kind)];
|
|
2525
|
+
case "tool": return [block.title === "" ? block.name : `${block.name} ${block.title}`, block.parts().some((candidate) => candidate.kind === "result") ? partLabel(part.kind) : "running"];
|
|
2526
|
+
/* v8 ignore next -- closed-union exhaustiveness guard */
|
|
2527
|
+
default: return assertNever(block, "tui transcript block kind");
|
|
2528
|
+
}
|
|
2529
|
+
}
|
|
2530
|
+
/**
|
|
2531
|
+
* The inspector heading of the held section: its position in the transcript,
|
|
2532
|
+
* the turn it belongs to, and what the section is.
|
|
2533
|
+
* @param cursor - where the focus sits.
|
|
2534
|
+
* @param blocks - the navigable blocks.
|
|
2535
|
+
* @returns the heading, or an empty string when the cursor points past the list.
|
|
2536
|
+
*/
|
|
2537
|
+
function sectionHeading(cursor, blocks) {
|
|
2538
|
+
const block = blocks[cursor.block];
|
|
2539
|
+
const part = partAt(cursor, blocks);
|
|
2540
|
+
if (block === void 0 || part === void 0) return "";
|
|
2541
|
+
return [
|
|
2542
|
+
`${String(cursor.block + 1)}/${String(blocks.length)}`,
|
|
2543
|
+
`turn ${String(block.turn)}`,
|
|
2544
|
+
...subjectOf(block, part)
|
|
2545
|
+
].join(SEPARATOR$2);
|
|
2546
|
+
}
|
|
2547
|
+
/**
|
|
2548
|
+
* The parts strip of the held block.
|
|
2549
|
+
* @param cursor - where the focus sits.
|
|
2550
|
+
* @param blocks - the navigable blocks.
|
|
2551
|
+
* @returns one label per part in reading order, the held one marked; empty
|
|
2552
|
+
* when the cursor points past the list.
|
|
2553
|
+
*/
|
|
2554
|
+
function partLabels(cursor, blocks) {
|
|
2555
|
+
const block = blocks[cursor.block];
|
|
2556
|
+
if (block === void 0) return [];
|
|
2557
|
+
return block.parts().map((part, index) => ({
|
|
2558
|
+
label: partLabel(part.kind),
|
|
2559
|
+
focused: index === cursor.part
|
|
2560
|
+
}));
|
|
2561
|
+
}
|
|
2562
|
+
//#endregion
|
|
1688
2563
|
//#region lib/types/todos.js
|
|
1689
2564
|
/**
|
|
1690
2565
|
* The agent's todo list as terminal rows: the status glyphs every todo surface
|
|
@@ -2088,9 +2963,9 @@ const WORKSPACE_LABEL_WIDTH = 24;
|
|
|
2088
2963
|
/** The last two segments of a path, with the separators that precede them. */
|
|
2089
2964
|
const PATH_TAIL = /[/\\][^/\\]+[/\\][^/\\]+$/u;
|
|
2090
2965
|
/** The keys the focused bar answers, replacing the usual hints. */
|
|
2091
|
-
const FOCUS_HINTS$1 = `← → select${SEPARATOR$1}Enter details${SEPARATOR$1}Esc back`;
|
|
2092
|
-
/** What the unfocused hints advertise as the
|
|
2093
|
-
const ENTRY_HINT =
|
|
2966
|
+
const FOCUS_HINTS$1 = `← → select${SEPARATOR$1}↑ ↓ regions${SEPARATOR$1}Enter details${SEPARATOR$1}Esc back`;
|
|
2967
|
+
/** What the unfocused hints advertise as the two ways out of the editor. */
|
|
2968
|
+
const ENTRY_HINT = `Shift+↑ transcript${SEPARATOR$1}Shift+↓ status bar`;
|
|
2094
2969
|
/** The command that prints every projection section at once. */
|
|
2095
2970
|
const STATUS_COMMAND_ROW = "/status prints all of these sections";
|
|
2096
2971
|
/**
|
|
@@ -2251,15 +3126,12 @@ const SELECT_MAX_VISIBLE = 8;
|
|
|
2251
3126
|
/** Call-detail rows an approval shows before folding the rest into a count. */
|
|
2252
3127
|
const APPROVAL_DETAIL_MAX_ROWS = 12;
|
|
2253
3128
|
/**
|
|
2254
|
-
*
|
|
2255
|
-
* @param
|
|
2256
|
-
* @
|
|
2257
|
-
* @returns the rows to draw, with a trailing count of hidden rows when cut.
|
|
3129
|
+
* The trailing row an approval's folded call detail carries.
|
|
3130
|
+
* @param hidden - rows left out.
|
|
3131
|
+
* @returns the marker row.
|
|
2258
3132
|
*/
|
|
2259
|
-
function
|
|
2260
|
-
|
|
2261
|
-
const hidden = lines.length - max;
|
|
2262
|
-
return [...lines.slice(0, max), `… ${String(hidden)} more line${hidden === 1 ? "" : "s"}`];
|
|
3133
|
+
function approvalFoldMarker(hidden) {
|
|
3134
|
+
return `… ${String(hidden)} more line${hidden === 1 ? "" : "s"}`;
|
|
2263
3135
|
}
|
|
2264
3136
|
/** One settlement slot: the first value wins, later values are ignored. */
|
|
2265
3137
|
var Settlement = class {
|
|
@@ -2378,7 +3250,7 @@ var ListPrompt = class {
|
|
|
2378
3250
|
var ApprovalPrompt = class extends ListPrompt {
|
|
2379
3251
|
constructor(palette, toolName, reason, detail = []) {
|
|
2380
3252
|
const title = `${palette.warning("?")} ${palette.bold(`Allow ${toolName}?`)}`;
|
|
2381
|
-
super(palette, reason === void 0 ? title : `${title}\n${palette.dim(reason)}`, foldRows(detail, APPROVAL_DETAIL_MAX_ROWS), [{
|
|
3253
|
+
super(palette, reason === void 0 ? title : `${title}\n${palette.dim(reason)}`, foldRows(detail, APPROVAL_DETAIL_MAX_ROWS, approvalFoldMarker), [{
|
|
2382
3254
|
value: "allowed-once",
|
|
2383
3255
|
label: "Allow once",
|
|
2384
3256
|
description: "run this call"
|
|
@@ -2773,6 +3645,89 @@ var ModalQueue = class {
|
|
|
2773
3645
|
}
|
|
2774
3646
|
};
|
|
2775
3647
|
//#endregion
|
|
3648
|
+
//#region lib/types/screen.js
|
|
3649
|
+
/**
|
|
3650
|
+
* The main screen this application renders through, and the repaint rule the
|
|
3651
|
+
* renderer imposes on everything drawn above the terminal's viewport.
|
|
3652
|
+
*
|
|
3653
|
+
* pi-tui's `TuiMainScreen` draws into the terminal's own scrollback. It
|
|
3654
|
+
* repaints differentially only the lines whose index is at or after
|
|
3655
|
+
* `previousViewportTop`, the top of the last written frame's viewport, and
|
|
3656
|
+
* falls back to a full redraw that writes `ESC[2J ESC[H ESC[3J` - which
|
|
3657
|
+
* discards the terminal's scrollback - as soon as a line above it changed.
|
|
3658
|
+
* `previousViewportTop` is a high-water mark: every frame raises it towards
|
|
3659
|
+
* `frameLines - terminal.rows` and a shorter frame never lowers it again, so a
|
|
3660
|
+
* line that once left the window stays out of reach until the renderer redraws
|
|
3661
|
+
* in full and resets it.
|
|
3662
|
+
*
|
|
3663
|
+
* Anything that redraws lines a component already produced - the streaming
|
|
3664
|
+
* fade, a card fade, the focus gutter - therefore asks {@link repaintFloor} how
|
|
3665
|
+
* far into a block the renderer can still follow it, and
|
|
3666
|
+
* {@link GuardedMainScreen} gives the application the one moment where that
|
|
3667
|
+
* question can be answered: after a frame was built and before it is written.
|
|
3668
|
+
* @module @deepseek-ai/dsh-tui-app/screen
|
|
3669
|
+
*/
|
|
3670
|
+
/**
|
|
3671
|
+
* How many times one frame is offered to the guard before it is written. Two
|
|
3672
|
+
* passes let the guard answer for the geometry its own first pass produced -
|
|
3673
|
+
* a gutter rewraps the block it marks - and end on a frame the application's
|
|
3674
|
+
* own record of what is marked describes.
|
|
3675
|
+
*/
|
|
3676
|
+
const SETTLE_PASSES = 2;
|
|
3677
|
+
/**
|
|
3678
|
+
* The first line of one block the renderer can still repaint.
|
|
3679
|
+
* @param start - index of the block's first line in the frame.
|
|
3680
|
+
* @param viewportTop - the frame's first repaintable line, as
|
|
3681
|
+
* {@link GuardedMainScreen} hands it to its guard.
|
|
3682
|
+
* @returns the block's own first repaintable line index, 0 while the whole
|
|
3683
|
+
* block lies inside the window.
|
|
3684
|
+
*/
|
|
3685
|
+
function repaintFloor(start, viewportTop) {
|
|
3686
|
+
return Math.max(0, viewportTop - start);
|
|
3687
|
+
}
|
|
3688
|
+
/**
|
|
3689
|
+
* The main screen that settles each frame between building it and writing it.
|
|
3690
|
+
*
|
|
3691
|
+
* The guard is handed the frame's first repaintable line: the higher of the
|
|
3692
|
+
* renderer's own `previousViewportTop` and the boundary the frame just built
|
|
3693
|
+
* imposes once it is written. The first term is what the renderer judges this
|
|
3694
|
+
* write against. The second keeps every decision one frame ahead of that
|
|
3695
|
+
* judgement, so what the guard changes today it can still change back
|
|
3696
|
+
* tomorrow. Settling before the write also means a fade reaches the terminal
|
|
3697
|
+
* already settled instead of changing in the next frame, by which time its
|
|
3698
|
+
* lines may sit above the window.
|
|
3699
|
+
*/
|
|
3700
|
+
var GuardedMainScreen = class extends TuiMainScreen {
|
|
3701
|
+
guard;
|
|
3702
|
+
/**
|
|
3703
|
+
* @param terminal - the terminal the tree renders into.
|
|
3704
|
+
* @param showHardwareCursor - whether the terminal's own cursor is the caret.
|
|
3705
|
+
* @param guard - given the frame's first repaintable line and the width it
|
|
3706
|
+
* was built at, applies what that geometry decides and reports whether it
|
|
3707
|
+
* changed any line; run at most {@link SETTLE_PASSES} times per frame, each
|
|
3708
|
+
* `true` on a frame that is built again.
|
|
3709
|
+
*/
|
|
3710
|
+
constructor(terminal, showHardwareCursor, guard) {
|
|
3711
|
+
super(terminal, showHardwareCursor);
|
|
3712
|
+
this.guard = guard;
|
|
3713
|
+
}
|
|
3714
|
+
/**
|
|
3715
|
+
* Build the frame, let the guard settle what its geometry decides, and build
|
|
3716
|
+
* it again for every pass that changed a line.
|
|
3717
|
+
* @param width - the total width the tree lays out in.
|
|
3718
|
+
* @returns the frame to write, settled against its own geometry.
|
|
3719
|
+
*/
|
|
3720
|
+
render(width) {
|
|
3721
|
+
const previousTop = this.captureRenderState().previousViewportTop;
|
|
3722
|
+
let lines = super.render(width);
|
|
3723
|
+
for (let pass = 0; pass < SETTLE_PASSES; pass += 1) {
|
|
3724
|
+
if (!this.guard(Math.max(previousTop, lines.length - this.terminal.rows), width)) break;
|
|
3725
|
+
lines = super.render(width);
|
|
3726
|
+
}
|
|
3727
|
+
return lines;
|
|
3728
|
+
}
|
|
3729
|
+
};
|
|
3730
|
+
//#endregion
|
|
2776
3731
|
//#region lib/types/sessions.js
|
|
2777
3732
|
/**
|
|
2778
3733
|
* Session facts the terminal shows and switches between: the persisted
|
|
@@ -2908,7 +3863,10 @@ function renderSubagentPanel(view, render) {
|
|
|
2908
3863
|
* the editor it keeps two docked regions the keyboard can take over — the
|
|
2909
3864
|
* subagent panel and the status bar — and one repeating tick advances their
|
|
2910
3865
|
* elapsed counters and re-reads a stale subagent listing. A second tick, at
|
|
2911
|
-
* its own period, brightens the text of the message streaming right now
|
|
3866
|
+
* its own period, brightens the text of the message streaming right now and
|
|
3867
|
+
* the tool cards that just landed, each only as far up the frame as the
|
|
3868
|
+
* renderer repaints without discarding the terminal's scrollback
|
|
3869
|
+
* (`./screen.ts`).
|
|
2912
3870
|
* @module @deepseek-ai/dsh-tui-app/app
|
|
2913
3871
|
*/
|
|
2914
3872
|
/** A second Ctrl+C inside this window quits. */
|
|
@@ -3044,6 +4002,10 @@ const LOCAL_COMMANDS = [
|
|
|
3044
4002
|
name: "deliverables",
|
|
3045
4003
|
description: "List the files the agent presented in this session"
|
|
3046
4004
|
},
|
|
4005
|
+
{
|
|
4006
|
+
name: "changes",
|
|
4007
|
+
description: "Browse the files the last turn changed (/changes <turn> for an earlier one; Enter shows a file's diff)"
|
|
4008
|
+
},
|
|
3047
4009
|
{
|
|
3048
4010
|
name: "subagents",
|
|
3049
4011
|
description: "Browse the subagent sessions under this session (Enter shows one session's details)"
|
|
@@ -3054,7 +4016,7 @@ const LOCAL_COMMANDS = [
|
|
|
3054
4016
|
},
|
|
3055
4017
|
{
|
|
3056
4018
|
name: "plugins",
|
|
3057
|
-
description: "List the composed plugins
|
|
4019
|
+
description: "List the composed plugins (/plugins bundles, /plugins enable|disable <id>, /plugins add <spec>, /plugins remove <name>)"
|
|
3058
4020
|
},
|
|
3059
4021
|
{
|
|
3060
4022
|
name: "tools",
|
|
@@ -3086,6 +4048,8 @@ var TuiApp = class {
|
|
|
3086
4048
|
statusSlot = new Container();
|
|
3087
4049
|
loader;
|
|
3088
4050
|
modalSlot = new Container();
|
|
4051
|
+
/** Draws the focused transcript section, and nothing at all while the keyboard is elsewhere. */
|
|
4052
|
+
inspector;
|
|
3089
4053
|
editor;
|
|
3090
4054
|
/** Holds {@link panel} exactly while the bound session has subagent rows. */
|
|
3091
4055
|
panelSlot = new Container();
|
|
@@ -3108,8 +4072,16 @@ var TuiApp = class {
|
|
|
3108
4072
|
home = homedir();
|
|
3109
4073
|
/** The segments of the last footer draw, in bar order. */
|
|
3110
4074
|
segments = [];
|
|
3111
|
-
/** Which
|
|
4075
|
+
/** Which region owns the keyboard. */
|
|
3112
4076
|
focus = "editor";
|
|
4077
|
+
/**
|
|
4078
|
+
* Where the transcript focus sits, kept across a page and a return to the
|
|
4079
|
+
* editor. A cursor the current transcript cannot place names nothing, which
|
|
4080
|
+
* is what a session change leaves behind.
|
|
4081
|
+
*/
|
|
4082
|
+
cursor;
|
|
4083
|
+
/** The section drawn with the focus gutter right now; set only by {@link TuiApp.settleFrame}. */
|
|
4084
|
+
highlighted;
|
|
3113
4085
|
/** The segment the status bar holds; read only while the bar has focus. */
|
|
3114
4086
|
barSelection = FIRST_FOOTER_SEGMENT;
|
|
3115
4087
|
/** The descendant listing the last reconcile produced, in pre-order. */
|
|
@@ -3128,8 +4100,14 @@ var TuiApp = class {
|
|
|
3128
4100
|
ticker;
|
|
3129
4101
|
/** Disposer of the fade tick while it is armed. */
|
|
3130
4102
|
fadeTicker;
|
|
3131
|
-
/** The tail of the message streaming right now; absent between messages. */
|
|
3132
|
-
|
|
4103
|
+
/** The visible-text tail of the message streaming right now; absent between messages. */
|
|
4104
|
+
textTail;
|
|
4105
|
+
/** The reasoning tail of the message streaming right now; absent between messages. */
|
|
4106
|
+
reasoningTail;
|
|
4107
|
+
/** The card fades running right now; each drops itself once it settles. */
|
|
4108
|
+
blockFades = new FadeRegistry();
|
|
4109
|
+
/** Set while {@link TuiApp.bind} replays a session's history, which draws its cards settled. */
|
|
4110
|
+
replaying = false;
|
|
3133
4111
|
/** Whether this terminal draws a ramp at all, decided once at start. */
|
|
3134
4112
|
fading = false;
|
|
3135
4113
|
/** How streamed text is drawn; `none` until the background query settles. */
|
|
@@ -3154,8 +4132,12 @@ var TuiApp = class {
|
|
|
3154
4132
|
palette,
|
|
3155
4133
|
toolPreviewLines: deps.toolPreviewLines
|
|
3156
4134
|
};
|
|
3157
|
-
this.tui = new
|
|
4135
|
+
this.tui = new GuardedMainScreen(deps.terminal, true, (viewportTop, width) => this.settleFrame(viewportTop, width));
|
|
3158
4136
|
this.header = new Text("", 0, 0);
|
|
4137
|
+
this.inspector = new InspectorPane(() => this.inspectorView(), {
|
|
4138
|
+
palette,
|
|
4139
|
+
previewLines: deps.focusPreviewLines
|
|
4140
|
+
});
|
|
3159
4141
|
this.loader = new Loader(this.tui, palette.accent, palette.dim, "thinking");
|
|
3160
4142
|
this.loader.stop();
|
|
3161
4143
|
this.editor = new BarCursorEditor(this.tui, editorTheme(palette), { paddingX: 1 });
|
|
@@ -3173,15 +4155,17 @@ var TuiApp = class {
|
|
|
3173
4155
|
slot: this.modalSlot,
|
|
3174
4156
|
focusAfter: this.editor
|
|
3175
4157
|
});
|
|
3176
|
-
|
|
4158
|
+
const tree = [
|
|
3177
4159
|
this.header,
|
|
3178
4160
|
this.chat,
|
|
3179
4161
|
this.statusSlot,
|
|
3180
4162
|
this.modalSlot,
|
|
4163
|
+
this.inspector,
|
|
3181
4164
|
this.editor,
|
|
3182
4165
|
this.panelSlot,
|
|
3183
4166
|
this.footer
|
|
3184
|
-
]
|
|
4167
|
+
];
|
|
4168
|
+
for (const child of tree) this.tui.addChild(child);
|
|
3185
4169
|
}
|
|
3186
4170
|
get agent() {
|
|
3187
4171
|
return this.bound.agent;
|
|
@@ -3229,10 +4213,11 @@ var TuiApp = class {
|
|
|
3229
4213
|
if (initialPrompt !== void 0) this.submit(initialPrompt);
|
|
3230
4214
|
}
|
|
3231
4215
|
/**
|
|
3232
|
-
* Decide whether streamed text
|
|
3233
|
-
* palette, the environment, and the reduced-motion preference. A
|
|
3234
|
-
* that draws no ramp tracks no tail
|
|
3235
|
-
* costs there exactly what it
|
|
4216
|
+
* Decide whether streamed text and tool cards fade at all, once per run,
|
|
4217
|
+
* from the palette, the environment, and the reduced-motion preference. A
|
|
4218
|
+
* terminal that draws no ramp tracks no tail, attaches no card fade, and
|
|
4219
|
+
* arms no fade tick, so streaming costs there exactly what it does with the
|
|
4220
|
+
* effect switched off.
|
|
3236
4221
|
*/
|
|
3237
4222
|
startFade() {
|
|
3238
4223
|
const capability = resolveFadeCapability({
|
|
@@ -3280,6 +4265,8 @@ var TuiApp = class {
|
|
|
3280
4265
|
/** Draw `next` as the terminal's session: clear the transcript and replay its history. */
|
|
3281
4266
|
bind(next) {
|
|
3282
4267
|
this.bound = next;
|
|
4268
|
+
this.focusEditor();
|
|
4269
|
+
this.highlighted = void 0;
|
|
3283
4270
|
this.chat.clear();
|
|
3284
4271
|
this.toolBlocks.clear();
|
|
3285
4272
|
this.toolArguments.clear();
|
|
@@ -3289,6 +4276,7 @@ var TuiApp = class {
|
|
|
3289
4276
|
this.turnStartedAt = void 0;
|
|
3290
4277
|
this.streaming = void 0;
|
|
3291
4278
|
this.endFade();
|
|
4279
|
+
this.blockFades.clear();
|
|
3292
4280
|
this.usage = EMPTY_USAGE;
|
|
3293
4281
|
this.pending = [];
|
|
3294
4282
|
this.subagentEntries = [];
|
|
@@ -3296,7 +4284,9 @@ var TuiApp = class {
|
|
|
3296
4284
|
this.listingFailure = void 0;
|
|
3297
4285
|
this.subagentsStale = false;
|
|
3298
4286
|
this.setWorking(next.agent.status === "running");
|
|
4287
|
+
this.replaying = true;
|
|
3299
4288
|
for (const event of next.history) this.onSessionEvent(next.agent.session, event);
|
|
4289
|
+
this.replaying = false;
|
|
3300
4290
|
this.refreshHeader();
|
|
3301
4291
|
this.refreshFooter();
|
|
3302
4292
|
this.refreshSubagentPanel();
|
|
@@ -3683,6 +4673,67 @@ var TuiApp = class {
|
|
|
3683
4673
|
})), TODO_ROW_LAYOUT);
|
|
3684
4674
|
}
|
|
3685
4675
|
/**
|
|
4676
|
+
* Walk the files one turn changed: one row per file with its line counts,
|
|
4677
|
+
* and entering a row shows the file's turn-start to turn-end comparison.
|
|
4678
|
+
* @param turn - the turn to browse; the latest announced one when undefined.
|
|
4679
|
+
*/
|
|
4680
|
+
async browseChanges(turn) {
|
|
4681
|
+
const sessionId = this.agent.session.id;
|
|
4682
|
+
const signal = new AbortController().signal;
|
|
4683
|
+
const changes = await listTurnChanges(this.deps.ctx, sessionId, turn, signal);
|
|
4684
|
+
if (changes === void 0) {
|
|
4685
|
+
this.notice(turn === void 0 ? "no changed files recorded yet" : `no changed files recorded for turn ${String(turn)}`);
|
|
4686
|
+
return;
|
|
4687
|
+
}
|
|
4688
|
+
if (changes.choices.length === 0) {
|
|
4689
|
+
this.notice(`${changes.heading}: no file listed`);
|
|
4690
|
+
return;
|
|
4691
|
+
}
|
|
4692
|
+
await this.browse(changes.heading, changes.choices.map((choice) => ({
|
|
4693
|
+
item: {
|
|
4694
|
+
value: String(choice.index),
|
|
4695
|
+
label: choice.label,
|
|
4696
|
+
description: choice.description
|
|
4697
|
+
},
|
|
4698
|
+
heading: choice.label,
|
|
4699
|
+
detail: () => changeDiffRows(this.deps.ctx, sessionId, choice, signal)
|
|
4700
|
+
})));
|
|
4701
|
+
}
|
|
4702
|
+
/**
|
|
4703
|
+
* `/plugins` and its management verbs over the profile's plugin manager:
|
|
4704
|
+
* the composed plugins alone, the bundles, a switch of one entry or bundle,
|
|
4705
|
+
* an installation, or a removal.
|
|
4706
|
+
* @param argument - the verb and its operand; empty lists the composed plugins.
|
|
4707
|
+
*/
|
|
4708
|
+
async plugins(argument) {
|
|
4709
|
+
const [verb = "", ...rest] = argument.split(/\s+/).filter((word) => word !== "");
|
|
4710
|
+
const operand = rest.join(" ");
|
|
4711
|
+
switch (verb) {
|
|
4712
|
+
case "":
|
|
4713
|
+
this.showRows(listPlugins(this.deps.ctx), "no plugins are listed");
|
|
4714
|
+
return;
|
|
4715
|
+
case "bundles":
|
|
4716
|
+
this.showRows(await listBundles(this.deps.ctx), "no bundles are listed");
|
|
4717
|
+
return;
|
|
4718
|
+
case "enable":
|
|
4719
|
+
case "disable":
|
|
4720
|
+
if (operand === "") break;
|
|
4721
|
+
this.notice(await setPluginEnabled(this.deps.ctx, operand, verb === "enable"), "success");
|
|
4722
|
+
return;
|
|
4723
|
+
case "add":
|
|
4724
|
+
if (operand === "") break;
|
|
4725
|
+
this.notice(`installing ${operand}…`);
|
|
4726
|
+
this.notice(await installBundle(this.deps.ctx, operand), "success");
|
|
4727
|
+
return;
|
|
4728
|
+
case "remove":
|
|
4729
|
+
if (operand === "") break;
|
|
4730
|
+
this.notice(await removeBundle(this.deps.ctx, operand), "success");
|
|
4731
|
+
return;
|
|
4732
|
+
default: break;
|
|
4733
|
+
}
|
|
4734
|
+
this.notice("usage: /plugins · /plugins bundles · /plugins enable|disable <entry id or bundle> · /plugins add <spec> · /plugins remove <bundle>", "error");
|
|
4735
|
+
}
|
|
4736
|
+
/**
|
|
3686
4737
|
* The browsable entry behind one subagent row: the same detail page the
|
|
3687
4738
|
* `/subagents` list and the live panel open.
|
|
3688
4739
|
* @param choice - the listing row.
|
|
@@ -3778,12 +4829,13 @@ var TuiApp = class {
|
|
|
3778
4829
|
}
|
|
3779
4830
|
if (this.focus === "bar") return this.onStatusBarKey(data);
|
|
3780
4831
|
if (this.focus === "panel") return this.onPanelKey(data);
|
|
4832
|
+
if (this.focus === "transcript") return this.onTranscriptKey(data);
|
|
3781
4833
|
if (matchesKey(data, "shift+up")) {
|
|
3782
|
-
this.
|
|
4834
|
+
this.focusTranscript();
|
|
3783
4835
|
return { consume: true };
|
|
3784
4836
|
}
|
|
3785
|
-
if (matchesKey(data, "shift+down")
|
|
3786
|
-
this.
|
|
4837
|
+
if (matchesKey(data, "shift+down")) {
|
|
4838
|
+
this.focusBelowEditor();
|
|
3787
4839
|
return { consume: true };
|
|
3788
4840
|
}
|
|
3789
4841
|
if (matchesKey(data, "escape") && !this.editor.isShowingAutocomplete()) {
|
|
@@ -3812,18 +4864,38 @@ var TuiApp = class {
|
|
|
3812
4864
|
}
|
|
3813
4865
|
}
|
|
3814
4866
|
/**
|
|
3815
|
-
* Answer
|
|
3816
|
-
*
|
|
4867
|
+
* Answer the keys every non-editor region answers the same way: `Escape`
|
|
4868
|
+
* hands the keyboard back to the editor, `Shift+Up` names the conversation,
|
|
4869
|
+
* and `Shift+Down` the status bar.
|
|
3817
4870
|
* @param data - the raw key bytes.
|
|
3818
|
-
* @returns the consume marker the
|
|
4871
|
+
* @returns the consume marker when the key named a region, `undefined` when the focused region owns the key.
|
|
3819
4872
|
*/
|
|
3820
|
-
|
|
3821
|
-
if (matchesKey(data, "escape")
|
|
4873
|
+
onRegionKey(data) {
|
|
4874
|
+
if (matchesKey(data, "escape")) {
|
|
3822
4875
|
this.focusEditor();
|
|
3823
4876
|
return { consume: true };
|
|
3824
4877
|
}
|
|
3825
4878
|
if (matchesKey(data, "shift+up")) {
|
|
3826
|
-
this.
|
|
4879
|
+
this.focusTranscript();
|
|
4880
|
+
return { consume: true };
|
|
4881
|
+
}
|
|
4882
|
+
if (matchesKey(data, "shift+down")) {
|
|
4883
|
+
this.focusBar();
|
|
4884
|
+
return { consume: true };
|
|
4885
|
+
}
|
|
4886
|
+
}
|
|
4887
|
+
/**
|
|
4888
|
+
* Answer one key while the status bar holds focus. Every key is consumed
|
|
4889
|
+
* here, so nothing typed at the bar reaches the editor.
|
|
4890
|
+
* @param data - the raw key bytes.
|
|
4891
|
+
* @returns the consume marker the input listener returns.
|
|
4892
|
+
*/
|
|
4893
|
+
onStatusBarKey(data) {
|
|
4894
|
+
const region = this.onRegionKey(data);
|
|
4895
|
+
if (region !== void 0) return region;
|
|
4896
|
+
if (matchesKey(data, "up")) {
|
|
4897
|
+
if (this.panelView.rows.length > 0) this.focusPanel(this.panelView.rows.length - 1);
|
|
4898
|
+
else this.focusTranscript();
|
|
3827
4899
|
return { consume: true };
|
|
3828
4900
|
}
|
|
3829
4901
|
if (matchesKey(data, "left") || matchesKey(data, "shift+tab")) {
|
|
@@ -3838,27 +4910,60 @@ var TuiApp = class {
|
|
|
3838
4910
|
return { consume: true };
|
|
3839
4911
|
}
|
|
3840
4912
|
/**
|
|
3841
|
-
* Answer one key while the
|
|
3842
|
-
*
|
|
3843
|
-
* global meaning.
|
|
4913
|
+
* Answer one key while the transcript holds focus. Every key is consumed
|
|
4914
|
+
* here, so nothing typed while reading the conversation reaches the editor;
|
|
4915
|
+
* `Ctrl+C` and `Ctrl+D` never reach this far and keep their global meaning.
|
|
3844
4916
|
* @param data - the raw key bytes.
|
|
3845
4917
|
* @returns the consume marker the input listener returns.
|
|
3846
4918
|
*/
|
|
3847
|
-
|
|
3848
|
-
|
|
4919
|
+
onTranscriptKey(data) {
|
|
4920
|
+
const region = this.onRegionKey(data);
|
|
4921
|
+
if (region !== void 0) return region;
|
|
4922
|
+
const section = this.focusedSection();
|
|
4923
|
+
/* v8 ignore next 5 -- only a session change empties the transcript, and it hands the keyboard back first */
|
|
4924
|
+
if (section === void 0) {
|
|
3849
4925
|
this.focusEditor();
|
|
3850
4926
|
return { consume: true };
|
|
3851
4927
|
}
|
|
3852
|
-
|
|
3853
|
-
|
|
4928
|
+
const { cursor, blocks } = section;
|
|
4929
|
+
if (matchesKey(data, "up")) {
|
|
4930
|
+
this.moveCursor(moveBlock(cursor, -1, blocks));
|
|
4931
|
+
return { consume: true };
|
|
4932
|
+
}
|
|
4933
|
+
if (matchesKey(data, "down")) {
|
|
4934
|
+
if (cursor.block === blocks.length - 1) this.focusBelowEditor();
|
|
4935
|
+
else this.moveCursor(moveBlock(cursor, 1, blocks));
|
|
3854
4936
|
return { consume: true };
|
|
3855
4937
|
}
|
|
4938
|
+
if (matchesKey(data, "left")) {
|
|
4939
|
+
this.moveCursor(movePart(cursor, -1, blocks));
|
|
4940
|
+
return { consume: true };
|
|
4941
|
+
}
|
|
4942
|
+
if (matchesKey(data, "right")) {
|
|
4943
|
+
this.moveCursor(movePart(cursor, 1, blocks));
|
|
4944
|
+
return { consume: true };
|
|
4945
|
+
}
|
|
4946
|
+
if (matchesKey(data, "enter")) this.openSection(section);
|
|
4947
|
+
return { consume: true };
|
|
4948
|
+
}
|
|
4949
|
+
/**
|
|
4950
|
+
* Answer one key while the subagent panel holds focus. Every key is
|
|
4951
|
+
* consumed here; `Ctrl+C` and `Ctrl+D` never reach this far, keeping their
|
|
4952
|
+
* global meaning.
|
|
4953
|
+
* @param data - the raw key bytes.
|
|
4954
|
+
* @returns the consume marker the input listener returns.
|
|
4955
|
+
*/
|
|
4956
|
+
onPanelKey(data) {
|
|
4957
|
+
const region = this.onRegionKey(data);
|
|
4958
|
+
if (region !== void 0) return region;
|
|
3856
4959
|
if (matchesKey(data, "up")) {
|
|
3857
|
-
this.
|
|
4960
|
+
if (this.panelSelectionIndex(this.panelView.rows) === 0) this.focusTranscript();
|
|
4961
|
+
else this.movePanel(-1);
|
|
3858
4962
|
return { consume: true };
|
|
3859
4963
|
}
|
|
3860
4964
|
if (matchesKey(data, "down")) {
|
|
3861
|
-
this.
|
|
4965
|
+
if (this.panelSelectionIndex(this.panelView.rows) === this.panelView.rows.length - 1) this.focusBar();
|
|
4966
|
+
else this.movePanel(1);
|
|
3862
4967
|
return { consume: true };
|
|
3863
4968
|
}
|
|
3864
4969
|
if (matchesKey(data, "enter")) this.navigate("subagent details", () => this.openPanelRow());
|
|
@@ -3903,16 +5008,15 @@ var TuiApp = class {
|
|
|
3903
5008
|
this.refreshFooter();
|
|
3904
5009
|
}
|
|
3905
5010
|
/**
|
|
3906
|
-
* Move the panel's selection,
|
|
5011
|
+
* Move the panel's selection, stopping at both ends of the drawn rows. The
|
|
3907
5012
|
* rows behind a `+<n> more` row are not selectable; `/subagents` walks the
|
|
3908
5013
|
* complete tree.
|
|
3909
5014
|
* @param step - 1 for the next row, -1 for the previous one.
|
|
3910
5015
|
*/
|
|
3911
5016
|
movePanel(step) {
|
|
3912
5017
|
const rows = this.panelView.rows;
|
|
3913
|
-
const
|
|
3914
|
-
|
|
3915
|
-
/* v8 ignore next -- the wrapped index stays inside the panel's own rows */
|
|
5018
|
+
const next = rows[Math.max(0, Math.min(this.panelSelectionIndex(rows) + step, rows.length - 1))];
|
|
5019
|
+
/* v8 ignore next -- the clamped index stays inside the panel's own rows */
|
|
3916
5020
|
if (next !== void 0) this.panelSelection = next.id;
|
|
3917
5021
|
this.refreshSubagentPanel();
|
|
3918
5022
|
}
|
|
@@ -3921,13 +5025,103 @@ var TuiApp = class {
|
|
|
3921
5025
|
this.barSelection = FIRST_FOOTER_SEGMENT;
|
|
3922
5026
|
this.focusRegion("bar");
|
|
3923
5027
|
}
|
|
5028
|
+
/**
|
|
5029
|
+
* Give the keyboard to the subagent panel on one of its rows.
|
|
5030
|
+
* @param index - the row the selection lands on.
|
|
5031
|
+
*/
|
|
5032
|
+
focusPanel(index) {
|
|
5033
|
+
this.panelSelection = this.panelView.rows[index]?.id;
|
|
5034
|
+
this.focusRegion("panel");
|
|
5035
|
+
}
|
|
5036
|
+
/**
|
|
5037
|
+
* Give the keyboard to the region under the editor: the subagent panel's
|
|
5038
|
+
* first row while the panel is drawn, and the status bar otherwise.
|
|
5039
|
+
*/
|
|
5040
|
+
focusBelowEditor() {
|
|
5041
|
+
if (this.panelView.rows.length > 0) this.focusPanel(0);
|
|
5042
|
+
else this.focusBar();
|
|
5043
|
+
}
|
|
5044
|
+
/**
|
|
5045
|
+
* Give the keyboard to the transcript on its newest block. A session with
|
|
5046
|
+
* nothing to inspect yet says so and leaves the keyboard where it was.
|
|
5047
|
+
*/
|
|
5048
|
+
focusTranscript() {
|
|
5049
|
+
const cursor = enterNewest(navigableBlocks(this.chat.children));
|
|
5050
|
+
if (cursor === void 0) {
|
|
5051
|
+
this.notice("nothing in the transcript to inspect yet");
|
|
5052
|
+
return;
|
|
5053
|
+
}
|
|
5054
|
+
this.cursor = cursor;
|
|
5055
|
+
this.focusRegion("transcript");
|
|
5056
|
+
this.tui.requestRender();
|
|
5057
|
+
}
|
|
5058
|
+
/**
|
|
5059
|
+
* Put the transcript focus on another section.
|
|
5060
|
+
* @param cursor - where the focus moves to.
|
|
5061
|
+
*/
|
|
5062
|
+
moveCursor(cursor) {
|
|
5063
|
+
this.cursor = cursor;
|
|
5064
|
+
this.tui.requestRender();
|
|
5065
|
+
}
|
|
5066
|
+
/**
|
|
5067
|
+
* Read the remembered cursor against the transcript as it is drawn right
|
|
5068
|
+
* now: it grew parts and blocks since the cursor was taken, and a session
|
|
5069
|
+
* change replaced the blocks it named altogether. The cursor itself is left
|
|
5070
|
+
* alone, so a page and a trip through the editor come back to the same
|
|
5071
|
+
* section; {@link TuiApp.focusTranscript} replaces it.
|
|
5072
|
+
* @returns the section the cursor names, or undefined when the transcript
|
|
5073
|
+
* has nothing to hold it.
|
|
5074
|
+
*/
|
|
5075
|
+
focusedSection() {
|
|
5076
|
+
const blocks = navigableBlocks(this.chat.children);
|
|
5077
|
+
const cursor = this.cursor === void 0 ? void 0 : clampCursor(this.cursor, blocks);
|
|
5078
|
+
if (cursor === void 0) return void 0;
|
|
5079
|
+
const block = blocks[cursor.block];
|
|
5080
|
+
const part = block?.parts()[cursor.part];
|
|
5081
|
+
/* v8 ignore next -- clampCursor settles on a block that carries the part it names */
|
|
5082
|
+
if (block === void 0 || part === void 0) return void 0;
|
|
5083
|
+
return {
|
|
5084
|
+
cursor,
|
|
5085
|
+
blocks,
|
|
5086
|
+
block,
|
|
5087
|
+
part
|
|
5088
|
+
};
|
|
5089
|
+
}
|
|
5090
|
+
/**
|
|
5091
|
+
* Open the focused section as a read-only page and come back to it.
|
|
5092
|
+
* @param section - the focused section.
|
|
5093
|
+
*/
|
|
5094
|
+
openSection(section) {
|
|
5095
|
+
const { cursor, blocks } = section;
|
|
5096
|
+
const prompt = new DetailPrompt(this.deps.palette, sectionHeading(cursor, blocks), section.part.rows);
|
|
5097
|
+
this.navigate("section", async () => {
|
|
5098
|
+
await this.showModal(prompt);
|
|
5099
|
+
this.focusRegion("transcript");
|
|
5100
|
+
});
|
|
5101
|
+
}
|
|
5102
|
+
/**
|
|
5103
|
+
* The focused section as the docked inspector draws it.
|
|
5104
|
+
* @returns the view, or undefined while the keyboard is not in the
|
|
5105
|
+
* transcript, which draws no inspector at all.
|
|
5106
|
+
*/
|
|
5107
|
+
inspectorView() {
|
|
5108
|
+
const section = this.focusedSection();
|
|
5109
|
+
if (section === void 0 || this.focus !== "transcript") return void 0;
|
|
5110
|
+
const { cursor, blocks } = section;
|
|
5111
|
+
return {
|
|
5112
|
+
heading: sectionHeading(cursor, blocks),
|
|
5113
|
+
parts: partLabels(cursor, blocks),
|
|
5114
|
+
rows: section.part.rows,
|
|
5115
|
+
highlighted: this.highlighted !== void 0
|
|
5116
|
+
};
|
|
5117
|
+
}
|
|
3924
5118
|
/** Hand the keyboard back to the editor; a no-op while the editor already has it. */
|
|
3925
5119
|
focusEditor() {
|
|
3926
5120
|
this.focusRegion("editor");
|
|
3927
5121
|
}
|
|
3928
5122
|
/**
|
|
3929
|
-
* Move the keyboard between the
|
|
3930
|
-
*
|
|
5123
|
+
* Move the keyboard between the regions and redraw the docked ones, so the
|
|
5124
|
+
* region losing focus stops drawing its selection.
|
|
3931
5125
|
* @param region - the region that takes the keyboard.
|
|
3932
5126
|
*/
|
|
3933
5127
|
focusRegion(region) {
|
|
@@ -3986,7 +5180,7 @@ var TuiApp = class {
|
|
|
3986
5180
|
});
|
|
3987
5181
|
this.submittedIds.add(message.id);
|
|
3988
5182
|
const shown = attachments.length === 0 ? text : `${text}\n${attachments.map((attachment) => `[${attachment.block.type}: ${attachment.name}]`).join(" ")}`;
|
|
3989
|
-
this.chat.addChild(new UserBlock(this.theme, shown));
|
|
5183
|
+
this.chat.addChild(new UserBlock(this.theme, shown, this.turn));
|
|
3990
5184
|
if (agent.status !== "running") agent.followup(message);
|
|
3991
5185
|
else if (mode === "steer") {
|
|
3992
5186
|
agent.steer(message);
|
|
@@ -4066,6 +5260,15 @@ var TuiApp = class {
|
|
|
4066
5260
|
case "deliverables":
|
|
4067
5261
|
this.showRows(await listDeliverables(this.deps.ctx, this.agent.session.id, new AbortController().signal), "nothing presented yet");
|
|
4068
5262
|
return;
|
|
5263
|
+
case "changes": {
|
|
5264
|
+
const turn = argument === "" ? void 0 : Number(argument);
|
|
5265
|
+
if (turn !== void 0 && !(Number.isSafeInteger(turn) && turn > 0)) {
|
|
5266
|
+
this.notice("usage: /changes · /changes <turn>", "error");
|
|
5267
|
+
return;
|
|
5268
|
+
}
|
|
5269
|
+
await this.browseChanges(turn);
|
|
5270
|
+
return;
|
|
5271
|
+
}
|
|
4069
5272
|
case "subagents": {
|
|
4070
5273
|
const choices = await listSubagentChoices(this.deps.ctx, this.agent.session.id, new AbortController().signal);
|
|
4071
5274
|
if (choices.length === 0) {
|
|
@@ -4079,7 +5282,7 @@ var TuiApp = class {
|
|
|
4079
5282
|
await this.settings(argument);
|
|
4080
5283
|
return;
|
|
4081
5284
|
case "plugins":
|
|
4082
|
-
this.
|
|
5285
|
+
await this.plugins(argument);
|
|
4083
5286
|
return;
|
|
4084
5287
|
default: await this.runSharedCommand(line, name);
|
|
4085
5288
|
}
|
|
@@ -4093,8 +5296,9 @@ var TuiApp = class {
|
|
|
4093
5296
|
"@ completes paths and sessions (workspace, ../, ~/, absolute) · / completes commands",
|
|
4094
5297
|
"Esc stops the running turn · Ctrl+O expands or collapses tool output",
|
|
4095
5298
|
"Shift+Tab cycles the current model's reasoning effort for the next request",
|
|
4096
|
-
"Shift+Up focuses the
|
|
4097
|
-
"
|
|
5299
|
+
"Shift+Up focuses the transcript, Shift+Down the subagent panel or the status bar",
|
|
5300
|
+
"Then ↑ ↓ move between blocks, panel rows, and the bar; ← → move between a block's parts or the bar's segments",
|
|
5301
|
+
"Enter opens the focused section or segment, Esc returns to the input",
|
|
4098
5302
|
"Ctrl+C clears the input (twice quits) · Ctrl+D on an empty input quits"
|
|
4099
5303
|
];
|
|
4100
5304
|
this.chat.addChild(new Text([
|
|
@@ -4535,7 +5739,7 @@ var TuiApp = class {
|
|
|
4535
5739
|
}
|
|
4536
5740
|
streamingBlock() {
|
|
4537
5741
|
if (this.streaming === void 0) {
|
|
4538
|
-
this.streaming = new AssistantBlock(this.theme);
|
|
5742
|
+
this.streaming = new AssistantBlock(this.theme, this.turn);
|
|
4539
5743
|
this.chat.addChild(this.streaming);
|
|
4540
5744
|
}
|
|
4541
5745
|
return this.streaming;
|
|
@@ -4550,48 +5754,109 @@ var TuiApp = class {
|
|
|
4550
5754
|
const block = this.streamingBlock();
|
|
4551
5755
|
block.appendText(delta);
|
|
4552
5756
|
if (!this.fading) return;
|
|
4553
|
-
if (this.
|
|
4554
|
-
this.
|
|
4555
|
-
block.setFade(
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
|
|
5757
|
+
if (this.textTail === void 0) {
|
|
5758
|
+
this.textTail = this.createTail();
|
|
5759
|
+
block.setFade(this.tailRender(() => this.textTail));
|
|
5760
|
+
}
|
|
5761
|
+
this.textTail.append(delta);
|
|
5762
|
+
this.updateFadeTicker();
|
|
5763
|
+
}
|
|
5764
|
+
/**
|
|
5765
|
+
* Take one reasoning delta, which fades in on its own tail: the reasoning
|
|
5766
|
+
* and the visible text of one message stream at different times and each
|
|
5767
|
+
* brightens from the moment its own words appeared.
|
|
5768
|
+
* @param delta - the streamed reasoning delta.
|
|
5769
|
+
*/
|
|
5770
|
+
appendStreamedReasoning(delta) {
|
|
5771
|
+
const block = this.streamingBlock();
|
|
5772
|
+
block.appendReasoning(delta);
|
|
5773
|
+
if (!this.fading) return;
|
|
5774
|
+
if (this.reasoningTail === void 0) {
|
|
5775
|
+
this.reasoningTail = this.createTail();
|
|
5776
|
+
block.setReasoningFade(this.tailRender(() => this.reasoningTail));
|
|
4563
5777
|
}
|
|
4564
|
-
this.
|
|
5778
|
+
this.reasoningTail.append(delta);
|
|
4565
5779
|
this.updateFadeTicker();
|
|
4566
5780
|
}
|
|
4567
5781
|
/**
|
|
4568
|
-
*
|
|
4569
|
-
*
|
|
4570
|
-
|
|
5782
|
+
* Start tracking one streaming region against the application's clock.
|
|
5783
|
+
* @returns the tail deltas are appended to.
|
|
5784
|
+
*/
|
|
5785
|
+
createTail() {
|
|
5786
|
+
return new FadeTracker({
|
|
5787
|
+
steps: this.deps.fadeSteps,
|
|
5788
|
+
stepMs: this.deps.fadeStepMs,
|
|
5789
|
+
now: () => this.deps.now()
|
|
5790
|
+
});
|
|
5791
|
+
}
|
|
5792
|
+
/**
|
|
5793
|
+
* The live view of one tail the streaming block reads per render.
|
|
5794
|
+
* @param tail - reads the field the tail is held in, so a render after the
|
|
5795
|
+
* message settled sees the empty tail rather than the one it was given.
|
|
5796
|
+
* @returns the spans, the drawing settings, and the width-change flush.
|
|
5797
|
+
*/
|
|
5798
|
+
tailRender(tail) {
|
|
5799
|
+
return {
|
|
5800
|
+
spans: () => tail()?.spans() ?? [],
|
|
5801
|
+
style: () => this.fadeStyle,
|
|
5802
|
+
steps: this.deps.fadeSteps,
|
|
5803
|
+
flush: () => {
|
|
5804
|
+
this.flushFade();
|
|
5805
|
+
}
|
|
5806
|
+
};
|
|
5807
|
+
}
|
|
5808
|
+
/**
|
|
5809
|
+
* Fade one group of a card's rows in from the terminal background, from the
|
|
5810
|
+
* instant the log carried them. A terminal that draws no ramp and a session
|
|
5811
|
+
* being replayed fade nothing.
|
|
5812
|
+
* @param attach - hands the fade to the block that draws those rows.
|
|
5813
|
+
*/
|
|
5814
|
+
fadeBlock(attach) {
|
|
5815
|
+
if (!this.fading || this.replaying) return;
|
|
5816
|
+
const clock = new BlockFadeClock({
|
|
5817
|
+
bornAt: this.deps.now(),
|
|
5818
|
+
stepMs: this.deps.fadeStepMs,
|
|
5819
|
+
steps: this.deps.fadeSteps,
|
|
5820
|
+
now: () => this.deps.now()
|
|
5821
|
+
});
|
|
5822
|
+
this.blockFades.add(clock);
|
|
5823
|
+
attach({
|
|
5824
|
+
age: () => clock.age(),
|
|
5825
|
+
style: () => this.fadeStyle
|
|
5826
|
+
});
|
|
5827
|
+
this.updateFadeTicker();
|
|
5828
|
+
}
|
|
5829
|
+
/**
|
|
5830
|
+
* Settle what the current message has drawn and stop tracking it: both
|
|
5831
|
+
* tails go, so their text renders at the terminal's foreground from the next
|
|
5832
|
+
* render on. Card fades are left to expire on their own clock, because a
|
|
5833
|
+
* card that landed at the end of a turn keeps brightening after it.
|
|
4571
5834
|
*/
|
|
4572
5835
|
endFade() {
|
|
4573
|
-
this.
|
|
5836
|
+
this.textTail = void 0;
|
|
5837
|
+
this.reasoningTail = void 0;
|
|
4574
5838
|
this.updateFadeTicker();
|
|
4575
5839
|
}
|
|
4576
5840
|
/**
|
|
4577
|
-
* Settle what is drawn while the message keeps streaming, which
|
|
4578
|
-
*
|
|
4579
|
-
*
|
|
5841
|
+
* Settle what is drawn while the message keeps streaming, which a block asks
|
|
5842
|
+
* for after a width change: the columns either tail was matched against no
|
|
5843
|
+
* longer describe the rewrapped lines.
|
|
4580
5844
|
*/
|
|
4581
5845
|
flushFade() {
|
|
4582
|
-
this.
|
|
5846
|
+
this.textTail?.flush();
|
|
5847
|
+
this.reasoningTail?.flush();
|
|
4583
5848
|
this.updateFadeTicker();
|
|
4584
5849
|
}
|
|
4585
5850
|
/**
|
|
4586
|
-
* Arm the fade tick while a
|
|
4587
|
-
* and disarm it otherwise, so a session that is not
|
|
4588
|
-
* timer. Exactly one runs at a time, and a stopped
|
|
5851
|
+
* Arm the fade tick while streamed text or a card still draws below the last
|
|
5852
|
+
* brightness level and disarm it otherwise, so a session that is not
|
|
5853
|
+
* streaming runs no fade timer. Exactly one runs at a time, and a stopped
|
|
5854
|
+
* app runs none.
|
|
4589
5855
|
*/
|
|
4590
5856
|
updateFadeTicker() {
|
|
4591
|
-
|
|
4592
|
-
if (!this.stopped && tail !== void 0 && tail.needsRepaint()) {
|
|
5857
|
+
if (!this.stopped && this.fadesMoving()) {
|
|
4593
5858
|
this.fadeTicker ??= this.deps.tick(() => {
|
|
4594
|
-
this.onFadeTick(
|
|
5859
|
+
this.onFadeTick();
|
|
4595
5860
|
}, this.deps.fadeStepMs);
|
|
4596
5861
|
return;
|
|
4597
5862
|
}
|
|
@@ -4601,14 +5866,64 @@ var TuiApp = class {
|
|
|
4601
5866
|
ticker();
|
|
4602
5867
|
}
|
|
4603
5868
|
/**
|
|
4604
|
-
*
|
|
4605
|
-
*
|
|
4606
|
-
*
|
|
4607
|
-
|
|
4608
|
-
|
|
5869
|
+
* Whether anything the application fades still draws below the last
|
|
5870
|
+
* brightness level.
|
|
5871
|
+
* @returns true while a tail or a card fade keeps changing what is drawn.
|
|
5872
|
+
*/
|
|
5873
|
+
fadesMoving() {
|
|
5874
|
+
return this.textTail?.needsRepaint() === true || this.reasoningTail?.needsRepaint() === true || this.blockFades.needsRepaint();
|
|
5875
|
+
}
|
|
5876
|
+
/**
|
|
5877
|
+
* Apply everything the frame's geometry decides, on the frame that was just
|
|
5878
|
+
* built and before it is written.
|
|
5879
|
+
*
|
|
5880
|
+
* Two effects redraw lines a component already produced and are therefore
|
|
5881
|
+
* held to the renderer's repaint window ({@link GuardedMainScreen}): a
|
|
5882
|
+
* running fade, which is told each block's own first repaintable line, and
|
|
5883
|
+
* the focus gutter, which a block gains or loses only while its first line
|
|
5884
|
+
* lies inside the window. A focused block above the window simply stays
|
|
5885
|
+
* unmarked, and the inspector reports that instead.
|
|
5886
|
+
* @param viewportTop - the frame's first repaintable line.
|
|
5887
|
+
* @param width - the width it was built at.
|
|
5888
|
+
* @returns whether anything changed a line, so the frame is built again
|
|
5889
|
+
* before it is written.
|
|
5890
|
+
*/
|
|
5891
|
+
settleFrame(viewportTop, width) {
|
|
5892
|
+
const section = this.focusedSection();
|
|
5893
|
+
const wanted = section !== void 0 && this.focus === "transcript" ? {
|
|
5894
|
+
block: section.block,
|
|
5895
|
+
part: section.part.kind
|
|
5896
|
+
} : void 0;
|
|
5897
|
+
const fades = this.fadesMoving();
|
|
5898
|
+
if (!fades && wanted === void 0 && this.highlighted === void 0) return false;
|
|
5899
|
+
let start = this.header.render(width).length;
|
|
5900
|
+
let wantedStart;
|
|
5901
|
+
let changed = false;
|
|
5902
|
+
for (const child of this.chat.children) {
|
|
5903
|
+
if (isSectionSource(child) && child === wanted?.block) wantedStart = start;
|
|
5904
|
+
if (fades && (child instanceof AssistantBlock || child instanceof ToolBlock)) {
|
|
5905
|
+
if (child.setRepaintFloor(repaintFloor(start, viewportTop))) changed = true;
|
|
5906
|
+
}
|
|
5907
|
+
start += child.render(width).length;
|
|
5908
|
+
}
|
|
5909
|
+
const target = wantedStart !== void 0 && repaintFloor(wantedStart, viewportTop) === 0 ? wanted : void 0;
|
|
5910
|
+
const current = this.highlighted;
|
|
5911
|
+
if (current?.block === target?.block && current?.part === target?.part) return changed;
|
|
5912
|
+
current?.block.setHighlight(void 0);
|
|
5913
|
+
target?.block.setHighlight(target.part);
|
|
5914
|
+
this.highlighted = target;
|
|
5915
|
+
return true;
|
|
5916
|
+
}
|
|
5917
|
+
/**
|
|
5918
|
+
* One fade period: every tracked fade drops what settled since the last one,
|
|
5919
|
+
* the render request redraws the levels the clock moved, and the disarm
|
|
5920
|
+
* check follows. Ages come from the clock, so this period repaints the
|
|
5921
|
+
* levels the elapsed time asks for however long the period itself ran.
|
|
4609
5922
|
*/
|
|
4610
|
-
onFadeTick(
|
|
4611
|
-
|
|
5923
|
+
onFadeTick() {
|
|
5924
|
+
this.textTail?.tick();
|
|
5925
|
+
this.reasoningTail?.tick();
|
|
5926
|
+
this.blockFades.tick();
|
|
4612
5927
|
this.tui.requestRender();
|
|
4613
5928
|
this.updateFadeTicker();
|
|
4614
5929
|
}
|
|
@@ -4625,7 +5940,7 @@ var TuiApp = class {
|
|
|
4625
5940
|
if (chunk.text !== "") this.appendStreamedText(chunk.text);
|
|
4626
5941
|
break;
|
|
4627
5942
|
case "reasoning-delta":
|
|
4628
|
-
if (chunk.text !== "") this.
|
|
5943
|
+
if (chunk.text !== "") this.appendStreamedReasoning(chunk.text);
|
|
4629
5944
|
break;
|
|
4630
5945
|
case "tool-call-delta":
|
|
4631
5946
|
if (chunk.name !== void 0) this.loader.setMessage(`calling ${chunk.name}`);
|
|
@@ -4684,10 +5999,13 @@ var TuiApp = class {
|
|
|
4684
5999
|
const { callId, name, arguments: argumentsJson } = event.data;
|
|
4685
6000
|
const args = parseArguments(argumentsJson);
|
|
4686
6001
|
this.toolArguments.set(callId, args);
|
|
4687
|
-
const block = new ToolBlock(this.theme, name, toolCallText(argumentsJson, this.presentCall(name, args)));
|
|
6002
|
+
const block = new ToolBlock(this.theme, name, toolCallText(argumentsJson, this.presentCall(name, args)), this.turn);
|
|
4688
6003
|
block.setExpanded(this.toolsExpanded);
|
|
4689
6004
|
this.toolBlocks.set(callId, block);
|
|
4690
6005
|
this.chat.addChild(block);
|
|
6006
|
+
this.fadeBlock((fade) => {
|
|
6007
|
+
block.setFade(fade);
|
|
6008
|
+
});
|
|
4691
6009
|
break;
|
|
4692
6010
|
}
|
|
4693
6011
|
case "tool/result": {
|
|
@@ -4697,6 +6015,9 @@ var TuiApp = class {
|
|
|
4697
6015
|
const isError = result.isError === true;
|
|
4698
6016
|
const view = this.presentResult(block.name, this.toolArguments.get(result.toolCallId), result.content, isError, event.data.meta);
|
|
4699
6017
|
block.setResult(toolResultLines(view, result.content), isError);
|
|
6018
|
+
this.fadeBlock((fade) => {
|
|
6019
|
+
block.setResultFade(fade);
|
|
6020
|
+
});
|
|
4700
6021
|
this.loader.setMessage("thinking");
|
|
4701
6022
|
break;
|
|
4702
6023
|
}
|
|
@@ -4718,6 +6039,12 @@ var TuiApp = class {
|
|
|
4718
6039
|
case "compaction/summary":
|
|
4719
6040
|
this.notice(compactionNotice(event.data));
|
|
4720
6041
|
break;
|
|
6042
|
+
case "workspace/changes": {
|
|
6043
|
+
const summary = this.deps.ctx.get("workspaceChanges")?.summary(session.id, event.seq);
|
|
6044
|
+
if (summary === void 0) return;
|
|
6045
|
+
this.notice(changesNotice(summary));
|
|
6046
|
+
break;
|
|
6047
|
+
}
|
|
4721
6048
|
case "llm/retry":
|
|
4722
6049
|
this.loader.setMessage(retryMessage(event.data));
|
|
4723
6050
|
break;
|
|
@@ -4755,7 +6082,7 @@ var TuiApp = class {
|
|
|
4755
6082
|
if (source.kind === "user") {
|
|
4756
6083
|
if (this.submittedIds.has(message.id)) return;
|
|
4757
6084
|
const attachments = message.content.filter((block) => block.type !== "text").map((block) => `[${block.type}]`);
|
|
4758
|
-
this.chat.addChild(new UserBlock(this.theme, [contentText(message.content), ...attachments].filter((part) => part !== "").join("\n")));
|
|
6085
|
+
this.chat.addChild(new UserBlock(this.theme, [contentText(message.content), ...attachments].filter((part) => part !== "").join("\n"), this.turn));
|
|
4759
6086
|
return;
|
|
4760
6087
|
}
|
|
4761
6088
|
if (source.kind === "plugin" && source.form === "notice") this.chat.addChild(new NoticeBlock(this.theme, source.summary));
|
|
@@ -4864,9 +6191,10 @@ const Config = z.object({
|
|
|
4864
6191
|
prompt: z.string(),
|
|
4865
6192
|
resume: z.string(),
|
|
4866
6193
|
toolPreviewLines: z.natural().min(1).default(8),
|
|
6194
|
+
focusPreviewLines: z.natural().min(1).default(12),
|
|
4867
6195
|
liveRefreshMs: z.natural().min(100).default(1e3),
|
|
4868
|
-
streamFadeSteps: z.natural().min(2).default(
|
|
4869
|
-
streamFadeStepMs: z.natural().min(16).default(
|
|
6196
|
+
streamFadeSteps: z.natural().min(2).default(8),
|
|
6197
|
+
streamFadeStepMs: z.natural().min(16).default(33),
|
|
4870
6198
|
reducedMotion: z.boolean().default(false),
|
|
4871
6199
|
openBrowser: z.boolean().default(true)
|
|
4872
6200
|
});
|
|
@@ -5039,6 +6367,7 @@ async function run(ctx, config, host) {
|
|
|
5039
6367
|
terminal: host.createTerminal(),
|
|
5040
6368
|
palette: createPalette(host.color),
|
|
5041
6369
|
toolPreviewLines: config.toolPreviewLines,
|
|
6370
|
+
focusPreviewLines: config.focusPreviewLines,
|
|
5042
6371
|
liveRefreshMs: config.liveRefreshMs,
|
|
5043
6372
|
fadeSteps: config.streamFadeSteps,
|
|
5044
6373
|
fadeStepMs: config.streamFadeStepMs,
|