Skip to main content
Glama
ForgeaX-Games

@forgeax/dsh-game

Official

@forgeax/dsh-game

npm ci DSH bundle platform

在 DeepSeek Harness 中进行 ForgeaX 游戏开发。 这是一个 DSH bundle:将其安装到 profile 中会添加一个补丁层,把已发布的 @forgeax/game MCP 服务器、其随附的 ForgeaX 技能以及工作区守卫接入你的 DSH 会话。

它不包含任何游戏逻辑,也不包含 ForgeaX 的副本。它会解析 pnpm 安装在其旁边的 @forgeax/game 包,验证其身份,并将其连接起来。

你将获得

层面

效果

工具

mcp__forgeax__forgeax_status_lite、mcp__forgeax__forgeax_run_current_game

技能

forgeax-game 以及解析包中随附的每个 forgeax-engine-* 技能,在启动时注册到 ctx.skills

守卫

所有 target_dir 不是当前会话 cwd 的 mcp__forgeax__* 调用都会被拒绝。没有可与之比较的会话 cwd 的调用(Code Mode、嵌套 dispatch)在存在性检查后会被允许,并会告知模型其未被完全检查

你不要运行 forgeax-game devkit install。此 bundle 直接注册技能;如果再运行安装程序,只会在你的仓库中留下 DSH 永远不会读取的重复副本。

Related MCP server: dsh-orchestrator

要求

  • macOS arm64、Linux x64 或 Windows x64。 此 bundle 是纯 JS,不声明 os/cpu;它从 @forgeax/game 继承平台支持范围,其 @forgeax/game-runtime 为每个平台提供一个包含原生二进制的 optionalDependencies 条目。你的机器只会安装与之匹配的那一个。没有已发布变体的平台(Intel Mac、ARM Linux、ARM Windows)可以正常安装,但运行时启动时会失败,这与 @forgeax/game 单独使用时的行为一致。

  • pnpm 在 PATH 中。 dsh plugin 是 pnpm 的薄转发器;没有 pnpm 时它以 127 退出。

  • Node ≥ 22,与 DSH 一致。

安装

dsh plugin 安装到指定的 profile 中并自动激活:由于此包声明了 dsh.bundle,将其添加为依赖项也会把它追加到该 profile 的 dsh.profile.bundles 层堆栈中。

dsh plugin --profile web add @forgeax/dsh-game

--profile 是必需的——DSH 没有隐式默认 profile,层堆栈是按 profile 各自维护的。对每个需要 ForgeaX 的 profile 重复该命令。

然后重启 dsh。 bundle 层只在启动时读取一次;只有 profile 自己的用户补丁文件会被监视。新添加的 bundle 在下次启动前不会生效。

重启后验证:

dsh --profile web
# then, in the session:
#   ask for the ForgeaX status — the model should call mcp__forgeax__forgeax_status_lite

配置

此 bundle 插入的四行全部使用命名空间,因此永远不会与其他 bundle 冲突:

Row id

Module

用途

forgeax-game.launch-spec

@forgeax/dsh-game/launch-spec

解析并验证 @forgeax/game,发布 forgeaxGameLaunch 服务

forgeax-game.mcp-client

@deepseek-ai/dsh-mcp-client

stdio 桥接,serverName: forgeax

forgeax-game.skill-source

@forgeax/dsh-game/skill-source

注册包的技能

forgeax-game.workspace-guard

@forgeax/dsh-game/workspace-guard

工具策略:在 tools/pre-execute 上拒绝,在 tools/post-execute 上报告无法验证的调用

解析器本身位于第五个模块 @forgeax/dsh-game/forgeax-package 中,该模块不导入任何框架。溯源工具可以从已安装的 profile 中加载它;在该 profile 中,DSH 包是 peer 依赖,profile 永远不会安装它们的第二份副本。

要修改某些内容,请在 profile 的用户补丁文件中添加一行 相同 id 的行。补丁会替换目标行的整个 config——不存在深度合并——因此你必须重新声明要保留的每个字段。例如,要缩短工具调用超时:

# $DSH_HOME/profiles/web/cordis.patch.yml
- insert:
    - id: forgeax-game.mcp-client
      name: '@deepseek-ai/dsh-mcp-client'
      inject:
        - forgeaxGameLaunch
      config:
        serverName: forgeax
        transport: stdio
        command: !!js ctx.forgeaxGameLaunch.spec.command
        args: !!js ctx.forgeaxGameLaunch.spec.args
        cwd: !!js ctx.forgeaxGameLaunch.spec.cwd
        env: !!js ctx.forgeaxGameLaunch.spec.env
        failOnStartupError: true
        toolCallTimeoutMs: 120000
        reconnect:
          enabled: true

值得了解的限制

  • 仅限工具。 DSH 的 MCP 客户端桥接的是工具,而不是资源。forgeax://status 在 DSH 会话中不可达;mcp__forgeax__forgeax_status_lite 返回相同的状态。已注册的技能会说明这一点,因此模型不会尝试访问该资源。

  • 没有传递性 bundle。 只有直接列在 dsh.profile.bundles 中的包才会贡献补丁层。依赖此 bundle 的 bundle 不会继承其行。

  • 一次性的 ForgeaX 操作留在 CLI 上。 创建游戏、切换活动游戏和升级插件属于 forgeax-game <init|use|doctor|devkit|upgrade> 子命令,而不是 MCP 工具。

故障模式

症状

原因

dsh plugin 以 127 退出

pnpm 不在 PATH 中

干净安装后运行时无法启动

此平台没有 @forgeax/game-runtime 变体(Intel Mac、ARM Linux、ARM Windows)——目前尚未发布任何变体

pnpm 拒绝 git 托管的 spec 的 prepare

在 <profileDir>/pnpm-workspace.yaml 的 allowBuilds 下将其加入白名单(pnpm ≥ 10)

安装后 ForgeaX 工具缺失

dsh 未重启

启动时出现 launch-spec 错误

解析到的 @forgeax/game 与固定版本不匹配,或缺少随附的技能资源——请重新安装,而不是绕过打补丁

failOnStartupError 特意设为 true:MCP 服务器从未启动的 ForgeaX 会话是损坏状态,而不是降级状态;启动时错误比第一次工具调用时出现的谜团更容易排查。

安全

  • 子进程以 env: {} 启动。DSH 会清除父环境,并在清除之后合并 config.env,因此其中列出的任何内容都会重新注入 harness 刚刚移除的机密。

  • 工作区守卫在 realpath 解析后,将 target_dir 与会话 cwd 进行比较——绝不使用字符串前缀比较,因为符号链接和 .. 会使前缀比较失效。

  • 此 bundle 不会读取、存储或记录任何 API 密钥、令牌或机密值。

更新日志

所有用户可见的变更都记录在 CHANGELOG.md 中。如需贡献,请参阅 CONTRIBUTING.md;如需报告漏洞,请参阅 SECURITY.md。

许可证

MIT

Related MCP Connectors

Related MCP Servers