Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

jev-sts2-agent

《Slay the Spire 2》游戏 Agent:C# 模组读取实时状态 → Node.js 组织规则与上下文 → Jev 制定回合计划 → 模组执行 → 重新观察。 游戏自行结算和渲染,正常循环不要求窗口置顶。

目前是研究原型,尚未通关;第 45 局标准铁甲战士 A0 通过第一幕,最终在第二幕第 21 层失败,453 分。已修复阶段预测重复造成的请求超限,并用终局历史修正过宽的未知范围,恢复对已知致死伤害的判断。本局复盘与整局进展记录结果及验证边界。首幕 Boss 录制、剪辑与视频发送已取消,常规循环只记录结构化状态与决策。

当前按用户要求使用 OpenRouter typesafe/jev-1.13,自动回退关闭。已接入五个角色的策略参考、115 个怪物的行动图、招式关联规则、独立有序候选和方案比较分歧记录。最新修复覆盖目标相关的命中次数,并将相邻换序扩展到采样方案,避免只评到一组牌的较差顺序;等价副本按实际顺序去重。同局面回放已选出可行收尾,仍有比较分歧,尚不能证明胜率提高。

联机接入:先在游戏内加入联机并进入一层,再运行 npm start。context.18 通过游戏的本机网络身份选择玩家,结束回合经原生网络动作队列同步,等待队友时持续观察。上下文包含队友公开状态与按玩家计算的意图预览;不读取队友手牌,不把全队攻击预览当成本机必受伤害。队友改变局面会使旧计划重新评估。已完成编译与离线检查,真实联机的出牌、同步和房间推进尚待验证;不会自动加入房间。

环境与启动

  • Windows、Node.js(本机使用 v25.8.1)、已安装的游戏及兼容 CLI 模组。
  • 当前支持游戏 v0.111.0,模组构建 0.111.0-context.18。安装与构建步骤见 模组说明。只有重建模组或使用窗口诊断工具才需要 .NET 开发工具。
  • Jev 的 Vercel AI Gateway、OpenRouter 或 TypeSafe API key。项目只依赖 Ajv 做 JSON 校验,无 Python 服务、向量数据库或视觉模型依赖。
npm ci
Copy-Item .env.example .env

在本地 .env 填入配置,例如:

JEV_PROVIDER=openrouter
JEV_MODEL=typesafe/jev-1.13
OPENROUTER_API_KEY=your-openrouter-key
JEV_PLAN_ASSESSMENT_LIMIT=24
JEV_FALLBACK_PROVIDER=

当前运行使用 OpenRouter 原生 Decisions,回退关闭。也支持 TypeSafe 的 System One API 和 Vercel 原生 Evaluation API,配置见 .env.example。可选回退只处理传输、额度或服务故障,遵守 Retry-After 和短暂故障冷却;上下文错误、低置信度或不理想的选择不触发回退。各次请求记录实际提供方和模型。凭据、原始运行记录及临时文件不提交 Git。

JEV_PLAN_ASSESSMENT_LIMIT=24 限制每次规划中付费评分的候选方案数,保留原计划、结束回合与同组牌的换序,为不同的可计算击杀结果预留最多三分之一名额,其余资源组合做确定性采样。当前被评分或比较的方案优先使用普通具名 JSON,按完整请求大小分批;只有单个完整判断仍超限才使用无损压缩。状态和规则仍完整,后续方案比较仍双向进行;候选采样可能遗漏更好方案,可读呈现也可能增加费用。留空保留全部生成候选。正常计划步骤经过原生核对后直接续接,无需每张牌重新请求。

输入与执行核对共用游戏语义:已核实的 Happy Flower 激活动画显示值会还原为真实回合计数,原始模组快照仍保留。生命、能量、实际计数、状态与合法动作变化仍会使旧答案失效;发送游戏命令前再次核对完整状态。

已确认出牌后的确定变化可以延续原回合计划:Tremble 的易伤进入有序效果计算,Tuning Fork 未触发时的技能计数,以及 Pocketwatch 前三次出牌的正常计数增长,不再单独引起重新规划。触发效果、未知计数、新牌或其他未解释变化仍需检查;历史核对没有额外付费调用。第 42 局首领战的 Taunt → Pillage 计划曾因 Pocketwatch 计数而改打别的目标,现已用同形态状态验证计划能够续接。

启动已启用模组的游戏后:

