fengming 0.3.9 → 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 (763) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/{bundled-channel-config-schema-DpdKMATU.d.ts → bundled-channel-config-schema-Bte--ZlY.d.ts} +26 -26
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/cli-startup-metadata.json +8 -8
  5. package/dist/control-ui/assets/{activity-B2W-IeAT.js → activity-wgT0-JR0.js} +2 -2
  6. package/dist/control-ui/assets/{agents-mRUyNVCz.js → agents-DG5PobrT.js} +2 -2
  7. package/dist/control-ui/assets/{channels-8QHOqBnt.js → channels-CX28oM42.js} +2 -2
  8. package/dist/control-ui/assets/{cron-H3unP_mO.js → cron-B8ixwBqU.js} +2 -2
  9. package/dist/control-ui/assets/{debug-CxLsQ9vH.js → debug-CnkYZUXy.js} +2 -2
  10. package/dist/control-ui/assets/{index-jtIYT0Eh.js → index-DQRZJKbO.js} +4 -4
  11. package/dist/control-ui/assets/{instances-B1JQeCRb.js → instances-BE3mV1JC.js} +2 -2
  12. package/dist/control-ui/assets/{nodes-RGOmq_1l.js → nodes-Cou4PWRX.js} +2 -2
  13. package/dist/control-ui/assets/{sessions-C2O-Jgpg.js → sessions-DpAaBT21.js} +2 -2
  14. package/dist/control-ui/assets/{skills-jyJOYA4I.js → skills-DjA_j_20.js} +2 -2
  15. package/dist/control-ui/assets/{workboard-uM_kK8cQ.js → workboard-BFnvbS0k.js} +2 -2
  16. package/dist/control-ui/index.html +1 -1
  17. package/dist/control-ui/sw.js +1 -1
  18. package/dist/gateway/protocol/index.d.ts +1 -1
  19. package/dist/{index-DhOQs6M_.d.ts → index-DuDY3bCZ.d.ts} +45 -45
  20. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  21. package/dist/plugin-sdk/agent-config-primitives.d.ts +1 -1
  22. package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-BPFNnbwu.d.ts} +23 -23
  23. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +3 -3
  24. package/dist/plugin-sdk/channel-config-primitives.d.ts +2 -2
  25. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +3 -3
  26. package/dist/plugin-sdk/channel-config-schema.d.ts +2 -2
  27. package/dist/plugin-sdk/channel-core.d.ts +1 -1
  28. package/dist/plugin-sdk/channel-plugin-common.d.ts +1 -1
  29. package/dist/plugin-sdk/compat.d.ts +2 -2
  30. package/dist/plugin-sdk/{config-schema-DUddICQM.d.ts → config-schema-D7cABQ6o.d.ts} +1 -1
  31. package/dist/plugin-sdk/config-schema.d.ts +4 -4
  32. package/dist/plugin-sdk/core.d.ts +1 -1
  33. package/dist/plugin-sdk/discord.d.ts +2 -2
  34. package/dist/plugin-sdk/tts-runtime.d.ts +1 -1
  35. package/dist/plugin-sdk/{zod-schema.core-B4_b2R5K.d.ts → zod-schema.core-CwBNqcXp.d.ts} +1 -1
  36. package/dist/{zod-schema.core-Cuz0lz6m.d.ts → zod-schema.core-BGLctDlK.d.ts} +1 -1
  37. package/package.json +7 -412
  38. package/CHANGELOG.md +0 -38
  39. package/THIRD_PARTY_NOTICES.md +0 -37
  40. package/docs/.i18n/README.md +0 -81
  41. package/docs/.i18n/ar-navigation.json +0 -18
  42. package/docs/.i18n/de-navigation.json +0 -18
  43. package/docs/.i18n/es-navigation.json +0 -18
  44. package/docs/.i18n/fr-navigation.json +0 -18
  45. package/docs/.i18n/glossary.ar.json +0 -78
  46. package/docs/.i18n/glossary.de.json +0 -78
  47. package/docs/.i18n/glossary.es.json +0 -78
  48. package/docs/.i18n/glossary.fa.json +0 -78
  49. package/docs/.i18n/glossary.fr.json +0 -78
  50. package/docs/.i18n/glossary.id.json +0 -78
  51. package/docs/.i18n/glossary.it.json +0 -78
  52. package/docs/.i18n/glossary.ja-JP.json +0 -98
  53. package/docs/.i18n/glossary.ko.json +0 -78
  54. package/docs/.i18n/glossary.nl.json +0 -78
  55. package/docs/.i18n/glossary.pl.json +0 -78
  56. package/docs/.i18n/glossary.pt-BR.json +0 -78
  57. package/docs/.i18n/glossary.th.json +0 -78
  58. package/docs/.i18n/glossary.tr.json +0 -78
  59. package/docs/.i18n/glossary.uk.json +0 -78
  60. package/docs/.i18n/glossary.vi.json +0 -78
  61. package/docs/.i18n/glossary.zh-CN.json +0 -1122
  62. package/docs/.i18n/glossary.zh-TW.json +0 -78
  63. package/docs/.i18n/id-navigation.json +0 -18
  64. package/docs/.i18n/it-navigation.json +0 -18
  65. package/docs/.i18n/ja-navigation.json +0 -18
  66. package/docs/.i18n/ko-navigation.json +0 -18
  67. package/docs/.i18n/pl-navigation.json +0 -18
  68. package/docs/.i18n/pt-BR-navigation.json +0 -18
  69. package/docs/.i18n/tr-navigation.json +0 -18
  70. package/docs/.i18n/translation-workflow.md +0 -111
  71. package/docs/.i18n/zh-Hans-navigation.json +0 -552
  72. package/docs/AGENTS.md +0 -36
  73. package/docs/CLAUDE.md +0 -1
  74. package/docs/agent-runtime-architecture.md +0 -48
  75. package/docs/announcements/bluebubbles-imessage.md +0 -79
  76. package/docs/auth-credential-semantics.md +0 -124
  77. package/docs/automation/auth-monitoring.md +0 -11
  78. package/docs/automation/clawflow.md +0 -12
  79. package/docs/automation/cron-jobs.md +0 -534
  80. package/docs/automation/cron-vs-heartbeat.md +0 -11
  81. package/docs/automation/gmail-pubsub.md +0 -11
  82. package/docs/automation/hooks.md +0 -387
  83. package/docs/automation/index.md +0 -135
  84. package/docs/automation/poll.md +0 -12
  85. package/docs/automation/standing-orders.md +0 -250
  86. package/docs/automation/taskflow.md +0 -155
  87. package/docs/automation/tasks.md +0 -374
  88. package/docs/automation/troubleshooting.md +0 -12
  89. package/docs/automation/webhook.md +0 -12
  90. package/docs/brave-search.md +0 -11
  91. package/docs/channels/access-groups.md +0 -201
  92. package/docs/channels/ambient-room-events.md +0 -214
  93. package/docs/channels/bot-loop-protection.md +0 -131
  94. package/docs/channels/broadcast-groups.md +0 -472
  95. package/docs/channels/channel-routing.md +0 -162
  96. package/docs/channels/clickclack.md +0 -138
  97. package/docs/channels/discord.md +0 -1758
  98. package/docs/channels/feishu.md +0 -650
  99. package/docs/channels/googlechat.md +0 -284
  100. package/docs/channels/group-messages.md +0 -95
  101. package/docs/channels/groups.md +0 -524
  102. package/docs/channels/imessage-from-bluebubbles.md +0 -259
  103. package/docs/channels/imessage.md +0 -839
  104. package/docs/channels/index.md +0 -64
  105. package/docs/channels/irc.md +0 -253
  106. package/docs/channels/line.md +0 -243
  107. package/docs/channels/location.md +0 -71
  108. package/docs/channels/matrix-migration.md +0 -370
  109. package/docs/channels/matrix-presentation.md +0 -77
  110. package/docs/channels/matrix-push-rules.md +0 -150
  111. package/docs/channels/matrix.md +0 -921
  112. package/docs/channels/mattermost.md +0 -542
  113. package/docs/channels/msteams.md +0 -1096
  114. package/docs/channels/nextcloud-talk.md +0 -176
  115. package/docs/channels/nostr.md +0 -253
  116. package/docs/channels/pairing.md +0 -214
  117. package/docs/channels/qqbot.md +0 -314
  118. package/docs/channels/signal.md +0 -417
  119. package/docs/channels/slack.md +0 -1623
  120. package/docs/channels/synology-chat.md +0 -187
  121. package/docs/channels/telegram.md +0 -1124
  122. package/docs/channels/tlon.md +0 -296
  123. package/docs/channels/troubleshooting.md +0 -162
  124. package/docs/channels/twitch.md +0 -431
  125. package/docs/channels/wechat.md +0 -171
  126. package/docs/channels/whatsapp.md +0 -796
  127. package/docs/channels/yuanbao.md +0 -416
  128. package/docs/channels/zalo.md +0 -253
  129. package/docs/channels/zalouser.md +0 -217
  130. package/docs/ci.md +0 -657
  131. package/docs/clawhub/publishing.md +0 -96
  132. package/docs/cli/acp.md +0 -370
  133. package/docs/cli/agent.md +0 -109
  134. package/docs/cli/agents.md +0 -253
  135. package/docs/cli/approvals.md +0 -190
  136. package/docs/cli/backup.md +0 -98
  137. package/docs/cli/browser.md +0 -307
  138. package/docs/cli/channels.md +0 -154
  139. package/docs/cli/clawbot.md +0 -25
  140. package/docs/cli/commitments.md +0 -90
  141. package/docs/cli/completion.md +0 -39
  142. package/docs/cli/config.md +0 -504
  143. package/docs/cli/configure.md +0 -77
  144. package/docs/cli/crestodian.md +0 -337
  145. package/docs/cli/cron.md +0 -304
  146. package/docs/cli/daemon.md +0 -67
  147. package/docs/cli/dashboard.md +0 -33
  148. package/docs/cli/devices.md +0 -240
  149. package/docs/cli/directory.md +0 -68
  150. package/docs/cli/dns.md +0 -53
  151. package/docs/cli/docs.md +0 -63
  152. package/docs/cli/doctor.md +0 -241
  153. package/docs/cli/flows.md +0 -52
  154. package/docs/cli/gateway.md +0 -572
  155. package/docs/cli/health.md +0 -43
  156. package/docs/cli/hooks.md +0 -345
  157. package/docs/cli/index.md +0 -400
  158. package/docs/cli/infer.md +0 -364
  159. package/docs/cli/logs.md +0 -68
  160. package/docs/cli/mcp.md +0 -529
  161. package/docs/cli/memory.md +0 -183
  162. package/docs/cli/message.md +0 -317
  163. package/docs/cli/migrate.md +0 -334
  164. package/docs/cli/models.md +0 -239
  165. package/docs/cli/node.md +0 -177
  166. package/docs/cli/nodes.md +0 -76
  167. package/docs/cli/onboard.md +0 -250
  168. package/docs/cli/pairing.md +0 -77
  169. package/docs/cli/path.md +0 -511
  170. package/docs/cli/plugins.md +0 -459
  171. package/docs/cli/policy.md +0 -886
  172. package/docs/cli/proxy.md +0 -89
  173. package/docs/cli/qr.md +0 -56
  174. package/docs/cli/reset.md +0 -39
  175. package/docs/cli/sandbox.md +0 -208
  176. package/docs/cli/secrets.md +0 -202
  177. package/docs/cli/security.md +0 -136
  178. package/docs/cli/sessions.md +0 -164
  179. package/docs/cli/setup.md +0 -59
  180. package/docs/cli/skills.md +0 -122
  181. package/docs/cli/status.md +0 -45
  182. package/docs/cli/system.md +0 -89
  183. package/docs/cli/tasks.md +0 -111
  184. package/docs/cli/transcripts.md +0 -151
  185. package/docs/cli/tui.md +0 -91
  186. package/docs/cli/uninstall.md +0 -44
  187. package/docs/cli/update.md +0 -243
  188. package/docs/cli/voicecall.md +0 -204
  189. package/docs/cli/webhooks.md +0 -117
  190. package/docs/cli/wiki.md +0 -256
  191. package/docs/concepts/active-memory.md +0 -856
  192. package/docs/concepts/agent-loop.md +0 -185
  193. package/docs/concepts/agent-runtimes.md +0 -276
  194. package/docs/concepts/agent-workspace.md +0 -230
  195. package/docs/concepts/agent.md +0 -140
  196. package/docs/concepts/architecture.md +0 -154
  197. package/docs/concepts/channel-docking.md +0 -145
  198. package/docs/concepts/commitments.md +0 -150
  199. package/docs/concepts/compaction.md +0 -203
  200. package/docs/concepts/context-engine.md +0 -347
  201. package/docs/concepts/context.md +0 -199
  202. package/docs/concepts/delegate-architecture.md +0 -319
  203. package/docs/concepts/dreaming.md +0 -264
  204. package/docs/concepts/experimental-features.md +0 -109
  205. package/docs/concepts/features.md +0 -91
  206. package/docs/concepts/fengming-sdk.md +0 -323
  207. package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
  208. package/docs/concepts/mantis.md +0 -744
  209. package/docs/concepts/markdown-formatting.md +0 -139
  210. package/docs/concepts/memory-builtin.md +0 -148
  211. package/docs/concepts/memory-honcho.md +0 -144
  212. package/docs/concepts/memory-qmd.md +0 -271
  213. package/docs/concepts/memory-search.md +0 -167
  214. package/docs/concepts/memory.md +0 -299
  215. package/docs/concepts/message-lifecycle-refactor.md +0 -1126
  216. package/docs/concepts/messages.md +0 -214
  217. package/docs/concepts/model-failover.md +0 -384
  218. package/docs/concepts/model-providers.md +0 -719
  219. package/docs/concepts/models.md +0 -371
  220. package/docs/concepts/multi-agent.md +0 -625
  221. package/docs/concepts/oauth.md +0 -198
  222. package/docs/concepts/parallel-specialist-lanes.md +0 -127
  223. package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
  224. package/docs/concepts/presence.md +0 -117
  225. package/docs/concepts/progress-drafts.md +0 -406
  226. package/docs/concepts/qa-e2e-automation.md +0 -947
  227. package/docs/concepts/qa-matrix.md +0 -139
  228. package/docs/concepts/queue-steering.md +0 -90
  229. package/docs/concepts/queue.md +0 -136
  230. package/docs/concepts/retry.md +0 -86
  231. package/docs/concepts/session-pruning.md +0 -104
  232. package/docs/concepts/session-tool.md +0 -188
  233. package/docs/concepts/session.md +0 -164
  234. package/docs/concepts/soul.md +0 -116
  235. package/docs/concepts/streaming.md +0 -257
  236. package/docs/concepts/system-prompt.md +0 -328
  237. package/docs/concepts/timezone.md +0 -47
  238. package/docs/concepts/typebox.md +0 -309
  239. package/docs/concepts/typing-indicators.md +0 -88
  240. package/docs/concepts/usage-tracking.md +0 -66
  241. package/docs/date-time.md +0 -126
  242. package/docs/debug/node-issue.md +0 -90
  243. package/docs/diagnostics/flags.md +0 -182
  244. package/docs/docs.json +0 -1862
  245. package/docs/fengming-agent-runtime.md +0 -82
  246. package/docs/gateway/authentication.md +0 -256
  247. package/docs/gateway/background-process.md +0 -147
  248. package/docs/gateway/bonjour.md +0 -303
  249. package/docs/gateway/bridge-protocol.md +0 -97
  250. package/docs/gateway/cli-backends.md +0 -439
  251. package/docs/gateway/config-agents.md +0 -1525
  252. package/docs/gateway/config-channels.md +0 -945
  253. package/docs/gateway/config-tools.md +0 -774
  254. package/docs/gateway/configuration-examples.md +0 -704
  255. package/docs/gateway/configuration-reference.md +0 -1391
  256. package/docs/gateway/configuration.md +0 -739
  257. package/docs/gateway/diagnostics.md +0 -213
  258. package/docs/gateway/discovery.md +0 -154
  259. package/docs/gateway/doctor.md +0 -575
  260. package/docs/gateway/gateway-lock.md +0 -37
  261. package/docs/gateway/health.md +0 -73
  262. package/docs/gateway/heartbeat.md +0 -498
  263. package/docs/gateway/index.md +0 -383
  264. package/docs/gateway/local-model-services.md +0 -205
  265. package/docs/gateway/local-models.md +0 -355
  266. package/docs/gateway/logging.md +0 -149
  267. package/docs/gateway/multiple-gateways.md +0 -178
  268. package/docs/gateway/network-model.md +0 -15
  269. package/docs/gateway/openai-http-api.md +0 -378
  270. package/docs/gateway/openresponses-http-api.md +0 -347
  271. package/docs/gateway/openshell.md +0 -316
  272. package/docs/gateway/opentelemetry.md +0 -433
  273. package/docs/gateway/operator-scopes.md +0 -119
  274. package/docs/gateway/pairing.md +0 -207
  275. package/docs/gateway/prometheus.md +0 -249
  276. package/docs/gateway/protocol.md +0 -826
  277. package/docs/gateway/remote-gateway-readme.md +0 -169
  278. package/docs/gateway/remote.md +0 -280
  279. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
  280. package/docs/gateway/sandboxing.md +0 -546
  281. package/docs/gateway/secrets-plan-contract.md +0 -159
  282. package/docs/gateway/secrets.md +0 -805
  283. package/docs/gateway/security/audit-checks.md +0 -127
  284. package/docs/gateway/security/exposure-runbook.md +0 -212
  285. package/docs/gateway/security/index.md +0 -1343
  286. package/docs/gateway/security/secure-file-operations.md +0 -76
  287. package/docs/gateway/security/shrinkwrap.md +0 -111
  288. package/docs/gateway/tailscale.md +0 -156
  289. package/docs/gateway/tools-invoke-http-api.md +0 -169
  290. package/docs/gateway/troubleshooting.md +0 -877
  291. package/docs/gateway/trusted-proxy-auth.md +0 -483
  292. package/docs/help/debugging.md +0 -341
  293. package/docs/help/environment.md +0 -233
  294. package/docs/help/faq-first-run.md +0 -870
  295. package/docs/help/faq-models.md +0 -556
  296. package/docs/help/faq.md +0 -2041
  297. package/docs/help/index.md +0 -39
  298. package/docs/help/scripts.md +0 -56
  299. package/docs/help/testing-live.md +0 -587
  300. package/docs/help/testing-updates-plugins.md +0 -299
  301. package/docs/help/testing.md +0 -977
  302. package/docs/help/troubleshooting.md +0 -449
  303. package/docs/index.md +0 -196
  304. package/docs/install/ansible.md +0 -233
  305. package/docs/install/azure.md +0 -315
  306. package/docs/install/bun.md +0 -59
  307. package/docs/install/clawdock.md +0 -112
  308. package/docs/install/development-channels.md +0 -148
  309. package/docs/install/digitalocean.md +0 -174
  310. package/docs/install/docker-vm-runtime.md +0 -154
  311. package/docs/install/docker.md +0 -564
  312. package/docs/install/exe-dev.md +0 -201
  313. package/docs/install/fly.md +0 -524
  314. package/docs/install/gcp.md +0 -418
  315. package/docs/install/hetzner.md +0 -285
  316. package/docs/install/hostinger.md +0 -98
  317. package/docs/install/index.md +0 -232
  318. package/docs/install/installer.md +0 -447
  319. package/docs/install/kubernetes.md +0 -196
  320. package/docs/install/macos-vm.md +0 -281
  321. package/docs/install/migrating-claude.md +0 -165
  322. package/docs/install/migrating-hermes.md +0 -178
  323. package/docs/install/migrating.md +0 -137
  324. package/docs/install/nix.md +0 -112
  325. package/docs/install/node.md +0 -142
  326. package/docs/install/northflank.mdx +0 -44
  327. package/docs/install/oracle.md +0 -218
  328. package/docs/install/podman.md +0 -216
  329. package/docs/install/railway.mdx +0 -92
  330. package/docs/install/raspberry-pi.md +0 -234
  331. package/docs/install/render.mdx +0 -167
  332. package/docs/install/uninstall.md +0 -131
  333. package/docs/install/updating.md +0 -284
  334. package/docs/install/upstash.md +0 -96
  335. package/docs/logging.md +0 -320
  336. package/docs/nav-tabs-underline.js +0 -100
  337. package/docs/network.md +0 -72
  338. package/docs/nodes/audio.md +0 -216
  339. package/docs/nodes/camera.md +0 -166
  340. package/docs/nodes/images.md +0 -77
  341. package/docs/nodes/index.md +0 -439
  342. package/docs/nodes/location-command.md +0 -102
  343. package/docs/nodes/media-understanding.md +0 -495
  344. package/docs/nodes/talk.md +0 -160
  345. package/docs/nodes/troubleshooting.md +0 -123
  346. package/docs/nodes/voicewake.md +0 -93
  347. package/docs/perplexity.md +0 -11
  348. package/docs/plan/codex-context-engine-harness.md +0 -624
  349. package/docs/plan/ui-channels.md +0 -284
  350. package/docs/platforms/digitalocean.md +0 -12
  351. package/docs/platforms/easyrunner.md +0 -109
  352. package/docs/platforms/index.md +0 -51
  353. package/docs/platforms/linux.md +0 -141
  354. package/docs/platforms/mac/bundled-gateway.md +0 -79
  355. package/docs/platforms/mac/canvas.md +0 -128
  356. package/docs/platforms/mac/child-process.md +0 -72
  357. package/docs/platforms/mac/dev-setup.md +0 -112
  358. package/docs/platforms/mac/health.md +0 -39
  359. package/docs/platforms/mac/icon.md +0 -36
  360. package/docs/platforms/mac/logging.md +0 -62
  361. package/docs/platforms/mac/menu-bar.md +0 -93
  362. package/docs/platforms/mac/peekaboo.md +0 -96
  363. package/docs/platforms/mac/permissions.md +0 -73
  364. package/docs/platforms/mac/remote.md +0 -123
  365. package/docs/platforms/mac/signing.md +0 -52
  366. package/docs/platforms/mac/skills.md +0 -43
  367. package/docs/platforms/mac/voice-overlay.md +0 -66
  368. package/docs/platforms/mac/voicewake.md +0 -73
  369. package/docs/platforms/mac/webchat.md +0 -54
  370. package/docs/platforms/mac/xpc.md +0 -66
  371. package/docs/platforms/oracle.md +0 -12
  372. package/docs/platforms/raspberry-pi.md +0 -13
  373. package/docs/platforms/windows.md +0 -286
  374. package/docs/plugins/adding-capabilities.md +0 -146
  375. package/docs/plugins/admin-http-rpc.md +0 -216
  376. package/docs/plugins/agent-tools.md +0 -13
  377. package/docs/plugins/architecture-internals.md +0 -1196
  378. package/docs/plugins/architecture.md +0 -483
  379. package/docs/plugins/building-extensions.md +0 -13
  380. package/docs/plugins/building-plugins.md +0 -335
  381. package/docs/plugins/bundles.md +0 -310
  382. package/docs/plugins/cli-backend-plugins.md +0 -310
  383. package/docs/plugins/codex-computer-use.md +0 -297
  384. package/docs/plugins/codex-harness-reference.md +0 -470
  385. package/docs/plugins/codex-harness-runtime.md +0 -268
  386. package/docs/plugins/codex-harness.md +0 -780
  387. package/docs/plugins/codex-native-plugins.md +0 -276
  388. package/docs/plugins/community.md +0 -77
  389. package/docs/plugins/compatibility.md +0 -167
  390. package/docs/plugins/copilot.md +0 -356
  391. package/docs/plugins/dependency-resolution.md +0 -176
  392. package/docs/plugins/google-meet.md +0 -1737
  393. package/docs/plugins/hooks.md +0 -484
  394. package/docs/plugins/install-overrides.md +0 -80
  395. package/docs/plugins/manage-plugins.md +0 -210
  396. package/docs/plugins/manifest.md +0 -1457
  397. package/docs/plugins/memory-lancedb.md +0 -385
  398. package/docs/plugins/memory-wiki.md +0 -529
  399. package/docs/plugins/message-presentation.md +0 -473
  400. package/docs/plugins/oc-path.md +0 -166
  401. package/docs/plugins/plugin-inventory.md +0 -189
  402. package/docs/plugins/plugin-permission-requests.md +0 -193
  403. package/docs/plugins/reference/acpx.md +0 -23
  404. package/docs/plugins/reference/admin-http-rpc.md +0 -23
  405. package/docs/plugins/reference/alibaba.md +0 -23
  406. package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
  407. package/docs/plugins/reference/amazon-bedrock.md +0 -23
  408. package/docs/plugins/reference/anthropic-vertex.md +0 -19
  409. package/docs/plugins/reference/anthropic.md +0 -23
  410. package/docs/plugins/reference/arcee.md +0 -23
  411. package/docs/plugins/reference/azure-speech.md +0 -23
  412. package/docs/plugins/reference/bonjour.md +0 -19
  413. package/docs/plugins/reference/brave.md +0 -23
  414. package/docs/plugins/reference/browser.md +0 -23
  415. package/docs/plugins/reference/byteplus.md +0 -19
  416. package/docs/plugins/reference/canvas.md +0 -19
  417. package/docs/plugins/reference/cerebras.md +0 -23
  418. package/docs/plugins/reference/chutes.md +0 -23
  419. package/docs/plugins/reference/clickclack.md +0 -23
  420. package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
  421. package/docs/plugins/reference/codex-supervisor.md +0 -27
  422. package/docs/plugins/reference/codex.md +0 -23
  423. package/docs/plugins/reference/comfy.md +0 -23
  424. package/docs/plugins/reference/copilot-proxy.md +0 -19
  425. package/docs/plugins/reference/copilot.md +0 -23
  426. package/docs/plugins/reference/deepgram.md +0 -23
  427. package/docs/plugins/reference/deepinfra.md +0 -23
  428. package/docs/plugins/reference/deepseek.md +0 -23
  429. package/docs/plugins/reference/diagnostics-otel.md +0 -19
  430. package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
  431. package/docs/plugins/reference/diffs-language-pack.md +0 -19
  432. package/docs/plugins/reference/diffs.md +0 -19
  433. package/docs/plugins/reference/discord.md +0 -23
  434. package/docs/plugins/reference/document-extract.md +0 -23
  435. package/docs/plugins/reference/duckduckgo.md +0 -23
  436. package/docs/plugins/reference/elevenlabs.md +0 -23
  437. package/docs/plugins/reference/exa.md +0 -23
  438. package/docs/plugins/reference/fal.md +0 -23
  439. package/docs/plugins/reference/feishu.md +0 -23
  440. package/docs/plugins/reference/file-transfer.md +0 -19
  441. package/docs/plugins/reference/firecrawl.md +0 -23
  442. package/docs/plugins/reference/fireworks.md +0 -23
  443. package/docs/plugins/reference/github-copilot.md +0 -23
  444. package/docs/plugins/reference/gmi.md +0 -23
  445. package/docs/plugins/reference/google-meet.md +0 -23
  446. package/docs/plugins/reference/google.md +0 -23
  447. package/docs/plugins/reference/googlechat.md +0 -23
  448. package/docs/plugins/reference/gradium.md +0 -23
  449. package/docs/plugins/reference/groq.md +0 -23
  450. package/docs/plugins/reference/huggingface.md +0 -23
  451. package/docs/plugins/reference/imessage.md +0 -23
  452. package/docs/plugins/reference/inworld.md +0 -23
  453. package/docs/plugins/reference/irc.md +0 -23
  454. package/docs/plugins/reference/kilocode.md +0 -23
  455. package/docs/plugins/reference/kimi.md +0 -23
  456. package/docs/plugins/reference/line.md +0 -23
  457. package/docs/plugins/reference/litellm.md +0 -23
  458. package/docs/plugins/reference/llm-task.md +0 -19
  459. package/docs/plugins/reference/lmstudio.md +0 -23
  460. package/docs/plugins/reference/lobster.md +0 -19
  461. package/docs/plugins/reference/matrix.md +0 -23
  462. package/docs/plugins/reference/mattermost.md +0 -23
  463. package/docs/plugins/reference/memory-core.md +0 -19
  464. package/docs/plugins/reference/memory-lancedb.md +0 -23
  465. package/docs/plugins/reference/memory-wiki.md +0 -23
  466. package/docs/plugins/reference/microsoft-foundry.md +0 -19
  467. package/docs/plugins/reference/microsoft.md +0 -19
  468. package/docs/plugins/reference/migrate-claude.md +0 -19
  469. package/docs/plugins/reference/migrate-hermes.md +0 -19
  470. package/docs/plugins/reference/minimax.md +0 -23
  471. package/docs/plugins/reference/mistral.md +0 -23
  472. package/docs/plugins/reference/moonshot.md +0 -23
  473. package/docs/plugins/reference/msteams.md +0 -23
  474. package/docs/plugins/reference/nextcloud-talk.md +0 -23
  475. package/docs/plugins/reference/nostr.md +0 -23
  476. package/docs/plugins/reference/novita.md +0 -23
  477. package/docs/plugins/reference/nvidia.md +0 -23
  478. package/docs/plugins/reference/oc-path.md +0 -23
  479. package/docs/plugins/reference/ollama.md +0 -23
  480. package/docs/plugins/reference/open-prose.md +0 -19
  481. package/docs/plugins/reference/openai.md +0 -23
  482. package/docs/plugins/reference/opencode-go.md +0 -23
  483. package/docs/plugins/reference/opencode.md +0 -23
  484. package/docs/plugins/reference/openrouter.md +0 -23
  485. package/docs/plugins/reference/openshell.md +0 -19
  486. package/docs/plugins/reference/perplexity.md +0 -23
  487. package/docs/plugins/reference/pixverse.md +0 -23
  488. package/docs/plugins/reference/policy.md +0 -72
  489. package/docs/plugins/reference/qa-channel.md +0 -23
  490. package/docs/plugins/reference/qa-lab.md +0 -19
  491. package/docs/plugins/reference/qa-matrix.md +0 -19
  492. package/docs/plugins/reference/qianfan.md +0 -23
  493. package/docs/plugins/reference/qqbot.md +0 -23
  494. package/docs/plugins/reference/qwen.md +0 -23
  495. package/docs/plugins/reference/runway.md +0 -23
  496. package/docs/plugins/reference/searxng.md +0 -19
  497. package/docs/plugins/reference/senseaudio.md +0 -23
  498. package/docs/plugins/reference/sglang.md +0 -23
  499. package/docs/plugins/reference/signal.md +0 -23
  500. package/docs/plugins/reference/skill-workshop.md +0 -23
  501. package/docs/plugins/reference/slack.md +0 -23
  502. package/docs/plugins/reference/stepfun.md +0 -23
  503. package/docs/plugins/reference/synology-chat.md +0 -23
  504. package/docs/plugins/reference/synthetic.md +0 -23
  505. package/docs/plugins/reference/tavily.md +0 -23
  506. package/docs/plugins/reference/telegram.md +0 -23
  507. package/docs/plugins/reference/tencent.md +0 -23
  508. package/docs/plugins/reference/tlon.md +0 -23
  509. package/docs/plugins/reference/together.md +0 -23
  510. package/docs/plugins/reference/tokenjuice.md +0 -23
  511. package/docs/plugins/reference/tts-local-cli.md +0 -19
  512. package/docs/plugins/reference/twitch.md +0 -23
  513. package/docs/plugins/reference/venice.md +0 -23
  514. package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
  515. package/docs/plugins/reference/vllm.md +0 -23
  516. package/docs/plugins/reference/voice-call.md +0 -23
  517. package/docs/plugins/reference/volcengine.md +0 -23
  518. package/docs/plugins/reference/voyage.md +0 -19
  519. package/docs/plugins/reference/vydra.md +0 -23
  520. package/docs/plugins/reference/web-readability.md +0 -19
  521. package/docs/plugins/reference/webhooks.md +0 -23
  522. package/docs/plugins/reference/whatsapp.md +0 -23
  523. package/docs/plugins/reference/workboard.md +0 -23
  524. package/docs/plugins/reference/xai.md +0 -23
  525. package/docs/plugins/reference/xiaomi.md +0 -23
  526. package/docs/plugins/reference/zai.md +0 -23
  527. package/docs/plugins/reference/zalo.md +0 -23
  528. package/docs/plugins/reference/zalouser.md +0 -24
  529. package/docs/plugins/reference.md +0 -145
  530. package/docs/plugins/sdk-agent-harness.md +0 -338
  531. package/docs/plugins/sdk-channel-inbound.md +0 -70
  532. package/docs/plugins/sdk-channel-ingress.md +0 -137
  533. package/docs/plugins/sdk-channel-message.md +0 -18
  534. package/docs/plugins/sdk-channel-outbound.md +0 -113
  535. package/docs/plugins/sdk-channel-plugins.md +0 -765
  536. package/docs/plugins/sdk-channel-turn.md +0 -9
  537. package/docs/plugins/sdk-entrypoints.md +0 -344
  538. package/docs/plugins/sdk-migration.md +0 -979
  539. package/docs/plugins/sdk-overview.md +0 -511
  540. package/docs/plugins/sdk-provider-plugins.md +0 -846
  541. package/docs/plugins/sdk-runtime.md +0 -676
  542. package/docs/plugins/sdk-setup.md +0 -550
  543. package/docs/plugins/sdk-subpaths.md +0 -391
  544. package/docs/plugins/sdk-testing.md +0 -403
  545. package/docs/plugins/skill-workshop.md +0 -713
  546. package/docs/plugins/tool-plugins.md +0 -411
  547. package/docs/plugins/voice-call.md +0 -942
  548. package/docs/plugins/webhooks.md +0 -192
  549. package/docs/plugins/workboard.md +0 -252
  550. package/docs/plugins/zalouser.md +0 -86
  551. package/docs/prose.md +0 -137
  552. package/docs/providers/alibaba.md +0 -158
  553. package/docs/providers/anthropic.md +0 -381
  554. package/docs/providers/arcee.md +0 -144
  555. package/docs/providers/azure-speech.md +0 -119
  556. package/docs/providers/bedrock-mantle.md +0 -211
  557. package/docs/providers/bedrock.md +0 -414
  558. package/docs/providers/cerebras.md +0 -130
  559. package/docs/providers/chutes.md +0 -153
  560. package/docs/providers/claude-max-api-proxy.md +0 -191
  561. package/docs/providers/cloudflare-ai-gateway.md +0 -119
  562. package/docs/providers/comfy.md +0 -362
  563. package/docs/providers/deepgram.md +0 -184
  564. package/docs/providers/deepinfra.md +0 -92
  565. package/docs/providers/deepseek.md +0 -146
  566. package/docs/providers/ds4.md +0 -309
  567. package/docs/providers/elevenlabs.md +0 -130
  568. package/docs/providers/fal.md +0 -240
  569. package/docs/providers/fireworks.md +0 -144
  570. package/docs/providers/github-copilot.md +0 -257
  571. package/docs/providers/gmi.md +0 -92
  572. package/docs/providers/google.md +0 -472
  573. package/docs/providers/gradium.md +0 -123
  574. package/docs/providers/groq.md +0 -171
  575. package/docs/providers/huggingface.md +0 -235
  576. package/docs/providers/index.md +0 -105
  577. package/docs/providers/inferrs.md +0 -272
  578. package/docs/providers/inworld.md +0 -120
  579. package/docs/providers/kilocode.md +0 -135
  580. package/docs/providers/litellm.md +0 -234
  581. package/docs/providers/lmstudio.md +0 -224
  582. package/docs/providers/minimax.md +0 -505
  583. package/docs/providers/mistral.md +0 -235
  584. package/docs/providers/models.md +0 -64
  585. package/docs/providers/moonshot.md +0 -413
  586. package/docs/providers/novita.md +0 -92
  587. package/docs/providers/nvidia.md +0 -158
  588. package/docs/providers/ollama-cloud.md +0 -115
  589. package/docs/providers/ollama.md +0 -1225
  590. package/docs/providers/openai.md +0 -1093
  591. package/docs/providers/opencode-go.md +0 -123
  592. package/docs/providers/opencode.md +0 -149
  593. package/docs/providers/openrouter.md +0 -349
  594. package/docs/providers/perplexity-provider.md +0 -123
  595. package/docs/providers/pixverse.md +0 -165
  596. package/docs/providers/qianfan.md +0 -132
  597. package/docs/providers/qwen-oauth.md +0 -115
  598. package/docs/providers/qwen.md +0 -364
  599. package/docs/providers/runway.md +0 -103
  600. package/docs/providers/senseaudio.md +0 -68
  601. package/docs/providers/sglang.md +0 -161
  602. package/docs/providers/stepfun.md +0 -229
  603. package/docs/providers/synthetic.md +0 -154
  604. package/docs/providers/tencent.md +0 -130
  605. package/docs/providers/together.md +0 -140
  606. package/docs/providers/venice.md +0 -312
  607. package/docs/providers/vercel-ai-gateway.md +0 -128
  608. package/docs/providers/vllm.md +0 -407
  609. package/docs/providers/volcengine.md +0 -199
  610. package/docs/providers/vydra.md +0 -180
  611. package/docs/providers/xai.md +0 -571
  612. package/docs/providers/xiaomi.md +0 -262
  613. package/docs/providers/zai.md +0 -224
  614. package/docs/refactor/access.md +0 -9
  615. package/docs/refactor/acp.md +0 -298
  616. package/docs/refactor/canvas.md +0 -131
  617. package/docs/refactor/database-first.md +0 -2256
  618. package/docs/refactor/ingress-core.md +0 -341
  619. package/docs/reference/AGENTS.default.md +0 -131
  620. package/docs/reference/RELEASING.md +0 -799
  621. package/docs/reference/api-usage-costs.md +0 -208
  622. package/docs/reference/application-modernization-plan.md +0 -208
  623. package/docs/reference/code-mode.md +0 -773
  624. package/docs/reference/credits.md +0 -33
  625. package/docs/reference/device-models.md +0 -50
  626. package/docs/reference/fengming-sdk-api-design.md +0 -390
  627. package/docs/reference/full-release-validation.md +0 -202
  628. package/docs/reference/memory-config.md +0 -604
  629. package/docs/reference/prompt-caching.md +0 -358
  630. package/docs/reference/release-performance-sweep.md +0 -360
  631. package/docs/reference/rich-output-protocol.md +0 -101
  632. package/docs/reference/rpc.md +0 -43
  633. package/docs/reference/secret-placeholder-conventions.md +0 -33
  634. package/docs/reference/secretref-credential-surface.md +0 -159
  635. package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
  636. package/docs/reference/session-management-compaction.md +0 -474
  637. package/docs/reference/templates/AGENTS.dev.md +0 -90
  638. package/docs/reference/templates/AGENTS.md +0 -227
  639. package/docs/reference/templates/BOOT.md +0 -16
  640. package/docs/reference/templates/BOOTSTRAP.md +0 -66
  641. package/docs/reference/templates/CLAUDE.md +0 -1
  642. package/docs/reference/templates/HEARTBEAT.md +0 -24
  643. package/docs/reference/templates/IDENTITY.dev.md +0 -52
  644. package/docs/reference/templates/IDENTITY.md +0 -34
  645. package/docs/reference/templates/SOUL.dev.md +0 -82
  646. package/docs/reference/templates/SOUL.md +0 -49
  647. package/docs/reference/templates/TOOLS.dev.md +0 -29
  648. package/docs/reference/templates/TOOLS.md +0 -51
  649. package/docs/reference/templates/USER.dev.md +0 -23
  650. package/docs/reference/templates/USER.md +0 -28
  651. package/docs/reference/test.md +0 -247
  652. package/docs/reference/token-use.md +0 -246
  653. package/docs/reference/transcript-hygiene.md +0 -214
  654. package/docs/reference/wizard.md +0 -252
  655. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
  656. package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
  657. package/docs/security/formal-verification.md +0 -170
  658. package/docs/security/incident-response.md +0 -59
  659. package/docs/security/network-proxy.md +0 -268
  660. package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
  661. package/docs/snippets/plugin-publish/minimal-package.json +0 -16
  662. package/docs/specs/claw-supervisor.md +0 -247
  663. package/docs/start/bootstrapping.md +0 -49
  664. package/docs/start/docs-directory.md +0 -69
  665. package/docs/start/fengming.md +0 -252
  666. package/docs/start/getting-started.md +0 -152
  667. package/docs/start/hubs.md +0 -201
  668. package/docs/start/lore.md +0 -223
  669. package/docs/start/onboarding-overview.md +0 -72
  670. package/docs/start/onboarding.md +0 -98
  671. package/docs/start/quickstart.md +0 -25
  672. package/docs/start/setup.md +0 -178
  673. package/docs/start/showcase.md +0 -363
  674. package/docs/start/wizard-cli-automation.md +0 -232
  675. package/docs/start/wizard-cli-reference.md +0 -331
  676. package/docs/start/wizard.md +0 -141
  677. package/docs/style.css +0 -137
  678. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
  679. package/docs/tools/acp-agents-setup.md +0 -351
  680. package/docs/tools/acp-agents.md +0 -854
  681. package/docs/tools/agent-send.md +0 -130
  682. package/docs/tools/apply-patch.md +0 -64
  683. package/docs/tools/brave-search.md +0 -139
  684. package/docs/tools/browser-control.md +0 -391
  685. package/docs/tools/browser-linux-troubleshooting.md +0 -173
  686. package/docs/tools/browser-login.md +0 -77
  687. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
  688. package/docs/tools/browser.md +0 -810
  689. package/docs/tools/btw.md +0 -159
  690. package/docs/tools/capability-cookbook.md +0 -12
  691. package/docs/tools/clawhub.md +0 -5
  692. package/docs/tools/code-execution.md +0 -173
  693. package/docs/tools/creating-skills.md +0 -158
  694. package/docs/tools/diffs.md +0 -525
  695. package/docs/tools/duckduckgo-search.md +0 -109
  696. package/docs/tools/elevated.md +0 -128
  697. package/docs/tools/exa-search.md +0 -152
  698. package/docs/tools/exec-approvals-advanced.md +0 -444
  699. package/docs/tools/exec-approvals.md +0 -494
  700. package/docs/tools/exec.md +0 -285
  701. package/docs/tools/firecrawl.md +0 -155
  702. package/docs/tools/gemini-search.md +0 -114
  703. package/docs/tools/goal.md +0 -217
  704. package/docs/tools/grok-search.md +0 -129
  705. package/docs/tools/image-generation.md +0 -493
  706. package/docs/tools/index.md +0 -178
  707. package/docs/tools/kimi-search.md +0 -105
  708. package/docs/tools/llm-task.md +0 -137
  709. package/docs/tools/lobster.md +0 -365
  710. package/docs/tools/loop-detection.md +0 -154
  711. package/docs/tools/media-overview.md +0 -160
  712. package/docs/tools/minimax-search.md +0 -102
  713. package/docs/tools/multi-agent-sandbox-tools.md +0 -409
  714. package/docs/tools/music-generation.md +0 -372
  715. package/docs/tools/ollama-search.md +0 -153
  716. package/docs/tools/pdf.md +0 -213
  717. package/docs/tools/perplexity-search.md +0 -220
  718. package/docs/tools/plugin.md +0 -363
  719. package/docs/tools/reactions.md +0 -100
  720. package/docs/tools/searxng-search.md +0 -141
  721. package/docs/tools/skills-config.md +0 -195
  722. package/docs/tools/skills.md +0 -569
  723. package/docs/tools/slash-commands.md +0 -487
  724. package/docs/tools/steer.md +0 -77
  725. package/docs/tools/subagents.md +0 -651
  726. package/docs/tools/tavily.md +0 -162
  727. package/docs/tools/thinking.md +0 -142
  728. package/docs/tools/tokenjuice.md +0 -84
  729. package/docs/tools/tool-search.md +0 -269
  730. package/docs/tools/trajectory.md +0 -229
  731. package/docs/tools/tts.md +0 -1009
  732. package/docs/tools/video-generation.md +0 -555
  733. package/docs/tools/web-fetch.md +0 -210
  734. package/docs/tools/web.md +0 -461
  735. package/docs/tts.md +0 -11
  736. package/docs/vps.md +0 -139
  737. package/docs/web/control-ui.md +0 -512
  738. package/docs/web/dashboard.md +0 -107
  739. package/docs/web/index.md +0 -133
  740. package/docs/web/tui.md +0 -250
  741. package/docs/web/webchat.md +0 -102
  742. package/npm-shrinkwrap.json +0 -12861
  743. package/patches/.gitkeep +0 -0
  744. package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
  745. package/pnpm-workspace.yaml +0 -120
  746. package/scripts/crabbox-wrapper.mjs +0 -2004
  747. package/scripts/lib/official-external-channel-catalog.json +0 -560
  748. package/scripts/lib/official-external-plugin-catalog.json +0 -264
  749. package/scripts/lib/official-external-provider-catalog.json +0 -158
  750. package/scripts/lib/package-dist-imports.mjs +0 -171
  751. package/scripts/npm-runner.mjs +0 -91
  752. package/scripts/postinstall-bundled-plugins.mjs +0 -978
  753. package/scripts/preinstall-package-manager-warning.mjs +0 -64
  754. package/scripts/prepare-git-hooks.mjs +0 -72
  755. package/scripts/windows-cmd-helpers.mjs +0 -22
  756. package/skills/batch/SKILL.md +0 -118
  757. package/skills/code-review/SKILL.md +0 -107
  758. package/skills/debug/SKILL.md +0 -83
  759. package/skills/loop/SKILL.md +0 -118
  760. package/skills/run/SKILL.md +0 -79
  761. package/skills/run-skill-generator/SKILL.md +0 -179
  762. package/skills/verify/SKILL.md +0 -103
  763. package/src/agents/templates/HEARTBEAT.md +0 -3
