Peerconflict

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 3, 2026

以圖的形式解釋對等依賴衝突,並建議改動最小的解決方案。

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

Explains peer-dependency conflicts as a graph and suggests the least-change resolution.

已驗證STDIO僅桌面

概覽

Peerconflict 的本機 MCP 服務;無需登入;STDIO。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

peerconflict

An install just failed with a peer-dependency error and the output is a wall of nested requirements. peerconflict takes the resolved tree — every installed package's name and version, plus the peer requirements each package declares — and lays the problem out as a graph you can read:

  • Edges — one entry per peer requirement, each marked satisfied or not. An edge is satisfied only when the peer is actually installed and its installed version falls inside the required range.
  • Conflicts — the unsatisfied edges, each typed missing when the peer is not installed at all and version when it is installed but out of range, with a one-line detail such as app requires peer react (^18.0.0) but 17.0.2 is installed.
  • Resolutions — one entry per conflicted peer: the requirements behind the conflict, the lowest version that satisfies each range, and the least-change suggestion — install the peer when it is absent, or change its version when it is present — always phrased against every listed range, so the fix addresses all of the peer's requirers at once.

Versions are MAJOR.MINOR.PATCH and nothing else. Ranges follow the grammar the tool defines: * accepts anything, an exact version accepts only itself, ^x.y.z accepts the base version up to (but not including) the next breaking bound — with the usual 0.x tightening, so ^0.2.3 stops before 0.3.0 and ^0.0.3 accepts 0.0.3 alone — ~x.y.z accepts patch-level changes within the same minor, and >=x.y.z accepts the base version and anything above it. Anything outside that grammar is a validation error, as are a missing or duplicate package name, a malformed version, a package listing the same peer twice, and a package declaring a peer on itself. Errors name the offending path (for example packages[0].peers[1].range is not a supported range: "=>1.0.0") and no partial explanation is produced. A peer that is simply absent from the tree is not an error — it is a missing conflict. The computation is pure and local: no network, no configuration, no files read beyond the input you pass in.

CLI

bash
npx @reneturcios/peerconflict explain --input args.jsonnpx @reneturcios/peerconflict --version

args.json contains the full arguments object:

json
{  "packages": [    { "name": "react", "version": "17.0.2" },    {      "name": "app",      "version": "1.0.0",      "peers": [{ "name": "react", "range": "^18.0.0" }]    }  ]}

peers defaults to [] per package. The explanation is printed as JSON:

json
{  "ok": false,  "conflicts": [    {      "from": "app",      "peer": "react",      "range": "^18.0.0",      "installed": "17.0.2",      "type": "version",      "detail": "app requires peer react (^18.0.0) but 17.0.2 is installed"    }  ],  "edges": [    { "from": "app", "to": "react", "range": "^18.0.0", "satisfied": false }  ],  "resolutions": [    {      "peer": "react",      "installed": "17.0.2",      "required_by": [{ "from": "app", "range": "^18.0.0", "lowest": "18.0.0" }],      "suggestion": "change react from 17.0.2 to a version satisfying every listed range"    }  ]}

Exit codes: 0 on success, 1 on a runtime error (including an unreadable or invalid input file, or invalid input), 2 on a usage error.

MCP server

bash
npx -y @reneturcios/peerconflict mcp

MCP client config:

json
{  "mcpServers": {    "peerconflict": {      "command": "npx",      "args": ["-y", "@reneturcios/peerconflict", "mcp"]    }  }}

Tools

  • explain_peer_conflict — Explain peer-dependency conflicts in the installed tree.

    • packages (array, required, at least one) — packages as {name, version, peers?} objects; name is unique across the set, version is the installed MAJOR.MINOR.PATCH version, and each peers entry is a {name, range} requirement

    Returns {ok, conflicts, edges, resolutions}.

Docker

bash
docker run -i ghcr.io/cloudcorprecords/peerconflictdocker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/peerconflict explain --input /w/args.json

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # tsx --test test/*.test.ts (pure local, no network)npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

來源:README.md,提交 e19bead

工具

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

版本歷史

1
  1. v0.1.0最新Nov 3, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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