fengming 0.3.10 → 0.3.12

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 (871) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/cli/run-main.js +3 -3
  4. package/dist/cli-startup-metadata.json +8 -8
  5. package/dist/{command-registry-DMB-HKIk.js → command-registry-BHIBvpgR.js} +2 -2
  6. package/dist/{command-registry-C5ooX6PF.js → command-registry-BT5icv-c.js} +2 -2
  7. package/dist/{command-registry-core-B2w_XWvn.js → command-registry-core-C-a3GaYV.js} +2 -2
  8. package/dist/{completion-cli-Bf4mEw2W.js → completion-cli-BUfFF31m.js} +2 -2
  9. package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-DF1iC1pF.js} +2 -2
  10. package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-CDGNJA8n.js} +2 -2
  11. package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CAPFdCrE.js} +2 -2
  12. package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-DUUdUzzu.js} +2 -2
  13. package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-BwfVXGKK.js} +2 -2
  14. package/dist/control-ui/assets/{index-jUDczxhd.js → index-JWV4rMUy.js} +4 -4
  15. package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BqAPpn0Y.js} +2 -2
  16. package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-gya-0PkG.js} +2 -2
  17. package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-BdttyTpI.js} +2 -2
  18. package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-D_rtwBjc.js} +2 -2
  19. package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-CIGDGkWB.js} +2 -2
  20. package/dist/control-ui/index.html +1 -1
  21. package/dist/control-ui/sw.js +1 -1
  22. package/dist/crestodian/crestodian.js +1 -1
  23. package/dist/crestodian/rescue-message.js +1 -1
  24. package/dist/{crestodian-C0x7JjF-.js → crestodian-CAxGCgHM.js} +3 -3
  25. package/dist/{dialogue-No0NvYX7.js → dialogue-CHuN9qet.js} +1 -1
  26. package/dist/gateway/protocol/index.d.ts +1 -1
  27. package/dist/{index-AZzJCgph.d.ts → index-DbpfOFUf.d.ts} +1 -1
  28. package/dist/{operations-Z85LFqsT.js → operations-Mvnrndji.js} +1 -1
  29. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  30. package/dist/plugin-sdk/{agent-harness-runtime-CgQiThzm.d.ts → agent-harness-runtime-Bkrjji63.d.ts} +2 -2
  31. package/dist/plugin-sdk/agent-harness-runtime.d.ts +4 -4
  32. package/dist/plugin-sdk/agent-harness-task-runtime.d.ts +1 -1
  33. package/dist/plugin-sdk/agent-harness.d.ts +4 -4
  34. package/dist/plugin-sdk/agent-runtime.d.ts +1 -1
  35. package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-ZTBQez8k.d.ts} +9 -9
  36. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  37. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  38. package/dist/plugin-sdk/channel-core.d.ts +2 -2
  39. package/dist/plugin-sdk/channel-entry-contract.d.ts +1 -1
  40. package/dist/plugin-sdk/{channel-pairing-CX6ncj1r.d.ts → channel-pairing-CzsPAHgH.d.ts} +1 -1
  41. package/dist/plugin-sdk/channel-pairing.d.ts +1 -1
  42. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  43. package/dist/plugin-sdk/cli-backend.d.ts +1 -1
  44. package/dist/plugin-sdk/compat.d.ts +4 -4
  45. package/dist/plugin-sdk/{config-schema-DuJUjn6k.d.ts → config-schema-N64y7n8C.d.ts} +1 -1
  46. package/dist/plugin-sdk/config-schema.d.ts +4 -4
  47. package/dist/plugin-sdk/{core-CPtu2Ftl.d.ts → core-BWZB2hNB.d.ts} +1 -1
  48. package/dist/plugin-sdk/core.d.ts +7 -7
  49. package/dist/plugin-sdk/{delegate-uk6vAMkc.d.ts → delegate-o5xckIuc.d.ts} +1 -1
  50. package/dist/plugin-sdk/discord.d.ts +3 -3
  51. package/dist/plugin-sdk/{fengming-runtime-Dt2ZEVYX.d.ts → fengming-runtime-abXAXyq2.d.ts} +1 -1
  52. package/dist/plugin-sdk/gateway-runtime.d.ts +1 -1
  53. package/dist/plugin-sdk/{host-compat-CM0h9ODw.d.ts → host-compat-D2Ky8seZ.d.ts} +1 -1
  54. package/dist/plugin-sdk/{http-registry-BniL_epL.d.ts → http-registry-oxJbX3E-.d.ts} +2 -2
  55. package/dist/plugin-sdk/image-generation-core.d.ts +4 -4
  56. package/dist/plugin-sdk/image-generation-runtime.d.ts +3 -3
  57. package/dist/plugin-sdk/index.d.ts +4 -4
  58. package/dist/plugin-sdk/lmstudio.d.ts +1 -1
  59. package/dist/plugin-sdk/{loader-aELh60PE.d.ts → loader-CgJhYjxT.d.ts} +3 -3
  60. package/dist/plugin-sdk/{logger-BpB3--7Z.d.ts → logger-CyDIBtoX.d.ts} +1 -1
  61. package/dist/plugin-sdk/logging-core.d.ts +3 -3
  62. package/dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts +2 -2
  63. package/dist/plugin-sdk/memory-core-host-engine-foundation.d.ts +3 -3
  64. package/dist/plugin-sdk/{memory-core-host-engine-storage-DYPjOQCg.d.ts → memory-core-host-engine-storage-DfW7ZqD0.d.ts} +1 -1
  65. package/dist/plugin-sdk/memory-core-host-engine-storage.d.ts +1 -1
  66. package/dist/plugin-sdk/memory-core-host-runtime-cli.d.ts +1 -1
  67. package/dist/plugin-sdk/memory-core-host-runtime-core.d.ts +3 -3
  68. package/dist/plugin-sdk/memory-core.d.ts +3 -3
  69. package/dist/plugin-sdk/memory-host-core.d.ts +3 -3
  70. package/dist/plugin-sdk/migration-runtime.d.ts +1 -1
  71. package/dist/plugin-sdk/migration.d.ts +1 -1
  72. package/dist/plugin-sdk/music-generation-core.d.ts +2 -2
  73. package/dist/plugin-sdk/{plugin-entry-DO9kQeTr.d.ts → plugin-entry-C9xM-ZA9.d.ts} +1 -1
  74. package/dist/plugin-sdk/plugin-entry.d.ts +3 -3
  75. package/dist/plugin-sdk/plugin-runtime.d.ts +3 -3
  76. package/dist/plugin-sdk/{provider-api-key-auth-DvIiojS6.d.ts → provider-api-key-auth-DOmYPTC2.d.ts} +1 -1
  77. package/dist/plugin-sdk/provider-auth-api-key.d.ts +4 -4
  78. package/dist/plugin-sdk/{provider-auth-helpers-CYkWZ0vq.d.ts → provider-auth-helpers-pqDNrZTd.d.ts} +1 -1
  79. package/dist/plugin-sdk/{provider-auth-input-DUV6ZTw4.d.ts → provider-auth-input-Ckt-cU4H.d.ts} +1 -1
  80. package/dist/plugin-sdk/provider-auth-result.d.ts +1 -1
  81. package/dist/plugin-sdk/provider-auth-runtime.d.ts +1 -1
  82. package/dist/plugin-sdk/provider-auth.d.ts +5 -5
  83. package/dist/plugin-sdk/provider-catalog-runtime.d.ts +2 -2
  84. package/dist/plugin-sdk/{provider-catalog-shared-Cm3SyFfL.d.ts → provider-catalog-shared-QvOT8Wz1.d.ts} +1 -1
  85. package/dist/plugin-sdk/provider-catalog-shared.d.ts +2 -2
  86. package/dist/plugin-sdk/provider-entry.d.ts +3 -3
  87. package/dist/plugin-sdk/{provider-model-shared-D5rgn7Gb.d.ts → provider-model-shared-Bnc8IMx5.d.ts} +1 -1
  88. package/dist/plugin-sdk/provider-model-shared.d.ts +2 -2
  89. package/dist/plugin-sdk/{provider-registry-DxdZT9UN.d.ts → provider-registry-Ba1nNfhA.d.ts} +1 -1
  90. package/dist/plugin-sdk/{provider-registry-DiKX35tc.d.ts → provider-registry-CqB5bSAD.d.ts} +1 -1
  91. package/dist/plugin-sdk/{provider-registry-D0vmhPWL.d.ts → provider-registry-CxdVib8g.d.ts} +1 -1
  92. package/dist/plugin-sdk/{provider-self-hosted-setup-BPx7JMDC.d.ts → provider-self-hosted-setup-eMoeVPnF.d.ts} +1 -1
  93. package/dist/plugin-sdk/provider-setup.d.ts +2 -2
  94. package/dist/plugin-sdk/{provider-stream-DcC2vn_N.d.ts → provider-stream-CGaLae9n.d.ts} +1 -1
  95. package/dist/plugin-sdk/provider-stream-family.d.ts +2 -2
  96. package/dist/plugin-sdk/{provider-stream-shared-ByDv3QKm.d.ts → provider-stream-shared-u5mt-8_i.d.ts} +1 -1
  97. package/dist/plugin-sdk/provider-stream-shared.d.ts +1 -1
  98. package/dist/plugin-sdk/provider-stream.d.ts +2 -2
  99. package/dist/plugin-sdk/provider-tools.d.ts +1 -1
  100. package/dist/plugin-sdk/provider-web-fetch-contract.d.ts +1 -1
  101. package/dist/plugin-sdk/provider-web-fetch.d.ts +1 -1
  102. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  103. package/dist/plugin-sdk/{provider-web-search-contract-fields-CY4v8kS-.d.ts → provider-web-search-contract-fields-BiWOSs_d.d.ts} +1 -1
  104. package/dist/plugin-sdk/provider-web-search-contract.d.ts +2 -2
  105. package/dist/plugin-sdk/provider-web-search.d.ts +1 -1
  106. package/dist/plugin-sdk/realtime-transcription.d.ts +1 -1
  107. package/dist/plugin-sdk/realtime-voice.d.ts +1 -1
  108. package/dist/plugin-sdk/{redact-identifier-CVwkabcI.d.ts → redact-identifier-CVqsKaEK.d.ts} +1 -1
  109. package/dist/plugin-sdk/{registry-CzaGoAKH.d.ts → registry-Gq9OFlb3.d.ts} +2 -2
  110. package/dist/plugin-sdk/{registry-types-DN1yiH3F.d.ts → registry-types-DyBkef1H.d.ts} +2 -2
  111. package/dist/plugin-sdk/reply-runtime.d.ts +1 -1
  112. package/dist/plugin-sdk/runtime-env.d.ts +3 -3
  113. package/dist/plugin-sdk/runtime-store.d.ts +1 -1
  114. package/dist/plugin-sdk/runtime.d.ts +3 -3
  115. package/dist/plugin-sdk/self-hosted-provider-setup.d.ts +2 -2
  116. package/dist/plugin-sdk/simple-completion-runtime.d.ts +1 -1
  117. package/dist/plugin-sdk/speech-core.d.ts +2 -2
  118. package/dist/plugin-sdk/speech.d.ts +2 -2
  119. package/dist/plugin-sdk/{subsystem-n4Y4vCcQ.d.ts → subsystem-Boo2DQIV.d.ts} +1 -1
  120. package/dist/plugin-sdk/text-runtime.d.ts +2 -2
  121. package/dist/plugin-sdk/tool-plugin.d.ts +2 -2
  122. package/dist/plugin-sdk/{types-BI8R-vGd.d.ts → types-DGF1KeaJ.d.ts} +2 -2
  123. package/dist/plugin-sdk/{types-CsqNt0j8.d.ts → types-DpaN54PS.d.ts} +1 -1
  124. package/dist/plugin-sdk/{unhandled-rejections-D9eBl3hT.d.ts → unhandled-rejections-Bez6JG0y.d.ts} +2 -2
  125. package/dist/plugin-sdk/video-generation-core.d.ts +3 -3
  126. package/dist/plugin-sdk/video-generation-runtime.d.ts +3 -3
  127. package/dist/plugin-sdk/webhook-ingress.d.ts +1 -1
  128. package/dist/plugin-sdk/webhook-targets.d.ts +1 -1
  129. package/dist/{program-D19g2jaa.js → program-BaCHjV-F.js} +1 -1
  130. package/dist/{register.crestodian-BhIukKDA.js → register.crestodian-DMJEPMf3.js} +1 -1
  131. package/dist/register.subclis-B0BgjwyK.js +3 -0
  132. package/dist/{register.subclis-DVk0HU4k.js → register.subclis-BuoWG93n.js} +2 -2
  133. package/dist/{register.subclis-core-BK7nVvl6.js → register.subclis-core-BGBFrWE3.js} +2 -2
  134. package/dist/{standalone-CHrieUsw.js → standalone-CV2Ud6F7.js} +1 -1
  135. package/dist/tui-Bvt7hhwe.js +3 -0
  136. package/dist/tui-CFSmzhsm.js +2 -0
  137. package/dist/{tui-backend-_Pn3Byj-.js → tui-backend-Bm_t5G7x.js} +4 -4
  138. package/dist/{tui-cli-CAiC39zd.js → tui-cli-9Ny23hmo.js} +1 -1
  139. package/dist/tui-ink-run-CuExfFLV.js +2 -0
  140. package/dist/{tui-ink-run-ChXEGj1h.js → tui-ink-run-qNL49iQn.js} +17 -1
  141. package/package.json +6 -410
  142. package/CHANGELOG.md +0 -42
  143. package/THIRD_PARTY_NOTICES.md +0 -37
  144. package/dist/register.subclis-Bsvdh8RI.js +0 -3
  145. package/dist/tui-C733Qov0.js +0 -2
  146. package/dist/tui-DqbscVN5.js +0 -3
  147. package/dist/tui-ink-run-D4mSfLHj.js +0 -2
  148. package/docs/.i18n/README.md +0 -81
  149. package/docs/.i18n/ar-navigation.json +0 -18
  150. package/docs/.i18n/de-navigation.json +0 -18
  151. package/docs/.i18n/es-navigation.json +0 -18
  152. package/docs/.i18n/fr-navigation.json +0 -18
  153. package/docs/.i18n/glossary.ar.json +0 -78
  154. package/docs/.i18n/glossary.de.json +0 -78
  155. package/docs/.i18n/glossary.es.json +0 -78
  156. package/docs/.i18n/glossary.fa.json +0 -78
  157. package/docs/.i18n/glossary.fr.json +0 -78
  158. package/docs/.i18n/glossary.id.json +0 -78
  159. package/docs/.i18n/glossary.it.json +0 -78
  160. package/docs/.i18n/glossary.ja-JP.json +0 -98
  161. package/docs/.i18n/glossary.ko.json +0 -78
  162. package/docs/.i18n/glossary.nl.json +0 -78
  163. package/docs/.i18n/glossary.pl.json +0 -78
  164. package/docs/.i18n/glossary.pt-BR.json +0 -78
  165. package/docs/.i18n/glossary.th.json +0 -78
  166. package/docs/.i18n/glossary.tr.json +0 -78
  167. package/docs/.i18n/glossary.uk.json +0 -78
  168. package/docs/.i18n/glossary.vi.json +0 -78
  169. package/docs/.i18n/glossary.zh-CN.json +0 -1122
  170. package/docs/.i18n/glossary.zh-TW.json +0 -78
  171. package/docs/.i18n/id-navigation.json +0 -18
  172. package/docs/.i18n/it-navigation.json +0 -18
  173. package/docs/.i18n/ja-navigation.json +0 -18
  174. package/docs/.i18n/ko-navigation.json +0 -18
  175. package/docs/.i18n/pl-navigation.json +0 -18
  176. package/docs/.i18n/pt-BR-navigation.json +0 -18
  177. package/docs/.i18n/tr-navigation.json +0 -18
  178. package/docs/.i18n/translation-workflow.md +0 -111
  179. package/docs/.i18n/zh-Hans-navigation.json +0 -552
  180. package/docs/AGENTS.md +0 -36
  181. package/docs/CLAUDE.md +0 -1
  182. package/docs/agent-runtime-architecture.md +0 -48
  183. package/docs/announcements/bluebubbles-imessage.md +0 -79
  184. package/docs/auth-credential-semantics.md +0 -124
  185. package/docs/automation/auth-monitoring.md +0 -11
  186. package/docs/automation/clawflow.md +0 -12
  187. package/docs/automation/cron-jobs.md +0 -534
  188. package/docs/automation/cron-vs-heartbeat.md +0 -11
  189. package/docs/automation/gmail-pubsub.md +0 -11
  190. package/docs/automation/hooks.md +0 -387
  191. package/docs/automation/index.md +0 -135
  192. package/docs/automation/poll.md +0 -12
  193. package/docs/automation/standing-orders.md +0 -250
  194. package/docs/automation/taskflow.md +0 -155
  195. package/docs/automation/tasks.md +0 -374
  196. package/docs/automation/troubleshooting.md +0 -12
  197. package/docs/automation/webhook.md +0 -12
  198. package/docs/brave-search.md +0 -11
  199. package/docs/channels/access-groups.md +0 -201
  200. package/docs/channels/ambient-room-events.md +0 -214
  201. package/docs/channels/bot-loop-protection.md +0 -131
  202. package/docs/channels/broadcast-groups.md +0 -472
  203. package/docs/channels/channel-routing.md +0 -162
  204. package/docs/channels/clickclack.md +0 -138
  205. package/docs/channels/discord.md +0 -1758
  206. package/docs/channels/feishu.md +0 -650
  207. package/docs/channels/googlechat.md +0 -284
  208. package/docs/channels/group-messages.md +0 -95
  209. package/docs/channels/groups.md +0 -524
  210. package/docs/channels/imessage-from-bluebubbles.md +0 -259
  211. package/docs/channels/imessage.md +0 -839
  212. package/docs/channels/index.md +0 -64
  213. package/docs/channels/irc.md +0 -253
  214. package/docs/channels/line.md +0 -243
  215. package/docs/channels/location.md +0 -71
  216. package/docs/channels/matrix-migration.md +0 -370
  217. package/docs/channels/matrix-presentation.md +0 -77
  218. package/docs/channels/matrix-push-rules.md +0 -150
  219. package/docs/channels/matrix.md +0 -921
  220. package/docs/channels/mattermost.md +0 -542
  221. package/docs/channels/msteams.md +0 -1096
  222. package/docs/channels/nextcloud-talk.md +0 -176
  223. package/docs/channels/nostr.md +0 -253
  224. package/docs/channels/pairing.md +0 -214
  225. package/docs/channels/qqbot.md +0 -314
  226. package/docs/channels/signal.md +0 -417
  227. package/docs/channels/slack.md +0 -1623
  228. package/docs/channels/synology-chat.md +0 -187
  229. package/docs/channels/telegram.md +0 -1124
  230. package/docs/channels/tlon.md +0 -296
  231. package/docs/channels/troubleshooting.md +0 -162
  232. package/docs/channels/twitch.md +0 -431
  233. package/docs/channels/wechat.md +0 -171
  234. package/docs/channels/whatsapp.md +0 -796
  235. package/docs/channels/yuanbao.md +0 -416
  236. package/docs/channels/zalo.md +0 -253
  237. package/docs/channels/zalouser.md +0 -217
  238. package/docs/ci.md +0 -657
  239. package/docs/clawhub/publishing.md +0 -96
  240. package/docs/cli/acp.md +0 -370
  241. package/docs/cli/agent.md +0 -109
  242. package/docs/cli/agents.md +0 -253
  243. package/docs/cli/approvals.md +0 -190
  244. package/docs/cli/backup.md +0 -98
  245. package/docs/cli/browser.md +0 -307
  246. package/docs/cli/channels.md +0 -154
  247. package/docs/cli/clawbot.md +0 -25
  248. package/docs/cli/commitments.md +0 -90
  249. package/docs/cli/completion.md +0 -39
  250. package/docs/cli/config.md +0 -504
  251. package/docs/cli/configure.md +0 -77
  252. package/docs/cli/crestodian.md +0 -337
  253. package/docs/cli/cron.md +0 -304
  254. package/docs/cli/daemon.md +0 -67
  255. package/docs/cli/dashboard.md +0 -33
  256. package/docs/cli/devices.md +0 -240
  257. package/docs/cli/directory.md +0 -68
  258. package/docs/cli/dns.md +0 -53
  259. package/docs/cli/docs.md +0 -63
  260. package/docs/cli/doctor.md +0 -241
  261. package/docs/cli/flows.md +0 -52
  262. package/docs/cli/gateway.md +0 -572
  263. package/docs/cli/health.md +0 -43
  264. package/docs/cli/hooks.md +0 -345
  265. package/docs/cli/index.md +0 -400
  266. package/docs/cli/infer.md +0 -364
  267. package/docs/cli/logs.md +0 -68
  268. package/docs/cli/mcp.md +0 -529
  269. package/docs/cli/memory.md +0 -183
  270. package/docs/cli/message.md +0 -317
  271. package/docs/cli/migrate.md +0 -334
  272. package/docs/cli/models.md +0 -239
  273. package/docs/cli/node.md +0 -177
  274. package/docs/cli/nodes.md +0 -76
  275. package/docs/cli/onboard.md +0 -250
  276. package/docs/cli/pairing.md +0 -77
  277. package/docs/cli/path.md +0 -511
  278. package/docs/cli/plugins.md +0 -459
  279. package/docs/cli/policy.md +0 -886
  280. package/docs/cli/proxy.md +0 -89
  281. package/docs/cli/qr.md +0 -56
  282. package/docs/cli/reset.md +0 -39
  283. package/docs/cli/sandbox.md +0 -208
  284. package/docs/cli/secrets.md +0 -202
  285. package/docs/cli/security.md +0 -136
  286. package/docs/cli/sessions.md +0 -164
  287. package/docs/cli/setup.md +0 -59
  288. package/docs/cli/skills.md +0 -122
  289. package/docs/cli/status.md +0 -45
  290. package/docs/cli/system.md +0 -89
  291. package/docs/cli/tasks.md +0 -111
  292. package/docs/cli/transcripts.md +0 -151
  293. package/docs/cli/tui.md +0 -91
  294. package/docs/cli/uninstall.md +0 -44
  295. package/docs/cli/update.md +0 -243
  296. package/docs/cli/voicecall.md +0 -204
  297. package/docs/cli/webhooks.md +0 -117
  298. package/docs/cli/wiki.md +0 -256
  299. package/docs/concepts/active-memory.md +0 -856
  300. package/docs/concepts/agent-loop.md +0 -185
  301. package/docs/concepts/agent-runtimes.md +0 -276
  302. package/docs/concepts/agent-workspace.md +0 -230
  303. package/docs/concepts/agent.md +0 -140
  304. package/docs/concepts/architecture.md +0 -154
  305. package/docs/concepts/channel-docking.md +0 -145
  306. package/docs/concepts/commitments.md +0 -150
  307. package/docs/concepts/compaction.md +0 -203
  308. package/docs/concepts/context-engine.md +0 -347
  309. package/docs/concepts/context.md +0 -199
  310. package/docs/concepts/delegate-architecture.md +0 -319
  311. package/docs/concepts/dreaming.md +0 -264
  312. package/docs/concepts/experimental-features.md +0 -109
  313. package/docs/concepts/features.md +0 -91
  314. package/docs/concepts/fengming-sdk.md +0 -323
  315. package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
  316. package/docs/concepts/mantis.md +0 -744
  317. package/docs/concepts/markdown-formatting.md +0 -139
  318. package/docs/concepts/memory-builtin.md +0 -148
  319. package/docs/concepts/memory-honcho.md +0 -144
  320. package/docs/concepts/memory-qmd.md +0 -271
  321. package/docs/concepts/memory-search.md +0 -167
  322. package/docs/concepts/memory.md +0 -299
  323. package/docs/concepts/message-lifecycle-refactor.md +0 -1126
  324. package/docs/concepts/messages.md +0 -214
  325. package/docs/concepts/model-failover.md +0 -384
  326. package/docs/concepts/model-providers.md +0 -719
  327. package/docs/concepts/models.md +0 -371
  328. package/docs/concepts/multi-agent.md +0 -625
  329. package/docs/concepts/oauth.md +0 -198
  330. package/docs/concepts/parallel-specialist-lanes.md +0 -127
  331. package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
  332. package/docs/concepts/presence.md +0 -117
  333. package/docs/concepts/progress-drafts.md +0 -406
  334. package/docs/concepts/qa-e2e-automation.md +0 -947
  335. package/docs/concepts/qa-matrix.md +0 -139
  336. package/docs/concepts/queue-steering.md +0 -90
  337. package/docs/concepts/queue.md +0 -136
  338. package/docs/concepts/retry.md +0 -86
  339. package/docs/concepts/session-pruning.md +0 -104
  340. package/docs/concepts/session-tool.md +0 -188
  341. package/docs/concepts/session.md +0 -164
  342. package/docs/concepts/soul.md +0 -116
  343. package/docs/concepts/streaming.md +0 -257
  344. package/docs/concepts/system-prompt.md +0 -328
  345. package/docs/concepts/timezone.md +0 -47
  346. package/docs/concepts/typebox.md +0 -309
  347. package/docs/concepts/typing-indicators.md +0 -88
  348. package/docs/concepts/usage-tracking.md +0 -66
  349. package/docs/date-time.md +0 -126
  350. package/docs/debug/node-issue.md +0 -90
  351. package/docs/diagnostics/flags.md +0 -182
  352. package/docs/docs.json +0 -1862
  353. package/docs/fengming-agent-runtime.md +0 -82
  354. package/docs/gateway/authentication.md +0 -256
  355. package/docs/gateway/background-process.md +0 -147
  356. package/docs/gateway/bonjour.md +0 -303
  357. package/docs/gateway/bridge-protocol.md +0 -97
  358. package/docs/gateway/cli-backends.md +0 -439
  359. package/docs/gateway/config-agents.md +0 -1525
  360. package/docs/gateway/config-channels.md +0 -945
  361. package/docs/gateway/config-tools.md +0 -774
  362. package/docs/gateway/configuration-examples.md +0 -704
  363. package/docs/gateway/configuration-reference.md +0 -1391
  364. package/docs/gateway/configuration.md +0 -739
  365. package/docs/gateway/diagnostics.md +0 -213
  366. package/docs/gateway/discovery.md +0 -154
  367. package/docs/gateway/doctor.md +0 -575
  368. package/docs/gateway/gateway-lock.md +0 -37
  369. package/docs/gateway/health.md +0 -73
  370. package/docs/gateway/heartbeat.md +0 -498
  371. package/docs/gateway/index.md +0 -383
  372. package/docs/gateway/local-model-services.md +0 -205
  373. package/docs/gateway/local-models.md +0 -355
  374. package/docs/gateway/logging.md +0 -149
  375. package/docs/gateway/multiple-gateways.md +0 -178
  376. package/docs/gateway/network-model.md +0 -15
  377. package/docs/gateway/openai-http-api.md +0 -378
  378. package/docs/gateway/openresponses-http-api.md +0 -347
  379. package/docs/gateway/openshell.md +0 -316
  380. package/docs/gateway/opentelemetry.md +0 -433
  381. package/docs/gateway/operator-scopes.md +0 -119
  382. package/docs/gateway/pairing.md +0 -207
  383. package/docs/gateway/prometheus.md +0 -249
  384. package/docs/gateway/protocol.md +0 -826
  385. package/docs/gateway/remote-gateway-readme.md +0 -169
  386. package/docs/gateway/remote.md +0 -280
  387. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
  388. package/docs/gateway/sandboxing.md +0 -546
  389. package/docs/gateway/secrets-plan-contract.md +0 -159
  390. package/docs/gateway/secrets.md +0 -805
  391. package/docs/gateway/security/audit-checks.md +0 -127
  392. package/docs/gateway/security/exposure-runbook.md +0 -212
  393. package/docs/gateway/security/index.md +0 -1343
  394. package/docs/gateway/security/secure-file-operations.md +0 -76
  395. package/docs/gateway/security/shrinkwrap.md +0 -111
  396. package/docs/gateway/tailscale.md +0 -156
  397. package/docs/gateway/tools-invoke-http-api.md +0 -169
  398. package/docs/gateway/troubleshooting.md +0 -877
  399. package/docs/gateway/trusted-proxy-auth.md +0 -483
  400. package/docs/help/debugging.md +0 -341
  401. package/docs/help/environment.md +0 -233
  402. package/docs/help/faq-first-run.md +0 -870
  403. package/docs/help/faq-models.md +0 -556
  404. package/docs/help/faq.md +0 -2041
  405. package/docs/help/index.md +0 -39
  406. package/docs/help/scripts.md +0 -56
  407. package/docs/help/testing-live.md +0 -587
  408. package/docs/help/testing-updates-plugins.md +0 -299
  409. package/docs/help/testing.md +0 -977
  410. package/docs/help/troubleshooting.md +0 -449
  411. package/docs/index.md +0 -196
  412. package/docs/install/ansible.md +0 -233
  413. package/docs/install/azure.md +0 -315
  414. package/docs/install/bun.md +0 -59
  415. package/docs/install/clawdock.md +0 -112
  416. package/docs/install/development-channels.md +0 -148
  417. package/docs/install/digitalocean.md +0 -174
  418. package/docs/install/docker-vm-runtime.md +0 -154
  419. package/docs/install/docker.md +0 -564
  420. package/docs/install/exe-dev.md +0 -201
  421. package/docs/install/fly.md +0 -524
  422. package/docs/install/gcp.md +0 -418
  423. package/docs/install/hetzner.md +0 -285
  424. package/docs/install/hostinger.md +0 -98
  425. package/docs/install/index.md +0 -232
  426. package/docs/install/installer.md +0 -447
  427. package/docs/install/kubernetes.md +0 -196
  428. package/docs/install/macos-vm.md +0 -281
  429. package/docs/install/migrating-claude.md +0 -165
  430. package/docs/install/migrating-hermes.md +0 -178
  431. package/docs/install/migrating.md +0 -137
  432. package/docs/install/nix.md +0 -112
  433. package/docs/install/node.md +0 -142
  434. package/docs/install/northflank.mdx +0 -44
  435. package/docs/install/oracle.md +0 -218
  436. package/docs/install/podman.md +0 -216
  437. package/docs/install/railway.mdx +0 -92
  438. package/docs/install/raspberry-pi.md +0 -234
  439. package/docs/install/render.mdx +0 -167
  440. package/docs/install/uninstall.md +0 -131
  441. package/docs/install/updating.md +0 -284
  442. package/docs/install/upstash.md +0 -96
  443. package/docs/logging.md +0 -320
  444. package/docs/nav-tabs-underline.js +0 -100
  445. package/docs/network.md +0 -72
  446. package/docs/nodes/audio.md +0 -216
  447. package/docs/nodes/camera.md +0 -166
  448. package/docs/nodes/images.md +0 -77
  449. package/docs/nodes/index.md +0 -439
  450. package/docs/nodes/location-command.md +0 -102
  451. package/docs/nodes/media-understanding.md +0 -495
  452. package/docs/nodes/talk.md +0 -160
  453. package/docs/nodes/troubleshooting.md +0 -123
  454. package/docs/nodes/voicewake.md +0 -93
  455. package/docs/perplexity.md +0 -11
  456. package/docs/plan/codex-context-engine-harness.md +0 -624
  457. package/docs/plan/ui-channels.md +0 -284
  458. package/docs/platforms/digitalocean.md +0 -12
  459. package/docs/platforms/easyrunner.md +0 -109
  460. package/docs/platforms/index.md +0 -51
  461. package/docs/platforms/linux.md +0 -141
  462. package/docs/platforms/mac/bundled-gateway.md +0 -79
  463. package/docs/platforms/mac/canvas.md +0 -128
  464. package/docs/platforms/mac/child-process.md +0 -72
  465. package/docs/platforms/mac/dev-setup.md +0 -112
  466. package/docs/platforms/mac/health.md +0 -39
  467. package/docs/platforms/mac/icon.md +0 -36
  468. package/docs/platforms/mac/logging.md +0 -62
  469. package/docs/platforms/mac/menu-bar.md +0 -93
  470. package/docs/platforms/mac/peekaboo.md +0 -96
  471. package/docs/platforms/mac/permissions.md +0 -73
  472. package/docs/platforms/mac/remote.md +0 -123
  473. package/docs/platforms/mac/signing.md +0 -52
  474. package/docs/platforms/mac/skills.md +0 -43
  475. package/docs/platforms/mac/voice-overlay.md +0 -66
  476. package/docs/platforms/mac/voicewake.md +0 -73
  477. package/docs/platforms/mac/webchat.md +0 -54
  478. package/docs/platforms/mac/xpc.md +0 -66
  479. package/docs/platforms/oracle.md +0 -12
  480. package/docs/platforms/raspberry-pi.md +0 -13
  481. package/docs/platforms/windows.md +0 -286
  482. package/docs/plugins/adding-capabilities.md +0 -146
  483. package/docs/plugins/admin-http-rpc.md +0 -216
  484. package/docs/plugins/agent-tools.md +0 -13
  485. package/docs/plugins/architecture-internals.md +0 -1196
  486. package/docs/plugins/architecture.md +0 -483
  487. package/docs/plugins/building-extensions.md +0 -13
  488. package/docs/plugins/building-plugins.md +0 -335
  489. package/docs/plugins/bundles.md +0 -310
  490. package/docs/plugins/cli-backend-plugins.md +0 -310
  491. package/docs/plugins/codex-computer-use.md +0 -297
  492. package/docs/plugins/codex-harness-reference.md +0 -470
  493. package/docs/plugins/codex-harness-runtime.md +0 -268
  494. package/docs/plugins/codex-harness.md +0 -780
  495. package/docs/plugins/codex-native-plugins.md +0 -276
  496. package/docs/plugins/community.md +0 -77
  497. package/docs/plugins/compatibility.md +0 -167
  498. package/docs/plugins/copilot.md +0 -356
  499. package/docs/plugins/dependency-resolution.md +0 -176
  500. package/docs/plugins/google-meet.md +0 -1737
  501. package/docs/plugins/hooks.md +0 -484
  502. package/docs/plugins/install-overrides.md +0 -80
  503. package/docs/plugins/manage-plugins.md +0 -210
  504. package/docs/plugins/manifest.md +0 -1457
  505. package/docs/plugins/memory-lancedb.md +0 -385
  506. package/docs/plugins/memory-wiki.md +0 -529
  507. package/docs/plugins/message-presentation.md +0 -473
  508. package/docs/plugins/oc-path.md +0 -166
  509. package/docs/plugins/plugin-inventory.md +0 -189
  510. package/docs/plugins/plugin-permission-requests.md +0 -193
  511. package/docs/plugins/reference/acpx.md +0 -23
  512. package/docs/plugins/reference/admin-http-rpc.md +0 -23
  513. package/docs/plugins/reference/alibaba.md +0 -23
  514. package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
  515. package/docs/plugins/reference/amazon-bedrock.md +0 -23
  516. package/docs/plugins/reference/anthropic-vertex.md +0 -19
  517. package/docs/plugins/reference/anthropic.md +0 -23
  518. package/docs/plugins/reference/arcee.md +0 -23
  519. package/docs/plugins/reference/azure-speech.md +0 -23
  520. package/docs/plugins/reference/bonjour.md +0 -19
  521. package/docs/plugins/reference/brave.md +0 -23
  522. package/docs/plugins/reference/browser.md +0 -23
  523. package/docs/plugins/reference/byteplus.md +0 -19
  524. package/docs/plugins/reference/canvas.md +0 -19
  525. package/docs/plugins/reference/cerebras.md +0 -23
  526. package/docs/plugins/reference/chutes.md +0 -23
  527. package/docs/plugins/reference/clickclack.md +0 -23
  528. package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
  529. package/docs/plugins/reference/codex-supervisor.md +0 -27
  530. package/docs/plugins/reference/codex.md +0 -23
  531. package/docs/plugins/reference/comfy.md +0 -23
  532. package/docs/plugins/reference/copilot-proxy.md +0 -19
  533. package/docs/plugins/reference/copilot.md +0 -23
  534. package/docs/plugins/reference/deepgram.md +0 -23
  535. package/docs/plugins/reference/deepinfra.md +0 -23
  536. package/docs/plugins/reference/deepseek.md +0 -23
  537. package/docs/plugins/reference/diagnostics-otel.md +0 -19
  538. package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
  539. package/docs/plugins/reference/diffs-language-pack.md +0 -19
  540. package/docs/plugins/reference/diffs.md +0 -19
  541. package/docs/plugins/reference/discord.md +0 -23
  542. package/docs/plugins/reference/document-extract.md +0 -23
  543. package/docs/plugins/reference/duckduckgo.md +0 -23
  544. package/docs/plugins/reference/elevenlabs.md +0 -23
  545. package/docs/plugins/reference/exa.md +0 -23
  546. package/docs/plugins/reference/fal.md +0 -23
  547. package/docs/plugins/reference/feishu.md +0 -23
  548. package/docs/plugins/reference/file-transfer.md +0 -19
  549. package/docs/plugins/reference/firecrawl.md +0 -23
  550. package/docs/plugins/reference/fireworks.md +0 -23
  551. package/docs/plugins/reference/github-copilot.md +0 -23
  552. package/docs/plugins/reference/gmi.md +0 -23
  553. package/docs/plugins/reference/google-meet.md +0 -23
  554. package/docs/plugins/reference/google.md +0 -23
  555. package/docs/plugins/reference/googlechat.md +0 -23
  556. package/docs/plugins/reference/gradium.md +0 -23
  557. package/docs/plugins/reference/groq.md +0 -23
  558. package/docs/plugins/reference/huggingface.md +0 -23
  559. package/docs/plugins/reference/imessage.md +0 -23
  560. package/docs/plugins/reference/inworld.md +0 -23
  561. package/docs/plugins/reference/irc.md +0 -23
  562. package/docs/plugins/reference/kilocode.md +0 -23
  563. package/docs/plugins/reference/kimi.md +0 -23
  564. package/docs/plugins/reference/line.md +0 -23
  565. package/docs/plugins/reference/litellm.md +0 -23
  566. package/docs/plugins/reference/llm-task.md +0 -19
  567. package/docs/plugins/reference/lmstudio.md +0 -23
  568. package/docs/plugins/reference/lobster.md +0 -19
  569. package/docs/plugins/reference/matrix.md +0 -23
  570. package/docs/plugins/reference/mattermost.md +0 -23
  571. package/docs/plugins/reference/memory-core.md +0 -19
  572. package/docs/plugins/reference/memory-lancedb.md +0 -23
  573. package/docs/plugins/reference/memory-wiki.md +0 -23
  574. package/docs/plugins/reference/microsoft-foundry.md +0 -19
  575. package/docs/plugins/reference/microsoft.md +0 -19
  576. package/docs/plugins/reference/migrate-claude.md +0 -19
  577. package/docs/plugins/reference/migrate-hermes.md +0 -19
  578. package/docs/plugins/reference/minimax.md +0 -23
  579. package/docs/plugins/reference/mistral.md +0 -23
  580. package/docs/plugins/reference/moonshot.md +0 -23
  581. package/docs/plugins/reference/msteams.md +0 -23
  582. package/docs/plugins/reference/nextcloud-talk.md +0 -23
  583. package/docs/plugins/reference/nostr.md +0 -23
  584. package/docs/plugins/reference/novita.md +0 -23
  585. package/docs/plugins/reference/nvidia.md +0 -23
  586. package/docs/plugins/reference/oc-path.md +0 -23
  587. package/docs/plugins/reference/ollama.md +0 -23
  588. package/docs/plugins/reference/open-prose.md +0 -19
  589. package/docs/plugins/reference/openai.md +0 -23
  590. package/docs/plugins/reference/opencode-go.md +0 -23
  591. package/docs/plugins/reference/opencode.md +0 -23
  592. package/docs/plugins/reference/openrouter.md +0 -23
  593. package/docs/plugins/reference/openshell.md +0 -19
  594. package/docs/plugins/reference/perplexity.md +0 -23
  595. package/docs/plugins/reference/pixverse.md +0 -23
  596. package/docs/plugins/reference/policy.md +0 -72
  597. package/docs/plugins/reference/qa-channel.md +0 -23
  598. package/docs/plugins/reference/qa-lab.md +0 -19
  599. package/docs/plugins/reference/qa-matrix.md +0 -19
  600. package/docs/plugins/reference/qianfan.md +0 -23
  601. package/docs/plugins/reference/qqbot.md +0 -23
  602. package/docs/plugins/reference/qwen.md +0 -23
  603. package/docs/plugins/reference/runway.md +0 -23
  604. package/docs/plugins/reference/searxng.md +0 -19
  605. package/docs/plugins/reference/senseaudio.md +0 -23
  606. package/docs/plugins/reference/sglang.md +0 -23
  607. package/docs/plugins/reference/signal.md +0 -23
  608. package/docs/plugins/reference/skill-workshop.md +0 -23
  609. package/docs/plugins/reference/slack.md +0 -23
  610. package/docs/plugins/reference/stepfun.md +0 -23
  611. package/docs/plugins/reference/synology-chat.md +0 -23
  612. package/docs/plugins/reference/synthetic.md +0 -23
  613. package/docs/plugins/reference/tavily.md +0 -23
  614. package/docs/plugins/reference/telegram.md +0 -23
  615. package/docs/plugins/reference/tencent.md +0 -23
  616. package/docs/plugins/reference/tlon.md +0 -23
  617. package/docs/plugins/reference/together.md +0 -23
  618. package/docs/plugins/reference/tokenjuice.md +0 -23
  619. package/docs/plugins/reference/tts-local-cli.md +0 -19
  620. package/docs/plugins/reference/twitch.md +0 -23
  621. package/docs/plugins/reference/venice.md +0 -23
  622. package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
  623. package/docs/plugins/reference/vllm.md +0 -23
  624. package/docs/plugins/reference/voice-call.md +0 -23
  625. package/docs/plugins/reference/volcengine.md +0 -23
  626. package/docs/plugins/reference/voyage.md +0 -19
  627. package/docs/plugins/reference/vydra.md +0 -23
  628. package/docs/plugins/reference/web-readability.md +0 -19
  629. package/docs/plugins/reference/webhooks.md +0 -23
  630. package/docs/plugins/reference/whatsapp.md +0 -23
  631. package/docs/plugins/reference/workboard.md +0 -23
  632. package/docs/plugins/reference/xai.md +0 -23
  633. package/docs/plugins/reference/xiaomi.md +0 -23
  634. package/docs/plugins/reference/zai.md +0 -23
  635. package/docs/plugins/reference/zalo.md +0 -23
  636. package/docs/plugins/reference/zalouser.md +0 -24
  637. package/docs/plugins/reference.md +0 -145
  638. package/docs/plugins/sdk-agent-harness.md +0 -338
  639. package/docs/plugins/sdk-channel-inbound.md +0 -70
  640. package/docs/plugins/sdk-channel-ingress.md +0 -137
  641. package/docs/plugins/sdk-channel-message.md +0 -18
  642. package/docs/plugins/sdk-channel-outbound.md +0 -113
  643. package/docs/plugins/sdk-channel-plugins.md +0 -765
  644. package/docs/plugins/sdk-channel-turn.md +0 -9
  645. package/docs/plugins/sdk-entrypoints.md +0 -344
  646. package/docs/plugins/sdk-migration.md +0 -979
  647. package/docs/plugins/sdk-overview.md +0 -511
  648. package/docs/plugins/sdk-provider-plugins.md +0 -846
  649. package/docs/plugins/sdk-runtime.md +0 -676
  650. package/docs/plugins/sdk-setup.md +0 -550
  651. package/docs/plugins/sdk-subpaths.md +0 -391
  652. package/docs/plugins/sdk-testing.md +0 -403
  653. package/docs/plugins/skill-workshop.md +0 -713
  654. package/docs/plugins/tool-plugins.md +0 -411
  655. package/docs/plugins/voice-call.md +0 -942
  656. package/docs/plugins/webhooks.md +0 -192
  657. package/docs/plugins/workboard.md +0 -252
  658. package/docs/plugins/zalouser.md +0 -86
  659. package/docs/prose.md +0 -137
  660. package/docs/providers/alibaba.md +0 -158
  661. package/docs/providers/anthropic.md +0 -381
  662. package/docs/providers/arcee.md +0 -144
  663. package/docs/providers/azure-speech.md +0 -119
  664. package/docs/providers/bedrock-mantle.md +0 -211
  665. package/docs/providers/bedrock.md +0 -414
  666. package/docs/providers/cerebras.md +0 -130
  667. package/docs/providers/chutes.md +0 -153
  668. package/docs/providers/claude-max-api-proxy.md +0 -191
  669. package/docs/providers/cloudflare-ai-gateway.md +0 -119
  670. package/docs/providers/comfy.md +0 -362
  671. package/docs/providers/deepgram.md +0 -184
  672. package/docs/providers/deepinfra.md +0 -92
  673. package/docs/providers/deepseek.md +0 -146
  674. package/docs/providers/ds4.md +0 -309
  675. package/docs/providers/elevenlabs.md +0 -130
  676. package/docs/providers/fal.md +0 -240
  677. package/docs/providers/fireworks.md +0 -144
  678. package/docs/providers/github-copilot.md +0 -257
  679. package/docs/providers/gmi.md +0 -92
  680. package/docs/providers/google.md +0 -472
  681. package/docs/providers/gradium.md +0 -123
  682. package/docs/providers/groq.md +0 -171
  683. package/docs/providers/huggingface.md +0 -235
  684. package/docs/providers/index.md +0 -105
  685. package/docs/providers/inferrs.md +0 -272
  686. package/docs/providers/inworld.md +0 -120
  687. package/docs/providers/kilocode.md +0 -135
  688. package/docs/providers/litellm.md +0 -234
  689. package/docs/providers/lmstudio.md +0 -224
  690. package/docs/providers/minimax.md +0 -505
  691. package/docs/providers/mistral.md +0 -235
  692. package/docs/providers/models.md +0 -64
  693. package/docs/providers/moonshot.md +0 -413
  694. package/docs/providers/novita.md +0 -92
  695. package/docs/providers/nvidia.md +0 -158
  696. package/docs/providers/ollama-cloud.md +0 -115
  697. package/docs/providers/ollama.md +0 -1225
  698. package/docs/providers/openai.md +0 -1093
  699. package/docs/providers/opencode-go.md +0 -123
  700. package/docs/providers/opencode.md +0 -149
  701. package/docs/providers/openrouter.md +0 -349
  702. package/docs/providers/perplexity-provider.md +0 -123
  703. package/docs/providers/pixverse.md +0 -165
  704. package/docs/providers/qianfan.md +0 -132
  705. package/docs/providers/qwen-oauth.md +0 -115
  706. package/docs/providers/qwen.md +0 -364
  707. package/docs/providers/runway.md +0 -103
  708. package/docs/providers/senseaudio.md +0 -68
  709. package/docs/providers/sglang.md +0 -161
  710. package/docs/providers/stepfun.md +0 -229
  711. package/docs/providers/synthetic.md +0 -154
  712. package/docs/providers/tencent.md +0 -130
  713. package/docs/providers/together.md +0 -140
  714. package/docs/providers/venice.md +0 -312
  715. package/docs/providers/vercel-ai-gateway.md +0 -128
  716. package/docs/providers/vllm.md +0 -407
  717. package/docs/providers/volcengine.md +0 -199
  718. package/docs/providers/vydra.md +0 -180
  719. package/docs/providers/xai.md +0 -571
  720. package/docs/providers/xiaomi.md +0 -262
  721. package/docs/providers/zai.md +0 -224
  722. package/docs/refactor/access.md +0 -9
  723. package/docs/refactor/acp.md +0 -298
  724. package/docs/refactor/canvas.md +0 -131
  725. package/docs/refactor/database-first.md +0 -2256
  726. package/docs/refactor/ingress-core.md +0 -341
  727. package/docs/reference/AGENTS.default.md +0 -131
  728. package/docs/reference/RELEASING.md +0 -799
  729. package/docs/reference/api-usage-costs.md +0 -208
  730. package/docs/reference/application-modernization-plan.md +0 -208
  731. package/docs/reference/code-mode.md +0 -773
  732. package/docs/reference/credits.md +0 -33
  733. package/docs/reference/device-models.md +0 -50
  734. package/docs/reference/fengming-sdk-api-design.md +0 -390
  735. package/docs/reference/full-release-validation.md +0 -202
  736. package/docs/reference/memory-config.md +0 -604
  737. package/docs/reference/prompt-caching.md +0 -358
  738. package/docs/reference/release-performance-sweep.md +0 -360
  739. package/docs/reference/rich-output-protocol.md +0 -101
  740. package/docs/reference/rpc.md +0 -43
  741. package/docs/reference/secret-placeholder-conventions.md +0 -33
  742. package/docs/reference/secretref-credential-surface.md +0 -159
  743. package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
  744. package/docs/reference/session-management-compaction.md +0 -474
  745. package/docs/reference/templates/AGENTS.dev.md +0 -90
  746. package/docs/reference/templates/AGENTS.md +0 -227
  747. package/docs/reference/templates/BOOT.md +0 -16
  748. package/docs/reference/templates/BOOTSTRAP.md +0 -66
  749. package/docs/reference/templates/CLAUDE.md +0 -1
  750. package/docs/reference/templates/HEARTBEAT.md +0 -24
  751. package/docs/reference/templates/IDENTITY.dev.md +0 -52
  752. package/docs/reference/templates/IDENTITY.md +0 -34
  753. package/docs/reference/templates/SOUL.dev.md +0 -82
  754. package/docs/reference/templates/SOUL.md +0 -49
  755. package/docs/reference/templates/TOOLS.dev.md +0 -29
  756. package/docs/reference/templates/TOOLS.md +0 -51
  757. package/docs/reference/templates/USER.dev.md +0 -23
  758. package/docs/reference/templates/USER.md +0 -28
  759. package/docs/reference/test.md +0 -247
  760. package/docs/reference/token-use.md +0 -246
  761. package/docs/reference/transcript-hygiene.md +0 -214
  762. package/docs/reference/wizard.md +0 -252
  763. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
  764. package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
  765. package/docs/security/formal-verification.md +0 -170
  766. package/docs/security/incident-response.md +0 -59
  767. package/docs/security/network-proxy.md +0 -268
  768. package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
  769. package/docs/snippets/plugin-publish/minimal-package.json +0 -16
  770. package/docs/specs/claw-supervisor.md +0 -247
  771. package/docs/start/bootstrapping.md +0 -49
  772. package/docs/start/docs-directory.md +0 -69
  773. package/docs/start/fengming.md +0 -252
  774. package/docs/start/getting-started.md +0 -152
  775. package/docs/start/hubs.md +0 -201
  776. package/docs/start/lore.md +0 -223
  777. package/docs/start/onboarding-overview.md +0 -72
  778. package/docs/start/onboarding.md +0 -98
  779. package/docs/start/quickstart.md +0 -25
  780. package/docs/start/setup.md +0 -178
  781. package/docs/start/showcase.md +0 -363
  782. package/docs/start/wizard-cli-automation.md +0 -232
  783. package/docs/start/wizard-cli-reference.md +0 -331
  784. package/docs/start/wizard.md +0 -141
  785. package/docs/style.css +0 -137
  786. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
  787. package/docs/tools/acp-agents-setup.md +0 -351
  788. package/docs/tools/acp-agents.md +0 -854
  789. package/docs/tools/agent-send.md +0 -130
  790. package/docs/tools/apply-patch.md +0 -64
  791. package/docs/tools/brave-search.md +0 -139
  792. package/docs/tools/browser-control.md +0 -391
  793. package/docs/tools/browser-linux-troubleshooting.md +0 -173
  794. package/docs/tools/browser-login.md +0 -77
  795. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
  796. package/docs/tools/browser.md +0 -810
  797. package/docs/tools/btw.md +0 -159
  798. package/docs/tools/capability-cookbook.md +0 -12
  799. package/docs/tools/clawhub.md +0 -5
  800. package/docs/tools/code-execution.md +0 -173
  801. package/docs/tools/creating-skills.md +0 -158
  802. package/docs/tools/diffs.md +0 -525
  803. package/docs/tools/duckduckgo-search.md +0 -109
  804. package/docs/tools/elevated.md +0 -128
  805. package/docs/tools/exa-search.md +0 -152
  806. package/docs/tools/exec-approvals-advanced.md +0 -444
  807. package/docs/tools/exec-approvals.md +0 -494
  808. package/docs/tools/exec.md +0 -285
  809. package/docs/tools/firecrawl.md +0 -155
  810. package/docs/tools/gemini-search.md +0 -114
  811. package/docs/tools/goal.md +0 -217
  812. package/docs/tools/grok-search.md +0 -129
  813. package/docs/tools/image-generation.md +0 -493
  814. package/docs/tools/index.md +0 -178
  815. package/docs/tools/kimi-search.md +0 -105
  816. package/docs/tools/llm-task.md +0 -137
  817. package/docs/tools/lobster.md +0 -365
  818. package/docs/tools/loop-detection.md +0 -154
  819. package/docs/tools/media-overview.md +0 -160
  820. package/docs/tools/minimax-search.md +0 -102
  821. package/docs/tools/multi-agent-sandbox-tools.md +0 -409
  822. package/docs/tools/music-generation.md +0 -372
  823. package/docs/tools/ollama-search.md +0 -153
  824. package/docs/tools/pdf.md +0 -213
  825. package/docs/tools/perplexity-search.md +0 -220
  826. package/docs/tools/plugin.md +0 -363
  827. package/docs/tools/reactions.md +0 -100
  828. package/docs/tools/searxng-search.md +0 -141
  829. package/docs/tools/skills-config.md +0 -195
  830. package/docs/tools/skills.md +0 -569
  831. package/docs/tools/slash-commands.md +0 -487
  832. package/docs/tools/steer.md +0 -77
  833. package/docs/tools/subagents.md +0 -651
  834. package/docs/tools/tavily.md +0 -162
  835. package/docs/tools/thinking.md +0 -142
  836. package/docs/tools/tokenjuice.md +0 -84
  837. package/docs/tools/tool-search.md +0 -269
  838. package/docs/tools/trajectory.md +0 -229
  839. package/docs/tools/tts.md +0 -1009
  840. package/docs/tools/video-generation.md +0 -555
  841. package/docs/tools/web-fetch.md +0 -210
  842. package/docs/tools/web.md +0 -461
  843. package/docs/tts.md +0 -11
  844. package/docs/vps.md +0 -139
  845. package/docs/web/control-ui.md +0 -512
  846. package/docs/web/dashboard.md +0 -107
  847. package/docs/web/index.md +0 -133
  848. package/docs/web/tui.md +0 -250
  849. package/docs/web/webchat.md +0 -102
  850. package/npm-shrinkwrap.json +0 -12861
  851. package/patches/.gitkeep +0 -0
  852. package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
  853. package/pnpm-workspace.yaml +0 -120
  854. package/scripts/crabbox-wrapper.mjs +0 -2004
  855. package/scripts/lib/official-external-channel-catalog.json +0 -560
  856. package/scripts/lib/official-external-plugin-catalog.json +0 -264
  857. package/scripts/lib/official-external-provider-catalog.json +0 -158
  858. package/scripts/lib/package-dist-imports.mjs +0 -171
  859. package/scripts/npm-runner.mjs +0 -91
  860. package/scripts/postinstall-bundled-plugins.mjs +0 -978
  861. package/scripts/preinstall-package-manager-warning.mjs +0 -64
  862. package/scripts/prepare-git-hooks.mjs +0 -72
  863. package/scripts/windows-cmd-helpers.mjs +0 -22
  864. package/skills/batch/SKILL.md +0 -118
  865. package/skills/code-review/SKILL.md +0 -107
  866. package/skills/debug/SKILL.md +0 -83
  867. package/skills/loop/SKILL.md +0 -118
  868. package/skills/run/SKILL.md +0 -79
  869. package/skills/run-skill-generator/SKILL.md +0 -179
  870. package/skills/verify/SKILL.md +0 -103
  871. package/src/agents/templates/HEARTBEAT.md +0 -3