node src/mod_client.mjs ping
npm run mod:state         # 只读原生状态
npm run context:preview   # 只读组织好的上下文,不调用模型
npm start                # 会操作游戏,仅在需要开始或继续实战时运行

决策方式

攻略中最值得反复比较的是:战后拿牌与跳过、商店删牌与购买、能否承受下一场精英及相应路线、营地治疗与升级,以及战斗中为了活过当前回合而安排的出牌顺序和药水。每张新牌都应填补可指出的缺口;跳过不会失去金币,却能让已有关键牌更快进入手牌。删牌会失去被删牌的功能,早期缺伤害时不应机械地删攻击牌;等当前伤害够用,再严格审查重复输出。卡组没有通用的目标张数,按当前牌组的抽牌、能量、前几回合输出、持续防御和已揭示首领衡量边际价值。构筑与跳牌、抽牌循环与删牌、按近期战斗分配卡牌任务、路线选择。

实时输入包含生命、能量、各牌堆、当前费用和目标预览、药水、遗物、敌人意图、地图及合法动作。本地 Spire Codex v0.111.0 补充关联规则;当前原生数值优先于 Wiki 基础数值。

预测按决策阶段组织:构筑评估不带孤立出牌预测;回合规划和完整方案比较使用各方案自己的有序预测;结束回合检查保留当下的单动作预测,不重复展开空计划。全部原生预览、合法动作和规则仍保留。每批评分先核对所有请求容量再调用模型,维持 90 KB 本地上限和 24 项评分上限。第 45 局第二幕两个原生停点通过方案容量回放及各阶段回放,未用模型费用或游戏动作来验证。

已核实规则按触发时机和受影响字段参与计算:拾取/奖励阶段的遗物(包括 Lead Paperweight)不会抹掉无关的当前战斗算术;Permafrost 缺少首次触发标记时,仅使涉及 Power 的方案的格挡与生命结论未知。Entangled 加费与 Slither 本次抽牌随机出的费用直接使用原生值;Territorial 的力量在敌方回合结束后获得。Expect a Fight 保留当前原生格挡,只对前序动作改变的力量追加差值,并处理负力量和 Frail 取整;Wiki 不覆盖当前预览。完整规则不匹配或其他效果尚未计算时仍明确保留未知。离线规则核对使用历史快照、固定版本 Wiki 和同版本原生代码,无游戏命令或模型调用。

策略知识 将攻略建议与原生规则分开:每个组合记录前提和代价,不预设固定流派。怪物图区分固定顺序、条件、随机权重、重复限制和资料缺口;只根据可见意图关联后续可能行动。已提取的生成牌与能力调用补充规则、数量、目的地或作用对象;条件、重复、阶段中断和最终施加结果仍有明确边界。

路线除了各类房间的数量范围,还提供最多五条具体示例,分别体现精英数量、营火、商店和普通战斗机会,并列出同一路径上真实共存的数量与顺序。示例不指定首选路线,也不把问号房当成确定奖励;Jev 仍选择下一节点,后续分支保持开放。

商店先由 Jev 条件选择具体要删的一张牌,再比较删牌、购物与留钱。JSON 列出实际价格、已有副本、购物后余额、能否同时删牌及失去删牌机会的购买;升级、附魔和 Eternal 分别处理。独立评分偏向边际却仍被选中的付费牌,会再与留金离店直接比较;如果正反顺序不能一致支持购买,就保留金币并继续评估删牌。第一幕若卡组尚无非基础攻击牌,准备离店或一笔支出将使当前攻击牌买不起时,还会与实际可买的攻击牌双向比较。购买会耗掉删牌预算,或准备在仍能删牌时直接离店,也会追加交换选项顺序的比较;意见冲突保留原选择。确认买下删牌服务后,核对原生选牌界面并续接同一目标。攻略提供条件性建议,不固定删 Strike,也不强制删牌。历史回放已出现选择变化,但仍有低置信度与顺序分歧,尚无胜率改善证据。

