feat(agent): add Grok Build TUI adapter, runtime dispatch, and skill support

This commit is contained in:
2026-08-26 10:49:34 +09:00
parent 926ca5452b
commit ad8201d706
27 changed files with 414 additions and 40 deletions
@@ -8,7 +8,7 @@ platforms: [linux, macos]
environments: [terminal, herdr]
metadata:
hermes:
tags: [agent, herdr, claude, antigravity, agy, cline, hermes, orchestrator, onboard, isolation]
tags: [agent, herdr, claude, antigravity, agy, cline, hermes, grok, orchestrator, onboard, isolation]
related_skills: [multi-agent-mux-create, multi-agent-mux-resume, multi-agent-mux-monitor]
prereq_skills: [multi-agent-mux-create]
---
@@ -32,17 +32,19 @@ Registers an orchestrator session UUID into the `orchestrator_uuids` list of `.m
## Auto-Detection Hierarchy (Rev.2)
When `--uuid` is omitted, `orc_onboard.sh` inspects the process ancestry tree of the nearest agent ancestor (`claude`, `agy`, `hermes`, `cline`) in the following order:
When `--uuid` is omitted, `orc_onboard.sh` inspects the process ancestry tree of the nearest agent ancestor (`claude`, `agy`, `hermes`, `cline`, `grok`) in the following order:
1. **CLI `argv`**:
- `claude -r <uuid>` / `claude --session-id <uuid>`
- `agy --conversation <uuid>`
- `cline --id <uuid>` / `cline --session-id <uuid>`
- `grok --session-id <uuid>` / `grok --resume <uuid>`
2. **Family-Matched Environment Variables**:
- `claude``CLAUDE_CODE_SESSION_ID`
- `agy``ANTIGRAVITY_CONVERSATION_ID`
- `hermes``HERMES_SESSION_ID`
- `cline``CLINE_SESSION_ID`
- `grok``GROK_SESSION_ID`
3. **Fallback**:
- If no valid ID matching the nearest agent family is found, exits with status 3 (`Could not detect orchestrator ID`).
@@ -104,7 +104,7 @@ detect_nearest_agent() {
local base
base="$(basename "$tok")"
case "$base" in
claude|agy|hermes|cline)
claude|agy|hermes|cline|grok)
match="$base"
break
;;
@@ -128,6 +128,9 @@ detect_nearest_agent() {
cline)
detected_id=$(echo "$cmd_line" | grep -oE '(--id|--session-id)[[:space:]=]+[^[:space:]]+' | head -n 1 | sed -E 's/^(--id|--session-id)[[:space:]=]+//' || true)
;;
grok)
detected_id=$(echo "$cmd_line" | grep -oE '(--session-id|--resume)[[:space:]=]+[^[:space:]]+' | head -n 1 | sed -E 's/^(--session-id|--resume)[[:space:]=]+//' || true)
;;
esac
if [ -n "$detected_id" ] && is_valid_id "$detected_id"; then
@@ -142,6 +145,7 @@ detect_nearest_agent() {
agy) env_var="${ANTIGRAVITY_CONVERSATION_ID:-}" ;;
hermes) env_var="${HERMES_SESSION_ID:-}" ;;
cline) env_var="${CLINE_SESSION_ID:-}" ;;
grok) env_var="${GROK_SESSION_ID:-}" ;;
esac
if [ -n "$env_var" ] && is_valid_id "$env_var"; then
@@ -202,7 +206,7 @@ except Exception:
target = sys.argv[1]
for s in d.get("herdr_sessions", []):
if s.get("status") == "running":
for k in ["claude_session_id_own", "agy_conversation_id_own", "hermes_conversation_id_own", "cline_conversation_id_own"]:
for k in ["claude_session_id_own", "agy_conversation_id_own", "hermes_conversation_id_own", "cline_conversation_id_own", "grok_session_id_own"]:
if s.get(k) == target:
sys.exit(1)
sys.exit(0)