DAG总览 / 组目录 / G36 Shell 执行

dsh-tool-pwsh · @deepseek-ai/dsh-tool-pwsh

Layer 5G36
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
无下游(叶子/被消费端)
同一拓扑层(Layer 5,层次遍历层序):
↑ Layer 4(13 插件)Layer 5↓ Layer 6(18 插件)

插件信息

包名@deepseek-ai/dsh-tool-pwsh
分组G36 · Shell 执行
拓扑层Layer 5(层次遍历:被依赖方先于依赖方)
源码路径packages/shell/tool-pwsh

① 实现逻辑

向模型注册 pwsh 工具作为 ctx.shell 的 PowerShell 方言消费者:前台/后台执行、ctx.jobs 集成、DSH_* 环境注入、per-call sandbox policy 与升级审批、退出状态渲染均镜像 dsh-tool-bash (src/index.ts:212-544)。pwshDescription() 额外描述 Windows 沙箱下 ConstrainedLanguage 与命名管道 EPERM 边界 (src/index.ts:122-147)。background.ts 的进程→job 适配与 render.ts 的结果渲染故事与 bash 工具共用对称契约 (src/index.ts:276-379, 486-493)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

dsh-agentE1
读取调用者 Agent 会话以解析 workdir 与作业归属
src/index.ts:30 import type { Agent }; package.json:31 peerDep
dsh-llmE1
用 HarnessError/TOOL_ABORTED 表达工具中止
src/index.ts:29 import HarnessError; package.json:33 peerDep
dsh-sandbox-policyE2
解析调用会话的完整沙箱执行策略
src/index.ts:36 import type { SandboxPolicyService }; src/index.ts:219 ctx.get('sandboxPolicy'); src/index.ts:226 sandboxPolicy.resolve
dsh-shell-envE1+E2
为每次执行收集受信任 DSH_* 环境变量
src/index.ts:32 import type {}; src/index.ts:50 inject ['shellEnv']; src/index.ts:511 ctx.shellEnv.collect(exec)
dsh-system-promptE2
注入 pwsh 交叉调用与 Windows 退出码指引段落
src/index.ts:50 inject ['systemPrompt']; src/index.ts:264 ctx.systemPrompt.section
dsh-toolsE1+E2
注册 pwsh 工具定义并消费工具运行上下文
src/index.ts:27-28 import defineTool/TOOL_ABORTED; src/index.ts:50 inject ['tools']; src/index.ts:593 ctx.tools.register
dsh-user-approvalE2
把沙箱升级请求路由到用户审批通道
src/index.ts:33 import type {}; src/index.ts:254 ctx.get('approval')

④ 被依赖(dependents · 下游消费者)

无下游(叶子/被消费端)