🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

高维围棋实验室 23J1633/GoForge

DeepSeek Harness
23J163323 天前有提交已提供中文文档扫描:高危

在 1 至 19 维棋盘上与 AI 对弈并逐手复盘

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:要求 dsh 0.1.5-rc.1,而最新版为 0.2.1-rc.2;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 23J1633/GoForge
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · security
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

要求 dsh 0.1.5-rc.1,而最新版为 0.2.1-rc.2;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包goforge(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.12.0 · 基线 Node 22.19 满足
✗dsh CLI 依赖要求 0.1.5-rc.1 · 最新 0.2.1-rc.2 不兼容
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/20 02:48:09

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

安装时即执行脚本可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 35 处,展示前 35 条)
  • 读取本地文件
    scripts/patch-dsh-windows.cjs:13
    const original = readFileSync(path, 'utf8')
  • 写入本地文件
    scripts/patch-dsh-windows.cjs:17
    writeFileSync(path, patched, 'utf8')
  • 读取本地文件
    src/main/dsh-runtime.ts:66
    const manifest = JSON.parse(readFileSync(packagePath, 'utf8')) as DshManifest
  • 执行外部命令来自配置/变量
    src/main/dsh-runtime.ts:103
    const child = spawn(process.execPath, [executable, '--profile', 'sdk', '--patch', this.options.patchPath], {
  • 发起网络请求
    src/main/dsh-runtime.ts:130
    await this.request('initialize', {
  • 发起网络请求
    src/main/dsh-runtime.ts:170
    const response = asRecord(await this.request('session/prompt', {
  • 发起网络请求
    src/main/dsh-runtime.ts:190
    await this.request('shutdown', {}, 1_500).catch(() => undefined)
  • 执行外部命令固定命令
    src/main/dsh-runtime.ts:199
    const killer = spawn('taskkill.exe', ['/pid', String(child.pid), '/T', '/F'], { stdio: 'ignore', windowsHide: true })
  • 写入本地文件
    src/main/game-controller.ts:715
    await mkdir(workspace, { recursive: true })
  • 写入本地文件
    src/main/game-controller.ts:716
    await mkdir(dshHome, { recursive: true })
  • 写入本地文件
    src/main/game-controller.ts:738
    await writeFile(join(dshHome, 'settings.yaml'), `${JSON.stringify(settingsDocument, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 })
  • 写入本地文件
    src/main/game-store.ts:28
    await mkdir(this.folder, { recursive: true })
  • 读取本地文件
    src/main/game-store.ts:30
    const document = JSON.parse(await readFile(this.indexPath, 'utf8')) as GameIndex
  • 写入本地文件
    src/main/game-store.ts:48
    await writeFile(temporary, `${JSON.stringify(game)}\n`, { encoding: 'utf8', mode: 0o600 })
  • 写入本地文件
    src/main/game-store.ts:49
    await rename(temporary, filePath)
  • 读取本地文件
    src/main/game-store.ts:62
    const game = JSON.parse(await readFile(this.gamePath(gameId), 'utf8')) as GameRecord
  • 读取本地文件
    src/main/game-store.ts:73
    const files = await readdir(this.folder)
  • 读取本地文件
    src/main/game-store.ts:77
    records.push(JSON.parse(await readFile(join(this.folder, file), 'utf8')) as GameRecord)
  • 删除本地文件
    src/main/game-store.ts:89
    await unlink(this.gamePath(gameId)).catch(error => {
  • 读取本地文件
    src/main/game-store.ts:97
    const files = await readdir(this.folder)
  • 读取本地文件
    src/main/game-store.ts:101
    const record = JSON.parse(await readFile(join(this.folder, file), 'utf8')) as GameRecord
  • 写入本地文件
    src/main/game-store.ts:135
    await writeFile(temporary, `${JSON.stringify({ version: 1, games: this.index } satisfies GameIndex, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 })
  • 写入本地文件
    src/main/game-store.ts:136
    await rename(temporary, this.indexPath)
  • 写入本地文件
    src/main/gamebook-store.ts:141
    await mkdir(join(this.filePath, '..'), { recursive: true })
  • 读取本地文件
    src/main/gamebook-store.ts:143
    const file = JSON.parse(await readFile(this.filePath, 'utf8')) as GamebookFile
  • 写入本地文件
    src/main/gamebook-store.ts:219
    await writeFile(temporary, `${JSON.stringify({ version: 1, patterns: this.patterns } satisfies GamebookFile, null, 2)}\n`, { encoding: 'utf8', mode: 0
  • 写入本地文件
    src/main/gamebook-store.ts:220
    await rename(temporary, this.filePath)
  • 读取本地文件
    src/main/settings-store.ts:201
    const document = JSON.parse(await readFile(this.filePath, 'utf8')) as Record<string, unknown>
  • 读取密钥环境变量
    src/main/settings-store.ts:270
    apiKeyConfigured: Boolean(credential.encryptedApiKey || (/deepseek/iu.test(provider.name) && process.env.DEEPSEEK_API_KEY)),
  • 读取密钥环境变量
    src/main/settings-store.ts:290
    apiKeyConfigured: Boolean(credential.encryptedApiKey || (/deepseek/iu.test(provider.name) && process.env.DEEPSEEK_API_KEY)),
  • 读取密钥环境变量
    src/main/settings-store.ts:303
    apiKeyConfigured: Boolean(credential.encryptedApiKey || (/deepseek/iu.test(provider.name) && process.env.DEEPSEEK_API_KEY)),
  • 读取密钥环境变量
    src/main/settings-store.ts:317
    return /deepseek/iu.test(providerName) ? process.env.DEEPSEEK_API_KEY ?? '' : ''
  • 写入本地文件
    src/main/settings-store.ts:333
    await mkdir(join(this.filePath, '..'), { recursive: true })
  • 写入本地文件
    src/main/settings-store.ts:336
    await writeFile(temporary, `${JSON.stringify(document, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 })
  • 写入本地文件
    src/main/settings-store.ts:337
    await rename(temporary, this.filePath)
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis-plugin-group@deepseek-ai/dsh@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-attachment@deepseek-ai/dsh-authorization@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-compaction@deepseek-ai/dsh-fs@deepseek-ai/dsh-hook-protocol@deepseek-ai/dsh-jobs@deepseek-ai/dsh-output-retention
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 1至19维棋盘对弈
  • AI对弈
  • 逐手复盘

Electron 桌面应用,用 DeepSeek Harness 工作流下 1–19 维 AI 围棋,支持评分、复盘与棋谱总结。

README

由 DeepSeek 最新模型翻译生成
GoForge · 高维 AI 围棋实验室 GoForge 是一款 Windows 桌面应用,通过 DeepSeek Harness 驱动 AI 进行 1–19 维围棋对局。它把棋盘、双方模型、实时工作流、评分和逐手复盘放在同一个窗口中。 GoForge is a Windows desktop app for AI Go matches on boards from 1 to 19 dimensions, powered by DeepSeek Harness. It brings the board, both players, live workflow activity, scoring, and move-by-move replay into one window. 功能 - 1–19 维棋盘:选择维度与边长,查看二维切片、旋转三维投影,并调整高维切片坐标。 - 大棋盘存储:空间适中时保存完整棋盘;空间过大时只保存已落子坐标,避免分配全部交叉点。 - DeepSeek Harness 工作流:显示双方模型消息、工具事件、Harness 轨迹和 Token 统计;每方使用独立会话与棋局工作区。 - 分层模型配置:按提供商、接口格式、凭据和模型配置,支持自定义 Base URL 及多个模型。
展开完整文档(README 剩余 1 节)
GoForge · 高维 AI 围棋实验室

GoForge 是一款 Windows 桌面应用,通过 DeepSeek Harness 驱动 AI 进行 1–19 维围棋对局。它把棋盘、双方模型、实时工作流、评分和逐手复盘放在同一个窗口中。

GoForge is a Windows desktop app for AI Go matches on boards from 1 to 19 dimensions, powered by DeepSeek Harness. It brings the board, both players, live workflow activity, scoring, and move-by-move replay into one window.

功能

- 1–19 维棋盘:选择维度与边长,查看二维切片、旋转三维投影,并调整高维切片坐标。
- 大棋盘存储:空间适中时保存完整棋盘;空间过大时只保存已落子坐标,避免分配全部交叉点。
- DeepSeek Harness 工作流:显示双方模型消息、工具事件、Harness 轨迹和 Token 统计;每方使用独立会话与棋局工作区。
- 分层模型配置:按提供商、接口格式、凭据和模型配置,支持自定义 Base URL 及多个模型。
- 计时、评分与复盘:时限不会截断模型思考;完局后展示综合分、雷达图和明细。历史记录保存棋盘、着手、轨迹和 Token 用量。
- 棋谱总结:只分析完整对局;棋谱范式需在不同对局中重复出现才会收录,并累计出现次数。
- 长上下文管理:通过 Harness 压缩与新会话机制控制上下文,同时重发当前规则和棋盘状态。

下载与启动

从 GitHub Releases 下载最新 Windows x64 安装包。在“模型设置”中添加提供商、Base URL、接口格式、凭据和模型,再为黑白双方选择模型。API Key 通过 Electron safeStorage 加密后保存在本机。

开发

环境要求:Windows、Node.js 22.12 或更新版本、npm。

~~~powershell
npm install
npm start
npm run package

npm start 会构建页面并在 Electron 窗口中启动应用;npm run package 会生成 Windows 安装包,输出到 release/。

工作流示意

规则、评分与声明

棋串按各轴距离为 1 的点相连,支持提子、自杀禁着、单劫和停手。大规模稀疏棋盘使用已落子邻域中的可确认空点作保守估算,并在界面标注。评分描述单局可观察到的表现,不代表模型通用能力排名。棋谱范式只有在多局复现后才收录,出现次数不等于胜率优势。

GoForge 使用 Electron、React、TypeScript 和 Vite。Electron 主进程通过 stdio JSON-RPC 启动 DeepSeek Harness CLI,每局使用独立工作区。第三方声明见 NOTICE.md。棋盘逻辑为 GoForge 自有实现,未包含 GOs-ex 源代码。

Features

- 1–19 dimensional boards: Choose dimension and side length, inspect 2D slices, rotate the 3D projection, and navigate higher-dimensional slices.
- Scalable storage: Keep a complete board for reasonable sizes and switch to sparse occupied-coordinate storage for larger spaces.
- DeepSeek Harness workflows: View model messages, tool events, Harness traces, and token usage. Each player has an isolated session and game workspace.
- Hierarchical model setup: Configure providers, API formats, credentials, and multiple models, including custom base URLs.
- 时间控制、计分与回放:时间限制不会打断模型执行。对局结束后会给出总分、雷达图和详细数据。历史记录保留局面、落子、轨迹和 token 用量。
- 模式摘要:只分析已完成的对局;某个模式要在多局对局中反复出现后才加入,并记录其重复次数。
- 长上下文处理:Harness 压缩和会话滚动负责管理上下文,同时提供当前规则和棋盘状态。

下载与运行

从 GitHub Releases 下载最新的 Windows x64 安装包。在 Model Settings 里添加服务商、base URL、API 格式、凭据和模型,然后为每一方选择模型。Electron safeStorage 在本机加密 API 密钥。

开发

环境要求:Windows、Node.js 22.12 或更高版本,以及 npm。

~~~powershell
npm install
npm start
npm run package

npm start 会构建 UI 并在 Electron 中启动应用。npm run package 会在 release/ 下生成 Windows 安装包。

工作流概览

规则、计分与声明

棋子通过任意轴上相隔一步的点相连。规则包括提子、禁止自杀、简单劫和停一手。对于大型稀疏棋盘,应用会保守估算已落子周围的确定空点,并标注该估算值。分数描述单局对局中可观察到的结果,不是通用的模型排名。模式要在多局对局中反复出现后才进入库中,重复次数也不代表胜率优势。

GoForge 使用 Electron、React、TypeScript 和 Vite。Electron 主进程通过 stdio JSON-RPC 启动 DeepSeek Harness 命令行,每局对局使用独立工作区。第三方声明见 NOTICE.md。棋盘逻辑由 GoForge 实现,不包含任何 GOs-ex 源文件。
预览分享卡片长什么样 ↓23J1633/GoForge
分享 · DeepSeek Harness Hub
23J1633/GoForge

在 1 至 19 维棋盘上与 AI 对弈并逐手复盘

回到顶部