SuperAPI AI 工具集

graph-world-ts

编程与开发

查看项目

更新于 10-15 12:38

技能介绍

用途

graph-world-ts 用于在 GraphOS world 图已经设计并完成闭环验证之后,用 TypeScript 实现 world 运行时代码。它的范围边界明确:本技能负责 npm + TypeScript 项目引导、生成代码集成、运行时实现与注册接线,不替代图建模。如果请求会改变图结构或事件/数据归属,应先运行 graph-world。表现层工作不在本技能范围内,应放到独立的 app/view 技能(例如 graph-world-pixijs)中。

主要能力

  • 项目引导:初始化 npm 项目,安装 TypeScript 与 Node 类型,安装 graphos-world-plugin 与 graphos-cli 作为开发依赖,配置 package.json 中的 graphos 代码生成选项、scripts、tsconfig.world.json 以及初始 World.graph.json。
  • System 实现:基于生成的 ./gen/World 类型实现具体 System 行为,遵循图数据归属,把启动引导逻辑放在 System.spawn 中。
  • World 启动入口:在 World 下挂载引导 System,用 get-or-create 语义初始化根/领域 Context,保证重复 spawn 不产生重复单例数据。
  • EventSystem 实现:在图触发链与 payload 设计验证后实现事件处理器,payload 字段与生成的事件类型保持一致。
  • 运行时注册接线:在 src/app.ts 中用 app.addSystem(...) 与 app.addEventSystem(...) 显式注册实现好的处理器。

使用方式

先完成图设计与闭环验证,若图有变更则重新生成 ./gen/World 并重新阅读生成类型,再实现运行时代码;随后按需实现 System、World 启动入口与 EventSystem,最后在 src/app.ts 中完成注册。技能给出了明确的引导命令与配置示例,包括 npm init、依赖安装、package.json 的 graphos 配置、scripts、tsconfig.world.json 与初始 World.graph.json 内容,以及 System、EventSystem 的代码骨架。

适用场景

  • 需要用 npm 与 TypeScript 初始化一个全新的 GraphOS world 包。
  • 需要在 package.json 中配置 GraphOS 代码生成。
  • 需要针对生成的 ./gen/World 类型实现 System 或 EventSystem 代码。
  • 需要在 System.spawn 中编写启动引导行为。
  • 需要在 src/app.ts 中注册生成的运行时处理器。

限制与质量门禁

本技能要求先通过 graph-world 完成图设计与闭环验证,未通过前不得开始运行时实现;图变更后必须重新生成并重新阅读生成类型。System 与 EventSystem 代码不得发明新拓扑,必须尊重图的所有权。禁止模块级或全局可变缓存,缓存只能存在于 create...System / create...EventSystem 工厂函数作用域内。实现相关配置应放入 src/config.ts,而非图拓扑。每个已实现的 System 与 EventSystem 都必须在 src/app.ts 中完成接线。World 引导初始化必须幂等且单例安全。单例 Context 访问应使用固定 id 的 get...ById('id'),不要用 get...Children()[0] 等基于位置的查找。src/app.ts 的默认导出签名固定为 export default function (app: App): WorldContext,不得更改。

失败恢复

若生成类型与预期不符,先重新生成图输出再编辑运行时代码;若处理器需要图中缺失的数据,应停止在 TypeScript 侧打补丁并回到 graph-world;若运行时使用位置查找访问单例 Context,应改为固定 id 的 get-or-create 访问;只有在目标仓库已强制要求时才为导入路径添加 .js 后缀;注册不完整时,需先完成 src/app.ts 接线再视为功能完成。

示例请求

  • 使用 package.json、tsconfig.world.json 与 World.graph.json 引导一个 GraphOS world npm 包。
  • 实现 WorldBootstrapSystem 并在 src/app.ts 中注册它。
  • 在 graph-world 中新增 EventSystem 后,重新生成 ./gen/World 并更新运行时代码。
  • 将 Systems 重构为使用 src/config.ts 与 src/types.ts,而不是硬编码常量。

价格、平台支持范围等其它信息暂未提供。