战后牌不再默认拿取。Jev 对所有选项的独立评分只作参考;若先选中一张牌,就把该牌与跳过放在正反两种选项顺序中直接比较。两问一致支持跳过才覆盖拿牌选择;两问一致支持拿牌则拿牌,意见冲突保留原来的全菜单选择。第 42 局先选中 Shrug It Off,却因三张候选独立评分偏低而未经过直接比较就跳过;同局 Flame Barrier 的正反比较都支持拿牌,又被额外的概率阈值否决。现已移除这两道未经胜率校准的自动否决,同时保留跳过边际牌的实际选择空间。JSON 明示起始牌组的攻击缺口和可选攻击牌,但不把牌型计数当成伤害总量。Untapped 的构筑指南、Jorbs 的近期战斗任务框架与Baalorlord 的抽牌循环分析是定性依据;代码修正仍需后续实战检验。

已揭示的首领会在选牌和商店阶段附带对应的条件性攻略:例如 Vantom 的 Slippery 会让多段攻击的命中次数成为明确的备战因素。攻略只说明机制和选牌目的;实际层数、伤害和出招以模组实时状态为准。

第 38 局首领战的复盘发现,原生 Skip 不会移除奖励导致随后又拿牌,且 Jev 曾放弃空药水位下的免费药水。现在已确认跳过的同一奖励不再复选;无竞争的免费金币与药水先领取。战斗规划也把一条不降低已计算存活 HP 的最高已计算伤害方案送入最终比较,修正高伤害序列被独立评分遗漏的问题。

第 39 局的复盘记录了四次真实跳过牌奖励,也发现边际付费牌仍可能被买入,以及首领前 32/80 HP 时把 Rest 的 24 HP 换成小幅升级。商店现复核边际买牌与留金;营地 JSON 明示回血后的 HP 和已知下一格首领,并在选择升级时双向比较具体升级与 Rest。若休息所得 HP 不少于现有 HP,即使下一格不是首领也复核,意见冲突时优先保留生存余量;只有两种顺序都支持升级才在这种低生命局面继续 Smith。相同历史营地状态的开发回放改选 Rest;尚无通关率改善结论。

第 40 局在第一幕第 17 层 Vantom 战败,首领仍有 101 HP。第 2 层曾跳过 Pommel Strike,第 6 层商店有 Twin Strike 却买了 Taunt、Tremble 和两瓶药水。修订后的同局面离线回放(不发送游戏指令)中,第 2 层两种顺序都改选 Pommel Strike,第 6 层进店两种顺序都改选 Twin Strike;商店离开前的选择仍有分歧。回放只验证同一输入下的 Jev 决策变化,不能推断整局的胜负。

第 41 局第 11 层在 18/80 HP 时选择了升级,尽管 Rest 可回 24 HP;接下来一场战斗曾降至 5 HP。把该营地的原始状态及截至当时已确认的记忆放进离线回放后,新复核在交换选项顺序的两问中都选择 Rest;本局第 13 层 11 HP 时,新复核也把 Smith 改为 Rest。最后仍于第 17 层 Kin 首领战败,Priest 剩 42 HP。第 10 回合手握 Mangle 时,原有条件推演漏掉了它的临时力量降低:实际原生局面为我方 6 HP、敌方攻击 12、敌方力量 4;打出 20 伤害并使其本回合失去 10 力量,按无其他攻击修正的当前意图,攻击应从 12 降到 2。我方条件性结束回合 HP 因而为 4,而非旧推演的 -6。现已把该效果接进单动作和整回合条件推演,已有弱化、易伤、伤害防止等使显示数值不能直接相减时仍标为未知。同一原始局面及截至当时的记忆做离线 Jev 回放,原选择 Whirlwind 后结束回合,新选择 Mangle 后结束回合;这只证明当前输入改变了这次选择,不能推定实战胜负。回放证据。临终前 6 HP、0 能量时,原生预估结束回合会损失 12 HP 致死,唯一其他合法动作是喝 Entropic Brew 生成随机药水;旧规划仍结束回合。现在已知结束回合必死而有合法药水时,先使用一瓶并重新观察;同一历史局面的离线回放改为喝 Entropic Brew。随机生成的药水和后续胜负未被回放推定。

第 43 局暴露出另一个确定数值错误:Ceremonial Beast 的 Plow 已在模组状态中明确给出 150 HP 眩晕阈值,旧推演却只把连续攻击相加,没有在跨阈值后取消敌人的当前攻击。首领 175 HP 时,Strike → Stomp+ → Strike 的 27 点已知伤害会使其降至 148 HP;旧上下文仍计算我方承受 24 点攻击,新上下文将条件攻击记为 0。同一原生截点的只读 Jev 回放从 Strike → Stomp+ → Defend+ 改为跨阈值攻击序列,未发送游戏指令。相同规则还覆盖 Shriek;其他受击后会改变敌人血量、格挡或意图而尚未模拟的能力,不再输出确定生命结论。第 12 层 30/91 HP 时 Smith 一张 Defend 的问题也扩大了营地生存复核范围。原生与回放索引。

