refactor(terminal-panel): name the package @deepseek-ai/dsh-terminal-panel

master now rejects the @deepseek-ai/dsh-experimental- prefix for new
experimental packages, so the unreleased sidebar terminal backend becomes
@deepseek-ai/dsh-terminal-panel with plugin name terminal-panel, and its
directory joins EXPERIMENTAL_PACKAGE_NAME_EXCEPTIONS. The terminal bundle,
root devDependencies, generators, catalogs, snapshot composition and
upgrade guide use the new name; the hand-written tsconfig alias gives way
to the generated one.
This commit is contained in:
Yichen Jiang committed 2026-11-04 16:50:39 +08:00
1 parent 34315a9de5
commit b22b3ba514
31 files changed
+186 -185

No files matched your search

+2 -2
View File
@@ -6,5 +6,5 @@
en: 41d772192075e133
zh: 5ef3da69b4de1d8a
/capability-seams-and-core-services:
en: 490a1bf25c0e97e8
zh: 76f7089d062684ce
en: c46b494967344687
zh: 4c8f9b9ca4cb538f
+5 -5
View File
@@ -238,7 +238,7 @@ flowchart LR
svc_shellEnv["ctx.shellEnv<br/>Managed bash environment registry"]
pkg_terminal["terminal"]
svc_terminals["ctx.terminals<br/>Persistent PTY session registry"]
pkg_experimental_terminal_panel["experimental-terminal-panel"]
pkg_terminal_panel["terminal-panel"]
pkg_sandbox["sandbox"]
svc_sandbox["ctx.sandbox<br/>Process-sandbox seam"]
pkg_sandbox_local["sandbox-local"]
@@ -377,7 +377,6 @@ flowchart LR
pkg_experimental_ptc_runtime_python --> svc_ptcRuntime
pkg_experimental_speech_to_text --> svc_speechToText
pkg_experimental_speech_to_text_sensevoice --> svc_speechToText
pkg_experimental_terminal_panel --> svc_terminals
pkg_experimental_translator --> svc_translator
pkg_experimental_worktree --> svc_worktrees
pkg_file_reference --> svc_fileReferences
@@ -466,6 +465,7 @@ flowchart LR
pkg_system_prompt --> svc_systemPrompt
pkg_terminal --> svc_terminals
pkg_terminal_bash --> svc_terminals
pkg_terminal_panel --> svc_terminals
pkg_token_meter --> svc_tokenMeter
pkg_tool_subagent --> svc_subagentModelSelection
pkg_tools --> svc_tools
@@ -558,9 +558,9 @@ flowchart LR
svc_sandbox --> pkg_bash_sandbox
svc_sandbox --> pkg_terminal_bash
svc_sandboxPolicy --> pkg_bash_sandbox
svc_sandboxPolicy --> pkg_experimental_terminal_panel
svc_sandboxPolicy --> pkg_fs_sandbox
svc_sandboxPolicy --> pkg_terminal_bash
svc_sandboxPolicy --> pkg_terminal_panel
svc_sessionPersistence --> pkg_agent_loop
svc_sessionPersistence --> pkg_hooks_claude_code
svc_sessionPersistence --> pkg_hooks_codex
@@ -736,9 +736,9 @@ flowchart LR
| `ctx.subprocess` | `seam` | [`subprocess`](../packages/subprocess/subprocess) | [`subprocess-local`](../packages/subprocess/subprocess-local), [`subprocess-ssh`](../packages/ssh/subprocess-ssh) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`lsp-stdio`](../packages/lsp/lsp-stdio), [`subagent-acp`](../packages/subagent/subagent-acp), [`subagent-codex`](../packages/subagent/subagent-codex), [`subagent-claude-code`](../packages/subagent/subagent-claude-code) | - | The bash executors, the PTY shell backend, the LSP host, and the out-of-process ACP, Codex, and Claude Code subagent backends spawn through ctx.subprocess; the service owns process coordinates, tree/session lifetime, stdio dispositions, terminal mechanics, and kill escalation. |
| `ctx.shell` | `seam` | [`shell`](../packages/shell/shell) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`pwsh-local`](../packages/shell/pwsh-local) | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh), [`hooks-claude-code`](../packages/experimental/hooks-claude-code), [`hooks-codex`](../packages/experimental/hooks-codex) | - | The model-facing shell tools and hook bridges consume this seam; sandboxed, remote, or PowerShell executors replace bash-local without touching them. |
| `ctx.shellEnv` | `core` | [`shell-env`](../packages/shell/shell-env) | - | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh) | - | Plugins declare effect-scoped DSH_* facts; each shell tool collects one trusted snapshot per execution and its executor rebuilds the namespace. |
| `ctx.terminals` | `seam` | [`terminal`](../packages/terminal/terminal) | [`terminal-bash`](../packages/terminal/terminal-bash), [`experimental-terminal-panel`](../packages/experimental/terminal-panel) | [`tool-terminal`](../packages/experimental/tool-terminal) | - | The registry owns exact-Agent session identity and cleanup; backends own terminal mechanics, while tool-terminal exposes the owner-scoped model tools. |
| `ctx.terminals` | `seam` | [`terminal`](../packages/terminal/terminal) | [`terminal-bash`](../packages/terminal/terminal-bash), [`terminal-panel`](../packages/experimental/terminal-panel) | [`tool-terminal`](../packages/experimental/tool-terminal) | - | The registry owns exact-Agent session identity and cleanup; backends own terminal mechanics, while tool-terminal exposes the owner-scoped model tools. |
| `ctx.sandbox` | `seam` | [`sandbox`](../packages/sandbox/sandbox) | [`sandbox-local`](../packages/sandbox/sandbox-local), [`sandbox-ssh`](../packages/ssh/sandbox-ssh) | [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`api-terminal-controller`](../packages/api/terminal-controller) | - | Consumers hand over the exact argv they are about to spawn; same-world backends wrap it under a per-call policy and report enforcement. |
| `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](../packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](../packages/shell/bash-sandbox), [`fs-sandbox`](../packages/fs/fs-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`experimental-terminal-panel`](../packages/experimental/terminal-panel) | - | The one home for the deployment default mode + workspace root; only the sandboxed executor and provider read the service (the tool layers use the pure `sandbox/mode` fold it also exports). Both enforcing families read it so bash and fs cannot confine to different roots. |
| `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](../packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](../packages/shell/bash-sandbox), [`fs-sandbox`](../packages/fs/fs-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`terminal-panel`](../packages/experimental/terminal-panel) | - | The one home for the deployment default mode + workspace root; only the sandboxed executor and provider read the service (the tool layers use the pure `sandbox/mode` fold it also exports). Both enforcing families read it so bash and fs cannot confine to different roots. |
| `ctx.approval` | `seam` | [`user-approval`](../packages/interaction/user-approval) | - | [`tools`](../packages/core/tools), [`tool-bash`](../packages/shell/tool-bash), [`acp`](../packages/acp/acp) | - | One-shot permission decisions dispatched over the `approval/request` waterfall; answerers are listeners (the ACP bridge for its own agents), absence fails closed to `unavailable`. |
| `ctx.permissionPresets` | `core` | [`permission-presets`](../packages/interaction/permission-presets) | - | - | - | User-facing preset table (`workspace-write`/`danger-full-access`) bundling the sandbox-mode and approval-policy knobs; a switch writes one `permission/preset` event through to both knob events. |
| `ctx.ptcRuntime` | `seam` | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`experimental-ptc-runtime-python`](../packages/experimental/ptc-runtime-python) | [`tool-executor-ptc`](../packages/core/tool-executor-ptc), [`workflow-ptc`](../packages/workflow/workflow-ptc) | - | Runs programs against host-provided async bindings; tool-executor-ptc owns PTC presentation and workflow-ptc owns workflow orchestration. |
+5 -5
View File
@@ -240,7 +240,7 @@ flowchart LR
svc_shellEnv["ctx.shellEnv<br/>Managed bash environment registry"]
pkg_terminal["terminal"]
svc_terminals["ctx.terminals<br/>Persistent PTY session registry"]
pkg_experimental_terminal_panel["experimental-terminal-panel"]
pkg_terminal_panel["terminal-panel"]
pkg_sandbox["sandbox"]
svc_sandbox["ctx.sandbox<br/>Process-sandbox seam"]
pkg_sandbox_local["sandbox-local"]
@@ -379,7 +379,6 @@ flowchart LR
pkg_experimental_ptc_runtime_python --> svc_ptcRuntime
pkg_experimental_speech_to_text --> svc_speechToText
pkg_experimental_speech_to_text_sensevoice --> svc_speechToText
pkg_experimental_terminal_panel --> svc_terminals
pkg_experimental_translator --> svc_translator
pkg_experimental_worktree --> svc_worktrees
pkg_file_reference --> svc_fileReferences
@@ -468,6 +467,7 @@ flowchart LR
pkg_system_prompt --> svc_systemPrompt
pkg_terminal --> svc_terminals
pkg_terminal_bash --> svc_terminals
pkg_terminal_panel --> svc_terminals
pkg_token_meter --> svc_tokenMeter
pkg_tool_subagent --> svc_subagentModelSelection
pkg_tools --> svc_tools
@@ -560,9 +560,9 @@ flowchart LR
svc_sandbox --> pkg_bash_sandbox
svc_sandbox --> pkg_terminal_bash
svc_sandboxPolicy --> pkg_bash_sandbox
svc_sandboxPolicy --> pkg_experimental_terminal_panel
svc_sandboxPolicy --> pkg_fs_sandbox
svc_sandboxPolicy --> pkg_terminal_bash
svc_sandboxPolicy --> pkg_terminal_panel
svc_sessionPersistence --> pkg_agent_loop
svc_sessionPersistence --> pkg_hooks_claude_code
svc_sessionPersistence --> pkg_hooks_codex
@@ -738,9 +738,9 @@ flowchart LR
| `ctx.subprocess` | `seam` | [`subprocess`](../packages/subprocess/subprocess) | [`subprocess-local`](../packages/subprocess/subprocess-local), [`subprocess-ssh`](../packages/ssh/subprocess-ssh) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`lsp-stdio`](../packages/lsp/lsp-stdio), [`subagent-acp`](../packages/subagent/subagent-acp), [`subagent-codex`](../packages/subagent/subagent-codex), [`subagent-claude-code`](../packages/subagent/subagent-claude-code) | - | Bash 执行器、PTY shell 后端、LSP Host,以及进程外 ACP、Codex 和 Claude Code subagent 后端都通过 ctx.subprocess 执行 spawn;该服务负责进程坐标、进程树/会话生命周期、stdio 处置、终端机制和 kill 升级。 |
| `ctx.shell` | `seam` | [`shell`](../packages/shell/shell) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`pwsh-local`](../packages/shell/pwsh-local) | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh), [`hooks-claude-code`](../packages/experimental/hooks-claude-code), [`hooks-codex`](../packages/experimental/hooks-codex) | - | 面向模型的 shell 工具和钩子桥接消费此 seam;沙箱、远程或 PowerShell 执行器可以替换 bash-local,而无需改动这些消费方。 |
| `ctx.shellEnv` | `core` | [`shell-env`](../packages/shell/shell-env) | - | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh) | - | 插件声明限定于 effect 作用域的 DSH_* 事实;每个 shell 工具在每次执行时收集一份可信快照,其执行器据此重建命名空间。 |
| `ctx.terminals` | `seam` | [`terminal`](../packages/terminal/terminal) | [`terminal-bash`](../packages/terminal/terminal-bash), [`experimental-terminal-panel`](../packages/experimental/terminal-panel) | [`tool-terminal`](../packages/experimental/tool-terminal) | - | 注册表负责精确到 Agent 的会话身份和清理;后端负责终端机制,tool-terminal 则提供限定于所有者作用域的模型接口。 |
| `ctx.terminals` | `seam` | [`terminal`](../packages/terminal/terminal) | [`terminal-bash`](../packages/terminal/terminal-bash), [`terminal-panel`](../packages/experimental/terminal-panel) | [`tool-terminal`](../packages/experimental/tool-terminal) | - | 注册表负责精确到 Agent 的会话身份和清理;后端负责终端机制,tool-terminal 则提供限定于所有者作用域的模型接口。 |
| `ctx.sandbox` | `seam` | [`sandbox`](../packages/sandbox/sandbox) | [`sandbox-local`](../packages/sandbox/sandbox-local), [`sandbox-ssh`](../packages/ssh/sandbox-ssh) | [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`api-terminal-controller`](../packages/api/terminal-controller) | - | 消费方交出即将执行 spawn 的确切 argv;与配套子进程提供方共享执行环境的后端按每次调用的策略包装该 argv,并报告强制执行情况。 |
| `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](../packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](../packages/shell/bash-sandbox), [`fs-sandbox`](../packages/fs/fs-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`experimental-terminal-panel`](../packages/experimental/terminal-panel) | - | 统一保存部署默认模式和工作区根目录;只有沙箱执行器和提供方读取该服务(工具层使用它同时导出的纯 `sandbox/mode` 折叠区)。两类强制执行组件都读取该服务,因此 bash 与 fs 不会限制到不同的根目录。 |
| `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](../packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](../packages/shell/bash-sandbox), [`fs-sandbox`](../packages/fs/fs-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`terminal-panel`](../packages/experimental/terminal-panel) | - | 统一保存部署默认模式和工作区根目录;只有沙箱执行器和提供方读取该服务(工具层使用它同时导出的纯 `sandbox/mode` 折叠区)。两类强制执行组件都读取该服务,因此 bash 与 fs 不会限制到不同的根目录。 |
| `ctx.approval` | `seam` | [`user-approval`](../packages/interaction/user-approval) | - | [`tools`](../packages/core/tools), [`tool-bash`](../packages/shell/tool-bash), [`acp`](../packages/acp/acp) | - | 一次性权限决策通过 `approval/request` waterfall(瀑布式事件)分派;回答方是监听器(即 ACP 为自身 agent 提供的桥接),没有回答方时以 `unavailable` 关闭失败。 |
| `ctx.permissionPresets` | `core` | [`permission-presets`](../packages/interaction/permission-presets) | - | - | - | 面向用户的预设表(`workspace-write`/`danger-full-access`),将沙箱模式与审批策略选项组合在一起;一次切换会写入一个 `permission/preset` 事件,并贯通到两个选项事件。 |
| `ctx.ptcRuntime` | `seam` | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`experimental-ptc-runtime-python`](../packages/experimental/ptc-runtime-python) | [`tool-executor-ptc`](../packages/core/tool-executor-ptc), [`workflow-ptc`](../packages/workflow/workflow-ptc) | - | 使用 Host 提供的异步绑定运行程序;tool-executor-ptc 负责 PTC 呈现,workflow-ptc 负责工作流编排。 |
+41 -41
View File
@@ -1448,47 +1448,6 @@ export interface Config {
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-experimental-subagent-oar -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-experimental-terminal-panel -->
<a id="deepseek-aidsh-experimental-terminal-panel"></a>
## `@deepseek-ai/dsh-experimental-terminal-panel`
- `inject`: `terminals` · `terminalController` · `sandboxPolicy` · `tools` · `systemPrompt`
- `source`: [`packages/experimental/terminal-panel/src/config.ts:6`](../packages/experimental/terminal-panel/src/config.ts)
```ts config-catalog
/** Public plugin configuration. */
export interface Config {
/** Terminal registry type served by sidebar terminals. */
backendType: string
/** Initial terminal width; an attached sidebar view resizes it to its panel. */
cols: number
/** Initial terminal height; an attached sidebar view resizes it to its panel. */
rows: number
/** Executable names tried among the discovered shells before the execution environment's default shell. */
preferredShells: string[]
/** Variables added to Agent terminal environments, such as pagers that would otherwise wait for input. */
environment: Record<string, string>
/** Output silence that ends shell startup once the shell owns the foreground. */
startupSilenceMs: number
/** Bound on shell startup, including the person's startup files. */
startupTimeoutMs: number
/** Output silence after which a send checks whether the shell or a reading program waits for input. */
promptSilenceMs: number
/** Minimum interval between foreground process inspections, each of which may start `ps` twice. */
probeIntervalMs: number
/** Output silence that ends a send as `inferred_idle`. */
idleSilenceMs: number
/** Bound on one send. */
timeoutMs: number
/** Maximum UTF-8 bytes in one screen read, send output or startup screen. */
maxReadBytes: number
/** Register `user_terminal_list` and `user_terminal_read`, whose screen text enters the Session log and model requests. */
readUserTerminals: boolean
}
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-experimental-terminal-panel -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-experimental-tool-subagent-oar -->
<a id="deepseek-aidsh-experimental-tool-subagent-oar"></a>
@@ -3977,6 +3936,47 @@ export type ShellDialect = 'bash' | 'pwsh'
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-terminal-bash -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-terminal-panel -->
<a id="deepseek-aidsh-terminal-panel"></a>
## `@deepseek-ai/dsh-terminal-panel`
- `inject`: `terminals` · `terminalController` · `sandboxPolicy` · `tools` · `systemPrompt`
- `source`: [`packages/experimental/terminal-panel/src/config.ts:6`](../packages/experimental/terminal-panel/src/config.ts)
```ts config-catalog
/** Public plugin configuration. */
export interface Config {
/** Terminal registry type served by sidebar terminals. */
backendType: string
/** Initial terminal width; an attached sidebar view resizes it to its panel. */
cols: number
/** Initial terminal height; an attached sidebar view resizes it to its panel. */
rows: number
/** Executable names tried among the discovered shells before the execution environment's default shell. */
preferredShells: string[]
/** Variables added to Agent terminal environments, such as pagers that would otherwise wait for input. */
environment: Record<string, string>
/** Output silence that ends shell startup once the shell owns the foreground. */
startupSilenceMs: number
/** Bound on shell startup, including the person's startup files. */
startupTimeoutMs: number
/** Output silence after which a send checks whether the shell or a reading program waits for input. */
promptSilenceMs: number
/** Minimum interval between foreground process inspections, each of which may start `ps` twice. */
probeIntervalMs: number
/** Output silence that ends a send as `inferred_idle`. */
idleSilenceMs: number
/** Bound on one send. */
timeoutMs: number
/** Maximum UTF-8 bytes in one screen read, send output or startup screen. */
maxReadBytes: number
/** Register `user_terminal_list` and `user_terminal_read`, whose screen text enters the Session log and model requests. */
readUserTerminals: boolean
}
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-terminal-panel -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-time-context -->
<a id="deepseek-aidsh-time-context"></a>
+41 -41
View File
@@ -1450,47 +1450,6 @@ export interface Config {
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-experimental-subagent-oar -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-experimental-terminal-panel -->
<a id="deepseek-aidsh-experimental-terminal-panel"></a>
## `@deepseek-ai/dsh-experimental-terminal-panel`
- `inject`: `terminals` · `terminalController` · `sandboxPolicy` · `tools` · `systemPrompt`
- `source`: [`packages/experimental/terminal-panel/src/config.ts:6`](../packages/experimental/terminal-panel/src/config.ts)
```ts config-catalog
/** Public plugin configuration. */
export interface Config {
/** Terminal registry type served by sidebar terminals. */
backendType: string
/** Initial terminal width; an attached sidebar view resizes it to its panel. */
cols: number
/** Initial terminal height; an attached sidebar view resizes it to its panel. */
rows: number
/** Executable names tried among the discovered shells before the execution environment's default shell. */
preferredShells: string[]
/** Variables added to Agent terminal environments, such as pagers that would otherwise wait for input. */
environment: Record<string, string>
/** Output silence that ends shell startup once the shell owns the foreground. */
startupSilenceMs: number
/** Bound on shell startup, including the person's startup files. */
startupTimeoutMs: number
/** Output silence after which a send checks whether the shell or a reading program waits for input. */
promptSilenceMs: number
/** Minimum interval between foreground process inspections, each of which may start `ps` twice. */
probeIntervalMs: number
/** Output silence that ends a send as `inferred_idle`. */
idleSilenceMs: number
/** Bound on one send. */
timeoutMs: number
/** Maximum UTF-8 bytes in one screen read, send output or startup screen. */
maxReadBytes: number
/** Register `user_terminal_list` and `user_terminal_read`, whose screen text enters the Session log and model requests. */
readUserTerminals: boolean
}
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-experimental-terminal-panel -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-experimental-tool-subagent-oar -->
<a id="deepseek-aidsh-experimental-tool-subagent-oar"></a>
@@ -3979,6 +3938,47 @@ export type ShellDialect = 'bash' | 'pwsh'
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-terminal-bash -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-terminal-panel -->
<a id="deepseek-aidsh-terminal-panel"></a>
## `@deepseek-ai/dsh-terminal-panel`
- `inject`: `terminals` · `terminalController` · `sandboxPolicy` · `tools` · `systemPrompt`
- `source`: [`packages/experimental/terminal-panel/src/config.ts:6`](../packages/experimental/terminal-panel/src/config.ts)
```ts config-catalog
/** Public plugin configuration. */
export interface Config {
/** Terminal registry type served by sidebar terminals. */
backendType: string
/** Initial terminal width; an attached sidebar view resizes it to its panel. */
cols: number
/** Initial terminal height; an attached sidebar view resizes it to its panel. */
rows: number
/** Executable names tried among the discovered shells before the execution environment's default shell. */
preferredShells: string[]
/** Variables added to Agent terminal environments, such as pagers that would otherwise wait for input. */
environment: Record<string, string>
/** Output silence that ends shell startup once the shell owns the foreground. */
startupSilenceMs: number
/** Bound on shell startup, including the person's startup files. */
startupTimeoutMs: number
/** Output silence after which a send checks whether the shell or a reading program waits for input. */
promptSilenceMs: number
/** Minimum interval between foreground process inspections, each of which may start `ps` twice. */
probeIntervalMs: number
/** Output silence that ends a send as `inferred_idle`. */
idleSilenceMs: number
/** Bound on one send. */
timeoutMs: number
/** Maximum UTF-8 bytes in one screen read, send output or startup screen. */
maxReadBytes: number
/** Register `user_terminal_list` and `user_terminal_read`, whose screen text enters the Session log and model requests. */
readUserTerminals: boolean
}
```
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-terminal-panel -->
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-time-context -->
<a id="deepseek-aidsh-time-context"></a>
+5 -5
View File
@@ -297,7 +297,6 @@ flowchart TD
pkg_experimental_speech_to_text_sensevoice["experimental-speech-to-text-sensevoice"]
pkg_experimental_subagent_oar["experimental-subagent-oar"]
pkg_experimental_terminal_bundle["experimental-terminal-bundle"]
pkg_experimental_terminal_panel["experimental-terminal-panel"]
pkg_experimental_tool_subagent_oar["experimental-tool-subagent-oar"]
pkg_experimental_tool_worktree["experimental-tool-worktree"]
pkg_experimental_translator["experimental-translator"]
@@ -312,6 +311,7 @@ flowchart TD
pkg_plugin_recommendations["plugin-recommendations"]
pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
pkg_skill_badge["skill-badge"]
pkg_terminal_panel["terminal-panel"]
pkg_tool_ralph["tool-ralph"]
pkg_tool_session_query["tool-session-query"]
pkg_tool_terminal["tool-terminal"]
@@ -986,9 +986,6 @@ flowchart TD
pkg_experimental_cua_macos --> pkg_system_prompt
pkg_experimental_cua_macos --> pkg_tools
pkg_experimental_cua_macos --> pkg_user_questions
pkg_experimental_terminal_panel --> pkg_api_terminal_controller
pkg_experimental_terminal_panel --> pkg_terminal
pkg_experimental_terminal_panel --> pkg_tools
pkg_experimental_tool_worktree --> pkg_experimental_worktree
pkg_experimental_tool_worktree --> pkg_tools
pkg_hooks_codex --> pkg_agent
@@ -1001,6 +998,9 @@ flowchart TD
pkg_session_title_all_prompts_llm --> pkg_session
pkg_session_title_all_prompts_llm --> pkg_session_title
pkg_session_title_all_prompts_llm --> pkg_session_title_llm
pkg_terminal_panel --> pkg_api_terminal_controller
pkg_terminal_panel --> pkg_terminal
pkg_terminal_panel --> pkg_tools
pkg_tool_terminal --> pkg_agent
pkg_tool_terminal --> pkg_jobs
pkg_tool_terminal --> pkg_llm
@@ -1809,10 +1809,10 @@ flowchart TD
| [`experimental-client-ui-forge`](../packages/experimental/client-ui-forge) | `experimental` | [`experimental-forge`](../packages/experimental/forge), [`experimental-worktree`](../packages/experimental/worktree), [`fs`](../packages/fs/fs), [`session`](../packages/core/session), [`timeout`](../packages/util/timeout) |
| [`experimental-computer-use-cua-driver-native`](../packages/experimental/computer-use-cua-driver-native) | `experimental` | [`computer-use`](../packages/computer-use/computer-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools) |
| [`experimental-cua-macos`](../packages/experimental/cua-macos) | `experimental` | [`agent`](../packages/core/agent), [`computer-use`](../packages/computer-use/computer-use), [`subprocess`](../packages/subprocess/subprocess), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`user-questions`](../packages/interaction/user-questions) |
| [`experimental-terminal-panel`](../packages/experimental/terminal-panel) | `experimental` | [`api-terminal-controller`](../packages/api/terminal-controller), [`terminal`](../packages/terminal/terminal), [`tools`](../packages/core/tools) |
| [`experimental-tool-worktree`](../packages/experimental/tool-worktree) | `experimental` | [`experimental-worktree`](../packages/experimental/worktree), [`tools`](../packages/core/tools) |
| [`hooks-codex`](../packages/experimental/hooks-codex) | `experimental` | [`agent`](../packages/core/agent), [`hook-protocol`](../packages/experimental/hook-protocol), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
| [`session-title-all-prompts-llm`](../packages/experimental/session-title-all-prompts-llm) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-title`](../packages/session/session-title), [`session-title-llm`](../packages/session/session-title-llm) |
| [`terminal-panel`](../packages/experimental/terminal-panel) | `experimental` | [`api-terminal-controller`](../packages/api/terminal-controller), [`terminal`](../packages/terminal/terminal), [`tools`](../packages/core/tools) |
| [`tool-terminal`](../packages/experimental/tool-terminal) | `experimental` | [`agent`](../packages/core/agent), [`jobs`](../packages/jobs/jobs), [`llm`](../packages/llm/llm), [`output-retention`](../packages/util/output-retention), [`system-prompt`](../packages/core/system-prompt), [`terminal`](../packages/terminal/terminal), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
| [`cordis-host-runner`](../packages/extensions/cordis-host-runner) | `extensions` | [`agent`](../packages/core/agent), [`brand`](../packages/util/brand), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`typert-protocol`](../packages/typert/protocol) |
| [`message-feedback`](../packages/feedback/message-feedback) | `feedback` | [`brand`](../packages/util/brand), [`command-feedback`](../packages/feedback/command-feedback), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence), [`typert-protocol`](../packages/typert/protocol) |
+5 -5
View File
@@ -299,7 +299,6 @@ flowchart TD
pkg_experimental_speech_to_text_sensevoice["experimental-speech-to-text-sensevoice"]
pkg_experimental_subagent_oar["experimental-subagent-oar"]
pkg_experimental_terminal_bundle["experimental-terminal-bundle"]
pkg_experimental_terminal_panel["experimental-terminal-panel"]
pkg_experimental_tool_subagent_oar["experimental-tool-subagent-oar"]
pkg_experimental_tool_worktree["experimental-tool-worktree"]
pkg_experimental_translator["experimental-translator"]
@@ -314,6 +313,7 @@ flowchart TD
pkg_plugin_recommendations["plugin-recommendations"]
pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
pkg_skill_badge["skill-badge"]
pkg_terminal_panel["terminal-panel"]
pkg_tool_ralph["tool-ralph"]
pkg_tool_session_query["tool-session-query"]
pkg_tool_terminal["tool-terminal"]
@@ -988,9 +988,6 @@ flowchart TD
pkg_experimental_cua_macos --> pkg_system_prompt
pkg_experimental_cua_macos --> pkg_tools
pkg_experimental_cua_macos --> pkg_user_questions
pkg_experimental_terminal_panel --> pkg_api_terminal_controller
pkg_experimental_terminal_panel --> pkg_terminal
pkg_experimental_terminal_panel --> pkg_tools
pkg_experimental_tool_worktree --> pkg_experimental_worktree
pkg_experimental_tool_worktree --> pkg_tools
pkg_hooks_codex --> pkg_agent
@@ -1003,6 +1000,9 @@ flowchart TD
pkg_session_title_all_prompts_llm --> pkg_session
pkg_session_title_all_prompts_llm --> pkg_session_title
pkg_session_title_all_prompts_llm --> pkg_session_title_llm
pkg_terminal_panel --> pkg_api_terminal_controller
pkg_terminal_panel --> pkg_terminal
pkg_terminal_panel --> pkg_tools
pkg_tool_terminal --> pkg_agent
pkg_tool_terminal --> pkg_jobs
pkg_tool_terminal --> pkg_llm
@@ -1811,10 +1811,10 @@ flowchart TD
| [`experimental-client-ui-forge`](../packages/experimental/client-ui-forge) | `experimental` | [`experimental-forge`](../packages/experimental/forge), [`experimental-worktree`](../packages/experimental/worktree), [`fs`](../packages/fs/fs), [`session`](../packages/core/session), [`timeout`](../packages/util/timeout) |
| [`experimental-computer-use-cua-driver-native`](../packages/experimental/computer-use-cua-driver-native) | `experimental` | [`computer-use`](../packages/computer-use/computer-use), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools) |
| [`experimental-cua-macos`](../packages/experimental/cua-macos) | `experimental` | [`agent`](../packages/core/agent), [`computer-use`](../packages/computer-use/computer-use), [`subprocess`](../packages/subprocess/subprocess), [`system-prompt`](../packages/core/system-prompt), [`tools`](../packages/core/tools), [`user-questions`](../packages/interaction/user-questions) |
| [`experimental-terminal-panel`](../packages/experimental/terminal-panel) | `experimental` | [`api-terminal-controller`](../packages/api/terminal-controller), [`terminal`](../packages/terminal/terminal), [`tools`](../packages/core/tools) |
| [`experimental-tool-worktree`](../packages/experimental/tool-worktree) | `experimental` | [`experimental-worktree`](../packages/experimental/worktree), [`tools`](../packages/core/tools) |
| [`hooks-codex`](../packages/experimental/hooks-codex) | `experimental` | [`agent`](../packages/core/agent), [`hook-protocol`](../packages/experimental/hook-protocol), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
| [`session-title-all-prompts-llm`](../packages/experimental/session-title-all-prompts-llm) | `experimental` | [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-title`](../packages/session/session-title), [`session-title-llm`](../packages/session/session-title-llm) |
| [`terminal-panel`](../packages/experimental/terminal-panel) | `experimental` | [`api-terminal-controller`](../packages/api/terminal-controller), [`terminal`](../packages/terminal/terminal), [`tools`](../packages/core/tools) |
| [`tool-terminal`](../packages/experimental/tool-terminal) | `experimental` | [`agent`](../packages/core/agent), [`jobs`](../packages/jobs/jobs), [`llm`](../packages/llm/llm), [`output-retention`](../packages/util/output-retention), [`system-prompt`](../packages/core/system-prompt), [`terminal`](../packages/terminal/terminal), [`tools`](../packages/core/tools), [`working-directory`](../packages/session/working-directory) |
| [`cordis-host-runner`](../packages/extensions/cordis-host-runner) | `extensions` | [`agent`](../packages/core/agent), [`brand`](../packages/util/brand), [`llm`](../packages/llm/llm), [`scope`](../packages/core/scope), [`session`](../packages/core/session), [`tools`](../packages/core/tools), [`typert-protocol`](../packages/typert/protocol) |
| [`message-feedback`](../packages/feedback/message-feedback) | `feedback` | [`brand`](../packages/util/brand), [`command-feedback`](../packages/feedback/command-feedback), [`llm`](../packages/llm/llm), [`session`](../packages/core/session), [`session-persistence`](../packages/session/session-persistence), [`typert-protocol`](../packages/typert/protocol) |
+9 -9
View File
@@ -9,8 +9,8 @@
en: 6cc2cd9ced70bb09
zh: 1c0e6cb4ba2ed637
/tool-schema-catalog/tool-package-map:
en: 21fbffe239f4f589
zh: a4507fd27e4909a5
en: 69f4cfc2e5f80244
zh: a57b1d113f993048
/tool-schema-catalog/deepseek-ai-dsh-plugin-manager:
en: e0143916bb634762
zh: e0143916bb634762
@@ -171,15 +171,15 @@
en: 60a8805611533884
zh: 50e4ac6e7f7b9b0a
/tool-schema-catalog/deepseek-ai-dsh-tool-terminal/terminal-signal:
en: 6513dce283725b37
zh: 28e52fc13a8e1379
/tool-schema-catalog/deepseek-ai-dsh-experimental-terminal-panel:
en: 968a7c0ea2d32bea
zh: 968a7c0ea2d32bea
/tool-schema-catalog/deepseek-ai-dsh-experimental-terminal-panel/user-terminal-list:
en: cc58c5bcfdc3c04e
zh: e673447f4afb0ae5
/tool-schema-catalog/deepseek-ai-dsh-terminal-panel:
en: 45676c90640a8237
zh: 45676c90640a8237
/tool-schema-catalog/deepseek-ai-dsh-terminal-panel/user-terminal-list:
en: 8a999f4b549a59ec
zh: df9795bf005ae431
/tool-schema-catalog/deepseek-ai-dsh-experimental-terminal-panel/user-terminal-read:
/tool-schema-catalog/deepseek-ai-dsh-terminal-panel/user-terminal-read:
en: 6b8d370041d6f3be
zh: 4328fb5d662b4942
/tool-schema-catalog/deepseek-ai-dsh-tool-goal:
+3 -3
View File
@@ -33,7 +33,7 @@ This table connects model-visible tool names to the plugin package and service s
| `@deepseek-ai/dsh-tool-fs` | `apply_patch`, `edit`, `read`, `read_image`, `write` | `ctx.workingDirectory`, `ctx.tools`, `ctx.fs`, `ctx.systemPrompt`, `ctx.attachments (image-tool registration)`, `ctx.llm + an image-capable route (image-tool execution)` | `tool/call`, `fs/write-intent, fs/edit-intent, or fs/delete-intent for mutations`, `fs/observed after read presence/absence or successful file operation`, `durable attachment (read_image)`, `tool/result` | - | The read-before-write/edit policy is added by `@deepseek-ai/dsh-fs-observation-policy` (an `fs/*` event-gate plugin, no schema change); the shipped compositions leave its row disabled, so mutations are unconditional unless a deployment enables it. The image tool is not registered without `ctx.attachments`; its schema is route-independent, and execution refuses unless the exact routed model declares image input. `apply_patch` registers only with `applyPatch: true`; the catalog sets it so the schema is documented. `dsh-base` and the Web `standard` preset enable it; the Web `ptc` and `cordis` presets and the PTC overlay state `applyPatch: false`. |
| `@deepseek-ai/dsh-tool-fs-search` | `glob`, `grep` | `ctx.workingDirectory`, `ctx.tools`, `ctx.subprocess`, `ctx.systemPrompt` | `tool/call`, `tool/result` | - | glob and grep are unconditional discovery tools that spawn the packaged ripgrep binary (`@vscode/ripgrep`) through ctx.subprocess as ordinary foreground calls (never background jobs) — no host `rg` install and no shell layer. The catalog uses `sampleOverCapGlobResults: true`; deployments must choose that behavior explicitly. Capped results save the complete formatted list through the optional ctx.spillStore backend; returned locators are follow-up-readable/searchable when the backend exposes local paths in co-located deployments. |
| `@deepseek-ai/dsh-tool-terminal` | `terminal_close`, `terminal_list`, `terminal_open`, `terminal_read`, `terminal_send`, `terminal_signal` | `ctx.workingDirectory`, `ctx.tools`, `ctx.terminals`, `ctx.systemPrompt`, `ctx.jobs at call time for run_in_background` | `tool/call`, `tool/result` | - | The six terminal tools are opt-in and complement one-shot shell/filesystem tools. `terminal_send(run_in_background: true)` registers with `ctx.jobs`; TUI, named key sequences, BEL, resize, auto-start, and cross-agent sharing are absent from the schema. |
| `@deepseek-ai/dsh-experimental-terminal-panel` | `user_terminal_list`, `user_terminal_read` | `ctx.tools`, `ctx.systemPrompt`, `ctx.terminals`, `ctx.terminalController`, `ctx.sandboxPolicy`, `a calling Agent` | `tool/call`, `tool/result` | - | The package also serves the six `terminal_*` tools from Web sidebar terminals. `user_terminal_list` and `user_terminal_read` only read terminals the user controls; `readUserTerminals: false` removes both. |
| `@deepseek-ai/dsh-terminal-panel` | `user_terminal_list`, `user_terminal_read` | `ctx.tools`, `ctx.systemPrompt`, `ctx.terminals`, `ctx.terminalController`, `ctx.sandboxPolicy`, `a calling Agent` | `tool/call`, `tool/result` | - | The package also serves the six `terminal_*` tools from Web sidebar terminals. `user_terminal_list` and `user_terminal_read` only read terminals the user controls; `readUserTerminals: false` removes both. |
| `@deepseek-ai/dsh-tool-goal` | `create_goal`, `get_goal`, `update_goal` | `ctx.tools`, `ctx.agents`, `ctx.goals`, `ctx.systemPrompt`, `a calling Agent in an authorized open turn` | `tool/call`, `goal/change for mutations`, `tool/result` | - | create, edit, pause, and resume require direct-human root authority; complete and blocked also accept the exact current goal round. The default blocked lower bound is three admitted rounds. |
| `@deepseek-ai/dsh-tool-schedule` | `schedule_create`, `schedule_edit`, `schedule_list`, `schedule_view` | `ctx.tools`, `ctx.schedule`, `ctx.systemPrompt` | `tool/call`, `Schedule storage domain create, update, or delete`, `tool/result` | - | A preset or Agent scope mounts this package and decides which agents receive its tools. Management reads and writes Host tasks by id across Sessions. Tasks store an RFC 5545 recurrence and an existing, first-created-and-reused, or per-run-new Session target. Delegated subagents cannot call these tools. |
| `@deepseek-ai/dsh-tool-lsp` | `lsp` | `ctx.workingDirectory`, `ctx.tools`, `ctx.lsp`, `ctx.systemPrompt` | `tool/call`, `tool/result` | - | The lsp tool keeps provider selection and language-server subprocesses behind ctx.lsp, so its model-visible schema stays stable across providers. Requires a registered provider (e.g. `@deepseek-ai/dsh-lsp-stdio`) at runtime; without one, a query returns the structured `LSP_UNAVAILABLE` error rather than changing the schema. |
@@ -1403,9 +1403,9 @@ Source: [`packages/experimental/tool-terminal/src/index.ts`](../packages/experim
The six terminal tools are opt-in and complement one-shot shell/filesystem tools. `terminal_send(run_in_background: true)` registers with `ctx.jobs`; TUI, named key sequences, BEL, resize, auto-start, and cross-agent sharing are absent from the schema.
<a id="deepseek-aidsh-experimental-terminal-panel"></a>
<a id="deepseek-aidsh-terminal-panel"></a>
## `@deepseek-ai/dsh-experimental-terminal-panel`
## `@deepseek-ai/dsh-terminal-panel`
### `user_terminal_list`
+3 -3
View File
@@ -37,7 +37,7 @@
| `@deepseek-ai/dsh-tool-fs` | `apply_patch`、`edit`、`read`、`read_image`、`write` | `ctx.workingDirectory`、`ctx.tools`、`ctx.fs`、`ctx.systemPrompt`、`ctx.attachments (image-tool registration)`、`ctx.llm + an image-capable route (image-tool execution)` | `tool/call`、`fs/write-intent, fs/edit-intent, or fs/delete-intent for mutations`、`fs/observed after read presence/absence or successful file operation`、`durable attachment (read_image)`、`tool/result` | - | 先读后写/编辑策略由 `@deepseek-ai/dsh-fs-observation-policy` 添加;它是一个 `fs/*` 事件门禁插件,不会改变 schema。随发行版交付的组合保持该行禁用,因此除非部署启用它,修改都是无条件的。没有 `ctx.attachments` 时图片工具不会注册;其 schema 与路由无关,执行时除非确切路由的模型声明图片输入,否则拒绝。`apply_patch` 仅在 `applyPatch: true` 时注册;目录为了记录其 schema 而开启该开关。`dsh-base` 与 Web 的 `standard` preset 开启它;Web 的 `ptc`、`cordis` preset 以及 PTC overlay 显式写出 `applyPatch: false`。 |
| `@deepseek-ai/dsh-tool-fs-search` | `glob`、`grep` | `ctx.workingDirectory`、`ctx.tools`、`ctx.subprocess`、`ctx.systemPrompt` | `tool/call`、`tool/result` | - | glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn 随包提供的 ripgrep 二进制文件(`@vscode/ripgrep`),并作为普通前台调用运行,绝不作为后台任务;无需在宿主机安装 `rg`,也不经过 shell 层。本目录使用 `sampleOverCapGlobResults: true`;部署必须显式选择该行为。结果超过上限时,会通过可选的 ctx.spillStore 后端保存完整的格式化列表;在共置部署中,如果后端公开本地路径,返回的定位信息可供后续读取/搜索。 |
| `@deepseek-ai/dsh-tool-terminal` | `terminal_close`、`terminal_list`、`terminal_open`、`terminal_read`、`terminal_send`、`terminal_signal` | `ctx.workingDirectory`、`ctx.tools`、`ctx.terminals`、`ctx.systemPrompt`、`ctx.jobs at call time for run_in_background` | `tool/call`、`tool/result` | - | 这 6 个终端工具需要选择启用,用于补充一次性 bash/文件系统工具。`terminal_send(run_in_background: true)` 会注册到 `ctx.jobs`;schema 不包含 TUI、具名按键序列、BEL、调整尺寸、自动启动和跨 agent 共享。 |
| `@deepseek-ai/dsh-experimental-terminal-panel` | `user_terminal_list`、`user_terminal_read` | `ctx.tools`、`ctx.systemPrompt`、`ctx.terminals`、`ctx.terminalController`、`ctx.sandboxPolicy`、`a calling Agent` | `tool/call`、`tool/result` | - | 本包还用 Web 侧栏终端承载 6 个 `terminal_*` 工具。`user_terminal_list` 和 `user_terminal_read` 只读取用户控制的终端;`readUserTerminals: false` 会移除这两个工具。 |
| `@deepseek-ai/dsh-terminal-panel` | `user_terminal_list`、`user_terminal_read` | `ctx.tools`、`ctx.systemPrompt`、`ctx.terminals`、`ctx.terminalController`、`ctx.sandboxPolicy`、`a calling Agent` | `tool/call`、`tool/result` | - | 本包还用 Web 侧栏终端承载 6 个 `terminal_*` 工具。`user_terminal_list` 和 `user_terminal_read` 只读取用户控制的终端;`readUserTerminals: false` 会移除这两个工具。 |
| `@deepseek-ai/dsh-tool-goal` | `create_goal`、`get_goal`、`update_goal` | `ctx.tools`、`ctx.agents`、`ctx.goals`、`ctx.systemPrompt`、`a calling Agent in an authorized open turn` | `tool/call`、`goal/change for mutations`、`tool/result` | - | create、edit、pause 和 resume 要求直接来自人类的根权限;complete 和 blocked 也接受确切的当前 Goal Round。blocked 的默认下限是 3 个获准的 Round。 |
| `@deepseek-ai/dsh-tool-schedule` | `schedule_create`、`schedule_edit`、`schedule_list`、`schedule_view` | `ctx.tools`、`ctx.schedule`、`ctx.systemPrompt` | `tool/call`、Schedule storage domain 创建、更新或删除、`tool/result` | - | preset 或 Agent scope 挂载本包,并决定哪些 Agent 获得工具。管理工具按 id 跨会话读写 Host 的任务。任务保存 RFC 5545 重复规则,执行位置可选已有会话、首次创建后复用的会话或每次运行新建的会话。委派子 Agent 不能调用这些工具。 |
| `@deepseek-ai/dsh-tool-lsp` | `lsp` | `ctx.workingDirectory`、`ctx.tools`、`ctx.lsp`、`ctx.systemPrompt` | `tool/call`、`tool/result` | - | lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,因此其模型可见 schema 在更换提供方时保持稳定。运行时要求已注册提供方,例如 `@deepseek-ai/dsh-lsp-stdio`;如果没有提供方,查询会返回结构化 `LSP_UNAVAILABLE` 错误,而不会改变 schema。 |
@@ -1409,9 +1409,9 @@ glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn
这 6 个终端工具需要选择启用,用于补充一次性 bash/文件系统工具。`terminal_send(run_in_background: true)` 会注册到 `ctx.jobs`;schema 不包含 TUI、具名按键序列、BEL、调整尺寸、自动启动和跨 agent 共享。
<a id="deepseek-aidsh-experimental-terminal-panel"></a>
<a id="deepseek-aidsh-terminal-panel"></a>
## `@deepseek-ai/dsh-experimental-terminal-panel`
## `@deepseek-ai/dsh-terminal-panel`
### `user_terminal_list`
@@ -9,8 +9,8 @@
en: 7cde67276f76d652
zh: 8f40021311b896f5
/persistent-terminals-open-in-the-web-sidebar/change:
en: 84baa99f7ad11089
zh: 4d04e8818f2a2469
en: 05818c97f3e32442
zh: 249a6ce6f6b80f0d
/persistent-terminals-open-in-the-web-sidebar/migration:
en: 1fe14dab0b4e5056
zh: 4afffad398f7a18b
@@ -8,7 +8,7 @@ English | [中文](guide.zh.md)
## Change
The **Persistent terminals** bundle (`@deepseek-ai/dsh-experimental-terminal-bundle`) used to run Agent terminals through `@deepseek-ai/dsh-terminal-bash`: a profile-free Bash on POSIX and PowerShell on Windows, invisible to the person, with sandbox-mode changes refused while one was open. Its `optional-persistent-terminals` group now mounts [`@deepseek-ai/dsh-experimental-terminal-panel`](../../../../packages/experimental/terminal-panel/README.md) instead. Each `terminal_open` becomes a sidebar tab running the execution environment's default shell with the person's startup files, or `pwsh` then `powershell` on Windows; the person can type into it and take it over. The bundle also registers `user_terminal_list` and `user_terminal_read`, and it requires the Web or Desktop composition, which mounts the terminal controller.
The **Persistent terminals** bundle (`@deepseek-ai/dsh-experimental-terminal-bundle`) used to run Agent terminals through `@deepseek-ai/dsh-terminal-bash`: a profile-free Bash on POSIX and PowerShell on Windows, invisible to the person, with sandbox-mode changes refused while one was open. Its `optional-persistent-terminals` group now mounts [`@deepseek-ai/dsh-terminal-panel`](../../../../packages/experimental/terminal-panel/README.md) instead. Each `terminal_open` becomes a sidebar tab running the execution environment's default shell with the person's startup files, or `pwsh` then `powershell` on Windows; the person can type into it and take it over. The bundle also registers `user_terminal_list` and `user_terminal_read`, and it requires the Web or Desktop composition, which mounts the terminal controller.
Profile patches that target the removed `optional-terminal-bash` or `optional-terminal-pwsh` rows, or that configure `@deepseek-ai/dsh-terminal-bash` options such as `pollIntervalMs` through them, no longer apply. Headless or other compositions without the terminal controller no longer get a working `shell` backend from this bundle.
@@ -8,7 +8,7 @@ description: "实验终端 bundle 改为在 Web 侧栏打开 Agent 终端,并
## 变更
**持久终端** bundle(`@deepseek-ai/dsh-experimental-terminal-bundle`)原先通过 `@deepseek-ai/dsh-terminal-bash` 运行 Agent 终端:POSIX 上是不加载配置文件的 Bash,Windows 上是 PowerShell,人看不到这些终端,而且有终端打开时会拒绝切换沙箱模式。现在它的 `optional-persistent-terminals` 分组改为挂载 [`@deepseek-ai/dsh-experimental-terminal-panel`](../../../../packages/experimental/terminal-panel/README.zh.md)。每次 `terminal_open` 都会成为一个侧栏标签页,运行执行环境的默认 shell 并加载人的启动文件,Windows 上依次优先 `pwsh` 和 `powershell`;人可以在其中输入并接管。该 bundle 还会注册 `user_terminal_list` 和 `user_terminal_read`,并且需要挂载终端控制器的 Web 或 Desktop 组合。
**持久终端** bundle(`@deepseek-ai/dsh-experimental-terminal-bundle`)原先通过 `@deepseek-ai/dsh-terminal-bash` 运行 Agent 终端:POSIX 上是不加载配置文件的 Bash,Windows 上是 PowerShell,人看不到这些终端,而且有终端打开时会拒绝切换沙箱模式。现在它的 `optional-persistent-terminals` 分组改为挂载 [`@deepseek-ai/dsh-terminal-panel`](../../../../packages/experimental/terminal-panel/README.zh.md)。每次 `terminal_open` 都会成为一个侧栏标签页,运行执行环境的默认 shell 并加载人的启动文件,Windows 上依次优先 `pwsh` 和 `powershell`;人可以在其中输入并接管。该 bundle 还会注册 `user_terminal_list` 和 `user_terminal_read`,并且需要挂载终端控制器的 Web 或 Desktop 组合。
针对已移除的 `optional-terminal-bash` 或 `optional-terminal-pwsh` 行的 profile patch,以及借这些行配置 `@deepseek-ai/dsh-terminal-bash` 选项(例如 `pollIntervalMs`)的 patch,都不再生效。没有终端控制器的 headless 或其他组合,不再能从这个 bundle 得到可用的 `shell` 后端。
+1 -1
View File
@@ -229,7 +229,7 @@
"@deepseek-ai/dsh-tool-executor-ptc": "workspace:*",
"@deepseek-ai/dsh-tool-ralph": "workspace:*",
"@deepseek-ai/dsh-tool-terminal": "workspace:*",
"@deepseek-ai/dsh-experimental-terminal-panel": "workspace:*",
"@deepseek-ai/dsh-terminal-panel": "workspace:*",
"@deepseek-ai/dsh-agent": "workspace:*",
"@deepseek-ai/dsh-browser-use": "workspace:*",
"@deepseek-ai/dsh-experimental-browser-use-runtime": "workspace:*",
@@ -8,7 +8,7 @@
- id: optional-terminal-registry
name: '@deepseek-ai/dsh-terminal'
- id: optional-terminal-panel
name: '@deepseek-ai/dsh-experimental-terminal-panel'
name: '@deepseek-ai/dsh-terminal-panel'
config:
preferredShells: !!js "process.platform === 'win32' ? ['pwsh', 'powershell'] : []"
- id: optional-tool-terminal
@@ -41,7 +41,7 @@
"dependencies": {
"@deepseek-ai/dsh-tool-terminal": "workspace:*",
"@deepseek-ai/dsh-terminal": "workspace:*",
"@deepseek-ai/dsh-experimental-terminal-panel": "workspace:*"
"@deepseek-ai/dsh-terminal-panel": "workspace:*"
},
"peerDependencies": {
"@deepseek-ai/cordis": "workspace:~"
@@ -5,87 +5,87 @@
/:
en: 0b63adc1fd484320
zh: e36325174c1d593e
/deepseek-ai-dsh-experimental-terminal-panel:
en: 74983995f9e80c8e
zh: 78694169950fd947
/deepseek-ai-dsh-experimental-terminal-panel/summary:
/deepseek-ai-dsh-terminal-panel:
en: e7a67b8b6d8d61bc
zh: 40ac0d2793bf248e
/deepseek-ai-dsh-terminal-panel/summary:
en: 20323148eac9c8f3
zh: 707f2b9432460a4b
/deepseek-ai-dsh-experimental-terminal-panel/table-of-contents:
/deepseek-ai-dsh-terminal-panel/table-of-contents:
en: d152484eb41ac6b4
zh: 09388d293f9be9cb
/deepseek-ai-dsh-experimental-terminal-panel/use-this-package:
/deepseek-ai-dsh-terminal-panel/use-this-package:
en: f0df88f3919c7cbc
zh: 76211a1d9e5d5fbc
/deepseek-ai-dsh-experimental-terminal-panel/use-this-package/agent-terminals:
/deepseek-ai-dsh-terminal-panel/use-this-package/agent-terminals:
en: 4d8803df6d8735a3
zh: bf389154459db8b7
/deepseek-ai-dsh-experimental-terminal-panel/use-this-package/user-terminals:
/deepseek-ai-dsh-terminal-panel/use-this-package/user-terminals:
en: c99bcbaaa06867aa
zh: 98c83a457a3adebb
/deepseek-ai-dsh-experimental-terminal-panel/use-this-package/configuration:
/deepseek-ai-dsh-terminal-panel/use-this-package/configuration:
en: 7b1fd9bc46e6e080
zh: c95222f0737a879f
/deepseek-ai-dsh-experimental-terminal-panel/understand-the-implementation:
/deepseek-ai-dsh-terminal-panel/understand-the-implementation:
en: 42b15ac6321706aa
zh: 4ed0861911abaf5d
/deepseek-ai-dsh-experimental-terminal-panel/understand-the-implementation/source-map:
/deepseek-ai-dsh-terminal-panel/understand-the-implementation/source-map:
en: 76351c841eca75f0
zh: be2abe6e09d17d52
/deepseek-ai-dsh-experimental-terminal-panel/understand-the-implementation/readiness:
/deepseek-ai-dsh-terminal-panel/understand-the-implementation/readiness:
en: ba721990bda586de
zh: 6b1296e65176aa81
/deepseek-ai-dsh-experimental-terminal-panel/understand-the-implementation/output:
/deepseek-ai-dsh-terminal-panel/understand-the-implementation/output:
en: 9ac59df4b3a3d276
zh: b3a3627649890002
/deepseek-ai-dsh-experimental-terminal-panel/further-exploration:
/deepseek-ai-dsh-terminal-panel/further-exploration:
en: c4ef563acf65e7fc
zh: d366ed02fbb2acf7
/deepseek-ai-dsh-experimental-terminal-panel/model-experience:
/deepseek-ai-dsh-terminal-panel/model-experience:
en: 215e7ba838619b7b
zh: a311da3843709f90
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/system-prompt:
/deepseek-ai-dsh-terminal-panel/model-experience/system-prompt:
en: cf78b9dd5596495f
zh: bd44560f8c2435e8
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/system-prompt/what-the-model-sees:
/deepseek-ai-dsh-terminal-panel/model-experience/system-prompt/what-the-model-sees:
en: 0f7e951ff83821fe
zh: 0d69ed71f2769f50
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/system-prompt/what-the-model-sees/visible-terminal-guidance:
/deepseek-ai-dsh-terminal-panel/model-experience/system-prompt/what-the-model-sees/visible-terminal-guidance:
en: 4e394a8b190da36e
zh: deb1020a7d413da8
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/system-prompt/token-effect:
/deepseek-ai-dsh-terminal-panel/model-experience/system-prompt/token-effect:
en: c9d6d1a8238b74ab
zh: 55cc65464a23a2ad
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/system-prompt/kv-cache-effect:
/deepseek-ai-dsh-terminal-panel/model-experience/system-prompt/kv-cache-effect:
en: 386040729139432e
zh: 8da76c4a764e1404
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-schemas:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-schemas:
en: 3039bc5e7a796b21
zh: 6b7a9eaf69c9ea53
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-schemas/what-the-model-sees:
en: 070c0a8095d308bb
zh: 5652e59545e0809f
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-schemas/token-effect:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-schemas/what-the-model-sees:
en: b229715e45f835b7
zh: 8c64d9b8b0965f96
/deepseek-ai-dsh-terminal-panel/model-experience/tool-schemas/token-effect:
en: 551ac4e891a99b65
zh: 1836af46e76e62c2
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-schemas/kv-cache-effect:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-schemas/kv-cache-effect:
en: c8cbbef533bdb90f
zh: eeae03406cc19507
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-results:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-results:
en: beaabb79f229692a
zh: 8573891441963be4
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-results/what-the-model-sees:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-results/what-the-model-sees:
en: 2538a26798ee0e5c
zh: d9376a7835276ec3
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-results/token-effect:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-results/token-effect:
en: c1be20647b2286db
zh: 3a7ad758a74a3da2
/deepseek-ai-dsh-experimental-terminal-panel/model-experience/tool-results/kv-cache-effect:
/deepseek-ai-dsh-terminal-panel/model-experience/tool-results/kv-cache-effect:
en: ac583ab16185a93c
zh: b7648468f156c025
/deepseek-ai-dsh-experimental-terminal-panel/known-limitations-and-deferred-work:
/deepseek-ai-dsh-terminal-panel/known-limitations-and-deferred-work:
en: 6532d96a4477d918
zh: 199ed2549f85d0b5
/deepseek-ai-dsh-experimental-terminal-panel/known-limitations-and-deferred-work/dev-note:
/deepseek-ai-dsh-terminal-panel/known-limitations-and-deferred-work/dev-note:
en: e67f633dc6fe7773
zh: 3bb0c20c93f16f98
@@ -3,7 +3,7 @@ description: "Persistent Agent terminals shown in the Web sidebar, which the per
kind: "package-reference"
---
# @deepseek-ai/dsh-experimental-terminal-panel
# @deepseek-ai/dsh-terminal-panel
English | [中文](README.zh.md)
@@ -34,7 +34,7 @@ Mount the plugin in a group that isolates `terminals`, beside the registry and t
terminals: true
config:
- name: '@deepseek-ai/dsh-terminal'
- name: '@deepseek-ai/dsh-experimental-terminal-panel'
- name: '@deepseek-ai/dsh-terminal-panel'
- name: '@deepseek-ai/dsh-tool-terminal'
```
@@ -134,7 +134,7 @@ Prefix-stable while the plugin stays loaded; loading or unloading it changes the
#### What the model sees
The two schemas are listed in the [`dsh-experimental-terminal-panel` catalog section](../../../docs/tool-catalog.md#deepseek-aidsh-experimental-terminal-panel). The six terminal tools keep the schemas of [`dsh-tool-terminal`](../../../docs/tool-catalog.md#deepseek-aidsh-tool-terminal).
The two schemas are listed in the [`dsh-terminal-panel` catalog section](../../../docs/tool-catalog.md#deepseek-aidsh-terminal-panel). The six terminal tools keep the schemas of [`dsh-tool-terminal`](../../../docs/tool-catalog.md#deepseek-aidsh-tool-terminal).
#### Token effect
@@ -3,7 +3,7 @@ description: "在 Web 侧栏中显示 Agent 的持久终端,人可以旁观并
kind: "package-reference"
---
# @deepseek-ai/dsh-experimental-terminal-panel
# @deepseek-ai/dsh-terminal-panel
[English](README.md) | 中文
@@ -34,7 +34,7 @@ kind: "package-reference"
terminals: true
config:
- name: '@deepseek-ai/dsh-terminal'
- name: '@deepseek-ai/dsh-experimental-terminal-panel'
- name: '@deepseek-ai/dsh-terminal-panel'
- name: '@deepseek-ai/dsh-tool-terminal'
```
@@ -134,7 +134,7 @@ Terminals you open with terminal_open appear in the user's side panel. The user
#### 模型看到什么
两个 schema 列在 [`dsh-experimental-terminal-panel` 目录小节](../../../docs/tool-catalog.zh.md#deepseek-aidsh-experimental-terminal-panel)中。6 个终端工具沿用 [`dsh-tool-terminal`](../../../docs/tool-catalog.zh.md#deepseek-aidsh-tool-terminal) 的 schema。
两个 schema 列在 [`dsh-terminal-panel` 目录小节](../../../docs/tool-catalog.zh.md#deepseek-aidsh-terminal-panel)中。6 个终端工具沿用 [`dsh-tool-terminal`](../../../docs/tool-catalog.zh.md#deepseek-aidsh-tool-terminal) 的 schema。
#### Token 影响
@@ -1,5 +1,5 @@
{
"name": "@deepseek-ai/dsh-experimental-terminal-panel",
"name": "@deepseek-ai/dsh-terminal-panel",
"description": "Persistent Agent terminals shown in the Web sidebar, plus read-only access to the user's terminals",
"version": "0.2.2-alpha.3",
"publishConfig": {
@@ -58,12 +58,12 @@ export const Config: z<Partial<Config>, Config> = z.object({
*/
export function validateConfig(config: Config): void {
if (config.promptSilenceMs > config.idleSilenceMs) {
throw new Error('experimental-terminal-panel: promptSilenceMs must not exceed idleSilenceMs')
throw new Error('terminal-panel: promptSilenceMs must not exceed idleSilenceMs')
}
if (config.idleSilenceMs > config.timeoutMs) {
throw new Error('experimental-terminal-panel: idleSilenceMs must not exceed timeoutMs')
throw new Error('terminal-panel: idleSilenceMs must not exceed timeoutMs')
}
if (config.startupSilenceMs > config.startupTimeoutMs) {
throw new Error('experimental-terminal-panel: startupSilenceMs must not exceed startupTimeoutMs')
throw new Error('terminal-panel: startupSilenceMs must not exceed startupTimeoutMs')
}
}
@@ -1,7 +1,7 @@
/**
* Visible persistent terminals: a terminal registry backend whose sessions are Agent terminals in the
* Session's sidebar, read-only tools for terminals the user opened, and guidance for both.
* @module @deepseek-ai/dsh-experimental-terminal-panel
* @module @deepseek-ai/dsh-terminal-panel
*/
import type { Context } from '@deepseek-ai/cordis'
@@ -19,7 +19,7 @@ export { SUBAGENT_REFUSAL } from './backend.ts'
export { TAKEN_OVER } from './session.ts'
/** Cordis plugin name. */
export const name = 'experimental-terminal-panel'
export const name = 'terminal-panel'
/** Terminal registry, sidebar terminals, sandbox policy, tool registry and prompt sections. */
export const inject = ['terminals', 'terminalController', 'sandboxPolicy', 'tools', 'systemPrompt']
@@ -220,7 +220,6 @@ Every package below exports a Cordis plugin that a bundle patch can name in a Lo
| `@deepseek-ai/dsh-experimental-speech-to-text` | yes | Experimental speech recognition with independently selectable providers |
| `@deepseek-ai/dsh-experimental-speech-to-text-sensevoice` | yes | Local SenseVoice ONNX transcription with a managed sherpa-onnx process |
| `@deepseek-ai/dsh-experimental-subagent-oar` | yes | Experimental one-shot subagents through OAR runtimes |
| `@deepseek-ai/dsh-experimental-terminal-panel` | yes | Persistent Agent terminals shown in the Web sidebar, plus read-only access to the user's terminals |
| `@deepseek-ai/dsh-experimental-tool-subagent-oar` | yes | Delegate standalone tasks to configured external subagent providers |
| `@deepseek-ai/dsh-experimental-tool-worktree` | no | Model tool that creates and enters a new Git worktree |
| `@deepseek-ai/dsh-experimental-translator` | yes | Machine translation with reusable Session results |
@@ -230,6 +229,7 @@ Every package below exports a Cordis plugin that a bundle patch can name in a Lo
| `@deepseek-ai/dsh-plugin-recommendations` | no | Official plugin suggestions with explicit user activation and persistent conversation decisions |
| `@deepseek-ai/dsh-session-title-all-prompts-llm` | yes | All-user-messages LLM provider plugin for DeepSeek Harness session titles |
| `@deepseek-ai/dsh-skill-badge` | no | Bundled dsh badge skill provider for DeepSeek Harness |
| `@deepseek-ai/dsh-terminal-panel` | yes | Persistent Agent terminals shown in the Web sidebar, plus read-only access to the user's terminals |
| `@deepseek-ai/dsh-tool-ralph` | yes | Model-facing fresh-agent Ralph loop over the workflow and subagent seams |
| `@deepseek-ai/dsh-tool-session-query` | yes | Workspace-authorized model-facing session history search, trace, and event read tools |
| `@deepseek-ai/dsh-tool-terminal` | yes | Six model-facing persistent PTY tools with owner isolation and generic background-job integration |
+6 -6
View File
@@ -81,9 +81,6 @@ importers:
'@deepseek-ai/dsh-experimental-subagent-oar':
specifier: workspace:*
version: link:packages/experimental/subagent-oar
'@deepseek-ai/dsh-experimental-terminal-panel':
specifier: workspace:*
version: link:packages/experimental/terminal-panel
'@deepseek-ai/dsh-experimental-tool-subagent-oar':
specifier: workspace:*
version: link:packages/experimental/tool-subagent-oar
@@ -114,6 +111,9 @@ importers:
'@deepseek-ai/dsh-subagent-dsh-sdk':
specifier: workspace:*
version: link:packages/subagent/subagent-dsh-sdk
'@deepseek-ai/dsh-terminal-panel':
specifier: workspace:*
version: link:packages/experimental/terminal-panel
'@deepseek-ai/dsh-tool-executor-native':
specifier: workspace:*
version: link:packages/core/tool-executor-native
@@ -11072,12 +11072,12 @@ importers:
packages/experimental/terminal-bundle:
dependencies:
'@deepseek-ai/dsh-experimental-terminal-panel':
specifier: workspace:*
version: link:../terminal-panel
'@deepseek-ai/dsh-terminal':
specifier: workspace:*
version: link:../../terminal/terminal
'@deepseek-ai/dsh-terminal-panel':
specifier: workspace:*
version: link:../terminal-panel
'@deepseek-ai/dsh-tool-terminal':
specifier: workspace:*
version: link:../tool-terminal
+1
View File
@@ -11,6 +11,7 @@ export const EXPERIMENTAL_PACKAGE_NAME_EXCEPTIONS: Readonly<Record<string, strin
'packages/experimental/tool-session-query': '@deepseek-ai/dsh-tool-session-query',
'packages/experimental/session-title-all-prompts-llm': '@deepseek-ai/dsh-session-title-all-prompts-llm',
'packages/experimental/tool-terminal': '@deepseek-ai/dsh-tool-terminal',
'packages/experimental/terminal-panel': '@deepseek-ai/dsh-terminal-panel',
'packages/experimental/tool-ralph': '@deepseek-ai/dsh-tool-ralph',
'packages/experimental/skill-badge': '@deepseek-ai/dsh-skill-badge',
'packages/experimental/hook-protocol': '@deepseek-ai/dsh-hook-protocol',
+2 -2
View File
@@ -765,7 +765,7 @@ const SERVICE_ROLES: ServiceRole[] = [
pkg: 'terminal',
title: 'Persistent PTY session registry',
mode: 'seam',
implementations: ['terminal-bash', 'experimental-terminal-panel'],
implementations: ['terminal-bash', 'terminal-panel'],
consumers: ['tool-terminal'],
note: 'The registry owns exact-Agent session identity and cleanup; backends own terminal mechanics, while tool-terminal exposes the owner-scoped model tools.',
},
@@ -784,7 +784,7 @@ const SERVICE_ROLES: ServiceRole[] = [
title: 'Sandbox policy home',
mode: 'core',
implementations: [],
consumers: ['bash-sandbox', 'fs-sandbox', 'terminal-bash', 'experimental-terminal-panel'],
consumers: ['bash-sandbox', 'fs-sandbox', 'terminal-bash', 'terminal-panel'],
note: 'The one home for the deployment default mode + workspace root; only the sandboxed executor and provider read the service (the tool layers use the pure `sandbox/mode` fold it also exports). Both enforcing families read it so bash and fs cannot confine to different roots.',
},
{
+2 -2
View File
@@ -61,7 +61,7 @@ import * as ToolFsSearch from '@deepseek-ai/dsh-tool-fs-search'
import * as ToolStrReplaceEditor from '@deepseek-ai/dsh-tool-str-replace-editor'
import TerminalSessionService from '@deepseek-ai/dsh-terminal'
import * as ToolPty from '@deepseek-ai/dsh-tool-terminal'
import * as TerminalPanel from '@deepseek-ai/dsh-experimental-terminal-panel'
import * as TerminalPanel from '@deepseek-ai/dsh-terminal-panel'
import * as ToolGoal from '@deepseek-ai/dsh-tool-goal'
import * as ToolSchedule from '@deepseek-ai/dsh-tool-schedule'
import ScheduleService from '@deepseek-ai/dsh-schedule'
@@ -460,7 +460,7 @@ const TOOL_PACKAGES: ToolPackage[] = [
'The six terminal tools are opt-in and complement one-shot shell/filesystem tools. `terminal_send(run_in_background: true)` registers with `ctx.jobs`; TUI, named key sequences, BEL, resize, auto-start, and cross-agent sharing are absent from the schema.',
},
{
pkg: '@deepseek-ai/dsh-experimental-terminal-panel',
pkg: '@deepseek-ai/dsh-terminal-panel',
dir: 'terminal-panel',
source: 'packages/experimental/terminal-panel/src/tools.ts',
requires: ['ctx.tools', 'ctx.systemPrompt', 'ctx.terminals', 'ctx.terminalController', 'ctx.sandboxPolicy', 'a calling Agent'],
+1 -1
View File
@@ -98,7 +98,7 @@ describe('release families', () => {
'@deepseek-ai/dsh-experimental-speech-to-text',
'@deepseek-ai/dsh-experimental-subagent-oar',
'@deepseek-ai/dsh-experimental-terminal-bundle',
'@deepseek-ai/dsh-experimental-terminal-panel',
'@deepseek-ai/dsh-terminal-panel',
'@deepseek-ai/dsh-tool-ralph',
'@deepseek-ai/dsh-tool-session-query',
'@deepseek-ai/dsh-experimental-tool-subagent-oar',
@@ -15,7 +15,7 @@
- id: pty
name: '@deepseek-ai/dsh-terminal'
- id: terminal-panel
name: '@deepseek-ai/dsh-experimental-terminal-panel'
name: '@deepseek-ai/dsh-terminal-panel'
- id: tool-terminal
name: '@deepseek-ai/dsh-tool-terminal'
- id: llm-replay
@@ -12,6 +12,6 @@
- id: pty
name: '@deepseek-ai/dsh-terminal'
- id: terminal-panel
name: '@deepseek-ai/dsh-experimental-terminal-panel'
name: '@deepseek-ai/dsh-terminal-panel'
- id: tool-terminal
name: '@deepseek-ai/dsh-tool-terminal'
+1 -1
View File
@@ -41,7 +41,6 @@
"@deepseek-ai/dsh-experimental-tool-subagent-oar": ["./packages/experimental/tool-subagent-oar/src/index.ts"],
"@deepseek-ai/dsh-experimental-ralph-bundle": ["./packages/experimental/ralph-bundle/src/index.ts"],
"@deepseek-ai/dsh-experimental-terminal-bundle": ["./packages/experimental/terminal-bundle/src/index.ts"],
"@deepseek-ai/dsh-experimental-terminal-panel": ["./packages/experimental/terminal-panel/src/index.ts"],
"@deepseek-ai/dsh-experimental-badge-skill-bundle": ["./packages/experimental/badge-skill-bundle/src/index.ts"],
"@deepseek-ai/dsh-experimental-session-titles-bundle": ["./packages/experimental/session-titles-bundle/src/index.ts"],
"@deepseek-ai/dsh-client-product-analytics": ["./packages/client/product-analytics/src/index.ts"],
@@ -571,6 +570,7 @@
"@deepseek-ai/dsh-system-prompt": ["./packages/core/system-prompt/src"],
"@deepseek-ai/dsh-terminal": ["./packages/terminal/terminal/src"],
"@deepseek-ai/dsh-terminal-bash": ["./packages/terminal/terminal-bash/src"],
"@deepseek-ai/dsh-terminal-panel": ["./packages/experimental/terminal-panel/src"],
"@deepseek-ai/dsh-time-context": ["./packages/context/time-context/src"],
"@deepseek-ai/dsh-timeout": ["./packages/util/timeout/src"],
"@deepseek-ai/dsh-tmux-context": ["./packages/context/tmux-context/src"],