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,214 +0,0 @@
1
- ---
2
- summary: "Reference: provider-specific transcript sanitization and repair rules"
3
- read_when:
4
- - You are debugging provider request rejections tied to transcript shape
5
- - You are changing transcript sanitization or tool-call repair logic
6
- - You are investigating tool-call id mismatches across providers
7
- title: "Transcript hygiene"
8
- ---
9
-
10
- FengMing applies **provider-specific fixes** to transcripts before a run (building model context). Most of these are **in-memory** adjustments used to satisfy strict provider requirements. A separate session-file repair pass may also rewrite stored JSONL before the session is loaded, but only for malformed lines or persisted turns that are invalid durable records. Delivered assistant replies are preserved on disk; provider-specific assistant-prefill stripping happens only while constructing outbound payloads. When a repair occurs, the original file is written to a transient `*.bak-<pid>-<ts>` sibling before the atomic replace and removed once the replace succeeds; the backup is only retained if cleanup itself fails (in which case the path is reported back).
11
-
12
- Scope includes:
13
-
14
- - Runtime-only prompt context staying out of user-visible transcript turns
15
- - Tool call id sanitization
16
- - Tool call input validation
17
- - Tool result pairing repair
18
- - Turn validation / ordering
19
- - Thought signature cleanup
20
- - Thinking signature cleanup
21
- - Image payload sanitization
22
- - Blank text-block cleanup before provider replay
23
- - User-input provenance tagging (for inter-session routed prompts)
24
- - Empty assistant error-turn repair for Bedrock Converse replay
25
-
26
- If you need transcript storage details, see:
27
-
28
- - [Session management deep dive](/reference/session-management-compaction)
29
-
30
- ---
31
-
32
- ## Global rule: runtime context is not user transcript
33
-
34
- Runtime/system context can be added to the model prompt for a turn, but it is
35
- not end-user-authored content. FengMing keeps a separate transcript-facing
36
- prompt body for Gateway replies, queued followups, ACP, CLI, and embedded FengMing
37
- runs. Stored visible user turns use that transcript body instead of the
38
- runtime-enriched prompt.
39
-
40
- For legacy sessions that already persisted runtime wrappers, Gateway history
41
- surfaces apply a display projection before returning messages to WebChat,
42
- TUI, REST, or SSE clients.
43
-
44
- ---
45
-
46
- ## Where this runs
47
-
48
- All transcript hygiene is centralized in the embedded runner:
49
-
50
- - Policy selection: `src/agents/transcript-policy.ts`
51
- - Sanitization/repair application: `sanitizeSessionHistory` in `src/agents/embedded-agent-runner/replay-history.ts`
52
-
53
- The policy uses `provider`, `modelApi`, and `modelId` to decide what to apply.
54
-
55
- Separate from transcript hygiene, session files are repaired (if needed) before load:
56
-
57
- - `repairSessionFileIfNeeded` in `src/agents/session-file-repair.ts`
58
- - Called from `run/attempt.ts` and `compact.ts` (embedded runner)
59
-
60
- ---
61
-
62
- ## Global rule: image sanitization
63
-
64
- Image payloads are always sanitized to prevent provider-side rejection due to size
65
- limits (downscale/recompress oversized base64 images).
66
-
67
- This also helps control image-driven token pressure for vision-capable models.
68
- Lower max dimensions generally reduce token usage; higher dimensions preserve detail.
69
-
70
- Implementation:
71
-
72
- - `sanitizeSessionMessagesImages` in `src/agents/embedded-agent-helpers/images.ts`
73
- - `sanitizeContentBlocksImages` in `src/agents/tool-images.ts`
74
- - Max image side is configurable via `agents.defaults.imageMaxDimensionPx` (default: `1200`).
75
- - Blank text blocks are removed while this pass walks replay content. Assistant
76
- turns that become empty are dropped from the replay copy; user and tool-result
77
- turns that become empty receive a non-empty omitted-content placeholder.
78
-
79
- ---
80
-
81
- ## Global rule: malformed tool calls
82
-
83
- Assistant tool-call blocks that are missing both `input` and `arguments` are dropped
84
- before model context is built. This prevents provider rejections from partially
85
- persisted tool calls (for example, after a rate limit failure).
86
-
87
- Implementation:
88
-
89
- - `sanitizeToolCallInputs` in `src/agents/session-transcript-repair.ts`
90
- - Applied in `sanitizeSessionHistory` in `src/agents/embedded-agent-runner/replay-history.ts`
91
-
92
- ---
93
-
94
- ## Global rule: inter-session input provenance
95
-
96
- When an agent sends a prompt into another session via `sessions_send` (including
97
- agent-to-agent reply/announce steps), FengMing persists the created user turn with:
98
-
99
- - `message.provenance.kind = "inter_session"`
100
-
101
- FengMing also prepends a same-turn `[Inter-session message ... isUser=false]`
102
- marker before the routed prompt text so the active model call can distinguish
103
- foreign session output from external end-user instructions. This marker includes
104
- the source session, channel, and tool when available. The transcript still uses
105
- `role: "user"` for provider compatibility, but the visible text and provenance
106
- metadata both mark the turn as inter-session data.
107
-
108
- During context rebuild, FengMing applies the same marker to older persisted
109
- inter-session user turns that only have provenance metadata.
110
-
111
- ---
112
-
113
- ## Provider matrix (current behavior)
114
-
115
- **OpenAI / OpenAI Codex**
116
-
117
- - Image sanitization only.
118
- - Drop orphaned reasoning signatures (standalone reasoning items without a following content block) for OpenAI Responses/Codex transcripts, and drop replayable OpenAI reasoning after a model route switch.
119
- - Preserve replayable OpenAI Responses reasoning item payloads, including encrypted empty-summary items, so manual/WebSocket replay keeps required `rs_*` state paired with assistant output items.
120
- - Native ChatGPT Codex Responses follows Codex wire parity by replaying prior Responses reasoning/message/function payloads without prior item IDs while preserving session `prompt_cache_key`.
121
- - OpenAI Responses-family replay preserves canonical `call_*|fc_*` same-model reasoning pairs, but deterministically normalizes malformed or overlong `call_id` / function-call item ids before pi-ai payload conversion.
122
- - Tool result pairing repair may move real matched outputs and synthesize Codex-style `aborted` outputs for missing tool calls.
123
- - No turn validation or reordering.
124
- - Missing OpenAI Responses-family tool outputs are synthesized as `aborted` to match Codex replay normalization.
125
- - No thought signature stripping.
126
-
127
- **OpenAI-compatible Chat Completions**
128
-
129
- - Historical assistant thinking/reasoning blocks are stripped before replay so
130
- local and proxy-style OpenAI-compatible servers do not receive prior-turn
131
- reasoning fields such as `reasoning` or `reasoning_content`.
132
- - Current same-turn tool-call continuations keep the assistant reasoning block
133
- attached to the tool call until the tool result has been replayed.
134
- - Provider-owned exceptions can opt out when their wire protocol requires
135
- replayed reasoning metadata.
136
-
137
- **Google (Generative AI / Gemini CLI / Antigravity)**
138
-
139
- - Tool call id sanitization: strict alphanumeric.
140
- - Tool result pairing repair and synthetic tool results.
141
- - Turn validation (Gemini-style turn alternation).
142
- - Google turn ordering fixup (prepend a tiny user bootstrap if history starts with assistant).
143
- - Antigravity Claude: normalize thinking signatures; drop unsigned thinking blocks.
144
-
145
- **Anthropic / Minimax (Anthropic-compatible)**
146
-
147
- - Tool result pairing repair and synthetic tool results.
148
- - Turn validation (merge consecutive user turns to satisfy strict alternation).
149
- - Trailing assistant prefill turns are stripped from outgoing Anthropic Messages
150
- payloads when thinking is enabled, including Cloudflare AI Gateway routes.
151
- - Thinking blocks with missing, empty, or blank replay signatures are stripped
152
- before provider conversion. If that empties an assistant turn, FengMing keeps
153
- turn shape with non-empty omitted-reasoning text.
154
- - Older thinking-only assistant turns that must be stripped are replaced with
155
- non-empty omitted-reasoning text so provider adapters do not drop the replay
156
- turn.
157
-
158
- **Amazon Bedrock (Converse API)**
159
-
160
- - Empty assistant stream-error turns are repaired to a non-empty fallback text block
161
- before replay. Bedrock Converse rejects assistant messages with `content: []`, so
162
- persisted assistant turns with `stopReason: "error"` and empty content are also
163
- repaired on disk before load.
164
- - Assistant stream-error turns that contain only blank text blocks are dropped
165
- from the in-memory replay copy instead of replaying an invalid blank block.
166
- - Claude thinking blocks with missing, empty, or blank replay signatures are
167
- stripped before Converse replay. If that empties an assistant turn, FengMing
168
- keeps turn shape with non-empty omitted-reasoning text.
169
- - Older thinking-only assistant turns that must be stripped are replaced with
170
- non-empty omitted-reasoning text so the Converse replay keeps strict turn shape.
171
- - Replay filters FengMing delivery-mirror and gateway-injected assistant turns.
172
- - Image sanitization applies through the global rule.
173
-
174
- **Mistral (including model-id based detection)**
175
-
176
- - Tool call id sanitization: strict9 (alphanumeric length 9).
177
-
178
- **OpenRouter Gemini**
179
-
180
- - Thought signature cleanup: strip non-base64 `thought_signature` values (keep base64).
181
-
182
- **OpenRouter Anthropic**
183
-
184
- - Trailing assistant prefill turns are stripped from verified OpenRouter
185
- OpenAI-compatible Anthropic model payloads when reasoning is enabled, matching
186
- direct Anthropic and Cloudflare Anthropic replay behavior.
187
-
188
- **Everything else**
189
-
190
- - Image sanitization only.
191
-
192
- ---
193
-
194
- ## Historical behavior (pre-2026.1.22)
195
-
196
- Before the 2026.1.22 release, FengMing applied multiple layers of transcript hygiene:
197
-
198
- - A **transcript-sanitize extension** ran on every context build and could:
199
- - Repair tool use/result pairing.
200
- - Sanitize tool call ids (including a non-strict mode that preserved `_`/`-`).
201
- - The runner also performed provider-specific sanitization, which duplicated work.
202
- - Additional mutations occurred outside the provider policy, including:
203
- - Stripping `<final>` tags from assistant text before persistence.
204
- - Dropping empty assistant error turns.
205
- - Trimming assistant content after tool calls.
206
-
207
- This complexity caused cross-provider regressions (notably `openai-responses`
208
- `call_id|fc_id` pairing). The 2026.1.22 cleanup removed the extension, centralized
209
- logic in the runner, and made OpenAI **no-touch** beyond image sanitization.
210
-
211
- ## Related
212
-
213
- - [Session management](/concepts/session)
214
- - [Session pruning](/concepts/session-pruning)
@@ -1,252 +0,0 @@
1
- ---
2
- summary: "Full reference for CLI onboarding: every step, flag, and config field"
3
- read_when:
4
- - Looking up a specific onboarding step or flag
5
- - Automating onboarding with non-interactive mode
6
- - Debugging onboarding behavior
7
- title: "Onboarding reference"
8
- sidebarTitle: "Onboarding Reference"
9
- ---
10
-
11
- This is the full reference for `fengming onboard`.
12
- For a high-level overview, see [Onboarding (CLI)](/start/wizard).
13
-
14
- ## Flow details (local mode)
15
-
16
- <Steps>
17
- <Step title="Existing config detection">
18
- - If `~/.fengming/fengming.json` exists, choose **Keep current values**, **Review and update**, or **Reset before setup**.
19
- - Re-running onboarding does **not** wipe anything unless you explicitly choose **Reset**
20
- (or pass `--reset`).
21
- - CLI `--reset` defaults to `config+creds+sessions`; use `--reset-scope full`
22
- to also remove workspace.
23
- - If the config is invalid or contains legacy keys, the wizard stops and asks
24
- you to run `fengming doctor` before continuing.
25
- - Reset uses `trash` (never `rm`) and offers scopes:
26
- - Config only
27
- - Config + credentials + sessions
28
- - Full reset (also removes workspace)
29
-
30
- </Step>
31
- <Step title="Model/Auth">
32
- - **Anthropic API key**: uses `ANTHROPIC_API_KEY` if present or prompts for a key, then saves it for daemon use.
33
- - **Anthropic API key**: preferred Anthropic assistant choice in onboarding/configure.
34
- - **Anthropic setup-token**: still available in onboarding/configure, though FengMing now prefers Claude CLI reuse when available.
35
- - **OpenAI Code (Codex) subscription (OAuth)**: browser flow; paste the `code#state`.
36
- - Sets `agents.defaults.model` to `openai/gpt-5.5` through the Codex runtime when model is unset or already OpenAI-family.
37
- - **OpenAI Code (Codex) subscription (device pairing)**: browser pairing flow with a short-lived device code.
38
- - Sets `agents.defaults.model` to `openai/gpt-5.5` through the Codex runtime when model is unset or already OpenAI-family.
39
- - **OpenAI API key**: uses `OPENAI_API_KEY` if present or prompts for a key, then stores it in auth profiles.
40
- - Sets `agents.defaults.model` to `openai/gpt-5.5` when model is unset, `openai/*`, or `openai-codex/*`.
41
- - **xAI (Grok) OAuth / API key**: signs in with xAI OAuth when chosen, or prompts for `XAI_API_KEY` on the API-key path, and configures xAI as a model provider.
42
- - **OpenCode**: prompts for `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`, get it at https://opencode.ai/auth) and lets you pick the Zen or Go catalog.
43
- - **Ollama**: offers **Cloud + Local**, **Cloud only**, or **Local only** first. `Cloud only` prompts for `OLLAMA_API_KEY` and uses `https://ollama.com`; the host-backed modes prompt for the Ollama base URL, discover available models, and auto-pull the selected local model when needed; `Cloud + Local` also checks whether that Ollama host is signed in for cloud access.
44
- - More detail: [Ollama](/providers/ollama)
45
- - **API key**: stores the key for you.
46
- - **Vercel AI Gateway (multi-model proxy)**: prompts for `AI_GATEWAY_API_KEY`.
47
- - More detail: [Vercel AI Gateway](/providers/vercel-ai-gateway)
48
- - **Cloudflare AI Gateway**: prompts for Account ID, Gateway ID, and `CLOUDFLARE_AI_GATEWAY_API_KEY`.
49
- - More detail: [Cloudflare AI Gateway](/providers/cloudflare-ai-gateway)
50
- - **MiniMax**: config is auto-written; hosted default is `MiniMax-M2.7`.
51
- API-key setup uses `minimax/...`, and OAuth setup uses
52
- `minimax-portal/...`.
53
- - More detail: [MiniMax](/providers/minimax)
54
- - **StepFun**: config is auto-written for StepFun standard or Step Plan on China or global endpoints.
55
- - Standard currently includes `step-3.5-flash`, and Step Plan also includes `step-3.5-flash-2603`.
56
- - More detail: [StepFun](/providers/stepfun)
57
- - **Synthetic (Anthropic-compatible)**: prompts for `SYNTHETIC_API_KEY`.
58
- - More detail: [Synthetic](/providers/synthetic)
59
- - **Moonshot (Kimi K2)**: config is auto-written.
60
- - **Kimi Coding**: config is auto-written.
61
- - More detail: [Moonshot AI (Kimi + Kimi Coding)](/providers/moonshot)
62
- - **Skip**: no auth configured yet.
63
- - Pick a default model from detected options (or enter provider/model manually). For best quality and lower prompt-injection risk, choose the strongest latest-generation model available in your provider stack.
64
- - Onboarding runs a model check and warns if the configured model is unknown or missing auth.
65
- - API key storage mode defaults to plaintext auth-profile values. Use `--secret-input-mode ref` to store env-backed refs instead (for example `keyRef: { source: "env", provider: "default", id: "OPENAI_API_KEY" }`).
66
- - Auth profiles live in `~/.fengming/agents/<agentId>/agent/auth-profiles.json` (API keys + OAuth). `~/.fengming/credentials/oauth.json` is legacy import-only.
67
- - More detail: [/concepts/oauth](/concepts/oauth)
68
- <Note>
69
- Headless/server tip: complete OAuth on a machine with a browser, then copy
70
- that agent's `auth-profiles.json` (for example
71
- `~/.fengming/agents/<agentId>/agent/auth-profiles.json`, or the matching
72
- `$FENGMING_STATE_DIR/...` path) to the gateway host. `credentials/oauth.json`
73
- is only a legacy import source.
74
- </Note>
75
- </Step>
76
- <Step title="Workspace">
77
- - Default `~/.fengming/workspace` (configurable).
78
- - Seeds the workspace files needed for the agent bootstrap ritual.
79
- - Full workspace layout + backup guide: [Agent workspace](/concepts/agent-workspace)
80
-
81
- </Step>
82
- <Step title="Gateway">
83
- - Port, bind, auth mode, tailscale exposure.
84
- - Auth recommendation: keep **Token** even for loopback so local WS clients must authenticate.
85
- - In token mode, interactive setup offers:
86
- - **Generate/store plaintext token** (default)
87
- - **Use SecretRef** (opt-in)
88
- - Quickstart reuses existing `gateway.auth.token` SecretRefs across `env`, `file`, and `exec` providers for onboarding probe/dashboard bootstrap.
89
- - If that SecretRef is configured but cannot be resolved, onboarding fails early with a clear fix message instead of silently degrading runtime auth.
90
- - In password mode, interactive setup also supports plaintext or SecretRef storage.
91
- - Non-interactive token SecretRef path: `--gateway-token-ref-env <ENV_VAR>`.
92
- - Requires a non-empty env var in the onboarding process environment.
93
- - Cannot be combined with `--gateway-token`.
94
- - Disable auth only if you fully trust every local process.
95
- - Non-loopback binds still require auth.
96
-
97
- </Step>
98
- <Step title="Channels">
99
- - [WhatsApp](/channels/whatsapp): optional QR login.
100
- - [Telegram](/channels/telegram): bot token.
101
- - [Discord](/channels/discord): bot token.
102
- - [Google Chat](/channels/googlechat): service account JSON + webhook audience.
103
- - [Mattermost](/channels/mattermost) (plugin): bot token + base URL.
104
- - [Signal](/channels/signal): optional `signal-cli` install + account config.
105
- - [iMessage](/channels/imessage): `imsg` CLI path + Messages DB access; use an SSH wrapper when the Gateway runs off-Mac.
106
- - DM security: default is pairing. First DM sends a code; approve via `fengming pairing approve <channel> <code>` or use allowlists.
107
-
108
- </Step>
109
- <Step title="Web search">
110
- - Pick a supported provider such as Brave, DuckDuckGo, Exa, Firecrawl, Gemini, Grok, Kimi, MiniMax Search, Ollama Web Search, Perplexity, SearXNG, or Tavily (or skip).
111
- - API-backed providers can use env vars or existing config for quick setup; key-free providers use their provider-specific prerequisites instead.
112
- - Skip with `--skip-search`.
113
- - Configure later: `fengming configure --section web`.
114
-
115
- </Step>
116
- <Step title="Daemon install">
117
- - macOS: LaunchAgent
118
- - Requires a logged-in user session; for headless, use a custom LaunchDaemon (not shipped).
119
- - Linux (and Windows via WSL2): systemd user unit
120
- - Onboarding attempts to enable lingering via `loginctl enable-linger <user>` so the Gateway stays up after logout.
121
- - May prompt for sudo (writes `/var/lib/systemd/linger`); it tries without sudo first.
122
- - **Runtime selection:** Node (recommended; required for WhatsApp/Telegram). Bun is **not recommended**.
123
- - If token auth requires a token and `gateway.auth.token` is SecretRef-managed, daemon install validates it but does not persist resolved plaintext token values into supervisor service environment metadata.
124
- - If token auth requires a token and the configured token SecretRef is unresolved, daemon install is blocked with actionable guidance.
125
- - If both `gateway.auth.token` and `gateway.auth.password` are configured and `gateway.auth.mode` is unset, daemon install is blocked until mode is set explicitly.
126
-
127
- </Step>
128
- <Step title="Health check">
129
- - Starts the Gateway (if needed) and runs `fengming health`.
130
- - Tip: `fengming status --deep` adds the live gateway health probe to status output, including channel probes when supported (requires a reachable gateway).
131
-
132
- </Step>
133
- <Step title="Skills (recommended)">
134
- - Reads the available skills and checks requirements.
135
- - Lets you choose a node manager: **npm / pnpm** (bun not recommended).
136
- - Installs optional dependencies (some use Homebrew on macOS).
137
-
138
- </Step>
139
- <Step title="Finish">
140
- - Summary + next steps, including the **How do you want to hatch your agent?** prompt for Terminal, Browser, or later.
141
-
142
- </Step>
143
- </Steps>
144
-
145
- <Note>
146
- If no GUI is detected, onboarding prints SSH port-forward instructions for the Control UI instead of opening a browser.
147
- If the Control UI assets are missing, onboarding attempts to build them; fallback is `pnpm ui:build` (auto-installs UI deps).
148
- </Note>
149
-
150
- ## Non-interactive mode
151
-
152
- Use `--non-interactive` to automate or script onboarding:
153
-
154
- ```bash
155
- fengming onboard --non-interactive \
156
- --mode local \
157
- --auth-choice apiKey \
158
- --anthropic-api-key "$ANTHROPIC_API_KEY" \
159
- --gateway-port 18789 \
160
- --gateway-bind loopback \
161
- --install-daemon \
162
- --daemon-runtime node \
163
- --skip-skills
164
- ```
165
-
166
- Add `--json` for a machine-readable summary.
167
-
168
- Gateway token SecretRef in non-interactive mode:
169
-
170
- ```bash
171
- export FENGMING_GATEWAY_TOKEN="your-token"
172
- fengming onboard --non-interactive \
173
- --mode local \
174
- --auth-choice skip \
175
- --gateway-auth token \
176
- --gateway-token-ref-env FENGMING_GATEWAY_TOKEN
177
- ```
178
-
179
- `--gateway-token` and `--gateway-token-ref-env` are mutually exclusive.
180
-
181
- <Note>
182
- `--json` does **not** imply non-interactive mode. Use `--non-interactive` (and `--workspace`) for scripts.
183
- </Note>
184
-
185
- Provider-specific command examples live in [CLI Automation](/start/wizard-cli-automation#provider-specific-examples).
186
- Use this reference page for flag semantics and step ordering.
187
-
188
- ### Add agent (non-interactive)
189
-
190
- ```bash
191
- fengming agents add work \
192
- --workspace ~/.fengming/workspace-work \
193
- --model openai/gpt-5.5 \
194
- --bind whatsapp:biz \
195
- --non-interactive \
196
- --json
197
- ```
198
-
199
- ## Gateway wizard RPC
200
-
201
- The Gateway exposes the onboarding flow over RPC (`wizard.start`, `wizard.next`, `wizard.cancel`, `wizard.status`).
202
- Clients (macOS app, Control UI) can render steps without re-implementing onboarding logic.
203
-
204
- ## Signal setup (signal-cli)
205
-
206
- Onboarding can install `signal-cli` from GitHub releases:
207
-
208
- - Downloads the appropriate release asset.
209
- - Stores it under `~/.fengming/tools/signal-cli/<version>/`.
210
- - Writes `channels.signal.cliPath` to your config.
211
-
212
- Notes:
213
-
214
- - JVM builds require **Java 21**.
215
- - Native builds are used when available.
216
- - Windows uses WSL2; signal-cli install follows the Linux flow inside WSL.
217
-
218
- ## What the wizard writes
219
-
220
- Typical fields in `~/.fengming/fengming.json`:
221
-
222
- - `agents.defaults.workspace`
223
- - `agents.defaults.model` / `models.providers` (if Minimax chosen)
224
- - `tools.profile` (local onboarding defaults to `"coding"` when unset; existing explicit values are preserved)
225
- - `gateway.*` (mode, bind, auth, tailscale)
226
- - `session.dmScope` (behavior details: [CLI Setup Reference](/start/wizard-cli-reference#outputs-and-internals))
227
- - `channels.telegram.botToken`, `channels.discord.token`, `channels.matrix.*`, `channels.signal.*`, `channels.imessage.*`
228
- - Channel allowlists (Slack/Discord/Matrix/Microsoft Teams) when you opt in during the prompts (names resolve to IDs when possible).
229
- - `skills.install.nodeManager`
230
- - `setup --node-manager` accepts `npm`, `pnpm`, or `bun`.
231
- - Manual config can still use `yarn` by setting `skills.install.nodeManager` directly.
232
- - `wizard.lastRunAt`
233
- - `wizard.lastRunVersion`
234
- - `wizard.lastRunCommit`
235
- - `wizard.lastRunCommand`
236
- - `wizard.lastRunMode`
237
-
238
- `fengming agents add` writes `agents.list[]` and optional `bindings`.
239
-
240
- WhatsApp credentials go under `~/.fengming/credentials/whatsapp/<accountId>/`.
241
- Sessions are stored under `~/.fengming/agents/<agentId>/sessions/`.
242
-
243
- Some channels are delivered as plugins. When you pick one during setup, onboarding
244
- will prompt to install it (npm or a local path) before it can be configured.
245
-
246
- ## Related docs
247
-
248
- - Onboarding overview: [Onboarding (CLI)](/start/wizard)
249
- - macOS app onboarding: [Onboarding](/start/onboarding)
250
- - Config reference: [Gateway configuration](/gateway/configuration)
251
- - Providers: [WhatsApp](/channels/whatsapp), [Telegram](/channels/telegram), [Discord](/channels/discord), [Google Chat](/channels/googlechat), [Signal](/channels/signal), [iMessage](/channels/imessage)
252
- - Skills: [Skills](/tools/skills), [Skills config](/tools/skills-config)
@@ -1,101 +0,0 @@
1
- ---
2
- summary: "How to contribute to the FengMing threat model"
3
- title: "Contributing to the threat model"
4
- read_when:
5
- - You want to contribute security findings or threat scenarios
6
- - Reviewing or updating the threat model
7
- ---
8
-
9
- Thanks for helping make FengMing more secure. This threat model is a living document and we welcome contributions from anyone - you don't need to be a security expert.
10
-
11
- ## Ways to contribute
12
-
13
- ### Add a threat
14
-
15
- Spotted an attack vector or risk we haven't covered? Open an issue on [fengming/trust](https://github.com/fengming/trust/issues) and describe it in your own words. You don't need to know any frameworks or fill in every field - just describe the scenario.
16
-
17
- **Helpful to include (but not required):**
18
-
19
- - The attack scenario and how it could be exploited
20
- - Which parts of FengMing are affected (CLI, gateway, channels, ClawHub, MCP servers, etc.)
21
- - How severe you think it is (low / medium / high / critical)
22
- - Any links to related research, CVEs, or real-world examples
23
-
24
- We'll handle the ATLAS mapping, threat IDs, and risk assessment during review. If you want to include those details, great - but it's not expected.
25
-
26
- > **This is for adding to the threat model, not reporting live vulnerabilities.** If you've found an exploitable vulnerability, see our [Trust page](https://trust.fengming.ai) for responsible disclosure instructions.
27
-
28
- ### Suggest a mitigation
29
-
30
- Have an idea for how to address an existing threat? Open an issue or PR referencing the threat. Useful mitigations are specific and actionable - for example, "per-sender rate limiting of 10 messages/minute at the gateway" is better than "implement rate limiting."
31
-
32
- ### Propose an attack chain
33
-
34
- Attack chains show how multiple threats combine into a realistic attack scenario. If you see a dangerous combination, describe the steps and how an attacker would chain them together. A short narrative of how the attack unfolds in practice is more valuable than a formal template.
35
-
36
- ### Fix or improve existing content
37
-
38
- Typos, clarifications, outdated info, better examples - PRs welcome, no issue needed.
39
-
40
- ## What we use
41
-
42
- ### MITRE ATLAS framework
43
-
44
- This threat model is built on [MITRE ATLAS](https://atlas.mitre.org/) (Adversarial Threat Landscape for AI Systems), a framework designed specifically for AI/ML threats like prompt injection, tool misuse, and agent exploitation. You don't need to know ATLAS to contribute - we map submissions to the framework during review.
45
-
46
- ### Threat ids
47
-
48
- Each threat gets an ID like `T-EXEC-003`. The categories are:
49
-
50
- | Code | Category |
51
- | ------- | ------------------------------------------ |
52
- | RECON | Reconnaissance - information gathering |
53
- | ACCESS | Initial access - gaining entry |
54
- | EXEC | Execution - running malicious actions |
55
- | PERSIST | Persistence - maintaining access |
56
- | EVADE | Defense evasion - avoiding detection |
57
- | DISC | Discovery - learning about the environment |
58
- | EXFIL | Exfiltration - stealing data |
59
- | IMPACT | Impact - damage or disruption |
60
-
61
- IDs are assigned by maintainers during review. You don't need to pick one.
62
-
63
- ### Risk levels
64
-
65
- | Level | Meaning |
66
- | ------------ | ----------------------------------------------------------------- |
67
- | **Critical** | Full system compromise, or high likelihood + critical impact |
68
- | **High** | Significant damage likely, or medium likelihood + critical impact |
69
- | **Medium** | Moderate risk, or low likelihood + high impact |
70
- | **Low** | Unlikely and limited impact |
71
-
72
- If you're unsure about the risk level, just describe the impact and we'll assess it.
73
-
74
- ## Review process
75
-
76
- 1. **Triage** - We review new submissions within 48 hours
77
- 2. **Assessment** - We verify feasibility, assign ATLAS mapping and threat ID, validate risk level
78
- 3. **Documentation** - We ensure everything is formatted and complete
79
- 4. **Merge** - Added to the threat model and visualization
80
-
81
- ## Resources
82
-
83
- - [ATLAS Website](https://atlas.mitre.org/)
84
- - [ATLAS Techniques](https://atlas.mitre.org/techniques/)
85
- - [ATLAS Case Studies](https://atlas.mitre.org/studies/)
86
- - [FengMing Threat Model](/security/THREAT-MODEL-ATLAS)
87
-
88
- ## Contact
89
-
90
- - **Security vulnerabilities:** See our [Trust page](https://trust.fengming.ai) for reporting instructions
91
- - **Threat model questions:** Open an issue on [fengming/trust](https://github.com/fengming/trust/issues)
92
- - **General chat:** Discord #security channel
93
-
94
- ## Recognition
95
-
96
- Contributors to the threat model are recognized in the threat model acknowledgments, release notes, and the FengMing security hall of fame for significant contributions.
97
-
98
- ## Related
99
-
100
- - [Threat model](/security/THREAT-MODEL-ATLAS)
101
- - [Formal verification](/security/formal-verification)