fengming 0.3.10 → 0.3.11

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 (761) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/cli-startup-metadata.json +8 -8
  4. package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-wgT0-JR0.js} +2 -2
  5. package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-DG5PobrT.js} +2 -2
  6. package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CX28oM42.js} +2 -2
  7. package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-B8ixwBqU.js} +2 -2
  8. package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-CnkYZUXy.js} +2 -2
  9. package/dist/control-ui/assets/{index-jUDczxhd.js → index-DQRZJKbO.js} +4 -4
  10. package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BE3mV1JC.js} +2 -2
  11. package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-Cou4PWRX.js} +2 -2
  12. package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-DpAaBT21.js} +2 -2
  13. package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-DjA_j_20.js} +2 -2
  14. package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-BFnvbS0k.js} +2 -2
  15. package/dist/control-ui/index.html +1 -1
  16. package/dist/control-ui/sw.js +1 -1
  17. package/dist/gateway/protocol/index.d.ts +1 -1
  18. package/dist/{index-AZzJCgph.d.ts → index-DuDY3bCZ.d.ts} +2 -2
  19. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  20. package/dist/plugin-sdk/agent-config-primitives.d.ts +1 -1
  21. package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-BPFNnbwu.d.ts} +23 -23
  22. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +3 -3
  23. package/dist/plugin-sdk/channel-config-primitives.d.ts +2 -2
  24. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +3 -3
  25. package/dist/plugin-sdk/channel-config-schema.d.ts +2 -2
  26. package/dist/plugin-sdk/channel-core.d.ts +1 -1
  27. package/dist/plugin-sdk/channel-plugin-common.d.ts +1 -1
  28. package/dist/plugin-sdk/compat.d.ts +2 -2
  29. package/dist/plugin-sdk/{config-schema-DUddICQM.d.ts → config-schema-D7cABQ6o.d.ts} +1 -1
  30. package/dist/plugin-sdk/config-schema.d.ts +2 -2
  31. package/dist/plugin-sdk/core.d.ts +1 -1
  32. package/dist/plugin-sdk/discord.d.ts +2 -2
  33. package/dist/plugin-sdk/tts-runtime.d.ts +1 -1
  34. package/dist/plugin-sdk/{zod-schema.core-B4_b2R5K.d.ts → zod-schema.core-CwBNqcXp.d.ts} +1 -1
  35. package/package.json +4 -409
  36. package/CHANGELOG.md +0 -42
  37. package/THIRD_PARTY_NOTICES.md +0 -37
  38. package/docs/.i18n/README.md +0 -81
  39. package/docs/.i18n/ar-navigation.json +0 -18
  40. package/docs/.i18n/de-navigation.json +0 -18
  41. package/docs/.i18n/es-navigation.json +0 -18
  42. package/docs/.i18n/fr-navigation.json +0 -18
  43. package/docs/.i18n/glossary.ar.json +0 -78
  44. package/docs/.i18n/glossary.de.json +0 -78
  45. package/docs/.i18n/glossary.es.json +0 -78
  46. package/docs/.i18n/glossary.fa.json +0 -78
  47. package/docs/.i18n/glossary.fr.json +0 -78
  48. package/docs/.i18n/glossary.id.json +0 -78
  49. package/docs/.i18n/glossary.it.json +0 -78
  50. package/docs/.i18n/glossary.ja-JP.json +0 -98
  51. package/docs/.i18n/glossary.ko.json +0 -78
  52. package/docs/.i18n/glossary.nl.json +0 -78
  53. package/docs/.i18n/glossary.pl.json +0 -78
  54. package/docs/.i18n/glossary.pt-BR.json +0 -78
  55. package/docs/.i18n/glossary.th.json +0 -78
  56. package/docs/.i18n/glossary.tr.json +0 -78
  57. package/docs/.i18n/glossary.uk.json +0 -78
  58. package/docs/.i18n/glossary.vi.json +0 -78
  59. package/docs/.i18n/glossary.zh-CN.json +0 -1122
  60. package/docs/.i18n/glossary.zh-TW.json +0 -78
  61. package/docs/.i18n/id-navigation.json +0 -18
  62. package/docs/.i18n/it-navigation.json +0 -18
  63. package/docs/.i18n/ja-navigation.json +0 -18
  64. package/docs/.i18n/ko-navigation.json +0 -18
  65. package/docs/.i18n/pl-navigation.json +0 -18
  66. package/docs/.i18n/pt-BR-navigation.json +0 -18
  67. package/docs/.i18n/tr-navigation.json +0 -18
  68. package/docs/.i18n/translation-workflow.md +0 -111
  69. package/docs/.i18n/zh-Hans-navigation.json +0 -552
  70. package/docs/AGENTS.md +0 -36
  71. package/docs/CLAUDE.md +0 -1
  72. package/docs/agent-runtime-architecture.md +0 -48
  73. package/docs/announcements/bluebubbles-imessage.md +0 -79
  74. package/docs/auth-credential-semantics.md +0 -124
  75. package/docs/automation/auth-monitoring.md +0 -11
  76. package/docs/automation/clawflow.md +0 -12
  77. package/docs/automation/cron-jobs.md +0 -534
  78. package/docs/automation/cron-vs-heartbeat.md +0 -11
  79. package/docs/automation/gmail-pubsub.md +0 -11
  80. package/docs/automation/hooks.md +0 -387
  81. package/docs/automation/index.md +0 -135
  82. package/docs/automation/poll.md +0 -12
  83. package/docs/automation/standing-orders.md +0 -250
  84. package/docs/automation/taskflow.md +0 -155
  85. package/docs/automation/tasks.md +0 -374
  86. package/docs/automation/troubleshooting.md +0 -12
  87. package/docs/automation/webhook.md +0 -12
  88. package/docs/brave-search.md +0 -11
  89. package/docs/channels/access-groups.md +0 -201
  90. package/docs/channels/ambient-room-events.md +0 -214
  91. package/docs/channels/bot-loop-protection.md +0 -131
  92. package/docs/channels/broadcast-groups.md +0 -472
  93. package/docs/channels/channel-routing.md +0 -162
  94. package/docs/channels/clickclack.md +0 -138
  95. package/docs/channels/discord.md +0 -1758
  96. package/docs/channels/feishu.md +0 -650
  97. package/docs/channels/googlechat.md +0 -284
  98. package/docs/channels/group-messages.md +0 -95
  99. package/docs/channels/groups.md +0 -524
  100. package/docs/channels/imessage-from-bluebubbles.md +0 -259
  101. package/docs/channels/imessage.md +0 -839
  102. package/docs/channels/index.md +0 -64
  103. package/docs/channels/irc.md +0 -253
  104. package/docs/channels/line.md +0 -243
  105. package/docs/channels/location.md +0 -71
  106. package/docs/channels/matrix-migration.md +0 -370
  107. package/docs/channels/matrix-presentation.md +0 -77
  108. package/docs/channels/matrix-push-rules.md +0 -150
  109. package/docs/channels/matrix.md +0 -921
  110. package/docs/channels/mattermost.md +0 -542
  111. package/docs/channels/msteams.md +0 -1096
  112. package/docs/channels/nextcloud-talk.md +0 -176
  113. package/docs/channels/nostr.md +0 -253
  114. package/docs/channels/pairing.md +0 -214
  115. package/docs/channels/qqbot.md +0 -314
  116. package/docs/channels/signal.md +0 -417
  117. package/docs/channels/slack.md +0 -1623
  118. package/docs/channels/synology-chat.md +0 -187
  119. package/docs/channels/telegram.md +0 -1124
  120. package/docs/channels/tlon.md +0 -296
  121. package/docs/channels/troubleshooting.md +0 -162
  122. package/docs/channels/twitch.md +0 -431
  123. package/docs/channels/wechat.md +0 -171
  124. package/docs/channels/whatsapp.md +0 -796
  125. package/docs/channels/yuanbao.md +0 -416
  126. package/docs/channels/zalo.md +0 -253
  127. package/docs/channels/zalouser.md +0 -217
  128. package/docs/ci.md +0 -657
  129. package/docs/clawhub/publishing.md +0 -96
  130. package/docs/cli/acp.md +0 -370
  131. package/docs/cli/agent.md +0 -109
  132. package/docs/cli/agents.md +0 -253
  133. package/docs/cli/approvals.md +0 -190
  134. package/docs/cli/backup.md +0 -98
  135. package/docs/cli/browser.md +0 -307
  136. package/docs/cli/channels.md +0 -154
  137. package/docs/cli/clawbot.md +0 -25
  138. package/docs/cli/commitments.md +0 -90
  139. package/docs/cli/completion.md +0 -39
  140. package/docs/cli/config.md +0 -504
  141. package/docs/cli/configure.md +0 -77
  142. package/docs/cli/crestodian.md +0 -337
  143. package/docs/cli/cron.md +0 -304
  144. package/docs/cli/daemon.md +0 -67
  145. package/docs/cli/dashboard.md +0 -33
  146. package/docs/cli/devices.md +0 -240
  147. package/docs/cli/directory.md +0 -68
  148. package/docs/cli/dns.md +0 -53
  149. package/docs/cli/docs.md +0 -63
  150. package/docs/cli/doctor.md +0 -241
  151. package/docs/cli/flows.md +0 -52
  152. package/docs/cli/gateway.md +0 -572
  153. package/docs/cli/health.md +0 -43
  154. package/docs/cli/hooks.md +0 -345
  155. package/docs/cli/index.md +0 -400
  156. package/docs/cli/infer.md +0 -364
  157. package/docs/cli/logs.md +0 -68
  158. package/docs/cli/mcp.md +0 -529
  159. package/docs/cli/memory.md +0 -183
  160. package/docs/cli/message.md +0 -317
  161. package/docs/cli/migrate.md +0 -334
  162. package/docs/cli/models.md +0 -239
  163. package/docs/cli/node.md +0 -177
  164. package/docs/cli/nodes.md +0 -76
  165. package/docs/cli/onboard.md +0 -250
  166. package/docs/cli/pairing.md +0 -77
  167. package/docs/cli/path.md +0 -511
  168. package/docs/cli/plugins.md +0 -459
  169. package/docs/cli/policy.md +0 -886
  170. package/docs/cli/proxy.md +0 -89
  171. package/docs/cli/qr.md +0 -56
  172. package/docs/cli/reset.md +0 -39
  173. package/docs/cli/sandbox.md +0 -208
  174. package/docs/cli/secrets.md +0 -202
  175. package/docs/cli/security.md +0 -136
  176. package/docs/cli/sessions.md +0 -164
  177. package/docs/cli/setup.md +0 -59
  178. package/docs/cli/skills.md +0 -122
  179. package/docs/cli/status.md +0 -45
  180. package/docs/cli/system.md +0 -89
  181. package/docs/cli/tasks.md +0 -111
  182. package/docs/cli/transcripts.md +0 -151
  183. package/docs/cli/tui.md +0 -91
  184. package/docs/cli/uninstall.md +0 -44
  185. package/docs/cli/update.md +0 -243
  186. package/docs/cli/voicecall.md +0 -204
  187. package/docs/cli/webhooks.md +0 -117
  188. package/docs/cli/wiki.md +0 -256
  189. package/docs/concepts/active-memory.md +0 -856
  190. package/docs/concepts/agent-loop.md +0 -185
  191. package/docs/concepts/agent-runtimes.md +0 -276
  192. package/docs/concepts/agent-workspace.md +0 -230
  193. package/docs/concepts/agent.md +0 -140
  194. package/docs/concepts/architecture.md +0 -154
  195. package/docs/concepts/channel-docking.md +0 -145
  196. package/docs/concepts/commitments.md +0 -150
  197. package/docs/concepts/compaction.md +0 -203
  198. package/docs/concepts/context-engine.md +0 -347
  199. package/docs/concepts/context.md +0 -199
  200. package/docs/concepts/delegate-architecture.md +0 -319
  201. package/docs/concepts/dreaming.md +0 -264
  202. package/docs/concepts/experimental-features.md +0 -109
  203. package/docs/concepts/features.md +0 -91
  204. package/docs/concepts/fengming-sdk.md +0 -323
  205. package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
  206. package/docs/concepts/mantis.md +0 -744
  207. package/docs/concepts/markdown-formatting.md +0 -139
  208. package/docs/concepts/memory-builtin.md +0 -148
  209. package/docs/concepts/memory-honcho.md +0 -144
  210. package/docs/concepts/memory-qmd.md +0 -271
  211. package/docs/concepts/memory-search.md +0 -167
  212. package/docs/concepts/memory.md +0 -299
  213. package/docs/concepts/message-lifecycle-refactor.md +0 -1126
  214. package/docs/concepts/messages.md +0 -214
  215. package/docs/concepts/model-failover.md +0 -384
  216. package/docs/concepts/model-providers.md +0 -719
  217. package/docs/concepts/models.md +0 -371
  218. package/docs/concepts/multi-agent.md +0 -625
  219. package/docs/concepts/oauth.md +0 -198
  220. package/docs/concepts/parallel-specialist-lanes.md +0 -127
  221. package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
  222. package/docs/concepts/presence.md +0 -117
  223. package/docs/concepts/progress-drafts.md +0 -406
  224. package/docs/concepts/qa-e2e-automation.md +0 -947
  225. package/docs/concepts/qa-matrix.md +0 -139
  226. package/docs/concepts/queue-steering.md +0 -90
  227. package/docs/concepts/queue.md +0 -136
  228. package/docs/concepts/retry.md +0 -86
  229. package/docs/concepts/session-pruning.md +0 -104
  230. package/docs/concepts/session-tool.md +0 -188
  231. package/docs/concepts/session.md +0 -164
  232. package/docs/concepts/soul.md +0 -116
  233. package/docs/concepts/streaming.md +0 -257
  234. package/docs/concepts/system-prompt.md +0 -328
  235. package/docs/concepts/timezone.md +0 -47
  236. package/docs/concepts/typebox.md +0 -309
  237. package/docs/concepts/typing-indicators.md +0 -88
  238. package/docs/concepts/usage-tracking.md +0 -66
  239. package/docs/date-time.md +0 -126
  240. package/docs/debug/node-issue.md +0 -90
  241. package/docs/diagnostics/flags.md +0 -182
  242. package/docs/docs.json +0 -1862
  243. package/docs/fengming-agent-runtime.md +0 -82
  244. package/docs/gateway/authentication.md +0 -256
  245. package/docs/gateway/background-process.md +0 -147
  246. package/docs/gateway/bonjour.md +0 -303
  247. package/docs/gateway/bridge-protocol.md +0 -97
  248. package/docs/gateway/cli-backends.md +0 -439
  249. package/docs/gateway/config-agents.md +0 -1525
  250. package/docs/gateway/config-channels.md +0 -945
  251. package/docs/gateway/config-tools.md +0 -774
  252. package/docs/gateway/configuration-examples.md +0 -704
  253. package/docs/gateway/configuration-reference.md +0 -1391
  254. package/docs/gateway/configuration.md +0 -739
  255. package/docs/gateway/diagnostics.md +0 -213
  256. package/docs/gateway/discovery.md +0 -154
  257. package/docs/gateway/doctor.md +0 -575
  258. package/docs/gateway/gateway-lock.md +0 -37
  259. package/docs/gateway/health.md +0 -73
  260. package/docs/gateway/heartbeat.md +0 -498
  261. package/docs/gateway/index.md +0 -383
  262. package/docs/gateway/local-model-services.md +0 -205
  263. package/docs/gateway/local-models.md +0 -355
  264. package/docs/gateway/logging.md +0 -149
  265. package/docs/gateway/multiple-gateways.md +0 -178
  266. package/docs/gateway/network-model.md +0 -15
  267. package/docs/gateway/openai-http-api.md +0 -378
  268. package/docs/gateway/openresponses-http-api.md +0 -347
  269. package/docs/gateway/openshell.md +0 -316
  270. package/docs/gateway/opentelemetry.md +0 -433
  271. package/docs/gateway/operator-scopes.md +0 -119
  272. package/docs/gateway/pairing.md +0 -207
  273. package/docs/gateway/prometheus.md +0 -249
  274. package/docs/gateway/protocol.md +0 -826
  275. package/docs/gateway/remote-gateway-readme.md +0 -169
  276. package/docs/gateway/remote.md +0 -280
  277. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
  278. package/docs/gateway/sandboxing.md +0 -546
  279. package/docs/gateway/secrets-plan-contract.md +0 -159
  280. package/docs/gateway/secrets.md +0 -805
  281. package/docs/gateway/security/audit-checks.md +0 -127
  282. package/docs/gateway/security/exposure-runbook.md +0 -212
  283. package/docs/gateway/security/index.md +0 -1343
  284. package/docs/gateway/security/secure-file-operations.md +0 -76
  285. package/docs/gateway/security/shrinkwrap.md +0 -111
  286. package/docs/gateway/tailscale.md +0 -156
  287. package/docs/gateway/tools-invoke-http-api.md +0 -169
  288. package/docs/gateway/troubleshooting.md +0 -877
  289. package/docs/gateway/trusted-proxy-auth.md +0 -483
  290. package/docs/help/debugging.md +0 -341
  291. package/docs/help/environment.md +0 -233
  292. package/docs/help/faq-first-run.md +0 -870
  293. package/docs/help/faq-models.md +0 -556
  294. package/docs/help/faq.md +0 -2041
  295. package/docs/help/index.md +0 -39
  296. package/docs/help/scripts.md +0 -56
  297. package/docs/help/testing-live.md +0 -587
  298. package/docs/help/testing-updates-plugins.md +0 -299
  299. package/docs/help/testing.md +0 -977
  300. package/docs/help/troubleshooting.md +0 -449
  301. package/docs/index.md +0 -196
  302. package/docs/install/ansible.md +0 -233
  303. package/docs/install/azure.md +0 -315
  304. package/docs/install/bun.md +0 -59
  305. package/docs/install/clawdock.md +0 -112
  306. package/docs/install/development-channels.md +0 -148
  307. package/docs/install/digitalocean.md +0 -174
  308. package/docs/install/docker-vm-runtime.md +0 -154
  309. package/docs/install/docker.md +0 -564
  310. package/docs/install/exe-dev.md +0 -201
  311. package/docs/install/fly.md +0 -524
  312. package/docs/install/gcp.md +0 -418
  313. package/docs/install/hetzner.md +0 -285
  314. package/docs/install/hostinger.md +0 -98
  315. package/docs/install/index.md +0 -232
  316. package/docs/install/installer.md +0 -447
  317. package/docs/install/kubernetes.md +0 -196
  318. package/docs/install/macos-vm.md +0 -281
  319. package/docs/install/migrating-claude.md +0 -165
  320. package/docs/install/migrating-hermes.md +0 -178
  321. package/docs/install/migrating.md +0 -137
  322. package/docs/install/nix.md +0 -112
  323. package/docs/install/node.md +0 -142
  324. package/docs/install/northflank.mdx +0 -44
  325. package/docs/install/oracle.md +0 -218
  326. package/docs/install/podman.md +0 -216
  327. package/docs/install/railway.mdx +0 -92
  328. package/docs/install/raspberry-pi.md +0 -234
  329. package/docs/install/render.mdx +0 -167
  330. package/docs/install/uninstall.md +0 -131
  331. package/docs/install/updating.md +0 -284
  332. package/docs/install/upstash.md +0 -96
  333. package/docs/logging.md +0 -320
  334. package/docs/nav-tabs-underline.js +0 -100
  335. package/docs/network.md +0 -72
  336. package/docs/nodes/audio.md +0 -216
  337. package/docs/nodes/camera.md +0 -166
  338. package/docs/nodes/images.md +0 -77
  339. package/docs/nodes/index.md +0 -439
  340. package/docs/nodes/location-command.md +0 -102
  341. package/docs/nodes/media-understanding.md +0 -495
  342. package/docs/nodes/talk.md +0 -160
  343. package/docs/nodes/troubleshooting.md +0 -123
  344. package/docs/nodes/voicewake.md +0 -93
  345. package/docs/perplexity.md +0 -11
  346. package/docs/plan/codex-context-engine-harness.md +0 -624
  347. package/docs/plan/ui-channels.md +0 -284
  348. package/docs/platforms/digitalocean.md +0 -12
  349. package/docs/platforms/easyrunner.md +0 -109
  350. package/docs/platforms/index.md +0 -51
  351. package/docs/platforms/linux.md +0 -141
  352. package/docs/platforms/mac/bundled-gateway.md +0 -79
  353. package/docs/platforms/mac/canvas.md +0 -128
  354. package/docs/platforms/mac/child-process.md +0 -72
  355. package/docs/platforms/mac/dev-setup.md +0 -112
  356. package/docs/platforms/mac/health.md +0 -39
  357. package/docs/platforms/mac/icon.md +0 -36
  358. package/docs/platforms/mac/logging.md +0 -62
  359. package/docs/platforms/mac/menu-bar.md +0 -93
  360. package/docs/platforms/mac/peekaboo.md +0 -96
  361. package/docs/platforms/mac/permissions.md +0 -73
  362. package/docs/platforms/mac/remote.md +0 -123
  363. package/docs/platforms/mac/signing.md +0 -52
  364. package/docs/platforms/mac/skills.md +0 -43
  365. package/docs/platforms/mac/voice-overlay.md +0 -66
  366. package/docs/platforms/mac/voicewake.md +0 -73
  367. package/docs/platforms/mac/webchat.md +0 -54
  368. package/docs/platforms/mac/xpc.md +0 -66
  369. package/docs/platforms/oracle.md +0 -12
  370. package/docs/platforms/raspberry-pi.md +0 -13
  371. package/docs/platforms/windows.md +0 -286
  372. package/docs/plugins/adding-capabilities.md +0 -146
  373. package/docs/plugins/admin-http-rpc.md +0 -216
  374. package/docs/plugins/agent-tools.md +0 -13
  375. package/docs/plugins/architecture-internals.md +0 -1196
  376. package/docs/plugins/architecture.md +0 -483
  377. package/docs/plugins/building-extensions.md +0 -13
  378. package/docs/plugins/building-plugins.md +0 -335
  379. package/docs/plugins/bundles.md +0 -310
  380. package/docs/plugins/cli-backend-plugins.md +0 -310
  381. package/docs/plugins/codex-computer-use.md +0 -297
  382. package/docs/plugins/codex-harness-reference.md +0 -470
  383. package/docs/plugins/codex-harness-runtime.md +0 -268
  384. package/docs/plugins/codex-harness.md +0 -780
  385. package/docs/plugins/codex-native-plugins.md +0 -276
  386. package/docs/plugins/community.md +0 -77
  387. package/docs/plugins/compatibility.md +0 -167
  388. package/docs/plugins/copilot.md +0 -356
  389. package/docs/plugins/dependency-resolution.md +0 -176
  390. package/docs/plugins/google-meet.md +0 -1737
  391. package/docs/plugins/hooks.md +0 -484
  392. package/docs/plugins/install-overrides.md +0 -80
  393. package/docs/plugins/manage-plugins.md +0 -210
  394. package/docs/plugins/manifest.md +0 -1457
  395. package/docs/plugins/memory-lancedb.md +0 -385
  396. package/docs/plugins/memory-wiki.md +0 -529
  397. package/docs/plugins/message-presentation.md +0 -473
  398. package/docs/plugins/oc-path.md +0 -166
  399. package/docs/plugins/plugin-inventory.md +0 -189
  400. package/docs/plugins/plugin-permission-requests.md +0 -193
  401. package/docs/plugins/reference/acpx.md +0 -23
  402. package/docs/plugins/reference/admin-http-rpc.md +0 -23
  403. package/docs/plugins/reference/alibaba.md +0 -23
  404. package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
  405. package/docs/plugins/reference/amazon-bedrock.md +0 -23
  406. package/docs/plugins/reference/anthropic-vertex.md +0 -19
  407. package/docs/plugins/reference/anthropic.md +0 -23
  408. package/docs/plugins/reference/arcee.md +0 -23
  409. package/docs/plugins/reference/azure-speech.md +0 -23
  410. package/docs/plugins/reference/bonjour.md +0 -19
  411. package/docs/plugins/reference/brave.md +0 -23
  412. package/docs/plugins/reference/browser.md +0 -23
  413. package/docs/plugins/reference/byteplus.md +0 -19
  414. package/docs/plugins/reference/canvas.md +0 -19
  415. package/docs/plugins/reference/cerebras.md +0 -23
  416. package/docs/plugins/reference/chutes.md +0 -23
  417. package/docs/plugins/reference/clickclack.md +0 -23
  418. package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
  419. package/docs/plugins/reference/codex-supervisor.md +0 -27
  420. package/docs/plugins/reference/codex.md +0 -23
  421. package/docs/plugins/reference/comfy.md +0 -23
  422. package/docs/plugins/reference/copilot-proxy.md +0 -19
  423. package/docs/plugins/reference/copilot.md +0 -23
  424. package/docs/plugins/reference/deepgram.md +0 -23
  425. package/docs/plugins/reference/deepinfra.md +0 -23
  426. package/docs/plugins/reference/deepseek.md +0 -23
  427. package/docs/plugins/reference/diagnostics-otel.md +0 -19
  428. package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
  429. package/docs/plugins/reference/diffs-language-pack.md +0 -19
  430. package/docs/plugins/reference/diffs.md +0 -19
  431. package/docs/plugins/reference/discord.md +0 -23
  432. package/docs/plugins/reference/document-extract.md +0 -23
  433. package/docs/plugins/reference/duckduckgo.md +0 -23
  434. package/docs/plugins/reference/elevenlabs.md +0 -23
  435. package/docs/plugins/reference/exa.md +0 -23
  436. package/docs/plugins/reference/fal.md +0 -23
  437. package/docs/plugins/reference/feishu.md +0 -23
  438. package/docs/plugins/reference/file-transfer.md +0 -19
  439. package/docs/plugins/reference/firecrawl.md +0 -23
  440. package/docs/plugins/reference/fireworks.md +0 -23
  441. package/docs/plugins/reference/github-copilot.md +0 -23
  442. package/docs/plugins/reference/gmi.md +0 -23
  443. package/docs/plugins/reference/google-meet.md +0 -23
  444. package/docs/plugins/reference/google.md +0 -23
  445. package/docs/plugins/reference/googlechat.md +0 -23
  446. package/docs/plugins/reference/gradium.md +0 -23
  447. package/docs/plugins/reference/groq.md +0 -23
  448. package/docs/plugins/reference/huggingface.md +0 -23
  449. package/docs/plugins/reference/imessage.md +0 -23
  450. package/docs/plugins/reference/inworld.md +0 -23
  451. package/docs/plugins/reference/irc.md +0 -23
  452. package/docs/plugins/reference/kilocode.md +0 -23
  453. package/docs/plugins/reference/kimi.md +0 -23
  454. package/docs/plugins/reference/line.md +0 -23
  455. package/docs/plugins/reference/litellm.md +0 -23
  456. package/docs/plugins/reference/llm-task.md +0 -19
  457. package/docs/plugins/reference/lmstudio.md +0 -23
  458. package/docs/plugins/reference/lobster.md +0 -19
  459. package/docs/plugins/reference/matrix.md +0 -23
  460. package/docs/plugins/reference/mattermost.md +0 -23
  461. package/docs/plugins/reference/memory-core.md +0 -19
  462. package/docs/plugins/reference/memory-lancedb.md +0 -23
  463. package/docs/plugins/reference/memory-wiki.md +0 -23
  464. package/docs/plugins/reference/microsoft-foundry.md +0 -19
  465. package/docs/plugins/reference/microsoft.md +0 -19
  466. package/docs/plugins/reference/migrate-claude.md +0 -19
  467. package/docs/plugins/reference/migrate-hermes.md +0 -19
  468. package/docs/plugins/reference/minimax.md +0 -23
  469. package/docs/plugins/reference/mistral.md +0 -23
  470. package/docs/plugins/reference/moonshot.md +0 -23
  471. package/docs/plugins/reference/msteams.md +0 -23
  472. package/docs/plugins/reference/nextcloud-talk.md +0 -23
  473. package/docs/plugins/reference/nostr.md +0 -23
  474. package/docs/plugins/reference/novita.md +0 -23
  475. package/docs/plugins/reference/nvidia.md +0 -23
  476. package/docs/plugins/reference/oc-path.md +0 -23
  477. package/docs/plugins/reference/ollama.md +0 -23
  478. package/docs/plugins/reference/open-prose.md +0 -19
  479. package/docs/plugins/reference/openai.md +0 -23
  480. package/docs/plugins/reference/opencode-go.md +0 -23
  481. package/docs/plugins/reference/opencode.md +0 -23
  482. package/docs/plugins/reference/openrouter.md +0 -23
  483. package/docs/plugins/reference/openshell.md +0 -19
  484. package/docs/plugins/reference/perplexity.md +0 -23
  485. package/docs/plugins/reference/pixverse.md +0 -23
  486. package/docs/plugins/reference/policy.md +0 -72
  487. package/docs/plugins/reference/qa-channel.md +0 -23
  488. package/docs/plugins/reference/qa-lab.md +0 -19
  489. package/docs/plugins/reference/qa-matrix.md +0 -19
  490. package/docs/plugins/reference/qianfan.md +0 -23
  491. package/docs/plugins/reference/qqbot.md +0 -23
  492. package/docs/plugins/reference/qwen.md +0 -23
  493. package/docs/plugins/reference/runway.md +0 -23
  494. package/docs/plugins/reference/searxng.md +0 -19
  495. package/docs/plugins/reference/senseaudio.md +0 -23
  496. package/docs/plugins/reference/sglang.md +0 -23
  497. package/docs/plugins/reference/signal.md +0 -23
  498. package/docs/plugins/reference/skill-workshop.md +0 -23
  499. package/docs/plugins/reference/slack.md +0 -23
  500. package/docs/plugins/reference/stepfun.md +0 -23
  501. package/docs/plugins/reference/synology-chat.md +0 -23
  502. package/docs/plugins/reference/synthetic.md +0 -23
  503. package/docs/plugins/reference/tavily.md +0 -23
  504. package/docs/plugins/reference/telegram.md +0 -23
  505. package/docs/plugins/reference/tencent.md +0 -23
  506. package/docs/plugins/reference/tlon.md +0 -23
  507. package/docs/plugins/reference/together.md +0 -23
  508. package/docs/plugins/reference/tokenjuice.md +0 -23
  509. package/docs/plugins/reference/tts-local-cli.md +0 -19
  510. package/docs/plugins/reference/twitch.md +0 -23
  511. package/docs/plugins/reference/venice.md +0 -23
  512. package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
  513. package/docs/plugins/reference/vllm.md +0 -23
  514. package/docs/plugins/reference/voice-call.md +0 -23
  515. package/docs/plugins/reference/volcengine.md +0 -23
  516. package/docs/plugins/reference/voyage.md +0 -19
  517. package/docs/plugins/reference/vydra.md +0 -23
  518. package/docs/plugins/reference/web-readability.md +0 -19
  519. package/docs/plugins/reference/webhooks.md +0 -23
  520. package/docs/plugins/reference/whatsapp.md +0 -23
  521. package/docs/plugins/reference/workboard.md +0 -23
  522. package/docs/plugins/reference/xai.md +0 -23
  523. package/docs/plugins/reference/xiaomi.md +0 -23
  524. package/docs/plugins/reference/zai.md +0 -23
  525. package/docs/plugins/reference/zalo.md +0 -23
  526. package/docs/plugins/reference/zalouser.md +0 -24
  527. package/docs/plugins/reference.md +0 -145
  528. package/docs/plugins/sdk-agent-harness.md +0 -338
  529. package/docs/plugins/sdk-channel-inbound.md +0 -70
  530. package/docs/plugins/sdk-channel-ingress.md +0 -137
  531. package/docs/plugins/sdk-channel-message.md +0 -18
  532. package/docs/plugins/sdk-channel-outbound.md +0 -113
  533. package/docs/plugins/sdk-channel-plugins.md +0 -765
  534. package/docs/plugins/sdk-channel-turn.md +0 -9
  535. package/docs/plugins/sdk-entrypoints.md +0 -344
  536. package/docs/plugins/sdk-migration.md +0 -979
  537. package/docs/plugins/sdk-overview.md +0 -511
  538. package/docs/plugins/sdk-provider-plugins.md +0 -846
  539. package/docs/plugins/sdk-runtime.md +0 -676
  540. package/docs/plugins/sdk-setup.md +0 -550
  541. package/docs/plugins/sdk-subpaths.md +0 -391
  542. package/docs/plugins/sdk-testing.md +0 -403
  543. package/docs/plugins/skill-workshop.md +0 -713
  544. package/docs/plugins/tool-plugins.md +0 -411
  545. package/docs/plugins/voice-call.md +0 -942
  546. package/docs/plugins/webhooks.md +0 -192
  547. package/docs/plugins/workboard.md +0 -252
  548. package/docs/plugins/zalouser.md +0 -86
  549. package/docs/prose.md +0 -137
  550. package/docs/providers/alibaba.md +0 -158
  551. package/docs/providers/anthropic.md +0 -381
  552. package/docs/providers/arcee.md +0 -144
  553. package/docs/providers/azure-speech.md +0 -119
  554. package/docs/providers/bedrock-mantle.md +0 -211
  555. package/docs/providers/bedrock.md +0 -414
  556. package/docs/providers/cerebras.md +0 -130
  557. package/docs/providers/chutes.md +0 -153
  558. package/docs/providers/claude-max-api-proxy.md +0 -191
  559. package/docs/providers/cloudflare-ai-gateway.md +0 -119
  560. package/docs/providers/comfy.md +0 -362
  561. package/docs/providers/deepgram.md +0 -184
  562. package/docs/providers/deepinfra.md +0 -92
  563. package/docs/providers/deepseek.md +0 -146
  564. package/docs/providers/ds4.md +0 -309
  565. package/docs/providers/elevenlabs.md +0 -130
  566. package/docs/providers/fal.md +0 -240
  567. package/docs/providers/fireworks.md +0 -144
  568. package/docs/providers/github-copilot.md +0 -257
  569. package/docs/providers/gmi.md +0 -92
  570. package/docs/providers/google.md +0 -472
  571. package/docs/providers/gradium.md +0 -123
  572. package/docs/providers/groq.md +0 -171
  573. package/docs/providers/huggingface.md +0 -235
  574. package/docs/providers/index.md +0 -105
  575. package/docs/providers/inferrs.md +0 -272
  576. package/docs/providers/inworld.md +0 -120
  577. package/docs/providers/kilocode.md +0 -135
  578. package/docs/providers/litellm.md +0 -234
  579. package/docs/providers/lmstudio.md +0 -224
  580. package/docs/providers/minimax.md +0 -505
  581. package/docs/providers/mistral.md +0 -235
  582. package/docs/providers/models.md +0 -64
  583. package/docs/providers/moonshot.md +0 -413
  584. package/docs/providers/novita.md +0 -92
  585. package/docs/providers/nvidia.md +0 -158
  586. package/docs/providers/ollama-cloud.md +0 -115
  587. package/docs/providers/ollama.md +0 -1225
  588. package/docs/providers/openai.md +0 -1093
  589. package/docs/providers/opencode-go.md +0 -123
  590. package/docs/providers/opencode.md +0 -149
  591. package/docs/providers/openrouter.md +0 -349
  592. package/docs/providers/perplexity-provider.md +0 -123
  593. package/docs/providers/pixverse.md +0 -165
  594. package/docs/providers/qianfan.md +0 -132
  595. package/docs/providers/qwen-oauth.md +0 -115
  596. package/docs/providers/qwen.md +0 -364
  597. package/docs/providers/runway.md +0 -103
  598. package/docs/providers/senseaudio.md +0 -68
  599. package/docs/providers/sglang.md +0 -161
  600. package/docs/providers/stepfun.md +0 -229
  601. package/docs/providers/synthetic.md +0 -154
  602. package/docs/providers/tencent.md +0 -130
  603. package/docs/providers/together.md +0 -140
  604. package/docs/providers/venice.md +0 -312
  605. package/docs/providers/vercel-ai-gateway.md +0 -128
  606. package/docs/providers/vllm.md +0 -407
  607. package/docs/providers/volcengine.md +0 -199
  608. package/docs/providers/vydra.md +0 -180
  609. package/docs/providers/xai.md +0 -571
  610. package/docs/providers/xiaomi.md +0 -262
  611. package/docs/providers/zai.md +0 -224
  612. package/docs/refactor/access.md +0 -9
  613. package/docs/refactor/acp.md +0 -298
  614. package/docs/refactor/canvas.md +0 -131
  615. package/docs/refactor/database-first.md +0 -2256
  616. package/docs/refactor/ingress-core.md +0 -341
  617. package/docs/reference/AGENTS.default.md +0 -131
  618. package/docs/reference/RELEASING.md +0 -799
  619. package/docs/reference/api-usage-costs.md +0 -208
  620. package/docs/reference/application-modernization-plan.md +0 -208
  621. package/docs/reference/code-mode.md +0 -773
  622. package/docs/reference/credits.md +0 -33
  623. package/docs/reference/device-models.md +0 -50
  624. package/docs/reference/fengming-sdk-api-design.md +0 -390
  625. package/docs/reference/full-release-validation.md +0 -202
  626. package/docs/reference/memory-config.md +0 -604
  627. package/docs/reference/prompt-caching.md +0 -358
  628. package/docs/reference/release-performance-sweep.md +0 -360
  629. package/docs/reference/rich-output-protocol.md +0 -101
  630. package/docs/reference/rpc.md +0 -43
  631. package/docs/reference/secret-placeholder-conventions.md +0 -33
  632. package/docs/reference/secretref-credential-surface.md +0 -159
  633. package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
  634. package/docs/reference/session-management-compaction.md +0 -474
  635. package/docs/reference/templates/AGENTS.dev.md +0 -90
  636. package/docs/reference/templates/AGENTS.md +0 -227
  637. package/docs/reference/templates/BOOT.md +0 -16
  638. package/docs/reference/templates/BOOTSTRAP.md +0 -66
  639. package/docs/reference/templates/CLAUDE.md +0 -1
  640. package/docs/reference/templates/HEARTBEAT.md +0 -24
  641. package/docs/reference/templates/IDENTITY.dev.md +0 -52
  642. package/docs/reference/templates/IDENTITY.md +0 -34
  643. package/docs/reference/templates/SOUL.dev.md +0 -82
  644. package/docs/reference/templates/SOUL.md +0 -49
  645. package/docs/reference/templates/TOOLS.dev.md +0 -29
  646. package/docs/reference/templates/TOOLS.md +0 -51
  647. package/docs/reference/templates/USER.dev.md +0 -23
  648. package/docs/reference/templates/USER.md +0 -28
  649. package/docs/reference/test.md +0 -247
  650. package/docs/reference/token-use.md +0 -246
  651. package/docs/reference/transcript-hygiene.md +0 -214
  652. package/docs/reference/wizard.md +0 -252
  653. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
  654. package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
  655. package/docs/security/formal-verification.md +0 -170
  656. package/docs/security/incident-response.md +0 -59
  657. package/docs/security/network-proxy.md +0 -268
  658. package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
  659. package/docs/snippets/plugin-publish/minimal-package.json +0 -16
  660. package/docs/specs/claw-supervisor.md +0 -247
  661. package/docs/start/bootstrapping.md +0 -49
  662. package/docs/start/docs-directory.md +0 -69
  663. package/docs/start/fengming.md +0 -252
  664. package/docs/start/getting-started.md +0 -152
  665. package/docs/start/hubs.md +0 -201
  666. package/docs/start/lore.md +0 -223
  667. package/docs/start/onboarding-overview.md +0 -72
  668. package/docs/start/onboarding.md +0 -98
  669. package/docs/start/quickstart.md +0 -25
  670. package/docs/start/setup.md +0 -178
  671. package/docs/start/showcase.md +0 -363
  672. package/docs/start/wizard-cli-automation.md +0 -232
  673. package/docs/start/wizard-cli-reference.md +0 -331
  674. package/docs/start/wizard.md +0 -141
  675. package/docs/style.css +0 -137
  676. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
  677. package/docs/tools/acp-agents-setup.md +0 -351
  678. package/docs/tools/acp-agents.md +0 -854
  679. package/docs/tools/agent-send.md +0 -130
  680. package/docs/tools/apply-patch.md +0 -64
  681. package/docs/tools/brave-search.md +0 -139
  682. package/docs/tools/browser-control.md +0 -391
  683. package/docs/tools/browser-linux-troubleshooting.md +0 -173
  684. package/docs/tools/browser-login.md +0 -77
  685. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
  686. package/docs/tools/browser.md +0 -810
  687. package/docs/tools/btw.md +0 -159
  688. package/docs/tools/capability-cookbook.md +0 -12
  689. package/docs/tools/clawhub.md +0 -5
  690. package/docs/tools/code-execution.md +0 -173
  691. package/docs/tools/creating-skills.md +0 -158
  692. package/docs/tools/diffs.md +0 -525
  693. package/docs/tools/duckduckgo-search.md +0 -109
  694. package/docs/tools/elevated.md +0 -128
  695. package/docs/tools/exa-search.md +0 -152
  696. package/docs/tools/exec-approvals-advanced.md +0 -444
  697. package/docs/tools/exec-approvals.md +0 -494
  698. package/docs/tools/exec.md +0 -285
  699. package/docs/tools/firecrawl.md +0 -155
  700. package/docs/tools/gemini-search.md +0 -114
  701. package/docs/tools/goal.md +0 -217
  702. package/docs/tools/grok-search.md +0 -129
  703. package/docs/tools/image-generation.md +0 -493
  704. package/docs/tools/index.md +0 -178
  705. package/docs/tools/kimi-search.md +0 -105
  706. package/docs/tools/llm-task.md +0 -137
  707. package/docs/tools/lobster.md +0 -365
  708. package/docs/tools/loop-detection.md +0 -154
  709. package/docs/tools/media-overview.md +0 -160
  710. package/docs/tools/minimax-search.md +0 -102
  711. package/docs/tools/multi-agent-sandbox-tools.md +0 -409
  712. package/docs/tools/music-generation.md +0 -372
  713. package/docs/tools/ollama-search.md +0 -153
  714. package/docs/tools/pdf.md +0 -213
  715. package/docs/tools/perplexity-search.md +0 -220
  716. package/docs/tools/plugin.md +0 -363
  717. package/docs/tools/reactions.md +0 -100
  718. package/docs/tools/searxng-search.md +0 -141
  719. package/docs/tools/skills-config.md +0 -195
  720. package/docs/tools/skills.md +0 -569
  721. package/docs/tools/slash-commands.md +0 -487
  722. package/docs/tools/steer.md +0 -77
  723. package/docs/tools/subagents.md +0 -651
  724. package/docs/tools/tavily.md +0 -162
  725. package/docs/tools/thinking.md +0 -142
  726. package/docs/tools/tokenjuice.md +0 -84
  727. package/docs/tools/tool-search.md +0 -269
  728. package/docs/tools/trajectory.md +0 -229
  729. package/docs/tools/tts.md +0 -1009
  730. package/docs/tools/video-generation.md +0 -555
  731. package/docs/tools/web-fetch.md +0 -210
  732. package/docs/tools/web.md +0 -461
  733. package/docs/tts.md +0 -11
  734. package/docs/vps.md +0 -139
  735. package/docs/web/control-ui.md +0 -512
  736. package/docs/web/dashboard.md +0 -107
  737. package/docs/web/index.md +0 -133
  738. package/docs/web/tui.md +0 -250
  739. package/docs/web/webchat.md +0 -102
  740. package/npm-shrinkwrap.json +0 -12861
  741. package/patches/.gitkeep +0 -0
  742. package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
  743. package/pnpm-workspace.yaml +0 -120
  744. package/scripts/crabbox-wrapper.mjs +0 -2004
  745. package/scripts/lib/official-external-channel-catalog.json +0 -560
  746. package/scripts/lib/official-external-plugin-catalog.json +0 -264
  747. package/scripts/lib/official-external-provider-catalog.json +0 -158
  748. package/scripts/lib/package-dist-imports.mjs +0 -171
  749. package/scripts/npm-runner.mjs +0 -91
  750. package/scripts/postinstall-bundled-plugins.mjs +0 -978
  751. package/scripts/preinstall-package-manager-warning.mjs +0 -64
  752. package/scripts/prepare-git-hooks.mjs +0 -72
  753. package/scripts/windows-cmd-helpers.mjs +0 -22
  754. package/skills/batch/SKILL.md +0 -118
  755. package/skills/code-review/SKILL.md +0 -107
  756. package/skills/debug/SKILL.md +0 -83
  757. package/skills/loop/SKILL.md +0 -118
  758. package/skills/run/SKILL.md +0 -79
  759. package/skills/run-skill-generator/SKILL.md +0 -179
  760. package/skills/verify/SKILL.md +0 -103
  761. package/src/agents/templates/HEARTBEAT.md +0 -3
