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.

AI 분석

核心用途是自动发现项目中的构建、测试和运行脚本,使其可被 Agent 直接调用。适合需要让 Agent 自主执行本地项目构建与测试任务的场景。

패키지
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.