verbalcoding 0.2.11 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/.env.example +98 -2
  2. package/README.es.md +134 -0
  3. package/README.fr.md +134 -0
  4. package/README.ja.md +134 -0
  5. package/README.ko.md +134 -0
  6. package/README.md +118 -74
  7. package/README.ru.md +134 -0
  8. package/README.zh.md +133 -0
  9. package/app-node/agent_adapters.mjs +37 -5
  10. package/app-node/agent_adapters.test.mjs +27 -1
  11. package/app-node/agent_detect.mjs +73 -0
  12. package/app-node/agent_detect.test.mjs +77 -0
  13. package/app-node/agent_routing.mjs +148 -0
  14. package/app-node/agent_routing.test.mjs +138 -0
  15. package/app-node/agent_turn.mjs +86 -0
  16. package/app-node/agent_turn.test.mjs +109 -0
  17. package/app-node/bridge_context.mjs +73 -0
  18. package/app-node/bridge_context.test.mjs +54 -0
  19. package/app-node/bridge_state.mjs +4 -0
  20. package/app-node/bridge_wireup.test.mjs +462 -0
  21. package/app-node/cli_install.test.mjs +31 -0
  22. package/app-node/cross_agent_routing.test.mjs +78 -0
  23. package/app-node/discord_command_router.mjs +204 -0
  24. package/app-node/discord_command_router.test.mjs +311 -0
  25. package/app-node/discord_voice_setup.mjs +251 -0
  26. package/app-node/discord_voice_setup.test.mjs +86 -0
  27. package/app-node/hermes_profiles.test.mjs +12 -1
  28. package/app-node/install_config.mjs +113 -3
  29. package/app-node/install_config.test.mjs +8 -0
  30. package/app-node/instance_doctor.test.mjs +9 -0
  31. package/app-node/instances.test.mjs +8 -1
  32. package/app-node/main.mjs +513 -1058
  33. package/app-node/mcp_tools.test.mjs +7 -0
  34. package/app-node/notification_handler.mjs +89 -0
  35. package/app-node/notification_handler.test.mjs +187 -0
  36. package/app-node/notify.mjs +73 -0
  37. package/app-node/notify.test.mjs +68 -0
  38. package/app-node/plan_dispatcher.mjs +215 -0
  39. package/app-node/plan_dispatcher.test.mjs +101 -0
  40. package/app-node/plan_mode.mjs +203 -0
  41. package/app-node/plan_mode.test.mjs +231 -0
  42. package/app-node/progress_handler.mjs +220 -0
  43. package/app-node/progress_handler.test.mjs +193 -0
  44. package/app-node/progress_speech.mjs +54 -32
  45. package/app-node/progress_speech.test.mjs +12 -3
  46. package/app-node/project_sessions.mjs +5 -2
  47. package/app-node/project_sessions.test.mjs +7 -0
  48. package/app-node/research_mode.mjs +282 -0
  49. package/app-node/research_mode.test.mjs +264 -0
  50. package/app-node/restart_notice.mjs +3 -0
  51. package/app-node/restart_notice.test.mjs +11 -0
  52. package/app-node/session_ontology.mjs +271 -0
  53. package/app-node/session_ontology.test.mjs +130 -0
  54. package/app-node/smart_progress.mjs +94 -0
  55. package/app-node/smart_progress.test.mjs +66 -0
  56. package/app-node/stream_sentencer.mjs +91 -0
  57. package/app-node/stream_sentencer.test.mjs +129 -0
  58. package/app-node/streaming_tts_queue.mjs +52 -0
  59. package/app-node/streaming_tts_queue.test.mjs +64 -0
  60. package/app-node/stt_whisper.mjs +24 -0
  61. package/app-node/stt_whisper.test.mjs +32 -0
  62. package/app-node/text_routing.mjs +22 -0
  63. package/app-node/text_routing.test.mjs +23 -1
  64. package/app-node/tts_backends.mjs +537 -3
  65. package/app-node/tts_backends.test.mjs +454 -0
  66. package/app-node/tts_player.mjs +164 -0
  67. package/app-node/tts_player.test.mjs +202 -0
  68. package/app-node/tts_runtime.mjs +134 -0
  69. package/app-node/tts_runtime.test.mjs +89 -0
  70. package/app-node/tts_settings.mjs +150 -3
  71. package/app-node/tts_settings.test.mjs +204 -0
  72. package/app-node/tts_voice_config.mjs +136 -2
  73. package/app-node/tts_voice_config.test.mjs +94 -0
  74. package/app-node/utterance_router.mjs +216 -0
  75. package/app-node/utterance_router.test.mjs +236 -0
  76. package/app-node/voice_autojoin.mjs +37 -0
  77. package/app-node/voice_autojoin.test.mjs +59 -0
  78. package/app-node/voice_io.mjs +272 -0
  79. package/app-node/voice_io.test.mjs +102 -0
  80. package/app-node/voice_turn_runner.mjs +449 -0
  81. package/app-node/voice_turn_runner.test.mjs +289 -0
  82. package/docs/CONFIGURATION.md +79 -96
  83. package/docs/FRESH_INSTALL.md +105 -63
  84. package/docs/HARNESSES.md +58 -0
  85. package/docs/HARNESS_AIDER.md +50 -0
  86. package/docs/HARNESS_CLAUDE.md +56 -0
  87. package/docs/HARNESS_CODEX.md +56 -0
  88. package/docs/HARNESS_CURSOR.md +45 -0
  89. package/docs/HARNESS_GEMINI.md +45 -0
  90. package/docs/HARNESS_HERMES.md +57 -0
  91. package/docs/HARNESS_OPENCLAW.md +44 -0
  92. package/docs/HARNESS_OPENCODE.md +44 -0
  93. package/docs/HERMES_VOICE.md +65 -0
  94. package/docs/MULTI_INSTANCE.md +16 -0
  95. package/docs/README.md +50 -0
  96. package/docs/RELEASE.md +42 -19
  97. package/docs/ROADMAP.md +53 -0
  98. package/docs/TROUBLESHOOTING.md +126 -0
  99. package/docs/TTS_BACKENDS.md +227 -0
  100. package/docs/USAGE.md +94 -40
  101. package/docs/assets/figures/verbalcoding-flow.svg +1 -1
  102. package/docs/i18n/AGENTS.es.md +34 -0
  103. package/docs/i18n/AGENTS.fr.md +34 -0
  104. package/docs/i18n/AGENTS.ja.md +34 -0
  105. package/docs/i18n/AGENTS.ko.md +34 -0
  106. package/docs/i18n/AGENTS.ru.md +34 -0
  107. package/docs/i18n/AGENTS.zh.md +34 -0
  108. package/docs/i18n/CONFIGURATION.es.md +25 -0
  109. package/docs/i18n/CONFIGURATION.fr.md +25 -0
  110. package/docs/i18n/CONFIGURATION.ja.md +25 -0
  111. package/docs/i18n/CONFIGURATION.ko.md +25 -0
  112. package/docs/i18n/CONFIGURATION.ru.md +25 -0
  113. package/docs/i18n/CONFIGURATION.zh.md +25 -0
  114. package/docs/i18n/FRESH_INSTALL.es.md +27 -2
  115. package/docs/i18n/FRESH_INSTALL.fr.md +27 -2
  116. package/docs/i18n/FRESH_INSTALL.ja.md +27 -2
  117. package/docs/i18n/FRESH_INSTALL.ko.md +27 -2
  118. package/docs/i18n/FRESH_INSTALL.ru.md +27 -2
  119. package/docs/i18n/FRESH_INSTALL.zh.md +27 -2
  120. package/docs/i18n/HARNESSES.es.md +58 -0
  121. package/docs/i18n/HARNESSES.fr.md +58 -0
  122. package/docs/i18n/HARNESSES.ja.md +58 -0
  123. package/docs/i18n/HARNESSES.ko.md +58 -0
  124. package/docs/i18n/HARNESSES.ru.md +58 -0
  125. package/docs/i18n/HARNESSES.zh.md +58 -0
  126. package/docs/i18n/HARNESS_AIDER.es.md +48 -0
  127. package/docs/i18n/HARNESS_AIDER.fr.md +48 -0
  128. package/docs/i18n/HARNESS_AIDER.ja.md +50 -0
  129. package/docs/i18n/HARNESS_AIDER.ko.md +50 -0
  130. package/docs/i18n/HARNESS_AIDER.ru.md +48 -0
  131. package/docs/i18n/HARNESS_AIDER.zh.md +48 -0
  132. package/docs/i18n/HARNESS_CLAUDE.es.md +55 -0
  133. package/docs/i18n/HARNESS_CLAUDE.fr.md +55 -0
  134. package/docs/i18n/HARNESS_CLAUDE.ja.md +56 -0
  135. package/docs/i18n/HARNESS_CLAUDE.ko.md +56 -0
  136. package/docs/i18n/HARNESS_CLAUDE.ru.md +55 -0
  137. package/docs/i18n/HARNESS_CLAUDE.zh.md +56 -0
  138. package/docs/i18n/HARNESS_CODEX.es.md +55 -0
  139. package/docs/i18n/HARNESS_CODEX.fr.md +55 -0
  140. package/docs/i18n/HARNESS_CODEX.ja.md +56 -0
  141. package/docs/i18n/HARNESS_CODEX.ko.md +56 -0
  142. package/docs/i18n/HARNESS_CODEX.ru.md +55 -0
  143. package/docs/i18n/HARNESS_CODEX.zh.md +56 -0
  144. package/docs/i18n/HARNESS_CURSOR.es.md +42 -0
  145. package/docs/i18n/HARNESS_CURSOR.fr.md +42 -0
  146. package/docs/i18n/HARNESS_CURSOR.ja.md +45 -0
  147. package/docs/i18n/HARNESS_CURSOR.ko.md +45 -0
  148. package/docs/i18n/HARNESS_CURSOR.ru.md +42 -0
  149. package/docs/i18n/HARNESS_CURSOR.zh.md +42 -0
  150. package/docs/i18n/HARNESS_GEMINI.es.md +44 -0
  151. package/docs/i18n/HARNESS_GEMINI.fr.md +44 -0
  152. package/docs/i18n/HARNESS_GEMINI.ja.md +45 -0
  153. package/docs/i18n/HARNESS_GEMINI.ko.md +45 -0
  154. package/docs/i18n/HARNESS_GEMINI.ru.md +44 -0
  155. package/docs/i18n/HARNESS_GEMINI.zh.md +45 -0
  156. package/docs/i18n/HARNESS_HERMES.es.md +54 -0
  157. package/docs/i18n/HARNESS_HERMES.fr.md +54 -0
  158. package/docs/i18n/HARNESS_HERMES.ja.md +57 -0
  159. package/docs/i18n/HARNESS_HERMES.ko.md +57 -0
  160. package/docs/i18n/HARNESS_HERMES.ru.md +54 -0
  161. package/docs/i18n/HARNESS_HERMES.zh.md +57 -0
  162. package/docs/i18n/HARNESS_OPENCLAW.es.md +41 -0
  163. package/docs/i18n/HARNESS_OPENCLAW.fr.md +41 -0
  164. package/docs/i18n/HARNESS_OPENCLAW.ja.md +44 -0
  165. package/docs/i18n/HARNESS_OPENCLAW.ko.md +44 -0
  166. package/docs/i18n/HARNESS_OPENCLAW.ru.md +41 -0
  167. package/docs/i18n/HARNESS_OPENCLAW.zh.md +42 -0
  168. package/docs/i18n/HARNESS_OPENCODE.es.md +41 -0
  169. package/docs/i18n/HARNESS_OPENCODE.fr.md +41 -0
  170. package/docs/i18n/HARNESS_OPENCODE.ja.md +44 -0
  171. package/docs/i18n/HARNESS_OPENCODE.ko.md +44 -0
  172. package/docs/i18n/HARNESS_OPENCODE.ru.md +41 -0
  173. package/docs/i18n/HARNESS_OPENCODE.zh.md +44 -0
  174. package/docs/i18n/HERMES_VOICE.es.md +46 -0
  175. package/docs/i18n/HERMES_VOICE.fr.md +46 -0
  176. package/docs/i18n/HERMES_VOICE.ja.md +46 -0
  177. package/docs/i18n/HERMES_VOICE.ko.md +65 -0
  178. package/docs/i18n/HERMES_VOICE.ru.md +46 -0
  179. package/docs/i18n/HERMES_VOICE.zh.md +46 -0
  180. package/docs/i18n/MULTI_INSTANCE.es.md +25 -0
  181. package/docs/i18n/MULTI_INSTANCE.fr.md +25 -0
  182. package/docs/i18n/MULTI_INSTANCE.ja.md +25 -0
  183. package/docs/i18n/MULTI_INSTANCE.ko.md +25 -0
  184. package/docs/i18n/MULTI_INSTANCE.ru.md +25 -0
  185. package/docs/i18n/MULTI_INSTANCE.zh.md +25 -0
  186. package/docs/i18n/README.es.md +20 -134
  187. package/docs/i18n/README.fr.md +20 -134
  188. package/docs/i18n/README.ja.md +20 -134
  189. package/docs/i18n/README.ko.md +20 -133
  190. package/docs/i18n/README.ru.md +20 -134
  191. package/docs/i18n/README.zh.md +20 -133
  192. package/docs/i18n/RELEASE.es.md +26 -1
  193. package/docs/i18n/RELEASE.fr.md +26 -1
  194. package/docs/i18n/RELEASE.ja.md +26 -1
  195. package/docs/i18n/RELEASE.ko.md +26 -1
  196. package/docs/i18n/RELEASE.ru.md +26 -1
  197. package/docs/i18n/RELEASE.zh.md +26 -1
  198. package/docs/i18n/TROUBLESHOOTING.es.md +39 -0
  199. package/docs/i18n/TROUBLESHOOTING.fr.md +39 -0
  200. package/docs/i18n/TROUBLESHOOTING.ja.md +39 -0
  201. package/docs/i18n/TROUBLESHOOTING.ko.md +39 -0
  202. package/docs/i18n/TROUBLESHOOTING.ru.md +39 -0
  203. package/docs/i18n/TROUBLESHOOTING.zh.md +39 -0
  204. package/docs/i18n/USAGE.es.md +25 -0
  205. package/docs/i18n/USAGE.fr.md +25 -0
  206. package/docs/i18n/USAGE.ja.md +25 -0
  207. package/docs/i18n/USAGE.ko.md +25 -0
  208. package/docs/i18n/USAGE.ru.md +25 -0
  209. package/docs/i18n/USAGE.zh.md +25 -0
  210. package/docs/superpowers/plans/2026-05-13-phase1-streaming-pipeline.md +122 -0
  211. package/docs/superpowers/plans/2026-05-13-phase10-push-notifications.md +152 -0
  212. package/docs/superpowers/plans/2026-05-13-phase2-agent-adapters.md +242 -0
  213. package/docs/superpowers/plans/2026-05-13-phase6-smart-progress.md +172 -0
  214. package/docs/superpowers/plans/2026-05-13-phase7-voice-plan-mode.md +108 -0
  215. package/docs/superpowers/plans/2026-05-14-cross-agent-voice-transfer.md +625 -0
  216. package/docs/superpowers/plans/2026-05-21-audio-overview-narrated-diffs.md +95 -0
  217. package/docs/superpowers/plans/2026-05-21-autoresearch-ontology.md +83 -0
  218. package/docs/superpowers/plans/2026-05-21-phase11-push-to-talk-wakeword-v2.md +77 -0
  219. package/docs/superpowers/plans/2026-05-21-phase12-multi-user-voice.md +147 -0
  220. package/docs/superpowers/plans/2026-05-21-phase14-verbalbench.md +136 -0
  221. package/docs/superpowers/plans/2026-05-21-phase15-phone-companion.md +72 -0
  222. package/integrations/fireredtts2/mlx_llm.py +183 -0
  223. package/integrations/fireredtts2/synth.py +156 -0
  224. package/integrations/fireredtts2/synth_mlx.py +196 -0
  225. package/integrations/mlxaudio/synth.py +74 -0
  226. package/integrations/neuttsair/synth.py +104 -0
  227. package/integrations/omnivoice/synth.py +110 -0
  228. package/package.json +7 -1
  229. package/scripts/cli.mjs +88 -3
  230. package/scripts/doctor.mjs +115 -4
  231. package/scripts/install.mjs +20 -2
  232. package/scripts/install_fireredtts2.sh +109 -0
  233. package/scripts/install_mlxaudio.sh +34 -0
  234. package/scripts/install_mossttsnano.sh +46 -0
  235. package/scripts/postinstall.mjs +34 -0
