verbalcoding 0.2.12 → 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 (169) hide show
  1. package/.env.example +74 -4
  2. package/README.es.md +3 -1
  3. package/README.fr.md +3 -1
  4. package/README.ja.md +3 -1
  5. package/README.ko.md +4 -2
  6. package/README.md +4 -2
  7. package/README.ru.md +3 -1
  8. package/README.zh.md +3 -1
  9. package/app-node/agent_adapters.test.mjs +14 -0
  10. package/app-node/agent_routing.mjs +148 -0
  11. package/app-node/agent_routing.test.mjs +138 -0
  12. package/app-node/agent_turn.mjs +86 -0
  13. package/app-node/agent_turn.test.mjs +109 -0
  14. package/app-node/bridge_context.mjs +73 -0
  15. package/app-node/bridge_context.test.mjs +54 -0
  16. package/app-node/bridge_state.mjs +4 -0
  17. package/app-node/bridge_wireup.test.mjs +462 -0
  18. package/app-node/cli_install.test.mjs +31 -0
  19. package/app-node/cross_agent_routing.test.mjs +78 -0
  20. package/app-node/discord_command_router.mjs +204 -0
  21. package/app-node/discord_command_router.test.mjs +311 -0
  22. package/app-node/discord_voice_setup.mjs +251 -0
  23. package/app-node/discord_voice_setup.test.mjs +86 -0
  24. package/app-node/hermes_profiles.test.mjs +12 -1
  25. package/app-node/install_config.mjs +110 -3
  26. package/app-node/install_config.test.mjs +8 -0
  27. package/app-node/instance_doctor.test.mjs +9 -0
  28. package/app-node/instances.test.mjs +8 -1
  29. package/app-node/main.mjs +488 -1368
  30. package/app-node/mcp_tools.test.mjs +7 -0
  31. package/app-node/notification_handler.mjs +89 -0
  32. package/app-node/notification_handler.test.mjs +187 -0
  33. package/app-node/plan_dispatcher.mjs +215 -0
  34. package/app-node/plan_dispatcher.test.mjs +101 -0
  35. package/app-node/plan_mode.mjs +36 -7
  36. package/app-node/plan_mode.test.mjs +78 -0
  37. package/app-node/progress_handler.mjs +220 -0
  38. package/app-node/progress_handler.test.mjs +193 -0
  39. package/app-node/progress_speech.mjs +54 -32
  40. package/app-node/progress_speech.test.mjs +12 -3
  41. package/app-node/project_sessions.mjs +5 -2
  42. package/app-node/project_sessions.test.mjs +7 -0
  43. package/app-node/research_mode.mjs +282 -0
  44. package/app-node/research_mode.test.mjs +264 -0
  45. package/app-node/restart_notice.mjs +3 -0
  46. package/app-node/restart_notice.test.mjs +11 -0
  47. package/app-node/session_ontology.mjs +271 -0
  48. package/app-node/session_ontology.test.mjs +130 -0
  49. package/app-node/smart_progress.mjs +1 -1
  50. package/app-node/stream_sentencer.mjs +32 -2
  51. package/app-node/stream_sentencer.test.mjs +65 -0
  52. package/app-node/streaming_tts_queue.mjs +5 -1
  53. package/app-node/streaming_tts_queue.test.mjs +7 -1
  54. package/app-node/stt_whisper.mjs +24 -0
  55. package/app-node/stt_whisper.test.mjs +32 -0
  56. package/app-node/text_routing.mjs +4 -2
  57. package/app-node/tts_backends.mjs +537 -3
  58. package/app-node/tts_backends.test.mjs +454 -0
  59. package/app-node/tts_player.mjs +164 -0
  60. package/app-node/tts_player.test.mjs +202 -0
  61. package/app-node/tts_runtime.mjs +134 -0
  62. package/app-node/tts_runtime.test.mjs +89 -0
  63. package/app-node/tts_settings.mjs +150 -3
  64. package/app-node/tts_settings.test.mjs +204 -0
  65. package/app-node/tts_voice_config.mjs +136 -2
  66. package/app-node/tts_voice_config.test.mjs +94 -0
  67. package/app-node/utterance_router.mjs +216 -0
  68. package/app-node/utterance_router.test.mjs +236 -0
  69. package/app-node/voice_autojoin.mjs +37 -0
  70. package/app-node/voice_autojoin.test.mjs +59 -0
  71. package/app-node/voice_io.mjs +272 -0
  72. package/app-node/voice_io.test.mjs +102 -0
  73. package/app-node/voice_turn_runner.mjs +449 -0
  74. package/app-node/voice_turn_runner.test.mjs +289 -0
  75. package/docs/CONFIGURATION.md +12 -2
  76. package/docs/HARNESSES.md +58 -0
  77. package/docs/HARNESS_AIDER.md +50 -0
  78. package/docs/HARNESS_CLAUDE.md +56 -0
  79. package/docs/HARNESS_CODEX.md +56 -0
  80. package/docs/HARNESS_CURSOR.md +45 -0
  81. package/docs/HARNESS_GEMINI.md +45 -0
  82. package/docs/HARNESS_HERMES.md +57 -0
  83. package/docs/HARNESS_OPENCLAW.md +44 -0
  84. package/docs/HARNESS_OPENCODE.md +44 -0
  85. package/docs/README.md +1 -0
  86. package/docs/ROADMAP.md +20 -5
  87. package/docs/TTS_BACKENDS.md +227 -0
  88. package/docs/USAGE.md +22 -0
  89. package/docs/i18n/AGENTS.es.md +34 -0
  90. package/docs/i18n/AGENTS.fr.md +34 -0
  91. package/docs/i18n/AGENTS.ja.md +34 -0
  92. package/docs/i18n/AGENTS.ko.md +34 -0
  93. package/docs/i18n/AGENTS.ru.md +34 -0
  94. package/docs/i18n/AGENTS.zh.md +34 -0
  95. package/docs/i18n/HARNESSES.es.md +58 -0
  96. package/docs/i18n/HARNESSES.fr.md +58 -0
  97. package/docs/i18n/HARNESSES.ja.md +58 -0
  98. package/docs/i18n/HARNESSES.ko.md +58 -0
  99. package/docs/i18n/HARNESSES.ru.md +58 -0
  100. package/docs/i18n/HARNESSES.zh.md +58 -0
  101. package/docs/i18n/HARNESS_AIDER.es.md +48 -0
  102. package/docs/i18n/HARNESS_AIDER.fr.md +48 -0
  103. package/docs/i18n/HARNESS_AIDER.ja.md +50 -0
  104. package/docs/i18n/HARNESS_AIDER.ko.md +50 -0
  105. package/docs/i18n/HARNESS_AIDER.ru.md +48 -0
  106. package/docs/i18n/HARNESS_AIDER.zh.md +48 -0
  107. package/docs/i18n/HARNESS_CLAUDE.es.md +55 -0
  108. package/docs/i18n/HARNESS_CLAUDE.fr.md +55 -0
  109. package/docs/i18n/HARNESS_CLAUDE.ja.md +56 -0
  110. package/docs/i18n/HARNESS_CLAUDE.ko.md +56 -0
  111. package/docs/i18n/HARNESS_CLAUDE.ru.md +55 -0
  112. package/docs/i18n/HARNESS_CLAUDE.zh.md +56 -0
  113. package/docs/i18n/HARNESS_CODEX.es.md +55 -0
  114. package/docs/i18n/HARNESS_CODEX.fr.md +55 -0
  115. package/docs/i18n/HARNESS_CODEX.ja.md +56 -0
  116. package/docs/i18n/HARNESS_CODEX.ko.md +56 -0
  117. package/docs/i18n/HARNESS_CODEX.ru.md +55 -0
  118. package/docs/i18n/HARNESS_CODEX.zh.md +56 -0
  119. package/docs/i18n/HARNESS_CURSOR.es.md +42 -0
  120. package/docs/i18n/HARNESS_CURSOR.fr.md +42 -0
  121. package/docs/i18n/HARNESS_CURSOR.ja.md +45 -0
  122. package/docs/i18n/HARNESS_CURSOR.ko.md +45 -0
  123. package/docs/i18n/HARNESS_CURSOR.ru.md +42 -0
  124. package/docs/i18n/HARNESS_CURSOR.zh.md +42 -0
  125. package/docs/i18n/HARNESS_GEMINI.es.md +44 -0
  126. package/docs/i18n/HARNESS_GEMINI.fr.md +44 -0
  127. package/docs/i18n/HARNESS_GEMINI.ja.md +45 -0
  128. package/docs/i18n/HARNESS_GEMINI.ko.md +45 -0
  129. package/docs/i18n/HARNESS_GEMINI.ru.md +44 -0
  130. package/docs/i18n/HARNESS_GEMINI.zh.md +45 -0
  131. package/docs/i18n/HARNESS_HERMES.es.md +54 -0
  132. package/docs/i18n/HARNESS_HERMES.fr.md +54 -0
  133. package/docs/i18n/HARNESS_HERMES.ja.md +57 -0
  134. package/docs/i18n/HARNESS_HERMES.ko.md +57 -0
  135. package/docs/i18n/HARNESS_HERMES.ru.md +54 -0
  136. package/docs/i18n/HARNESS_HERMES.zh.md +57 -0
  137. package/docs/i18n/HARNESS_OPENCLAW.es.md +41 -0
  138. package/docs/i18n/HARNESS_OPENCLAW.fr.md +41 -0
  139. package/docs/i18n/HARNESS_OPENCLAW.ja.md +44 -0
  140. package/docs/i18n/HARNESS_OPENCLAW.ko.md +44 -0
  141. package/docs/i18n/HARNESS_OPENCLAW.ru.md +41 -0
  142. package/docs/i18n/HARNESS_OPENCLAW.zh.md +42 -0
  143. package/docs/i18n/HARNESS_OPENCODE.es.md +41 -0
  144. package/docs/i18n/HARNESS_OPENCODE.fr.md +41 -0
  145. package/docs/i18n/HARNESS_OPENCODE.ja.md +44 -0
  146. package/docs/i18n/HARNESS_OPENCODE.ko.md +44 -0
  147. package/docs/i18n/HARNESS_OPENCODE.ru.md +41 -0
  148. package/docs/i18n/HARNESS_OPENCODE.zh.md +44 -0
  149. package/docs/superpowers/plans/2026-05-14-cross-agent-voice-transfer.md +625 -0
  150. package/docs/superpowers/plans/2026-05-21-audio-overview-narrated-diffs.md +95 -0
  151. package/docs/superpowers/plans/2026-05-21-autoresearch-ontology.md +83 -0
  152. package/docs/superpowers/plans/2026-05-21-phase11-push-to-talk-wakeword-v2.md +77 -0
  153. package/docs/superpowers/plans/2026-05-21-phase12-multi-user-voice.md +147 -0
  154. package/docs/superpowers/plans/2026-05-21-phase14-verbalbench.md +136 -0
  155. package/docs/superpowers/plans/2026-05-21-phase15-phone-companion.md +72 -0
  156. package/integrations/fireredtts2/mlx_llm.py +183 -0
  157. package/integrations/fireredtts2/synth.py +156 -0
  158. package/integrations/fireredtts2/synth_mlx.py +196 -0
  159. package/integrations/mlxaudio/synth.py +74 -0
  160. package/integrations/neuttsair/synth.py +104 -0
  161. package/integrations/omnivoice/synth.py +110 -0
  162. package/package.json +6 -1
  163. package/scripts/cli.mjs +84 -0
  164. package/scripts/doctor.mjs +104 -4
  165. package/scripts/install.mjs +5 -1
  166. package/scripts/install_fireredtts2.sh +109 -0
  167. package/scripts/install_mlxaudio.sh +34 -0
  168. package/scripts/install_mossttsnano.sh +46 -0
  169. package/scripts/postinstall.mjs +34 -0
@@ -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 на сырые лейблы.
@@ -0,0 +1,44 @@
1
+ # OpenCode — 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
+ 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
+ - zh: `"切到 OpenCode"`
37
+
38
+ 别名: `opencode`、`open code`。
39
+
40
+ ## 坑
41
+
42
+ - **默认命令无会话续接。** 若 OpenCode 构建支持 resume,可改为 `OPENCODE_COMMAND="opencode run --resume"` (适配器会把 prompt 作为末尾 positional 参数)。
43
+ - **模型选择。** 若需 `--model` 等标志,直接加入 `OPENCODE_COMMAND`。
44
+ - **详细进度。** stdout/stderr 中按关键字匹配 (文件读取、网页搜索、终端)。无 `SMART_PROGRESS_API_KEY` 时 bridge 回退到原始标签。