refactor: remove the /initiate-setup slash command

The command, its alias and every surface handler go together: the registry
entry, the Slack /hermes-only pin, the CLI handler, the gateway rewrite and
its canonical-command entry, the TUI builtin (_cmd_initiate_setup goes with
its only reference in _SLASH_BUILTINS) and the slash.exec pending-input pin.
The skill-invocation projection drops its /initiate-setup header in Python
(agent/skill_commands.py's module-top import of agent.initiate_setup_prompt
goes now, before 4.3 deletes that module) and in apps/shared.

run_inbound's handler lookup is back to f"_hm_cmd_{canonical}": no hyphenated
canonical command remains. The three locale keys go from all 17 packs, and
the desktop slash registry is regenerated.

(cherry picked from commit 3510c2c2428e18f226ee7628d34b35148a79c9b1)
This commit is contained in:
alt-glitch committed 2026-10-14 00:29:11 +05:30
1 parent 4391c24d95
commit 25bf722063
28 files changed
+5 -165

No files matched your search

-3
View File
@@ -9,7 +9,6 @@ from pathlib import Path
from typing import Any, Dict, Mapping, Optional
from hermes_constants import display_hermes_home
from agent.initiate_setup_prompt import HEADER as INITIATE_SETUP_HEADER
from agent.prompt_cache_boundary import register_stable_prefix
from agent.skill_preprocessing import load_skills_config as _load_skills_config, preprocess_skill_content
from agent.skill_utils import AMBIGUOUS_SKILL_PREFIX
@@ -157,8 +156,6 @@ def describe_skill_invocation(content: Any, separator: str = " — ") -> Optiona
"""
if not isinstance(content, str):
return None
if content.startswith(INITIATE_SETUP_HEADER):
return "/initiate-setup"
if content.startswith(_AUTO_LOAD_PREFIX):
return _describe_auto_loaded_skill_turn(content)
if not content.startswith(_SKILL_INVOCATION_PREFIX):
@@ -47,8 +47,6 @@
"/import": null,
"/indicator": "terminal",
"/init": null,
"/initiate-setup": null,
"/initiate_setup": null,
"/insights": "advanced",
"/journey": null,
"/kanban": "advanced",
-6
View File
@@ -13,8 +13,6 @@
* The markers below mirror `agent/skill_commands.py` byte for byte.
*/
// agent/initiate_setup_prompt.py HEADER: the /initiate-setup built-in's own header.
const INITIATE_SETUP_HEADER = '[/initiate-setup]'
const INVOCATION_PREFIX = '[IMPORTANT: The user has invoked the '
const SINGLE_MARKER = 'The full skill content is loaded below.]'
const SINGLE_INSTRUCTION = 'The user has provided the following instruction alongside the skill invocation: '
@@ -46,10 +44,6 @@ function between(text: string, marker: string, end: string, fromEnd = false): st
* when `text` is ordinary user prose that should render as written.
*/
export function skillInvocationText(text: string): null | string {
if (text.startsWith(INITIATE_SETUP_HEADER)) {
return '/initiate-setup'
}
if (!text.startsWith(INVOCATION_PREFIX)) {
return null
}
+2 -2
View File
@@ -1004,7 +1004,7 @@ class GatewayInboundMixin(GatewayPluginInjectionMixin):
# Idle-path built-ins with bespoke flow (confirmations, prompt rewrites, one-shot MoA), each
# handled by ``_hm_cmd_<name>`` → ``(handled, result)``; ``(False, None)`` falls through to the agent.
_HM_CANONICAL_COMMANDS = frozenset({
"new", "start", "egress", "learn", "plan", "initiate-setup", "init", "blueprint", "undo", "queue", "steer", "moa",
"new", "start", "egress", "learn", "plan", "init", "blueprint", "undo", "queue", "steer", "moa",
})
async def _hm_dispatch_canonical_command(
@@ -1021,7 +1021,7 @@ class GatewayInboundMixin(GatewayPluginInjectionMixin):
async with self._async_profile_scope_for_source(source):
return True, await plain_handler(event)
if canonical in self._HM_CANONICAL_COMMANDS:
return await getattr(self, f"_hm_cmd_{canonical.replace('-', '_')}")(event, source, _quick_key)
return await getattr(self, f"_hm_cmd_{canonical}")(event, source, _quick_key)
return False, None
async def _hm_run_exec_quick_command(self, command: str, exec_cmd: str) -> str:
-20
View File
@@ -1156,26 +1156,6 @@ class GatewaySlashCommandsMixin(
lines += [t("gateway.bundles.item", slug=info["slug"], desc=desc, count=len(skills))] + [f" · {s}" for s in skills]
return "\n".join(lines + ["", t("gateway.bundles.invoke_hint")])
async def _hm_cmd_initiate_setup(self, event, source, _quick_key):
from agent.initiate_setup_prompt import build_initiate_setup_prompt
from gateway.run import _load_gateway_config, _platform_config_key
from hermes_cli.setup_profile import primary_profile
from hermes_constants import get_hermes_home
from model_tools import get_tool_definitions
def build() -> str:
with self._profile_scope_for_source(source):
enabled, disabled = self._resolve_turn_toolsets(
_load_gateway_config(), source, _platform_config_key(source.platform))
tools = get_tool_definitions(enabled_toolsets=enabled, disabled_toolsets=disabled, quiet_mode=True,
skip_tool_search_assembly=True)
return build_initiate_setup_prompt(
source.platform.value, [tool["function"]["name"] for tool in tools],
primary_profile(get_hermes_home()))
return await self._hm_rewrite_turn_to_prompt(
event, source, "initiate-setup", t("gateway.initiate_setup.ack"), build)
def _blocking_approval_or_stale(self, event: MessageEvent, stale_key: str, none_key: str):
"""``(session_key, None)`` when an agent thread is blocked on approval, else the reply to send.
A pending-approvals entry with no blocked thread is a stale prompt: drop it and say so."""
-12
View File
@@ -219,18 +219,6 @@ class CLIChatTurnMixin:
logging.warning("native image attach failed, falling back to text: %s", _img_exc)
return self._preprocess_images_with_vision(text, images)
def _handle_initiate_setup_command(self, cmd: str):
from agent.initiate_setup_prompt import build_initiate_setup_prompt
from cli import get_tool_definitions
from hermes_cli.setup_profile import primary_profile
from hermes_constants import get_hermes_home
print("\n" + t("cli.commands.initiate_setup.starting"))
tools = get_tool_definitions(enabled_toolsets=self.enabled_toolsets, disabled_toolsets=self.disabled_toolsets,
quiet_mode=True, skip_tool_search_assembly=True)
names = [tool["function"]["name"] for tool in tools]
primary = primary_profile(get_hermes_home())
self._queue_prompt_turn(build_initiate_setup_prompt("cli", names, primary), "/initiate-setup")
def _chat_stage_user_message(self, agent, message):
"""Append the staged user dict to the transcript under the agent's persist lock."""
# Copy before appending: mutating ``agent._session_messages`` in this UI-only step
-2
View File
@@ -163,8 +163,6 @@ COMMAND_REGISTRY: list[CommandDef] = [
argument_mode="mixed", busy_policy="dispatch", busy_handler="loop"),
CommandDef("plan", "Write a markdown implementation plan to .hermes/plans/ without executing anything", "Session",
args_hint="[task]"),
CommandDef("initiate-setup", "Run the first-run setup: learn about you and set Hermes up around you", "Session",
aliases=("initiate_setup",)),
CommandDef("moa", "Run one prompt through the default Mixture of Agents preset, then restore your model", "Session",
args_hint="<prompt>", busy_policy="reject", busy_handler="moa"),
CommandDef("subgoal", "Add or manage extra criteria on the active goal", "Session",
+1 -1
View File
@@ -383,7 +383,7 @@ _SLACK_RESERVED_COMMANDS = frozenset({
# parity test reads this set. Aliases are never pinned ahead of canonicals.
_SLACK_VIA_HERMES_ONLY = frozenset({
"topup", "moa", "debug", "egress", "init", "version", "diff", "update", "heartbeat",
"refine", "review", "pause", "whoami", "platform", "insights", "login", "initiate-setup"})
"refine", "review", "pause", "whoami", "platform", "insights", "login"})
def _sanitize_slack_name(raw: str) -> str:
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Planning: {task}"
ack_conversation: "Planning uit hierdie gesprek se konteks…"
initiate_setup:
ack: "Begin opstelling…"
init:
start_failed: "Kon nie /init begin nie — probeer asseblief weer."
ack_update: "AGENTS.md word vanaf 'n projekskandering opgedateer…"
@@ -1558,8 +1556,6 @@ slash:
description: "Voer 'n prompt herhaaldelik met 'n vaste interval in hierdie sessie uit"
plan:
description: "Skryf 'n markdown-implementeringsplan na .hermes/plans/ sonder om enigiets uit te voer"
initiate-setup:
description: "Begin die eerste opstelling: leer jou ken en rig Hermes rondom jou in"
moa:
description: "Voer een prompt deur die verstek Mixture of Agents-voorafinstelling en herstel dan jou model"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Beplan: {task}"
from_conversation: "📋 Beplan uit hierdie gesprek se konteks..."
initiate_setup:
starting: "🧭 Begin opstelling..."
init:
updating: "⚡ Werk AGENTS.md by vanaf 'n projekskandering..."
generating: "⚡ Genereer AGENTS.md vanaf 'n projekskandering..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "جارٍ التخطيط: {task}"
ack_conversation: "جارٍ التخطيط من سياق هذه المحادثة…"
initiate_setup:
ack: "جارٍ بدء الإعداد…"
init:
start_failed: "تعذّر بدء /init — يُرجى المحاولة مرة أخرى."
ack_update: "جارٍ تحديث AGENTS.md من فحص المشروع…"
@@ -1558,8 +1556,6 @@ slash:
description: "إعادة تشغيل مطالبة على فترات متكررة في هذه الجلسة"
plan:
description: "كتابة خطة تنفيذ بصيغة markdown في .hermes/plans/ دون تنفيذ أي شيء"
initiate-setup:
description: "شغّل الإعداد الأول: يتعرّف عليك ويجهّز Hermes حولك"
moa:
description: "تشغيل مطالبة واحدة عبر الإعداد الافتراضي لـ Mixture of Agents ثم استعادة نموذجك"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 جارٍ التخطيط: {task}"
from_conversation: "📋 جارٍ التخطيط من سياق هذه المحادثة..."
initiate_setup:
starting: "🧭 جارٍ بدء الإعداد..."
init:
updating: "⚡ جارٍ تحديث AGENTS.md من فحص المشروع..."
generating: "⚡ جارٍ إنشاء AGENTS.md من فحص المشروع..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Plane: {task}"
ack_conversation: "Plane anhand des Kontexts dieser Konversation…"
initiate_setup:
ack: "Einrichtung wird gestartet…"
init:
start_failed: "/init konnte nicht gestartet werden — bitte versuchen Sie es erneut."
ack_update: "Aktualisiere AGENTS.md anhand eines Projekt-Scans…"
@@ -1558,8 +1556,6 @@ slash:
description: "Einen Prompt in dieser Sitzung in einem wiederkehrenden Intervall erneut ausführen"
plan:
description: "Einen Markdown-Umsetzungsplan nach .hermes/plans/ schreiben, ohne etwas auszuführen"
initiate-setup:
description: "Ersteinrichtung starten: dich kennenlernen und Hermes auf dich einstellen"
moa:
description: "Einen Prompt durch das Standard-Mixture-of-Agents-Preset laufen lassen und dann Ihr Modell wiederherstellen"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Planung: {task}"
from_conversation: "📋 Planung aus dem Kontext dieser Konversation..."
initiate_setup:
starting: "🧭 Einrichtung wird gestartet..."
init:
updating: "⚡ Aktualisiere AGENTS.md anhand eines Projekt-Scans..."
generating: "⚡ Erzeuge AGENTS.md anhand eines Projekt-Scans..."
-7
View File
@@ -798,9 +798,6 @@ gateway:
ack_task: "Planning: {task}"
ack_conversation: "Planning from this conversation's context…"
initiate_setup:
ack: "Starting setup…"
init:
start_failed: "Could not start /init — please try again."
ack_update: "Updating AGENTS.md from a project scan…"
@@ -1630,8 +1627,6 @@ slash:
description: "Re-run a prompt on a recurring interval in this session"
plan:
description: "Write a markdown implementation plan to .hermes/plans/ without executing anything"
initiate-setup:
description: "Run the first-run setup: learn about you and set Hermes up around you"
moa:
description: "Run one prompt through the default Mixture of Agents preset, then restore your model"
subgoal:
@@ -3020,8 +3015,6 @@ cli:
plan:
planning: "📋 Planning: {task}"
from_conversation: "📋 Planning from this conversation's context..."
initiate_setup:
starting: "🧭 Starting setup..."
init:
updating: "⚡ Updating AGENTS.md from a project scan..."
generating: "⚡ Generating AGENTS.md from a project scan..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Planificando: {task}"
ack_conversation: "Planificando a partir del contexto de esta conversación…"
initiate_setup:
ack: "Iniciando la configuración…"
init:
start_failed: "No se pudo iniciar /init — inténtalo de nuevo."
ack_update: "Actualizando AGENTS.md a partir de un análisis del proyecto…"
@@ -1558,8 +1556,6 @@ slash:
description: "Volver a ejecutar un prompt a intervalos recurrentes en esta sesión"
plan:
description: "Escribir un plan de implementación en markdown en .hermes/plans/ sin ejecutar nada"
initiate-setup:
description: "Ejecutar la configuración inicial: conocerte y ajustar Hermes a ti"
moa:
description: "Ejecutar un prompt con el preset predeterminado de Mixture of Agents y luego restaurar tu modelo"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Planificando: {task}"
from_conversation: "📋 Planificando a partir del contexto de esta conversación..."
initiate_setup:
starting: "🧭 Iniciando la configuración..."
init:
updating: "⚡ Actualizando AGENTS.md a partir de un análisis del proyecto..."
generating: "⚡ Generando AGENTS.md a partir de un análisis del proyecto..."
-6
View File
@@ -921,8 +921,6 @@ gateway:
plan:
ack_task: "Planification : {task}"
ack_conversation: "Planification à partir du contexte de cette conversation…"
initiate_setup:
ack: "Lancement de la configuration…"
init:
start_failed: "Impossible de démarrer /init — veuillez réessayer."
ack_update: "Mise à jour d'AGENTS.md à partir d'une analyse du projet…"
@@ -1810,8 +1808,6 @@ slash:
description: "Relancer un prompt à intervalle régulier dans cette session"
plan:
description: "Rédiger un plan d'implémentation markdown dans .hermes/plans/ sans rien exécuter"
initiate-setup:
description: "Lancer la configuration initiale : apprendre à vous connaître et adapter Hermes à vous"
moa:
description: "Exécuter un prompt via le preset Mixture of Agents par défaut, puis restaurer votre modèle"
subgoal:
@@ -3216,8 +3212,6 @@ cli:
plan:
planning: "📋 Planification : {task}"
from_conversation: "📋 Planification à partir du contexte de cette conversation..."
initiate_setup:
starting: "🧭 Lancement de la configuration..."
init:
updating: "⚡ Mise à jour d'AGENTS.md à partir d'une analyse du projet..."
generating: "⚡ Génération d'AGENTS.md à partir d'une analyse du projet..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Ag pleanáil: {task}"
ack_conversation: "Ag pleanáil ó chomhthéacs an chomhrá seo…"
initiate_setup:
ack: "Ag tosú an tsocraithe…"
init:
start_failed: "Níorbh fhéidir /init a thosú — bain triail eile as le do thoil."
ack_update: "Ag nuashonrú AGENTS.md ó scanadh tionscadail…"
@@ -1558,8 +1556,6 @@ slash:
description: "Athrith leid ar eatramh athfhillteach sa seisiún seo"
plan:
description: "Scríobh plean cur i bhfeidhm markdown go .hermes/plans/ gan aon rud a rith"
initiate-setup:
description: "Rith an chéad socrú: foghlaim fút agus socraigh Hermes timpeall ort"
moa:
description: "Rith leid amháin tríd an réamhshocrú Mixture of Agents, ansin aischuir do shamhail"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Ag pleanáil: {task}"
from_conversation: "📋 Ag pleanáil ó chomhthéacs an chomhrá seo..."
initiate_setup:
starting: "🧭 Ag tosú an tsocraithe..."
init:
updating: "⚡ Ag nuashonrú AGENTS.md ó scanadh tionscadail..."
generating: "⚡ Ag giniúint AGENTS.md ó scanadh tionscadail..."
-6
View File
@@ -789,8 +789,6 @@ gateway:
plan:
ack_task: "Tervezés: {task}"
ack_conversation: "Tervezés a beszélgetés kontextusa alapján…"
initiate_setup:
ack: "Beállítás indítása…"
init:
start_failed: "Az /init nem indult el — próbáld újra."
ack_update: "AGENTS.md frissítése a projekt átvizsgálása alapján…"
@@ -1575,8 +1573,6 @@ slash:
description: "Prompt ismételt futtatása adott időközönként ebben a munkamenetben"
plan:
description: "Markdown megvalósítási terv írása a .hermes/plans/ mappába, végrehajtás nélkül"
initiate-setup:
description: "Első beállítás indítása: megismer téged, és hozzád igazítja a Hermest"
moa:
description: "Egy prompt futtatása az alapértelmezett Mixture of Agents előbeállítással, majd a modelled visszaállítása"
subgoal:
@@ -2936,8 +2932,6 @@ cli:
plan:
planning: "📋 Tervezés: {task}"
from_conversation: "📋 Tervezés a beszélgetés kontextusa alapján..."
initiate_setup:
starting: "🧭 Beállítás indítása..."
init:
updating: "⚡ AGENTS.md frissítése a projekt átvizsgálása alapján..."
generating: "⚡ AGENTS.md létrehozása a projekt átvizsgálása alapján..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Pianificazione: {task}"
ack_conversation: "Pianificazione dal contesto di questa conversazione…"
initiate_setup:
ack: "Avvio della configurazione…"
init:
start_failed: "Impossibile avviare /init — riprova."
ack_update: "Aggiornamento di AGENTS.md da una scansione del progetto…"
@@ -1558,8 +1556,6 @@ slash:
description: "Riesegui un prompt a intervalli ricorrenti in questa sessione"
plan:
description: "Scrivi un piano di implementazione in markdown in .hermes/plans/ senza eseguire nulla"
initiate-setup:
description: "Avvia la configurazione iniziale: conoscerti e adattare Hermes a te"
moa:
description: "Esegui un prompt con il preset Mixture of Agents predefinito, poi ripristina il tuo modello"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Pianificazione: {task}"
from_conversation: "📋 Pianificazione dal contesto di questa conversazione..."
initiate_setup:
starting: "🧭 Avvio della configurazione..."
init:
updating: "⚡ Aggiornamento di AGENTS.md da una scansione del progetto..."
generating: "⚡ Generazione di AGENTS.md da una scansione del progetto..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "計画中: {task}"
ack_conversation: "この会話のコンテキストから計画を作成しています…"
initiate_setup:
ack: "セットアップを開始しています…"
init:
start_failed: "/init を開始できませんでした — もう一度お試しください。"
ack_update: "プロジェクトスキャンから AGENTS.md を更新しています…"
@@ -1558,8 +1556,6 @@ slash:
description: "このセッションでプロンプトを一定間隔で繰り返し実行"
plan:
description: "何も実行せずに markdown の実装計画を .hermes/plans/ に書き出す"
initiate-setup:
description: "初回セットアップを実行: あなたについて知り、Hermes をあなたに合わせて設定します"
moa:
description: "デフォルトの Mixture of Agents プリセットでプロンプトを 1 回実行し、元のモデルに戻す"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 計画中: {task}"
from_conversation: "📋 この会話のコンテキストから計画を作成しています..."
initiate_setup:
starting: "🧭 セットアップを開始しています..."
init:
updating: "⚡ プロジェクトのスキャン結果から AGENTS.md を更新しています..."
generating: "⚡ プロジェクトのスキャン結果から AGENTS.md を生成しています..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "계획 중: {task}"
ack_conversation: "이 대화의 컨텍스트로 계획을 세우고 있어요…"
initiate_setup:
ack: "설정을 시작하는 중…"
init:
start_failed: "/init을 시작할 수 없었어요 — 다시 시도해 주세요."
ack_update: "프로젝트 스캔 결과로 AGENTS.md를 업데이트하고 있어요…"
@@ -1558,8 +1556,6 @@ slash:
description: "이 세션에서 프롬프트를 일정 간격으로 반복 실행"
plan:
description: "실행 없이 마크다운 구현 계획을 .hermes/plans/에 작성"
initiate-setup:
description: "첫 설정 실행: 사용자에 대해 알아보고 Hermes를 사용자에게 맞게 설정합니다"
moa:
description: "기본 Mixture of Agents 프리셋으로 프롬프트 하나를 실행한 뒤 원래 모델 복원"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 계획 수립 중: {task}"
from_conversation: "📋 이 대화의 컨텍스트로 계획을 세우는 중..."
initiate_setup:
starting: "🧭 설정을 시작하는 중..."
init:
updating: "⚡ 프로젝트 스캔 결과로 AGENTS.md를 업데이트하는 중..."
generating: "⚡ 프로젝트 스캔 결과로 AGENTS.md를 생성하는 중..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Planejando: {task}"
ack_conversation: "Planejando a partir do contexto desta conversa…"
initiate_setup:
ack: "Iniciando a configuração…"
init:
start_failed: "Não foi possível iniciar /init — tente novamente."
ack_update: "Atualizando AGENTS.md a partir de uma varredura do projeto…"
@@ -1558,8 +1556,6 @@ slash:
description: "Reexecutar um prompt em intervalo recorrente nesta sessão"
plan:
description: "Escrever um plano de implementação em markdown em .hermes/plans/ sem executar nada"
initiate-setup:
description: "Executar a configuração inicial: conhecer você e ajustar o Hermes para você"
moa:
description: "Executar um prompt com a predefinição padrão de Mixture of Agents e depois restaurar seu modelo"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Planejando: {task}"
from_conversation: "📋 Planejando a partir do contexto desta conversa..."
initiate_setup:
starting: "🧭 Iniciando a configuração..."
init:
updating: "⚡ Atualizando AGENTS.md a partir de uma varredura do projeto..."
generating: "⚡ Gerando AGENTS.md a partir de uma varredura do projeto..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Планирую: {task}"
ack_conversation: "Планирую на основе контекста этого разговора…"
initiate_setup:
ack: "Запуск настройки…"
init:
start_failed: "Не удалось запустить /init — попробуйте ещё раз."
ack_update: "Обновляю AGENTS.md по результатам сканирования проекта…"
@@ -1558,8 +1556,6 @@ slash:
description: "Повторять промпт с заданным интервалом в этом сеансе"
plan:
description: "Написать план реализации в markdown в .hermes/plans/, ничего не выполняя"
initiate-setup:
description: "Запустить первичную настройку: узнать о вас и настроить Hermes под вас"
moa:
description: "Прогнать один промпт через пресет Mixture of Agents по умолчанию, затем вернуть вашу модель"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Планирование: {task}"
from_conversation: "📋 Планирую на основе контекста этого разговора..."
initiate_setup:
starting: "🧭 Запуск настройки..."
init:
updating: "⚡ Обновляю AGENTS.md по результатам сканирования проекта..."
generating: "⚡ Генерирую AGENTS.md по результатам сканирования проекта..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Planlanıyor: {task}"
ack_conversation: "Bu konuşmanın bağlamından plan yapılıyor…"
initiate_setup:
ack: "Kurulum başlatılıyor…"
init:
start_failed: "/init başlatılamadı — lütfen yeniden deneyin."
ack_update: "AGENTS.md proje taramasıyla güncelleniyor…"
@@ -1558,8 +1556,6 @@ slash:
description: "Bir istemi bu oturumda yinelenen aralıklarla yeniden çalıştır"
plan:
description: ".hermes/plans/ altına hiçbir şey çalıştırmadan markdown uygulama planı yaz"
initiate-setup:
description: "İlk kurulumu çalıştır: seni tanı ve Hermes'i sana göre ayarla"
moa:
description: "Bir istemi varsayılan Mixture of Agents ön ayarıyla çalıştır, sonra modelinize geri dön"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Planlanıyor: {task}"
from_conversation: "📋 Bu konuşmanın bağlamından planlanıyor..."
initiate_setup:
starting: "🧭 Kurulum başlatılıyor..."
init:
updating: "⚡ AGENTS.md proje taramasından güncelleniyor..."
generating: "⚡ AGENTS.md proje taramasından oluşturuluyor..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "Планування: {task}"
ack_conversation: "Планую на основі контексту цієї розмови…"
initiate_setup:
ack: "Запуск налаштування…"
init:
start_failed: "Не вдалося запустити /init — спробуйте ще раз."
ack_update: "Оновлюю AGENTS.md за результатами сканування проєкту…"
@@ -1558,8 +1556,6 @@ slash:
description: "Повторно виконувати запит із заданим інтервалом у цьому сеансі"
plan:
description: "Записати план реалізації в markdown до .hermes/plans/, нічого не виконуючи"
initiate-setup:
description: "Запустити початкове налаштування: дізнатися про вас і налаштувати Hermes під вас"
moa:
description: "Виконати один запит через типовий пресет Mixture of Agents, потім повернути вашу модель"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 Планування: {task}"
from_conversation: "📋 Планування на основі контексту цієї розмови..."
initiate_setup:
starting: "🧭 Запуск налаштування..."
init:
updating: "⚡ Оновлення AGENTS.md за результатами сканування проєкту..."
generating: "⚡ Генерація AGENTS.md за результатами сканування проєкту..."
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "正在規劃:{task}"
ack_conversation: "正在根據此對話的上下文進行規劃…"
initiate_setup:
ack: "正在開始設定…"
init:
start_failed: "無法啟動 /init — 請再試一次。"
ack_update: "正在依專案掃描結果更新 AGENTS.md…"
@@ -1558,8 +1556,6 @@ slash:
description: "在此工作階段以固定間隔重複執行提示"
plan:
description: "將 markdown 實作計畫寫入 .hermes/plans/,不執行任何動作"
initiate-setup:
description: "執行首次設定:了解你,並依你的需求設定 Hermes"
moa:
description: "以預設的 Mixture of Agents 預設組執行一次提示,然後還原你的模型"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 規劃中:{task}"
from_conversation: "📋 正在根據這段對話的上下文進行規劃…"
initiate_setup:
starting: "🧭 正在開始設定..."
init:
updating: "⚡ 正在根據專案掃描更新 AGENTS.md…"
generating: "⚡ 正在根據專案掃描產生 AGENTS.md…"
-6
View File
@@ -779,8 +779,6 @@ gateway:
plan:
ack_task: "正在规划:{task}"
ack_conversation: "正在根据本次对话的上下文进行规划…"
initiate_setup:
ack: "正在开始设置…"
init:
start_failed: "无法启动 /init——请重试。"
ack_update: "正在根据项目扫描更新 AGENTS.md…"
@@ -1558,8 +1556,6 @@ slash:
description: "在此会话中按固定间隔重复运行一条提示词"
plan:
description: "将 markdown 实施计划写入 .hermes/plans/,不执行任何操作"
initiate-setup:
description: "运行首次设置:了解你,并按你的需要设置 Hermes"
moa:
description: "用默认的 Mixture of Agents 预设运行一条提示词,然后恢复你的模型"
subgoal:
@@ -2919,8 +2915,6 @@ cli:
plan:
planning: "📋 正在规划:{task}"
from_conversation: "📋 正在根据本次对话的上下文进行规划..."
initiate_setup:
starting: "🧭 正在开始设置..."
init:
updating: "⚡ 正在通过项目扫描更新 AGENTS.md..."
generating: "⚡ 正在通过项目扫描生成 AGENTS.md..."
-12
View File
@@ -307,18 +307,6 @@ def _(rid, params: dict) -> dict:
return _ok(rid, {"name": setup.name, "path": str(setup.path), "reset": True})
# The /initiate-setup slash builtin (methods_tools._SLASH_BUILTINS): the skill plus the facts block as one turn.
def _cmd_initiate_setup(rid, params, session, name, arg):
with _session_profile_runtime_scope(session or {}):
enabled, disabled = _session_toolsets(session)
tools = _tools_mod("model_tools").get_tool_definitions(
enabled_toolsets=enabled, disabled_toolsets=disabled, quiet_mode=True, skip_tool_search_assembly=True)
surface = _resolve_agent_platform(_session_source(session))
primary = _tools_mod("hermes_cli.setup_profile").primary_profile(_launch_home())
message = _tools_mod("agent.initiate_setup_prompt").build_initiate_setup_prompt(
surface, [tool["function"]["name"] for tool in tools], primary, (session or {}).get("session_key"))
return _ok(rid, {"type": "send", "message": message, "display": "/initiate-setup"})
def _onboarding_state_result(rid, change) -> dict:
from hermes_cli.setup_profile import find_setup_profile, onboarding_eligible
try:
+1 -1
View File
@@ -1089,7 +1089,7 @@ _SLASH_BUILTINS = {
"queue": _cmd_queue, "q": _cmd_queue, "learn": _cmd_learn, "plan": _cmd_plan, "init": _cmd_init,
"moa": _cmd_moa, "focus": _cmd_focus, "retry": _cmd_retry, "steer": _cmd_steer, "goal": _cmd_goal,
"loop": _cmd_loop, "undo": _cmd_undo, "snapshot": _cmd_snapshot, "snap": _cmd_snapshot,
"compress": _cmd_compress, "compact": _cmd_compress, "initiate-setup": lambda *a: _cmd_initiate_setup(*a),
"compress": _cmd_compress, "compact": _cmd_compress,
"memory": _cmd_memory, "skills": _cmd_skills}
@method("command.dispatch")
+1 -1
View File
@@ -3564,7 +3564,7 @@ _TUI_EXTRA: list[tuple[str, str, str]] = [
# slash.exec routes them to command.dispatch instead.
_PENDING_INPUT_COMMANDS: frozenset[str] = frozenset({
"retry", "queue", "q", "steer", "plan", "goal", "loop", "proactive", "moa", "undo", "learn",
"init", "compress", "compact", "initiate-setup", "initiate_setup",
"init", "compress", "compact",
})
_WORKER_BLOCKED_COMMANDS: frozenset[str] = frozenset({"snapshot", "snap"})