@@ -1,484 +0,0 @@
1
- ---
2
- summary: "Plugin hooks: intercept agent, tool, message, session, and Gateway lifecycle events"
3
- title: "Plugin hooks"
4
- read_when:
5
- - You are building a plugin that needs before_tool_call, before_agent_reply, message hooks, or lifecycle hooks
6
- - You need to block, rewrite, or require approval for tool calls from a plugin
7
- - You are deciding between internal hooks and plugin hooks
8
- ---
9
-
10
- Plugin hooks are in-process extension points for FengMing plugins. Use them
11
- when a plugin needs to inspect or change agent runs, tool calls, message flow,
12
- session lifecycle, subagent routing, installs, or Gateway startup.
13
-
14
- Use [internal hooks](/automation/hooks) instead when you want a small
15
- operator-installed `HOOK.md` script for command and Gateway events such as
16
- `/new`, `/reset`, `/stop`, `agent:bootstrap`, or `gateway:startup`.
17
-
18
- ## Quick start
19
-
20
- Register typed plugin hooks with `api.on(...)` from your plugin entry:
21
-
22
- ```typescript
23
- import { definePluginEntry } from "fengming/plugin-sdk/plugin-entry";
24
-
25
- export default definePluginEntry({
26
- id: "tool-preflight",
27
- name: "Tool Preflight",
28
- register(api) {
29
- api.on(
30
- "before_tool_call",
31
- async (event) => {
32
- if (event.toolName !== "web_search") {
33
- return;
34
- }
35
-
36
- return {
37
- requireApproval: {
38
- title: "Run web search",
39
- description: `Allow search query: ${String(event.params.query ?? "")}`,
40
- severity: "info",
41
- timeoutMs: 60_000,
42
- timeoutBehavior: "deny",
43
- },
44
- };
45
- },
46
- { priority: 50 },
47
- );
48
- },
49
- });
50
- ```
51
-
52
- Hook handlers run sequentially in descending `priority`. Same-priority hooks
53
- keep registration order.
54
-
55
- `api.on(name, handler, opts?)` accepts:
56
-
57
- - `priority` - handler ordering (higher runs first).
58
- - `timeoutMs` - optional per-hook budget. When set, the hook runner aborts that
59
- handler after the budget elapses and continues with the next one, instead of
60
- letting slow setup or recall work consume the caller's configured model
61
- timeout. Omit it to use the default observation/decision timeout that the
62
- hook runner applies generically.
63
-
64
- Operators can also set hook budgets without patching plugin code:
65
-
66
- ```json
67
- {
68
- "plugins": {
69
- "entries": {
70
- "my-plugin": {
71
- "hooks": {
72
- "timeoutMs": 30000,
73
- "timeouts": {
74
- "before_prompt_build": 90000,
75
- "agent_end": 60000
76
- }
77
- }
78
- }
79
- }
80
- }
81
- }
82
- ```
83
-
84
- `hooks.timeouts.<hookName>` overrides `hooks.timeoutMs`, which overrides the
85
- plugin-authored `api.on(..., { timeoutMs })` value. Each configured value must
86
- be a positive integer no greater than 600000 milliseconds. Prefer per-hook
87
- overrides for known slow hooks so one plugin does not get a longer budget
88
- everywhere.
89
-
90
- Each hook receives `event.context.pluginConfig`, the resolved config for the
91
- plugin that registered that handler. Use it for hook decisions that need
92
- current plugin options; FengMing injects it per handler without mutating the
93
- shared event object seen by other plugins.
94
-
95
- ## Hook catalog
96
-
97
- Hooks are grouped by the surface they extend. Names in **bold** accept a
98
- decision result (block, cancel, override, or require approval); all others are
99
- observation-only.
100
-
101
- **Agent turn**
102
-
103
- - `before_model_resolve` - override provider or model before session messages load
104
- - `agent_turn_prepare` - consume queued plugin turn injections and add same-turn context before prompt hooks
105
- - `before_prompt_build` - add dynamic context or system-prompt text before the model call
106
- - `before_agent_start` - compatibility-only combined phase; prefer the two hooks above
107
- - **`before_agent_run`** - inspect the final prompt and session messages before model submission and optionally block the run
108
- - **`before_agent_reply`** - short-circuit the model turn with a synthetic reply or silence
109
- - **`before_agent_finalize`** - inspect the natural final answer and request one more model pass
110
- - `agent_end` - observe final messages, success state, and run duration
111
- - `heartbeat_prompt_contribution` - add heartbeat-only context for background monitor and lifecycle plugins
112
-
113
- **Conversation observation**
114
-
115
- - `model_call_started` / `model_call_ended` - observe sanitized provider/model call metadata, timing, outcome, and bounded request-id hashes without prompt or response content
116
- - `llm_input` - observe provider input (system prompt, prompt, history)
117
- - `llm_output` - observe provider output, usage, and the resolved `contextTokenBudget` when available
118
-
119
- **Tools**
120
-
121
- - **`before_tool_call`** - rewrite tool params, block execution, or require approval
122
- - `after_tool_call` - observe tool results, errors, and duration
123
- - **`tool_result_persist`** - rewrite the assistant message produced from a tool result
124
- - **`before_message_write`** - inspect or block an in-progress message write (rare)
125
-
126
- **Messages and delivery**
127
-
128
- - **`inbound_claim`** - claim an inbound message before agent routing (synthetic replies)
129
- - `message_received` — observe inbound content, sender, thread, and metadata
130
- - **`message_sending`** — rewrite outbound content or cancel delivery
131
- - **`reply_payload_sending`** — mutate or cancel normalized reply payloads before delivery
132
- - `message_sent` — observe outbound delivery success or failure
133
- - **`before_dispatch`** - inspect or rewrite an outbound dispatch before channel handoff
134
- - **`reply_dispatch`** - participate in the final reply-dispatch pipeline
135
-
136
- **Sessions and compaction**
137
-
138
- - `session_start` / `session_end` - track session lifecycle boundaries. The event's `reason` is one of `new`, `reset`, `idle`, `daily`, `compaction`, `deleted`, `shutdown`, `restart`, or `unknown`. The `shutdown` and `restart` values fire from the gateway shutdown finalizer when the process is stopped or restarted while sessions are still active, so downstream plugins (such as memory or transcript stores) can finalize ghost rows that would otherwise be left in an open state across restarts. The finalizer is bounded so a slow plugin cannot block SIGTERM/SIGINT.
139
- - `before_compaction` / `after_compaction` - observe or annotate compaction cycles
140
- - `before_reset` - observe session-reset events (`/reset`, programmatic resets)
141
-
142
- **Subagents**
143
-
144
- - `subagent_spawning` / `subagent_delivery_target` / `subagent_spawned` / `subagent_ended` - coordinate subagent routing and completion delivery
145
-
146
- **Lifecycle**
147
-
148
- - `gateway_start` / `gateway_stop` - start or stop plugin-owned services with the Gateway
149
- - `deactivate` - deprecated compatibility alias for `gateway_stop`; use `gateway_stop` in new plugins
150
- - `cron_changed` - observe gateway-owned cron lifecycle changes (added, updated, removed, started, finished, scheduled)
151
- - **`before_install`** - inspect skill or plugin install scans and optionally block
152
-
153
- ## Debug runtime hooks
154
-
155
- Use `before_model_resolve` when a plugin needs to switch the provider or model
156
- for an agent turn. It runs before model resolution; `llm_output` only runs after
157
- a model attempt produces assistant output.
158
-
159
- For proof of the effective session model, inspect runtime registrations, then
160
- use `fengming sessions` or the Gateway session/status surfaces. When debugging
161
- provider payloads, start the Gateway with `--raw-stream` and
162
- `--raw-stream-path <path>`; those flags write raw model stream events to a jsonl
163
- file.
164
-
165
- ## Tool call policy
166
-
167
- `before_tool_call` receives:
168
-
169
- - `event.toolName`
170
- - `event.params`
171
- - optional `event.toolKind` and `event.toolInputKind`, host-authoritative
172
- discriminators for tools that intentionally share names; for example, outer
173
- code-mode `exec` calls use `toolKind: "code_mode_exec"` and
174
- include `toolInputKind: "javascript" | "typescript"` when the input language
175
- is known
176
- - optional `event.derivedPaths`, containing best-effort host-derived target path
177
- hints for well-known tool envelopes such as `apply_patch`; when present,
178
- these paths may be incomplete or may over-approximate what the tool will
179
- actually touch (for example, with malformed or partial inputs)
180
- - optional `event.runId`
181
- - optional `event.toolCallId`
182
- - context fields such as `ctx.agentId`, `ctx.sessionKey`, `ctx.sessionId`,
183
- `ctx.runId`, `ctx.jobId` (set on cron-driven runs), `ctx.toolKind`,
184
- `ctx.toolInputKind`, and diagnostic `ctx.trace`
185
-
186
- It can return:
187
-
188
- ```typescript
189
- type BeforeToolCallResult = {
190
- params?: Record<string, unknown>;
191
- block?: boolean;
192
- blockReason?: string;
193
- requireApproval?: {
194
- title: string;
195
- description: string;
196
- severity?: "info" | "warning" | "critical";
197
- timeoutMs?: number;
198
- timeoutBehavior?: "allow" | "deny";
199
- allowedDecisions?: Array<"allow-once" | "allow-always" | "deny">;
200
- pluginId?: string;
201
- onResolution?: (
202
- decision: "allow-once" | "allow-always" | "deny" | "timeout" | "cancelled",
203
- ) => Promise<void> | void;
204
- };
205
- };
206
- ```
207
-
208
- Hook guard behavior for typed lifecycle hooks:
209
-
210
- - `block: true` is terminal and skips lower-priority handlers.
211
- - `block: false` is treated as no decision.
212
- - `params` rewrites the tool parameters for execution.
213
- - `requireApproval` pauses the agent run and asks the user through plugin
214
- approvals. The `/approve` command can approve both exec and plugin approvals.
215
- In Codex app-server report-mode native `PreToolUse` relays, this is deferred
216
- to the matching app-server approval request; see [Codex harness runtime](/plugins/codex-harness-runtime#hook-boundaries).
217
- - A lower-priority `block: true` can still block after a higher-priority hook
218
- requested approval.
219
- - `onResolution` receives the resolved approval decision - `allow-once`,
220
- `allow-always`, `deny`, `timeout`, or `cancelled`.
221
-
222
- See [Plugin permission requests](/plugins/plugin-permission-requests) for
223
- approval routing, decision behavior, and when to use `requireApproval` instead
224
- of optional tools or exec approvals.
225
-
226
- Bundled plugins that need host-level policy can register trusted tool policies
227
- with `api.registerTrustedToolPolicy(...)`. These run before ordinary
228
- `before_tool_call` hooks and before external plugin decisions. Use them only
229
- for host-trusted gates such as workspace policy, budget enforcement, or
230
- reserved workflow safety. External plugins should use normal `before_tool_call`
231
- hooks.
232
-
233
- ### Tool result persistence
234
-
235
- Tool results can include structured `details` for UI rendering, diagnostics,
236
- media routing, or plugin-owned metadata. Treat `details` as runtime metadata,
237
- not prompt content:
238
-
239
- - FengMing strips `toolResult.details` before provider replay and compaction
240
- input so metadata does not become model context.
241
- - Persisted session entries keep only bounded `details`. Oversized details are
242
- replaced with a compact summary and `persistedDetailsTruncated: true`.
243
- - `tool_result_persist` and `before_message_write` run before the final
244
- persistence cap. Hooks should still keep returned `details` small and avoid
245
- placing prompt-relevant text only in `details`; put model-visible tool output
246
- in `content`.
247
-
248
- ## Prompt and model hooks
249
-
250
- Use the phase-specific hooks for new plugins:
251
-
252
- - `before_model_resolve`: receives only the current prompt and attachment
253
- metadata. Return `providerOverride` or `modelOverride`.
254
- - `agent_turn_prepare`: receives the current prompt, prepared session messages,
255
- and any exactly-once queued injections drained for this session. Return
256
- `prependContext` or `appendContext`.
257
- - `before_prompt_build`: receives the current prompt and session messages.
258
- Return `prependContext`, `appendContext`, `systemPrompt`,
259
- `prependSystemContext`, or `appendSystemContext`.
260
- - `heartbeat_prompt_contribution`: runs only for heartbeat turns and returns
261
- `prependContext` or `appendContext`. It is intended for background monitors
262
- that need to summarize current state without changing user-initiated turns.
263
-
264
- `before_agent_start` remains for compatibility. Prefer the explicit hooks above
265
- so your plugin does not depend on a legacy combined phase.
266
-
267
- `before_agent_run` runs after prompt construction and before any model input,
268
- including prompt-local image loading and `llm_input` observation. It receives
269
- the current user input as `prompt`, plus loaded session history in `messages`
270
- and the active system prompt. Return `{ outcome: "block", reason, message? }`
271
- to stop the run before the model can read the prompt. `reason` is internal;
272
- `message` is the user-facing replacement. The only supported outcomes are
273
- `pass` and `block`; unsupported decision shapes fail closed.
274
-
275
- When a run is blocked, FengMing stores only the replacement text in
276
- `message.content` plus non-sensitive block metadata such as the blocking plugin
277
- id and timestamp. The original user text is not retained in transcript or future
278
- context. Internal block reasons are treated as sensitive and excluded from
279
- transcript, history, broadcast, log, and diagnostics payloads. Observability
280
- should use sanitized fields such as blocker id, outcome, timestamp, or a safe
281
- category.
282
-
283
- `before_agent_start` and `agent_end` include `event.runId` when FengMing can
284
- identify the active run. The same value is also available on `ctx.runId`.
285
- Cron-driven runs also expose `ctx.jobId` (the originating cron job id) so
286
- plugin hooks can scope metrics, side effects, or state to a specific scheduled
287
- job.
288
-
289
- For channel-originated runs, `ctx.messageProvider` is the provider surface such
290
- as `discord` or `telegram`, while `ctx.channelId` is the conversation target
291
- identifier when FengMing can derive one from the session key or delivery
292
- metadata.
293
-
294
- `agent_end` is an observation hook. Gateway and persistent harness paths run it
295
- fire-and-forget after the turn, while short-lived one-shot CLI paths wait for the
296
- hook promise before process cleanup so trusted plugins can flush terminal
297
- observability or capture state. The hook runner applies a 30 second timeout so a
298
- wedged plugin or embedding endpoint cannot leave the hook promise pending
299
- forever. A timeout is logged and FengMing continues; it does not cancel
300
- plugin-owned network work unless the plugin also uses its own abort signal.
301
-
302
- Use `model_call_started` and `model_call_ended` for provider-call telemetry
303
- that should not receive raw prompts, history, responses, headers, request
304
- bodies, or provider request IDs. These hooks include stable metadata such as
305
- `runId`, `callId`, `provider`, `model`, optional `api`/`transport`, terminal
306
- `durationMs`/`outcome`, and `upstreamRequestIdHash` when FengMing can derive a
307
- bounded provider request-id hash. When the runtime has resolved context-window
308
- metadata, the hook event and context also include `contextTokenBudget`, the
309
- effective token budget after model/config/agent caps, plus
310
- `contextWindowSource` and `contextWindowReferenceTokens` when a lower cap was
311
- applied.
312
-
313
- `before_agent_finalize` runs only when a harness is about to accept a natural
314
- final assistant answer. It is not the `/stop` cancellation path and does not
315
- run when the user aborts a turn. Return `{ action: "revise", reason }` to ask
316
- the harness for one more model pass before finalization, `{ action:
317
- "finalize", reason? }` to force finalization, or omit a result to continue.
318
- Codex native `Stop` hooks are relayed into this hook as FengMing
319
- `before_agent_finalize` decisions.
320
-
321
- When returning `action: "revise"`, plugins can include `retry` metadata to make
322
- the extra model pass bounded and replay-safe:
323
-
324
- ```typescript
325
- type BeforeAgentFinalizeRetry = {
326
- instruction: string;
327
- idempotencyKey?: string;
328
- maxAttempts?: number;
329
- };
330
- ```
331
-
332
- `instruction` is appended to the revision reason sent to the harness.
333
- `idempotencyKey` lets the host count retries for the same plugin request across
334
- equivalent finalize decisions, and `maxAttempts` caps how many extra passes the
335
- host will allow before continuing with the natural final answer.
336
-
337
- Non-bundled plugins that need raw conversation hooks (`before_model_resolve`,
338
- `before_agent_reply`, `llm_input`, `llm_output`, `before_agent_finalize`,
339
- `agent_end`, or `before_agent_run`) must set:
340
-
341
- ```json
342
- {
343
- "plugins": {
344
- "entries": {
345
- "my-plugin": {
346
- "hooks": {
347
- "allowConversationAccess": true
348
- }
349
- }
350
- }
351
- }
352
- }
353
- ```
354
-
355
- Prompt-mutating hooks and durable next-turn injections can be disabled per plugin
356
- with `plugins.entries.<id>.hooks.allowPromptInjection=false`.
357
-
358
- ### Session extensions and next-turn injections
359
-
360
- Workflow plugins can persist small JSON-compatible session state with
361
- `api.registerSessionExtension(...)` and update it through the Gateway
362
- `sessions.pluginPatch` method. Session rows project registered extension state
363
- through `pluginExtensions`, letting Control UI and other clients render
364
- plugin-owned status without learning plugin internals.
365
-
366
- Use `api.enqueueNextTurnInjection(...)` when a plugin needs durable context to
367
- reach the next model turn exactly once. FengMing drains queued injections before
368
- prompt hooks, drops expired injections, and deduplicates by `idempotencyKey`
369
- per plugin. This is the right seam for approval resumes, policy summaries,
370
- background monitor deltas, and command continuations that should be visible to
371
- the model on the next turn but should not become permanent system prompt text.
372
-
373
- Cleanup semantics are part of the contract. Session extension cleanup and
374
- runtime lifecycle cleanup callbacks receive `reset`, `delete`, `disable`, or
375
- `restart`. The host removes the owning plugin's persistent session extension
376
- state and pending next-turn injections for reset/delete/disable; restart keeps
377
- durable session state while cleanup callbacks let plugins release scheduler
378
- jobs, run context, and other out-of-band resources for the old runtime
379
- generation.
380
-
381
- ## Message hooks
382
-
383
- Use message hooks for channel-level routing and delivery policy:
384
-
385
- - `message_received`: observe inbound content, sender, `threadId`, `messageId`,
386
- `senderId`, optional run/session correlation, and metadata.
387
- - `message_sending`: rewrite `content` or return `{ cancel: true }`.
388
- - `reply_payload_sending`: rewrite normalized `ReplyPayload` objects (including
389
- `presentation`, `delivery`, media refs, and text) or return `{ cancel: true }`.
390
- - `message_sent`: observe final success or failure.
391
-
392
- For audio-only TTS replies, `content` may contain the hidden spoken transcript
393
- even when the channel payload has no visible text/caption. Rewriting that
394
- `content` updates the hook-visible transcript only; it is not rendered as a
395
- media caption.
396
-
397
- Message hook contexts expose stable correlation fields when available:
398
- `ctx.sessionKey`, `ctx.runId`, `ctx.messageId`, `ctx.senderId`, `ctx.trace`,
399
- `ctx.traceId`, `ctx.spanId`, `ctx.parentSpanId`, and `ctx.callDepth`. Prefer
400
- these first-class fields before reading legacy metadata.
401
-
402
- Prefer typed `threadId` and `replyToId` fields before using channel-specific
403
- metadata.
404
-
405
- Decision rules:
406
-
407
- - `message_sending` with `cancel: true` is terminal.
408
- - `message_sending` with `cancel: false` is treated as no decision.
409
- - Rewritten `content` continues to lower-priority hooks unless a later hook
410
- cancels delivery.
411
- - `reply_payload_sending` runs after payload normalization and before channel
412
- delivery, including replies routed back to the originating channel. Handlers
413
- run sequentially and each handler sees the latest payload produced by
414
- higher-priority handlers.
415
- - `reply_payload_sending` payloads do not expose runtime trust markers such as
416
- `trustedLocalMedia`; plugins can edit payload shape but cannot grant local
417
- media trust.
418
- - `message_sending` can return `cancelReason` and bounded `metadata` with a
419
- cancellation. New message lifecycle APIs expose this as a suppressed delivery
420
- outcome with reason `cancelled_by_message_sending_hook`; legacy direct
421
- delivery keeps returning an empty result array for compatibility.
422
- - `message_sent` is observation-only. Handler failures are logged and do not
423
- change the delivery result.
424
-
425
- ## Install hooks
426
-
427
- `before_install` runs after the built-in scan for skill and plugin installs.
428
- Return additional findings or `{ block: true, blockReason }` to stop the
429
- install.
430
-
431
- `block: true` is terminal. `block: false` is treated as no decision.
432
-
433
- ## Gateway lifecycle
434
-
435
- Use `gateway_start` for plugin services that need Gateway-owned state. The
436
- context exposes `ctx.config`, `ctx.workspaceDir`, and `ctx.getCron?.()` for
437
- cron inspection and updates. Use `gateway_stop` to clean up long-running
438
- resources.
439
-
440
- Do not rely on the internal `gateway:startup` hook for plugin-owned runtime
441
- services.
442
-
443
- `cron_changed` fires for gateway-owned cron lifecycle events with a typed
444
- event payload covering `added`, `updated`, `removed`, `started`, `finished`,
445
- and `scheduled` reasons. The event carries a `PluginHookGatewayCronJob`
446
- snapshot (including `state.nextRunAtMs`, `state.lastRunStatus`, and
447
- `state.lastError` when present) plus a `PluginHookGatewayCronDeliveryStatus`
448
- of `not-requested` | `delivered` | `not-delivered` | `unknown`. Removed
449
- events still carry the deleted job snapshot so external schedulers can
450
- reconcile state. Use `ctx.getCron?.()` and `ctx.config` from the runtime
451
- context when syncing external wake schedulers, and keep FengMing as the
452
- source of truth for due checks and execution.
453
-
454
- ## Upcoming deprecations
455
-
456
- A few hook-adjacent surfaces are deprecated but still supported. Migrate
457
- before the next major release:
458
-
459
- - **Plaintext channel envelopes** in `inbound_claim` and `message_received`
460
- handlers. Read `BodyForAgent` and the structured user-context blocks
461
- instead of parsing flat envelope text. See
462
- [Plaintext channel envelopes → BodyForAgent](/plugins/sdk-migration#active-deprecations).
463
- - **`before_agent_start`** remains for compatibility. New plugins should use
464
- `before_model_resolve` and `before_prompt_build` instead of the combined
465
- phase.
466
- - **`deactivate`** remains as a deprecated cleanup compatibility alias until
467
- after 2026-08-16. New plugins should use `gateway_stop`.
468
- - **`onResolution` in `before_tool_call`** now uses the typed
469
- `PluginApprovalResolution` union (`allow-once` / `allow-always` / `deny` /
470
- `timeout` / `cancelled`) instead of a free-form `string`.
471
-
472
- For the full list - memory capability registration, provider thinking
473
- profile, external auth providers, provider discovery types, task runtime
474
- accessors, and the `command-auth` → `command-status` rename - see
475
- [Plugin SDK migration → Active deprecations](/plugins/sdk-migration#active-deprecations).
476
-
477
- ## Related
478
-
479
- - [Plugin SDK migration](/plugins/sdk-migration) - active deprecations and removal timeline
480
- - [Building plugins](/plugins/building-plugins)
481
- - [Plugin SDK overview](/plugins/sdk-overview)
482
- - [Plugin entry points](/plugins/sdk-entrypoints)
483
- - [Internal hooks](/automation/hooks)
484
- - [Plugin architecture internals](/plugins/architecture-internals)
@@ -1,80 +0,0 @@
1
- ---
2
- summary: "Test packaged plugin overrides with setup-time install flows"
3
- read_when:
4
- - Testing onboarding or setup flows against a locally packed plugin
5
- - Verifying a plugin package before publishing it
6
- - Replacing an automatic plugin install with a test artifact
7
- title: "Plugin install overrides"
8
- sidebarTitle: "Install overrides"
9
- ---
10
-
11
- Plugin install overrides let maintainers test setup-time plugin installs against
12
- a specific npm package or local npm-pack tarball. They are for E2E and package
13
- validation only. Normal users should install plugins with
14
- [`fengming plugins install`](/cli/plugins).
15
-
16
- <Warning>
17
- Overrides execute plugin code from the source you provide. Use them only in an
18
- isolated state directory or disposable test machine.
19
- </Warning>
20
-
21
- ## Environment
22
-
23
- Overrides are disabled unless both variables are set:
24
-
25
- ```bash
26
- export FENGMING_ALLOW_PLUGIN_INSTALL_OVERRIDES=1
27
- export FENGMING_PLUGIN_INSTALL_OVERRIDES='{
28
- "codex": "npm-pack:/tmp/fengming-codex-2026.5.8.tgz",
29
- "fengming-web-search": "npm:@fengming/web-search@2026.5.8"
30
- }'
31
- ```
32
-
33
- The override map is JSON keyed by plugin id. Values support:
34
-
35
- - `npm:<registry-spec>` for registry packages and exact versions or tags
36
- - `npm-pack:<path.tgz>` for local tarballs produced by `npm pack`
37
-
38
- Relative `npm-pack:` paths resolve from the current working directory.
39
-
40
- ## Behavior
41
-
42
- When a setup-time flow asks to install a plugin whose id appears in the map,
43
- FengMing uses the override source instead of the catalog, bundled, or default
44
- npm source. This applies to onboarding and other flows that use the shared
45
- setup-time plugin installer.
46
-
47
- Overrides still enforce the expected plugin id. A tarball mapped to `codex`
48
- must install a plugin whose manifest id is `codex`.
49
-
50
- Overrides do not inherit official trusted-source status. Even when the catalog
51
- entry normally represents an FengMing-owned package, an override is treated as
52
- operator-supplied test input.
53
-
54
- Workspace `.env` files cannot enable install overrides. Set these variables in
55
- the trusted shell, CI job, or remote test command that launches FengMing.
56
-
57
- ## Package E2E
58
-
59
- Use an isolated state directory so package installs and install records do not
60
- touch your normal FengMing state:
61
-
62
- ```bash
63
- npm pack extensions/codex --pack-destination /tmp
64
-
65
- FENGMING_STATE_DIR="$(mktemp -d)" \
66
- FENGMING_ALLOW_PLUGIN_INSTALL_OVERRIDES=1 \
67
- FENGMING_PLUGIN_INSTALL_OVERRIDES='{"codex":"npm-pack:/tmp/fengming-codex-2026.5.8.tgz"}' \
68
- pnpm fengming onboard --mode local
69
- ```
70
-
71
- Verify the installed package under the state directory:
72
-
73
- ```bash
74
- find "$FENGMING_STATE_DIR/npm/projects" -path '*/node_modules/@fengming/codex/package.json' -print
75
- grep -R '"@fengming/codex"' "$FENGMING_STATE_DIR/npm/projects"/*/package-lock.json
76
- ```
77
-
78
- For live provider E2E, source the real API key from a trusted shell or CI secret
79
- before launching the test command. Do not print keys; report only the source and
80
- whether the key was present.