统一上下文区分观察、规则、相关历史、意图、条件分析和未知信息。每次模型请求自包含,不依赖 Jev 跨调用记忆。历史默认保留当前回合、上一轮敌方响应,以及仍影响当前决策的计数、延迟或牌序信息。另用每个敌人的累计生命伤害与已观察到的倒地次数概括战斗进展;复活、治疗和当前生命仍需一起判断,不把临时击倒算成永久移除。

战斗快照逐项核对完整玩家记录、模组提供的每个战斗字段、逐目标预览、牌堆、永久卡组与原生规则。短 ID 替换可逆;当前事实摘要在压缩、可读展开和模型编译后再次验证,字段被改写或丢失即停止发送。uncertainty.observation_integrity 保留原始快照哈希、检查范围和已知归一化说明。它验证的是模组已提供事实的忠实传输,不能证明模组提取了游戏内部的全部机制。

当前数值仍在 observation 中;未来结果单独放在 analysis。攻击次数缺失不补成 1,伤害缺失不补成 0;显示攻击合计不等同于最终失血。缺少原生格挡预览时只接受完整无条件规则,不截取条件牌的第一句。单动作和有序方案均列出 calculation_coverage:未知能力、附魔、遗物、自动单位或未实现的动作效果会使相关未来合计保持 null,同时保留完整实时规则。已移除不考虑顺序与触发的“剩余手牌足以击杀”计算。条件算术仍不是完整模拟器,未知不代表没有收益,也不能作为自动否决一个方案的理由。

Jev 在代码提供的目标与候选空间中选择构筑方向、回合目标、准备动作、顺序和完整方案。回合目标是可修订的意图,服从整局价值。普通连续出牌沿用计划,原生结果匹配已核实的降费或精确敌方能力变化时也保留原顺序;后者还要求目标生命、格挡与账目一致。抽牌、变形、回收/选牌及未计算或不吻合的变化,在原生结果可见后继续规划。框架与候选生成由代码定义,模型负责其中的判断;当前没有完整的跨回合战斗求解器。

完整方案包含从不同合法起手独立展开的有序段,也保留模型原提案及局部替换。搜索按起手和长度分配候选,记录搜索与采样上限,不按伤害评分预先筛掉策略。Jev 先独立评分,再比较不同卡牌/目标分配、结束边界和保留资源的候选;同一资源安排的排列和相同副本共用入围名额,保留评分最高的具体方案。原生属性不同的副本、用牌数量、目标及绑定升级/后续消费者仍分开处理。入围方案与原提案交换 A/B 位置比较,按对齐后的概率汇总偏好,记录原始分歧和并列。结束回合前的追加动作也经过双向比较。

候选还核对前序动作后的目标是否仍可用:若完整已知计算确认目标生命已耗尽,后续不能继续指定它;确认全部敌人耗尽后不再安排手动动作。存在未计算效果、抽牌或死亡/复活规则时保持未知,实际出牌后仍重新观察。第 37 局的反例与修正没有新增付费回放。

多敌人的方案另补充同一组有序动作集中到每个共同合法目标的候选,避免采样只留下分散攻击。它不替 Jev 选目标;第 38 局反例在相同 24 项评分上限下,单次回放从分散攻击改为先施加易伤、再两次攻击同一目标,条件计算少受 6 点伤害。尚不能推断整局胜率。

方案也区分战斗完成与结束回合:若最后的击杀结束战斗,不再承诺正常回合末治疗/伤害或敌方行动,战后效果另按自身规则处理。仍有未计算效果时保留条件性说明,不把耗尽生命等同于确认胜利。实际再生药水反例已核对,模型回放因超时未完成,尚无新的决策改善结论。

比较允许回答“没有明确优劣”。当对齐后的该结果占优时,两边获得相同支持,避免把少量剩余 A/B 概率重新放大成偏好;有依据的生存约束优势仍优先,最终同分保留原计划。这不消除顺序偏差,也不把置信度当正确率。

