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,979 +0,0 @@
1
- ---
2
- summary: "Migrate from the legacy backwards-compatibility layer to the modern plugin SDK"
3
- title: "Plugin SDK migration"
4
- sidebarTitle: "Migrate to SDK"
5
- read_when:
6
- - You see the FENGMING_PLUGIN_SDK_COMPAT_DEPRECATED warning
7
- - You see the FENGMING_EXTENSION_API_DEPRECATED warning
8
- - You used api.registerEmbeddedExtensionFactory before FengMing 2026.4.25
9
- - You are updating a plugin to the modern plugin architecture
10
- - You maintain an external FengMing plugin
11
- ---
12
-
13
- FengMing has moved from a broad backwards-compatibility layer to a modern plugin
14
- architecture with focused, documented imports. If your plugin was built before
15
- the new architecture, this guide helps you migrate.
16
-
17
- ## What is changing
18
-
19
- The old plugin system provided two wide-open surfaces that let plugins import
20
- anything they needed from a single entry point:
21
-
22
- - **`fengming/plugin-sdk/compat`** - a single import that re-exported dozens of
23
- helpers. It was introduced to keep older hook-based plugins working while the
24
- new plugin architecture was being built.
25
- - **`fengming/plugin-sdk/infra-runtime`** - a broad runtime helper barrel that
26
- mixed system events, heartbeat state, delivery queues, fetch/proxy helpers,
27
- file helpers, approval types, and unrelated utilities.
28
- - **`fengming/plugin-sdk/config-runtime`** - a broad config compatibility barrel
29
- that still carries deprecated direct load/write helpers during the migration
30
- window.
31
- - **`fengming/extension-api`** - a bridge that gave plugins direct access to
32
- host-side helpers like the embedded agent runner.
33
- - **`api.registerEmbeddedExtensionFactory(...)`** - a removed embedded-runner-only bundled
34
- extension hook that could observe embedded-runner events such as
35
- `tool_result`.
36
-
37
- The broad import surfaces are now **deprecated**. They still work at runtime,
38
- but new plugins must not use them, and existing plugins should migrate before
39
- the next major release removes them. The embedded-runner-only extension factory
40
- registration API has been removed; use tool-result middleware instead.
41
-
42
- FengMing does not remove or reinterpret documented plugin behavior in the same
43
- change that introduces a replacement. Breaking contract changes must first go
44
- through a compatibility adapter, diagnostics, docs, and a deprecation window.
45
- That applies to SDK imports, manifest fields, setup APIs, hooks, and runtime
46
- registration behavior.
47
-
48
- <Warning>
49
- The backwards-compatibility layer will be removed in a future major release.
50
- Plugins that still import from these surfaces will break when that happens.
51
- Legacy embedded extension factory registrations already no longer load.
52
- </Warning>
53
-
54
- ## Why this changed
55
-
56
- The old approach caused problems:
57
-
58
- - **Slow startup** - importing one helper loaded dozens of unrelated modules
59
- - **Circular dependencies** - broad re-exports made it easy to create import cycles
60
- - **Unclear API surface** - no way to tell which exports were stable vs internal
61
-
62
- The modern plugin SDK fixes this: each import path (`fengming/plugin-sdk/\<subpath\>`)
63
- is a small, self-contained module with a clear purpose and documented contract.
64
-
65
- Legacy provider convenience seams for bundled channels are also gone.
66
- Channel-branded helper seams were private mono-repo shortcuts, not stable
67
- plugin contracts. Use narrow generic SDK subpaths instead. Inside the bundled
68
- plugin workspace, keep provider-owned helpers in that plugin's own `api.ts` or
69
- `runtime-api.ts`.
70
-
71
- Current bundled provider examples:
72
-
73
- - Anthropic keeps Claude-specific stream helpers in its own `api.ts` /
74
- `contract-api.ts` seam
75
- - OpenAI keeps provider builders, default-model helpers, and realtime provider
76
- builders in its own `api.ts`
77
- - OpenRouter keeps provider builder and onboarding/config helpers in its own
78
- `api.ts`
79
-
80
- ## Talk and realtime voice migration plan
81
-
82
- Realtime voice, telephony, meeting, and browser Talk code is moving from
83
- surface-local turn bookkeeping to a shared Talk session controller exported by
84
- `fengming/plugin-sdk/realtime-voice`. The new controller owns the common Talk
85
- event envelope, active turn state, capture state, output-audio state, recent
86
- event history, and stale-turn rejection. Provider plugins should keep owning
87
- vendor-specific realtime sessions; surface plugins should keep owning capture,
88
- playback, telephony, and meeting quirks.
89
-
90
- This Talk migration is intentionally breaking-clean:
91
-
92
- 1. Keep the shared controller/runtime primitives in
93
- `plugin-sdk/realtime-voice`.
94
- 2. Move bundled surfaces onto the shared controller: browser relay,
95
- managed-room handoff, voice-call realtime, voice-call streaming STT, Google
96
- Meet realtime, and native push-to-talk.
97
- 3. Replace old Talk RPC families with the final `talk.session.*` and
98
- `talk.client.*` API.
99
- 4. Advertise one live Talk event channel in Gateway
100
- `hello-ok.features.events`: `talk.event`.
101
- 5. Delete the old realtime HTTP endpoint and any request-time instruction
102
- override path.
103
-
104
- New code should not call `createTalkEventSequencer(...)` directly unless it is
105
- implementing a low-level adapter or test fixture. Prefer the shared controller
106
- so turn-scoped events cannot be emitted without a turn id, stale `turnEnd` /
107
- `turnCancel` calls cannot clear a newer active turn, and output-audio lifecycle
108
- events stay consistent across telephony, meetings, browser relay, managed-room
109
- handoff, and native Talk clients.
110
-
111
- The target public API shape is:
112
-
113
- ```typescript
114
- // Gateway-owned Talk session API.
115
- await gateway.request("talk.session.create", {
116
- mode: "realtime",
117
- transport: "gateway-relay",
118
- brain: "agent-consult",
119
- sessionKey: "main",
120
- });
121
- await gateway.request("talk.session.appendAudio", { sessionId, audioBase64 });
122
- await gateway.request("talk.session.cancelOutput", { sessionId, reason: "barge-in" });
123
- await gateway.request("talk.session.submitToolResult", {
124
- sessionId,
125
- callId,
126
- result: { status: "working" },
127
- options: { willContinue: true },
128
- });
129
- await gateway.request("talk.session.submitToolResult", {
130
- sessionId,
131
- callId,
132
- result: { status: "already_delivered" },
133
- options: { suppressResponse: true },
134
- });
135
- await gateway.request("talk.session.submitToolResult", { sessionId, callId, result });
136
- await gateway.request("talk.session.close", { sessionId });
137
-
138
- // Client-owned provider session API.
139
- await gateway.request("talk.client.create", {
140
- mode: "realtime",
141
- transport: "webrtc",
142
- brain: "agent-consult",
143
- sessionKey: "main",
144
- });
145
- await gateway.request("talk.client.toolCall", { sessionKey, callId, name, args });
146
- await gateway.request("talk.client.steer", { sessionKey, text, mode: "steer" });
147
- ```
148
-
149
- Browser-owned WebRTC/provider-websocket sessions use `talk.client.create`,
150
- because the browser owns the provider negotiation and media transport while the
151
- Gateway owns credentials, instructions, and tool policy. `talk.session.*` is the
152
- common Gateway-managed surface for gateway-relay realtime, gateway-relay
153
- transcription, and managed-room native STT/TTS sessions.
154
-
155
- Legacy configs that placed realtime selectors beside `talk.provider` /
156
- `talk.providers` should be repaired with `fengming doctor --fix`; runtime Talk
157
- does not reinterpret speech/TTS provider config as realtime provider config.
158
-
159
- The supported `talk.session.create` combinations are intentionally small:
160
-
161
- | Mode | Transport | Brain | Owner | Notes |
162
- | --------------- | --------------- | --------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------ |
163
- | `realtime` | `gateway-relay` | `agent-consult` | Gateway | Full-duplex provider audio bridged through the Gateway; tool calls are routed through the agent-consult tool. |
164
- | `transcription` | `gateway-relay` | `none` | Gateway | Streaming STT only; callers send input audio and receive transcript events. |
165
- | `stt-tts` | `managed-room` | `agent-consult` | Native/client room | Push-to-talk and walkie-talkie style rooms where the client owns capture/playback and the Gateway owns turn state. |
166
- | `stt-tts` | `managed-room` | `direct-tools` | Native/client room | Admin-only room mode for trusted first-party surfaces that execute Gateway tool actions directly. |
167
-
168
- Removed method map:
169
-
170
- | Old | New |
171
- | -------------------------------- | -------------------------------------------------------- |
172
- | `talk.realtime.session` | `talk.client.create` |
173
- | `talk.realtime.toolCall` | `talk.client.toolCall` |
174
- | `talk.realtime.relayAudio` | `talk.session.appendAudio` |
175
- | `talk.realtime.relayCancel` | `talk.session.cancelOutput` or `talk.session.cancelTurn` |
176
- | `talk.realtime.relayToolResult` | `talk.session.submitToolResult` |
177
- | `talk.realtime.relayStop` | `talk.session.close` |
178
- | `talk.transcription.session` | `talk.session.create({ mode: "transcription" })` |
179
- | `talk.transcription.relayAudio` | `talk.session.appendAudio` |
180
- | `talk.transcription.relayCancel` | `talk.session.cancelTurn` |
181
- | `talk.transcription.relayStop` | `talk.session.close` |
182
- | `talk.handoff.create` | `talk.session.create({ transport: "managed-room" })` |
183
- | `talk.handoff.join` | `talk.session.join` |
184
- | `talk.handoff.revoke` | `talk.session.close` |
185
-
186
- The unified control vocabulary is also deliberately narrow:
187
-
188
- | Method | Applies to | Contract |
189
- | ------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
190
- | `talk.session.appendAudio` | `realtime/gateway-relay`, `transcription/gateway-relay` | Append a base64 PCM audio chunk to the provider session owned by the same Gateway connection. |
191
- | `talk.session.startTurn` | `stt-tts/managed-room` | Start a managed-room user turn. |
192
- | `talk.session.endTurn` | `stt-tts/managed-room` | End the active turn after stale-turn validation. |
193
- | `talk.session.cancelTurn` | all Gateway-owned sessions | Cancel active capture/provider/agent/TTS work for a turn. |
194
- | `talk.session.cancelOutput` | `realtime/gateway-relay` | Stop assistant audio output without necessarily ending the user turn. |
195
- | `talk.session.submitToolResult` | `realtime/gateway-relay` | Complete a provider tool call emitted by the relay; pass `options.willContinue` for interim output or `options.suppressResponse` to satisfy the call without another assistant response. |
196
- | `talk.session.steer` | agent-backed Talk sessions | Send spoken `status`, `steer`, `cancel`, or `followup` control to the active embedded run resolved from the Talk session. |
197
- | `talk.session.close` | all unified sessions | Stop relay sessions or revoke managed-room state, then forget the unified session id. |
198
-
199
- Do not introduce provider or platform special cases in core to make this work.
200
- Core owns Talk session semantics. Provider plugins own vendor session setup.
201
- Voice-call and Google Meet own telephony/meeting adapters. Browser and native
202
- apps own device capture/playback UX.
203
-
204
- ## Compatibility policy
205
-
206
- For external plugins, compatibility work follows this order:
207
-
208
- 1. add the new contract
209
- 2. keep the old behavior wired through a compatibility adapter
210
- 3. emit a diagnostic or warning that names the old path and replacement
211
- 4. cover both paths in tests
212
- 5. document the deprecation and migration path
213
- 6. remove only after the announced migration window, usually in a major release
214
-
215
- Maintainers can audit the current migration queue with
216
- `pnpm plugins:boundary-report`. Use `pnpm plugins:boundary-report:summary` for
217
- compact counts, `--owner <id>` for one plugin or compatibility owner, and
218
- `pnpm plugins:boundary-report:ci` when a CI gate should fail on due
219
- compatibility records, cross-owner reserved SDK imports, or unused reserved SDK
220
- subpaths. The report groups deprecated
221
- compatibility records by removal date, counts local code/docs references,
222
- surfaces cross-owner reserved SDK imports, and summarizes the private
223
- memory-host SDK bridge so compatibility cleanup stays explicit instead of
224
- relying on ad hoc searches. Reserved SDK subpaths must have tracked owner usage;
225
- unused reserved helper exports should be removed from the public SDK.
226
-
227
- If a manifest field is still accepted, plugin authors can keep using it until
228
- the docs and diagnostics say otherwise. New code should prefer the documented
229
- replacement, but existing plugins should not break during ordinary minor
230
- releases.
231
-
232
- ## How to migrate
233
-
234
- <Steps>
235
- <Step title="Migrate runtime config load/write helpers">
236
- Bundled plugins should stop calling
237
- `api.runtime.config.loadConfig()` and
238
- `api.runtime.config.writeConfigFile(...)` directly. Prefer config that was
239
- already passed into the active call path. Long-lived handlers that need the
240
- current process snapshot can use `api.runtime.config.current()`. Long-lived
241
- agent tools should use the tool context's `ctx.getRuntimeConfig()` inside
242
- `execute` so a tool created before a config write still sees the refreshed
243
- runtime config.
244
-
245
- Config writes must go through the transactional helpers and choose an
246
- after-write policy:
247
-
248
- ```typescript
249
- await api.runtime.config.mutateConfigFile({
250
- afterWrite: { mode: "auto" },
251
- mutate(draft) {
252
- draft.plugins ??= {};
253
- },
254
- });
255
- ```
256
-
257
- Use `afterWrite: { mode: "restart", reason: "..." }` when the caller knows
258
- the change requires a clean gateway restart, and
259
- `afterWrite: { mode: "none", reason: "..." }` only when the caller owns the
260
- follow-up and deliberately wants to suppress the reload planner.
261
- Mutation results include a typed `followUp` summary for tests and logging;
262
- the gateway remains responsible for applying or scheduling the restart.
263
- `loadConfig` and `writeConfigFile` remain as deprecated compatibility
264
- helpers for external plugins during the migration window and warn once with
265
- the `runtime-config-load-write` compatibility code. Bundled plugins and repo
266
- runtime code are protected by scanner guardrails in
267
- `pnpm check:deprecated-api-usage` and
268
- `pnpm check:no-runtime-action-load-config`: new production plugin usage
269
- fails outright, direct config writes fail, gateway server methods must use
270
- the request runtime snapshot, runtime channel send/action/client helpers
271
- must receive config from their boundary, and long-lived runtime modules have
272
- zero allowed ambient `loadConfig()` calls.
273
-
274
- New plugin code should also avoid importing the broad
275
- `fengming/plugin-sdk/config-runtime` compatibility barrel. Use the narrow
276
- SDK subpath that matches the job:
277
-
278
- | Need | Import |
279
- | --- | --- |
280
- | Config types such as `FengMingConfig` | `fengming/plugin-sdk/config-contracts` |
281
- | Already-loaded config assertions and plugin-entry config lookup | `fengming/plugin-sdk/plugin-config-runtime` |
282
- | Current runtime snapshot reads | `fengming/plugin-sdk/runtime-config-snapshot` |
283
- | Config writes | `fengming/plugin-sdk/config-mutation` |
284
- | Session store helpers | `fengming/plugin-sdk/session-store-runtime` |
285
- | Markdown table config | `fengming/plugin-sdk/markdown-table-runtime` |
286
- | Group policy runtime helpers | `fengming/plugin-sdk/runtime-group-policy` |
287
- | Secret input resolution | `fengming/plugin-sdk/secret-input-runtime` |
288
- | Model/session overrides | `fengming/plugin-sdk/model-session-runtime` |
289
-
290
- Bundled plugins and their tests are scanner-guarded against the broad
291
- barrel so imports and mocks stay local to the behavior they need. The broad
292
- barrel still exists for external compatibility, but new code should not
293
- depend on it.
294
-
295
- </Step>
296
-
297
- <Step title="Migrate embedded tool-result extensions to middleware">
298
- Bundled plugins must replace embedded-runner-only
299
- `api.registerEmbeddedExtensionFactory(...)` tool-result handlers with
300
- runtime-neutral middleware.
301
-
302
- ```typescript
303
- // FengMing and Codex runtime dynamic tools
304
- api.registerAgentToolResultMiddleware(async (event) => {
305
- return compactToolResult(event);
306
- }, {
307
- runtimes: ["fengming", "codex"],
308
- });
309
- ```
310
-
311
- Update the plugin manifest at the same time:
312
-
313
- ```json
314
- {
315
- "contracts": {
316
- "agentToolResultMiddleware": ["fengming", "codex"]
317
- }
318
- }
319
- ```
320
-
321
- External plugins cannot register tool-result middleware because it can
322
- rewrite high-trust tool output before the model sees it.
323
-
324
- </Step>
325
-
326
- <Step title="Migrate approval-native handlers to capability facts">
327
- Approval-capable channel plugins now expose native approval behavior through
328
- `approvalCapability.nativeRuntime` plus the shared runtime-context registry.
329
-
330
- Key changes:
331
-
332
- - Replace `approvalCapability.handler.loadRuntime(...)` with
333
- `approvalCapability.nativeRuntime`
334
- - Move approval-specific auth/delivery off legacy `plugin.auth` /
335
- `plugin.approvals` wiring and onto `approvalCapability`
336
- - `ChannelPlugin.approvals` has been removed from the public channel-plugin
337
- contract; move delivery/native/render fields onto `approvalCapability`
338
- - `plugin.auth` remains for channel login/logout flows only; approval auth
339
- hooks there are no longer read by core
340
- - Register channel-owned runtime objects such as clients, tokens, or Bolt
341
- apps through `fengming/plugin-sdk/channel-runtime-context`
342
- - Do not send plugin-owned reroute notices from native approval handlers;
343
- core now owns routed-elsewhere notices from actual delivery results
344
- - When passing `channelRuntime` into `createChannelManager(...)`, provide a
345
- real `createPluginRuntime().channel` surface. Partial stubs are rejected.
346
-
347
- See `/plugins/sdk-channel-plugins` for the current approval capability
348
- layout.
349
-
350
- </Step>
351
-
352
- <Step title="Audit Windows wrapper fallback behavior">
353
- If your plugin uses `fengming/plugin-sdk/windows-spawn`, unresolved Windows
354
- `.cmd`/`.bat` wrappers now fail closed unless you explicitly pass
355
- `allowShellFallback: true`.
356
-
357
- ```typescript
358
- // Before
359
- const program = applyWindowsSpawnProgramPolicy({ candidate });
360
-
361
- // After
362
- const program = applyWindowsSpawnProgramPolicy({
363
- candidate,
364
- // Only set this for trusted compatibility callers that intentionally
365
- // accept shell-mediated fallback.
366
- allowShellFallback: true,
367
- });
368
- ```
369
-
370
- If your caller does not intentionally rely on shell fallback, do not set
371
- `allowShellFallback` and handle the thrown error instead.
372
-
373
- </Step>
374
-
375
- <Step title="Find deprecated imports">
376
- Search your plugin for imports from either deprecated surface:
377
-
378
- ```bash
379
- grep -r "plugin-sdk/compat" my-plugin/
380
- grep -r "plugin-sdk/infra-runtime" my-plugin/
381
- grep -r "plugin-sdk/config-runtime" my-plugin/
382
- grep -r "fengming/extension-api" my-plugin/
383
- ```
384
-
385
- </Step>
386
-
387
- <Step title="Replace with focused imports">
388
- Each export from the old surface maps to a specific modern import path:
389
-
390
- ```typescript
391
- // Before (deprecated backwards-compatibility layer)
392
- import {
393
- createChannelReplyPipeline,
394
- createPluginRuntimeStore,
395
- resolveControlCommandGate,
396
- } from "fengming/plugin-sdk/compat";
397
-
398
- // After (modern focused imports)
399
- import { createChannelReplyPipeline } from "fengming/plugin-sdk/channel-reply-pipeline";
400
- import { createPluginRuntimeStore } from "fengming/plugin-sdk/runtime-store";
401
- import { resolveControlCommandGate } from "fengming/plugin-sdk/command-auth";
402
- ```
403
-
404
- For host-side helpers, use the injected plugin runtime instead of importing
405
- directly:
406
-
407
- ```typescript
408
- // Before (deprecated extension-api bridge)
409
- import { runEmbeddedAgent } from "fengming/extension-api";
410
- const result = await runEmbeddedAgent({ sessionId, prompt });
411
-
412
- // After (injected runtime)
413
- const result = await api.runtime.agent.runEmbeddedAgent({ sessionId, prompt });
414
- ```
415
-
416
- The same pattern applies to other legacy bridge helpers:
417
-
418
- | Old import | Modern equivalent |
419
- | --- | --- |
420
- | `resolveAgentDir` | `api.runtime.agent.resolveAgentDir` |
421
- | `resolveAgentWorkspaceDir` | `api.runtime.agent.resolveAgentWorkspaceDir` |
422
- | `resolveAgentIdentity` | `api.runtime.agent.resolveAgentIdentity` |
423
- | `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
424
- | `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
425
- | `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
426
- | session store helpers | `api.runtime.agent.session.*` |
427
-
428
- </Step>
429
-
430
- <Step title="Replace broad infra-runtime imports">
431
- `fengming/plugin-sdk/infra-runtime` still exists for external
432
- compatibility, but new code should import the focused helper surface it
433
- actually needs:
434
-
435
- | Need | Import |
436
- | --- | --- |
437
- | System event queue helpers | `fengming/plugin-sdk/system-event-runtime` |
438
- | Heartbeat wake, event, and visibility helpers | `fengming/plugin-sdk/heartbeat-runtime` |
439
- | Pending delivery queue drain | `fengming/plugin-sdk/delivery-queue-runtime` |
440
- | Channel activity telemetry | `fengming/plugin-sdk/channel-activity-runtime` |
441
- | In-memory dedupe caches | `fengming/plugin-sdk/dedupe-runtime` |
442
- | Safe local-file/media path helpers | `fengming/plugin-sdk/file-access-runtime` |
443
- | Dispatcher-aware fetch | `fengming/plugin-sdk/runtime-fetch` |
444
- | Proxy and guarded fetch helpers | `fengming/plugin-sdk/fetch-runtime` |
445
- | SSRF dispatcher policy types | `fengming/plugin-sdk/ssrf-dispatcher` |
446
- | Approval request/resolution types | `fengming/plugin-sdk/approval-runtime` |
447
- | Approval reply payload and command helpers | `fengming/plugin-sdk/approval-reply-runtime` |
448
- | Error formatting helpers | `fengming/plugin-sdk/error-runtime` |
449
- | Transport readiness waits | `fengming/plugin-sdk/transport-ready-runtime` |
450
- | Secure token helpers | `fengming/plugin-sdk/secure-random-runtime` |
451
- | Bounded async task concurrency | `fengming/plugin-sdk/concurrency-runtime` |
452
- | Numeric coercion | `fengming/plugin-sdk/number-runtime` |
453
- | Process-local async lock | `fengming/plugin-sdk/async-lock-runtime` |
454
- | File locks | `fengming/plugin-sdk/file-lock` |
455
-
456
- Bundled plugins are scanner-guarded against `infra-runtime`, so repo code
457
- cannot regress to the broad barrel.
458
-
459
- </Step>
460
-
461
- <Step title="Migrate channel route helpers">
462
- New channel route code should use `fengming/plugin-sdk/channel-route`.
463
- The older route-key and comparable-target names remain as compatibility
464
- aliases during the migration window, but new plugins should use the route
465
- names that describe the behavior directly:
466
-
467
- | Old helper | Modern helper |
468
- | --- | --- |
469
- | `channelRouteIdentityKey(...)` | `channelRouteDedupeKey(...)` |
470
- | `channelRouteKey(...)` | `channelRouteCompactKey(...)` |
471
- | `ComparableChannelTarget` | `ChannelRouteParsedTarget` |
472
- | `comparableChannelTargetsMatch(...)` | `channelRouteTargetsMatchExact(...)` |
473
- | `comparableChannelTargetsShareRoute(...)` | `channelRouteTargetsShareConversation(...)` |
474
-
475
- The modern route helpers normalize `{ channel, to, accountId, threadId }`
476
- consistently across native approvals, reply suppression, inbound dedupe,
477
- cron delivery, and session routing.
478
-
479
- Do not add new uses of `ChannelMessagingAdapter.parseExplicitTarget` or
480
- the parser-backed loaded-route helpers (`parseExplicitTargetForLoadedChannel`
481
- or `resolveRouteTargetForLoadedChannel`) or
482
- `resolveChannelRouteTargetWithParser(...)` from `plugin-sdk/channel-route`.
483
- Those hooks are deprecated and remain only for older plugins during the
484
- migration window. New channel plugins should use
485
- `messaging.targetResolver.resolveTarget(...)` for target id normalization
486
- and directory-miss fallback, `messaging.inferTargetChatType(...)` when core
487
- needs an early peer kind, and `messaging.resolveOutboundSessionRoute(...)`
488
- for provider-native session and thread identity.
489
-
490
- </Step>
491
-
492
- <Step title="Build and test">
493
- ```bash
494
- pnpm build
495
- pnpm test -- my-plugin/
496
- ```
497
- </Step>
498
- </Steps>
499
-
500
- ## Import path reference
501
-
502
- <Accordion title="Common import path table">
503
- | Import path | Purpose | Key exports |
504
- | --- | --- | --- |
505
- | `plugin-sdk/plugin-entry` | Canonical plugin entry helper | `definePluginEntry` |
506
- | `plugin-sdk/core` | Legacy umbrella re-export for channel entry definitions/builders | `defineChannelPluginEntry`, `createChatChannelPlugin` |
507
- | `plugin-sdk/config-schema` | Root config schema export | `FengMingSchema` |
508
- | `plugin-sdk/provider-entry` | Single-provider entry helper | `defineSingleProviderPluginEntry` |
509
- | `plugin-sdk/channel-core` | Focused channel entry definitions and builders | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
510
- | `plugin-sdk/setup` | Shared setup wizard helpers | Setup translator, allowlist prompts, setup status builders |
511
- | `plugin-sdk/setup-runtime` | Setup-time runtime helpers | `createSetupTranslator`, import-safe setup patch adapters, lookup-note helpers, `promptResolvedAllowFrom`, `splitSetupEntries`, delegated setup proxies |
512
- | `plugin-sdk/setup-adapter-runtime` | Deprecated setup adapter alias | Use `plugin-sdk/setup-runtime` |
513
- | `plugin-sdk/setup-tools` | Setup tooling helpers | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
514
- | `plugin-sdk/account-core` | Multi-account helpers | Account list/config/action-gate helpers |
515
- | `plugin-sdk/account-id` | Account-id helpers | `DEFAULT_ACCOUNT_ID`, account-id normalization |
516
- | `plugin-sdk/account-resolution` | Account lookup helpers | Account lookup + default-fallback helpers |
517
- | `plugin-sdk/account-helpers` | Narrow account helpers | Account list/account-action helpers |
518
- | `plugin-sdk/channel-setup` | Setup wizard adapters | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
519
- | `plugin-sdk/channel-pairing` | DM pairing primitives | `createChannelPairingController` |
520
- | `plugin-sdk/channel-reply-pipeline` | Reply prefix, typing, and source-delivery wiring | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` |
521
- | `plugin-sdk/channel-config-helpers` | Config adapter factories and DM access helpers | `createHybridChannelConfigAdapter`, `resolveChannelDmAccess`, `resolveChannelDmAllowFrom`, `resolveChannelDmPolicy`, `normalizeChannelDmPolicy`, `normalizeLegacyDmAliases` |
522
- | `plugin-sdk/channel-config-schema` | Config schema builders | Shared channel config schema primitives and the generic builder only |
523
- | `plugin-sdk/bundled-channel-config-schema` | Bundled config schemas | FengMing-maintained bundled plugins only; new plugins must define plugin-local schemas |
524
- | `plugin-sdk/channel-config-schema-legacy` | Deprecated bundled config schemas | Compatibility alias only; use `plugin-sdk/bundled-channel-config-schema` for maintained bundled plugins |
525
- | `plugin-sdk/telegram-command-config` | Telegram command config helpers | Command-name normalization, description trimming, duplicate/conflict validation |
526
- | `plugin-sdk/channel-policy` | Group/DM policy resolution | `resolveChannelGroupRequireMention` |
527
- | `plugin-sdk/channel-lifecycle` | Deprecated compatibility facade | Use `plugin-sdk/channel-outbound` |
528
- | `plugin-sdk/inbound-envelope` | Inbound envelope helpers | Shared route + envelope builder helpers |
529
- | `plugin-sdk/channel-inbound` | Inbound receive helpers | Context building, formatting, roots, runners, prepared reply dispatch, and dispatch predicates |
530
- | `plugin-sdk/messaging-targets` | Deprecated target parsing import path | Use `plugin-sdk/channel-targets` for generic target parsing helpers, `plugin-sdk/channel-route` for route comparison, and plugin-owned `messaging.targetResolver` / `messaging.resolveOutboundSessionRoute` for provider-specific target resolution |
531
- | `plugin-sdk/outbound-media` | Outbound media helpers | Shared outbound media loading |
532
- | `plugin-sdk/outbound-send-deps` | Deprecated compatibility facade | Use `plugin-sdk/channel-outbound` |
533
- | `plugin-sdk/channel-outbound` | Outbound message lifecycle helpers | Message adapters, receipts, durable send helpers, live preview/streaming helpers, reply options, lifecycle helpers, outbound identity, and payload planning |
534
- | `plugin-sdk/channel-streaming` | Deprecated compatibility facade | Use `plugin-sdk/channel-outbound` |
535
- | `plugin-sdk/outbound-runtime` | Deprecated compatibility facade | Use `plugin-sdk/channel-outbound` |
536
- | `plugin-sdk/thread-bindings-runtime` | Thread-binding helpers | Thread-binding lifecycle and adapter helpers |
537
- | `plugin-sdk/agent-media-payload` | Legacy media payload helpers | Agent media payload builder for legacy field layouts |
538
- | `plugin-sdk/channel-runtime` | Deprecated compatibility shim | Legacy channel runtime utilities only |
539
- | `plugin-sdk/channel-send-result` | Send result types | Reply result types |
540
- | `plugin-sdk/runtime-store` | Persistent plugin storage | `createPluginRuntimeStore` |
541
- | `plugin-sdk/runtime` | Broad runtime helpers | Runtime/logging/backup/plugin-install helpers |
542
- | `plugin-sdk/runtime-env` | Narrow runtime env helpers | Logger/runtime env, timeout, retry, and backoff helpers |
543
- | `plugin-sdk/plugin-runtime` | Shared plugin runtime helpers | Plugin commands/hooks/http/interactive helpers |
544
- | `plugin-sdk/hook-runtime` | Hook pipeline helpers | Shared webhook/internal hook pipeline helpers |
545
- | `plugin-sdk/lazy-runtime` | Lazy runtime helpers | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
546
- | `plugin-sdk/process-runtime` | Process helpers | Shared exec helpers |
547
- | `plugin-sdk/cli-runtime` | CLI runtime helpers | Command formatting, waits, version helpers |
548
- | `plugin-sdk/gateway-runtime` | Gateway helpers | Gateway client, event-loop-ready start helper, and channel-status patch helpers |
549
- | `plugin-sdk/config-runtime` | Deprecated config compatibility shim | Prefer `config-contracts`, `plugin-config-runtime`, `runtime-config-snapshot`, and `config-mutation` |
550
- | `plugin-sdk/telegram-command-config` | Telegram command helpers | Fallback-stable Telegram command validation helpers when the bundled Telegram contract surface is unavailable |
551
- | `plugin-sdk/approval-runtime` | Approval prompt helpers | Exec/plugin approval payload, approval capability/profile helpers, native approval routing/runtime helpers, and structured approval display path formatting |
552
- | `plugin-sdk/approval-auth-runtime` | Approval auth helpers | Approver resolution, same-chat action auth |
553
- | `plugin-sdk/approval-client-runtime` | Approval client helpers | Native exec approval profile/filter helpers |
554
- | `plugin-sdk/approval-delivery-runtime` | Approval delivery helpers | Native approval capability/delivery adapters |
555
- | `plugin-sdk/approval-gateway-runtime` | Approval gateway helpers | Shared approval gateway-resolution helper |
556
- | `plugin-sdk/approval-handler-adapter-runtime` | Approval adapter helpers | Lightweight native approval adapter loading helpers for hot channel entrypoints |
557
- | `plugin-sdk/approval-handler-runtime` | Approval handler helpers | Broader approval handler runtime helpers; prefer the narrower adapter/gateway seams when they are enough |
558
- | `plugin-sdk/approval-native-runtime` | Approval target helpers | Native approval target/account binding helpers |
559
- | `plugin-sdk/approval-reply-runtime` | Approval reply helpers | Exec/plugin approval reply payload helpers |
560
- | `plugin-sdk/channel-runtime-context` | Channel runtime-context helpers | Generic channel runtime-context register/get/watch helpers |
561
- | `plugin-sdk/security-runtime` | Security helpers | Shared trust, DM gating, root-bounded file/path helpers, external-content, and secret-collection helpers |
562
- | `plugin-sdk/ssrf-policy` | SSRF policy helpers | Host allowlist and private-network policy helpers |
563
- | `plugin-sdk/ssrf-runtime` | SSRF runtime helpers | Pinned-dispatcher, guarded fetch, SSRF policy helpers |
564
- | `plugin-sdk/system-event-runtime` | System event helpers | `enqueueSystemEvent`, `peekSystemEventEntries` |
565
- | `plugin-sdk/heartbeat-runtime` | Heartbeat helpers | Heartbeat wake, event, and visibility helpers |
566
- | `plugin-sdk/delivery-queue-runtime` | Delivery queue helpers | `drainPendingDeliveries` |
567
- | `plugin-sdk/channel-activity-runtime` | Channel activity helpers | `recordChannelActivity` |
568
- | `plugin-sdk/dedupe-runtime` | Dedupe helpers | In-memory dedupe caches |
569
- | `plugin-sdk/file-access-runtime` | File access helpers | Safe local-file/media path helpers |
570
- | `plugin-sdk/transport-ready-runtime` | Transport readiness helpers | `waitForTransportReady` |
571
- | `plugin-sdk/exec-approvals-runtime` | Exec approval policy helpers | `loadExecApprovals`, `resolveExecApprovalsFromFile`, `ExecApprovalsFile` |
572
- | `plugin-sdk/collection-runtime` | Bounded cache helpers | `pruneMapToMaxSize` |
573
- | `plugin-sdk/diagnostic-runtime` | Diagnostic gating helpers | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
574
- | `plugin-sdk/error-runtime` | Error formatting helpers | `formatUncaughtError`, `isApprovalNotFoundError`, error graph helpers |
575
- | `plugin-sdk/fetch-runtime` | Wrapped fetch/proxy helpers | `resolveFetch`, proxy helpers, EnvHttpProxyAgent option helpers |
576
- | `plugin-sdk/host-runtime` | Host normalization helpers | `normalizeHostname`, `normalizeScpRemoteHost` |
577
- | `plugin-sdk/retry-runtime` | Retry helpers | `RetryConfig`, `retryAsync`, policy runners |
578
- | `plugin-sdk/allow-from` | Allowlist formatting and input mapping | `formatAllowFromLowercase`, `mapAllowlistResolutionInputs` |
579
- | `plugin-sdk/command-auth` | Command gating and command-surface helpers | `resolveControlCommandGate`, sender-authorization helpers, command registry helpers including dynamic argument menu formatting |
580
- | `plugin-sdk/command-status` | Command status/help renderers | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` |
581
- | `plugin-sdk/secret-input` | Secret input parsing | Secret input helpers |
582
- | `plugin-sdk/webhook-ingress` | Webhook request helpers | Webhook target utilities |
583
- | `plugin-sdk/webhook-request-guards` | Webhook body guard helpers | Request body read/limit helpers |
584
- | `plugin-sdk/reply-runtime` | Shared reply runtime | Inbound dispatch, heartbeat, reply planner, chunking |
585
- | `plugin-sdk/reply-dispatch-runtime` | Narrow reply dispatch helpers | Finalize, provider dispatch, and conversation-label helpers |
586
- | `plugin-sdk/reply-history` | Reply-history helpers | `createChannelHistoryWindow`; deprecated map-helper compatibility exports such as `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, and `clearHistoryEntriesIfEnabled` |
587
- | `plugin-sdk/reply-reference` | Reply reference planning | `createReplyReferencePlanner` |
588
- | `plugin-sdk/reply-chunking` | Reply chunk helpers | Text/markdown chunking helpers |
589
- | `plugin-sdk/session-store-runtime` | Session store helpers | Store path + updated-at helpers |
590
- | `plugin-sdk/state-paths` | State path helpers | State and OAuth dir helpers |
591
- | `plugin-sdk/routing` | Routing/session-key helpers | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, session-key normalization helpers |
592
- | `plugin-sdk/status-helpers` | Channel status helpers | Channel/account status summary builders, runtime-state defaults, issue metadata helpers |
593
- | `plugin-sdk/target-resolver-runtime` | Target resolver helpers | Shared target resolver helpers |
594
- | `plugin-sdk/string-normalization-runtime` | String normalization helpers | Slug/string normalization helpers |
595
- | `plugin-sdk/request-url` | Request URL helpers | Extract string URLs from request-like inputs |
596
- | `plugin-sdk/run-command` | Timed command helpers | Timed command runner with normalized stdout/stderr |
597
- | `plugin-sdk/param-readers` | Param readers | Common tool/CLI param readers |
598
- | `plugin-sdk/tool-payload` | Tool payload extraction | Extract normalized payloads from tool result objects |
599
- | `plugin-sdk/tool-send` | Tool send extraction | Extract canonical send target fields from tool args |
600
- | `plugin-sdk/temp-path` | Temp path helpers | Shared temp-download path helpers |
601
- | `plugin-sdk/logging-core` | Logging helpers | Subsystem logger and redaction helpers |
602
- | `plugin-sdk/markdown-table-runtime` | Markdown-table helpers | Markdown table mode helpers |
603
- | `plugin-sdk/reply-payload` | Message reply types | Reply payload types |
604
- | `plugin-sdk/provider-setup` | Curated local/self-hosted provider setup helpers | Self-hosted provider discovery/config helpers |
605
- | `plugin-sdk/self-hosted-provider-setup` | Focused OpenAI-compatible self-hosted provider setup helpers | Same self-hosted provider discovery/config helpers |
606
- | `plugin-sdk/provider-auth-runtime` | Provider runtime auth helpers | Runtime API-key resolution helpers |
607
- | `plugin-sdk/provider-auth-api-key` | Provider API-key setup helpers | API-key onboarding/profile-write helpers |
608
- | `plugin-sdk/provider-auth-result` | Provider auth-result helpers | Standard OAuth auth-result builder |
609
- | `plugin-sdk/provider-selection-runtime` | Provider selection helpers | Configured-or-auto provider selection and raw provider config merging |
610
- | `plugin-sdk/provider-env-vars` | Provider env-var helpers | Provider auth env-var lookup helpers |
611
- | `plugin-sdk/provider-model-shared` | Shared provider model/replay helpers | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, shared replay-policy builders, provider-endpoint helpers, and model-id normalization helpers |
612
- | `plugin-sdk/provider-catalog-shared` | Shared provider catalog helpers | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `buildManifestModelProviderConfig`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
613
- | `plugin-sdk/provider-onboard` | Provider onboarding patches | Onboarding config helpers |
614
- | `plugin-sdk/provider-http` | Provider HTTP helpers | Generic provider HTTP/endpoint capability helpers, including audio transcription multipart form helpers |
615
- | `plugin-sdk/provider-web-fetch` | Provider web-fetch helpers | Web-fetch provider registration/cache helpers |
616
- | `plugin-sdk/provider-web-search-config-contract` | Provider web-search config helpers | Narrow web-search config/credential helpers for providers that do not need plugin-enable wiring |
617
- | `plugin-sdk/provider-web-search-contract` | Provider web-search contract helpers | Narrow web-search config/credential contract helpers such as `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, and scoped credential setters/getters |
618
- | `plugin-sdk/provider-web-search` | Provider web-search helpers | Web-search provider registration/cache/runtime helpers |
619
- | `plugin-sdk/provider-tools` | Provider tool/schema compat helpers | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, and DeepSeek/Gemini/OpenAI schema cleanup + diagnostics |
620
- | `plugin-sdk/provider-usage` | Provider usage helpers | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage`, and other provider usage helpers |
621
- | `plugin-sdk/provider-stream` | Provider stream wrapper helpers | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, stream wrapper types, and shared Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot wrapper helpers |
622
- | `plugin-sdk/provider-transport-runtime` | Provider transport helpers | Native provider transport helpers such as guarded fetch, transport message transforms, and writable transport event streams |
623
- | `plugin-sdk/keyed-async-queue` | Ordered async queue | `KeyedAsyncQueue` |
624
- | `plugin-sdk/media-runtime` | Shared media helpers | Media fetch/transform/store helpers, ffprobe-backed video dimension probing, and media payload builders |
625
- | `plugin-sdk/media-generation-runtime` | Shared media-generation helpers | Shared failover helpers, candidate selection, and missing-model messaging for image/video/music generation |
626
- | `plugin-sdk/media-understanding` | Media-understanding helpers | Media understanding provider types plus provider-facing image/audio helper exports |
627
- | `plugin-sdk/text-runtime` | Deprecated broad text compatibility export | Use `string-coerce-runtime`, `text-chunking`, `text-utility-runtime`, and `logging-core` |
628
- | `plugin-sdk/text-chunking` | Text chunking helpers | Outbound text chunking helper |
629
- | `plugin-sdk/speech` | Speech helpers | Speech provider types plus provider-facing directive, registry, validation helpers, and OpenAI-compatible TTS builder |
630
- | `plugin-sdk/speech-core` | Shared speech core | Speech provider types, registry, directives, normalization |
631
- | `plugin-sdk/realtime-transcription` | Realtime transcription helpers | Provider types, registry helpers, and shared WebSocket session helper |
632
- | `plugin-sdk/realtime-voice` | Realtime voice helpers | Provider types, registry/resolution helpers, bridge session helpers, shared agent talk-back queues, active-run voice control, transcript/event health, echo suppression, consult question matching, forced-consult coordination, turn-context tracking, output activity tracking, and fast context consult helpers |
633
- | `plugin-sdk/image-generation` | Image-generation helpers | Image generation provider types plus image asset/data URL helpers and the OpenAI-compatible image provider builder |
634
- | `plugin-sdk/image-generation-core` | Shared image-generation core | Image-generation types, failover, auth, and registry helpers |
635
- | `plugin-sdk/music-generation` | Music-generation helpers | Music-generation provider/request/result types |
636
- | `plugin-sdk/music-generation-core` | Shared music-generation core | Music-generation types, failover helpers, provider lookup, and model-ref parsing |
637
- | `plugin-sdk/video-generation` | Video-generation helpers | Video-generation provider/request/result types |
638
- | `plugin-sdk/video-generation-core` | Shared video-generation core | Video-generation types, failover helpers, provider lookup, and model-ref parsing |
639
- | `plugin-sdk/interactive-runtime` | Interactive reply helpers | Interactive reply payload normalization/reduction |
640
- | `plugin-sdk/channel-config-primitives` | Channel config primitives | Narrow channel config-schema primitives |
641
- | `plugin-sdk/channel-config-writes` | Channel config-write helpers | Channel config-write authorization helpers |
642
- | `plugin-sdk/channel-plugin-common` | Shared channel prelude | Shared channel plugin prelude exports |
643
- | `plugin-sdk/channel-status` | Channel status helpers | Shared channel status snapshot/summary helpers |
644
- | `plugin-sdk/allowlist-config-edit` | Allowlist config helpers | Allowlist config edit/read helpers |
645
- | `plugin-sdk/group-access` | Group access helpers | Shared group-access decision helpers |
646
- | `plugin-sdk/direct-dm`, `plugin-sdk/direct-dm-access` | Deprecated compatibility facades | Use `plugin-sdk/channel-inbound` |
647
- | `plugin-sdk/direct-dm-guard-policy` | Direct-DM guard helpers | Narrow pre-crypto guard policy helpers |
648
- | `plugin-sdk/extension-shared` | Shared extension helpers | Passive-channel/status and ambient proxy helper primitives |
649
- | `plugin-sdk/webhook-targets` | Webhook target helpers | Webhook target registry and route-install helpers |
650
- | `plugin-sdk/webhook-path` | Deprecated webhook path alias | Use `plugin-sdk/webhook-ingress` |
651
- | `plugin-sdk/web-media` | Shared web media helpers | Remote/local media loading helpers |
652
- | `plugin-sdk/zod` | Deprecated Zod compatibility re-export | Import `zod` from `zod` directly |
653
- | `plugin-sdk/memory-core` | Bundled memory-core helpers | Memory manager/config/file/CLI helper surface |
654
- | `plugin-sdk/memory-core-engine-runtime` | Memory engine runtime facade | Memory index/search runtime facade |
655
- | `plugin-sdk/memory-core-host-engine-foundation` | Memory host foundation engine | Memory host foundation engine exports |
656
- | `plugin-sdk/memory-core-host-engine-embeddings` | Memory host embedding engine | Memory embedding contracts, registry access, local provider, and generic batch/remote helpers; concrete remote providers live in their owning plugins |
657
- | `plugin-sdk/memory-core-host-engine-qmd` | Memory host QMD engine | Memory host QMD engine exports |
658
- | `plugin-sdk/memory-core-host-engine-storage` | Memory host storage engine | Memory host storage engine exports |
659
- | `plugin-sdk/memory-core-host-multimodal` | Memory host multimodal helpers | Memory host multimodal helpers |
660
- | `plugin-sdk/memory-core-host-query` | Memory host query helpers | Memory host query helpers |
661
- | `plugin-sdk/memory-core-host-secret` | Memory host secret helpers | Memory host secret helpers |
662
- | `plugin-sdk/memory-core-host-events` | Deprecated memory event alias | Use `plugin-sdk/memory-host-events` |
663
- | `plugin-sdk/memory-core-host-status` | Memory host status helpers | Memory host status helpers |
664
- | `plugin-sdk/memory-core-host-runtime-cli` | Memory host CLI runtime | Memory host CLI runtime helpers |
665
- | `plugin-sdk/memory-core-host-runtime-core` | Memory host core runtime | Memory host core runtime helpers |
666
- | `plugin-sdk/memory-core-host-runtime-files` | Memory host file/runtime helpers | Memory host file/runtime helpers |
667
- | `plugin-sdk/memory-host-core` | Memory host core runtime alias | Vendor-neutral alias for memory host core runtime helpers |
668
- | `plugin-sdk/memory-host-events` | Memory host event journal alias | Vendor-neutral alias for memory host event journal helpers |
669
- | `plugin-sdk/memory-host-files` | Deprecated memory file/runtime alias | Use `plugin-sdk/memory-core-host-runtime-files` |
670
- | `plugin-sdk/memory-host-markdown` | Managed markdown helpers | Shared managed-markdown helpers for memory-adjacent plugins |
671
- | `plugin-sdk/memory-host-search` | Active memory search facade | Lazy active-memory search-manager runtime facade |
672
- | `plugin-sdk/memory-host-status` | Deprecated memory host status alias | Use `plugin-sdk/memory-core-host-status` |
673
- | `plugin-sdk/testing` | Test utilities | Repo-local deprecated compatibility barrel; use focused repo-local test subpaths such as `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/channel-target-testing`, `plugin-sdk/test-env`, and `plugin-sdk/test-fixtures` |
674
- </Accordion>
675
-
676
- This table is intentionally the common migration subset, not the full SDK
677
- surface. The compiler entrypoint inventory lives in
678
- `scripts/lib/plugin-sdk-entrypoints.json`; package exports are generated from
679
- the public subset.
680
-
681
- Reserved bundled-plugin helper seams have been retired from the public SDK
682
- export map except for explicitly documented compatibility facades such as the
683
- deprecated `plugin-sdk/discord` shim retained for the published
684
- `@fengming/discord@2026.3.13` package. Owner-specific helpers live inside the
685
- owning plugin package; shared host behavior should move through generic SDK
686
- contracts such as `plugin-sdk/gateway-runtime`, `plugin-sdk/security-runtime`,
687
- and `plugin-sdk/plugin-config-runtime`.
688
-
689
- Use the narrowest import that matches the job. If you cannot find an export,
690
- check the source at `src/plugin-sdk/` or ask maintainers which generic contract
691
- should own it.
692
-
693
- ## Active deprecations
694
-
695
- Narrower deprecations that apply across the plugin SDK, provider contract,
696
- runtime surface, and manifest. Each one still works today but will be removed
697
- in a future major release. The entry below every item maps the old API to its
698
- canonical replacement.
699
-
700
- <AccordionGroup>
701
- <Accordion title="command-auth help builders → command-status">
702
- **Old (`fengming/plugin-sdk/command-auth`)**: `buildCommandsMessage`,
703
- `buildCommandsMessagePaginated`, `buildHelpMessage`.
704
-
705
- **New (`fengming/plugin-sdk/command-status`)**: same signatures, same
706
- exports - just imported from the narrower subpath. `command-auth`
707
- re-exports them as compat stubs.
708
-
709
- ```typescript
710
- // Before
711
- import { buildHelpMessage } from "fengming/plugin-sdk/command-auth";
712
-
713
- // After
714
- import { buildHelpMessage } from "fengming/plugin-sdk/command-status";
715
- ```
716
-
717
- </Accordion>
718
-
719
- <Accordion title="Mention gating helpers → resolveInboundMentionDecision">
720
- **Old**: `resolveInboundMentionRequirement({ facts, policy })` and
721
- `shouldDropInboundForMention(...)` from
722
- `fengming/plugin-sdk/channel-inbound` or
723
- `fengming/plugin-sdk/channel-mention-gating`.
724
-
725
- **New**: `resolveInboundMentionDecision({ facts, policy })` - returns a
726
- single decision object instead of two split calls.
727
-
728
- Downstream channel plugins (Slack, Discord, Matrix, MS Teams) have already
729
- switched.
730
-
731
- </Accordion>
732
-
733
- <Accordion title="Channel runtime shim and channel actions helpers">
734
- `fengming/plugin-sdk/channel-runtime` is a compatibility shim for older
735
- channel plugins. Do not import it from new code; use
736
- `fengming/plugin-sdk/channel-runtime-context` for registering runtime
737
- objects.
738
-
739
- `channelActions*` helpers in `fengming/plugin-sdk/channel-actions` are
740
- deprecated alongside raw "actions" channel exports. Expose capabilities
741
- through the semantic `presentation` surface instead - channel plugins
742
- declare what they render (cards, buttons, selects) rather than which raw
743
- action names they accept.
744
-
745
- </Accordion>
746
-
747
- <Accordion title="Web search provider tool() helper → createTool() on the plugin">
748
- **Old**: `tool()` factory from `fengming/plugin-sdk/provider-web-search`.
749
-
750
- **New**: implement `createTool(...)` directly on the provider plugin.
751
- FengMing no longer needs the SDK helper to register the tool wrapper.
752
-
753
- </Accordion>
754
-
755
- <Accordion title="Plaintext channel envelopes → BodyForAgent">
756
- **Old**: `formatInboundEnvelope(...)` (and
757
- `ChannelMessageForAgent.channelEnvelope`) to build a flat plaintext prompt
758
- envelope from inbound channel messages.
759
-
760
- **New**: `BodyForAgent` plus structured user-context blocks. Channel
761
- plugins attach routing metadata (thread, topic, reply-to, reactions) as
762
- typed fields instead of concatenating them into a prompt string. The
763
- `formatAgentEnvelope(...)` helper is still supported for synthesized
764
- assistant-facing envelopes, but inbound plaintext envelopes are on the
765
- way out.
766
-
767
- Affected areas: `inbound_claim`, `message_received`, and any custom
768
- channel plugin that post-processed `channelEnvelope` text.
769
-
770
- </Accordion>
771
-
772
- <Accordion title="deactivate hook → gateway_stop">
773
- **Old**: `api.on("deactivate", handler)`.
774
-
775
- **New**: `api.on("gateway_stop", handler)`. The event and context are the
776
- same shutdown cleanup contract; only the hook name changes.
777
-
778
- ```typescript
779
- // Before
780
- api.on("deactivate", async (event, ctx) => {
781
- await stopPluginService(ctx);
782
- });
783
-
784
- // After
785
- api.on("gateway_stop", async (event, ctx) => {
786
- await stopPluginService(ctx);
787
- });
788
- ```
789
-
790
- `deactivate` remains wired as a deprecated compatibility alias until after
791
- 2026-08-16.
792
-
793
- </Accordion>
794
-
795
- <Accordion title="Provider discovery types → provider catalog types">
796
- Four discovery type aliases are now thin wrappers over the
797
- catalog-era types:
798
-
799
- | Old alias | New type |
800
- | ------------------------- | ------------------------- |
801
- | `ProviderDiscoveryOrder` | `ProviderCatalogOrder` |
802
- | `ProviderDiscoveryContext`| `ProviderCatalogContext` |
803
- | `ProviderDiscoveryResult` | `ProviderCatalogResult` |
804
- | `ProviderPluginDiscovery` | `ProviderPluginCatalog` |
805
-
806
- Plus the legacy `ProviderCapabilities` static bag - provider plugins
807
- should use explicit provider hooks such as `buildReplayPolicy`,
808
- `normalizeToolSchemas`, and `wrapStreamFn` rather than a static object.
809
-
810
- </Accordion>
811
-
812
- <Accordion title="Thinking policy hooks → resolveThinkingProfile">
813
- **Old** (three separate hooks on `ProviderThinkingPolicy`):
814
- `isBinaryThinking(ctx)`, `supportsXHighThinking(ctx)`, and
815
- `resolveDefaultThinkingLevel(ctx)`.
816
-
817
- **New**: a single `resolveThinkingProfile(ctx)` that returns a
818
- `ProviderThinkingProfile` with the canonical `id`, optional `label`, and
819
- ranked level list. FengMing downgrades stale stored values by profile
820
- rank automatically.
821
-
822
- The context includes `provider`, `modelId`, optional merged `reasoning`,
823
- and optional merged model `compat` facts. Provider plugins can use those
824
- catalog facts to expose a model-specific profile only when the configured
825
- request contract supports it.
826
-
827
- Implement one hook instead of three. The legacy hooks keep working during
828
- the deprecation window but are not composed with the profile result.
829
-
830
- </Accordion>
831
-
832
- <Accordion title="External auth providers → contracts.externalAuthProviders">
833
- **Old**: implementing external auth hooks without declaring the provider
834
- in the plugin manifest.
835
-
836
- **New**: declare `contracts.externalAuthProviders` in the plugin manifest
837
- **and** implement `resolveExternalAuthProfiles(...)`.
838
-
839
- ```json
840
- {
841
- "contracts": {
842
- "externalAuthProviders": ["anthropic", "openai"]
843
- }
844
- }
845
- ```
846
-
847
- </Accordion>
848
-
849
- <Accordion title="Provider env-var lookup → setup.providers[].envVars">
850
- **Old** manifest field: `providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }`.
851
-
852
- **New**: mirror the same env-var lookup into `setup.providers[].envVars`
853
- on the manifest. This consolidates setup/status env metadata in one
854
- place and avoids booting the plugin runtime just to answer env-var
855
- lookups.
856
-
857
- `providerAuthEnvVars` remains supported through a compatibility adapter
858
- until the deprecation window closes.
859
-
860
- </Accordion>
861
-
862
- <Accordion title="Memory plugin registration → registerMemoryCapability">
863
- **Old**: three separate calls -
864
- `api.registerMemoryPromptSection(...)`,
865
- `api.registerMemoryFlushPlan(...)`,
866
- `api.registerMemoryRuntime(...)`.
867
-
868
- **New**: one call on the memory-state API -
869
- `registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime })`.
870
-
871
- Same slots, single registration call. Additive prompt and corpus helpers
872
- (`registerMemoryPromptSupplement`, `registerMemoryCorpusSupplement`) are
873
- not affected.
874
-
875
- </Accordion>
876
-
877
- <Accordion title="Memory embedding provider API">
878
- **Old**: `api.registerMemoryEmbeddingProvider(...)` plus
879
- `contracts.memoryEmbeddingProviders`.
880
-
881
- **New**: `api.registerEmbeddingProvider(...)` plus
882
- `contracts.embeddingProviders`.
883
-
884
- The generic embedding provider contract is reusable outside memory and is
885
- the supported path for new providers. The memory-specific registration API
886
- remains wired as deprecated compatibility while existing providers migrate.
887
- Plugin inspection reports non-bundled usage as compatibility debt.
888
-
889
- </Accordion>
890
-
891
- <Accordion title="Subagent session messages types renamed">
892
- Two legacy type aliases still exported from `src/plugins/runtime/types.ts`:
893
-
894
- | Old | New |
895
- | ----------------------------- | ------------------------------- |
896
- | `SubagentReadSessionParams` | `SubagentGetSessionMessagesParams` |
897
- | `SubagentReadSessionResult` | `SubagentGetSessionMessagesResult` |
898
-
899
- The runtime method `readSession` is deprecated in favor of
900
- `getSessionMessages`. Same signature; the old method calls through to the
901
- new one.
902
-
903
- </Accordion>
904
-
905
- <Accordion title="runtime.tasks.flow → runtime.tasks.managedFlows">
906
- **Old**: `runtime.tasks.flow` (singular) returned a live task-flow accessor.
907
-
908
- **New**: `runtime.tasks.managedFlows` keeps the managed TaskFlow mutation
909
- runtime for plugins that create, update, cancel, or run child tasks from a
910
- flow. Use `runtime.tasks.flows` when the plugin only needs DTO-based reads.
911
-
912
- ```typescript
913
- // Before
914
- const flow = api.runtime.tasks.flow.fromToolContext(ctx);
915
- // After
916
- const flow = api.runtime.tasks.managedFlows.fromToolContext(ctx);
917
- ```
918
-
919
- </Accordion>
920
-
921
- <Accordion title="Embedded extension factories → agent tool-result middleware">
922
- Covered in "How to migrate → Migrate embedded tool-result extensions to
923
- middleware" above. Included here for completeness: the removed embedded-runner-only
924
- `api.registerEmbeddedExtensionFactory(...)` path is replaced by
925
- `api.registerAgentToolResultMiddleware(...)` with an explicit runtime
926
- list in `contracts.agentToolResultMiddleware`.
927
- </Accordion>
928
-
929
- <Accordion title="FengMingSchemaType alias → FengMingConfig">
930
- `FengMingSchemaType` re-exported from `fengming/plugin-sdk` is now a
931
- one-line alias for `FengMingConfig`. Prefer the canonical name.
932
-
933
- ```typescript
934
- // Before
935
- import type { FengMingSchemaType } from "fengming/plugin-sdk";
936
- // After
937
- import type { FengMingConfig } from "fengming/plugin-sdk/config-schema";
938
- ```
939
-
940
- </Accordion>
941
- </AccordionGroup>
942
-
943
- <Note>
944
- Extension-level deprecations (inside bundled channel/provider plugins under
945
- `extensions/`) are tracked inside their own `api.ts` and `runtime-api.ts`
946
- barrels. They do not affect third-party plugin contracts and are not listed
947
- here. If you consume a bundled plugin's local barrel directly, read the
948
- deprecation comments in that barrel before upgrading.
949
- </Note>
950
-
951
- ## Removal timeline
952
-
953
- | When | What happens |
954
- | ---------------------- | ----------------------------------------------------------------------- |
955
- | **Now** | Deprecated surfaces emit runtime warnings |
956
- | **Next major release** | Deprecated surfaces will be removed; plugins still using them will fail |
957
-
958
- All core plugins have already been migrated. External plugins should migrate
959
- before the next major release.
960
-
961
- ## Suppressing the warnings temporarily
962
-
963
- Set these environment variables while you work on migrating:
964
-
965
- ```bash
966
- FENGMING_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 fengming gateway run
967
- FENGMING_SUPPRESS_EXTENSION_API_WARNING=1 fengming gateway run
968
- ```
969
-
970
- This is a temporary escape hatch, not a permanent solution.
971
-
972
- ## Related
973
-
974
- - [Getting Started](/plugins/building-plugins) - build your first plugin
975
- - [SDK Overview](/plugins/sdk-overview) - full subpath import reference
976
- - [Channel Plugins](/plugins/sdk-channel-plugins) - building channel plugins
977
- - [Provider Plugins](/plugins/sdk-provider-plugins) - building provider plugins
978
- - [Plugin Internals](/plugins/architecture) - architecture deep dive
979
- - [Plugin Manifest](/plugins/manifest) - manifest schema reference