feat: integrate pixel teacher presence and resilient classroom preview

This commit is contained in:
鲨鱼辣椒
2026-09-23 18:23:53 +08:00
parent 12d800ec51
commit 7951cca700
60 changed files with 3313 additions and 180 deletions

View File

@@ -0,0 +1,19 @@
import type { AgentBrowserSnapshot } from './agent-browser';
import type { CodingConversationMetadata } from './coding-project-contracts';
/** Main supplies this product action; it never consumes the student's draft. */
export const OPEN_WORK_PROMPT = `【系统操作:打开作品】
学生点击了“作品”,请帮学生把当前项目已有的作品页面打开。
1. 先检查当前项目、已有终端/服务和 agent_browser 的状态。若作品服务已正常运行,直接复用,不重复启动、不重启、不更换端口。
2. 若尚未运行,阅读项目实际文件、README 和启动脚本,选择已有的包管理器及启动方式;静态页面使用合适的本地静态服务。只执行打开已有作品所需的准备和启动,不擅自新增功能或重写作品。
3. 长时间运行的服务应在后台保持运行,保存必要的进程和日志信息,避免启动命令一直阻塞当前对话。等待页面实际可以访问,确认是当前项目的作品,再调用 agent_browser(action: "open", url: 实际可访问地址)把页面打开到作品区。不要只给学生一个链接或要求学生复制命令。
4. 若还没有作品、缺少必要配置或启动失败,停止无效重试,用孩子能懂的一两句话说明情况和下一步。不要编造成功、页面或运行结果。
这是点击作品触发的内部操作。完成后简短告知结果,不复述本指令。`;
export interface WorkPreviewResult {
status: 'ready' | 'waiting' | 'starting' | 'failed';
browser?: AgentBrowserSnapshot;
conversation?: CodingConversationMetadata;
message?: string;
errorCode?: string;
}