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:
1 parent
34315a9de5
commit
b22b3ba514
31 files changed
+186
-185
No files matched your search
@@ -6,5 +6,5 @@
|
||||
en: 41d772192075e133
|
||||
zh: 5ef3da69b4de1d8a
|
||||
/capability-seams-and-core-services:
|
||||
en: 490a1bf25c0e97e8
|
||||
zh: 76f7089d062684ce
|
||||
en: c46b494967344687
|
||||
zh: 4c8f9b9ca4cb538f
|
||||
@@ -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. |
|
||||
|
||||
@@ -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
@@ -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
@@ -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>
|
||||
|
||||
|
||||
@@ -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) |
|
||||
|
||||
@@ -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,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:
|
||||
|
||||
@@ -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`
|
||||
|
||||
|
||||
@@ -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
@@ -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']
|
||||
|
||||
|
||||
+1
-1
@@ -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 |
|
||||
|
||||
Generated
+6
-6
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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.',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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
@@ -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"],
|
||||
|
||||
Reference in new issue
Block a user