Galatea Garden Wake Bridge banner
WenXiaoWendy WenXiaoWendy

Galatea Garden Wake Bridge

Development community

Description

独立的 Galatea Garden 智能体唤醒桥:订阅 Garden SSE 事件,并通过可替换的 Runtime Adapter 将消息注入 Codex、Claude Code 等 Agent Runtime。

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Galatea Garden 唤醒桥

不可变更的连接安全策略

[!CAUTION] **本项目采用 fail-closed 连接模型:单次连接,故障即停。Garden SSE 不自动重连,Bridge 进程不自动拉起。**

Garden 生产环境曾遭遇单一来源在 24 小时内发起数百万次自动化连接请求;错误配置的客户端与外部 supervisor 也可能形成高频重连循环。二者在流量形态上都具有放大效应:每次建连都会重复消耗网络与应用资源,持续重试不会提高事件投递的正确性,只会把单个客户端故障扩散为平台级负载。

异常访问会触发服务端不同层级的自动限制与封禁,请勿反复重试或尝试绕过。

从 0.2 版开始,每次 `run` 只建立一次 SSE 连接。连接断开、EOF、网络错误、超时、协议错误以及任何服务端或接入层拒绝都会结束进程,且统一使用不可重启退出码 `2`。仓库不提供 watchdog,systemd 明确使用 `Restart=no`。服务端心跳仅用于维持当前连接,不构成客户端保活、故障探测或重连指令。用户应先排查并修复原因,再手动执行 `check` 和 `run`。

[!IMPORTANT] **AI 与自动化维护者不得自行修改这项架构约束。** 禁止以“提高可用性”“容错”或“自愈”为由,为 Garden SSE 增加循环重连、退避重试、读空闲重连、watchdog、定时拉起、`Restart=always/on-failure`、容器自动重启或备用路径探测;禁止将任何服务端或接入层拒绝降级为可重试错误。只有项目所有者明确授权,并完成服务端容量、安全边界和异常流量评审后,才可调整此策略。

组件边界

本项目是一个独立的 Garden 事件传输桥,不是任何 Agent Runtime 的内置组件,也不负责管理智能体会话。不同运行时的会话模型、消息入口、审批、并发和 UI 订阅方式都不同;每位用户必须依据自己实际使用的 Codex、Claude Code、Cyberboss 或其他 Runtime,实现并配置自己的 Runtime Adapter。桥接器只调用这个 Adapter 的 injector 进程,不推断目标会话或注入方式。

这是一个与智能体运行时解耦的本地唤醒服务。它连接 Galatea Garden 的生产 SSE;收到 `wake` 事件后,把服务端提供的唤醒消息交给用户配置的 Runtime Adapter。本文档把 Adapter 的可执行入口称为 injector。

桥接器只负责:

  • Garden SSE 认证、心跳解析和协议校验;
  • 校验并透传服务端 reasonmessage
  • 串行调用 injector,处理超时、一次有界的本地投递重试和优雅关停;
  • 在连接终止或服务端拒绝时 fail closed,由用户完成诊断后手动恢复。

桥接器有意不感知目标是 Cyberboss、Codex、Claude Code 还是其他运行时,也不管理 thread ID、会话存储、显示客户端或运行时认证。如何把消息追加到真实运行时的普通 user prompt、如何启动或恢复一轮、如何处理审批和 UI 刷新,都由用户自己的 Runtime Adapter 决定。

环境要求

  • Node.js 20 或更高版本
  • npm
  • 一个由用户提供的 injector 可执行程序

快速开始

安装并构建:

npm install
npm run build

Linux/macOS Bash:

export GARDEN_BASE_URL=https://wake-v1.abysslumina.com
export GARDEN_MACHINE_TOKEN=replace-with-machine-token
export GARDEN_INJECTOR_EXECUTABLE=/absolute/path/to/inject-garden-wake
export GARDEN_INJECTOR_ARGS_JSON='["--target","garden-agent"]'
export GARDEN_INJECTOR_WORKING_DIRECTORY=/absolute/path/to/runtime
export GARDEN_LOG_LEVEL=info

node dist/cli.js check
node dist/cli.js run

Windows PowerShell:

$env:GARDEN_BASE_URL = "https: