Voyager

io.github.dir-ai由 GitHub 帳號 dir-ai 發布v1.4.0更新於 Nov 10, 2026

Cited, OSV-gated, injection-hardened web briefs for coding agents. Verified, never raw web.

概覽

AI 產生的概覽

Voyager 為編碼代理提供附引用、經漏洞閘門的網頁簡報與套件檢查,而非原始網頁內容。

可以做什麼
Voyager 將查詢轉為附引用、附信心分數的簡報,綜合套件驗證、GitHub 探索、權威文件與開放網路搜尋。其 check 工具執行失敗即拒絕的 OSV 漏洞閘門,並提供建置來源、授權與時效等供應鏈訊號,還可選在隔離容器中重現安裝與冒煙匯入。抓取的文字會移除指令式酬載,並被框定為不可信證據。它以 CLI、函式庫與 MCP 伺服器形式提供,工具包括 check_package、retrieve、discover_repos 與 fetch_docs。
適用情境
當編碼代理需要研究套件或函式庫,而你希望得到經過驗證、附引用的結果而非原始網頁時使用。它也可作為 CI 閘門,在代理選擇了有漏洞、已棄用或不存在的相依套件時讓建置失敗。
執行需求
透過 stdio 在本機執行,通常使用 npx @dir-ai/voyager mcp 或 Docker 映像。npm 套件需要 Node.js。Tier-A 核心(npm、PyPI、OSV、未驗證的 GitHub)無需金鑰;可選的 Tier-C 搜尋供應商需要 TAVILY_API_KEY 或 GITHUB_TOKEN 等金鑰,或自訂金鑰解析器。隔離孿生需要容器執行環境。
安裝前請注意
隔離孿生會執行套件程式碼,但僅在強化、網路隔離、唯讀、非 root 的容器內執行;沒有容器執行環境時它會拒絕執行,而不會在主機上執行,且它只證明安裝與進入點載入,並非安全性證明。TAVILY_API_KEY、GITHUB_TOKEN 等可選供應商金鑰從環境變數或注入的解析器讀取;磁碟快取不會寫入任何金鑰。查詢會傳送到允許清單中的公開 API 主機。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Voyager,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

voyager

The verified-brief organ for coding agents.

An AI coding agent that reaches the open internet gets a raw, unsigned, possibly-poisoned blob and feeds it straight into its own prompt. voyager sits in front of that: it turns a query into a cited, confidence-scored, OSV-gated, injection-hardened brief — the only surface your model ever sees.

Every claim carries its provenance and a confidence signal. Package recommendations pass a fail-closed OSV vulnerability gate, surface build provenance (npm SLSA attestations) when present, and can be reproduced in a disposable twin — install + smoke-import run inside a hardened, rootless, network-isolated container (never on the host). That proves the package installs and its entrypoint loads; it is not a safety proof. All fetched text is stripped of instruction-shaped payloads (multilingual + base64 + markdown /HTML vectors) and framed as untrusted evidence the model must analyze, never obey.

  • check — is this package safe to use? Registry facts + OSV gate (fail-closed)
    • provenance/license/age supply-chain signals + optional isolated twin. Exit codes: 0 ok · 1 rejected (unsafe) · 2 tool/usage error (no verdict).
  • brief / retrieve — a cited brief combining package verification, GitHub discovery, canonical docs, and open-web search, each cross-referenced.
  • security by construction — one egress allowlist, https-only, streamed size cap, injection-strip + evidence framing. Zero-network unless you query.

CLI, library, and MCP server.

Install

bash
npm i @dir-ai/voyagernpx -y @dir-ai/voyager check express

CLI

bash
voyager check <name> [--ecosystem npm|pypi] [--version V] [--twin]   # exit 1 if unsafevoyager brief "<query>" [--package name] [--discover "<intent>"] [--search "<q>"] [--docs <lib>]voyager discover "<intent>"     # GitHub repo discovery (Tier-A)voyager search "<query>"        # open-web search (Tier-C, needs a key)voyager docs <library>          # canonical docs (Tier-B)voyager doctor                  # which source keys are configured

check is a natural CI gate: fail the build if an agent picked a vulnerable, deprecated, or non-existent dependency.

Library

ts
import { checkPackage, voyagerRetrieve, setKeyResolver } from '@dir-ai/voyager'
const v = await checkPackage({ name: 'express', ecosystem: 'npm' })// → { verdict: 'belief' | 'fact' | 'rejected', claim, steps }  (adversarial trace)
const brief = await voyagerRetrieve('a safe date library', {  packages: [{ name: 'date-fns', ecosystem: 'npm' }],  discover: 'date library',})brief.rendered   // the injection-hardened, framed text to feed a modelbrief.claims     // structured, cited, confidence-scored
// Bring your own key store (default is env vars):setKeyResolver((provider) => mySecrets.get(provider))

MCP server

jsonc
// .mcp.json{  "mcpServers": {    "voyager": { "command": "npx", "args": ["-y", "@dir-ai/voyager", "mcp"] }  }}

Tools: check_package, retrieve, discover_repos, fetch_docs.

Docker

bash
docker run --rm ghcr.io/dir-ai/voyager check expressdocker run -i --rm ghcr.io/dir-ai/voyager mcp   # stdio MCP

Tiers & trust

TierSourceBase trust
AGitHub · npm · PyPI · OSV (structured facts)high
Bcanonical docs (official hosts only)high
Copen-web search (Tavily / Exa / Apify)low — cross-referenced before trusted
Disolated twin (install + smoke in a container)reproduction, not a safety proof

Keys are optional: the Tier-A core (npm/PyPI/OSV, and GitHub unauthenticated) is zero-key. Tier-C providers each no-op without their key. Set GITHUB_TOKEN, TAVILY_API_KEY, etc., or inject a resolver.

Security posture

One egress allowlist (a fixed set of public API hosts), https-only, redirect: error, a streamed byte cap that aborts an oversized body mid-download, and an injection-strip that removes role-hijacks / chat-template tokens / zero-width & bidi characters, decodes-and-rescans base64, neutralizes markdown images and HTML comments, and matches instruction payloads across several languages. The framing is the real defense — the strip keeps it from being trivially escaped. The twin runs the package's code only inside a hardened, network-isolated, read-only, non-root container; with no container runtime it refuses to run (returns unsupported) rather than execute on the host. See SECURITY.md.

Cache

Idempotent Tier-A facts (npm / PyPI / OSV) are cached in-process and on disk under ~/.voyager/cache (content-addressed, TTL'd) so repeated checks are fast, survive across runs, and lean less on the network. No secret is ever written (auth headers are never part of a cache key or value). VOYAGER_NO_CACHE=1 disables it; VOYAGER_CACHE_DIR relocates it.

Roadmap

deps.dev-backed multi-ecosystem facts (crates / Go / RubyGems / Packagist), typosquatting detection, PyPI/cargo twins. Contributions welcome.

License

MIT © dir-ai

來源:README.md,提交 e615413

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.4.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分