diff --git a/README.md b/README.md index 905c0bd..af941fa 100644 --- a/README.md +++ b/README.md @@ -117,8 +117,9 @@ test -f ~/.hermes/skills/hermes-client-onboarding/SKILL.md && echo skill_ok hermes --version hermes doctor -# 4. onboarding interativo -hermes chat -s hermes-client-onboarding +# 4. onboarding interativo (agente fala primeiro — Phase 1) +hermes-client-onboarding +# ou: hermes --tui -s hermes-client-onboarding -q "Inicie AGORA o onboarding…" # completar fases 1–6 com chaves reais de teste # 5. smoke telegram @@ -146,6 +147,17 @@ hermes config set model.base_url "https://api.deepseek.com/v1" Não imprime secrets. +## Launcher (agente fala primeiro) + +O bootstrap instala `~/.local/bin/hermes-client-onboarding`, que abre o TUI com kickoff automático: + +```bash +hermes-client-onboarding +``` + +Isso usa `hermes --tui -s hermes-client-onboarding -q "…"` — o Hermes **envia a primeira mensagem sozinho** e continua interativo. +`hermes chat -s …` sem `-q` / sem launcher espera o usuário falar primeiro. + ## Licença MIT (skill + bootstrap DomHubs). Hermes Agent em si: licença do projeto Nous Research. diff --git a/install.sh b/install.sh index a08aae5..25575c0 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ set -euo pipefail SKILL_NAME="hermes-client-onboarding" DEFAULT_BASE="${HERMES_ONBOARD_BASE:-https://setup.domhubs.com.br/hermes}" HERMES_INSTALL_URL="${HERMES_INSTALL_URL:-https://hermes-agent.nousresearch.com/install.sh}" -KICKOFF_MSG="${HERMES_ONBOARD_KICKOFF:-Inicie agora o onboarding de cliente Hermes. Siga a skill hermes-client-onboarding fase a fase (Phase 1 primeiro). Fale em português brasileiro.}" +KICKOFF_MSG="${HERMES_ONBOARD_KICKOFF:-Inicie AGORA o onboarding de cliente Hermes. Siga a skill hermes-client-onboarding: pre-flight em silêncio e abra a Phase 1 com a primeira pergunta. Você fala primeiro — não espere eu dizer oi. Português brasileiro.}" CONDUCTOR="${HERMES_ONBOARD_CONDUCTOR:-}" NO_LAUNCH=0 @@ -104,6 +104,9 @@ copy_tree() { if [[ -f "$dest/scripts/apply-core-config.sh" ]]; then chmod +x "$dest/scripts/apply-core-config.sh" fi + if [[ -f "$dest/scripts/start-onboarding.sh" ]]; then + chmod +x "$dest/scripts/start-onboarding.sh" + fi } fetch_skill_to() { @@ -115,7 +118,9 @@ fetch_skill_to() { curl -fsSL "${base}/skill/${SKILL_NAME}/SKILL.md" -o "$dest/SKILL.md" curl -fsSL "${base}/skill/${SKILL_NAME}/references/troubleshooting.md" -o "$dest/references/troubleshooting.md" curl -fsSL "${base}/skill/${SKILL_NAME}/scripts/apply-core-config.sh" -o "$dest/scripts/apply-core-config.sh" + curl -fsSL "${base}/skill/${SKILL_NAME}/scripts/start-onboarding.sh" -o "$dest/scripts/start-onboarding.sh" || true chmod +x "$dest/scripts/apply-core-config.sh" + [[ -f "$dest/scripts/start-onboarding.sh" ]] && chmod +x "$dest/scripts/start-onboarding.sh" [[ -s "$dest/SKILL.md" ]] || die "failed to download SKILL.md from $base" } @@ -137,6 +142,14 @@ install_skill() { copy_tree "$staging" "$hermes_dest" log "Skill installed for Hermes → $hermes_dest" + # Launcher: auto-starts Phase 1 (agent speaks first) + mkdir -p "${HOME}/.local/bin" + if [[ -f "$staging/scripts/start-onboarding.sh" ]]; then + cp -f "$staging/scripts/start-onboarding.sh" "${HOME}/.local/bin/hermes-client-onboarding" + chmod +x "${HOME}/.local/bin/hermes-client-onboarding" + log "Launcher → ~/.local/bin/hermes-client-onboarding (agent fala primeiro)" + fi + # Codex / agents (optional) if [[ -d "${HOME}/.codex" ]] || need_cmd codex; then mkdir -p "${HOME}/.codex/skills" @@ -196,30 +209,38 @@ pick_conductor() { fi } +launch_hermes_onboarding() { + # Auto-start: TUI + -q submits first turn; session stays interactive. + export HERMES_ONBOARD_KICKOFF="$KICKOFF_MSG" + if [[ -x "${HOME}/.local/bin/hermes-client-onboarding" ]]; then + if [[ -r /dev/tty ]]; then + exec "${HOME}/.local/bin/hermes-client-onboarding" /dev/null 2>&1; then + echo "error: hermes not on PATH" >&2 + exit 1 +fi + +# TUI: -q becomes HERMES_TUI_QUERY — first turn auto-submits, session stays interactive. +if [[ -t 0 && -t 1 ]]; then + exec hermes --tui -s "$SKILL_NAME" -q "$KICKOFF" "$@" +fi + +# Non-TTY fallback (CI/scripts): one-shot only +exec hermes chat -s "$SKILL_NAME" -Q -q "$KICKOFF" "$@"