🖥️ GS2 控制台

工具 · 让用户与 AI Agent 无需预留接口,即可通过 GS2 反射访问程序绝大部分功能。

📌 技术定位

GS2 控制台把 GS2 虚拟机包装为对用户友好的交互界面,是反射能力面向人与 Agent 的统一入口。 它的核心用意是:调用方不需要为控制台预先保留任何接口——只要对象能被反射访问, 就能在控制台里定位到它,并直接读写其成员、调用其方法,因此程序可被操作的功能面几乎不受预留接口的限制。 它与被操作的程序之间不存在强绑定:同一套数据层可在内嵌 GUI 宿主、CLI 宿主、Web GUI 子进程, 以及 GCenter 这类纯控制台程序中复用,各宿主共享完全一致的反射能力与命令语义。

GS2 反射 多宿主同源 Blazor Server stdin/stdout JSON-line MCP CLI / 命名管道

✨ 核心特性

🪞 反射式访问(核心)

以「定位对象 → 调用成员」两步完成操作:cd 把当前上下文定位到某个服务 / 中介者 / 工厂 / 配方或门面对象, 再用 ./方法名 触发其方法;getc / getp / setp 可读写任意成员(含私有),help 则列出当前对象可被反射调用的内容。 调用方无需事先拿到类型定义或接口声明。

🧬 多宿主同源

数据层(虚拟机、状态机、弹窗通道)与显示层分离,同一份数据层可接入不同宿主: 编辑器内嵌 GUI 面板、常驻 CLI 宿主、Web GUI 子进程,以及 GCenter 这类同一家族中的纯控制台程序。 应用形态不同,反射能力完全一致,因此它不是某个编辑器独有的附属功能。

🌐 Web GUI 控制台

基于 Blazor Server 的控制台显示层,渲染输出、输入、弹窗、选择器与历史记录,并支持壳命令 (/help /cls /save /load /reset /c /hist)。

🧩 前后端解耦

Web 显示层自身不实现虚拟机,而是通过 stdin/stdout 的 JSON-line 协议与 CLI 宿主(父进程)双向通信; 整套协议共 17 个协议类(9 个上报 + 8 个推送)。

🔀 七态状态机

Read / Processing / Occupied / Confirm / Prompt / Selector / Alert,覆盖自由输入、异步执行、确认、输入、 选择与警告等交互状态。

🤖 Agent 入口

控制台能力已封装为 MCP 工具对外开放,AI Agent 可直接下发脚本、读取执行状态与输出; 同时提供「常驻进程 + 轻量 CLI + 命名管道」入口(含签名鉴权),可作为外部 AI 编程工具的 Hooks 使用。 对 Agent 而言,这意味着不必等待新接口发布,也能操作程序已具备的能力。

🔧 关键技术点

🧪 示例

// GS2 反射:定位对象后直接调用其方法(调用方无需预先拿到接口)
cd m openaiMediator            // 把上下文定位到 openaiMediator(m 表示中介者)
./SwitchProvider 参数1 参数2     // 触发该对象上的方法,参数按位置传入
help                           // 列出当前对象可被反射调用的成员

// 协议消息(子进程 → 父进程:提交命令)
{ "clz": "console", "method": "command", "command": "print('hello')" }

// 协议消息(父进程 → 子进程:推送输出)
{ "clz": "console", "method": "output", "text": "hello" }
本页用于分享开发思路与展示作品,目前未承诺开源或提供下载地址。作者应用技术不含GPL等强制开源协议。