方案判断按实际编译后的请求大小分批,保留完整局面与规则。正在评分或比较的方案优先使用普通具名 JSON,包括嵌套目标和完整说明,减少模型解读表格与文本引用的负担;只有单个完整判断仍超限时,才使用可逆压缩。其他重复记录继续共享字段,每份编译结果核对完整还原。日志分别记录合格、已评分和实际进入成对比较的方案数。

观察段明确给出剩余手牌、能量、当前抽牌池及费用范围;比较时列出另一方案所用但本方案尚未消耗的手牌。已核实的确定性变形还列出声明顺序下的作用对象、未受影响牌及本地替换规则,明确零对象,并将会被替换的旧牌从后续费用预留中分开。替换牌的基础费用与规则不冒充未来原生预览;它们描述继续安排本回合的机会,不保证后续合法性或最终效果。原局面回放由打光攻击后空变形,改为保留一张攻击和 1 能量后再变形,仍没有整场获胜证据。独立方案比较不继承初始提案的局部目标偏好;已执行的准备和当前原生状态仍会保留。

观察节点还保留已知前缀的攻击覆盖账目:当前攻击、格挡、生命余额和仍需缓解的缺口,与剩余能量一起呈现。完整回合末结果继续标为未知;这部分计算不包含未结算的抽牌、自动效果或后续动作,不把保留响应机会等同于保证存活。

回合末检测同时覆盖常规时点和“If you end a turn”这类条件句。向敌人造成的延迟伤害会关联伤害防止、生命阈值、阶段/死亡反应及剩余敌方行动;当前显示攻击保留为基准,未计算的连锁反应不再给出确定的生命或敌方响应。真实反例中,Parrying Shield 触发 Plow,原估算 42 生命、实际 49;修复后明确为未知。条件是否满足、其他钩子顺序及随机目标仍未完整模拟;补做的 OpenRouter 回放已选择结束回合。

能量预留、候选描述和方案比较共用一次有序状态计算。动作旁区分当前观察费用与序列中的预留支出;单独的费用折扣不再抹掉固定伤害预览。已核实的升级、属性变化和 X 费支付只影响后续动作;例如 Inflame/Footwork 的实时属性增益可以与后续攻击/防御按顺序比较。实际出牌后仍读取原生状态,属性变化会触发计划复核。完整方案列出消耗/保留的药水、格挡的有效期、已计算的伤害与倒计时、需要重新观察的位置。未计算的状态变化不会凭空生成新牌或确定的结束回合结果。

易伤的有序变化与 Slippery/Buffer 计数合并计算,主结果保留条件范围;Slow 按原生显示的百分比计算,每张牌结算后增加 10 个百分点,只影响后续攻击,已有增幅不重复乘算。精确匹配的 Slow 变化也能保留原计划,其他变化继续复核。真实状态与回放验证了计算与续接,但 Jev 仍可能选择较差顺序。敌人生命的取整区间不会抹掉仍能独立确定的当前攻击和受伤。准备动作也必须为已知后续动作留足能量。回收和洗牌节点区分原始牌堆、此前计划出牌的通常去向,以及仍在结算的牌;例如先打防御再用 Headbutt 回收,可能是在准备下一回合,不能只看即时格挡。

效果表明确区分已生效能力与尚未打出的牌/药水,提供来源、作用对象、触发时机和失效时间。例如反伤按命中触发,Flame Barrier 持续到敌方回合结束,One-Two Punch 要在玩家回合结束前获得攻击消费者。方案同时列出已计算的回合末伤害、未计算效果以及临时增益的使用情况。

命中次数也属于伤害依据:Dismantle 根据目标的当前易伤及此前已核实的施加顺序判断一次或两次,伤害、反伤和生成牌账目共用该次数。其他未能计算的攻击保留敌人生命与响应未知,不能按零伤害处理。修正证据

自动药水在持有时就已待命。瓶中精灵可在普通死亡检查时被消耗并回血;仅靠伤害总和无法确定复活后还会受到多少伤害,因此相关最终生命与生死结论保持未知,并列出可能的药水消耗。Sandpit 的强制死亡会跳过该救命机制。

已核实的牌堆触发条件与牌面规则分开表示:Howl from Beyond 需要在消耗牌堆,I Am Invincible 需要在抽牌堆顶。牌堆成员不代表已知牌序,自动出牌仍保留未模拟标记。营火先选择具体升级再比较实际治疗;完全相同的副本共用一个升级选项,只升级其中一张,仍核对原实例执行。

