JohnXu22786/command-scout ↗★ 0
dsh-command-scout
Scans the project workspace at startup and exposes its declared build commands (Makefile targets, package.json scripts, just recipes, deno tasks) as callable agent tools.
AI 분석
核心用途是自动发现项目中的构建、测试和运行脚本,使其可被 Agent 直接调用。适合需要让 Agent 自主执行本地项目构建与测试任务的场景。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:JohnXu22786/command-scoutConfiguration
Configuration is supplied through the plugin row's config (in
cordis.patch.yml or the profile patch). All fields have defaults; the
example below shows every option:
- insert:
- id: command-scout
name: dsh-command-scout/adapter
config:
root: '.' # directory scanned, relative to process cwd
collectors:
makefile:
enabled: true
scripts:
enabled: true
runner: auto # auto | npm | yarn | pnpm | bun
lockfilePriority: # probed in order by runner: auto
- pnpm-lock.yaml
- yarn.lock
- bun.lockb
- bun.lock
- package-lock.json
justfile:
enabled: true
deno:
enabled: true
naming:
style: scoped # scoped | flat
execution:
timeoutMs: 120000 # per-command hard budget
Runner detection (scripts)
runner: auto resolves in this order:
- the
packageManagerfield of package.json ("pnpm@9.1.0"→ pnpm), - the first lockfile present, in
lockfilePriorityorder, - npm as fallback.
The resolved runner also names the tools (pnpm_dev vs npm_dev), so two
projects using different runners never collide.
Naming
scoped(default):make_build,pnpm_dev,just_lint,deno_serve.flat: bare names (build,dev); on collision the first recipe keeps the bare name and later ones get numeric suffixes (dev_2).
Tool names only ever contain lowercase letters, digits and underscores
(names with no such characters at all, e.g. CJK-only script names, get a
deterministic task_ form), and the reserved harness name run_code
is never produced.