JohnXu22786/command-scout0

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.

包名
dsh-command-scout
版本
0.1.0
许可证
MIT
最近更新
2026年8月16日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:JohnXu22786/command-scout

Configuration

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:

  1. the packageManager field of package.json ("pnpm@9.1.0" → pnpm),
  2. the first lockfile present, in lockfilePriority order,
  3. 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.