用途 launch-workshop 用于启动并管理一个动手实践的 OpenWork 工作坊:创建私有 Den 与最多 99 个 Daytona 桌面,为每个座位准备任务环境,把登录链接交给主持人,并在活动中处理座位冻结、任务卡住、数据混乱等问题,最后停止并清理指定的工作坊环境。
主要能力
- 启动工作坊:scripts/workshop/start.sh <seats 1-99> <lifetime-minutes, default 360> <stage, default event> <budget-usd, default 200>。运行前先在一行内确认规模与成本,然后在前台执行;每十个座位约需 2 分钟一波,另加约 2.5 分钟创建 Den。
- 启动前检查:若估算费用超出预算、团队配额不足或应用提交未合并到 dev,脚本会在创建任何资源前拒绝执行。应如实报告该消息,不要绕过。
- 多场次:使用不同的 <stage> 名称可得到独立的第二次启动(各自拥有 Den;不同启动之间的座位不能共享技能)。
- 就绪检查:读取 READY x/y;对每个 NOT READY 座位运行一次 seat.sh attendeeNN prepare <stage>,若仍失败则将其排除并说明。
- 抽检:seat.sh attendee01 status <stage> 与 seat.sh attendee01 task <stage> 均须输出 PASS,随后运行 seat.sh attendee01 prepare <stage>,让该座位从新任务开始。
- 分发链接:scripts/workshop/links.sh <stage> 为每个座位打印一条可直接粘贴的消息,原样交给主持人。
使用方式与活动中的操作
- 座位冻结或黑屏:seat.sh attendeeNN unlock <stage>(参与者重新加载页面)。
- 任务卡住或一直运行:seat.sh attendeeNN stop <stage>。
- 参与者反馈数据混乱:seat.sh attendeeNN reset <stage>。重置只恢复虚构数据,登录与连接保留,聊天记录和桌面文件仍保留。
- 模型缺失或无输入框:seat.sh attendeeNN prepare <stage>。
- 检查座位状态:seat.sh attendeeNN status <stage>。
- 重发链接:seat.sh attendeeNN link <stage>。
- 增加座位:重新启动一场,start.sh <n> <minutes left> <new-stage>。
停止 对主持人指定的每个 stage 运行 scripts/workshop/stop.sh <stage>。只清理被要求停止的 stage。
时机与限制 建议在活动开始前 60 至 120 分钟启动,不要早于约 3 小时(工作场所 OAuth 批准约持续 8 小时)。私人输出应保存在 ~/.openwork/workshops/<stage>/ 下;查看者链接仅能交给主持人本人,除非相关人员主动索取。