Refs #2
实现可在 ApeMind 主仓;契约先钉在本 milestone,避免 daemon 和对面各写各的。
目的
Web 能登记 Computer、复制命令、看在线、打开/启停自己的 Computer 智能体。不做聊天,不做飞书表单。默认不支持一人多个。页面不要出现 dsh。
对象
- Computer:
id,工作区(个人或组织),显示名,配对令牌(可再展示),在线/离线,最后心跳。
- computer_agent(内部表名;页面叫 Computer 智能体):
id,computer_id,owner_user_id(同一工作区唯一),期望 running|stopped,观察到的 running|stopped|error,工作目录,回环端口,profile=web。该用户还没有时创建,默认 stopped。
跨工作区 404。一台 Computer 只属于一个工作区。Computer 列表是工作区级;Computer 智能体按主人,别人打不开别人的。
HTTP(工作区隔离)
POST /computers → 名字;回可重复展示的接入命令
GET /computers → 列表(在线、Computer 智能体个数)
GET /computers/:id → 详情 + 当前用户的 Computer 智能体 + 接入命令
POST /computers/:id/agents → 取或建当前用户那一条,已有则返回同一条,默认 stopped。不要按调用次数新开进程
POST /computers/:id/agents/:agentId/start|stop(只能操作自己的)
- 离线不能新启动;离线时仍可改期望,上线后推完整快照
控制连接(给 #3/#4)
daemon → ApeMind 一条出站长连接。帧:join、heartbeat、desired(revision + 实例列表)、observed。预留 tunnel,L0 不实现。
页面
列表 / 新建 / 详情(长期放运行命令 + 等待上线)/ 打开或启停自己的 Computer 智能体。没有「再加一个」,没有聊天页,没有 dsh 字样。
验收
- 创建 Computer,随时再复制同一条命令。
- 命令跑起来后列表在线。
- 同一用户两次打开 Computer 智能体仍是同一条;启动/停止反映到
desired 并下发给在线 daemon。
明确不在本 Issue
SaaS 入口网关。设计已锁路径 computer.apemind.ai/dsh/<id>,另开 milestone。路径里的 dsh 是实现细节,以后可以再改。
Refs #2
实现可在 ApeMind 主仓;契约先钉在本 milestone,避免 daemon 和对面各写各的。
目的
Web 能登记 Computer、复制命令、看在线、打开/启停自己的 Computer 智能体。不做聊天,不做飞书表单。默认不支持一人多个。页面不要出现 dsh。
对象
id,工作区(个人或组织),显示名,配对令牌(可再展示),在线/离线,最后心跳。id,computer_id,owner_user_id(同一工作区唯一),期望running|stopped,观察到的running|stopped|error,工作目录,回环端口,profile=web。该用户还没有时创建,默认stopped。跨工作区 404。一台 Computer 只属于一个工作区。Computer 列表是工作区级;Computer 智能体按主人,别人打不开别人的。
HTTP(工作区隔离)
POST /computers→ 名字;回可重复展示的接入命令GET /computers→ 列表(在线、Computer 智能体个数)GET /computers/:id→ 详情 + 当前用户的 Computer 智能体 + 接入命令POST /computers/:id/agents→ 取或建当前用户那一条,已有则返回同一条,默认 stopped。不要按调用次数新开进程POST /computers/:id/agents/:agentId/start|stop(只能操作自己的)控制连接(给 #3/#4)
daemon → ApeMind 一条出站长连接。帧:
join、heartbeat、desired(revision + 实例列表)、observed。预留tunnel,L0 不实现。页面
列表 / 新建 / 详情(长期放运行命令 + 等待上线)/ 打开或启停自己的 Computer 智能体。没有「再加一个」,没有聊天页,没有 dsh 字样。
验收
desired并下发给在线 daemon。明确不在本 Issue
SaaS 入口网关。设计已锁路径
computer.apemind.ai/dsh/<id>,另开 milestone。路径里的dsh是实现细节,以后可以再改。