Decimillipede 的已核实倒地规则会取消当前攻击,复活则依赖其他节段存活。联合方案明确显示全部节段倒地是否阻止复活;已经倒地但显示 Heal 的节段也保留后继分析。未知死亡钩子仍不作为确定击杀,公开行动图不预测随机下一招。

条件算术只覆盖已核实的机制。未知触发、随机抽牌、未揭示房间和未来敌人随机动作保持未知;局部数字不能当成完整模拟。命令结果不明确时停止并保留待核对状态,不自动重发。

每次已执行的战斗动作还会把可直接验证的预测与下一份模组状态对照,逐步保存 estimate-audit.json,在 session.json 汇总检查数与不一致数。不完整的敌方回合、未知伤害和战斗结束动画不会被误判为数值错误。这项审计只覆盖实际执行且可观察的结果;未选择方案的反事实计算仍需用历史局面回放核查。第 44 局复核中,26 次回合末生命预测和总计 83 个可比较数值均与后续原生观察相符,但首领战仍失败。

历史回放

无需模型额度即可检查旧战斗状态到最终请求的事实保留,并保存原生输入和编译请求样本:

node scripts/audit_combat_context.mjs --output run-artifacts/context-audit run-artifacts/<session>

该命令不连接游戏、不读取密钥、不调用模型。存在已执行命令和动作后状态时,还用当前 Harness 重算该命令,核对可观察的格挡、实际掉血和结束回合生命;动画中间态、未知预测与未选择方案不作为匹配样本。结果与范围见事实保留证据和规则与数值核对。这项检查不能代替原生提取器核验或模型决策质量评估。

最新观察后续接与伤害账目回归使用已接触过的旧局面,记录方案排序、抽牌时的资源与实际开销。这不是新的独立测试集。知识与规划回归、有序依赖结果、效果时序报告继续保留。原始历史存于本机 run-artifacts/,不随仓库分发;回放只向 Jev 请求决策,不连接游戏命名管道。冻结同时覆盖代码、schema 与本地 JSON 知识源。

# 从开发局的某一步提取当时观察与此前已确认的记忆
npm run replay -- collect --split eval/sequence-split.json --output run-artifacts/replay-example --step run-artifacts/<session>/step-0001 --id example

# 对同一个快照运行当前代码;结果包含原始请求、模型返回和有序方案
npm run replay -- replay --split eval/sequence-split.json --output run-artifacts/replay-example --case run-artifacts/replay-example/cases/example.json

可用 --code <旧版本目录> 对比旧 harness,用 --repeat 2 保留重复结果。快照带有输入哈希;留出集在代码冻结后运行。评估比较具体规则、顺序、资源和后果,不能把“选择变了”或模型高置信度直接当成改善。

主循环和回放保存实际请求及完整响应,包括提供方返回的概率分布与置信度。Vercel 将 TypeSafe 置信度放在响应元数据中,适配层将其映射到相应判断,原始响应仍完整保存。未返回的置信度或上游具体版本保持未知;评分、偏好与置信度都不是通关概率,也不保证选择正确。

代码结构与检查

位置 职责
src/mod_client.mjs、src/mod_loop.mjs、src/observation_audit.mjs 模组通信、执行核对、数值对照与运行记录
src/decision_context.mjs、src/combat_observation.mjs、src/context_compiler.mjs、schemas/ 原始战斗事实核对、状态契约、记忆、模型上下文与容量管理
src/forecast_coverage.mjs、src/combat_arithmetic.mjs 条件算术、计算覆盖范围与未知值传播
src/rule_reference.mjs、src/rule_scope.mjs、src/effect_lifecycle.mjs 规则关联、影响范围、效果时序与有效期
src/enemy_patterns.mjs、src/strategy_knowledge.mjs、data/strategy/ 怪物后继、角色建议、复活与战斗进展
src/turn_plan*.mjs、src/turn_sequence.mjs、src/turn_projection.mjs 有序回合计划、依赖传播、观察断点和有限效果分析
src/turn_candidates.mjs 独立有序候选、覆盖记录和入围方案复核
src/run_strategy*.mjs、src/camp_plan*.mjs 构筑方向和跨界面意图
scripts/replay_harness.mjs 无游戏操作的历史对照回放
native/WindowDriver/、录屏脚本 可选窗口诊断与录像,不参与正常决策
npm test

当前计划 · 上下文架构 · 决策管线 · 历史战况

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages