dsh-native-command/packages/util/native-command官方

175.3kStar19.0kFork0Issue752Watching

零依赖execFile运行器,用于host原生系统集成,直接执行程序捕获utf8stdio,支持中止传播和Windows隐藏控制台窗口,供directory-picker-native等host端集成调用

语言
TypeScript
License
MIT
分支
master
ai-agentscordisdshdsh-plugin

安装

$ dsh plugin --profile web add npm:@deepseek-ai/dsh-native-command

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

English | 中文

A zero-dependency no-shell execFile runner shared by host-native OS integrations: one runNativeCommand(command, args, signal) call spawns the executable directly (never a shell string), captures utf8 stdout/stderr, propagates the caller's abort into child termination, and hides the transient console window on Windows. Failures reject with the exit code and both captured streams attached, so callers classify (missing tool, cancelled, real failure) without re-running anything.

Its two consumers are the host-side native integrations: the directory-picker-native backend's OS chooser commands and the gateway's open-with-default-application hand-off (dsh-host-apiproxy host.openPath). The NativeCommandRunner type is their injectable command boundary.

It is a library, not a service or plugin: no ctx, registers nothing, holds no state, emits no events.

Surface

import { runNativeCommand, type NativeCommandRunner } from '@deepseek-ai/dsh-native-command'

Model Experience

None, as this is host-side subprocess plumbing; nothing here reaches a model request.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Known Limitations and Deferred Work

  • No output bounding — both streams buffer unbounded in memory; every current caller invokes small native tools whose output is a path or an error line. Adopt dsh-output-retention bounding before pointing this at commands with meaningful output volume.