@@ -0,0 +1,57 @@
1
+ # Hermes Agent — 하니스 노트
2
+
3
+ <p align="center">
4
+ <a href="../../README.ko.md">README</a> ·
5
+ <a href="HARNESSES.ko.md">하니스</a> ·
6
+ <a href="USAGE.ko.md">사용법</a> ·
7
+ <a href="CONFIGURATION.ko.md">설정</a>
8
+ </p>
9
+
10
+ Hermes Agent는 VerbalCoding의 기본 백엔드이고, 진짜 세션 재개 계약이 있는 유일한 하니스야. 턴 사이 컨텍스트가 깔끔하게 유지돼. Hermes 내장 `/voice` 슬래시 명령과의 포지셔닝 비교는 [HERMES_VOICE.ko.md](./HERMES_VOICE.ko.md).
11
+
12
+ ## 설치
13
+
14
+ 상위 Hermes Agent 설치 가이드: <https://hermes-agent.nousresearch.com>.
15
+
16
+ CLI 단독 동작부터 확인해줘:
17
+
18
+ ```bash
19
+ hermes chat -Q -q "hello"
20
+ ```
21
+
22
+ ## VerbalCoding 설정
23
+
24
+ ```bash
25
+ # .env
26
+ AGENT_BACKEND=hermes
27
+ # 선택
28
+ HERMES_COMMAND="hermes chat -Q -q" # 기본값
29
+ HERMES_HOME=/Users/you/.hermes # 인스턴스별 Hermes 홈
30
+ HERMES_PROJECT_CONTEXT="Project session: ..."
31
+ HERMES_TASK_TIMEOUT_MS=0 # 0 = 무제한
32
+ HERMES_CHAT_TIMEOUT_MS=45000
33
+ HERMES_WORKDIR=/Users/you/code/your-project
34
+ ```
35
+
36
+ 세션 파일 기본 위치는 `<repo>/.verbalcoding-session` (덮어쓰려면 `HERMES_SESSION_FILE`).
37
+
38
+ ## 세션 재개
39
+
40
+ Hermes는 내장 어댑터 중 유일하게 세션 재개를 지원해. 턴이 성공할 때마다 새 `session_id`를 디스크에 쓰고 다음 호출에 `--resume <id>`를 앞에 붙여. `!session reset`(또는 `!reset-session`)으로 그 파일을 지울 수 있어.
41
+
42
+ Hermes가 stderr에 `session_id:`를 emit하기 전에 턴이 abort되면, 어댑터가 `~/.hermes/sessions/session_<id>.json`을 직접 읽어서 마지막 어시스턴트 메시지를 복구해.
43
+
44
+ ## 상세 진행
45
+
46
+ 상세 모드에서는 어댑터가 Hermes의 `-Q` quiet 플래그를 떼서 stdout으로 `┊ <emoji> <tool>` 미리보기가 흘러나와. 이걸 한 줄짜리 진행 이벤트(파일 읽기, 웹 검색, 터미널 실행 등)로 요약해. 상세 모드가 꺼져 있으면 박스 안의 최종 답변만 음성으로 나가.
47
+
48
+ ## Hermes로 전환하는 음성 표현
49
+
50
+ - en: `"switch to Hermes"`, `"ask Hermes ..."`
51
+ - ko: `"헤르메스로 전환"`, `"헤르메스한테 물어봐"`
52
+
53
+ ## 함정
54
+
55
+ - 크로스 에이전트 핸드오프 시 TTS 접두사는 로케일에 맞춰서 `"Hermes says: "` / `"헤르메스: "`로 붙어.
56
+ - `HERMES_HOME`은 프로젝트별 격리에 가장 많이 쓰이는 노브야. 인스턴스 `.env`는 보통 `HERMES_HOME=/Users/you/.hermes/profiles/<project>` 식으로 설정.
57
+ - 상세 모드 켜고도 Hermes가 빈 박스로 끝나는 경우(타임아웃 등), 어댑터가 포기하기 전에 세션 JSON을 긁어서 최종 답변을 찾아내.
@@ -0,0 +1,54 @@
1
+ # Hermes Agent — Заметки по harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.ru.md">README</a> ·
5
+ <a href="HARNESSES.ru.md">Harness-ы</a> ·
6
+ <a href="USAGE.ru.md">Использование</a> ·
7
+ <a href="CONFIGURATION.ru.md">Настройка</a>
8
+ </p>
9
+
10
+ Hermes Agent — backend VerbalCoding по умолчанию и единственный harness с настоящим контрактом возобновления сессии: контекст между turn-ами держится чисто. Сравнение со встроенным `/voice` Hermes — в [HERMES_VOICE.ru.md](./HERMES_VOICE.ru.md).
11
+
12
+ ## Установка
13
+
14
+ Официальный гайд: <https://hermes-agent.nousresearch.com>. Сначала проверьте CLI:
15
+
16
+ ```bash
17
+ hermes chat -Q -q "hello"
18
+ ```
19
+
20
+ ## Настройка
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=hermes
25
+ HERMES_COMMAND="hermes chat -Q -q"
26
+ HERMES_HOME=/Users/you/.hermes
27
+ HERMES_PROJECT_CONTEXT="Project session: ..."
28
+ HERMES_TASK_TIMEOUT_MS=0
29
+ HERMES_CHAT_TIMEOUT_MS=45000
30
+ HERMES_WORKDIR=/Users/you/code/your-project
31
+ ```
32
+
33
+ Файл сессии лежит в `<repo>/.verbalcoding-session` (можно переопределить через `HERMES_SESSION_FILE`).
34
+
35
+ ## Возобновление сессии
36
+
37
+ Hermes — единственный встроенный адаптер с возобновлением. После каждого успешного turn адаптер пишет новый `session_id` на диск и добавляет `--resume <id>` к следующему вызову. `!session reset` очищает файл.
38
+
39
+ Если turn был abort до того, как Hermes выдал `session_id:` в stderr, адаптер читает `~/.hermes/sessions/session_<id>.json`, чтобы восстановить последний ответ ассистента.
40
+
41
+ ## Подробный прогресс
42
+
43
+ В подробном режиме адаптер убирает флаг `-Q`, и в stdout начинают идти превью `┊ <emoji> <tool>`. Они сводятся в однострочные события прогресса (чтение файлов, веб-поиск, терминал). Без подробного режима в голос идёт только финальный ответ в рамке.
44
+
45
+ ## Голосовые фразы для переключения на Hermes
46
+
47
+ - en: `"switch to Hermes"`, `"ask Hermes ..."`
48
+ - ru: `"переключись на Hermes"`, `"спроси Hermes"`
49
+
50
+ ## Подводные камни
51
+
52
+ - TTS-префикс при handoff локализован: `"Hermes says: "` / `"Hermes: "`.
53
+ - `HERMES_HOME` — самый частый рычаг изоляции проекта; обычно `HERMES_HOME=/Users/you/.hermes/profiles/<project>` в `.env` инстанса.
54
+ - В подробном режиме при пустой рамке от Hermes (таймаут) адаптер залезет в JSON сессии за финальным ответом.
@@ -0,0 +1,57 @@
1
+ # Hermes Agent — Harness 说明
2
+
3
+ <p align="center">
4
+ <a href="../../README.zh.md">README</a> ·
5
+ <a href="HARNESSES.zh.md">Harness</a> ·
6
+ <a href="USAGE.zh.md">使用</a> ·
7
+ <a href="CONFIGURATION.zh.md">配置</a>
8
+ </p>
9
+
10
+ Hermes Agent 是 VerbalCoding 的默认后端,也是唯一拥有真正会话续接契约的 harness。turn 之间上下文保持干净。关于 Hermes 内建 `/voice` 的对比,见 [HERMES_VOICE.zh.md](./HERMES_VOICE.zh.md)。
11
+
12
+ ## 安装
13
+
14
+ 参考上游 Hermes Agent 安装指引: <https://hermes-agent.nousresearch.com>。
15
+
16
+ 先确认 CLI 单独可用:
17
+
18
+ ```bash
19
+ hermes chat -Q -q "hello"
20
+ ```
21
+
22
+ ## VerbalCoding 配置
23
+
24
+ ```bash
25
+ # .env
26
+ AGENT_BACKEND=hermes
27
+ # 可选
28
+ HERMES_COMMAND="hermes chat -Q -q" # 默认
29
+ HERMES_HOME=/Users/you/.hermes # 每实例 Hermes 主目录
30
+ HERMES_PROJECT_CONTEXT="Project session: ..."
31
+ HERMES_TASK_TIMEOUT_MS=0 # 0 = 不限
32
+ HERMES_CHAT_TIMEOUT_MS=45000
33
+ HERMES_WORKDIR=/Users/you/code/your-project
34
+ ```
35
+
36
+ 会话文件默认 `<repo>/.verbalcoding-session` (用 `HERMES_SESSION_FILE` 覆盖)。
37
+
38
+ ## 会话续接
39
+
40
+ Hermes 是内建适配器中唯一支持会话续接的。每次成功 turn 后适配器将新 `session_id` 写入磁盘,下次调用前置 `--resume <id>`。`!session reset` (或 `!reset-session`) 清除。
41
+
42
+ 若 Hermes 在 stderr 输出 `session_id:` 之前被 abort,适配器会读取 `~/.hermes/sessions/session_<id>.json` 找回最后一条助手消息。
43
+
44
+ ## 详细进度
45
+
46
+ 详细模式下,适配器去掉 Hermes 的 `-Q` 静默标志,stdout 会流出 `┊ <emoji> <tool>` 预览,被汇总为一行进度事件 (文件读取、网页搜索、终端执行等)。非详细模式只把最终框内回答念出。
47
+
48
+ ## 切到 Hermes 的语音表述
49
+
50
+ - en: `"switch to Hermes"`、`"ask Hermes ..."`
51
+ - zh: `"切到 Hermes"`、`"问 Hermes"`
52
+
53
+ ## 坑
54
+
55
+ - 跨代理切换时的 TTS 前缀按语言: `"Hermes says: "` / `"Hermes:"`。
56
+ - `HERMES_HOME` 是最常用的项目级隔离开关。实例 `.env` 通常设 `HERMES_HOME=/Users/you/.hermes/profiles/<project>`。
57
+ - 详细模式开启但 Hermes 以空框结束 (超时) 时,适配器会在放弃前抓会话 JSON 找最终回答。
@@ -0,0 +1,41 @@
1
+ # OpenClaw — Notas del Harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.es.md">README</a> ·
5
+ <a href="HARNESSES.es.md">Harnesses</a> ·
6
+ <a href="USAGE.es.md">Uso</a> ·
7
+ <a href="CONFIGURATION.es.md">Configuración</a>
8
+ </p>
9
+
10
+ OpenClaw es un agente de codificación de terminal open source. VerbalCoding lo invoca con `openclaw run`.
11
+
12
+ ## Instalación
13
+
14
+ ```bash
15
+ openclaw run "hello"
16
+ ```
17
+
18
+ ## Configuración
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=openclaw
23
+ OPENCLAW_COMMAND="openclaw run"
24
+ AGENT_PROJECT_CONTEXT="..."
25
+ AGENT_WORKDIR=/Users/you/code/your-project
26
+ AGENT_CHAT_TIMEOUT_MS=45000
27
+ AGENT_TASK_TIMEOUT_MS=0
28
+ ```
29
+
30
+ ## Frases de voz para cambiar a OpenClaw
31
+
32
+ - en: `"switch to OpenClaw"`, `"switch to open claw"`
33
+ - es: `"cambia a OpenClaw"`
34
+
35
+ Alias: `openclaw`, `open claw`.
36
+
37
+ ## Trampas
38
+
39
+ - **Sin reanudación por defecto.** Añade la flag adecuada en `OPENCLAW_COMMAND` si tu build la soporta.
40
+ - **Progreso detallado.** Igual que OpenCode: keywords + posible LLM summarizer.
41
+ - **Colisión de nombres.** Los alias `openclaw` y la etiqueta `OpenClaw` se distinguen claramente de `claude` / `claude code`; el modo strict del router no los confunde.
@@ -0,0 +1,41 @@
1
+ # OpenClaw — Notes Harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.fr.md">README</a> ·
5
+ <a href="HARNESSES.fr.md">Harnesses</a> ·
6
+ <a href="USAGE.fr.md">Utilisation</a> ·
7
+ <a href="CONFIGURATION.fr.md">Configuration</a>
8
+ </p>
9
+
10
+ OpenClaw est un agent terminal open source. VerbalCoding l'invoque via `openclaw run`.
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ openclaw run "hello"
16
+ ```
17
+
18
+ ## Configuration
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=openclaw
23
+ OPENCLAW_COMMAND="openclaw run"
24
+ AGENT_PROJECT_CONTEXT="..."
25
+ AGENT_WORKDIR=/Users/you/code/your-project
26
+ AGENT_CHAT_TIMEOUT_MS=45000
27
+ AGENT_TASK_TIMEOUT_MS=0
28
+ ```
29
+
30
+ ## Phrases vocales pour basculer vers OpenClaw
31
+
32
+ - en: `"switch to OpenClaw"`, `"switch to open claw"`
33
+ - fr: `"passe à OpenClaw"`
34
+
35
+ Alias : `openclaw`, `open claw`.
36
+
37
+ ## Pièges
38
+
39
+ - **Pas de reprise par défaut.** Ajoutez le flag adéquat à `OPENCLAW_COMMAND` si la build le supporte.
40
+ - **Progression verbeuse.** Identique à OpenCode.
41
+ - **Collision de noms.** Les alias `openclaw` et l'étiquette `OpenClaw` se distinguent clairement de `claude` / `claude code` ; le mode strict du routeur ne les confond pas.
@@ -0,0 +1,44 @@
1
+ # OpenClaw — ハーネスノート
2
+
3
+ <p align="center">
4
+ <a href="../../README.ja.md">README</a> ·
5
+ <a href="HARNESSES.ja.md">ハーネス</a> ·
6
+ <a href="USAGE.ja.md">使い方</a> ·
7
+ <a href="CONFIGURATION.ja.md">設定</a>
8
+ </p>
9
+
10
+ OpenClaw はオープンソースのターミナルコーディングエージェント。VerbalCoding は `openclaw run` で呼び出します。
11
+
12
+ ## インストール
13
+
14
+ 上流 OpenClaw インストールガイドに従い、確認:
15
+
16
+ ```bash
17
+ openclaw run "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 設定
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=openclaw
25
+ # 任意
26
+ OPENCLAW_COMMAND="openclaw run" # 既定
27
+ AGENT_PROJECT_CONTEXT="..."
28
+ AGENT_WORKDIR=/Users/you/code/your-project
29
+ AGENT_CHAT_TIMEOUT_MS=45000
30
+ AGENT_TASK_TIMEOUT_MS=0
31
+ ```
32
+
33
+ ## OpenClaw へ切り替える音声表現
34
+
35
+ - en: `"switch to OpenClaw"`, `"ask OpenClaw ..."`, `"switch to open claw"`
36
+ - ja: `"OpenClaw に切り替えて"`
37
+
38
+ エイリアス: `openclaw`, `open claw`。
39
+
40
+ ## 罠
41
+
42
+ - **既定コマンドはセッション再開なし。** ビルドが resume フラグをサポートしていれば `OPENCLAW_COMMAND` に追加。
43
+ - **詳細進捗。** OpenCode と同じく、`SMART_PROGRESS_API_KEY` なしではキーワードベースのラベルにフォールバック。
44
+ - **名前衝突。** パーサのエイリアス `openclaw` とラベル `OpenClaw` は `claude` / `claude code` と明確に区別。strict モードのルータが両者を混同しません。
@@ -0,0 +1,44 @@
1
+ # OpenClaw — 하니스 노트
2
+
3
+ <p align="center">
4
+ <a href="../../README.ko.md">README</a> ·
5
+ <a href="HARNESSES.ko.md">하니스</a> ·
6
+ <a href="USAGE.ko.md">사용법</a> ·
7
+ <a href="CONFIGURATION.ko.md">설정</a>
8
+ </p>
9
+
10
+ OpenClaw는 오픈소스 터미널 코딩 에이전트. VerbalCoding은 `openclaw run`으로 호출해.
11
+
12
+ ## 설치
13
+
14
+ 상위 OpenClaw 설치 가이드를 따르고 확인:
15
+
16
+ ```bash
17
+ openclaw run "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 설정
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=openclaw
25
+ # 선택
26
+ OPENCLAW_COMMAND="openclaw run" # 기본값
27
+ AGENT_PROJECT_CONTEXT="..."
28
+ AGENT_WORKDIR=/Users/you/code/your-project
29
+ AGENT_CHAT_TIMEOUT_MS=45000
30
+ AGENT_TASK_TIMEOUT_MS=0
31
+ ```
32
+
33
+ ## OpenClaw로 전환하는 음성 표현
34
+
35
+ - en: `"switch to OpenClaw"`, `"ask OpenClaw ..."`, `"switch to open claw"`
36
+ - ko: `"openclaw로 전환"`
37
+
38
+ 매처가 받는 별칭: `openclaw`, `open claw`.
39
+
40
+ ## 함정
41
+
42
+ - **기본 명령에는 세션 재개 없음.** 빌드가 resume 플래그를 지원하면 `OPENCLAW_COMMAND`에 추가.
43
+ - **상세 진행.** OpenCode와 동일 — `SMART_PROGRESS_API_KEY`가 없으면 키워드 기반 라벨로 fallback.
44
+ - **이름 혼동.** 파서 별칭 `openclaw`와 사용자용 라벨 `OpenClaw`는 `claude` / `claude code`와 명확히 구분돼. strict 모드 라우터가 둘을 혼동하지 않아.
@@ -0,0 +1,41 @@
1
+ # OpenClaw — Заметки по harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.ru.md">README</a> ·
5
+ <a href="HARNESSES.ru.md">Harness-ы</a> ·
6
+ <a href="USAGE.ru.md">Использование</a> ·
7
+ <a href="CONFIGURATION.ru.md">Настройка</a>
8
+ </p>
9
+
10
+ OpenClaw — open-source терминальный кодинг-агент. VerbalCoding вызывает его через `openclaw run`.
11
+
12
+ ## Установка
13
+
14
+ ```bash
15
+ openclaw run "hello"
16
+ ```
17
+
18
+ ## Настройка
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=openclaw
23
+ OPENCLAW_COMMAND="openclaw run"
24
+ AGENT_PROJECT_CONTEXT="..."
25
+ AGENT_WORKDIR=/Users/you/code/your-project
26
+ AGENT_CHAT_TIMEOUT_MS=45000
27
+ AGENT_TASK_TIMEOUT_MS=0
28
+ ```
29
+
30
+ ## Голосовые фразы для переключения на OpenClaw
31
+
32
+ - en: `"switch to OpenClaw"`, `"switch to open claw"`
33
+ - ru: `"переключись на OpenClaw"`
34
+
35
+ Алиасы: `openclaw`, `open claw`.
36
+
37
+ ## Подводные камни
38
+
39
+ - **По умолчанию нет возобновления.** Если сборка поддерживает — добавьте флаг в `OPENCLAW_COMMAND`.
40
+ - **Подробный прогресс.** Как у OpenCode.
41
+ - **Коллизия имён.** Алиас `openclaw` и метка `OpenClaw` чётко отделены от `claude` / `claude code`; strict-режим маршрутизатора их не путает.
@@ -0,0 +1,42 @@
1
+ # OpenClaw — Harness 说明
2
+
3
+ <p align="center">
4
+ <a href="../../README.zh.md">README</a> ·
5
+ <a href="HARNESSES.zh.md">Harness</a> ·
6
+ <a href="USAGE.zh.md">使用</a> ·
7
+ <a href="CONFIGURATION.zh.md">配置</a>
8
+ </p>
9
+
10
+ OpenClaw 是开源终端编码代理。VerbalCoding 通过 `openclaw run` 驱动。
11
+
12
+ ## 安装
13
+
14
+ ```bash
15
+ openclaw run "hello"
16
+ ```
17
+
18
+ ## VerbalCoding 配置
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=openclaw
23
+ # 可选
24
+ OPENCLAW_COMMAND="openclaw run"
25
+ AGENT_PROJECT_CONTEXT="..."
26
+ AGENT_WORKDIR=/Users/you/code/your-project
27
+ AGENT_CHAT_TIMEOUT_MS=45000
28
+ AGENT_TASK_TIMEOUT_MS=0
29
+ ```
30
+
31
+ ## 切到 OpenClaw 的语音表述
32
+
33
+ - en: `"switch to OpenClaw"`、`"switch to open claw"`
34
+ - zh: `"切到 OpenClaw"`
35
+
36
+ 别名: `openclaw`、`open claw`。
37
+
38
+ ## 坑
39
+
40
+ - **默认命令无会话续接。** 若构建支持 resume,加入 `OPENCLAW_COMMAND`。
41
+ - **详细进度。** 与 OpenCode 相同 — 无 `SMART_PROGRESS_API_KEY` 时回退到关键字标签。
42
+ - **名称冲突。** 解析器别名 `openclaw` 与用户标签 `OpenClaw` 与 `claude` / `claude code` 明确区分,strict 模式不会混淆。
@@ -0,0 +1,41 @@
1
+ # OpenCode — Notas del Harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.es.md">README</a> ·
5
+ <a href="HARNESSES.es.md">Harnesses</a> ·
6
+ <a href="USAGE.es.md">Uso</a> ·
7
+ <a href="CONFIGURATION.es.md">Configuración</a>
8
+ </p>
9
+
10
+ OpenCode es un agente de codificación de terminal open source. VerbalCoding lo invoca con `opencode run`.
11
+
12
+ ## Instalación
13
+
14
+ ```bash
15
+ opencode run "hello"
16
+ ```
17
+
18
+ ## Configuración
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=opencode
23
+ OPENCODE_COMMAND="opencode run"
24
+ AGENT_PROJECT_CONTEXT="..."
25
+ AGENT_WORKDIR=/Users/you/code/your-project
26
+ AGENT_CHAT_TIMEOUT_MS=45000
27
+ AGENT_TASK_TIMEOUT_MS=0
28
+ ```
29
+
30
+ ## Frases de voz para cambiar a OpenCode
31
+
32
+ - en: `"switch to OpenCode"`, `"switch to open code"`
33
+ - es: `"cambia a OpenCode"`
34
+
35
+ Alias: `opencode`, `open code`.
36
+
37
+ ## Trampas
38
+
39
+ - **Sin reanudación por defecto.** Si tu build soporta resume, añádelo: `OPENCODE_COMMAND="opencode run --resume"`.
40
+ - **Selección de modelo.** Añade `--model` u otras flags en `OPENCODE_COMMAND`.
41
+ - **Progreso detallado.** Coincidencia por keywords sobre stdout/stderr (lectura, búsqueda, terminal). Sin `SMART_PROGRESS_API_KEY`, fallback a labels raw.
@@ -0,0 +1,41 @@
1
+ # OpenCode — Notes Harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.fr.md">README</a> ·
5
+ <a href="HARNESSES.fr.md">Harnesses</a> ·
6
+ <a href="USAGE.fr.md">Utilisation</a> ·
7
+ <a href="CONFIGURATION.fr.md">Configuration</a>
8
+ </p>
9
+
10
+ OpenCode est un agent terminal open source. VerbalCoding l'invoque via `opencode run`.
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ opencode run "hello"
16
+ ```
17
+
18
+ ## Configuration
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=opencode
23
+ OPENCODE_COMMAND="opencode run"
24
+ AGENT_PROJECT_CONTEXT="..."
25
+ AGENT_WORKDIR=/Users/you/code/your-project
26
+ AGENT_CHAT_TIMEOUT_MS=45000
27
+ AGENT_TASK_TIMEOUT_MS=0
28
+ ```
29
+
30
+ ## Phrases vocales pour basculer vers OpenCode
31
+
32
+ - en: `"switch to OpenCode"`, `"switch to open code"`
33
+ - fr: `"passe à OpenCode"`
34
+
35
+ Alias : `opencode`, `open code`.
36
+
37
+ ## Pièges
38
+
39
+ - **Pas de reprise par défaut.** Si votre build supporte resume, ajoutez le flag dans `OPENCODE_COMMAND`.
40
+ - **Choix de modèle.** Ajoutez `--model` ou autres flags dans `OPENCODE_COMMAND`.
41
+ - **Progression verbeuse.** Matching par mots-clés sur stdout/stderr ; sans `SMART_PROGRESS_API_KEY`, fallback sur les labels bruts.
@@ -0,0 +1,44 @@
1
+ # OpenCode — ハーネスノート
2
+
3
+ <p align="center">
4
+ <a href="../../README.ja.md">README</a> ·
5
+ <a href="HARNESSES.ja.md">ハーネス</a> ·
6
+ <a href="USAGE.ja.md">使い方</a> ·
7
+ <a href="CONFIGURATION.ja.md">設定</a>
8
+ </p>
9
+
10
+ OpenCode はオープンソースのターミナルコーディングエージェント。VerbalCoding は `opencode run` で呼び出します。
11
+
12
+ ## インストール
13
+
14
+ 上流 OpenCode インストールガイドに従い、確認:
15
+
16
+ ```bash
17
+ opencode run "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 設定
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=opencode
25
+ # 任意
26
+ OPENCODE_COMMAND="opencode run" # 既定
27
+ AGENT_PROJECT_CONTEXT="..."
28
+ AGENT_WORKDIR=/Users/you/code/your-project
29
+ AGENT_CHAT_TIMEOUT_MS=45000
30
+ AGENT_TASK_TIMEOUT_MS=0
31
+ ```
32
+
33
+ ## OpenCode へ切り替える音声表現
34
+
35
+ - en: `"switch to OpenCode"`, `"ask OpenCode ..."`, `"switch to open code"`
36
+ - ja: `"OpenCode に切り替えて"`
37
+
38
+ エイリアス: `opencode`, `open code`。
39
+
40
+ ## 罠
41
+
42
+ - **既定コマンドはセッション再開なし。** OpenCode ビルドが resume フラグをサポートしていれば `OPENCODE_COMMAND="opencode run --resume"` のように付与 (アダプタは prompt を最後の positional 引数として渡す)。
43
+ - **モデル選択。** OpenCode ビルドが `--model` フラグを要求するなら `OPENCODE_COMMAND` に追加。
44
+ - **詳細進捗。** stdout/stderr のイベントをキーワードでマッチ (ファイル読み込み、Web 検索、ターミナル等)。`SMART_PROGRESS_API_KEY` なしでは raw ラベルにフォールバック。
@@ -0,0 +1,44 @@
1
+ # OpenCode — 하니스 노트
2
+
3
+ <p align="center">
4
+ <a href="../../README.ko.md">README</a> ·
5
+ <a href="HARNESSES.ko.md">하니스</a> ·
6
+ <a href="USAGE.ko.md">사용법</a> ·
7
+ <a href="CONFIGURATION.ko.md">설정</a>
8
+ </p>
9
+
10
+ OpenCode는 오픈소스 터미널 코딩 에이전트. VerbalCoding은 `opencode run`으로 호출해.
11
+
12
+ ## 설치
13
+
14
+ 상위 OpenCode 설치 가이드를 따르고 확인:
15
+
16
+ ```bash
17
+ opencode run "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 설정
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=opencode
25
+ # 선택
26
+ OPENCODE_COMMAND="opencode run" # 기본값
27
+ AGENT_PROJECT_CONTEXT="..."
28
+ AGENT_WORKDIR=/Users/you/code/your-project
29
+ AGENT_CHAT_TIMEOUT_MS=45000
30
+ AGENT_TASK_TIMEOUT_MS=0
31
+ ```
32
+
33
+ ## OpenCode로 전환하는 음성 표현
34
+
35
+ - en: `"switch to OpenCode"`, `"ask OpenCode ..."`, `"switch to open code"`
36
+ - ko: `"opencode로 전환"`, `"오픈코드로 전환"`
37
+
38
+ 매처가 받는 별칭: `opencode`, `open code`.
39
+
40
+ ## 함정
41
+
42
+ - **기본 명령에는 세션 재개 없음.** 사용 중인 OpenCode 빌드가 resume 플래그를 지원하면 `OPENCODE_COMMAND="opencode run --resume"`처럼 붙여줘 (어댑터는 prompt를 마지막 positional 인자로 넘김).
43
+ - **모델 선택.** OpenCode 빌드가 `--model` 플래그를 요구하면 `OPENCODE_COMMAND`에 그대로 추가.
44
+ - **상세 진행.** stdout/stderr에 나오는 이벤트가 키워드 매칭으로 잡혀 (파일 읽기, 웹 검색, 터미널). `SMART_PROGRESS_API_KEY`가 없으면 bridge가 raw 라벨로 fallback.
@@ -0,0 +1,41 @@
1
+ # OpenCode — Заметки по harness
2
+
3
+ <p align="center">
4
+ <a href="../../README.ru.md">README</a> ·
5
+ <a href="HARNESSES.ru.md">Harness-ы</a> ·
6
+ <a href="USAGE.ru.md">Использование</a> ·
7
+ <a href="CONFIGURATION.ru.md">Настройка</a>
8
+ </p>
9
+
10
+ OpenCode — open-source терминальный кодинг-агент. VerbalCoding вызывает его через `opencode run`.
11
+
12
+ ## Установка
13
+
14
+ ```bash
15
+ opencode run "hello"
16
+ ```
17
+
18
+ ## Настройка
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=opencode
23
+ OPENCODE_COMMAND="opencode run"
24
+ AGENT_PROJECT_CONTEXT="..."
25
+ AGENT_WORKDIR=/Users/you/code/your-project
26
+ AGENT_CHAT_TIMEOUT_MS=45000
27
+ AGENT_TASK_TIMEOUT_MS=0
28
+ ```
29
+
30
+ ## Голосовые фразы для переключения на OpenCode
31
+
32
+ - en: `"switch to OpenCode"`, `"switch to open code"`
33
+ - ru: `"переключись на OpenCode"`
34
+
35
+ Алиасы: `opencode`, `open code`.
36
+
37
+ ## Подводные камни
38
+
39
+ - **По умолчанию нет возобновления.** Если ваша сборка поддерживает resume — добавьте флаг в `OPENCODE_COMMAND`.
40
+ - **Выбор модели.** Добавляйте `--model` и прочие флаги прямо в `OPENCODE_COMMAND`.
41
+ - **Подробный прогресс.** Матчинг по ключевым словам по stdout/stderr; без `SMART_PROGRESS_API_KEY` fallback на сырые лейблы.