package/docs/tools/tts.md DELETED
@@ -1,1009 +0,0 @@
1
- ---
2
- summary: "Text-to-speech for outbound replies — providers, personas, slash commands, and per-channel output"
3
- read_when:
4
- - Enabling text-to-speech for replies
5
- - Configuring a TTS provider, fallback chain, or persona
6
- - Using /tts commands or directives
7
- title: "Text-to-speech"
8
- sidebarTitle: "Text to speech (TTS)"
9
- ---
10
-
11
- FengMing can convert outbound replies into audio across **14 speech providers**
12
- and deliver native voice messages on Feishu, Matrix, Telegram, and WhatsApp,
13
- audio attachments everywhere else, and PCM/Ulaw streams for telephony and Talk.
14
-
15
- TTS is the speech-output half of Talk's `stt-tts` mode. Provider-native
16
- `realtime` Talk sessions synthesize speech inside the realtime provider instead
17
- of calling this TTS path, while `transcription` sessions do not synthesize an
18
- assistant voice response.
19
-
20
- ## Quick start
21
-
22
- <Steps>
23
- <Step title="Pick a provider">
24
- OpenAI and ElevenLabs are the most reliable hosted options. Microsoft and
25
- Local CLI work without an API key. See the [provider matrix](#supported-providers)
26
- for the full list.
27
- </Step>
28
- <Step title="Set the API key">
29
- Export the env var for your provider (for example `OPENAI_API_KEY`,
30
- `ELEVENLABS_API_KEY`). Microsoft and Local CLI need no key.
31
- </Step>
32
- <Step title="Enable in config">
33
- Set `messages.tts.auto: "always"` and `messages.tts.provider`:
34
-
35
- ```json5
36
- {
37
- messages: {
38
- tts: {
39
- auto: "always",
40
- provider: "elevenlabs",
41
- },
42
- },
43
- }
44
- ```
45
-
46
- </Step>
47
- <Step title="Try it in chat">
48
- `/tts status` shows the current state. `/tts audio Hello from FengMing`
49
- sends a one-off audio reply.
50
- </Step>
51
- </Steps>
52
-
53
- <Note>
54
- Auto-TTS is **off** by default. When `messages.tts.provider` is unset,
55
- FengMing picks the first configured provider in registry auto-select order.
56
- The built-in `tts` agent tool is explicit-intent only: ordinary chat stays
57
- text unless the user asks for audio, uses `/tts`, or enables Auto-TTS/directive
58
- speech.
59
- </Note>
60
-
61
- ## Supported providers
62
-
63
- | Provider | Auth | Notes |
64
- | ----------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
65
- | **Azure Speech** | `AZURE_SPEECH_KEY` + `AZURE_SPEECH_REGION` (also `AZURE_SPEECH_API_KEY`, `SPEECH_KEY`, `SPEECH_REGION`) | Native Ogg/Opus voice-note output and telephony. |
66
- | **DeepInfra** | `DEEPINFRA_API_KEY` | OpenAI-compatible TTS. Defaults to `hexgrad/Kokoro-82M`. |
67
- | **ElevenLabs** | `ELEVENLABS_API_KEY` or `XI_API_KEY` | Voice cloning, multilingual, deterministic via `seed`; streamed for Discord voice playback. |
68
- | **Google Gemini** | `GEMINI_API_KEY` or `GOOGLE_API_KEY` | Gemini API batch TTS; persona-aware via `promptTemplate: "audio-profile-v1"`. |
69
- | **Gradium** | `GRADIUM_API_KEY` | Voice-note and telephony output. |
70
- | **Inworld** | `INWORLD_API_KEY` | Streaming TTS API. Native Opus voice-note and PCM telephony. |
71
- | **Local CLI** | none | Runs a configured local TTS command. |
72
- | **Microsoft** | none | Public Edge neural TTS via `node-edge-tts`. Best-effort, no SLA. |
73
- | **MiniMax** | `MINIMAX_API_KEY` (or Token Plan: `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, `MINIMAX_CODING_API_KEY`) | T2A v2 API. Defaults to `speech-2.8-hd`. |
74
- | **OpenAI** | `OPENAI_API_KEY` | Also used for auto-summary; supports persona `instructions`. |
75
- | **OpenRouter** | `OPENROUTER_API_KEY` (can reuse `models.providers.openrouter.apiKey`) | Default model `hexgrad/kokoro-82m`. |
76
- | **Volcengine** | `VOLCENGINE_TTS_API_KEY` or `BYTEPLUS_SEED_SPEECH_API_KEY` (legacy AppID/token: `VOLCENGINE_TTS_APPID`/`_TOKEN`) | BytePlus Seed Speech HTTP API. |
77
- | **Vydra** | `VYDRA_API_KEY` | Shared image, video, and speech provider. |
78
- | **xAI** | `XAI_API_KEY` | xAI batch TTS. Native Opus voice-note is **not** supported. |
79
- | **Xiaomi MiMo** | `XIAOMI_API_KEY` | MiMo TTS through Xiaomi chat completions. |
80
-
81
- If multiple providers are configured, the selected one is used first and the
82
- others are fallback options. Auto-summary uses `summaryModel` (or
83
- `agents.defaults.model.primary`), so that provider must also be authenticated
84
- if you keep summaries enabled.
85
-
86
- <Warning>
87
- The bundled **Microsoft** provider uses Microsoft Edge's online neural TTS
88
- service via `node-edge-tts`. It is a public web service without a published
89
- SLA or quota — treat it as best-effort. The legacy provider id `edge` is
90
- normalized to `microsoft` and `fengming doctor --fix` rewrites persisted
91
- config; new configs should always use `microsoft`.
92
- </Warning>
93
-
94
- ## Configuration
95
-
96
- TTS config lives under `messages.tts` in `~/.fengming/fengming.json`. Pick a
97
- preset and adapt the provider block:
98
-
99
- <Tabs>
100
- <Tab title="Azure Speech">
101
- ```json5
102
- {
103
- messages: {
104
- tts: {
105
- auto: "always",
106
- provider: "azure-speech",
107
- providers: {
108
- "azure-speech": {
109
- apiKey: "${AZURE_SPEECH_KEY}",
110
- region: "eastus",
111
- speakerVoice: "en-US-JennyNeural",
112
- lang: "en-US",
113
- outputFormat: "audio-24khz-48kbitrate-mono-mp3",
114
- voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus",
115
- },
116
- },
117
- },
118
- },
119
- }
120
- ```
121
- </Tab>
122
- <Tab title="ElevenLabs">
123
- ```json5
124
- {
125
- messages: {
126
- tts: {
127
- auto: "always",
128
- provider: "elevenlabs",
129
- providers: {
130
- elevenlabs: {
131
- apiKey: "${ELEVENLABS_API_KEY}",
132
- model: "eleven_multilingual_v2",
133
- speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",
134
- },
135
- },
136
- },
137
- },
138
- }
139
- ```
140
- </Tab>
141
- <Tab title="Google Gemini">
142
- ```json5
143
- {
144
- messages: {
145
- tts: {
146
- auto: "always",
147
- provider: "google",
148
- providers: {
149
- google: {
150
- apiKey: "${GEMINI_API_KEY}",
151
- model: "gemini-3.1-flash-tts-preview",
152
- speakerVoice: "Kore",
153
- // Optional natural-language style prompts:
154
- // audioProfile: "Speak in a calm, podcast-host tone.",
155
- // speakerName: "Alex",
156
- },
157
- },
158
- },
159
- },
160
- }
161
- ```
162
- </Tab>
163
- <Tab title="Gradium">
164
- ```json5
165
- {
166
- messages: {
167
- tts: {
168
- auto: "always",
169
- provider: "gradium",
170
- providers: {
171
- gradium: {
172
- apiKey: "${GRADIUM_API_KEY}",
173
- speakerVoiceId: "YTpq7expH9539ERJ",
174
- },
175
- },
176
- },
177
- },
178
- }
179
- ```
180
- </Tab>
181
- <Tab title="Inworld">
182
- ```json5
183
- {
184
- messages: {
185
- tts: {
186
- auto: "always",
187
- provider: "inworld",
188
- providers: {
189
- inworld: {
190
- apiKey: "${INWORLD_API_KEY}",
191
- modelId: "inworld-tts-1.5-max",
192
- speakerVoiceId: "Sarah",
193
- temperature: 0.7,
194
- },
195
- },
196
- },
197
- },
198
- }
199
- ```
200
- </Tab>
201
- <Tab title="Local CLI">
202
- ```json5
203
- {
204
- messages: {
205
- tts: {
206
- auto: "always",
207
- provider: "tts-local-cli",
208
- providers: {
209
- "tts-local-cli": {
210
- command: "say",
211
- args: ["-o", "{{OutputPath}}", "{{Text}}"],
212
- outputFormat: "wav",
213
- timeoutMs: 120000,
214
- },
215
- },
216
- },
217
- },
218
- }
219
- ```
220
- </Tab>
221
- <Tab title="Microsoft (no key)">
222
- ```json5
223
- {
224
- messages: {
225
- tts: {
226
- auto: "always",
227
- provider: "microsoft",
228
- providers: {
229
- microsoft: {
230
- enabled: true,
231
- speakerVoice: "en-US-MichelleNeural",
232
- lang: "en-US",
233
- outputFormat: "audio-24khz-48kbitrate-mono-mp3",
234
- rate: "+0%",
235
- pitch: "+0%",
236
- },
237
- },
238
- },
239
- },
240
- }
241
- ```
242
- </Tab>
243
- <Tab title="MiniMax">
244
- ```json5
245
- {
246
- messages: {
247
- tts: {
248
- auto: "always",
249
- provider: "minimax",
250
- providers: {
251
- minimax: {
252
- apiKey: "${MINIMAX_API_KEY}",
253
- model: "speech-2.8-hd",
254
- speakerVoiceId: "English_expressive_narrator",
255
- speed: 1.0,
256
- vol: 1.0,
257
- pitch: 0,
258
- },
259
- },
260
- },
261
- },
262
- }
263
- ```
264
- </Tab>
265
- <Tab title="OpenAI + ElevenLabs">
266
- ```json5
267
- {
268
- messages: {
269
- tts: {
270
- auto: "always",
271
- provider: "openai",
272
- summaryModel: "openai/gpt-4.1-mini",
273
- modelOverrides: { enabled: true },
274
- providers: {
275
- openai: {
276
- apiKey: "${OPENAI_API_KEY}",
277
- model: "gpt-4o-mini-tts",
278
- speakerVoice: "alloy",
279
- },
280
- elevenlabs: {
281
- apiKey: "${ELEVENLABS_API_KEY}",
282
- model: "eleven_multilingual_v2",
283
- speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",
284
- voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 },
285
- applyTextNormalization: "auto",
286
- languageCode: "en",
287
- },
288
- },
289
- },
290
- },
291
- }
292
- ```
293
- </Tab>
294
- <Tab title="OpenRouter">
295
- ```json5
296
- {
297
- messages: {
298
- tts: {
299
- auto: "always",
300
- provider: "openrouter",
301
- providers: {
302
- openrouter: {
303
- apiKey: "${OPENROUTER_API_KEY}",
304
- model: "hexgrad/kokoro-82m",
305
- speakerVoice: "af_alloy",
306
- responseFormat: "mp3",
307
- },
308
- },
309
- },
310
- },
311
- }
312
- ```
313
- </Tab>
314
- <Tab title="Volcengine">
315
- ```json5
316
- {
317
- messages: {
318
- tts: {
319
- auto: "always",
320
- provider: "volcengine",
321
- providers: {
322
- volcengine: {
323
- apiKey: "${VOLCENGINE_TTS_API_KEY}",
324
- resourceId: "seed-tts-1.0",
325
- speakerVoice: "en_female_anna_mars_bigtts",
326
- },
327
- },
328
- },
329
- },
330
- }
331
- ```
332
- </Tab>
333
- <Tab title="xAI">
334
- ```json5
335
- {
336
- messages: {
337
- tts: {
338
- auto: "always",
339
- provider: "xai",
340
- providers: {
341
- xai: {
342
- apiKey: "${XAI_API_KEY}",
343
- speakerVoiceId: "eve",
344
- language: "en",
345
- responseFormat: "mp3",
346
- },
347
- },
348
- },
349
- },
350
- }
351
- ```
352
- </Tab>
353
- <Tab title="Xiaomi MiMo">
354
- ```json5
355
- {
356
- messages: {
357
- tts: {
358
- auto: "always",
359
- provider: "xiaomi",
360
- providers: {
361
- xiaomi: {
362
- apiKey: "${XIAOMI_API_KEY}",
363
- model: "mimo-v2.5-tts",
364
- speakerVoice: "mimo_default",
365
- format: "mp3",
366
- },
367
- },
368
- },
369
- },
370
- }
371
- ```
372
- </Tab>
373
- </Tabs>
374
-
375
- ### Per-agent voice overrides
376
-
377
- Use `agents.list[].tts` when one agent should speak with a different provider,
378
- voice, model, persona, or auto-TTS mode. The agent block deep-merges over
379
- `messages.tts`, so provider credentials can stay in the global provider config:
380
-
381
- ```json5
382
- {
383
- messages: {
384
- tts: {
385
- auto: "always",
386
- provider: "elevenlabs",
387
- providers: {
388
- elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" },
389
- },
390
- },
391
- },
392
- agents: {
393
- list: [
394
- {
395
- id: "reader",
396
- tts: {
397
- providers: {
398
- elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" },
399
- },
400
- },
401
- },
402
- ],
403
- },
404
- }
405
- ```
406
-
407
- To pin a per-agent persona, set `agents.list[].tts.persona` alongside provider
408
- config — it overrides the global `messages.tts.persona` for that agent only.
409
-
410
- Precedence order for automatic replies, `/tts audio`, `/tts status`, and the
411
- `tts` agent tool:
412
-
413
- 1. `messages.tts`
414
- 2. active `agents.list[].tts`
415
- 3. channel override, when the channel supports `channels.<channel>.tts`
416
- 4. account override, when the channel passes `channels.<channel>.accounts.<id>.tts`
417
- 5. local `/tts` preferences for this host
418
- 6. inline `[[tts:...]]` directives when [model overrides](#model-driven-directives) are enabled
419
-
420
- Channel and account overrides use the same shape as `messages.tts` and
421
- deep-merge over the earlier layers, so shared provider credentials can stay in
422
- `messages.tts` while a channel or bot account changes only speaker voice, model, persona,
423
- or auto mode:
424
-
425
- ```json5
426
- {
427
- messages: {
428
- tts: {
429
- provider: "openai",
430
- providers: {
431
- openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },
432
- },
433
- },
434
- },
435
- channels: {
436
- feishu: {
437
- accounts: {
438
- english: {
439
- tts: {
440
- providers: {
441
- openai: { speakerVoice: "shimmer" },
442
- },
443
- },
444
- },
445
- },
446
- },
447
- },
448
- }
449
- ```
450
-
451
- ## Personas
452
-
453
- A **persona** is a stable spoken identity that can be applied deterministically
454
- across providers. It can prefer one provider, define provider-neutral prompt
455
- intent, and carry provider-specific bindings for voices, models, prompt
456
- templates, seeds, and voice settings.
457
-
458
- ### Minimal persona
459
-
460
- ```json5
461
- {
462
- messages: {
463
- tts: {
464
- auto: "always",
465
- persona: "narrator",
466
- personas: {
467
- narrator: {
468
- label: "Narrator",
469
- provider: "elevenlabs",
470
- providers: {
471
- elevenlabs: {
472
- speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",
473
- modelId: "eleven_multilingual_v2",
474
- },
475
- },
476
- },
477
- },
478
- },
479
- },
480
- }
481
- ```
482
-
483
- ### Full persona (provider-neutral prompt)
484
-
485
- ```json5
486
- {
487
- messages: {
488
- tts: {
489
- auto: "always",
490
- persona: "alfred",
491
- personas: {
492
- alfred: {
493
- label: "Alfred",
494
- description: "Dry, warm British butler narrator.",
495
- provider: "google",
496
- fallbackPolicy: "preserve-persona",
497
- prompt: {
498
- profile: "A brilliant British butler. Dry, witty, warm, charming, emotionally expressive, never generic.",
499
- scene: "A quiet late-night study. Close-mic narration for a trusted operator.",
500
- sampleContext: "The speaker is answering a private technical request with concise confidence and dry warmth.",
501
- style: "Refined, understated, lightly amused.",
502
- accent: "British English.",
503
- pacing: "Measured, with short dramatic pauses.",
504
- constraints: ["Do not read configuration values aloud.", "Do not explain the persona."],
505
- },
506
- providers: {
507
- google: {
508
- model: "gemini-3.1-flash-tts-preview",
509
- speakerVoice: "Algieba",
510
- promptTemplate: "audio-profile-v1",
511
- },
512
- openai: { model: "gpt-4o-mini-tts", speakerVoice: "cedar" },
513
- elevenlabs: {
514
- speakerVoiceId: "voice_id",
515
- modelId: "eleven_multilingual_v2",
516
- seed: 42,
517
- voiceSettings: {
518
- stability: 0.65,
519
- similarityBoost: 0.8,
520
- style: 0.25,
521
- useSpeakerBoost: true,
522
- speed: 0.95,
523
- },
524
- },
525
- },
526
- },
527
- },
528
- },
529
- },
530
- }
531
- ```
532
-
533
- ### Persona resolution
534
-
535
- The active persona is selected deterministically:
536
-
537
- 1. `/tts persona <id>` local preference, if set.
538
- 2. `messages.tts.persona`, if set.
539
- 3. No persona.
540
-
541
- Provider selection runs explicit-first:
542
-
543
- 1. Direct overrides (CLI, gateway, Talk, allowed TTS directives).
544
- 2. `/tts provider <id>` local preference.
545
- 3. Active persona's `provider`.
546
- 4. `messages.tts.provider`.
547
- 5. Registry auto-select.
548
-
549
- For each provider attempt, FengMing merges configs in this order:
550
-
551
- 1. `messages.tts.providers.<id>`
552
- 2. `messages.tts.personas.<persona>.providers.<id>`
553
- 3. Trusted request overrides
554
- 4. Allowed model-emitted TTS directive overrides
555
-
556
- ### How providers use persona prompts
557
-
558
- Persona prompt fields (`profile`, `scene`, `sampleContext`, `style`, `accent`,
559
- `pacing`, `constraints`) are **provider-neutral**. Each provider decides how
560
- to use them:
561
-
562
- <AccordionGroup>
563
- <Accordion title="Google Gemini">
564
- Wraps persona prompt fields in a Gemini TTS prompt structure **only when**
565
- the effective Google provider config sets `promptTemplate: "audio-profile-v1"`
566
- or `personaPrompt`. The older `audioProfile` and `speakerName` fields are
567
- still prepended as Google-specific prompt text. Inline audio tags such as
568
- `[whispers]` or `[laughs]` inside a `[[tts:text]]` block are preserved
569
- inside the Gemini transcript; FengMing does not generate these tags.
570
- </Accordion>
571
- <Accordion title="OpenAI">
572
- Maps persona prompt fields to the request `instructions` field **only when**
573
- no explicit OpenAI `instructions` is configured. Explicit `instructions`
574
- always wins.
575
- </Accordion>
576
- <Accordion title="Other providers">
577
- Use only the provider-specific persona bindings under
578
- `personas.<id>.providers.<provider>`. Persona prompt fields are ignored
579
- unless the provider implements its own persona-prompt mapping.
580
- </Accordion>
581
- </AccordionGroup>
582
-
583
- ### Fallback policy
584
-
585
- `fallbackPolicy` controls behavior when a persona has **no binding** for the
586
- attempted provider:
587
-
588
- | Policy | Behavior |
589
- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
590
- | `preserve-persona` | **Default.** Provider-neutral prompt fields stay available; the provider may use them or ignore them. |
591
- | `provider-defaults` | Persona is omitted from prompt preparation for that attempt; the provider uses its neutral defaults while fallback to other providers continues. |
592
- | `fail` | Skip that provider attempt with `reasonCode: "not_configured"` and `personaBinding: "missing"`. Fallback providers are still tried. |
593
-
594
- The whole TTS request only fails when **every** attempted provider is skipped
595
- or fails.
596
-
597
- Talk session provider selection is session-scoped. A Talk client should choose
598
- provider ids, model ids, voice ids, and locales from `talk.catalog` and pass
599
- them through the Talk session or handoff request. Opening a voice session should
600
- not mutate `messages.tts` or global Talk provider defaults.
601
-
602
- ## Model-driven directives
603
-
604
- By default, the assistant **can** emit `[[tts:...]]` directives to override
605
- voice, model, or speed for a single reply, plus an optional
606
- `[[tts:text]]...[[/tts:text]]` block for expressive cues that should appear in
607
- audio only:
608
-
609
- ```text
610
- Here you go.
611
-
612
- [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
613
- [[tts:text]](laughs) Read the song once more.[[/tts:text]]
614
- ```
615
-
616
- When `messages.tts.auto` is `"tagged"`, **directives are required** to trigger
617
- audio. Streaming block delivery strips directives from visible text before the
618
- channel sees them, even when split across adjacent blocks.
619
-
620
- `provider=...` is ignored unless `modelOverrides.allowProvider: true`. When a
621
- reply declares `provider=...`, the other keys in that directive are parsed
622
- only by that provider; unsupported keys are stripped and reported as TTS
623
- directive warnings.
624
-
625
- **Available directive keys:**
626
-
627
- - `provider` (registered provider id; requires `allowProvider: true`)
628
- - `speakerVoice` / `speakerVoiceId` (legacy aliases: `voice`, `voiceName`, `voice_name`, `google_voice`, `voiceId`)
629
- - `model` / `google_model`
630
- - `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
631
- - `vol` / `volume` (MiniMax volume, 0–10)
632
- - `pitch` (MiniMax integer pitch, −12 to 12; fractional values are truncated)
633
- - `emotion` (Volcengine emotion tag)
634
- - `applyTextNormalization` (`auto|on|off`)
635
- - `languageCode` (ISO 639-1)
636
- - `seed`
637
-
638
- **Disable model overrides entirely:**
639
-
640
- ```json5
641
- { messages: { tts: { modelOverrides: { enabled: false } } } }
642
- ```
643
-
644
- **Allow provider switching while keeping other knobs configurable:**
645
-
646
- ```json5
647
- { messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }
648
- ```
649
-
650
- ## Slash commands
651
-
652
- Single command `/tts`. On Discord, FengMing also registers `/voice` because
653
- `/tts` is a built-in Discord command — text `/tts ...` still works.
654
-
655
- ```text
656
- /tts off | on | status
657
- /tts chat on | off | default
658
- /tts latest
659
- /tts provider <id>
660
- /tts persona <id> | off
661
- /tts limit <chars>
662
- /tts summary off
663
- /tts audio <text>
664
- ```
665
-
666
- <Note>
667
- Commands require an authorized sender (allowlist/owner rules apply) and either
668
- `commands.text` or native command registration must be enabled.
669
- </Note>
670
-
671
- Behavior notes:
672
-
673
- - `/tts on` writes the local TTS preference to `always`; `/tts off` writes it to `off`.
674
- - `/tts chat on|off|default` writes a session-scoped auto-TTS override for the current chat.
675
- - `/tts persona <id>` writes the local persona preference; `/tts persona off` clears it.
676
- - `/tts latest` reads the latest assistant reply from the current session transcript and sends it as audio once. It stores only a hash of that reply on the session entry to suppress duplicate voice sends.
677
- - `/tts audio` generates a one-off audio reply (does **not** toggle TTS on).
678
- - `limit` and `summary` are stored in **local prefs**, not the main config.
679
- - `/tts status` includes fallback diagnostics for the latest attempt — `Fallback: <primary> -> <used>`, `Attempts: ...`, and per-attempt detail (`provider:outcome(reasonCode) latency`).
680
- - `/status` shows the active TTS mode plus configured provider, model, voice, and sanitized custom endpoint metadata when TTS is enabled.
681
-
682
- ## Per-user preferences
683
-
684
- Slash commands write local overrides to `prefsPath`. The default is
685
- `~/.fengming/settings/tts.json`; override with the `FENGMING_TTS_PREFS` env var
686
- or `messages.tts.prefsPath`.
687
-
688
- | Stored field | Effect |
689
- | ------------ | -------------------------------------------- |
690
- | `auto` | Local auto-TTS override (`always`, `off`, …) |
691
- | `provider` | Local primary provider override |
692
- | `persona` | Local persona override |
693
- | `maxLength` | Summary threshold (default `1500` chars) |
694
- | `summarize` | Summary toggle (default `true`) |
695
-
696
- These override the effective config from `messages.tts` plus the active
697
- `agents.list[].tts` block for that host.
698
-
699
- ## Output formats (fixed)
700
-
701
- TTS voice delivery is channel-capability driven. Channel plugins advertise
702
- whether voice-style TTS should ask providers for a native `voice-note` target or
703
- keep normal `audio-file` synthesis and only mark compatible output for voice
704
- delivery.
705
-
706
- - **Voice-note capable channels**: voice-note replies prefer Opus (`opus_48000_64` from ElevenLabs, `opus` from OpenAI).
707
- - 48kHz / 64kbps is a good voice message tradeoff.
708
- - **Feishu / WhatsApp**: when a voice-note reply is produced as MP3/WebM/WAV/M4A
709
- or another likely audio file, the channel plugin transcodes it to 48kHz
710
- Ogg/Opus with `ffmpeg` before sending the native voice message. WhatsApp sends
711
- the result through the Baileys `audio` payload with `ptt: true` and
712
- `audio/ogg; codecs=opus`. If conversion fails, Feishu receives the original
713
- file as an attachment; WhatsApp send fails rather than posting an incompatible
714
- PTT payload.
715
- - **Other channels**: MP3 (`mp3_44100_128` from ElevenLabs, `mp3` from OpenAI).
716
- - 44.1kHz / 128kbps is the default balance for speech clarity.
717
- - **MiniMax**: MP3 (`speech-2.8-hd` model, 32kHz sample rate) for normal audio attachments. For channel-advertised voice-note targets, FengMing transcodes the MiniMax MP3 to 48kHz Opus with `ffmpeg` before delivery when the channel advertises transcoding.
718
- - **Xiaomi MiMo**: MP3 by default, or WAV when configured. For channel-advertised voice-note targets, FengMing transcodes Xiaomi output to 48kHz Opus with `ffmpeg` before delivery when the channel advertises transcoding.
719
- - **Local CLI**: uses the configured `outputFormat`. Voice-note targets are
720
- converted to Ogg/Opus and telephony output is converted to raw 16 kHz mono PCM
721
- with `ffmpeg`.
722
- - **Google Gemini**: Gemini API TTS returns raw 24kHz PCM. FengMing wraps it as WAV for audio attachments, transcodes it to 48kHz Opus for voice-note targets, and returns PCM directly for Talk/telephony.
723
- - **Gradium**: WAV for audio attachments, Opus for voice-note targets, and `ulaw_8000` at 8 kHz for telephony.
724
- - **Inworld**: MP3 for normal audio attachments, native `OGG_OPUS` for voice-note targets, and raw `PCM` at 22050 Hz for Talk/telephony.
725
- - **xAI**: MP3 by default; `responseFormat` may be `mp3`, `wav`, `pcm`, `mulaw`, or `alaw`. FengMing uses xAI's batch REST TTS endpoint and returns a complete audio attachment; xAI's streaming TTS WebSocket is not used by this provider path. Native Opus voice-note format is not supported by this path.
726
- - **Microsoft**: uses `microsoft.outputFormat` (default `audio-24khz-48kbitrate-mono-mp3`).
727
- - The bundled transport accepts an `outputFormat`, but not all formats are available from the service.
728
- - Output format values follow Microsoft Speech output formats (including Ogg/WebM Opus).
729
- - Telegram `sendVoice` accepts OGG/MP3/M4A; use OpenAI/ElevenLabs if you need
730
- guaranteed Opus voice messages.
731
- - If the configured Microsoft output format fails, FengMing retries with MP3.
732
-
733
- OpenAI/ElevenLabs output formats are fixed per channel (see above).
734
-
735
- ## Auto-TTS behavior
736
-
737
- When `messages.tts.auto` is enabled, FengMing:
738
-
739
- - Skips TTS if the reply already contains media or a `MEDIA:` directive.
740
- - Skips very short replies (under 10 chars).
741
- - Summarizes long replies when summaries are enabled, using
742
- `summaryModel` (or `agents.defaults.model.primary`).
743
- - Attaches the generated audio to the reply.
744
- - In `mode: "final"`, still sends audio-only TTS for streamed final replies
745
- after the text stream completes; the generated media goes through the same
746
- channel media normalization as normal reply attachments.
747
-
748
- If the reply exceeds `maxLength` and summary is off (or no API key for the
749
- summary model), audio is skipped and the normal text reply is sent.
750
-
751
- ```text
752
- Reply -> TTS enabled?
753
- no -> send text
754
- yes -> has media / MEDIA: / short?
755
- yes -> send text
756
- no -> length > limit?
757
- no -> TTS -> attach audio
758
- yes -> summary enabled?
759
- no -> send text
760
- yes -> summarize -> TTS -> attach audio
761
- ```
762
-
763
- ## Output formats by channel
764
-
765
- | Target | Format |
766
- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
767
- | Feishu / Matrix / Telegram / WhatsApp | Voice-note replies prefer **Opus** (`opus_48000_64` from ElevenLabs, `opus` from OpenAI). 48 kHz / 64 kbps balances clarity and size. |
768
- | Other channels | **MP3** (`mp3_44100_128` from ElevenLabs, `mp3` from OpenAI). 44.1 kHz / 128 kbps default for speech. |
769
- | Talk / telephony | Provider-native **PCM** (Inworld 22050 Hz, Google 24 kHz), or `ulaw_8000` from Gradium for telephony. |
770
-
771
- Per-provider notes:
772
-
773
- - **Feishu / WhatsApp transcoding:** When a voice-note reply lands as MP3/WebM/WAV/M4A, the channel plugin transcodes to 48 kHz Ogg/Opus with `ffmpeg`. WhatsApp sends through Baileys with `ptt: true` and `audio/ogg; codecs=opus`. If conversion fails: Feishu falls back to attaching the original file; WhatsApp send fails rather than posting an incompatible PTT payload.
774
- - **MiniMax / Xiaomi MiMo:** Default MP3 (32 kHz for MiniMax `speech-2.8-hd`); transcoded to 48 kHz Opus for voice-note targets via `ffmpeg`.
775
- - **Local CLI:** Uses configured `outputFormat`. Voice-note targets are converted to Ogg/Opus and telephony output to raw 16 kHz mono PCM.
776
- - **Google Gemini:** Returns raw 24 kHz PCM. FengMing wraps as WAV for attachments, transcodes to 48 kHz Opus for voice-note targets, returns PCM directly for Talk/telephony.
777
- - **Inworld:** MP3 attachments, native `OGG_OPUS` voice-note, raw `PCM` 22050 Hz for Talk/telephony.
778
- - **xAI:** MP3 by default; `responseFormat` may be `mp3|wav|pcm|mulaw|alaw`. Uses xAI's batch REST endpoint — streaming WebSocket TTS is **not** used. Native Opus voice-note format is **not** supported.
779
- - **Microsoft:** Uses `microsoft.outputFormat` (default `audio-24khz-48kbitrate-mono-mp3`). Telegram `sendVoice` accepts OGG/MP3/M4A; use OpenAI/ElevenLabs if you need guaranteed Opus voice messages. If the configured Microsoft format fails, FengMing retries with MP3.
780
-
781
- OpenAI and ElevenLabs output formats are fixed per channel as listed above.
782
-
783
- ## Field reference
784
-
785
- <AccordionGroup>
786
- <Accordion title="Top-level messages.tts.*">
787
- <ParamField path="auto" type='"off" | "always" | "inbound" | "tagged"'>
788
- Auto-TTS mode. `inbound` only sends audio after an inbound voice message; `tagged` only sends audio when the reply includes `[[tts:...]]` directives or a `[[tts:text]]` block.
789
- </ParamField>
790
- <ParamField path="enabled" type="boolean" deprecated>
791
- Legacy toggle. `fengming doctor --fix` migrates this to `auto`.
792
- </ParamField>
793
- <ParamField path="mode" type='"final" | "all"' default="final">
794
- `"all"` includes tool/block replies in addition to final replies.
795
- </ParamField>
796
- <ParamField path="provider" type="string">
797
- Speech provider id. When unset, FengMing uses the first configured provider in registry auto-select order. Legacy `provider: "edge"` is rewritten to `"microsoft"` by `fengming doctor --fix`.
798
- </ParamField>
799
- <ParamField path="persona" type="string">
800
- Active persona id from `personas`. Normalized to lowercase.
801
- </ParamField>
802
- <ParamField path="personas.<id>" type="object">
803
- Stable spoken identity. Fields: `label`, `description`, `provider`, `fallbackPolicy`, `prompt`, `providers.<provider>`. See [Personas](#personas).
804
- </ParamField>
805
- <ParamField path="summaryModel" type="string">
806
- Cheap model for auto-summary; defaults to `agents.defaults.model.primary`. Accepts `provider/model` or a configured model alias.
807
- </ParamField>
808
- <ParamField path="modelOverrides" type="object">
809
- Allow the model to emit TTS directives. `enabled` defaults to `true`; `allowProvider` defaults to `false`.
810
- </ParamField>
811
- <ParamField path="providers.<id>" type="object">
812
- Provider-owned settings keyed by speech provider id. Legacy direct blocks (`messages.tts.openai`, `.elevenlabs`, `.microsoft`, `.edge`) are rewritten by `fengming doctor --fix`; commit only `messages.tts.providers.<id>`.
813
- </ParamField>
814
- <ParamField path="maxTextLength" type="number">
815
- Hard cap for TTS input characters. `/tts audio` fails if exceeded.
816
- </ParamField>
817
- <ParamField path="timeoutMs" type="number">
818
- Request timeout in milliseconds.
819
- </ParamField>
820
- <ParamField path="prefsPath" type="string">
821
- Override the local prefs JSON path (provider/limit/summary). Default `~/.fengming/settings/tts.json`.
822
- </ParamField>
823
- </Accordion>
824
-
825
- <Accordion title="Azure Speech">
826
- <ParamField path="apiKey" type="string">Env: `AZURE_SPEECH_KEY`, `AZURE_SPEECH_API_KEY`, or `SPEECH_KEY`.</ParamField>
827
- <ParamField path="region" type="string">Azure Speech region (e.g. `eastus`). Env: `AZURE_SPEECH_REGION` or `SPEECH_REGION`.</ParamField>
828
- <ParamField path="endpoint" type="string">Optional Azure Speech endpoint override (alias `baseUrl`).</ParamField>
829
- <ParamField path="speakerVoice" type="string">Azure voice ShortName. Default `en-US-JennyNeural`. Legacy alias: `voice`.</ParamField>
830
- <ParamField path="lang" type="string">SSML language code. Default `en-US`.</ParamField>
831
- <ParamField path="outputFormat" type="string">Azure `X-Microsoft-OutputFormat` for standard audio. Default `audio-24khz-48kbitrate-mono-mp3`.</ParamField>
832
- <ParamField path="voiceNoteOutputFormat" type="string">Azure `X-Microsoft-OutputFormat` for voice-note output. Default `ogg-24khz-16bit-mono-opus`.</ParamField>
833
- </Accordion>
834
-
835
- <Accordion title="ElevenLabs">
836
- <ParamField path="apiKey" type="string">Falls back to `ELEVENLABS_API_KEY` or `XI_API_KEY`.</ParamField>
837
- <ParamField path="model" type="string">Model id (e.g. `eleven_multilingual_v2`, `eleven_v3`).</ParamField>
838
- <ParamField path="speakerVoiceId" type="string">ElevenLabs voice id. Legacy alias: `voiceId`.</ParamField>
839
- <ParamField path="voiceSettings" type="object">
840
- `stability`, `similarityBoost`, `style` (each `0..1`), `useSpeakerBoost` (`true|false`), `speed` (`0.5..2.0`, `1.0` = normal).
841
- </ParamField>
842
- <ParamField path="applyTextNormalization" type='"auto" | "on" | "off"'>Text normalization mode.</ParamField>
843
- <ParamField path="languageCode" type="string">2-letter ISO 639-1 (e.g. `en`, `de`).</ParamField>
844
- <ParamField path="seed" type="number">Integer `0..4294967295` for best-effort determinism.</ParamField>
845
- <ParamField path="baseUrl" type="string">Override ElevenLabs API base URL.</ParamField>
846
- </Accordion>
847
-
848
- <Accordion title="Google Gemini">
849
- <ParamField path="apiKey" type="string">Falls back to `GEMINI_API_KEY` / `GOOGLE_API_KEY`. If omitted, TTS can reuse `models.providers.google.apiKey` before env fallback.</ParamField>
850
- <ParamField path="model" type="string">Gemini TTS model. Default `gemini-3.1-flash-tts-preview`.</ParamField>
851
- <ParamField path="speakerVoice" type="string">Gemini prebuilt voice name. Default `Kore`. Legacy aliases: `voiceName`, `voice`.</ParamField>
852
- <ParamField path="audioProfile" type="string">Natural-language style prompt prepended before spoken text.</ParamField>
853
- <ParamField path="speakerName" type="string">Optional speaker label prepended before spoken text when your prompt uses a named speaker.</ParamField>
854
- <ParamField path="promptTemplate" type='"audio-profile-v1"'>Set to `audio-profile-v1` to wrap active persona prompt fields in a deterministic Gemini TTS prompt structure.</ParamField>
855
- <ParamField path="personaPrompt" type="string">Google-specific extra persona prompt text appended to the template's Director's Notes.</ParamField>
856
- <ParamField path="baseUrl" type="string">Only `https://generativelanguage.googleapis.com` is accepted.</ParamField>
857
- </Accordion>
858
-
859
- <Accordion title="Gradium">
860
- <ParamField path="apiKey" type="string">Env: `GRADIUM_API_KEY`.</ParamField>
861
- <ParamField path="baseUrl" type="string">Default `https://api.gradium.ai`.</ParamField>
862
- <ParamField path="speakerVoiceId" type="string">Default Emma (`YTpq7expH9539ERJ`). Legacy alias: `voiceId`.</ParamField>
863
- </Accordion>
864
-
865
- <Accordion title="Inworld">
866
- ### Inworld primary
867
-
868
- <ParamField path="apiKey" type="string">Env: `INWORLD_API_KEY`.</ParamField>
869
- <ParamField path="baseUrl" type="string">Default `https://api.inworld.ai`.</ParamField>
870
- <ParamField path="modelId" type="string">Default `inworld-tts-1.5-max`. Also: `inworld-tts-1.5-mini`, `inworld-tts-1-max`, `inworld-tts-1`.</ParamField>
871
- <ParamField path="speakerVoiceId" type="string">Default `Sarah`. Legacy alias: `voiceId`.</ParamField>
872
- <ParamField path="temperature" type="number">Sampling temperature `0..2`.</ParamField>
873
-
874
- </Accordion>
875
-
876
- <Accordion title="Local CLI (tts-local-cli)">
877
- <ParamField path="command" type="string">Local executable or command string for CLI TTS.</ParamField>
878
- <ParamField path="args" type="string[]">Command arguments. Supports `{{Text}}`, `{{OutputPath}}`, `{{OutputDir}}`, `{{OutputBase}}` placeholders.</ParamField>
879
- <ParamField path="outputFormat" type='"mp3" | "opus" | "wav"'>Expected CLI output format. Default `mp3` for audio attachments.</ParamField>
880
- <ParamField path="timeoutMs" type="number">Command timeout in milliseconds. Default `120000`.</ParamField>
881
- <ParamField path="cwd" type="string">Optional command working directory.</ParamField>
882
- <ParamField path="env" type="Record<string, string>">Optional environment overrides for the command.</ParamField>
883
- </Accordion>
884
-
885
- <Accordion title="Microsoft (no API key)">
886
- <ParamField path="enabled" type="boolean" default="true">Allow Microsoft speech usage.</ParamField>
887
- <ParamField path="speakerVoice" type="string">Microsoft neural voice name (e.g. `en-US-MichelleNeural`). Legacy alias: `voice`.</ParamField>
888
- <ParamField path="lang" type="string">Language code (e.g. `en-US`).</ParamField>
889
- <ParamField path="outputFormat" type="string">Microsoft output format. Default `audio-24khz-48kbitrate-mono-mp3`. Not all formats are supported by the bundled Edge-backed transport.</ParamField>
890
- <ParamField path="rate / pitch / volume" type="string">Percent strings (e.g. `+10%`, `-5%`).</ParamField>
891
- <ParamField path="saveSubtitles" type="boolean">Write JSON subtitles alongside the audio file.</ParamField>
892
- <ParamField path="proxy" type="string">Proxy URL for Microsoft speech requests.</ParamField>
893
- <ParamField path="timeoutMs" type="number">Request timeout override (ms).</ParamField>
894
- <ParamField path="edge.*" type="object" deprecated>Legacy alias. Run `fengming doctor --fix` to rewrite persisted config to `providers.microsoft`.</ParamField>
895
- </Accordion>
896
-
897
- <Accordion title="MiniMax">
898
- <ParamField path="apiKey" type="string">Falls back to `MINIMAX_API_KEY`. Token Plan auth via `MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, or `MINIMAX_CODING_API_KEY`.</ParamField>
899
- <ParamField path="baseUrl" type="string">Default `https://api.minimax.io`. Env: `MINIMAX_API_HOST`.</ParamField>
900
- <ParamField path="model" type="string">Default `speech-2.8-hd`. Env: `MINIMAX_TTS_MODEL`.</ParamField>
901
- <ParamField path="speakerVoiceId" type="string">Default `English_expressive_narrator`. Env: `MINIMAX_TTS_VOICE_ID`. Legacy alias: `voiceId`.</ParamField>
902
- <ParamField path="speed" type="number">`0.5..2.0`. Default `1.0`.</ParamField>
903
- <ParamField path="vol" type="number">`(0, 10]`. Default `1.0`.</ParamField>
904
- <ParamField path="pitch" type="number">Integer `-12..12`. Default `0`. Fractional values are truncated before the request.</ParamField>
905
- </Accordion>
906
-
907
- <Accordion title="OpenAI">
908
- <ParamField path="apiKey" type="string">Falls back to `OPENAI_API_KEY`.</ParamField>
909
- <ParamField path="model" type="string">OpenAI TTS model id (e.g. `gpt-4o-mini-tts`).</ParamField>
910
- <ParamField path="speakerVoice" type="string">Voice name (e.g. `alloy`, `cedar`). Legacy alias: `voice`.</ParamField>
911
- <ParamField path="instructions" type="string">Explicit OpenAI `instructions` field. When set, persona prompt fields are **not** auto-mapped.</ParamField>
912
- <ParamField path="extraBody / extra_body" type="Record<string, unknown>">Extra JSON fields merged into `/audio/speech` request bodies after generated OpenAI TTS fields. Use this for OpenAI-compatible endpoints such as Kokoro that require provider-specific keys like `lang`; unsafe prototype keys are ignored.</ParamField>
913
- <ParamField path="baseUrl" type="string">
914
- Override the OpenAI TTS endpoint. Resolution order: config → `OPENAI_TTS_BASE_URL` → `https://api.openai.com/v1`. Non-default values are treated as OpenAI-compatible TTS endpoints, so custom model and voice names are accepted.
915
- </ParamField>
916
- </Accordion>
917
-
918
- <Accordion title="OpenRouter">
919
- <ParamField path="apiKey" type="string">Env: `OPENROUTER_API_KEY`. Can reuse `models.providers.openrouter.apiKey`.</ParamField>
920
- <ParamField path="baseUrl" type="string">Default `https://openrouter.ai/api/v1`. Legacy `https://openrouter.ai/v1` is normalized.</ParamField>
921
- <ParamField path="model" type="string">Default `hexgrad/kokoro-82m`. Alias: `modelId`.</ParamField>
922
- <ParamField path="speakerVoice" type="string">Default `af_alloy`. Legacy aliases: `voice`, `voiceId`.</ParamField>
923
- <ParamField path="responseFormat" type='"mp3" | "pcm"'>Default `mp3`.</ParamField>
924
- <ParamField path="speed" type="number">Provider-native speed override.</ParamField>
925
- </Accordion>
926
-
927
- <Accordion title="Volcengine (BytePlus Seed Speech)">
928
- <ParamField path="apiKey" type="string">Env: `VOLCENGINE_TTS_API_KEY` or `BYTEPLUS_SEED_SPEECH_API_KEY`.</ParamField>
929
- <ParamField path="resourceId" type="string">Default `seed-tts-1.0`. Env: `VOLCENGINE_TTS_RESOURCE_ID`. Use `seed-tts-2.0` when your project has TTS 2.0 entitlement.</ParamField>
930
- <ParamField path="appKey" type="string">App key header. Default `aGjiRDfUWi`. Env: `VOLCENGINE_TTS_APP_KEY`.</ParamField>
931
- <ParamField path="baseUrl" type="string">Override the Seed Speech TTS HTTP endpoint. Env: `VOLCENGINE_TTS_BASE_URL`.</ParamField>
932
- <ParamField path="speakerVoice" type="string">Voice type. Default `en_female_anna_mars_bigtts`. Env: `VOLCENGINE_TTS_VOICE`. Legacy alias: `voice`.</ParamField>
933
- <ParamField path="speedRatio" type="number">Provider-native speed ratio.</ParamField>
934
- <ParamField path="emotion" type="string">Provider-native emotion tag.</ParamField>
935
- <ParamField path="appId / token / cluster" type="string" deprecated>Legacy Volcengine Speech Console fields. Env: `VOLCENGINE_TTS_APPID`, `VOLCENGINE_TTS_TOKEN`, `VOLCENGINE_TTS_CLUSTER` (default `volcano_tts`).</ParamField>
936
- </Accordion>
937
-
938
- <Accordion title="xAI">
939
- <ParamField path="apiKey" type="string">Env: `XAI_API_KEY`.</ParamField>
940
- <ParamField path="baseUrl" type="string">Default `https://api.x.ai/v1`. Env: `XAI_BASE_URL`.</ParamField>
941
- <ParamField path="speakerVoiceId" type="string">Default `eve`. Live voices: `ara`, `eve`, `leo`, `rex`, `sal`, `una`. Legacy alias: `voiceId`.</ParamField>
942
- <ParamField path="language" type="string">BCP-47 language code or `auto`. Default `en`.</ParamField>
943
- <ParamField path="responseFormat" type='"mp3" | "wav" | "pcm" | "mulaw" | "alaw"'>Default `mp3`.</ParamField>
944
- <ParamField path="speed" type="number">Provider-native speed override.</ParamField>
945
- </Accordion>
946
-
947
- <Accordion title="Xiaomi MiMo">
948
- <ParamField path="apiKey" type="string">Env: `XIAOMI_API_KEY`.</ParamField>
949
- <ParamField path="baseUrl" type="string">Default `https://api.xiaomimimo.com/v1`. Env: `XIAOMI_BASE_URL`.</ParamField>
950
- <ParamField path="model" type="string">Default `mimo-v2.5-tts`. Env: `XIAOMI_TTS_MODEL`. Also supports `mimo-v2-tts`.</ParamField>
951
- <ParamField path="speakerVoice" type="string">Default `mimo_default`. Env: `XIAOMI_TTS_VOICE`. Legacy alias: `voice`.</ParamField>
952
- <ParamField path="format" type='"mp3" | "wav"'>Default `mp3`. Env: `XIAOMI_TTS_FORMAT`.</ParamField>
953
- <ParamField path="style" type="string">Optional natural-language style instruction sent as the user message; not spoken.</ParamField>
954
- </Accordion>
955
- </AccordionGroup>
956
-
957
- ## Agent tool
958
-
959
- The `tts` tool converts text to speech and returns an audio attachment for
960
- reply delivery. On Feishu, Matrix, Telegram, and WhatsApp, the audio is
961
- delivered as a voice message rather than a file attachment. Feishu and
962
- WhatsApp can transcode non-Opus TTS output on this path when `ffmpeg` is
963
- available.
964
-
965
- WhatsApp sends audio through Baileys as a PTT voice note (`audio` with
966
- `ptt: true`) and sends visible text **separately** from PTT audio because
967
- clients do not consistently render captions on voice notes.
968
-
969
- The tool accepts optional `channel` and `timeoutMs` fields; `timeoutMs` is a
970
- per-call provider request timeout in milliseconds. Per-call values override
971
- `messages.tts.timeoutMs`; configured TTS timeouts override any plugin-authored
972
- provider default.
973
-
974
- ## Gateway RPC
975
-
976
- | Method | Purpose |
977
- | ----------------- | ---------------------------------------- |
978
- | `tts.status` | Read current TTS state and last attempt. |
979
- | `tts.enable` | Set local auto preference to `always`. |
980
- | `tts.disable` | Set local auto preference to `off`. |
981
- | `tts.convert` | One-off text → audio. |
982
- | `tts.setProvider` | Set local provider preference. |
983
- | `tts.setPersona` | Set local persona preference. |
984
- | `tts.providers` | List configured providers and status. |
985
-
986
- ## Service links
987
-
988
- - [OpenAI text-to-speech guide](https://platform.openai.com/docs/guides/text-to-speech)
989
- - [OpenAI Audio API reference](https://platform.openai.com/docs/api-reference/audio)
990
- - [Azure Speech REST text-to-speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech)
991
- - [Azure Speech provider](/providers/azure-speech)
992
- - [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
993
- - [ElevenLabs Authentication](https://elevenlabs.io/docs/api-reference/authentication)
994
- - [Gradium](/providers/gradium)
995
- - [Inworld TTS API](https://docs.inworld.ai/tts/tts)
996
- - [MiniMax T2A v2 API](https://platform.minimaxi.com/document/T2A%20V2)
997
- - [Volcengine TTS HTTP API](/providers/volcengine#text-to-speech)
998
- - [Xiaomi MiMo speech synthesis](/providers/xiaomi#text-to-speech)
999
- - [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
1000
- - [Microsoft Speech output formats](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
1001
- - [xAI text to speech](https://docs.x.ai/developers/rest-api-reference/inference/voice#text-to-speech-rest)
1002
-
1003
- ## Related
1004
-
1005
- - [Media overview](/tools/media-overview)
1006
- - [Music generation](/tools/music-generation)
1007
- - [Video generation](/tools/video-generation)
1008
- - [Slash commands](/tools/slash-commands)
1009
- - [Voice call plugin](/plugins/voice-call)