@@ -1,338 +0,0 @@
1
- ---
2
- summary: "Experimental SDK surface for plugins that replace the low level embedded agent executor"
3
- title: "Agent harness plugins"
4
- sidebarTitle: "Agent Harness"
5
- read_when:
6
- - You are changing the embedded agent runtime or harness registry
7
- - You are registering an agent harness from a bundled or trusted plugin
8
- - You need to understand how the Codex plugin relates to model providers
9
- ---
10
-
11
- An **agent harness** is the low level executor for one prepared FengMing agent
12
- turn. It is not a model provider, not a channel, and not a tool registry.
13
- For the user-facing mental model, see [Agent runtimes](/concepts/agent-runtimes).
14
-
15
- Use this surface only for bundled or trusted native plugins. The contract is
16
- still experimental because the parameter types intentionally mirror the current
17
- embedded runner.
18
-
19
- ## When to use a harness
20
-
21
- Register an agent harness when a model family has its own native session
22
- runtime and the normal FengMing provider transport is the wrong abstraction.
23
-
24
- Examples:
25
-
26
- - a native coding-agent server that owns threads and compaction
27
- - a local CLI or daemon that must stream native plan/reasoning/tool events
28
- - a model runtime that needs its own resume id in addition to the FengMing
29
- session transcript
30
-
31
- Do **not** register a harness just to add a new LLM API. For normal HTTP or
32
- WebSocket model APIs, build a [provider plugin](/plugins/sdk-provider-plugins).
33
-
34
- ## What core still owns
35
-
36
- Before a harness is selected, FengMing has already resolved:
37
-
38
- - provider and model
39
- - runtime auth state
40
- - thinking level and context budget
41
- - the FengMing transcript/session file
42
- - workspace, sandbox, and tool policy
43
- - channel reply callbacks and streaming callbacks
44
- - model fallback and live model switching policy
45
-
46
- That split is intentional. A harness runs a prepared attempt; it does not pick
47
- providers, replace channel delivery, or silently switch models.
48
-
49
- The prepared attempt also includes `params.runtimePlan`, an FengMing-owned
50
- policy bundle for runtime decisions that must stay shared across FengMing and native
51
- harnesses:
52
-
53
- - `runtimePlan.tools.normalize(...)` and
54
- `runtimePlan.tools.logDiagnostics(...)` for provider-aware tool schema policy
55
- - `runtimePlan.transcript.resolvePolicy(...)` for transcript sanitization and
56
- tool-call repair policy
57
- - `runtimePlan.delivery.isSilentPayload(...)` for shared `NO_REPLY` and media
58
- delivery suppression
59
- - `runtimePlan.outcome.classifyRunResult(...)` for model fallback classification
60
- - `runtimePlan.observability` for resolved provider/model/harness metadata
61
-
62
- Harnesses may use the plan for decisions that need to match FengMing behavior, but
63
- should still treat it as host-owned attempt state. Do not mutate it or use it to
64
- switch providers/models inside a turn.
65
-
66
- ## Register a harness
67
-
68
- **Import:** `fengming/plugin-sdk/agent-harness`
69
-
70
- ```typescript
71
- import type { AgentHarness } from "fengming/plugin-sdk/agent-harness";
72
- import { definePluginEntry } from "fengming/plugin-sdk/plugin-entry";
73
-
74
- const myHarness: AgentHarness = {
75
- id: "my-harness",
76
- label: "My native agent harness",
77
-
78
- supports(ctx) {
79
- return ctx.provider === "my-provider"
80
- ? { supported: true, priority: 100 }
81
- : { supported: false };
82
- },
83
-
84
- async runAttempt(params) {
85
- // Start or resume your native thread.
86
- // Use params.prompt, params.tools, params.images, params.onPartialReply,
87
- // params.onAgentEvent, and the other prepared attempt fields.
88
- return await runMyNativeTurn(params);
89
- },
90
- };
91
-
92
- export default definePluginEntry({
93
- id: "my-native-agent",
94
- name: "My Native Agent",
95
- description: "Runs selected models through a native agent daemon.",
96
- register(api) {
97
- api.registerAgentHarness(myHarness);
98
- },
99
- });
100
- ```
101
-
102
- ## Selection policy
103
-
104
- FengMing chooses a harness after provider/model resolution:
105
-
106
- 1. Model-scoped runtime policy wins.
107
- 2. Provider-scoped runtime policy comes next.
108
- 3. `auto` asks registered harnesses if they support the resolved
109
- provider/model.
110
- 4. If no registered harness matches, FengMing uses its embedded runtime.
111
-
112
- Plugin harness failures surface as run failures. In `auto` mode, embedded fallback is
113
- only used when no registered plugin harness supports the resolved
114
- provider/model. Once a plugin harness has claimed a run, FengMing does not
115
- replay that same turn through another runtime because that can change
116
- auth/runtime semantics or duplicate side effects.
117
-
118
- Whole-session and whole-agent runtime pins are ignored by selection. That
119
- includes stale session `agentHarnessId` values, `agents.defaults.agentRuntime`,
120
- `agents.list[].agentRuntime`, and `FENGMING_AGENT_RUNTIME`. `/status` shows the
121
- effective runtime selected from the provider/model route.
122
- If the selected harness is surprising, enable `agents/harness` debug logging and
123
- inspect the gateway's structured `agent harness selected` record. It includes
124
- the selected harness id, selection reason, runtime/fallback policy, and, in
125
- `auto` mode, each plugin candidate's support result.
126
-
127
- The bundled Codex plugin registers `codex` as its harness id. Core treats that
128
- as an ordinary plugin harness id; Codex-specific aliases belong in the plugin
129
- or operator config, not in the shared runtime selector.
130
-
131
- ## Provider plus harness pairing
132
-
133
- Most harnesses should also register a provider. The provider makes model refs,
134
- auth status, model metadata, and `/model` selection visible to the rest of
135
- FengMing. The harness then claims that provider in `supports(...)`.
136
-
137
- The bundled Codex plugin follows this pattern:
138
-
139
- - preferred user model refs: `openai/gpt-5.5`
140
- - compatibility refs: legacy `codex/gpt-*` refs remain accepted, but new
141
- configs should not use them as normal provider/model refs
142
- - harness id: `codex`
143
- - auth: synthetic provider availability, because the Codex harness owns the
144
- native Codex login/session
145
- - app-server request: FengMing sends the bare model id to Codex and lets the
146
- harness talk to the native app-server protocol
147
-
148
- The Codex plugin is additive. Plain `openai/gpt-*` agent refs on the official
149
- OpenAI provider select the Codex harness by default. Older `codex/gpt-*` refs
150
- still select the Codex provider and harness for compatibility.
151
-
152
- For operator setup, model prefix examples, and Codex-only configs, see
153
- [Codex Harness](/plugins/codex-harness).
154
-
155
- FengMing requires Codex app-server `0.125.0` or newer. The Codex plugin checks
156
- the app-server initialize handshake and blocks older or unversioned servers so
157
- FengMing only runs against the protocol surface it has been tested with. The
158
- `0.125.0` floor includes the native MCP hook payload support that landed in
159
- Codex `0.124.0`, while pinning FengMing to the newer tested stable line.
160
-
161
- ### Tool-result middleware
162
-
163
- Bundled plugins can attach runtime-neutral tool-result middleware through
164
- `api.registerAgentToolResultMiddleware(...)` when their manifest declares the
165
- targeted runtime ids in `contracts.agentToolResultMiddleware`. This trusted
166
- seam is for async tool-result transforms that must run before FengMing or Codex feeds
167
- tool output back into the model.
168
-
169
- Legacy bundled plugins can still use
170
- `api.registerCodexAppServerExtensionFactory(...)` for Codex app-server-only
171
- middleware, but new result transforms should use the runtime-neutral API.
172
- The embedded-runner-only `api.registerEmbeddedExtensionFactory(...)` hook has been removed;
173
- embedded tool-result transforms must use runtime-neutral middleware.
174
-
175
- ### Terminal outcome classification
176
-
177
- Native harnesses that own their own protocol projection can use
178
- `classifyAgentHarnessTerminalOutcome(...)` from
179
- `fengming/plugin-sdk/agent-harness-runtime` when a completed turn produced no
180
- visible assistant text. The helper returns `empty`, `reasoning-only`, or
181
- `planning-only` so FengMing's fallback policy can decide whether to retry on a
182
- different model. It intentionally leaves prompt errors, in-flight turns, and
183
- intentional silent replies such as `NO_REPLY` unclassified.
184
-
185
- ### Native Codex harness mode
186
-
187
- The bundled `codex` harness is the native Codex mode for embedded FengMing
188
- agent turns. Enable the bundled `codex` plugin first, and include `codex` in
189
- `plugins.allow` if your config uses a restrictive allowlist. Native app-server
190
- configs should use `openai/gpt-*`; OpenAI agent turns select the Codex harness
191
- by default. Legacy `openai-codex/*` routes should be repaired with
192
- `fengming doctor --fix`, and legacy `codex/*` model refs remain compatibility
193
- aliases for the native harness.
194
-
195
- When this mode runs, Codex owns the native thread id, resume behavior,
196
- compaction, and app-server execution. FengMing still owns the chat channel,
197
- visible transcript mirror, tool policy, approvals, media delivery, and session
198
- selection. Use provider/model `agentRuntime.id: "codex"` when you need to prove
199
- that only the Codex app-server path can claim the run. Explicit plugin runtimes
200
- fail closed; Codex app-server selection failures and runtime failures are not
201
- retried through another runtime.
202
-
203
- ## Runtime strictness
204
-
205
- By default, FengMing uses `auto` provider/model runtime policy: registered
206
- plugin harnesses can claim a provider/model pair, and the embedded runtime
207
- handles the turn when none match. OpenAI agent refs on the official OpenAI provider default to Codex.
208
- Use an explicit provider/model plugin runtime such as
209
- `agentRuntime.id: "codex"` when missing harness selection should fail instead
210
- of routing through the embedded runtime. Selected plugin harness failures always
211
- fail hard. This does not block an explicit provider/model `agentRuntime.id: "fengming"`.
212
-
213
- For Codex-only embedded runs:
214
-
215
- ```json
216
- {
217
- "models": {
218
- "providers": {
219
- "openai": {
220
- "agentRuntime": {
221
- "id": "codex"
222
- }
223
- }
224
- }
225
- },
226
- "agents": {
227
- "defaults": {
228
- "model": "openai/gpt-5.5"
229
- }
230
- }
231
- }
232
- ```
233
-
234
- If you want a CLI backend for one canonical model, put the runtime on that
235
- model entry:
236
-
237
- ```json
238
- {
239
- "agents": {
240
- "defaults": {
241
- "model": "anthropic/claude-opus-4-8",
242
- "models": {
243
- "anthropic/claude-opus-4-8": {
244
- "agentRuntime": {
245
- "id": "claude-cli"
246
- }
247
- }
248
- }
249
- }
250
- }
251
- }
252
- ```
253
-
254
- Per-agent overrides use the same model-scoped shape:
255
-
256
- ```json
257
- {
258
- "agents": {
259
- "list": [
260
- {
261
- "id": "codex-only",
262
- "model": "openai/gpt-5.5",
263
- "models": {
264
- "openai/gpt-5.5": {
265
- "agentRuntime": { "id": "codex" }
266
- }
267
- }
268
- }
269
- ]
270
- }
271
- }
272
- ```
273
-
274
- Legacy whole-agent runtime examples like this are ignored:
275
-
276
- ```json
277
- {
278
- "agents": {
279
- "defaults": {
280
- "agentRuntime": {
281
- "id": "codex"
282
- }
283
- }
284
- }
285
- }
286
- ```
287
-
288
- With an explicit plugin runtime, a session fails early when the requested
289
- harness is not registered, does not support the resolved provider/model, or
290
- fails before producing turn side effects. That is intentional for Codex-only
291
- deployments and for live tests that must prove the Codex app-server path is
292
- actually in use.
293
-
294
- This setting only controls the embedded agent harness. It does not disable
295
- image, video, music, TTS, PDF, or other provider-specific model routing.
296
-
297
- ## Native sessions and transcript mirror
298
-
299
- A harness may keep a native session id, thread id, or daemon-side resume token.
300
- Keep that binding explicitly associated with the FengMing session, and keep
301
- mirroring user-visible assistant/tool output into the FengMing transcript.
302
-
303
- The FengMing transcript remains the compatibility layer for:
304
-
305
- - channel-visible session history
306
- - transcript search and indexing
307
- - switching back to the built-in FengMing harness on a later turn
308
- - generic `/new`, `/reset`, and session deletion behavior
309
-
310
- If your harness stores a sidecar binding, implement `reset(...)` so FengMing can
311
- clear it when the owning FengMing session is reset.
312
-
313
- ## Tool and media results
314
-
315
- Core constructs the FengMing tool list and passes it into the prepared attempt.
316
- When a harness executes a dynamic tool call, return the tool result back through
317
- the harness result shape instead of sending channel media yourself.
318
-
319
- This keeps text, image, video, music, TTS, approval, and messaging-tool outputs
320
- on the same delivery path as FengMing-backed runs.
321
-
322
- ## Current limitations
323
-
324
- - The public import path is generic, but some attempt/result type aliases still
325
- carry legacy names for compatibility.
326
- - Third-party harness installation is experimental. Prefer provider plugins
327
- until you need a native session runtime.
328
- - Harness switching is supported across turns. Do not switch harnesses in the
329
- middle of a turn after native tools, approvals, assistant text, or message
330
- sends have started.
331
-
332
- ## Related
333
-
334
- - [SDK Overview](/plugins/sdk-overview)
335
- - [Runtime Helpers](/plugins/sdk-runtime)
336
- - [Provider Plugins](/plugins/sdk-provider-plugins)
337
- - [Codex Harness](/plugins/codex-harness)
338
- - [Model Providers](/concepts/model-providers)
@@ -1,70 +0,0 @@
1
- ---
2
- summary: "Inbound event helpers for channel plugins: context building, shared runner orchestration, session record, and prepared reply dispatch"
3
- title: "Channel inbound API"
4
- read_when:
5
- - You are building or refactoring a messaging channel plugin receive path
6
- - You need shared inbound context construction, session recording, or prepared reply dispatch
7
- - You are migrating old channel turn helpers to inbound/message APIs
8
- ---
9
-
10
- Channel plugins should model receive paths with inbound and message nouns:
11
-
12
- ```text
13
- platform event -> inbound facts/context -> agent reply -> message delivery
14
- ```
15
-
16
- Use `fengming/plugin-sdk/channel-inbound` for inbound event normalization,
17
- formatting, roots, and orchestration. Use
18
- `fengming/plugin-sdk/channel-outbound` for native
19
- send, receipt, durable delivery, and live preview behavior.
20
-
21
- ## Core Helpers
22
-
23
- ```ts
24
- import {
25
- buildChannelInboundEventContext,
26
- runChannelInboundEvent,
27
- dispatchChannelInboundReply,
28
- } from "fengming/plugin-sdk/channel-inbound";
29
- ```
30
-
31
- - `buildChannelInboundEventContext(...)`: project normalized channel facts into
32
- the prompt/session context.
33
- - `runChannelInboundEvent(...)`: run ingest, classify, preflight, resolve,
34
- record, dispatch, and finalize for one inbound platform event.
35
- - `dispatchChannelInboundReply(...)`: record and dispatch an already assembled
36
- inbound reply with a delivery adapter.
37
-
38
- The injected plugin runtime exposes the same high-level helpers under
39
- `runtime.channel.inbound.*` for bundled/native channels that already receive the
40
- runtime object.
41
-
42
- ```ts
43
- await runtime.channel.inbound.run({
44
- channel: "demo",
45
- accountId,
46
- raw: platformEvent,
47
- adapter: {
48
- ingest: normalizePlatformEvent,
49
- resolveTurn: resolveInboundReply,
50
- },
51
- });
52
- ```
53
-
54
- Compatibility dispatchers should assemble `dispatchChannelInboundReply(...)`
55
- inputs and keep platform delivery in the delivery adapter. New send paths should
56
- prefer message adapters and durable message helpers.
57
-
58
- ## Migration
59
-
60
- The old `runtime.channel.turn.*` runtime aliases were removed. Use:
61
-
62
- - `runtime.channel.inbound.run(...)` for raw inbound events.
63
- - `runtime.channel.inbound.dispatchReply(...)` for assembled reply contexts.
64
- - `runtime.channel.inbound.buildContext(...)` for inbound context payloads.
65
- - `runtime.channel.inbound.runPreparedReply(...)` only for channel-owned prepared
66
- dispatch paths that already assemble their own dispatch closure.
67
-
68
- New plugin code should not introduce `turn`-named channel APIs. Keep model or
69
- agent turn vocabulary inside agent/provider code; channel plugins use inbound,
70
- message, delivery, and reply terms.
@@ -1,137 +0,0 @@
1
- ---
2
- summary: "Experimental channel ingress API for inbound message authorization"
3
- read_when:
4
- - Building or migrating a messaging channel plugin
5
- - Changing DM or group allowlists, route gates, command auth, event auth, or mention activation
6
- - Reviewing channel ingress redaction or SDK compatibility boundaries
7
- title: "Channel ingress API"
8
- sidebarTitle: "Channel Ingress"
9
- ---
10
-
11
- # Channel ingress API
12
-
13
- Channel ingress is the experimental access-control boundary for inbound channel
14
- events. Use `fengming/plugin-sdk/channel-ingress-runtime` for receive paths.
15
- The older `fengming/plugin-sdk/channel-ingress` subpath stays exported as a
16
- deprecated compatibility facade for third-party plugins.
17
-
18
- Plugins own platform facts and side effects. Core owns generic policy: DM/group
19
- allowlists, pairing-store DM entries, route gates, command gates, event auth,
20
- mention activation, redacted diagnostics, and admission.
21
-
22
- ## Runtime Resolver
23
-
24
- ```ts
25
- import {
26
- defineStableChannelIngressIdentity,
27
- resolveChannelMessageIngress,
28
- } from "fengming/plugin-sdk/channel-ingress-runtime";
29
-
30
- const identity = defineStableChannelIngressIdentity({
31
- key: "platform-user-id",
32
- normalize: normalizePlatformUserId,
33
- sensitivity: "pii",
34
- });
35
-
36
- const result = await resolveChannelMessageIngress({
37
- channelId: "my-channel",
38
- accountId,
39
- identity,
40
- subject: { stableId: platformUserId },
41
- conversation: { kind: isGroup ? "group" : "direct", id: conversationId },
42
- event: { kind: "message", authMode: "inbound", mayPair: !isGroup },
43
- policy: {
44
- dmPolicy: config.dmPolicy,
45
- groupPolicy: config.groupPolicy,
46
- groupAllowFromFallbackToAllowFrom: true,
47
- },
48
- allowFrom: config.allowFrom,
49
- groupAllowFrom: config.groupAllowFrom,
50
- accessGroups: cfg.accessGroups,
51
- route,
52
- readStoreAllowFrom,
53
- command: hasControlCommand ? { allowTextCommands: true, hasControlCommand } : undefined,
54
- });
55
- ```
56
-
57
- Do not precompute effective allowlists, command owners, or command groups. The
58
- resolver derives them from raw allowlists, store callbacks, route descriptors,
59
- access groups, policy, and conversation kind.
60
-
61
- ## Result
62
-
63
- Bundled plugins should consume modern projections directly:
64
-
65
- - `ingress`: ordered gate decision and admission
66
- - `senderAccess`: sender/conversation authorization only
67
- - `routeAccess`: route and route-sender projection
68
- - `commandAccess`: command authorization; false when no command gate ran
69
- - `activationAccess`: mention/activation result
70
-
71
- Event authorization remains available on the ordered `ingress.graph` and the
72
- decisive `ingress.reasonCode`; no separate event projection is emitted.
73
-
74
- Deprecated third-party SDK helpers may rebuild older shapes internally. New
75
- bundled receive paths should not translate modern results back into local DTOs.
76
-
77
- ## Access Groups
78
-
79
- `accessGroup:<name>` entries stay redacted. Core resolves static
80
- `message.senders` groups itself and calls `resolveAccessGroupMembership` only
81
- for dynamic groups that require a platform lookup. Missing, unsupported, and
82
- failed groups fail closed.
83
-
84
- ## Event Modes
85
-
86
- | `authMode` | Meaning |
87
- | ---------------- | ------------------------------------------------ |
88
- | `inbound` | normal inbound sender gates |
89
- | `command` | command gates for callbacks or scoped buttons |
90
- | `origin-subject` | actor must match the original message subject |
91
- | `route-only` | route gates only for route-scoped trusted events |
92
- | `none` | plugin-owned internal events bypass shared auth |
93
-
94
- Use `mayPair: false` for reactions, buttons, callbacks, and native commands.
95
-
96
- ## Routes And Activation
97
-
98
- Use route descriptors for room, topic, guild, thread, or nested route policy:
99
-
100
- ```ts
101
- route: {
102
- id: "room",
103
- allowed: roomAllowed,
104
- enabled: roomEnabled,
105
- senderPolicy: "replace",
106
- senderAllowFrom: roomAllowFrom,
107
- blockReason: "room_sender_not_allowlisted",
108
- }
109
- ```
110
-
111
- Use `channelIngressRoutes(...)` when a plugin has several optional route
112
- descriptors; it filters disabled branches while keeping route facts generic and
113
- ordered by each descriptor's `precedence`.
114
-
115
- Mention gating is an activation gate. A mention miss returns
116
- `admission: "skip"` so the turn kernel does not process an observe-only turn.
117
- Most channels should leave activation after sender and command gates. Public
118
- chat surfaces that must quiet non-mentioned traffic before sender allowlist
119
- noise can opt into `activation.order: "before-sender"` when text-command
120
- bypass is disabled. Channels with implicit activation, such as replies in bot
121
- threads, can pass `activation.allowedImplicitMentionKinds`; the projected
122
- `activationAccess.shouldBypassMention` then reports when command or implicit
123
- activation bypassed an explicit mention.
124
-
125
- ## Redaction
126
-
127
- Raw sender values and raw allowlist entries are resolver input only. They must
128
- not appear in resolved state, decisions, diagnostics, snapshots, or
129
- compatibility facts. Use opaque subject ids, entry ids, route ids, and
130
- diagnostic ids.
131
-
132
- ## Verification
133
-
134
- ```bash
135
- pnpm test src/channels/message-access/message-access.test.ts src/plugin-sdk/channel-ingress-runtime.test.ts
136
- pnpm plugin-sdk:api:check
137
- ```
@@ -1,18 +0,0 @@
1
- ---
2
- summary: "Redirect to /plugins/sdk-channel-outbound"
3
- title: "Channel message API"
4
- ---
5
-
6
- This page moved to [Channel outbound API](/plugins/sdk-channel-outbound).
7
-
8
- `fengming/plugin-sdk/channel-message` and
9
- `fengming/plugin-sdk/channel-message-runtime` remain deprecated compatibility
10
- subpaths for older plugins. New channel plugins should use
11
- `fengming/plugin-sdk/channel-outbound` for message lifecycle, receipt, durable
12
- send, and live preview helpers. The deprecated subpaths are thin aliases over
13
- the shared channel message core and the focused inbound/outbound SDK surfaces;
14
- do not add new helpers there.
15
-
16
- Removal plan: keep these aliases through the external plugin migration window,
17
- then remove them in the next major SDK cleanup after callers have moved to
18
- `channel-outbound`.
@@ -1,113 +0,0 @@
1
- ---
2
- summary: "Outbound message lifecycle API for channel plugins: adapters, receipts, durable sends, live preview, and reply pipeline helpers"
3
- title: "Channel outbound API"
4
- read_when:
5
- - You are building or refactoring a messaging channel plugin send path
6
- - You need durable final reply delivery, receipts, live preview finalization, or receive acknowledgement policy
7
- - You are migrating from channel-message, channel-message-runtime, or legacy reply dispatch helpers
8
- ---
9
-
10
- Channel plugins should expose outbound message behavior from
11
- `fengming/plugin-sdk/channel-outbound`. Use
12
- `fengming/plugin-sdk/channel-inbound` for receive/context/dispatch orchestration.
13
-
14
- Core owns queueing, durability, generic retry policy, hooks, receipts, and the
15
- shared `message` tool. The plugin owns native send/edit/delete calls, target
16
- normalization, platform threading, selected quotes, notification flags, account
17
- state, and platform-specific side effects.
18
-
19
- ## Adapter
20
-
21
- Most plugins define one `message` adapter:
22
-
23
- ```ts
24
- import {
25
- defineChannelMessageAdapter,
26
- createMessageReceiptFromOutboundResults,
27
- } from "fengming/plugin-sdk/channel-outbound";
28
-
29
- export const demoMessageAdapter = defineChannelMessageAdapter({
30
- id: "demo",
31
- durableFinal: {
32
- capabilities: {
33
- text: true,
34
- replyTo: true,
35
- thread: true,
36
- messageSendingHooks: true,
37
- },
38
- },
39
- send: {
40
- text: async ({ cfg, to, text, accountId, replyToId, threadId, signal }) => {
41
- const sent = await sendDemoMessage({
42
- cfg,
43
- to,
44
- text,
45
- accountId: accountId ?? undefined,
46
- replyToId: replyToId ?? undefined,
47
- threadId: threadId == null ? undefined : String(threadId),
48
- signal,
49
- });
50
-
51
- return {
52
- receipt: createMessageReceiptFromOutboundResults({
53
- results: [{ channel: "demo", messageId: sent.id, conversationId: to }],
54
- kind: "text",
55
- threadId: threadId == null ? undefined : String(threadId),
56
- replyToId: replyToId ?? undefined,
57
- }),
58
- };
59
- },
60
- },
61
- });
62
- ```
63
-
64
- Only declare capabilities the native transport actually preserves. Cover each
65
- declared send, receipt, live-preview, and receive-ack capability with the
66
- contract helpers exported from this subpath.
67
-
68
- ## Existing Outbound Adapters
69
-
70
- If the channel already has a compatible `outbound` adapter, derive the message
71
- adapter instead of duplicating send code:
72
-
73
- ```ts
74
- import { createChannelMessageAdapterFromOutbound } from "fengming/plugin-sdk/channel-outbound";
75
-
76
- export const messageAdapter = createChannelMessageAdapterFromOutbound({
77
- id: "demo",
78
- outbound,
79
- durableFinal: {
80
- capabilities: {
81
- text: true,
82
- media: true,
83
- },
84
- },
85
- });
86
- ```
87
-
88
- ## Durable Sends
89
-
90
- Runtime send helpers also live on `channel-outbound`:
91
-
92
- - `sendDurableMessageBatch(...)`
93
- - `withDurableMessageSendContext(...)`
94
- - `deliverInboundReplyWithMessageSendContext(...)`
95
- - draft streaming/progress helpers such as `resolveChannelStreamingPreviewChunk(...)`
96
-
97
- `sendDurableMessageBatch(...)` returns one explicit outcome:
98
-
99
- - `sent`: at least one visible platform message was delivered.
100
- - `suppressed`: no platform message should be treated as missing.
101
- - `partial_failed`: at least one platform message was delivered before a later
102
- payload or side effect failed.
103
- - `failed`: no platform receipt was produced.
104
-
105
- Use `payloadOutcomes` when a batch mixes sent, suppressed, and failed payloads.
106
- Do not infer hook cancellation from an empty legacy direct-delivery result.
107
-
108
- ## Compatibility Dispatch
109
-
110
- Inbound reply dispatch should be assembled through
111
- `dispatchChannelInboundReply(...)` from `channel-inbound`. Keep platform
112
- delivery in the delivery adapter; use `channel-outbound` for message adapters,
113
- durable sends, receipts, live preview, and reply pipeline options.