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.
- package/.env.example +98 -2
- package/README.es.md +134 -0
- package/README.fr.md +134 -0
- package/README.ja.md +134 -0
- package/README.ko.md +134 -0
- package/README.md +118 -74
- package/README.ru.md +134 -0
- package/README.zh.md +133 -0
- package/app-node/agent_adapters.mjs +37 -5
- package/app-node/agent_adapters.test.mjs +27 -1
- package/app-node/agent_detect.mjs +73 -0
- package/app-node/agent_detect.test.mjs +77 -0
- package/app-node/agent_routing.mjs +148 -0
- package/app-node/agent_routing.test.mjs +138 -0
- package/app-node/agent_turn.mjs +86 -0
- package/app-node/agent_turn.test.mjs +109 -0
- package/app-node/bridge_context.mjs +73 -0
- package/app-node/bridge_context.test.mjs +54 -0
- package/app-node/bridge_state.mjs +4 -0
- package/app-node/bridge_wireup.test.mjs +462 -0
- package/app-node/cli_install.test.mjs +31 -0
- package/app-node/cross_agent_routing.test.mjs +78 -0
- package/app-node/discord_command_router.mjs +204 -0
- package/app-node/discord_command_router.test.mjs +311 -0
- package/app-node/discord_voice_setup.mjs +251 -0
- package/app-node/discord_voice_setup.test.mjs +86 -0
- package/app-node/hermes_profiles.test.mjs +12 -1
- package/app-node/install_config.mjs +113 -3
- package/app-node/install_config.test.mjs +8 -0
- package/app-node/instance_doctor.test.mjs +9 -0
- package/app-node/instances.test.mjs +8 -1
- package/app-node/main.mjs +513 -1058
- package/app-node/mcp_tools.test.mjs +7 -0
- package/app-node/notification_handler.mjs +89 -0
- package/app-node/notification_handler.test.mjs +187 -0
- package/app-node/notify.mjs +73 -0
- package/app-node/notify.test.mjs +68 -0
- package/app-node/plan_dispatcher.mjs +215 -0
- package/app-node/plan_dispatcher.test.mjs +101 -0
- package/app-node/plan_mode.mjs +203 -0
- package/app-node/plan_mode.test.mjs +231 -0
- package/app-node/progress_handler.mjs +220 -0
- package/app-node/progress_handler.test.mjs +193 -0
- package/app-node/progress_speech.mjs +54 -32
- package/app-node/progress_speech.test.mjs +12 -3
- package/app-node/project_sessions.mjs +5 -2
- package/app-node/project_sessions.test.mjs +7 -0
- package/app-node/research_mode.mjs +282 -0
- package/app-node/research_mode.test.mjs +264 -0
- package/app-node/restart_notice.mjs +3 -0
- package/app-node/restart_notice.test.mjs +11 -0
- package/app-node/session_ontology.mjs +271 -0
- package/app-node/session_ontology.test.mjs +130 -0
- package/app-node/smart_progress.mjs +94 -0
- package/app-node/smart_progress.test.mjs +66 -0
- package/app-node/stream_sentencer.mjs +91 -0
- package/app-node/stream_sentencer.test.mjs +129 -0
- package/app-node/streaming_tts_queue.mjs +52 -0
- package/app-node/streaming_tts_queue.test.mjs +64 -0
- package/app-node/stt_whisper.mjs +24 -0
- package/app-node/stt_whisper.test.mjs +32 -0
- package/app-node/text_routing.mjs +22 -0
- package/app-node/text_routing.test.mjs +23 -1
- package/app-node/tts_backends.mjs +537 -3
- package/app-node/tts_backends.test.mjs +454 -0
- package/app-node/tts_player.mjs +164 -0
- package/app-node/tts_player.test.mjs +202 -0
- package/app-node/tts_runtime.mjs +134 -0
- package/app-node/tts_runtime.test.mjs +89 -0
- package/app-node/tts_settings.mjs +150 -3
- package/app-node/tts_settings.test.mjs +204 -0
- package/app-node/tts_voice_config.mjs +136 -2
- package/app-node/tts_voice_config.test.mjs +94 -0
- package/app-node/utterance_router.mjs +216 -0
- package/app-node/utterance_router.test.mjs +236 -0
- package/app-node/voice_autojoin.mjs +37 -0
- package/app-node/voice_autojoin.test.mjs +59 -0
- package/app-node/voice_io.mjs +272 -0
- package/app-node/voice_io.test.mjs +102 -0
- package/app-node/voice_turn_runner.mjs +449 -0
- package/app-node/voice_turn_runner.test.mjs +289 -0
- package/docs/CONFIGURATION.md +79 -96
- package/docs/FRESH_INSTALL.md +105 -63
- package/docs/HARNESSES.md +58 -0
- package/docs/HARNESS_AIDER.md +50 -0
- package/docs/HARNESS_CLAUDE.md +56 -0
- package/docs/HARNESS_CODEX.md +56 -0
- package/docs/HARNESS_CURSOR.md +45 -0
- package/docs/HARNESS_GEMINI.md +45 -0
- package/docs/HARNESS_HERMES.md +57 -0
- package/docs/HARNESS_OPENCLAW.md +44 -0
- package/docs/HARNESS_OPENCODE.md +44 -0
- package/docs/HERMES_VOICE.md +65 -0
- package/docs/MULTI_INSTANCE.md +16 -0
- package/docs/README.md +50 -0
- package/docs/RELEASE.md +42 -19
- package/docs/ROADMAP.md +53 -0
- package/docs/TROUBLESHOOTING.md +126 -0
- package/docs/TTS_BACKENDS.md +227 -0
- package/docs/USAGE.md +94 -40
- package/docs/assets/figures/verbalcoding-flow.svg +1 -1
- package/docs/i18n/AGENTS.es.md +34 -0
- package/docs/i18n/AGENTS.fr.md +34 -0
- package/docs/i18n/AGENTS.ja.md +34 -0
- package/docs/i18n/AGENTS.ko.md +34 -0
- package/docs/i18n/AGENTS.ru.md +34 -0
- package/docs/i18n/AGENTS.zh.md +34 -0
- package/docs/i18n/CONFIGURATION.es.md +25 -0
- package/docs/i18n/CONFIGURATION.fr.md +25 -0
- package/docs/i18n/CONFIGURATION.ja.md +25 -0
- package/docs/i18n/CONFIGURATION.ko.md +25 -0
- package/docs/i18n/CONFIGURATION.ru.md +25 -0
- package/docs/i18n/CONFIGURATION.zh.md +25 -0
- package/docs/i18n/FRESH_INSTALL.es.md +27 -2
- package/docs/i18n/FRESH_INSTALL.fr.md +27 -2
- package/docs/i18n/FRESH_INSTALL.ja.md +27 -2
- package/docs/i18n/FRESH_INSTALL.ko.md +27 -2
- package/docs/i18n/FRESH_INSTALL.ru.md +27 -2
- package/docs/i18n/FRESH_INSTALL.zh.md +27 -2
- package/docs/i18n/HARNESSES.es.md +58 -0
- package/docs/i18n/HARNESSES.fr.md +58 -0
- package/docs/i18n/HARNESSES.ja.md +58 -0
- package/docs/i18n/HARNESSES.ko.md +58 -0
- package/docs/i18n/HARNESSES.ru.md +58 -0
- package/docs/i18n/HARNESSES.zh.md +58 -0
- package/docs/i18n/HARNESS_AIDER.es.md +48 -0
- package/docs/i18n/HARNESS_AIDER.fr.md +48 -0
- package/docs/i18n/HARNESS_AIDER.ja.md +50 -0
- package/docs/i18n/HARNESS_AIDER.ko.md +50 -0
- package/docs/i18n/HARNESS_AIDER.ru.md +48 -0
- package/docs/i18n/HARNESS_AIDER.zh.md +48 -0
- package/docs/i18n/HARNESS_CLAUDE.es.md +55 -0
- package/docs/i18n/HARNESS_CLAUDE.fr.md +55 -0
- package/docs/i18n/HARNESS_CLAUDE.ja.md +56 -0
- package/docs/i18n/HARNESS_CLAUDE.ko.md +56 -0
- package/docs/i18n/HARNESS_CLAUDE.ru.md +55 -0
- package/docs/i18n/HARNESS_CLAUDE.zh.md +56 -0
- package/docs/i18n/HARNESS_CODEX.es.md +55 -0
- package/docs/i18n/HARNESS_CODEX.fr.md +55 -0
- package/docs/i18n/HARNESS_CODEX.ja.md +56 -0
- package/docs/i18n/HARNESS_CODEX.ko.md +56 -0
- package/docs/i18n/HARNESS_CODEX.ru.md +55 -0
- package/docs/i18n/HARNESS_CODEX.zh.md +56 -0
- package/docs/i18n/HARNESS_CURSOR.es.md +42 -0
- package/docs/i18n/HARNESS_CURSOR.fr.md +42 -0
- package/docs/i18n/HARNESS_CURSOR.ja.md +45 -0
- package/docs/i18n/HARNESS_CURSOR.ko.md +45 -0
- package/docs/i18n/HARNESS_CURSOR.ru.md +42 -0
- package/docs/i18n/HARNESS_CURSOR.zh.md +42 -0
- package/docs/i18n/HARNESS_GEMINI.es.md +44 -0
- package/docs/i18n/HARNESS_GEMINI.fr.md +44 -0
- package/docs/i18n/HARNESS_GEMINI.ja.md +45 -0
- package/docs/i18n/HARNESS_GEMINI.ko.md +45 -0
- package/docs/i18n/HARNESS_GEMINI.ru.md +44 -0
- package/docs/i18n/HARNESS_GEMINI.zh.md +45 -0
- package/docs/i18n/HARNESS_HERMES.es.md +54 -0
- package/docs/i18n/HARNESS_HERMES.fr.md +54 -0
- package/docs/i18n/HARNESS_HERMES.ja.md +57 -0
- package/docs/i18n/HARNESS_HERMES.ko.md +57 -0
- package/docs/i18n/HARNESS_HERMES.ru.md +54 -0
- package/docs/i18n/HARNESS_HERMES.zh.md +57 -0
- package/docs/i18n/HARNESS_OPENCLAW.es.md +41 -0
- package/docs/i18n/HARNESS_OPENCLAW.fr.md +41 -0
- package/docs/i18n/HARNESS_OPENCLAW.ja.md +44 -0
- package/docs/i18n/HARNESS_OPENCLAW.ko.md +44 -0
- package/docs/i18n/HARNESS_OPENCLAW.ru.md +41 -0
- package/docs/i18n/HARNESS_OPENCLAW.zh.md +42 -0
- package/docs/i18n/HARNESS_OPENCODE.es.md +41 -0
- package/docs/i18n/HARNESS_OPENCODE.fr.md +41 -0
- package/docs/i18n/HARNESS_OPENCODE.ja.md +44 -0
- package/docs/i18n/HARNESS_OPENCODE.ko.md +44 -0
- package/docs/i18n/HARNESS_OPENCODE.ru.md +41 -0
- package/docs/i18n/HARNESS_OPENCODE.zh.md +44 -0
- package/docs/i18n/HERMES_VOICE.es.md +46 -0
- package/docs/i18n/HERMES_VOICE.fr.md +46 -0
- package/docs/i18n/HERMES_VOICE.ja.md +46 -0
- package/docs/i18n/HERMES_VOICE.ko.md +65 -0
- package/docs/i18n/HERMES_VOICE.ru.md +46 -0
- package/docs/i18n/HERMES_VOICE.zh.md +46 -0
- package/docs/i18n/MULTI_INSTANCE.es.md +25 -0
- package/docs/i18n/MULTI_INSTANCE.fr.md +25 -0
- package/docs/i18n/MULTI_INSTANCE.ja.md +25 -0
- package/docs/i18n/MULTI_INSTANCE.ko.md +25 -0
- package/docs/i18n/MULTI_INSTANCE.ru.md +25 -0
- package/docs/i18n/MULTI_INSTANCE.zh.md +25 -0
- package/docs/i18n/README.es.md +20 -134
- package/docs/i18n/README.fr.md +20 -134
- package/docs/i18n/README.ja.md +20 -134
- package/docs/i18n/README.ko.md +20 -133
- package/docs/i18n/README.ru.md +20 -134
- package/docs/i18n/README.zh.md +20 -133
- package/docs/i18n/RELEASE.es.md +26 -1
- package/docs/i18n/RELEASE.fr.md +26 -1
- package/docs/i18n/RELEASE.ja.md +26 -1
- package/docs/i18n/RELEASE.ko.md +26 -1
- package/docs/i18n/RELEASE.ru.md +26 -1
- package/docs/i18n/RELEASE.zh.md +26 -1
- package/docs/i18n/TROUBLESHOOTING.es.md +39 -0
- package/docs/i18n/TROUBLESHOOTING.fr.md +39 -0
- package/docs/i18n/TROUBLESHOOTING.ja.md +39 -0
- package/docs/i18n/TROUBLESHOOTING.ko.md +39 -0
- package/docs/i18n/TROUBLESHOOTING.ru.md +39 -0
- package/docs/i18n/TROUBLESHOOTING.zh.md +39 -0
- package/docs/i18n/USAGE.es.md +25 -0
- package/docs/i18n/USAGE.fr.md +25 -0
- package/docs/i18n/USAGE.ja.md +25 -0
- package/docs/i18n/USAGE.ko.md +25 -0
- package/docs/i18n/USAGE.ru.md +25 -0
- package/docs/i18n/USAGE.zh.md +25 -0
- package/docs/superpowers/plans/2026-05-13-phase1-streaming-pipeline.md +122 -0
- package/docs/superpowers/plans/2026-05-13-phase10-push-notifications.md +152 -0
- package/docs/superpowers/plans/2026-05-13-phase2-agent-adapters.md +242 -0
- package/docs/superpowers/plans/2026-05-13-phase6-smart-progress.md +172 -0
- package/docs/superpowers/plans/2026-05-13-phase7-voice-plan-mode.md +108 -0
- package/docs/superpowers/plans/2026-05-14-cross-agent-voice-transfer.md +625 -0
- package/docs/superpowers/plans/2026-05-21-audio-overview-narrated-diffs.md +95 -0
- package/docs/superpowers/plans/2026-05-21-autoresearch-ontology.md +83 -0
- package/docs/superpowers/plans/2026-05-21-phase11-push-to-talk-wakeword-v2.md +77 -0
- package/docs/superpowers/plans/2026-05-21-phase12-multi-user-voice.md +147 -0
- package/docs/superpowers/plans/2026-05-21-phase14-verbalbench.md +136 -0
- package/docs/superpowers/plans/2026-05-21-phase15-phone-companion.md +72 -0
- package/integrations/fireredtts2/mlx_llm.py +183 -0
- package/integrations/fireredtts2/synth.py +156 -0
- package/integrations/fireredtts2/synth_mlx.py +196 -0
- package/integrations/mlxaudio/synth.py +74 -0
- package/integrations/neuttsair/synth.py +104 -0
- package/integrations/omnivoice/synth.py +110 -0
- package/package.json +7 -1
- package/scripts/cli.mjs +88 -3
- package/scripts/doctor.mjs +115 -4
- package/scripts/install.mjs +20 -2
- package/scripts/install_fireredtts2.sh +109 -0
- package/scripts/install_mlxaudio.sh +34 -0
- package/scripts/install_mossttsnano.sh +46 -0
- 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 на сырые лейблы.
|