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
@@ -1,1225 +0,0 @@
1
- ---
2
- summary: "Run FengMing with Ollama (cloud and local models)"
3
- read_when:
4
- - You want to run FengMing with cloud or local models via Ollama
5
- - You need Ollama setup and configuration guidance
6
- - You want Ollama vision models for image understanding
7
- title: "Ollama"
8
- ---
9
-
10
- FengMing integrates with Ollama's native API (`/api/chat`) for hosted cloud models and local/self-hosted Ollama servers. You can use Ollama in three modes: `Cloud + Local` through a reachable Ollama host, `Cloud only` against `https://ollama.com`, or `Local only` against a reachable Ollama host.
11
-
12
- FengMing also registers `ollama-cloud` as a first-class hosted provider id for
13
- direct Ollama Cloud use. Use refs like `ollama-cloud/kimi-k2.5:cloud` when you
14
- want cloud-only routing without sharing the local `ollama` provider id.
15
-
16
- For the dedicated cloud-only setup page, see [Ollama Cloud](/providers/ollama-cloud).
17
-
18
- <Warning>
19
- **Remote Ollama users**: Do not use the `/v1` OpenAI-compatible URL (`http://host:11434/v1`) with FengMing. This breaks tool calling and models may output raw tool JSON as plain text. Use the native Ollama API URL instead: `baseUrl: "http://host:11434"` (no `/v1`).
20
- </Warning>
21
-
22
- Ollama provider config uses `baseUrl` as the canonical key. FengMing also accepts `baseURL` for compatibility with OpenAI SDK-style examples, but new config should prefer `baseUrl`.
23
-
24
- ## Auth rules
25
-
26
- <AccordionGroup>
27
- <Accordion title="Local and LAN hosts">
28
- Local and LAN Ollama hosts do not need a real bearer token. FengMing uses the local `ollama-local` marker only for loopback, private-network, `.local`, and bare-hostname Ollama base URLs.
29
- </Accordion>
30
- <Accordion title="Remote and Ollama Cloud hosts">
31
- Remote public hosts and Ollama Cloud (`https://ollama.com`) require a real credential through `OLLAMA_API_KEY`, an auth profile, or the provider's `apiKey`. For direct hosted use, prefer provider `ollama-cloud`.
32
- </Accordion>
33
- <Accordion title="Custom provider ids">
34
- Custom provider ids that set `api: "ollama"` follow the same rules. For example, an `ollama-remote` provider that points at a private LAN Ollama host can use `apiKey: "ollama-local"` and sub-agents will resolve that marker through the Ollama provider hook instead of treating it as a missing credential. Memory search can also set `agents.defaults.memorySearch.provider` to that custom provider id so embeddings use the matching Ollama endpoint.
35
- </Accordion>
36
- <Accordion title="Auth profiles">
37
- `auth-profiles.json` stores the credential for a provider id. Put endpoint settings (`baseUrl`, `api`, model ids, headers, timeouts) in `models.providers.<id>`. Older flat auth-profile files such as `{ "ollama-windows": { "apiKey": "ollama-local" } }` are not a runtime format; run `fengming doctor --fix` to rewrite them to the canonical `ollama-windows:default` API-key profile with a backup. `baseUrl` in that file is compatibility noise and should be moved to provider config.
38
- </Accordion>
39
- <Accordion title="Memory embedding scope">
40
- When Ollama is used for memory embeddings, bearer auth is scoped to the host where it was declared:
41
-
42
- - A provider-level key is sent only to that provider's Ollama host.
43
- - `agents.*.memorySearch.remote.apiKey` is sent only to its remote embedding host.
44
- - A pure `OLLAMA_API_KEY` env value is treated as the Ollama Cloud convention, not sent to local or self-hosted hosts by default.
45
-
46
- </Accordion>
47
- </AccordionGroup>
48
-
49
- ## Getting started
50
-
51
- Choose your preferred setup method and mode.
52
-
53
- <Tabs>
54
- <Tab title="Onboarding (recommended)">
55
- **Best for:** fastest path to a working Ollama cloud or local setup.
56
-
57
- <Steps>
58
- <Step title="Run onboarding">
59
- ```bash
60
- fengming onboard
61
- ```
62
-
63
- Select **Ollama** from the provider list.
64
- </Step>
65
- <Step title="Choose your mode">
66
- - **Cloud + Local** — local Ollama host plus cloud models routed through that host
67
- - **Cloud only** — hosted Ollama models via `https://ollama.com`
68
- - **Local only** — local models only
69
-
70
- </Step>
71
- <Step title="Select a model">
72
- `Cloud only` prompts for `OLLAMA_API_KEY` and suggests hosted cloud defaults. `Cloud + Local` and `Local only` ask for an Ollama base URL, discover available models, and auto-pull the selected local model if it is not available yet. When Ollama reports an installed `:latest` tag such as `gemma4:latest`, setup shows that installed model once instead of showing both `gemma4` and `gemma4:latest` or pulling the bare alias again. `Cloud + Local` also checks whether that Ollama host is signed in for cloud access.
73
- </Step>
74
- <Step title="Verify the model is available">
75
- ```bash
76
- fengming models list --provider ollama
77
- ```
78
- </Step>
79
- </Steps>
80
-
81
- ### Non-interactive mode
82
-
83
- ```bash
84
- fengming onboard --non-interactive \
85
- --auth-choice ollama \
86
- --accept-risk
87
- ```
88
-
89
- Optionally specify a custom base URL or model:
90
-
91
- ```bash
92
- fengming onboard --non-interactive \
93
- --auth-choice ollama \
94
- --custom-base-url "http://ollama-host:11434" \
95
- --custom-model-id "qwen3.5:27b" \
96
- --accept-risk
97
- ```
98
-
99
- </Tab>
100
-
101
- <Tab title="Manual setup">
102
- **Best for:** full control over cloud or local setup.
103
-
104
- <Steps>
105
- <Step title="Choose cloud or local">
106
- - **Cloud + Local**: install Ollama, sign in with `ollama signin`, and route cloud requests through that host
107
- - **Cloud only**: use `https://ollama.com` with an `OLLAMA_API_KEY`
108
- - **Local only**: install Ollama from [ollama.com/download](https://ollama.com/download)
109
-
110
- </Step>
111
- <Step title="Pull a local model (local only)">
112
- ```bash
113
- ollama pull gemma4
114
- # or
115
- ollama pull gpt-oss:20b
116
- # or
117
- ollama pull llama3.3
118
- ```
119
- </Step>
120
- <Step title="Enable Ollama for FengMing">
121
- For `Cloud only`, use your real `OLLAMA_API_KEY`. For host-backed setups, any placeholder value works:
122
-
123
- ```bash
124
- # Cloud
125
- export OLLAMA_API_KEY="your-ollama-api-key"
126
-
127
- # Local-only
128
- export OLLAMA_API_KEY="ollama-local"
129
-
130
- # Or configure in your config file
131
- fengming config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
132
- ```
133
- </Step>
134
- <Step title="Inspect and set your model">
135
- ```bash
136
- fengming models list
137
- fengming models set ollama/gemma4
138
- ```
139
-
140
- Or set the default in config:
141
-
142
- ```json5
143
- {
144
- agents: {
145
- defaults: {
146
- model: { primary: "ollama/gemma4" },
147
- },
148
- },
149
- }
150
- ```
151
- </Step>
152
- </Steps>
153
-
154
- </Tab>
155
- </Tabs>
156
-
157
- ## Cloud models
158
-
159
- <Tabs>
160
- <Tab title="Cloud + Local">
161
- `Cloud + Local` uses a reachable Ollama host as the control point for both local and cloud models. This is Ollama's preferred hybrid flow.
162
-
163
- Use **Cloud + Local** during setup. FengMing prompts for the Ollama base URL, discovers local models from that host, and checks whether the host is signed in for cloud access with `ollama signin`. When the host is signed in, FengMing also suggests hosted cloud defaults such as `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, and `glm-5.1:cloud`.
164
-
165
- If the host is not signed in yet, FengMing keeps the setup local-only until you run `ollama signin`.
166
-
167
- </Tab>
168
-
169
- <Tab title="Cloud only">
170
- `Cloud only` runs against Ollama's hosted API at `https://ollama.com`.
171
-
172
- Use **Cloud only** during setup. FengMing prompts for `OLLAMA_API_KEY`, sets `baseUrl: "https://ollama.com"`, and seeds the hosted cloud model list. This path does **not** require a local Ollama server or `ollama signin`.
173
-
174
- The cloud model list shown during `fengming onboard` is populated live from `https://ollama.com/api/tags`, capped at 500 entries, so the picker reflects the current hosted catalog rather than a static seed. If `ollama.com` is unreachable or returns no models at setup time, FengMing falls back to the previous hardcoded suggestions so onboarding still completes.
175
-
176
- You can also configure the first-class cloud provider directly:
177
-
178
- ```bash
179
- fengming onboard --auth-choice ollama-cloud
180
- fengming models set ollama-cloud/kimi-k2.5:cloud
181
- ```
182
-
183
- </Tab>
184
-
185
- <Tab title="Local only">
186
- In local-only mode, FengMing discovers models from the configured Ollama instance. This path is for local or self-hosted Ollama servers.
187
-
188
- FengMing currently suggests `gemma4` as the local default.
189
-
190
- </Tab>
191
- </Tabs>
192
-
193
- ## Model discovery (implicit provider)
194
-
195
- When you set `OLLAMA_API_KEY` (or an auth profile) and **do not** define `models.providers.ollama` or another custom remote provider with `api: "ollama"`, FengMing discovers models from the local Ollama instance at `http://127.0.0.1:11434`.
196
-
197
- | Behavior | Detail |
198
- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
199
- | Catalog query | Queries `/api/tags` |
200
- | Capability detection | Uses best-effort `/api/show` lookups to read `contextWindow`, expanded `num_ctx` Modelfile parameters, and capabilities including vision/tools |
201
- | Vision models | Models with a `vision` capability reported by `/api/show` are marked as image-capable (`input: ["text", "image"]`), so FengMing auto-injects images into the prompt |
202
- | Reasoning detection | Uses `/api/show` capabilities when available, including `thinking`; falls back to a model-name heuristic (`r1`, `reasoning`, `think`) when Ollama omits capabilities |
203
- | Token limits | Sets `maxTokens` to the default Ollama max-token cap used by FengMing |
204
- | Costs | Sets all costs to `0` |
205
-
206
- This avoids manual model entries while keeping the catalog aligned with the local Ollama instance. You can use a full ref such as `ollama/<pulled-model>:latest` in local `infer model run`; FengMing resolves that installed model from Ollama's live catalog without requiring a hand-written `models.json` entry.
207
-
208
- For signed-in Ollama hosts, some `:cloud` models may be usable through `/api/chat`
209
- and `/api/show` before they appear in `/api/tags`. When you explicitly select a
210
- full `ollama/<model>:cloud` ref, FengMing validates that exact missing model with
211
- `/api/show` and adds it to the runtime catalog only if Ollama confirms model
212
- metadata. Typos still fail as unknown models instead of being auto-created.
213
-
214
- ```bash
215
- # See what models are available
216
- ollama list
217
- fengming models list
218
- ```
219
-
220
- For a narrow text-generation smoke test that avoids the full agent tool surface,
221
- use local `infer model run` with a full Ollama model ref:
222
-
223
- ```bash
224
- OLLAMA_API_KEY=ollama-local \
225
- fengming infer model run \
226
- --local \
227
- --model ollama/llama3.2:latest \
228
- --prompt "Reply with exactly: pong" \
229
- --json
230
- ```
231
-
232
- That path still uses FengMing's configured provider, auth, and native Ollama
233
- transport, but it does not start a chat-agent turn or load MCP/tool context. If
234
- this succeeds while normal agent replies fail, troubleshoot the model's agent
235
- prompt/tool capacity next.
236
-
237
- For a narrow vision-model smoke test on the same lean path, add one or more
238
- image files to `infer model run`. This sends the prompt and image directly to
239
- the selected Ollama vision model without loading chat tools, memory, or prior
240
- session context:
241
-
242
- ```bash
243
- OLLAMA_API_KEY=ollama-local \
244
- fengming infer model run \
245
- --local \
246
- --model ollama/qwen2.5vl:7b \
247
- --prompt "Describe this image in one sentence." \
248
- --file ./photo.jpg \
249
- --json
250
- ```
251
-
252
- `model run --file` accepts files detected as `image/*`, including common PNG,
253
- JPEG, and WebP inputs. Non-image files are rejected before Ollama is called.
254
- For speech recognition, use `fengming infer audio transcribe` instead.
255
-
256
- When you switch a conversation with `/model ollama/<model>`, FengMing treats
257
- that as an exact user selection. If the configured Ollama `baseUrl` is
258
- unreachable, the next reply fails with the provider error instead of silently
259
- answering from another configured fallback model.
260
-
261
- Isolated cron jobs do one extra local safety check before they start the agent
262
- turn. If the selected model resolves to a local, private-network, or `.local`
263
- Ollama provider and `/api/tags` is unreachable, FengMing records that cron run
264
- as `skipped` with the selected `ollama/<model>` in the error text. The endpoint
265
- preflight is cached for 5 minutes, so multiple cron jobs pointed at the same
266
- stopped Ollama daemon do not all launch failing model requests.
267
-
268
- Live-verify the local text path, native stream path, and embeddings against
269
- local Ollama with:
270
-
271
- ```bash
272
- FENGMING_LIVE_TEST=1 FENGMING_LIVE_OLLAMA=1 FENGMING_LIVE_OLLAMA_WEB_SEARCH=0 \
273
- pnpm test:live -- extensions/ollama/ollama.live.test.ts
274
- ```
275
-
276
- For Ollama Cloud API-key smoke tests, point the live test at `https://ollama.com`
277
- and choose a hosted model from the current catalog:
278
-
279
- ```bash
280
- export OLLAMA_API_KEY='<your-ollama-cloud-api-key>'
281
-
282
- FENGMING_LIVE_TEST=1 \
283
- FENGMING_LIVE_OLLAMA=1 \
284
- FENGMING_LIVE_OLLAMA_BASE_URL=https://ollama.com \
285
- FENGMING_LIVE_OLLAMA_MODEL=glm-5.1:cloud \
286
- FENGMING_LIVE_OLLAMA_WEB_SEARCH=1 \
287
- pnpm test:live -- extensions/ollama/ollama.live.test.ts
288
- ```
289
-
290
- The cloud smoke runs text, native stream, and web search. It skips embeddings by
291
- default for `https://ollama.com` because Ollama Cloud API keys may not authorize
292
- `/api/embed`. Set `FENGMING_LIVE_OLLAMA_EMBEDDINGS=1` when you explicitly want
293
- the live test to fail if the configured cloud key cannot use the embed endpoint.
294
-
295
- To add a new model, simply pull it with Ollama:
296
-
297
- ```bash
298
- ollama pull mistral
299
- ```
300
-
301
- The new model will be automatically discovered and available to use.
302
-
303
- <Note>
304
- If you set `models.providers.ollama` explicitly, or configure a custom remote provider such as `models.providers.ollama-cloud` with `api: "ollama"`, auto-discovery is skipped and you must define models manually. Loopback custom providers such as `http://127.0.0.2:11434` are still treated as local. See the explicit config section below.
305
- </Note>
306
-
307
- ## Vision and image description
308
-
309
- The bundled Ollama plugin registers Ollama as an image-capable media-understanding provider. This lets FengMing route explicit image-description requests and configured image-model defaults through local or hosted Ollama vision models.
310
-
311
- For local vision, pull a model that supports images:
312
-
313
- ```bash
314
- ollama pull qwen2.5vl:7b
315
- export OLLAMA_API_KEY="ollama-local"
316
- ```
317
-
318
- Then verify with the infer CLI:
319
-
320
- ```bash
321
- fengming infer image describe \
322
- --file ./photo.jpg \
323
- --model ollama/qwen2.5vl:7b \
324
- --json
325
- ```
326
-
327
- `--model` must be a full `<provider/model>` ref. When it is set, `fengming infer image describe` runs that model directly instead of skipping description because the model supports native vision.
328
-
329
- Use `infer image describe` when you want FengMing's image-understanding provider flow, configured `agents.defaults.imageModel`, and image-description output shape. Use `infer model run --file` when you want a raw multimodal model probe with a custom prompt and one or more images.
330
-
331
- To make Ollama the default image-understanding model for inbound media, configure `agents.defaults.imageModel`:
332
-
333
- ```json5
334
- {
335
- agents: {
336
- defaults: {
337
- imageModel: {
338
- primary: "ollama/qwen2.5vl:7b",
339
- },
340
- },
341
- },
342
- }
343
- ```
344
-
345
- Prefer the full `ollama/<model>` ref. If the same model is listed under `models.providers.ollama.models` with `input: ["text", "image"]` and no other configured image provider exposes that bare model ID, FengMing also normalizes a bare `imageModel` ref such as `qwen2.5vl:7b` to `ollama/qwen2.5vl:7b`. If more than one configured image provider has the same bare ID, use the provider prefix explicitly.
346
-
347
- Slow local vision models can need a longer image-understanding timeout than cloud models. They can also crash or stop when Ollama tries to allocate the full advertised vision context on constrained hardware. Set a capability timeout, and cap `num_ctx` on the model entry when you only need a normal image-description turn:
348
-
349
- ```json5
350
- {
351
- models: {
352
- providers: {
353
- ollama: {
354
- models: [
355
- {
356
- id: "qwen2.5vl:7b",
357
- name: "qwen2.5vl:7b",
358
- input: ["text", "image"],
359
- params: { num_ctx: 2048, keep_alive: "1m" },
360
- },
361
- ],
362
- },
363
- },
364
- },
365
- tools: {
366
- media: {
367
- image: {
368
- timeoutSeconds: 180,
369
- models: [{ provider: "ollama", model: "qwen2.5vl:7b", timeoutSeconds: 300 }],
370
- },
371
- },
372
- },
373
- }
374
- ```
375
-
376
- This timeout applies to inbound image understanding and to the explicit `image` tool the agent can call during a turn. Provider-level `models.providers.ollama.timeoutSeconds` still controls the underlying Ollama HTTP request guard for normal model calls.
377
-
378
- Live-verify the explicit image tool against local Ollama with:
379
-
380
- ```bash
381
- FENGMING_LIVE_TEST=1 FENGMING_LIVE_OLLAMA_IMAGE=1 \
382
- pnpm test:live -- src/agents/tools/image-tool.ollama.live.test.ts
383
- ```
384
-
385
- If you define `models.providers.ollama.models` manually, mark vision models with image input support:
386
-
387
- ```json5
388
- {
389
- id: "qwen2.5vl:7b",
390
- name: "qwen2.5vl:7b",
391
- input: ["text", "image"],
392
- contextWindow: 128000,
393
- maxTokens: 8192,
394
- }
395
- ```
396
-
397
- FengMing rejects image-description requests for models that are not marked image-capable. With implicit discovery, FengMing reads this from Ollama when `/api/show` reports a vision capability.
398
-
399
- ## Configuration
400
-
401
- <Tabs>
402
- <Tab title="Basic (implicit discovery)">
403
- The simplest local-only enablement path is via environment variable:
404
-
405
- ```bash
406
- export OLLAMA_API_KEY="ollama-local"
407
- ```
408
-
409
- <Tip>
410
- If `OLLAMA_API_KEY` is set, you can omit `apiKey` in the provider entry and FengMing will fill it for availability checks.
411
- </Tip>
412
-
413
- </Tab>
414
-
415
- <Tab title="Explicit (manual models)">
416
- Use explicit config when you want hosted cloud setup, Ollama runs on another host/port, you want to force specific context windows or model lists, or you want fully manual model definitions.
417
-
418
- ```json5
419
- {
420
- models: {
421
- providers: {
422
- ollama: {
423
- baseUrl: "https://ollama.com",
424
- apiKey: "OLLAMA_API_KEY",
425
- api: "ollama",
426
- models: [
427
- {
428
- id: "kimi-k2.5:cloud",
429
- name: "kimi-k2.5:cloud",
430
- reasoning: false,
431
- input: ["text", "image"],
432
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
433
- contextWindow: 128000,
434
- maxTokens: 8192
435
- }
436
- ]
437
- }
438
- }
439
- }
440
- }
441
- ```
442
-
443
- </Tab>
444
-
445
- <Tab title="Custom base URL">
446
- If Ollama is running on a different host or port (explicit config disables auto-discovery, so define models manually):
447
-
448
- ```json5
449
- {
450
- models: {
451
- providers: {
452
- ollama: {
453
- apiKey: "ollama-local",
454
- baseUrl: "http://ollama-host:11434", // No /v1 - use native Ollama API URL
455
- api: "ollama", // Set explicitly to guarantee native tool-calling behavior
456
- timeoutSeconds: 300, // Optional: give cold local models longer to connect and stream
457
- models: [
458
- {
459
- id: "qwen3:32b",
460
- name: "qwen3:32b",
461
- params: {
462
- keep_alive: "15m", // Optional: keep the model loaded between turns
463
- },
464
- },
465
- ],
466
- },
467
- },
468
- },
469
- }
470
- ```
471
-
472
- <Warning>
473
- Do not add `/v1` to the URL. The `/v1` path uses OpenAI-compatible mode, where tool calling is not reliable. Use the base Ollama URL without a path suffix.
474
- </Warning>
475
-
476
- </Tab>
477
- </Tabs>
478
-
479
- ## Common recipes
480
-
481
- Use these as starting points and replace model IDs with the exact names from `ollama list` or `fengming models list --provider ollama`.
482
-
483
- <AccordionGroup>
484
- <Accordion title="Local model with auto-discovery">
485
- Use this when Ollama runs on the same machine as the Gateway and you want FengMing to discover the installed models automatically.
486
-
487
- ```bash
488
- ollama serve
489
- ollama pull gemma4
490
- export OLLAMA_API_KEY="ollama-local"
491
- fengming models list --provider ollama
492
- fengming models set ollama/gemma4
493
- ```
494
-
495
- This path keeps config minimal. Do not add a `models.providers.ollama` block unless you want to define models manually.
496
-
497
- </Accordion>
498
-
499
- <Accordion title="LAN Ollama host with manual models">
500
- Use native Ollama URLs for LAN hosts. Do not add `/v1`.
501
-
502
- ```json5
503
- {
504
- models: {
505
- providers: {
506
- ollama: {
507
- baseUrl: "http://gpu-box.local:11434",
508
- apiKey: "ollama-local",
509
- api: "ollama",
510
- timeoutSeconds: 300,
511
- contextWindow: 32768,
512
- maxTokens: 8192,
513
- models: [
514
- {
515
- id: "qwen3.5:9b",
516
- name: "qwen3.5:9b",
517
- reasoning: true,
518
- input: ["text"],
519
- params: {
520
- num_ctx: 32768,
521
- thinking: false,
522
- keep_alive: "15m",
523
- },
524
- },
525
- ],
526
- },
527
- },
528
- },
529
- agents: {
530
- defaults: {
531
- model: { primary: "ollama/qwen3.5:9b" },
532
- },
533
- },
534
- }
535
- ```
536
-
537
- `contextWindow` is the FengMing-side context budget. `params.num_ctx` is sent to Ollama for the request. Keep them aligned when your hardware cannot run the model's full advertised context.
538
-
539
- </Accordion>
540
-
541
- <Accordion title="Ollama Cloud only">
542
- Use this when you do not run a local daemon and want hosted Ollama models directly.
543
-
544
- ```bash
545
- export OLLAMA_API_KEY="your-ollama-api-key"
546
- ```
547
-
548
- ```json5
549
- {
550
- models: {
551
- providers: {
552
- ollama: {
553
- baseUrl: "https://ollama.com",
554
- apiKey: "OLLAMA_API_KEY",
555
- api: "ollama",
556
- models: [
557
- {
558
- id: "kimi-k2.5:cloud",
559
- name: "kimi-k2.5:cloud",
560
- reasoning: false,
561
- input: ["text", "image"],
562
- contextWindow: 128000,
563
- maxTokens: 8192,
564
- },
565
- ],
566
- },
567
- },
568
- },
569
- agents: {
570
- defaults: {
571
- model: { primary: "ollama/kimi-k2.5:cloud" },
572
- },
573
- },
574
- }
575
- ```
576
-
577
- </Accordion>
578
-
579
- <Accordion title="Cloud plus local through a signed-in daemon">
580
- Use this when a local or LAN Ollama daemon is signed in with `ollama signin` and should serve both local models and `:cloud` models.
581
-
582
- ```bash
583
- ollama signin
584
- ollama pull gemma4
585
- ```
586
-
587
- ```json5
588
- {
589
- models: {
590
- providers: {
591
- ollama: {
592
- baseUrl: "http://127.0.0.1:11434",
593
- apiKey: "ollama-local",
594
- api: "ollama",
595
- timeoutSeconds: 300,
596
- models: [
597
- { id: "gemma4", name: "gemma4", input: ["text"] },
598
- { id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", input: ["text", "image"] },
599
- ],
600
- },
601
- },
602
- },
603
- agents: {
604
- defaults: {
605
- model: {
606
- primary: "ollama/gemma4",
607
- fallbacks: ["ollama/kimi-k2.5:cloud"],
608
- },
609
- },
610
- },
611
- }
612
- ```
613
-
614
- </Accordion>
615
-
616
- <Accordion title="Multiple Ollama hosts">
617
- Use custom provider IDs when you have more than one Ollama server. Each provider gets its own host, models, auth, timeout, and model refs.
618
-
619
- ```json5
620
- {
621
- models: {
622
- providers: {
623
- "ollama-fast": {
624
- baseUrl: "http://mini.local:11434",
625
- apiKey: "ollama-local",
626
- api: "ollama",
627
- contextWindow: 32768,
628
- models: [{ id: "gemma4", name: "gemma4", input: ["text"] }],
629
- },
630
- "ollama-large": {
631
- baseUrl: "http://gpu-box.local:11434",
632
- apiKey: "ollama-local",
633
- api: "ollama",
634
- timeoutSeconds: 420,
635
- contextWindow: 131072,
636
- maxTokens: 16384,
637
- models: [{ id: "qwen3.5:27b", name: "qwen3.5:27b", input: ["text"] }],
638
- },
639
- },
640
- },
641
- agents: {
642
- defaults: {
643
- model: {
644
- primary: "ollama-fast/gemma4",
645
- fallbacks: ["ollama-large/qwen3.5:27b"],
646
- },
647
- },
648
- },
649
- }
650
- ```
651
-
652
- When FengMing sends the request, the active provider prefix is stripped so `ollama-large/qwen3.5:27b` reaches Ollama as `qwen3.5:27b`.
653
-
654
- </Accordion>
655
-
656
- <Accordion title="Lean local model profile">
657
- Some local models can answer simple prompts but struggle with the full agent tool surface. Start by limiting tools and context before changing global runtime settings.
658
-
659
- ```json5
660
- {
661
- agents: {
662
- list: [
663
- {
664
- id: "local",
665
- experimental: {
666
- localModelLean: true,
667
- },
668
- model: { primary: "ollama/gemma4" },
669
- },
670
- ],
671
- },
672
- models: {
673
- providers: {
674
- ollama: {
675
- baseUrl: "http://127.0.0.1:11434",
676
- apiKey: "ollama-local",
677
- api: "ollama",
678
- contextWindow: 32768,
679
- models: [
680
- {
681
- id: "gemma4",
682
- name: "gemma4",
683
- input: ["text"],
684
- params: { num_ctx: 32768 },
685
- compat: { supportsTools: false },
686
- },
687
- ],
688
- },
689
- },
690
- },
691
- }
692
- ```
693
-
694
- Use `compat.supportsTools: false` only when the model or server reliably fails on tool schemas. It trades agent capability for stability.
695
- `localModelLean` removes the browser, cron, and message tools from the agent surface, but it does not change Ollama's runtime context or thinking mode. Pair it with explicit `params.num_ctx` and `params.thinking: false` for small Qwen-style thinking models that loop or spend their response budget on hidden reasoning.
696
-
697
- </Accordion>
698
- </AccordionGroup>
699
-
700
- ### Model selection
701
-
702
- Once configured, all your Ollama models are available:
703
-
704
- ```json5
705
- {
706
- agents: {
707
- defaults: {
708
- model: {
709
- primary: "ollama/gpt-oss:20b",
710
- fallbacks: ["ollama/llama3.3", "ollama/qwen2.5-coder:32b"],
711
- },
712
- },
713
- },
714
- }
715
- ```
716
-
717
- Custom Ollama provider ids are also supported. When a model ref uses the active
718
- provider prefix, such as `ollama-spark/qwen3:32b`, FengMing strips only that
719
- prefix before calling Ollama so the server receives `qwen3:32b`.
720
-
721
- For slow local models, prefer provider-scoped request tuning before raising the
722
- whole agent runtime timeout:
723
-
724
- ```json5
725
- {
726
- models: {
727
- providers: {
728
- ollama: {
729
- timeoutSeconds: 300,
730
- models: [
731
- {
732
- id: "gemma4:26b",
733
- name: "gemma4:26b",
734
- params: { keep_alive: "15m" },
735
- },
736
- ],
737
- },
738
- },
739
- },
740
- }
741
- ```
742
-
743
- `timeoutSeconds` applies to the model HTTP request, including connection setup,
744
- headers, body streaming, and the total guarded-fetch abort. `params.keep_alive`
745
- is forwarded to Ollama as top-level `keep_alive` on native `/api/chat` requests;
746
- set it per model when first-turn load time is the bottleneck.
747
-
748
- ### Quick verification
749
-
750
- ```bash
751
- # Ollama daemon visible to this machine
752
- curl http://127.0.0.1:11434/api/tags
753
-
754
- # FengMing catalog and selected model
755
- fengming models list --provider ollama
756
- fengming models status
757
-
758
- # Direct model smoke
759
- fengming infer model run \
760
- --model ollama/gemma4 \
761
- --prompt "Reply with exactly: ok"
762
- ```
763
-
764
- For remote hosts, replace `127.0.0.1` with the host used in `baseUrl`. If `curl` works but FengMing does not, check whether the Gateway runs on a different machine, container, or service account.
765
-
766
- ## Ollama Web Search
767
-
768
- FengMing supports **Ollama Web Search** as a bundled `web_search` provider.
769
-
770
- | Property | Detail |
771
- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
772
- | Host | Uses your configured Ollama host (`models.providers.ollama.baseUrl` when set, otherwise `http://127.0.0.1:11434`); `https://ollama.com` uses the hosted API directly |
773
- | Auth | Key-free for signed-in local Ollama hosts; `OLLAMA_API_KEY` or configured provider auth for direct `https://ollama.com` search or auth-protected hosts |
774
- | Requirement | Local/self-hosted hosts must be running and signed in with `ollama signin`; direct hosted search requires `baseUrl: "https://ollama.com"` plus a real Ollama API key |
775
-
776
- Choose **Ollama Web Search** during `fengming onboard` or `fengming configure --section web`, or set:
777
-
778
- ```json5
779
- {
780
- tools: {
781
- web: {
782
- search: {
783
- provider: "ollama",
784
- },
785
- },
786
- },
787
- }
788
- ```
789
-
790
- For direct hosted search through Ollama Cloud:
791
-
792
- ```json5
793
- {
794
- models: {
795
- providers: {
796
- ollama: {
797
- baseUrl: "https://ollama.com",
798
- apiKey: "OLLAMA_API_KEY",
799
- api: "ollama",
800
- models: [{ id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud", input: ["text"] }],
801
- },
802
- },
803
- },
804
- tools: {
805
- web: {
806
- search: { provider: "ollama" },
807
- },
808
- },
809
- }
810
- ```
811
-
812
- For a signed-in local daemon, FengMing uses the daemon's `/api/experimental/web_search` proxy. For `https://ollama.com`, it calls the hosted `/api/web_search` endpoint directly.
813
-
814
- <Note>
815
- For the full setup and behavior details, see [Ollama Web Search](/tools/ollama-search).
816
- </Note>
817
-
818
- ## Advanced configuration
819
-
820
- <AccordionGroup>
821
- <Accordion title="Legacy OpenAI-compatible mode">
822
- <Warning>
823
- **Tool calling is not reliable in OpenAI-compatible mode.** Use this mode only if you need OpenAI format for a proxy and do not depend on native tool calling behavior.
824
- </Warning>
825
-
826
- If you need to use the OpenAI-compatible endpoint instead (for example, behind a proxy that only supports OpenAI format), set `api: "openai-completions"` explicitly:
827
-
828
- ```json5
829
- {
830
- models: {
831
- providers: {
832
- ollama: {
833
- baseUrl: "http://ollama-host:11434/v1",
834
- api: "openai-completions",
835
- injectNumCtxForOpenAICompat: true, // default: true
836
- apiKey: "ollama-local",
837
- models: [...]
838
- }
839
- }
840
- }
841
- }
842
- ```
843
-
844
- This mode may not support streaming and tool calling simultaneously. You may need to disable streaming with `params: { streaming: false }` in model config.
845
-
846
- When `api: "openai-completions"` is used with Ollama, FengMing injects `options.num_ctx` by default so Ollama does not silently fall back to a 4096 context window. If your proxy/upstream rejects unknown `options` fields, disable this behavior:
847
-
848
- ```json5
849
- {
850
- models: {
851
- providers: {
852
- ollama: {
853
- baseUrl: "http://ollama-host:11434/v1",
854
- api: "openai-completions",
855
- injectNumCtxForOpenAICompat: false,
856
- apiKey: "ollama-local",
857
- models: [...]
858
- }
859
- }
860
- }
861
- }
862
- ```
863
-
864
- </Accordion>
865
-
866
- <Accordion title="Context windows">
867
- For auto-discovered models, FengMing uses the context window reported by Ollama when available, including larger `PARAMETER num_ctx` values from custom Modelfiles. Otherwise it falls back to the default Ollama context window used by FengMing.
868
-
869
- You can set provider-level `contextWindow`, `contextTokens`, and `maxTokens` defaults for every model under that Ollama provider, then override them per model when needed. `contextWindow` is FengMing's prompt and compaction budget. Native Ollama requests leave `options.num_ctx` unset unless you explicitly configure `params.num_ctx`, so Ollama can apply its own model, `OLLAMA_CONTEXT_LENGTH`, or VRAM-based default. To cap or force Ollama's per-request runtime context without rebuilding a Modelfile, set `params.num_ctx`; invalid, zero, negative, and non-finite values are ignored. If you upgraded an older config that used only `contextWindow` or `maxTokens` to force a native Ollama request context, run `fengming doctor --fix` to copy those explicit provider or model budgets into `params.num_ctx`. The OpenAI-compatible Ollama adapter still injects `options.num_ctx` by default from the configured `params.num_ctx` or `contextWindow`; disable that with `injectNumCtxForOpenAICompat: false` if your upstream rejects `options`.
870
-
871
- Native Ollama model entries also accept the common Ollama runtime options under `params`, including `temperature`, `top_p`, `top_k`, `min_p`, `num_predict`, `stop`, `repeat_penalty`, `num_batch`, `num_thread`, and `use_mmap`. FengMing forwards only Ollama request keys, so FengMing runtime params such as `streaming` are not leaked to Ollama. Use `params.think` or `params.thinking` to send top-level Ollama `think`; `false` disables API-level thinking for Qwen-style thinking models.
872
-
873
- ```json5
874
- {
875
- models: {
876
- providers: {
877
- ollama: {
878
- contextWindow: 32768,
879
- models: [
880
- {
881
- id: "llama3.3",
882
- contextWindow: 131072,
883
- maxTokens: 65536,
884
- params: {
885
- num_ctx: 32768,
886
- temperature: 0.7,
887
- top_p: 0.9,
888
- thinking: false,
889
- },
890
- }
891
- ]
892
- }
893
- }
894
- }
895
- }
896
- ```
897
-
898
- Per-model `agents.defaults.models["ollama/<model>"].params.num_ctx` works too. If both are configured, the explicit provider model entry wins over the agent default.
899
-
900
- </Accordion>
901
-
902
- <Accordion title="Thinking control">
903
- For native Ollama models, FengMing forwards thinking control as Ollama expects it: top-level `think`, not `options.think`. Auto-discovered models whose `/api/show` response includes the `thinking` capability expose `/think low`, `/think medium`, `/think high`, and `/think max`; non-thinking models expose only `/think off`.
904
-
905
- ```bash
906
- fengming agent --model ollama/gemma4 --thinking off
907
- fengming agent --model ollama/gemma4 --thinking low
908
- ```
909
-
910
- You can also set a model default:
911
-
912
- ```json5
913
- {
914
- agents: {
915
- defaults: {
916
- models: {
917
- "ollama/gemma4": {
918
- thinking: "low",
919
- },
920
- },
921
- },
922
- },
923
- }
924
- ```
925
-
926
- Per-model `params.think` or `params.thinking` can disable or force Ollama API thinking for a specific configured model. FengMing preserves those explicit model params when the active run only has the implicit default `off`; non-off runtime commands such as `/think medium` still override the active run.
927
-
928
- </Accordion>
929
-
930
- <Accordion title="Reasoning models">
931
- FengMing treats models with names such as `deepseek-r1`, `reasoning`, or `think` as reasoning-capable by default.
932
-
933
- ```bash
934
- ollama pull deepseek-r1:32b
935
- ```
936
-
937
- No additional configuration is needed. FengMing marks them automatically.
938
-
939
- </Accordion>
940
-
941
- <Accordion title="Model costs">
942
- Ollama is free and runs locally, so all model costs are set to $0. This applies to both auto-discovered and manually defined models.
943
- </Accordion>
944
-
945
- <Accordion title="Memory embeddings">
946
- The bundled Ollama plugin registers a memory embedding provider for
947
- [memory search](/concepts/memory). It uses the configured Ollama base URL
948
- and API key, calls Ollama's current `/api/embed` endpoint, and batches
949
- multiple memory chunks into one `input` request when possible.
950
-
951
- When `proxy.enabled=true`, Ollama memory embedding requests to the exact
952
- host-local loopback origin derived from the configured `baseUrl` use
953
- FengMing's guarded direct path instead of the managed forward proxy. The
954
- configured hostname must itself be `localhost` or a loopback IP literal;
955
- DNS names that merely resolve to loopback still use the managed proxy path.
956
- LAN, tailnet, private-network, and public Ollama hosts also stay on the
957
- managed proxy path. Redirects to another host or port do not inherit trust.
958
- Operators can still set the global `proxy.loopbackMode: "proxy"` setting to
959
- send loopback traffic through the proxy, or `proxy.loopbackMode: "block"`
960
- to deny loopback connections before opening a connection; see
961
- [Managed proxy](/security/network-proxy#gateway-loopback-mode) for the
962
- process-wide effect of this setting.
963
-
964
- | Property | Value |
965
- | ------------- | ------------------- |
966
- | Default model | `nomic-embed-text` |
967
- | Auto-pull | Yes — the embedding model is pulled automatically if not present locally |
968
-
969
- Query-time embeddings use retrieval prefixes for models that require or recommend them, including `nomic-embed-text`, `qwen3-embedding`, and `mxbai-embed-large`. Memory document batches stay raw so existing indexes do not need a format migration.
970
-
971
- To select Ollama as the memory search embedding provider:
972
-
973
- ```json5
974
- {
975
- agents: {
976
- defaults: {
977
- memorySearch: {
978
- provider: "ollama",
979
- remote: {
980
- // Default for Ollama. Raise on larger hosts if reindexing is too slow.
981
- nonBatchConcurrency: 1,
982
- },
983
- },
984
- },
985
- },
986
- }
987
- ```
988
-
989
- For a remote embedding host, keep auth scoped to that host:
990
-
991
- ```json5
992
- {
993
- agents: {
994
- defaults: {
995
- memorySearch: {
996
- provider: "ollama",
997
- model: "nomic-embed-text",
998
- remote: {
999
- baseUrl: "http://gpu-box.local:11434",
1000
- apiKey: "ollama-local",
1001
- nonBatchConcurrency: 2,
1002
- },
1003
- },
1004
- },
1005
- },
1006
- }
1007
- ```
1008
-
1009
- </Accordion>
1010
-
1011
- <Accordion title="Streaming configuration">
1012
- FengMing's Ollama integration uses the **native Ollama API** (`/api/chat`) by default, which fully supports streaming and tool calling simultaneously. No special configuration is needed.
1013
-
1014
- For native `/api/chat` requests, FengMing also forwards thinking control directly to Ollama: `/think off` and `fengming agent --thinking off` send top-level `think: false` unless an explicit model `params.think`/`params.thinking` value is configured, while `/think low|medium|high` send the matching top-level `think` effort string. `/think max` maps to Ollama's highest native effort, `think: "high"`.
1015
-
1016
- <Tip>
1017
- If you need to use the OpenAI-compatible endpoint, see the "Legacy OpenAI-compatible mode" section above. Streaming and tool calling may not work simultaneously in that mode.
1018
- </Tip>
1019
-
1020
- </Accordion>
1021
- </AccordionGroup>
1022
-
1023
- ## Troubleshooting
1024
-
1025
- <AccordionGroup>
1026
- <Accordion title="WSL2 crash loop (repeated reboots)">
1027
- On WSL2 with NVIDIA/CUDA, the official Ollama Linux installer creates an `ollama.service` systemd unit with `Restart=always`. If that service autostarts and loads a GPU-backed model during WSL2 boot, Ollama can pin host memory while the model loads. Hyper-V memory reclaim cannot always reclaim those pinned pages, so Windows can terminate the WSL2 VM, systemd starts Ollama again, and the loop repeats.
1028
-
1029
- Common evidence:
1030
-
1031
- - repeated WSL2 reboots or terminations from the Windows side
1032
- - high CPU in `app.slice` or `ollama.service` shortly after WSL2 startup
1033
- - SIGTERM from systemd rather than a Linux OOM-killer event
1034
-
1035
- FengMing logs a startup warning when it detects WSL2, `ollama.service` enabled with `Restart=always`, and visible CUDA markers.
1036
-
1037
- Mitigation:
1038
-
1039
- ```bash
1040
- sudo systemctl disable ollama
1041
- ```
1042
-
1043
- Add this to `%USERPROFILE%\.wslconfig` on the Windows side, then run `wsl --shutdown`:
1044
-
1045
- ```ini
1046
- [experimental]
1047
- autoMemoryReclaim=disabled
1048
- ```
1049
-
1050
- Set a shorter keep-alive in the Ollama service environment, or start Ollama manually only when you need it:
1051
-
1052
- ```bash
1053
- export OLLAMA_KEEP_ALIVE=5m
1054
- ollama serve
1055
- ```
1056
-
1057
- See [ollama/ollama#11317](https://github.com/ollama/ollama/issues/11317).
1058
-
1059
- </Accordion>
1060
-
1061
- <Accordion title="Ollama not detected">
1062
- Make sure Ollama is running and that you set `OLLAMA_API_KEY` (or an auth profile), and that you did **not** define an explicit `models.providers.ollama` entry:
1063
-
1064
- ```bash
1065
- ollama serve
1066
- ```
1067
-
1068
- Verify that the API is accessible:
1069
-
1070
- ```bash
1071
- curl http://localhost:11434/api/tags
1072
- ```
1073
-
1074
- </Accordion>
1075
-
1076
- <Accordion title="No models available">
1077
- If your model is not listed, either pull the model locally or define it explicitly in `models.providers.ollama`.
1078
-
1079
- ```bash
1080
- ollama list # See what's installed
1081
- ollama pull gemma4
1082
- ollama pull gpt-oss:20b
1083
- ollama pull llama3.3 # Or another model
1084
- ```
1085
-
1086
- </Accordion>
1087
-
1088
- <Accordion title="Connection refused">
1089
- Check that Ollama is running on the correct port:
1090
-
1091
- ```bash
1092
- # Check if Ollama is running
1093
- ps aux | grep ollama
1094
-
1095
- # Or restart Ollama
1096
- ollama serve
1097
- ```
1098
-
1099
- </Accordion>
1100
-
1101
- <Accordion title="Remote host works with curl but not FengMing">
1102
- Verify from the same machine and runtime that runs the Gateway:
1103
-
1104
- ```bash
1105
- fengming gateway status --deep
1106
- curl http://ollama-host:11434/api/tags
1107
- ```
1108
-
1109
- Common causes:
1110
-
1111
- - `baseUrl` points at `localhost`, but the Gateway runs in Docker or on another host.
1112
- - The URL uses `/v1`, which selects OpenAI-compatible behavior instead of native Ollama.
1113
- - The remote host needs firewall or LAN binding changes on the Ollama side.
1114
- - The model is present on your laptop's daemon but not on the remote daemon.
1115
-
1116
- </Accordion>
1117
-
1118
- <Accordion title="Model outputs tool JSON as text">
1119
- This usually means the provider is using OpenAI-compatible mode or the model cannot handle tool schemas.
1120
-
1121
- Prefer native Ollama mode:
1122
-
1123
- ```json5
1124
- {
1125
- models: {
1126
- providers: {
1127
- ollama: {
1128
- baseUrl: "http://ollama-host:11434",
1129
- api: "ollama",
1130
- },
1131
- },
1132
- },
1133
- }
1134
- ```
1135
-
1136
- If a small local model still fails on tool schemas, set `compat.supportsTools: false` on that model entry and retest.
1137
-
1138
- </Accordion>
1139
-
1140
- <Accordion title="Kimi or GLM returns garbled symbols">
1141
- Hosted Kimi/GLM responses that are long, non-linguistic symbol runs are treated as failed provider output instead of a successful assistant answer. That lets normal retry, fallback, or error handling take over without persisting the corrupted text into the session.
1142
-
1143
- If it happens repeatedly, capture the raw model name, the current session file, and whether the run used `Cloud + Local` or `Cloud only`, then try a fresh session and a fallback model:
1144
-
1145
- ```bash
1146
- fengming infer model run --model ollama/kimi-k2.5:cloud --prompt "Reply with exactly: ok" --json
1147
- fengming models set ollama/gemma4
1148
- ```
1149
-
1150
- </Accordion>
1151
-
1152
- <Accordion title="Cold local model times out">
1153
- Large local models can need a long first load before streaming begins. Keep the timeout scoped to the Ollama provider, and optionally ask Ollama to keep the model loaded between turns:
1154
-
1155
- ```json5
1156
- {
1157
- models: {
1158
- providers: {
1159
- ollama: {
1160
- timeoutSeconds: 300,
1161
- models: [
1162
- {
1163
- id: "gemma4:26b",
1164
- name: "gemma4:26b",
1165
- params: { keep_alive: "15m" },
1166
- },
1167
- ],
1168
- },
1169
- },
1170
- },
1171
- }
1172
- ```
1173
-
1174
- If the host itself is slow to accept connections, `timeoutSeconds` also extends the guarded Undici connect timeout for this provider.
1175
-
1176
- </Accordion>
1177
-
1178
- <Accordion title="Large-context model is too slow or runs out of memory">
1179
- Many Ollama models advertise contexts that are larger than your hardware can run comfortably. Native Ollama uses Ollama's own runtime context default unless you set `params.num_ctx`. Cap both FengMing's budget and Ollama's request context when you want predictable first-token latency:
1180
-
1181
- ```json5
1182
- {
1183
- models: {
1184
- providers: {
1185
- ollama: {
1186
- contextWindow: 32768,
1187
- maxTokens: 8192,
1188
- models: [
1189
- {
1190
- id: "qwen3.5:9b",
1191
- name: "qwen3.5:9b",
1192
- params: { num_ctx: 32768, thinking: false },
1193
- },
1194
- ],
1195
- },
1196
- },
1197
- },
1198
- }
1199
- ```
1200
-
1201
- Lower `contextWindow` first if FengMing is sending too much prompt. Lower `params.num_ctx` if Ollama is loading a runtime context that is too large for the machine. Lower `maxTokens` if generation runs too long.
1202
-
1203
- </Accordion>
1204
- </AccordionGroup>
1205
-
1206
- <Note>
1207
- More help: [Troubleshooting](/help/troubleshooting) and [FAQ](/help/faq).
1208
- </Note>
1209
-
1210
- ## Related
1211
-
1212
- <CardGroup cols={2}>
1213
- <Card title="Model providers" href="/concepts/model-providers" icon="layers">
1214
- Overview of all providers, model refs, and failover behavior.
1215
- </Card>
1216
- <Card title="Model selection" href="/concepts/models" icon="brain">
1217
- How to choose and configure models.
1218
- </Card>
1219
- <Card title="Ollama Web Search" href="/tools/ollama-search" icon="magnifying-glass">
1220
- Full setup and behavior details for Ollama-powered web search.
1221
- </Card>
1222
- <Card title="Configuration" href="/gateway/configuration" icon="gear">
1223
- Full config reference.
1224
- </Card>
1225
- </CardGroup>