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,45 @@
1
+ # Cursor CLI — ハーネスノート
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
+ Cursor CLI (`cursor-agent`) は Cursor のターミナルエージェント。VerbalCoding は `cursor-agent --print --prompt` で呼び出し、STT 結果を prompt 値として渡します。`--print` は非対話実行を維持。
11
+
12
+ ## インストール
13
+
14
+ 上流 Cursor CLI インストールガイドに従い、確認:
15
+
16
+ ```bash
17
+ cursor-agent --print --prompt "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 設定
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=cursor # 'cursor-cli' エイリアス可
25
+ # 任意
26
+ CURSOR_COMMAND="cursor-agent --print --prompt" # 既定
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
+ ## Cursor へ切り替える音声表現
34
+
35
+ - en: `"switch to Cursor"`, `"ask Cursor ..."`, `"switch to cursor cli"`, `"switch to cursor agent"`
36
+ - ja: `"Cursor に切り替えて"`, `"Cursor に聞いて"`
37
+
38
+ エイリアス: `cursor`, `cursor cli`, `cursor-cli`, `cursor agent`, `cursor-agent`。
39
+
40
+ ## 罠
41
+
42
+ - **prompt 位置。** `--prompt` は値を後続させるため、VerbalCoding の shell 認識 argv ビルダーが STT 結果を最後の positional 引数に置きます。`CURSOR_COMMAND` は `--prompt` で終わる必要あり。
43
+ - **エディタ副作用。** Cursor CLI はワーキングディレクトリに cursor 関連状態ファイルを書く可能性。音声専用フローで意外な場合は分離プロジェクトディレクトリを `AGENT_WORKDIR` に設定。
44
+ - **セッション再開なし。** ターン間連続性は `AGENT_PROJECT_CONTEXT` と、他ハーネスから戻る際のクロスエージェントハンドオフブロックに依存。
45
+ - **patch 安全策。** Cursor が diff 中に中断された場合、bridge は diff を読み上げません。
@@ -0,0 +1,45 @@
1
+ # Cursor CLI — 하니스 노트
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
+ Cursor CLI(`cursor-agent`)는 Cursor의 터미널 에이전트. VerbalCoding은 `cursor-agent --print --prompt`로 호출하면서 STT 결과를 prompt 값으로 넘겨. `--print`는 실행을 non-interactive로 유지.
11
+
12
+ ## 설치
13
+
14
+ 상위 Cursor CLI 설치 가이드를 따르고 확인:
15
+
16
+ ```bash
17
+ cursor-agent --print --prompt "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 설정
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=cursor # 'cursor-cli' 별칭도 허용
25
+ # 선택
26
+ CURSOR_COMMAND="cursor-agent --print --prompt" # 기본값
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
+ ## Cursor로 전환하는 음성 표현
34
+
35
+ - en: `"switch to Cursor"`, `"ask Cursor ..."`, `"switch to cursor cli"`, `"switch to cursor agent"`
36
+ - ko: `"커서로 전환"`, `"cursor한테 물어봐"`
37
+
38
+ 매처가 받는 별칭: `cursor`, `cursor cli`, `cursor-cli`, `cursor agent`, `cursor-agent`.
39
+
40
+ ## 함정
41
+
42
+ - **Prompt 위치.** `--prompt`는 값을 뒤에 받는데, VerbalCoding의 shell-aware argv 빌더가 STT 결과를 마지막 positional 인자로 두니까 `CURSOR_COMMAND`는 `--prompt`로 끝나야 해.
43
+ - **에디터 부수 효과.** Cursor CLI는 working directory에 cursor 관련 상태 파일을 만질 수 있어. 음성 전용 흐름에선 놀랍게 느껴질 수 있으니 격리된 프로젝트 디렉터리로 `AGENT_WORKDIR`를 지정해.
44
+ - **세션 재개 없음.** 턴 사이 연속성은 `AGENT_PROJECT_CONTEXT` + 다른 하니스에서 돌아올 때의 크로스 에이전트 핸드오프 블록에 의존.
45
+ - **Patch 안전장치.** Cursor가 diff를 반환 중 interrupt되면 bridge는 diff를 음성으로 안 읽어.
@@ -0,0 +1,42 @@
1
+ # Cursor CLI — Заметки по 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
+ Cursor CLI (`cursor-agent`) — терминальный агент Cursor. VerbalCoding вызывает его через `cursor-agent --print --prompt`, передавая расшифровку значением `--prompt`. `--print` держит запуск не интерактивным.
11
+
12
+ ## Установка
13
+
14
+ ```bash
15
+ cursor-agent --print --prompt "hello"
16
+ ```
17
+
18
+ ## Настройка
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=cursor # алиас 'cursor-cli' принимается
23
+ CURSOR_COMMAND="cursor-agent --print --prompt"
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
+ ## Голосовые фразы для переключения на Cursor
31
+
32
+ - en: `"switch to Cursor"`, `"switch to cursor cli"`, `"switch to cursor agent"`
33
+ - ru: `"переключись на Cursor"`
34
+
35
+ Алиасы: `cursor`, `cursor cli`, `cursor-cli`, `cursor agent`, `cursor-agent`.
36
+
37
+ ## Подводные камни
38
+
39
+ - **Позиция prompt-а.** `--prompt` ждёт значение сразу после; argv-сборщик ставит расшифровку последним позиционным аргументом, поэтому `CURSOR_COMMAND` должна заканчиваться на `--prompt`.
40
+ - **Побочные эффекты редактора.** Cursor CLI может трогать cursor-файлы состояния в cwd; изолируйте через `AGENT_WORKDIR`.
41
+ - **Нет возобновления.** Непрерывность — через `AGENT_PROJECT_CONTEXT` и блок hand-off.
42
+ - **Patch-safety.** При прерывании в момент diff мост не зачитывает diff.
@@ -0,0 +1,42 @@
1
+ # Cursor CLI — 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
+ Cursor CLI (`cursor-agent`) 是 Cursor 的终端代理。VerbalCoding 通过 `cursor-agent --print --prompt` 驱动,将 STT 结果作为 prompt 值传入。`--print` 保证非交互。
11
+
12
+ ## 安装
13
+
14
+ ```bash
15
+ cursor-agent --print --prompt "hello"
16
+ ```
17
+
18
+ ## VerbalCoding 配置
19
+
20
+ ```bash
21
+ # .env
22
+ AGENT_BACKEND=cursor # 也接受 'cursor-cli'
23
+ CURSOR_COMMAND="cursor-agent --print --prompt" # 默认
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
+ ## 切到 Cursor 的语音表述
31
+
32
+ - en: `"switch to Cursor"`、`"switch to cursor cli"`、`"switch to cursor agent"`
33
+ - zh: `"切到 Cursor"`
34
+
35
+ 别名: `cursor`、`cursor cli`、`cursor-cli`、`cursor agent`、`cursor-agent`。
36
+
37
+ ## 坑
38
+
39
+ - **prompt 位置。** `--prompt` 期待紧随其后的值。VerbalCoding 的 shell-aware argv 构造器将 STT 结果作为末尾 positional 参数,因此 `CURSOR_COMMAND` 必须以 `--prompt` 结尾。
40
+ - **编辑器副作用。** Cursor CLI 可能在工作目录写 cursor 相关状态文件;纯语音流中若不希望如此,把 `AGENT_WORKDIR` 指向隔离目录。
41
+ - **无会话续接。** 用 `AGENT_PROJECT_CONTEXT` 维持连续性,从其它 harness 切回时还有跨代理 handoff 块兜底。
42
+ - **patch 安全。** Cursor 在 diff 期间被中断时,bridge 不朗读 diff。
@@ -0,0 +1,44 @@
1
+ # Gemini CLI — 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
+ Gemini CLI es el agente de codificación de terminal de Google. VerbalCoding lo invoca con `gemini -p`. Cada turno de voz es una invocación; no hay reanudación entre llamadas.
11
+
12
+ ## Instalación
13
+
14
+ Sigue la guía oficial de Gemini CLI. Confirma:
15
+
16
+ ```bash
17
+ gemini -p "hello"
18
+ ```
19
+
20
+ ## Configuración
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=gemini
25
+ GEMINI_COMMAND="gemini -p"
26
+ AGENT_PROJECT_CONTEXT="..."
27
+ AGENT_WORKDIR=/Users/you/code/your-project
28
+ AGENT_CHAT_TIMEOUT_MS=45000
29
+ AGENT_TASK_TIMEOUT_MS=0
30
+ ```
31
+
32
+ ## Frases de voz para cambiar a Gemini
33
+
34
+ - en: `"switch to Gemini"`, `"ask Gemini ..."`, `"switch to Gemini CLI"`
35
+ - es: `"cambia a Gemini"`, `"pregunta a Gemini"`
36
+
37
+ Alias: `gemini`, `gemini cli`, `gemini-cli`.
38
+
39
+ ## Trampas
40
+
41
+ - **Sin reanudación.** Misma estrategia que Claude/Codex: `AGENT_PROJECT_CONTEXT` + bloque de handoff.
42
+ - **Respuestas largas.** Gemini a veces devuelve respuestas estructuradas grandes; el sentencer las parte en frases TTSables. Las cercas de código se eliminan del audio (el canal de texto sí trae el código).
43
+ - **API key.** Si Gemini sale con error de auth, el puente reporta; el fallback ofrece el agente por defecto.
44
+ - **Progreso detallado.** Gemini no emite previos al estilo `┊` de Hermes; el progreso detallado depende del summarizer LLM.
@@ -0,0 +1,44 @@
1
+ # Gemini CLI — 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
+ Gemini CLI est l'agent terminal de Google. VerbalCoding l'invoque via `gemini -p`. Un tour vocal = un appel ; pas de reprise entre appels.
11
+
12
+ ## Installation
13
+
14
+ Suivez le guide officiel, puis vérifiez :
15
+
16
+ ```bash
17
+ gemini -p "hello"
18
+ ```
19
+
20
+ ## Configuration
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=gemini
25
+ GEMINI_COMMAND="gemini -p"
26
+ AGENT_PROJECT_CONTEXT="..."
27
+ AGENT_WORKDIR=/Users/you/code/your-project
28
+ AGENT_CHAT_TIMEOUT_MS=45000
29
+ AGENT_TASK_TIMEOUT_MS=0
30
+ ```
31
+
32
+ ## Phrases vocales pour basculer vers Gemini
33
+
34
+ - en: `"switch to Gemini"`, `"ask Gemini ..."`, `"switch to Gemini CLI"`
35
+ - fr: `"passe à Gemini"`, `"demande à Gemini"`
36
+
37
+ Alias : `gemini`, `gemini cli`, `gemini-cli`.
38
+
39
+ ## Pièges
40
+
41
+ - **Pas de reprise.** Même stratégie que Claude/Codex : `AGENT_PROJECT_CONTEXT` + bloc de handoff.
42
+ - **Réponses longues.** Gemini renvoie parfois de grands blocs structurés ; le sentencer les découpe. Les blocs de code sont retirés de la voix (canal texte conserve le code).
43
+ - **Clé API.** Une erreur d'auth ressort en exit non-nul ; fallback proposé si Gemini n'était pas le défaut.
44
+ - **Progression verbeuse.** Gemini ne sort pas de previews `┊` à la Hermes ; la progression dépend principalement du summarizer LLM.
@@ -0,0 +1,45 @@
1
+ # Gemini CLI — ハーネスノート
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
+ Gemini CLI は Google のターミナルコーディングエージェント。VerbalCoding は `gemini -p` で呼び出します。音声ターン 1 つにつき 1 invocation、呼び出し間のセッション再開はありません。
11
+
12
+ ## インストール
13
+
14
+ 上流 Gemini CLI インストールガイドに従い、確認:
15
+
16
+ ```bash
17
+ gemini -p "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 設定
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=gemini
25
+ # 任意
26
+ GEMINI_COMMAND="gemini -p" # 既定。--model, --debug 追加可
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
+ ## Gemini へ切り替える音声表現
34
+
35
+ - en: `"switch to Gemini"`, `"ask Gemini ..."`, `"switch to Gemini CLI"`
36
+ - ja: `"Gemini に切り替えて"`, `"Gemini に聞いて"`
37
+
38
+ エイリアス: `gemini`, `gemini cli`, `gemini-cli`, `ジェミニ`。
39
+
40
+ ## 罠
41
+
42
+ - **セッション再開なし。** Claude / Codex と同様の連続性戦略: `AGENT_PROJECT_CONTEXT` とクロスエージェントハンドオフブロックに依存。
43
+ - **長い応答。** Gemini が大きな構造化応答を返すことがあります。ストリーム sentencer が TTS 可能な文に分割。コードフェンスは音声から除外 (テキストチャンネルには全文)。
44
+ - **API キー。** Gemini が認証エラーで非零 exit すると bridge がメッセージを報告。既定外なら fallback プロンプトが既定エージェントへの retry 提案。
45
+ - **詳細進捗。** Gemini の stdout は Hermes の `┊` 形式ではないため、詳細進捗は主に smart-progress LLM 要約器に依存。
@@ -0,0 +1,45 @@
1
+ # Gemini CLI — 하니스 노트
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
+ Gemini CLI는 구글의 터미널 코딩 에이전트. VerbalCoding은 `gemini -p`로 호출해. voice turn 하나가 invocation 한 번이고, 호출 간 세션 재개는 없어.
11
+
12
+ ## 설치
13
+
14
+ 상위 Gemini CLI 설치 가이드를 따라줘. 확인:
15
+
16
+ ```bash
17
+ gemini -p "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 설정
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=gemini
25
+ # 선택
26
+ GEMINI_COMMAND="gemini -p" # 기본값. 필요하면 --model, --debug 추가
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
+ ## Gemini로 전환하는 음성 표현
34
+
35
+ - en: `"switch to Gemini"`, `"ask Gemini ..."`, `"switch to Gemini CLI"`
36
+ - ko: `"제미나이로 전환"`, `"gemini한테 물어봐"`
37
+
38
+ 매처가 받는 별칭: `gemini`, `gemini cli`, `gemini-cli`, `제미나이`.
39
+
40
+ ## 함정
41
+
42
+ - **세션 재개 없음.** Claude / Codex와 같은 연속성 전략: `AGENT_PROJECT_CONTEXT` + 크로스 에이전트 핸드오프 블록 의존.
43
+ - **긴 응답.** Gemini는 가끔 큰 구조화 응답을 반환하는데, 스트림 sentencer가 TTS 가능한 문장으로 잘라줘. 코드 펜스는 음성에서 제외 (텍스트 채널에는 코드 포함 전체 답변).
44
+ - **API 키.** Gemini가 인증 오류로 non-zero exit하면 bridge가 메시지를 보고. 기본 에이전트가 아닐 때 크로스 에이전트 fallback 프롬프트가 기본 에이전트로 재시도 제안.
45
+ - **상세 진행.** Gemini stdout은 Hermes의 `┊` 스타일 미리보기 포맷이 아니라서 상세 진행은 주로 smart-progress LLM 요약기에 의존해.
@@ -0,0 +1,44 @@
1
+ # Gemini CLI — Заметки по 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
+ Gemini CLI — терминальный кодинг-агент Google. VerbalCoding вызывает его через `gemini -p`. Один turn — один вызов; возобновления между вызовами нет.
11
+
12
+ ## Установка
13
+
14
+ Следуйте официальному гайду, затем проверьте:
15
+
16
+ ```bash
17
+ gemini -p "hello"
18
+ ```
19
+
20
+ ## Настройка
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=gemini
25
+ GEMINI_COMMAND="gemini -p"
26
+ AGENT_PROJECT_CONTEXT="..."
27
+ AGENT_WORKDIR=/Users/you/code/your-project
28
+ AGENT_CHAT_TIMEOUT_MS=45000
29
+ AGENT_TASK_TIMEOUT_MS=0
30
+ ```
31
+
32
+ ## Голосовые фразы для переключения на Gemini
33
+
34
+ - en: `"switch to Gemini"`, `"ask Gemini ..."`, `"switch to Gemini CLI"`
35
+ - ru: `"переключись на Gemini"`, `"спроси Gemini"`
36
+
37
+ Алиасы: `gemini`, `gemini cli`, `gemini-cli`.
38
+
39
+ ## Подводные камни
40
+
41
+ - **Нет возобновления.** Та же стратегия, что у Claude/Codex: `AGENT_PROJECT_CONTEXT` + блок hand-off.
42
+ - **Длинные ответы.** Gemini иногда возвращает большие структуры; sentencer режет их на TTS-фразы. Код-блоки убираются из голоса (в текстовом канале остаются).
43
+ - **API key.** Ошибка авторизации — non-zero exit; fallback на дефолт, если Gemini не был дефолтом.
44
+ - **Подробный прогресс.** У Gemini нет превью в стиле `┊` Hermes — прогресс в основном даёт LLM-сводщик.
@@ -0,0 +1,45 @@
1
+ # Gemini CLI — 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
+ Gemini CLI 是 Google 的终端编码代理。VerbalCoding 通过 `gemini -p` 驱动。每个语音 turn 一次调用;调用间无内建会话续接。
11
+
12
+ ## 安装
13
+
14
+ 参考上游 Gemini CLI 指引,确认:
15
+
16
+ ```bash
17
+ gemini -p "hello"
18
+ ```
19
+
20
+ ## VerbalCoding 配置
21
+
22
+ ```bash
23
+ # .env
24
+ AGENT_BACKEND=gemini
25
+ # 可选
26
+ GEMINI_COMMAND="gemini -p" # 默认,可加 --model、--debug
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
+ ## 切到 Gemini 的语音表述
34
+
35
+ - en: `"switch to Gemini"`、`"ask Gemini ..."`、`"switch to Gemini CLI"`
36
+ - zh: `"切到 Gemini"`、`"问 Gemini"`
37
+
38
+ 别名: `gemini`、`gemini cli`、`gemini-cli`。
39
+
40
+ ## 坑
41
+
42
+ - **无会话续接。** 与 Claude / Codex 同样的连续性策略: 依赖 `AGENT_PROJECT_CONTEXT` 与跨代理 handoff 块。
43
+ - **长回答。** Gemini 偶尔返回大块结构化响应;流式 sentencer 会切分成 TTS 可读句。代码围栏从语音剥离 (文本频道仍含完整代码)。
44
+ - **API 密钥。** Gemini 因鉴权失败非零退出时,bridge 会报告消息;非默认后端时 fallback 提示。
45
+ - **详细进度。** Gemini stdout 不是 Hermes `┊` 风格,详细进度主要依赖 smart-progress LLM 摘要。
@@ -0,0 +1,54 @@
1
+ # Hermes Agent — 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
+ Hermes Agent es el backend por defecto de VerbalCoding y el único harness con un contrato real de reanudación de sesión: el contexto entre turnos se mantiene limpio. Posicionamiento frente al `/voice` integrado de Hermes en [HERMES_VOICE.es.md](./HERMES_VOICE.es.md).
11
+
12
+ ## Instalación
13
+
14
+ Guía oficial: <https://hermes-agent.nousresearch.com>. Verifica el CLI primero:
15
+
16
+ ```bash
17
+ hermes chat -Q -q "hello"
18
+ ```
19
+
20
+ ## Configuración
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
+ El fichero de sesión vive en `<repo>/.verbalcoding-session` por defecto (sobreescribible con `HERMES_SESSION_FILE`).
34
+
35
+ ## Reanudación de sesión
36
+
37
+ Hermes es el único adaptador con reanudación. Tras cada turno con éxito, el adaptador escribe el nuevo `session_id` y antepone `--resume <id>` en la siguiente llamada. `!session reset` lo limpia.
38
+
39
+ Si un turno aborta antes de que Hermes emita `session_id:` en stderr, el adaptador lee `~/.hermes/sessions/session_<id>.json` para recuperar el último mensaje del asistente.
40
+
41
+ ## Progreso detallado
42
+
43
+ En modo verboso, el adaptador quita el flag `-Q` para que stdout emita previas `┊ <emoji> <tool>`, que se resumen en eventos de progreso (lectura de archivos, búsqueda web, terminal). Sin verboso solo suena la respuesta final del recuadro.
44
+
45
+ ## Frases de voz para cambiar a Hermes
46
+
47
+ - en: `"switch to Hermes"`, `"ask Hermes ..."`
48
+ - es: `"cambia a Hermes"`, `"pregunta a Hermes"`
49
+
50
+ ## Trampas
51
+
52
+ - El prefijo TTS en handoff es localizado: `"Hermes says: "` / `"Hermes: "`.
53
+ - `HERMES_HOME` es el botón de aislamiento por proyecto más usado; típicamente `HERMES_HOME=/Users/you/.hermes/profiles/<project>` en el `.env` de instancia.
54
+ - Si verboso está activo pero Hermes termina con caja vacía (timeout), el adaptador rasca el JSON de sesión antes de rendirse.
@@ -0,0 +1,54 @@
1
+ # Hermes Agent — 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
+ Hermes Agent est le backend par défaut de VerbalCoding et le seul harness disposant d'un vrai contrat de reprise de session — le contexte entre les tours reste propre. Comparaison avec le `/voice` intégré d'Hermes dans [HERMES_VOICE.fr.md](./HERMES_VOICE.fr.md).
11
+
12
+ ## Installation
13
+
14
+ Guide officiel : <https://hermes-agent.nousresearch.com>. Vérifiez d'abord le CLI :
15
+
16
+ ```bash
17
+ hermes chat -Q -q "hello"
18
+ ```
19
+
20
+ ## Configuration
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
+ Le fichier de session est dans `<repo>/.verbalcoding-session` par défaut (`HERMES_SESSION_FILE` pour surcharger).
34
+
35
+ ## Reprise de session
36
+
37
+ Hermes est le seul adaptateur intégré avec reprise. Après chaque tour réussi, l'adaptateur écrit le nouveau `session_id` et préfixe `--resume <id>` au prochain appel. `!session reset` efface.
38
+
39
+ Si un tour est abort avant que Hermes n'émette `session_id:` sur stderr, l'adaptateur lit `~/.hermes/sessions/session_<id>.json` pour retrouver le dernier message assistant.
40
+
41
+ ## Progression verbeuse
42
+
43
+ En mode verbeux, l'adaptateur retire `-Q` pour que stdout émette les aperçus `┊ <emoji> <tool>`, résumés en événements de progression (lecture de fichiers, web, terminal). Sans verbeux, seule la réponse finale du cadre est vocale.
44
+
45
+ ## Phrases vocales pour basculer vers Hermes
46
+
47
+ - en: `"switch to Hermes"`, `"ask Hermes ..."`
48
+ - fr: `"passe à Hermes"`, `"demande à Hermes"`
49
+
50
+ ## Pièges
51
+
52
+ - Le préfixe TTS de handoff est localisé : `"Hermes says: "` / `"Hermes : "`.
53
+ - `HERMES_HOME` est le bouton d'isolation projet le plus utilisé ; typiquement `HERMES_HOME=/Users/you/.hermes/profiles/<project>` dans `.env`.
54
+ - En verbeux, si Hermes termine sur une boîte vide (timeout), l'adaptateur fouille le JSON de session avant d'abandonner.
@@ -0,0 +1,57 @@
1
+ # Hermes Agent — ハーネスノート
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
+ Hermes Agent は VerbalCoding の既定バックエンドで、真のセッション再開契約を持つ唯一のハーネスです。ターン間のコンテキストがきれいに保たれます。Hermes 内蔵の `/voice` スラッシュコマンドとの位置付け比較は [HERMES_VOICE.ja.md](./HERMES_VOICE.ja.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>` のプレビューが流れます。これらは 1 行進捗イベント(ファイル読み込み、Web 検索、ターミナル実行など)に要約されます。詳細オフ時は最終ボックス内応答のみ音声化。
47
+
48
+ ## Hermes へ切り替える音声表現
49
+
50
+ - en: `"switch to Hermes"`, `"ask Hermes ..."`
51
+ - ja: `"Hermes に切り替えて"`, `"Hermes に聞いて"`
52
+
53
+ ## 罠
54
+
55
+ - クロスエージェントハンドオフ時の TTS 接頭辞はロケール準拠 (`"Hermes says: "` / `"ヘルメス: "`)。
56
+ - `HERMES_HOME` はプロジェクト別の最も一般的な分離ノブ。インスタンス `.env` は通常 `HERMES_HOME=/Users/you/.hermes/profiles/<project>` を設定。
57
+ - 詳細オン時に Hermes が空ボックスで終了(タイムアウト等)した場合、諦める前にアダプタがセッション JSON を漁って最終応答を取得します。