margbug01/dsh-ma-plugins

dsh-librarian

带行号证据和内存缓存的 GitHub 只读调研子代理。

Git 与代码评审ai-agentscordisdeepseek

dsh-librarian

Evidence-first GitHub repository research for DeepSeek Harness.

The main agent sees one librarian_explore tool. A fresh read-only child receives the low-level GitHub tools for code search, repository/ref resolution, numbered file reads, directory listing, recursive globbing, commit history, and diffs. Search snippets are treated as navigation hints; reports are instructed to cite verified file ranges and permanent GitHub links.

Install

dsh plugin --profile web add link:C:/path/to/dsh-ma-plugins/dsh-librarian

The bundle patch mounts the plugin with these defaults. Override by id in ~/.dsh/profiles/web/cordis.patch.yml, restating every config key you keep:

- id: dsh-librarian
  config:
    apiKeyEnv: GITHUB_TOKEN
    maxApiCalls: 36
    timeoutMs: 600000
    maxRetries: 1
    maxRetryDelayMs: 5000
    cache:
      enabled: true
      maxSizeMb: 100
      refTtlSeconds: 60
      searchTtlSeconds: 30
      disk: false

Do not - insert this plugin again after dsh plugin add; that double-mounts it.

agentOptions is optional. When omitted, the Librarian inherits the parent agent's provider and model.

The token resolves through the DSH credential service first, then the process environment. Keep credentials outside the repository.

The cache stays in memory and is cleared when DSH restarts. Immutable commit and tree reads remain cached until least-recently-used eviction. Branch, repository, and history reads use refTtlSeconds; complete search responses use searchTtlSeconds. Incomplete search responses, errors, rate-limit responses, credentials, and responses marked private, no-store, or no-cache are never cached. Matching in-flight requests from one Librarian run share a single GitHub request, while each caller keeps independent cancellation. Individual responses are capped at 16 MB before entering the memory layer.

disk: true is reserved for a future opt-in disk cache. Version 0.3.1 logs a notice and continues with memory only.

Development

npm run check
npm test

Requires Node.js 22 and DSH 0.1.0-rc.6.