fengming 0.3.10 → 0.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (871) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/cli/run-main.js +3 -3
  4. package/dist/cli-startup-metadata.json +8 -8
  5. package/dist/{command-registry-DMB-HKIk.js → command-registry-BHIBvpgR.js} +2 -2
  6. package/dist/{command-registry-C5ooX6PF.js → command-registry-BT5icv-c.js} +2 -2
  7. package/dist/{command-registry-core-B2w_XWvn.js → command-registry-core-C-a3GaYV.js} +2 -2
  8. package/dist/{completion-cli-Bf4mEw2W.js → completion-cli-BUfFF31m.js} +2 -2
  9. package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-DF1iC1pF.js} +2 -2
  10. package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-CDGNJA8n.js} +2 -2
  11. package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CAPFdCrE.js} +2 -2
  12. package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-DUUdUzzu.js} +2 -2
  13. package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-BwfVXGKK.js} +2 -2
  14. package/dist/control-ui/assets/{index-jUDczxhd.js → index-JWV4rMUy.js} +4 -4
  15. package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BqAPpn0Y.js} +2 -2
  16. package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-gya-0PkG.js} +2 -2
  17. package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-BdttyTpI.js} +2 -2
  18. package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-D_rtwBjc.js} +2 -2
  19. package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-CIGDGkWB.js} +2 -2
  20. package/dist/control-ui/index.html +1 -1
  21. package/dist/control-ui/sw.js +1 -1
  22. package/dist/crestodian/crestodian.js +1 -1
  23. package/dist/crestodian/rescue-message.js +1 -1
  24. package/dist/{crestodian-C0x7JjF-.js → crestodian-CAxGCgHM.js} +3 -3
  25. package/dist/{dialogue-No0NvYX7.js → dialogue-CHuN9qet.js} +1 -1
  26. package/dist/gateway/protocol/index.d.ts +1 -1
  27. package/dist/{index-AZzJCgph.d.ts → index-DbpfOFUf.d.ts} +1 -1
  28. package/dist/{operations-Z85LFqsT.js → operations-Mvnrndji.js} +1 -1
  29. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  30. package/dist/plugin-sdk/{agent-harness-runtime-CgQiThzm.d.ts → agent-harness-runtime-Bkrjji63.d.ts} +2 -2
  31. package/dist/plugin-sdk/agent-harness-runtime.d.ts +4 -4
  32. package/dist/plugin-sdk/agent-harness-task-runtime.d.ts +1 -1
  33. package/dist/plugin-sdk/agent-harness.d.ts +4 -4
  34. package/dist/plugin-sdk/agent-runtime.d.ts +1 -1
  35. package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-ZTBQez8k.d.ts} +9 -9
  36. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  37. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  38. package/dist/plugin-sdk/channel-core.d.ts +2 -2
  39. package/dist/plugin-sdk/channel-entry-contract.d.ts +1 -1
  40. package/dist/plugin-sdk/{channel-pairing-CX6ncj1r.d.ts → channel-pairing-CzsPAHgH.d.ts} +1 -1
  41. package/dist/plugin-sdk/channel-pairing.d.ts +1 -1
  42. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  43. package/dist/plugin-sdk/cli-backend.d.ts +1 -1
  44. package/dist/plugin-sdk/compat.d.ts +4 -4
  45. package/dist/plugin-sdk/{config-schema-DuJUjn6k.d.ts → config-schema-N64y7n8C.d.ts} +1 -1
  46. package/dist/plugin-sdk/config-schema.d.ts +4 -4
  47. package/dist/plugin-sdk/{core-CPtu2Ftl.d.ts → core-BWZB2hNB.d.ts} +1 -1
  48. package/dist/plugin-sdk/core.d.ts +7 -7
  49. package/dist/plugin-sdk/{delegate-uk6vAMkc.d.ts → delegate-o5xckIuc.d.ts} +1 -1
  50. package/dist/plugin-sdk/discord.d.ts +3 -3
  51. package/dist/plugin-sdk/{fengming-runtime-Dt2ZEVYX.d.ts → fengming-runtime-abXAXyq2.d.ts} +1 -1
  52. package/dist/plugin-sdk/gateway-runtime.d.ts +1 -1
  53. package/dist/plugin-sdk/{host-compat-CM0h9ODw.d.ts → host-compat-D2Ky8seZ.d.ts} +1 -1
  54. package/dist/plugin-sdk/{http-registry-BniL_epL.d.ts → http-registry-oxJbX3E-.d.ts} +2 -2
  55. package/dist/plugin-sdk/image-generation-core.d.ts +4 -4
  56. package/dist/plugin-sdk/image-generation-runtime.d.ts +3 -3
  57. package/dist/plugin-sdk/index.d.ts +4 -4
  58. package/dist/plugin-sdk/lmstudio.d.ts +1 -1
  59. package/dist/plugin-sdk/{loader-aELh60PE.d.ts → loader-CgJhYjxT.d.ts} +3 -3
  60. package/dist/plugin-sdk/{logger-BpB3--7Z.d.ts → logger-CyDIBtoX.d.ts} +1 -1
  61. package/dist/plugin-sdk/logging-core.d.ts +3 -3
  62. package/dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts +2 -2
  63. package/dist/plugin-sdk/memory-core-host-engine-foundation.d.ts +3 -3
  64. package/dist/plugin-sdk/{memory-core-host-engine-storage-DYPjOQCg.d.ts → memory-core-host-engine-storage-DfW7ZqD0.d.ts} +1 -1
  65. package/dist/plugin-sdk/memory-core-host-engine-storage.d.ts +1 -1
  66. package/dist/plugin-sdk/memory-core-host-runtime-cli.d.ts +1 -1
  67. package/dist/plugin-sdk/memory-core-host-runtime-core.d.ts +3 -3
  68. package/dist/plugin-sdk/memory-core.d.ts +3 -3
  69. package/dist/plugin-sdk/memory-host-core.d.ts +3 -3
  70. package/dist/plugin-sdk/migration-runtime.d.ts +1 -1
  71. package/dist/plugin-sdk/migration.d.ts +1 -1
  72. package/dist/plugin-sdk/music-generation-core.d.ts +2 -2
  73. package/dist/plugin-sdk/{plugin-entry-DO9kQeTr.d.ts → plugin-entry-C9xM-ZA9.d.ts} +1 -1
  74. package/dist/plugin-sdk/plugin-entry.d.ts +3 -3
  75. package/dist/plugin-sdk/plugin-runtime.d.ts +3 -3
  76. package/dist/plugin-sdk/{provider-api-key-auth-DvIiojS6.d.ts → provider-api-key-auth-DOmYPTC2.d.ts} +1 -1
  77. package/dist/plugin-sdk/provider-auth-api-key.d.ts +4 -4
  78. package/dist/plugin-sdk/{provider-auth-helpers-CYkWZ0vq.d.ts → provider-auth-helpers-pqDNrZTd.d.ts} +1 -1
  79. package/dist/plugin-sdk/{provider-auth-input-DUV6ZTw4.d.ts → provider-auth-input-Ckt-cU4H.d.ts} +1 -1
  80. package/dist/plugin-sdk/provider-auth-result.d.ts +1 -1
  81. package/dist/plugin-sdk/provider-auth-runtime.d.ts +1 -1
  82. package/dist/plugin-sdk/provider-auth.d.ts +5 -5
  83. package/dist/plugin-sdk/provider-catalog-runtime.d.ts +2 -2
  84. package/dist/plugin-sdk/{provider-catalog-shared-Cm3SyFfL.d.ts → provider-catalog-shared-QvOT8Wz1.d.ts} +1 -1
  85. package/dist/plugin-sdk/provider-catalog-shared.d.ts +2 -2
  86. package/dist/plugin-sdk/provider-entry.d.ts +3 -3
  87. package/dist/plugin-sdk/{provider-model-shared-D5rgn7Gb.d.ts → provider-model-shared-Bnc8IMx5.d.ts} +1 -1
  88. package/dist/plugin-sdk/provider-model-shared.d.ts +2 -2
  89. package/dist/plugin-sdk/{provider-registry-DxdZT9UN.d.ts → provider-registry-Ba1nNfhA.d.ts} +1 -1
  90. package/dist/plugin-sdk/{provider-registry-DiKX35tc.d.ts → provider-registry-CqB5bSAD.d.ts} +1 -1
  91. package/dist/plugin-sdk/{provider-registry-D0vmhPWL.d.ts → provider-registry-CxdVib8g.d.ts} +1 -1
  92. package/dist/plugin-sdk/{provider-self-hosted-setup-BPx7JMDC.d.ts → provider-self-hosted-setup-eMoeVPnF.d.ts} +1 -1
  93. package/dist/plugin-sdk/provider-setup.d.ts +2 -2
  94. package/dist/plugin-sdk/{provider-stream-DcC2vn_N.d.ts → provider-stream-CGaLae9n.d.ts} +1 -1
  95. package/dist/plugin-sdk/provider-stream-family.d.ts +2 -2
  96. package/dist/plugin-sdk/{provider-stream-shared-ByDv3QKm.d.ts → provider-stream-shared-u5mt-8_i.d.ts} +1 -1
  97. package/dist/plugin-sdk/provider-stream-shared.d.ts +1 -1
  98. package/dist/plugin-sdk/provider-stream.d.ts +2 -2
  99. package/dist/plugin-sdk/provider-tools.d.ts +1 -1
  100. package/dist/plugin-sdk/provider-web-fetch-contract.d.ts +1 -1
  101. package/dist/plugin-sdk/provider-web-fetch.d.ts +1 -1
  102. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  103. package/dist/plugin-sdk/{provider-web-search-contract-fields-CY4v8kS-.d.ts → provider-web-search-contract-fields-BiWOSs_d.d.ts} +1 -1
  104. package/dist/plugin-sdk/provider-web-search-contract.d.ts +2 -2
  105. package/dist/plugin-sdk/provider-web-search.d.ts +1 -1
  106. package/dist/plugin-sdk/realtime-transcription.d.ts +1 -1
  107. package/dist/plugin-sdk/realtime-voice.d.ts +1 -1
  108. package/dist/plugin-sdk/{redact-identifier-CVwkabcI.d.ts → redact-identifier-CVqsKaEK.d.ts} +1 -1
  109. package/dist/plugin-sdk/{registry-CzaGoAKH.d.ts → registry-Gq9OFlb3.d.ts} +2 -2
  110. package/dist/plugin-sdk/{registry-types-DN1yiH3F.d.ts → registry-types-DyBkef1H.d.ts} +2 -2
  111. package/dist/plugin-sdk/reply-runtime.d.ts +1 -1
  112. package/dist/plugin-sdk/runtime-env.d.ts +3 -3
  113. package/dist/plugin-sdk/runtime-store.d.ts +1 -1
  114. package/dist/plugin-sdk/runtime.d.ts +3 -3
  115. package/dist/plugin-sdk/self-hosted-provider-setup.d.ts +2 -2
  116. package/dist/plugin-sdk/simple-completion-runtime.d.ts +1 -1
  117. package/dist/plugin-sdk/speech-core.d.ts +2 -2
  118. package/dist/plugin-sdk/speech.d.ts +2 -2
  119. package/dist/plugin-sdk/{subsystem-n4Y4vCcQ.d.ts → subsystem-Boo2DQIV.d.ts} +1 -1
  120. package/dist/plugin-sdk/text-runtime.d.ts +2 -2
  121. package/dist/plugin-sdk/tool-plugin.d.ts +2 -2
  122. package/dist/plugin-sdk/{types-BI8R-vGd.d.ts → types-DGF1KeaJ.d.ts} +2 -2
  123. package/dist/plugin-sdk/{types-CsqNt0j8.d.ts → types-DpaN54PS.d.ts} +1 -1
  124. package/dist/plugin-sdk/{unhandled-rejections-D9eBl3hT.d.ts → unhandled-rejections-Bez6JG0y.d.ts} +2 -2
  125. package/dist/plugin-sdk/video-generation-core.d.ts +3 -3
  126. package/dist/plugin-sdk/video-generation-runtime.d.ts +3 -3
  127. package/dist/plugin-sdk/webhook-ingress.d.ts +1 -1
  128. package/dist/plugin-sdk/webhook-targets.d.ts +1 -1
  129. package/dist/{program-D19g2jaa.js → program-BaCHjV-F.js} +1 -1
  130. package/dist/{register.crestodian-BhIukKDA.js → register.crestodian-DMJEPMf3.js} +1 -1
  131. package/dist/register.subclis-B0BgjwyK.js +3 -0
  132. package/dist/{register.subclis-DVk0HU4k.js → register.subclis-BuoWG93n.js} +2 -2
  133. package/dist/{register.subclis-core-BK7nVvl6.js → register.subclis-core-BGBFrWE3.js} +2 -2
  134. package/dist/{standalone-CHrieUsw.js → standalone-CV2Ud6F7.js} +1 -1
  135. package/dist/tui-Bvt7hhwe.js +3 -0
  136. package/dist/tui-CFSmzhsm.js +2 -0
  137. package/dist/{tui-backend-_Pn3Byj-.js → tui-backend-Bm_t5G7x.js} +4 -4
  138. package/dist/{tui-cli-CAiC39zd.js → tui-cli-9Ny23hmo.js} +1 -1
  139. package/dist/tui-ink-run-CuExfFLV.js +2 -0
  140. package/dist/{tui-ink-run-ChXEGj1h.js → tui-ink-run-qNL49iQn.js} +17 -1
  141. package/package.json +6 -410
  142. package/CHANGELOG.md +0 -42
  143. package/THIRD_PARTY_NOTICES.md +0 -37
  144. package/dist/register.subclis-Bsvdh8RI.js +0 -3
  145. package/dist/tui-C733Qov0.js +0 -2
  146. package/dist/tui-DqbscVN5.js +0 -3
  147. package/dist/tui-ink-run-D4mSfLHj.js +0 -2
  148. package/docs/.i18n/README.md +0 -81
  149. package/docs/.i18n/ar-navigation.json +0 -18
  150. package/docs/.i18n/de-navigation.json +0 -18
  151. package/docs/.i18n/es-navigation.json +0 -18
  152. package/docs/.i18n/fr-navigation.json +0 -18
  153. package/docs/.i18n/glossary.ar.json +0 -78
  154. package/docs/.i18n/glossary.de.json +0 -78
  155. package/docs/.i18n/glossary.es.json +0 -78
  156. package/docs/.i18n/glossary.fa.json +0 -78
  157. package/docs/.i18n/glossary.fr.json +0 -78
  158. package/docs/.i18n/glossary.id.json +0 -78
  159. package/docs/.i18n/glossary.it.json +0 -78
  160. package/docs/.i18n/glossary.ja-JP.json +0 -98
  161. package/docs/.i18n/glossary.ko.json +0 -78
  162. package/docs/.i18n/glossary.nl.json +0 -78
  163. package/docs/.i18n/glossary.pl.json +0 -78
  164. package/docs/.i18n/glossary.pt-BR.json +0 -78
  165. package/docs/.i18n/glossary.th.json +0 -78
  166. package/docs/.i18n/glossary.tr.json +0 -78
  167. package/docs/.i18n/glossary.uk.json +0 -78
  168. package/docs/.i18n/glossary.vi.json +0 -78
  169. package/docs/.i18n/glossary.zh-CN.json +0 -1122
  170. package/docs/.i18n/glossary.zh-TW.json +0 -78
  171. package/docs/.i18n/id-navigation.json +0 -18
  172. package/docs/.i18n/it-navigation.json +0 -18
  173. package/docs/.i18n/ja-navigation.json +0 -18
  174. package/docs/.i18n/ko-navigation.json +0 -18
  175. package/docs/.i18n/pl-navigation.json +0 -18
  176. package/docs/.i18n/pt-BR-navigation.json +0 -18
  177. package/docs/.i18n/tr-navigation.json +0 -18
  178. package/docs/.i18n/translation-workflow.md +0 -111
  179. package/docs/.i18n/zh-Hans-navigation.json +0 -552
  180. package/docs/AGENTS.md +0 -36
  181. package/docs/CLAUDE.md +0 -1
  182. package/docs/agent-runtime-architecture.md +0 -48
  183. package/docs/announcements/bluebubbles-imessage.md +0 -79
  184. package/docs/auth-credential-semantics.md +0 -124
  185. package/docs/automation/auth-monitoring.md +0 -11
  186. package/docs/automation/clawflow.md +0 -12
  187. package/docs/automation/cron-jobs.md +0 -534
  188. package/docs/automation/cron-vs-heartbeat.md +0 -11
  189. package/docs/automation/gmail-pubsub.md +0 -11
  190. package/docs/automation/hooks.md +0 -387
  191. package/docs/automation/index.md +0 -135
  192. package/docs/automation/poll.md +0 -12
  193. package/docs/automation/standing-orders.md +0 -250
  194. package/docs/automation/taskflow.md +0 -155
  195. package/docs/automation/tasks.md +0 -374
  196. package/docs/automation/troubleshooting.md +0 -12
  197. package/docs/automation/webhook.md +0 -12
  198. package/docs/brave-search.md +0 -11
  199. package/docs/channels/access-groups.md +0 -201
  200. package/docs/channels/ambient-room-events.md +0 -214
  201. package/docs/channels/bot-loop-protection.md +0 -131
  202. package/docs/channels/broadcast-groups.md +0 -472
  203. package/docs/channels/channel-routing.md +0 -162
  204. package/docs/channels/clickclack.md +0 -138
  205. package/docs/channels/discord.md +0 -1758
  206. package/docs/channels/feishu.md +0 -650
  207. package/docs/channels/googlechat.md +0 -284
  208. package/docs/channels/group-messages.md +0 -95
  209. package/docs/channels/groups.md +0 -524
  210. package/docs/channels/imessage-from-bluebubbles.md +0 -259
  211. package/docs/channels/imessage.md +0 -839
  212. package/docs/channels/index.md +0 -64
  213. package/docs/channels/irc.md +0 -253
  214. package/docs/channels/line.md +0 -243
  215. package/docs/channels/location.md +0 -71
  216. package/docs/channels/matrix-migration.md +0 -370
  217. package/docs/channels/matrix-presentation.md +0 -77
  218. package/docs/channels/matrix-push-rules.md +0 -150
  219. package/docs/channels/matrix.md +0 -921
  220. package/docs/channels/mattermost.md +0 -542
  221. package/docs/channels/msteams.md +0 -1096
  222. package/docs/channels/nextcloud-talk.md +0 -176
  223. package/docs/channels/nostr.md +0 -253
  224. package/docs/channels/pairing.md +0 -214
  225. package/docs/channels/qqbot.md +0 -314
  226. package/docs/channels/signal.md +0 -417
  227. package/docs/channels/slack.md +0 -1623
  228. package/docs/channels/synology-chat.md +0 -187
  229. package/docs/channels/telegram.md +0 -1124
  230. package/docs/channels/tlon.md +0 -296
  231. package/docs/channels/troubleshooting.md +0 -162
  232. package/docs/channels/twitch.md +0 -431
  233. package/docs/channels/wechat.md +0 -171
  234. package/docs/channels/whatsapp.md +0 -796
  235. package/docs/channels/yuanbao.md +0 -416
  236. package/docs/channels/zalo.md +0 -253
  237. package/docs/channels/zalouser.md +0 -217
  238. package/docs/ci.md +0 -657
  239. package/docs/clawhub/publishing.md +0 -96
  240. package/docs/cli/acp.md +0 -370
  241. package/docs/cli/agent.md +0 -109
  242. package/docs/cli/agents.md +0 -253
  243. package/docs/cli/approvals.md +0 -190
  244. package/docs/cli/backup.md +0 -98
  245. package/docs/cli/browser.md +0 -307
  246. package/docs/cli/channels.md +0 -154
  247. package/docs/cli/clawbot.md +0 -25
  248. package/docs/cli/commitments.md +0 -90
  249. package/docs/cli/completion.md +0 -39
  250. package/docs/cli/config.md +0 -504
  251. package/docs/cli/configure.md +0 -77
  252. package/docs/cli/crestodian.md +0 -337
  253. package/docs/cli/cron.md +0 -304
  254. package/docs/cli/daemon.md +0 -67
  255. package/docs/cli/dashboard.md +0 -33
  256. package/docs/cli/devices.md +0 -240
  257. package/docs/cli/directory.md +0 -68
  258. package/docs/cli/dns.md +0 -53
  259. package/docs/cli/docs.md +0 -63
  260. package/docs/cli/doctor.md +0 -241
  261. package/docs/cli/flows.md +0 -52
  262. package/docs/cli/gateway.md +0 -572
  263. package/docs/cli/health.md +0 -43
  264. package/docs/cli/hooks.md +0 -345
  265. package/docs/cli/index.md +0 -400
  266. package/docs/cli/infer.md +0 -364
  267. package/docs/cli/logs.md +0 -68
  268. package/docs/cli/mcp.md +0 -529
  269. package/docs/cli/memory.md +0 -183
  270. package/docs/cli/message.md +0 -317
  271. package/docs/cli/migrate.md +0 -334
  272. package/docs/cli/models.md +0 -239
  273. package/docs/cli/node.md +0 -177
  274. package/docs/cli/nodes.md +0 -76
  275. package/docs/cli/onboard.md +0 -250
  276. package/docs/cli/pairing.md +0 -77
  277. package/docs/cli/path.md +0 -511
  278. package/docs/cli/plugins.md +0 -459
  279. package/docs/cli/policy.md +0 -886
  280. package/docs/cli/proxy.md +0 -89
  281. package/docs/cli/qr.md +0 -56
  282. package/docs/cli/reset.md +0 -39
  283. package/docs/cli/sandbox.md +0 -208
  284. package/docs/cli/secrets.md +0 -202
  285. package/docs/cli/security.md +0 -136
  286. package/docs/cli/sessions.md +0 -164
  287. package/docs/cli/setup.md +0 -59
  288. package/docs/cli/skills.md +0 -122
  289. package/docs/cli/status.md +0 -45
  290. package/docs/cli/system.md +0 -89
  291. package/docs/cli/tasks.md +0 -111
  292. package/docs/cli/transcripts.md +0 -151
  293. package/docs/cli/tui.md +0 -91
  294. package/docs/cli/uninstall.md +0 -44
  295. package/docs/cli/update.md +0 -243
  296. package/docs/cli/voicecall.md +0 -204
  297. package/docs/cli/webhooks.md +0 -117
  298. package/docs/cli/wiki.md +0 -256
  299. package/docs/concepts/active-memory.md +0 -856
  300. package/docs/concepts/agent-loop.md +0 -185
  301. package/docs/concepts/agent-runtimes.md +0 -276
  302. package/docs/concepts/agent-workspace.md +0 -230
  303. package/docs/concepts/agent.md +0 -140
  304. package/docs/concepts/architecture.md +0 -154
  305. package/docs/concepts/channel-docking.md +0 -145
  306. package/docs/concepts/commitments.md +0 -150
  307. package/docs/concepts/compaction.md +0 -203
  308. package/docs/concepts/context-engine.md +0 -347
  309. package/docs/concepts/context.md +0 -199
  310. package/docs/concepts/delegate-architecture.md +0 -319
  311. package/docs/concepts/dreaming.md +0 -264
  312. package/docs/concepts/experimental-features.md +0 -109
  313. package/docs/concepts/features.md +0 -91
  314. package/docs/concepts/fengming-sdk.md +0 -323
  315. package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
  316. package/docs/concepts/mantis.md +0 -744
  317. package/docs/concepts/markdown-formatting.md +0 -139
  318. package/docs/concepts/memory-builtin.md +0 -148
  319. package/docs/concepts/memory-honcho.md +0 -144
  320. package/docs/concepts/memory-qmd.md +0 -271
  321. package/docs/concepts/memory-search.md +0 -167
  322. package/docs/concepts/memory.md +0 -299
  323. package/docs/concepts/message-lifecycle-refactor.md +0 -1126
  324. package/docs/concepts/messages.md +0 -214
  325. package/docs/concepts/model-failover.md +0 -384
  326. package/docs/concepts/model-providers.md +0 -719
  327. package/docs/concepts/models.md +0 -371
  328. package/docs/concepts/multi-agent.md +0 -625
  329. package/docs/concepts/oauth.md +0 -198
  330. package/docs/concepts/parallel-specialist-lanes.md +0 -127
  331. package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
  332. package/docs/concepts/presence.md +0 -117
  333. package/docs/concepts/progress-drafts.md +0 -406
  334. package/docs/concepts/qa-e2e-automation.md +0 -947
  335. package/docs/concepts/qa-matrix.md +0 -139
  336. package/docs/concepts/queue-steering.md +0 -90
  337. package/docs/concepts/queue.md +0 -136
  338. package/docs/concepts/retry.md +0 -86
  339. package/docs/concepts/session-pruning.md +0 -104
  340. package/docs/concepts/session-tool.md +0 -188
  341. package/docs/concepts/session.md +0 -164
  342. package/docs/concepts/soul.md +0 -116
  343. package/docs/concepts/streaming.md +0 -257
  344. package/docs/concepts/system-prompt.md +0 -328
  345. package/docs/concepts/timezone.md +0 -47
  346. package/docs/concepts/typebox.md +0 -309
  347. package/docs/concepts/typing-indicators.md +0 -88
  348. package/docs/concepts/usage-tracking.md +0 -66
  349. package/docs/date-time.md +0 -126
  350. package/docs/debug/node-issue.md +0 -90
  351. package/docs/diagnostics/flags.md +0 -182
  352. package/docs/docs.json +0 -1862
  353. package/docs/fengming-agent-runtime.md +0 -82
  354. package/docs/gateway/authentication.md +0 -256
  355. package/docs/gateway/background-process.md +0 -147
  356. package/docs/gateway/bonjour.md +0 -303
  357. package/docs/gateway/bridge-protocol.md +0 -97
  358. package/docs/gateway/cli-backends.md +0 -439
  359. package/docs/gateway/config-agents.md +0 -1525
  360. package/docs/gateway/config-channels.md +0 -945
  361. package/docs/gateway/config-tools.md +0 -774
  362. package/docs/gateway/configuration-examples.md +0 -704
  363. package/docs/gateway/configuration-reference.md +0 -1391
  364. package/docs/gateway/configuration.md +0 -739
  365. package/docs/gateway/diagnostics.md +0 -213
  366. package/docs/gateway/discovery.md +0 -154
  367. package/docs/gateway/doctor.md +0 -575
  368. package/docs/gateway/gateway-lock.md +0 -37
  369. package/docs/gateway/health.md +0 -73
  370. package/docs/gateway/heartbeat.md +0 -498
  371. package/docs/gateway/index.md +0 -383
  372. package/docs/gateway/local-model-services.md +0 -205
  373. package/docs/gateway/local-models.md +0 -355
  374. package/docs/gateway/logging.md +0 -149
  375. package/docs/gateway/multiple-gateways.md +0 -178
  376. package/docs/gateway/network-model.md +0 -15
  377. package/docs/gateway/openai-http-api.md +0 -378
  378. package/docs/gateway/openresponses-http-api.md +0 -347
  379. package/docs/gateway/openshell.md +0 -316
  380. package/docs/gateway/opentelemetry.md +0 -433
  381. package/docs/gateway/operator-scopes.md +0 -119
  382. package/docs/gateway/pairing.md +0 -207
  383. package/docs/gateway/prometheus.md +0 -249
  384. package/docs/gateway/protocol.md +0 -826
  385. package/docs/gateway/remote-gateway-readme.md +0 -169
  386. package/docs/gateway/remote.md +0 -280
  387. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
  388. package/docs/gateway/sandboxing.md +0 -546
  389. package/docs/gateway/secrets-plan-contract.md +0 -159
  390. package/docs/gateway/secrets.md +0 -805
  391. package/docs/gateway/security/audit-checks.md +0 -127
  392. package/docs/gateway/security/exposure-runbook.md +0 -212
  393. package/docs/gateway/security/index.md +0 -1343
  394. package/docs/gateway/security/secure-file-operations.md +0 -76
  395. package/docs/gateway/security/shrinkwrap.md +0 -111
  396. package/docs/gateway/tailscale.md +0 -156
  397. package/docs/gateway/tools-invoke-http-api.md +0 -169
  398. package/docs/gateway/troubleshooting.md +0 -877
  399. package/docs/gateway/trusted-proxy-auth.md +0 -483
  400. package/docs/help/debugging.md +0 -341
  401. package/docs/help/environment.md +0 -233
  402. package/docs/help/faq-first-run.md +0 -870
  403. package/docs/help/faq-models.md +0 -556
  404. package/docs/help/faq.md +0 -2041
  405. package/docs/help/index.md +0 -39
  406. package/docs/help/scripts.md +0 -56
  407. package/docs/help/testing-live.md +0 -587
  408. package/docs/help/testing-updates-plugins.md +0 -299
  409. package/docs/help/testing.md +0 -977
  410. package/docs/help/troubleshooting.md +0 -449
  411. package/docs/index.md +0 -196
  412. package/docs/install/ansible.md +0 -233
  413. package/docs/install/azure.md +0 -315
  414. package/docs/install/bun.md +0 -59
  415. package/docs/install/clawdock.md +0 -112
  416. package/docs/install/development-channels.md +0 -148
  417. package/docs/install/digitalocean.md +0 -174
  418. package/docs/install/docker-vm-runtime.md +0 -154
  419. package/docs/install/docker.md +0 -564
  420. package/docs/install/exe-dev.md +0 -201
  421. package/docs/install/fly.md +0 -524
  422. package/docs/install/gcp.md +0 -418
  423. package/docs/install/hetzner.md +0 -285
  424. package/docs/install/hostinger.md +0 -98
  425. package/docs/install/index.md +0 -232
  426. package/docs/install/installer.md +0 -447
  427. package/docs/install/kubernetes.md +0 -196
  428. package/docs/install/macos-vm.md +0 -281
  429. package/docs/install/migrating-claude.md +0 -165
  430. package/docs/install/migrating-hermes.md +0 -178
  431. package/docs/install/migrating.md +0 -137
  432. package/docs/install/nix.md +0 -112
  433. package/docs/install/node.md +0 -142
  434. package/docs/install/northflank.mdx +0 -44
  435. package/docs/install/oracle.md +0 -218
  436. package/docs/install/podman.md +0 -216
  437. package/docs/install/railway.mdx +0 -92
  438. package/docs/install/raspberry-pi.md +0 -234
  439. package/docs/install/render.mdx +0 -167
  440. package/docs/install/uninstall.md +0 -131
  441. package/docs/install/updating.md +0 -284
  442. package/docs/install/upstash.md +0 -96
  443. package/docs/logging.md +0 -320
  444. package/docs/nav-tabs-underline.js +0 -100
  445. package/docs/network.md +0 -72
  446. package/docs/nodes/audio.md +0 -216
  447. package/docs/nodes/camera.md +0 -166
  448. package/docs/nodes/images.md +0 -77
  449. package/docs/nodes/index.md +0 -439
  450. package/docs/nodes/location-command.md +0 -102
  451. package/docs/nodes/media-understanding.md +0 -495
  452. package/docs/nodes/talk.md +0 -160
  453. package/docs/nodes/troubleshooting.md +0 -123
  454. package/docs/nodes/voicewake.md +0 -93
  455. package/docs/perplexity.md +0 -11
  456. package/docs/plan/codex-context-engine-harness.md +0 -624
  457. package/docs/plan/ui-channels.md +0 -284
  458. package/docs/platforms/digitalocean.md +0 -12
  459. package/docs/platforms/easyrunner.md +0 -109
  460. package/docs/platforms/index.md +0 -51
  461. package/docs/platforms/linux.md +0 -141
  462. package/docs/platforms/mac/bundled-gateway.md +0 -79
  463. package/docs/platforms/mac/canvas.md +0 -128
  464. package/docs/platforms/mac/child-process.md +0 -72
  465. package/docs/platforms/mac/dev-setup.md +0 -112
  466. package/docs/platforms/mac/health.md +0 -39
  467. package/docs/platforms/mac/icon.md +0 -36
  468. package/docs/platforms/mac/logging.md +0 -62
  469. package/docs/platforms/mac/menu-bar.md +0 -93
  470. package/docs/platforms/mac/peekaboo.md +0 -96
  471. package/docs/platforms/mac/permissions.md +0 -73
  472. package/docs/platforms/mac/remote.md +0 -123
  473. package/docs/platforms/mac/signing.md +0 -52
  474. package/docs/platforms/mac/skills.md +0 -43
  475. package/docs/platforms/mac/voice-overlay.md +0 -66
  476. package/docs/platforms/mac/voicewake.md +0 -73
  477. package/docs/platforms/mac/webchat.md +0 -54
  478. package/docs/platforms/mac/xpc.md +0 -66
  479. package/docs/platforms/oracle.md +0 -12
  480. package/docs/platforms/raspberry-pi.md +0 -13
  481. package/docs/platforms/windows.md +0 -286
  482. package/docs/plugins/adding-capabilities.md +0 -146
  483. package/docs/plugins/admin-http-rpc.md +0 -216
  484. package/docs/plugins/agent-tools.md +0 -13
  485. package/docs/plugins/architecture-internals.md +0 -1196
  486. package/docs/plugins/architecture.md +0 -483
  487. package/docs/plugins/building-extensions.md +0 -13
  488. package/docs/plugins/building-plugins.md +0 -335
  489. package/docs/plugins/bundles.md +0 -310
  490. package/docs/plugins/cli-backend-plugins.md +0 -310
  491. package/docs/plugins/codex-computer-use.md +0 -297
  492. package/docs/plugins/codex-harness-reference.md +0 -470
  493. package/docs/plugins/codex-harness-runtime.md +0 -268
  494. package/docs/plugins/codex-harness.md +0 -780
  495. package/docs/plugins/codex-native-plugins.md +0 -276
  496. package/docs/plugins/community.md +0 -77
  497. package/docs/plugins/compatibility.md +0 -167
  498. package/docs/plugins/copilot.md +0 -356
  499. package/docs/plugins/dependency-resolution.md +0 -176
  500. package/docs/plugins/google-meet.md +0 -1737
  501. package/docs/plugins/hooks.md +0 -484
  502. package/docs/plugins/install-overrides.md +0 -80
  503. package/docs/plugins/manage-plugins.md +0 -210
  504. package/docs/plugins/manifest.md +0 -1457
  505. package/docs/plugins/memory-lancedb.md +0 -385
  506. package/docs/plugins/memory-wiki.md +0 -529
  507. package/docs/plugins/message-presentation.md +0 -473
  508. package/docs/plugins/oc-path.md +0 -166
  509. package/docs/plugins/plugin-inventory.md +0 -189
  510. package/docs/plugins/plugin-permission-requests.md +0 -193
  511. package/docs/plugins/reference/acpx.md +0 -23
  512. package/docs/plugins/reference/admin-http-rpc.md +0 -23
  513. package/docs/plugins/reference/alibaba.md +0 -23
  514. package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
  515. package/docs/plugins/reference/amazon-bedrock.md +0 -23
  516. package/docs/plugins/reference/anthropic-vertex.md +0 -19
  517. package/docs/plugins/reference/anthropic.md +0 -23
  518. package/docs/plugins/reference/arcee.md +0 -23
  519. package/docs/plugins/reference/azure-speech.md +0 -23
  520. package/docs/plugins/reference/bonjour.md +0 -19
  521. package/docs/plugins/reference/brave.md +0 -23
  522. package/docs/plugins/reference/browser.md +0 -23
  523. package/docs/plugins/reference/byteplus.md +0 -19
  524. package/docs/plugins/reference/canvas.md +0 -19
  525. package/docs/plugins/reference/cerebras.md +0 -23
  526. package/docs/plugins/reference/chutes.md +0 -23
  527. package/docs/plugins/reference/clickclack.md +0 -23
  528. package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
  529. package/docs/plugins/reference/codex-supervisor.md +0 -27
  530. package/docs/plugins/reference/codex.md +0 -23
  531. package/docs/plugins/reference/comfy.md +0 -23
  532. package/docs/plugins/reference/copilot-proxy.md +0 -19
  533. package/docs/plugins/reference/copilot.md +0 -23
  534. package/docs/plugins/reference/deepgram.md +0 -23
  535. package/docs/plugins/reference/deepinfra.md +0 -23
  536. package/docs/plugins/reference/deepseek.md +0 -23
  537. package/docs/plugins/reference/diagnostics-otel.md +0 -19
  538. package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
  539. package/docs/plugins/reference/diffs-language-pack.md +0 -19
  540. package/docs/plugins/reference/diffs.md +0 -19
  541. package/docs/plugins/reference/discord.md +0 -23
  542. package/docs/plugins/reference/document-extract.md +0 -23
  543. package/docs/plugins/reference/duckduckgo.md +0 -23
  544. package/docs/plugins/reference/elevenlabs.md +0 -23
  545. package/docs/plugins/reference/exa.md +0 -23
  546. package/docs/plugins/reference/fal.md +0 -23
  547. package/docs/plugins/reference/feishu.md +0 -23
  548. package/docs/plugins/reference/file-transfer.md +0 -19
  549. package/docs/plugins/reference/firecrawl.md +0 -23
  550. package/docs/plugins/reference/fireworks.md +0 -23
  551. package/docs/plugins/reference/github-copilot.md +0 -23
  552. package/docs/plugins/reference/gmi.md +0 -23
  553. package/docs/plugins/reference/google-meet.md +0 -23
  554. package/docs/plugins/reference/google.md +0 -23
  555. package/docs/plugins/reference/googlechat.md +0 -23
  556. package/docs/plugins/reference/gradium.md +0 -23
  557. package/docs/plugins/reference/groq.md +0 -23
  558. package/docs/plugins/reference/huggingface.md +0 -23
  559. package/docs/plugins/reference/imessage.md +0 -23
  560. package/docs/plugins/reference/inworld.md +0 -23
  561. package/docs/plugins/reference/irc.md +0 -23
  562. package/docs/plugins/reference/kilocode.md +0 -23
  563. package/docs/plugins/reference/kimi.md +0 -23
  564. package/docs/plugins/reference/line.md +0 -23
  565. package/docs/plugins/reference/litellm.md +0 -23
  566. package/docs/plugins/reference/llm-task.md +0 -19
  567. package/docs/plugins/reference/lmstudio.md +0 -23
  568. package/docs/plugins/reference/lobster.md +0 -19
  569. package/docs/plugins/reference/matrix.md +0 -23
  570. package/docs/plugins/reference/mattermost.md +0 -23
  571. package/docs/plugins/reference/memory-core.md +0 -19
  572. package/docs/plugins/reference/memory-lancedb.md +0 -23
  573. package/docs/plugins/reference/memory-wiki.md +0 -23
  574. package/docs/plugins/reference/microsoft-foundry.md +0 -19
  575. package/docs/plugins/reference/microsoft.md +0 -19
  576. package/docs/plugins/reference/migrate-claude.md +0 -19
  577. package/docs/plugins/reference/migrate-hermes.md +0 -19
  578. package/docs/plugins/reference/minimax.md +0 -23
  579. package/docs/plugins/reference/mistral.md +0 -23
  580. package/docs/plugins/reference/moonshot.md +0 -23
  581. package/docs/plugins/reference/msteams.md +0 -23
  582. package/docs/plugins/reference/nextcloud-talk.md +0 -23
  583. package/docs/plugins/reference/nostr.md +0 -23
  584. package/docs/plugins/reference/novita.md +0 -23
  585. package/docs/plugins/reference/nvidia.md +0 -23
  586. package/docs/plugins/reference/oc-path.md +0 -23
  587. package/docs/plugins/reference/ollama.md +0 -23
  588. package/docs/plugins/reference/open-prose.md +0 -19
  589. package/docs/plugins/reference/openai.md +0 -23
  590. package/docs/plugins/reference/opencode-go.md +0 -23
  591. package/docs/plugins/reference/opencode.md +0 -23
  592. package/docs/plugins/reference/openrouter.md +0 -23
  593. package/docs/plugins/reference/openshell.md +0 -19
  594. package/docs/plugins/reference/perplexity.md +0 -23
  595. package/docs/plugins/reference/pixverse.md +0 -23
  596. package/docs/plugins/reference/policy.md +0 -72
  597. package/docs/plugins/reference/qa-channel.md +0 -23
  598. package/docs/plugins/reference/qa-lab.md +0 -19
  599. package/docs/plugins/reference/qa-matrix.md +0 -19
  600. package/docs/plugins/reference/qianfan.md +0 -23
  601. package/docs/plugins/reference/qqbot.md +0 -23
  602. package/docs/plugins/reference/qwen.md +0 -23
  603. package/docs/plugins/reference/runway.md +0 -23
  604. package/docs/plugins/reference/searxng.md +0 -19
  605. package/docs/plugins/reference/senseaudio.md +0 -23
  606. package/docs/plugins/reference/sglang.md +0 -23
  607. package/docs/plugins/reference/signal.md +0 -23
  608. package/docs/plugins/reference/skill-workshop.md +0 -23
  609. package/docs/plugins/reference/slack.md +0 -23
  610. package/docs/plugins/reference/stepfun.md +0 -23
  611. package/docs/plugins/reference/synology-chat.md +0 -23
  612. package/docs/plugins/reference/synthetic.md +0 -23
  613. package/docs/plugins/reference/tavily.md +0 -23
  614. package/docs/plugins/reference/telegram.md +0 -23
  615. package/docs/plugins/reference/tencent.md +0 -23
  616. package/docs/plugins/reference/tlon.md +0 -23
  617. package/docs/plugins/reference/together.md +0 -23
  618. package/docs/plugins/reference/tokenjuice.md +0 -23
  619. package/docs/plugins/reference/tts-local-cli.md +0 -19
  620. package/docs/plugins/reference/twitch.md +0 -23
  621. package/docs/plugins/reference/venice.md +0 -23
  622. package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
  623. package/docs/plugins/reference/vllm.md +0 -23
  624. package/docs/plugins/reference/voice-call.md +0 -23
  625. package/docs/plugins/reference/volcengine.md +0 -23
  626. package/docs/plugins/reference/voyage.md +0 -19
  627. package/docs/plugins/reference/vydra.md +0 -23
  628. package/docs/plugins/reference/web-readability.md +0 -19
  629. package/docs/plugins/reference/webhooks.md +0 -23
  630. package/docs/plugins/reference/whatsapp.md +0 -23
  631. package/docs/plugins/reference/workboard.md +0 -23
  632. package/docs/plugins/reference/xai.md +0 -23
  633. package/docs/plugins/reference/xiaomi.md +0 -23
  634. package/docs/plugins/reference/zai.md +0 -23
  635. package/docs/plugins/reference/zalo.md +0 -23
  636. package/docs/plugins/reference/zalouser.md +0 -24
  637. package/docs/plugins/reference.md +0 -145
  638. package/docs/plugins/sdk-agent-harness.md +0 -338
  639. package/docs/plugins/sdk-channel-inbound.md +0 -70
  640. package/docs/plugins/sdk-channel-ingress.md +0 -137
  641. package/docs/plugins/sdk-channel-message.md +0 -18
  642. package/docs/plugins/sdk-channel-outbound.md +0 -113
  643. package/docs/plugins/sdk-channel-plugins.md +0 -765
  644. package/docs/plugins/sdk-channel-turn.md +0 -9
  645. package/docs/plugins/sdk-entrypoints.md +0 -344
  646. package/docs/plugins/sdk-migration.md +0 -979
  647. package/docs/plugins/sdk-overview.md +0 -511
  648. package/docs/plugins/sdk-provider-plugins.md +0 -846
  649. package/docs/plugins/sdk-runtime.md +0 -676
  650. package/docs/plugins/sdk-setup.md +0 -550
  651. package/docs/plugins/sdk-subpaths.md +0 -391
  652. package/docs/plugins/sdk-testing.md +0 -403
  653. package/docs/plugins/skill-workshop.md +0 -713
  654. package/docs/plugins/tool-plugins.md +0 -411
  655. package/docs/plugins/voice-call.md +0 -942
  656. package/docs/plugins/webhooks.md +0 -192
  657. package/docs/plugins/workboard.md +0 -252
  658. package/docs/plugins/zalouser.md +0 -86
  659. package/docs/prose.md +0 -137
  660. package/docs/providers/alibaba.md +0 -158
  661. package/docs/providers/anthropic.md +0 -381
  662. package/docs/providers/arcee.md +0 -144
  663. package/docs/providers/azure-speech.md +0 -119
  664. package/docs/providers/bedrock-mantle.md +0 -211
  665. package/docs/providers/bedrock.md +0 -414
  666. package/docs/providers/cerebras.md +0 -130
  667. package/docs/providers/chutes.md +0 -153
  668. package/docs/providers/claude-max-api-proxy.md +0 -191
  669. package/docs/providers/cloudflare-ai-gateway.md +0 -119
  670. package/docs/providers/comfy.md +0 -362
  671. package/docs/providers/deepgram.md +0 -184
  672. package/docs/providers/deepinfra.md +0 -92
  673. package/docs/providers/deepseek.md +0 -146
  674. package/docs/providers/ds4.md +0 -309
  675. package/docs/providers/elevenlabs.md +0 -130
  676. package/docs/providers/fal.md +0 -240
  677. package/docs/providers/fireworks.md +0 -144
  678. package/docs/providers/github-copilot.md +0 -257
  679. package/docs/providers/gmi.md +0 -92
  680. package/docs/providers/google.md +0 -472
  681. package/docs/providers/gradium.md +0 -123
  682. package/docs/providers/groq.md +0 -171
  683. package/docs/providers/huggingface.md +0 -235
  684. package/docs/providers/index.md +0 -105
  685. package/docs/providers/inferrs.md +0 -272
  686. package/docs/providers/inworld.md +0 -120
  687. package/docs/providers/kilocode.md +0 -135
  688. package/docs/providers/litellm.md +0 -234
  689. package/docs/providers/lmstudio.md +0 -224
  690. package/docs/providers/minimax.md +0 -505
  691. package/docs/providers/mistral.md +0 -235
  692. package/docs/providers/models.md +0 -64
  693. package/docs/providers/moonshot.md +0 -413
  694. package/docs/providers/novita.md +0 -92
  695. package/docs/providers/nvidia.md +0 -158
  696. package/docs/providers/ollama-cloud.md +0 -115
  697. package/docs/providers/ollama.md +0 -1225
  698. package/docs/providers/openai.md +0 -1093
  699. package/docs/providers/opencode-go.md +0 -123
  700. package/docs/providers/opencode.md +0 -149
  701. package/docs/providers/openrouter.md +0 -349
  702. package/docs/providers/perplexity-provider.md +0 -123
  703. package/docs/providers/pixverse.md +0 -165
  704. package/docs/providers/qianfan.md +0 -132
  705. package/docs/providers/qwen-oauth.md +0 -115
  706. package/docs/providers/qwen.md +0 -364
  707. package/docs/providers/runway.md +0 -103
  708. package/docs/providers/senseaudio.md +0 -68
  709. package/docs/providers/sglang.md +0 -161
  710. package/docs/providers/stepfun.md +0 -229
  711. package/docs/providers/synthetic.md +0 -154
  712. package/docs/providers/tencent.md +0 -130
  713. package/docs/providers/together.md +0 -140
  714. package/docs/providers/venice.md +0 -312
  715. package/docs/providers/vercel-ai-gateway.md +0 -128
  716. package/docs/providers/vllm.md +0 -407
  717. package/docs/providers/volcengine.md +0 -199
  718. package/docs/providers/vydra.md +0 -180
  719. package/docs/providers/xai.md +0 -571
  720. package/docs/providers/xiaomi.md +0 -262
  721. package/docs/providers/zai.md +0 -224
  722. package/docs/refactor/access.md +0 -9
  723. package/docs/refactor/acp.md +0 -298
  724. package/docs/refactor/canvas.md +0 -131
  725. package/docs/refactor/database-first.md +0 -2256
  726. package/docs/refactor/ingress-core.md +0 -341
  727. package/docs/reference/AGENTS.default.md +0 -131
  728. package/docs/reference/RELEASING.md +0 -799
  729. package/docs/reference/api-usage-costs.md +0 -208
  730. package/docs/reference/application-modernization-plan.md +0 -208
  731. package/docs/reference/code-mode.md +0 -773
  732. package/docs/reference/credits.md +0 -33
  733. package/docs/reference/device-models.md +0 -50
  734. package/docs/reference/fengming-sdk-api-design.md +0 -390
  735. package/docs/reference/full-release-validation.md +0 -202
  736. package/docs/reference/memory-config.md +0 -604
  737. package/docs/reference/prompt-caching.md +0 -358
  738. package/docs/reference/release-performance-sweep.md +0 -360
  739. package/docs/reference/rich-output-protocol.md +0 -101
  740. package/docs/reference/rpc.md +0 -43
  741. package/docs/reference/secret-placeholder-conventions.md +0 -33
  742. package/docs/reference/secretref-credential-surface.md +0 -159
  743. package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
  744. package/docs/reference/session-management-compaction.md +0 -474
  745. package/docs/reference/templates/AGENTS.dev.md +0 -90
  746. package/docs/reference/templates/AGENTS.md +0 -227
  747. package/docs/reference/templates/BOOT.md +0 -16
  748. package/docs/reference/templates/BOOTSTRAP.md +0 -66
  749. package/docs/reference/templates/CLAUDE.md +0 -1
  750. package/docs/reference/templates/HEARTBEAT.md +0 -24
  751. package/docs/reference/templates/IDENTITY.dev.md +0 -52
  752. package/docs/reference/templates/IDENTITY.md +0 -34
  753. package/docs/reference/templates/SOUL.dev.md +0 -82
  754. package/docs/reference/templates/SOUL.md +0 -49
  755. package/docs/reference/templates/TOOLS.dev.md +0 -29
  756. package/docs/reference/templates/TOOLS.md +0 -51
  757. package/docs/reference/templates/USER.dev.md +0 -23
  758. package/docs/reference/templates/USER.md +0 -28
  759. package/docs/reference/test.md +0 -247
  760. package/docs/reference/token-use.md +0 -246
  761. package/docs/reference/transcript-hygiene.md +0 -214
  762. package/docs/reference/wizard.md +0 -252
  763. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
  764. package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
  765. package/docs/security/formal-verification.md +0 -170
  766. package/docs/security/incident-response.md +0 -59
  767. package/docs/security/network-proxy.md +0 -268
  768. package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
  769. package/docs/snippets/plugin-publish/minimal-package.json +0 -16
  770. package/docs/specs/claw-supervisor.md +0 -247
  771. package/docs/start/bootstrapping.md +0 -49
  772. package/docs/start/docs-directory.md +0 -69
  773. package/docs/start/fengming.md +0 -252
  774. package/docs/start/getting-started.md +0 -152
  775. package/docs/start/hubs.md +0 -201
  776. package/docs/start/lore.md +0 -223
  777. package/docs/start/onboarding-overview.md +0 -72
  778. package/docs/start/onboarding.md +0 -98
  779. package/docs/start/quickstart.md +0 -25
  780. package/docs/start/setup.md +0 -178
  781. package/docs/start/showcase.md +0 -363
  782. package/docs/start/wizard-cli-automation.md +0 -232
  783. package/docs/start/wizard-cli-reference.md +0 -331
  784. package/docs/start/wizard.md +0 -141
  785. package/docs/style.css +0 -137
  786. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
  787. package/docs/tools/acp-agents-setup.md +0 -351
  788. package/docs/tools/acp-agents.md +0 -854
  789. package/docs/tools/agent-send.md +0 -130
  790. package/docs/tools/apply-patch.md +0 -64
  791. package/docs/tools/brave-search.md +0 -139
  792. package/docs/tools/browser-control.md +0 -391
  793. package/docs/tools/browser-linux-troubleshooting.md +0 -173
  794. package/docs/tools/browser-login.md +0 -77
  795. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
  796. package/docs/tools/browser.md +0 -810
  797. package/docs/tools/btw.md +0 -159
  798. package/docs/tools/capability-cookbook.md +0 -12
  799. package/docs/tools/clawhub.md +0 -5
  800. package/docs/tools/code-execution.md +0 -173
  801. package/docs/tools/creating-skills.md +0 -158
  802. package/docs/tools/diffs.md +0 -525
  803. package/docs/tools/duckduckgo-search.md +0 -109
  804. package/docs/tools/elevated.md +0 -128
  805. package/docs/tools/exa-search.md +0 -152
  806. package/docs/tools/exec-approvals-advanced.md +0 -444
  807. package/docs/tools/exec-approvals.md +0 -494
  808. package/docs/tools/exec.md +0 -285
  809. package/docs/tools/firecrawl.md +0 -155
  810. package/docs/tools/gemini-search.md +0 -114
  811. package/docs/tools/goal.md +0 -217
  812. package/docs/tools/grok-search.md +0 -129
  813. package/docs/tools/image-generation.md +0 -493
  814. package/docs/tools/index.md +0 -178
  815. package/docs/tools/kimi-search.md +0 -105
  816. package/docs/tools/llm-task.md +0 -137
  817. package/docs/tools/lobster.md +0 -365
  818. package/docs/tools/loop-detection.md +0 -154
  819. package/docs/tools/media-overview.md +0 -160
  820. package/docs/tools/minimax-search.md +0 -102
  821. package/docs/tools/multi-agent-sandbox-tools.md +0 -409
  822. package/docs/tools/music-generation.md +0 -372
  823. package/docs/tools/ollama-search.md +0 -153
  824. package/docs/tools/pdf.md +0 -213
  825. package/docs/tools/perplexity-search.md +0 -220
  826. package/docs/tools/plugin.md +0 -363
  827. package/docs/tools/reactions.md +0 -100
  828. package/docs/tools/searxng-search.md +0 -141
  829. package/docs/tools/skills-config.md +0 -195
  830. package/docs/tools/skills.md +0 -569
  831. package/docs/tools/slash-commands.md +0 -487
  832. package/docs/tools/steer.md +0 -77
  833. package/docs/tools/subagents.md +0 -651
  834. package/docs/tools/tavily.md +0 -162
  835. package/docs/tools/thinking.md +0 -142
  836. package/docs/tools/tokenjuice.md +0 -84
  837. package/docs/tools/tool-search.md +0 -269
  838. package/docs/tools/trajectory.md +0 -229
  839. package/docs/tools/tts.md +0 -1009
  840. package/docs/tools/video-generation.md +0 -555
  841. package/docs/tools/web-fetch.md +0 -210
  842. package/docs/tools/web.md +0 -461
  843. package/docs/tts.md +0 -11
  844. package/docs/vps.md +0 -139
  845. package/docs/web/control-ui.md +0 -512
  846. package/docs/web/dashboard.md +0 -107
  847. package/docs/web/index.md +0 -133
  848. package/docs/web/tui.md +0 -250
  849. package/docs/web/webchat.md +0 -102
  850. package/npm-shrinkwrap.json +0 -12861
  851. package/patches/.gitkeep +0 -0
  852. package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
  853. package/pnpm-workspace.yaml +0 -120
  854. package/scripts/crabbox-wrapper.mjs +0 -2004
  855. package/scripts/lib/official-external-channel-catalog.json +0 -560
  856. package/scripts/lib/official-external-plugin-catalog.json +0 -264
  857. package/scripts/lib/official-external-provider-catalog.json +0 -158
  858. package/scripts/lib/package-dist-imports.mjs +0 -171
  859. package/scripts/npm-runner.mjs +0 -91
  860. package/scripts/postinstall-bundled-plugins.mjs +0 -978
  861. package/scripts/preinstall-package-manager-warning.mjs +0 -64
  862. package/scripts/prepare-git-hooks.mjs +0 -72
  863. package/scripts/windows-cmd-helpers.mjs +0 -22
  864. package/skills/batch/SKILL.md +0 -118
  865. package/skills/code-review/SKILL.md +0 -107
  866. package/skills/debug/SKILL.md +0 -83
  867. package/skills/loop/SKILL.md +0 -118
  868. package/skills/run/SKILL.md +0 -79
  869. package/skills/run-skill-generator/SKILL.md +0 -179
  870. package/skills/verify/SKILL.md +0 -103
  871. package/src/agents/templates/HEARTBEAT.md +0 -3
@@ -1,886 +0,0 @@
1
- ---
2
- summary: "CLI reference for `fengming policy` conformance checks"
3
- read_when:
4
- - You want to check FengMing settings against an authored policy.jsonc
5
- - You want policy findings in doctor lint
6
- - You need a policy attestation hash for audit evidence
7
- title: "Policy"
8
- ---
9
-
10
- # `fengming policy`
11
-
12
- `fengming policy` is provided by the bundled Policy plugin. Policy is an
13
- enterprise conformance layer over existing FengMing settings. It does not add a
14
- second configuration system. `policy.jsonc` defines authored requirements,
15
- FengMing observes the active workspace as evidence, and policy health checks
16
- report drift through `doctor --lint`. The final conformance signal is a clean
17
- `doctor --lint` run; policy contributes findings to that shared lint surface
18
- instead of creating a separate health gate.
19
-
20
- Policy currently manages configured channels, MCP servers, model providers,
21
- network SSRF posture, ingress/channel access posture, Gateway exposure posture, agent workspace posture,
22
- FengMing config secret provider/auth profile posture, and governed tool
23
- declarations. For example, IT or a workspace operator can record that Telegram
24
- is not an approved channel provider, restrict MCP servers and model refs to
25
- approved entries, require private-network fetch/browser access to remain
26
- disabled, require direct-message session isolation and channel ingress posture
27
- to stay within reviewed bounds, require Gateway bind/auth/HTTP exposure to stay within reviewed
28
- bounds, require agent workspace access and tool denies to stay in a reviewed
29
- posture, require FengMing config SecretRefs to use managed providers, require
30
- config auth profiles to carry provider/mode metadata, require governed tools to
31
- carry risk and sensitivity metadata, then use `doctor --lint` as the shared
32
- conformance gate.
33
-
34
- Use policy when a workspace needs a durable statement such as "these channels
35
- must not be enabled" or "governed tools must declare approval metadata" and a
36
- repeatable way to prove that FengMing still conforms to that statement. Use
37
- regular config and workspace docs alone when you only need local behavior and
38
- do not need policy findings or attestation output.
39
-
40
- ## Quick start
41
-
42
- Enable the bundled Policy plugin before first use:
43
-
44
- ```bash
45
- fengming plugins enable policy
46
- ```
47
-
48
- When policy is enabled, doctor can load policy health checks without activating
49
- arbitrary plugins. The plugin remains enabled if `policy.jsonc` is missing, so
50
- doctor can report the missing artifact.
51
-
52
- Policy is authored, not generated from the user's current settings. A minimal
53
- policy for channels, MCP servers, model providers, network posture, ingress/channel access, Gateway
54
- exposure, agent workspace posture, configured sandbox runtime posture, FengMing
55
- config secret provider/auth profile posture, and tool metadata looks like this:
56
-
57
- ```jsonc
58
- {
59
- "channels": {
60
- "denyRules": [
61
- {
62
- "id": "no-telegram",
63
- "when": { "provider": "telegram" },
64
- "reason": "Telegram is not approved for this workspace.",
65
- },
66
- ],
67
- },
68
- "mcp": {
69
- "servers": {
70
- "allow": ["docs"],
71
- "deny": ["untrusted"],
72
- },
73
- },
74
- "models": {
75
- "providers": {
76
- "allow": ["openai", "anthropic"],
77
- "deny": ["openrouter"],
78
- },
79
- },
80
- "network": {
81
- "privateNetwork": {
82
- "allow": false,
83
- },
84
- },
85
- "ingress": {
86
- "session": {
87
- "requireDmScope": "per-channel-peer",
88
- },
89
- "channels": {
90
- "allowDmPolicies": ["pairing", "allowlist", "disabled"],
91
- "denyOpenGroups": true,
92
- "requireMentionInGroups": true,
93
- },
94
- },
95
- "gateway": {
96
- "exposure": {
97
- "allowNonLoopbackBind": false,
98
- "allowTailscaleFunnel": false,
99
- },
100
- "auth": {
101
- "requireAuth": true,
102
- "requireExplicitRateLimit": true,
103
- },
104
- "controlUi": {
105
- "allowInsecure": false,
106
- },
107
- "remote": {
108
- "allow": false,
109
- },
110
- "http": {
111
- "denyEndpoints": ["chatCompletions", "responses"],
112
- "requireUrlAllowlists": true,
113
- },
114
- },
115
- "agents": {
116
- "workspace": {
117
- "allowedAccess": ["none", "ro"],
118
- "denyTools": ["exec", "process", "write", "edit", "apply_patch"],
119
- },
120
- },
121
- "secrets": {
122
- "requireManagedProviders": true,
123
- "denySources": ["exec"],
124
- "allowInsecureProviders": false,
125
- },
126
- "auth": {
127
- "profiles": {
128
- "requireMetadata": ["provider", "mode"],
129
- "allowModes": ["api_key", "token"],
130
- },
131
- },
132
- "tools": {
133
- "requireMetadata": ["risk", "sensitivity", "owner"],
134
- "profiles": {
135
- "allow": ["messaging", "minimal"],
136
- },
137
- "fs": {
138
- "requireWorkspaceOnly": true,
139
- },
140
- "exec": {
141
- "allowSecurity": ["deny", "allowlist"],
142
- "requireAsk": ["always"],
143
- "allowHosts": ["sandbox"],
144
- },
145
- "elevated": {
146
- "allow": false,
147
- },
148
- "denyTools": ["group:runtime", "group:fs"],
149
- },
150
- }
151
- ```
152
-
153
- The rules are the authority. A category block is only a namespace; checks run
154
- when a concrete rule is present. FengMing reads current `channels.*` settings
155
- `mcp.servers.*`, `models.providers.*`, selected agent model refs, network SSRF
156
- settings, direct-message session scope, channel DM policy, channel group policy,
157
- channel/group mention gates, Gateway bind/auth/Control UI/Tailscale/remote/HTTP
158
- posture, FengMing config agent sandbox workspace access and tool deny posture, config secret
159
- provider and SecretRef provenance, config auth profile metadata, configured
160
- global/per-agent tool posture, and `TOOLS.md` declarations as evidence, then
161
- reports observed state that does not conform. If a policy denies non-loopback
162
- Gateway binds, omit `gateway.bind` only when you
163
- are willing to review the runtime default; set `gateway.bind=loopback` for
164
- strict config conformance. For read-only agent posture, configure sandbox mode
165
- on the applicable defaults or agent and set `workspaceAccess` to `none` or
166
- `ro`; omitted or `off` sandbox mode does not satisfy a read-only/no-write
167
- policy. `agents.workspace.denyTools` supports `exec`, `process`, `write`,
168
- `edit`, and `apply_patch`; FengMing config `group:fs` covers file mutation tools
169
- and `group:runtime` covers shell/process tools. Tool posture policy observes
170
- `tools.profile`, `tools.allow`, `tools.alsoAllow`, `tools.deny`,
171
- `tools.fs.workspaceOnly`, `tools.exec.security`, `tools.exec.ask`,
172
- `tools.exec.host`, `tools.elevated.enabled`, and the same per-agent
173
- `agents.list[].tools.*` overrides. It does not read runtime/operator approval
174
- state such as exec-approvals.json, and it does not enforce tool calls at
175
- runtime. Secret evidence records
176
- provider/source posture and SecretRef metadata, never raw secret values. Policy
177
- does not read or attest per-agent credential stores such as `auth-profiles.json`;
178
- those stores remain owned by the existing auth and credential flows.
179
-
180
- ### Policy rule reference
181
-
182
- Each policy field below is optional. A check runs only when the matching rule is
183
- present in `policy.jsonc`. The observed state is existing FengMing config or
184
- workspace metadata; policy reports drift but does not rewrite runtime behavior
185
- unless a repair path is explicitly available and enabled.
186
-
187
- Policy overlays keep broad top-level rules global, then let named scope blocks
188
- add stricter normal policy sections for explicit selectors. A scope name is a
189
- descriptive bucket only; matching uses the selector values inside the scope.
190
- The overlay is additive: global claims still run, and a scoped claim can emit
191
- its own finding against the same observed config.
192
-
193
- #### Scoped overlays
194
-
195
- Use `scopes.<scopeName>` when one set of agents or channels needs stricter
196
- policy than the top-level baseline. Agent-scoped sections use `agentIds`, which
197
- supports `tools.*`, `agents.workspace.*`, and `sandbox.*`. Channel-scoped
198
- ingress uses `channelIds`, which supports `ingress.channels.*`. Unsupported
199
- sections are rejected instead of being ignored. If an `agentIds` entry is not
200
- present in `agents.list[]`, FengMing evaluates the scoped rule against inherited
201
- global/default posture for that runtime agent id.
202
-
203
- ```jsonc
204
- {
205
- "tools": {
206
- "exec": {
207
- "allowHosts": ["sandbox", "node"],
208
- },
209
- },
210
- "sandbox": {
211
- "requireMode": ["all", "non-main"],
212
- },
213
- "scopes": {
214
- "release-workspace": {
215
- "agentIds": ["release-agent", "review-agent"],
216
- "agents": {
217
- "workspace": {
218
- "allowedAccess": ["none", "ro"],
219
- },
220
- },
221
- },
222
- "release-lockdown": {
223
- "agentIds": ["release-agent"],
224
- "tools": {
225
- "exec": {
226
- "allowHosts": ["sandbox"],
227
- "allowSecurity": ["deny", "allowlist"],
228
- "requireAsk": ["always"],
229
- },
230
- "denyTools": ["exec", "process", "write", "edit", "apply_patch"],
231
- },
232
- "sandbox": {
233
- "requireMode": ["all"],
234
- "allowBackends": ["docker"],
235
- },
236
- },
237
- "shell-sandbox": {
238
- "agentIds": ["shell-agent"],
239
- "sandbox": {
240
- "allowBackends": ["openshell"],
241
- "containers": {
242
- "requireReadOnlyMounts": false,
243
- },
244
- },
245
- },
246
- "telegram-ingress": {
247
- "channelIds": ["telegram"],
248
- "ingress": {
249
- "channels": {
250
- "allowDmPolicies": ["pairing"],
251
- "denyOpenGroups": true,
252
- "requireMentionInGroups": true,
253
- },
254
- },
255
- },
256
- },
257
- }
258
- ```
259
-
260
- The same agent can appear in multiple scopes when each scope governs different
261
- fields, as shown above. A repeated scoped field for the same agent must be
262
- equally or more restrictive according to policy metadata; weaker duplicate
263
- claims are rejected. Strictness metadata treats allow-lists as subsets,
264
- deny-lists as supersets, and required booleans as fixed requirements.
265
-
266
- Container posture policy is evaluated only against evidence FengMing can
267
- observe for the matched agent. If an enabled `sandbox.containers.*` rule applies
268
- to an agent whose sandbox backend cannot expose that field, policy reports
269
- `policy/sandbox-container-posture-unobservable` instead of treating the claim as
270
- passing. Use separate `agentIds` scopes for agent groups that use different
271
- sandbox backends, and leave unsupported container rules unset or false for the
272
- groups where those fields cannot be observed.
273
-
274
- Top-level `ingress.session.requireDmScope` remains global because
275
- `session.dmScope` is not channel-attributable evidence.
276
-
277
- | Selector | Supported sections | Use when |
278
- | ------------ | ------------------------------------------ | ------------------------------------------------- |
279
- | `agentIds` | `tools`, `agents.workspace`, and `sandbox` | One or more runtime agents need stricter rules. |
280
- | `channelIds` | `ingress.channels` | One or more channels need stricter ingress rules. |
281
-
282
- Every scope present in `policy.jsonc` must be valid and enforceable.
283
-
284
- #### Channels
285
-
286
- | Policy field | Observed state | Use when |
287
- | ------------------------------------ | --------------------------------------- | ------------------------------------------------------------ |
288
- | `channels.denyRules[].when.provider` | `channels.*` provider and enabled state | Deny configured channels from a provider such as `telegram`. |
289
- | `channels.denyRules[].reason` | Finding message and repair hint context | Explain why the provider is denied. |
290
-
291
- #### MCP servers
292
-
293
- | Policy field | Observed state | Use when |
294
- | ------------------- | ------------------- | ---------------------------------------------------------- |
295
- | `mcp.servers.allow` | `mcp.servers.*` ids | Require every configured MCP server to be in an allowlist. |
296
- | `mcp.servers.deny` | `mcp.servers.*` ids | Deny specific configured MCP server ids. |
297
-
298
- #### Model providers
299
-
300
- | Policy field | Observed state | Use when |
301
- | ------------------------ | ------------------------------------------------ | ------------------------------------------------------------------------------- |
302
- | `models.providers.allow` | `models.providers.*` ids and selected model refs | Require configured providers and selected model refs to use approved providers. |
303
- | `models.providers.deny` | `models.providers.*` ids and selected model refs | Deny configured providers and selected model refs by provider id. |
304
-
305
- #### Network
306
-
307
- | Policy field | Observed state | Use when |
308
- | ------------------------------ | ----------------------------------- | ------------------------------------------------------------------ |
309
- | `network.privateNetwork.allow` | Private-network SSRF escape hatches | Set to `false` to require private-network access to stay disabled. |
310
-
311
- #### Ingress and channel access
312
-
313
- | Policy field | Observed state | Use when |
314
- | ----------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------ |
315
- | `ingress.session.requireDmScope` | `session.dmScope` | Require a reviewed direct-message isolation scope. |
316
- | `ingress.channels.allowDmPolicies` | `channels.*.dmPolicy` and legacy channel DM policy fields | Allow only reviewed direct-message channel policies. |
317
- | `ingress.channels.denyOpenGroups` | Channel, account, and group ingress policy | Deny open group ingress for configured channels and accounts. |
318
- | `ingress.channels.requireMentionInGroups` | Channel, account, group, guild, and nested mention gate config | Require mention gates when group ingress is open or mention-gated. |
319
-
320
- #### Gateway
321
-
322
- | Policy field | Observed state | Use when |
323
- | --------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------ |
324
- | `gateway.exposure.allowNonLoopbackBind` | `gateway.bind` | Set to `false` to require loopback Gateway binding. |
325
- | `gateway.exposure.allowTailscaleFunnel` | Tailscale serve/funnel Gateway posture | Set to `false` to deny Tailscale Funnel exposure. |
326
- | `gateway.auth.requireAuth` | `gateway.auth.mode` | Set to `true` to reject disabled Gateway auth. |
327
- | `gateway.auth.requireExplicitRateLimit` | `gateway.auth.rateLimit` | Set to `true` to require explicit auth rate-limit config. |
328
- | `gateway.controlUi.allowInsecure` | Control UI insecure auth/device/origin toggles | Set to `false` to deny insecure Control UI exposure toggles. |
329
- | `gateway.remote.allow` | Remote Gateway mode/config | Set to `false` to deny remote Gateway mode. |
330
- | `gateway.http.denyEndpoints` | Gateway HTTP API endpoints | Deny endpoint ids such as `chatCompletions` or `responses`. |
331
- | `gateway.http.requireUrlAllowlists` | Gateway HTTP URL-fetch inputs | Set to `true` to require URL allowlists on URL-fetch inputs. |
332
-
333
- #### Agent workspace
334
-
335
- | Policy field | Observed state | Use when |
336
- | -------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
337
- | `agents.workspace.allowedAccess` | `agents.defaults.sandbox.workspaceAccess` and `agents.list[].sandbox.workspaceAccess` | Allow only sandbox workspace access values such as `none` or `ro`. |
338
- | `agents.workspace.denyTools` | Global and per-agent tool deny config | Require workspace/runtime mutation tools such as `exec`, `process`, `write`, `edit`, or `apply_patch` to be denied. |
339
-
340
- #### Sandbox posture
341
-
342
- | Policy field | Observed state | Use when |
343
- | ----------------------------------------------------- | ------------------------------------------------------- | -------------------------------------------------------------- |
344
- | `sandbox.requireMode` | `agents.defaults.sandbox.mode` and per-agent mode | Allow only reviewed sandbox modes such as `all` or `non-main`. |
345
- | `sandbox.allowBackends` | `agents.defaults.sandbox.backend` and per-agent backend | Allow only reviewed sandbox backends such as `docker`. |
346
- | `sandbox.containers.denyHostNetwork` | Container-backed sandbox/browser network mode | Deny host network mode. |
347
- | `sandbox.containers.denyContainerNamespaceJoin` | Container-backed sandbox/browser network mode | Deny joining another container network namespace. |
348
- | `sandbox.containers.requireReadOnlyMounts` | Container-backed sandbox/browser mount mode | Require mounts to be read-only. |
349
- | `sandbox.containers.denyContainerRuntimeSocketMounts` | Container-backed sandbox/browser mount targets | Deny container runtime socket mounts. |
350
- | `sandbox.containers.denyUnconfinedProfiles` | Container security profile posture | Deny unconfined container security profiles. |
351
- | `sandbox.browser.requireCdpSourceRange` | Sandbox browser CDP source range | Require browser CDP exposure to declare a source range. |
352
-
353
- Policy treats missing `sandbox.mode` as the implicit default `off`, so
354
- `sandbox.requireMode` reports a fresh or unconfigured sandbox as outside an
355
- allowlist such as `["all"]`.
356
-
357
- #### Secrets
358
-
359
- | Policy field | Observed state | Use when |
360
- | --------------------------------- | -------------------------------------------------------- | ----------------------------------------------------------------------- |
361
- | `secrets.requireManagedProviders` | Config SecretRefs and `secrets.providers.*` declarations | Set to `true` to require SecretRefs to point at declared providers. |
362
- | `secrets.denySources` | Secret provider sources and SecretRef sources | Deny sources such as `exec`, `file`, or another configured source name. |
363
- | `secrets.allowInsecureProviders` | Insecure secret-provider posture flags | Set to `false` to reject providers that opt into insecure posture. |
364
-
365
- #### Auth profiles
366
-
367
- | Policy field | Observed state | Use when |
368
- | ------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------ |
369
- | `auth.profiles.requireMetadata` | `auth.profiles.*` provider and mode metadata | Require metadata keys such as `provider` and `mode` on config auth profiles. |
370
- | `auth.profiles.allowModes` | `auth.profiles.*.mode` | Allow only supported auth profile modes such as `api_key`, `aws-sdk`, `oauth`, or `token`. |
371
-
372
- #### Tool metadata
373
-
374
- | Policy field | Observed state | Use when |
375
- | ----------------------- | -------------------------------- | ------------------------------------------------------------------------------------------ |
376
- | `tools.requireMetadata` | Governed `TOOLS.md` declarations | Require governed tools to declare metadata keys such as `risk`, `sensitivity`, or `owner`. |
377
-
378
- #### Tool posture
379
-
380
- | Policy field | Observed state | Use when |
381
- | ------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
382
- | `tools.profiles.allow` | `tools.profile` and `agents.list[].tools.profile` | Allow only tool profile ids such as `minimal`, `messaging`, or `coding`. |
383
- | `tools.fs.requireWorkspaceOnly` | `tools.fs.workspaceOnly` and per-agent `tools.fs` overrides | Set to `true` to require workspace-only filesystem tool posture. |
384
- | `tools.exec.allowSecurity` | `tools.exec.security` and per-agent exec security | Allow only exec security modes such as `deny` or `allowlist`. |
385
- | `tools.exec.requireAsk` | `tools.exec.ask` and per-agent exec ask mode | Require approval posture such as `always`. |
386
- | `tools.exec.allowHosts` | `tools.exec.host` and per-agent exec host routing | Allow only exec host routing modes such as `sandbox`. |
387
- | `tools.elevated.allow` | `tools.elevated.enabled` and per-agent elevated posture | Set to `false` to require elevated tool mode to stay disabled. |
388
- | `tools.alsoAllow.expected` | `tools.alsoAllow` and per-agent `tools.alsoAllow` | Require exact `alsoAllow` entries and report missing or unexpected additive tool grants. |
389
- | `tools.denyTools` | `tools.deny` and `agents.list[].tools.deny` | Require configured tool deny lists to include tool ids or groups such as `group:runtime` and `group:fs`. |
390
-
391
- Run policy-only checks during authoring:
392
-
393
- ```bash
394
- fengming policy check
395
- fengming policy check --json
396
- fengming policy check --severity-min error
397
- ```
398
-
399
- `policy check` runs only the policy check set and emits evidence, findings, and
400
- attestation hashes. The same findings also appear in `fengming doctor --lint`
401
- when the Policy plugin is enabled.
402
-
403
- Compare an operator policy file to an authored baseline policy file:
404
-
405
- ```bash
406
- fengming policy compare --baseline official.policy.jsonc
407
- fengming policy compare --baseline official.policy.jsonc --policy policy.jsonc --json
408
- ```
409
-
410
- `policy compare` compares policy file syntax to policy file syntax. It does not
411
- inspect FengMing runtime state, evidence, credentials, or secrets. The command
412
- uses the same policy rule metadata that governs scoped overlays: allowlists must
413
- stay equal or narrower, denylists must stay equal or broader, required booleans
414
- must keep their required value, ordered strings must move only toward the more
415
- restrictive end of the configured order, and exact lists must match.
416
-
417
- The baseline file can be an organization-authored policy. The checked policy can
418
- use stricter values or add extra policy rules. A top-level checked rule can also
419
- satisfy a scoped baseline rule when it is equally or more restrictive because
420
- top-level policy applies broadly. Scope names do not need to match; scoped
421
- comparison is keyed by selector value such as `agentIds` or `channelIds` and by
422
- the policy field being checked.
423
-
424
- Example clean compare JSON output reports only policy-file comparison state:
425
-
426
- ```json
427
- {
428
- "ok": true,
429
- "baselinePath": "official.policy.jsonc",
430
- "policyPath": "policy.jsonc",
431
- "rulesChecked": 3,
432
- "findings": []
433
- }
434
- ```
435
-
436
- Example clean `policy check --json` output includes stable hashes that can be
437
- recorded by an operator or supervisor:
438
-
439
- ```json
440
- {
441
- "ok": true,
442
- "attestation": {
443
- "policy": {
444
- "path": "policy.jsonc",
445
- "hash": "sha256:..."
446
- },
447
- "workspace": {
448
- "scope": "policy",
449
- "hash": "sha256:..."
450
- },
451
- "findingsHash": "sha256:...",
452
- "attestationHash": "sha256:..."
453
- },
454
- "checksRun": 5,
455
- "checksSkipped": 0,
456
- "findings": []
457
- }
458
- ```
459
-
460
- ## Configure policy
461
-
462
- Policy config lives under `plugins.entries.policy.config`.
463
-
464
- ```jsonc
465
- {
466
- "plugins": {
467
- "entries": {
468
- "policy": {
469
- "enabled": true,
470
- "config": {
471
- "enabled": true,
472
- "path": "policy.jsonc",
473
- "workspaceRepairs": false,
474
- "expectedHash": "sha256:...",
475
- "expectedAttestationHash": "sha256:...",
476
- },
477
- },
478
- },
479
- },
480
- }
481
- ```
482
-
483
- | Setting | Purpose |
484
- | ------------------------- | --------------------------------------------------------------- |
485
- | `enabled` | Enable policy checks even before `policy.jsonc` exists. |
486
- | `workspaceRepairs` | Allow `doctor --fix` to edit policy-managed workspace settings. |
487
- | `expectedHash` | Optional hash-lock for the approved policy artifact. |
488
- | `expectedAttestationHash` | Optional hash-lock for the last accepted clean policy check. |
489
- | `path` | Workspace-relative location of the policy artifact. |
490
-
491
- Set `plugins.entries.policy.config.enabled` to `false` to disable policy checks
492
- for a workspace while leaving the plugin installed.
493
-
494
- Tool metadata requirements are authored in `policy.jsonc` with
495
- `tools.requireMetadata`, for example `["risk", "sensitivity", "owner"]`.
496
-
497
- ## Accept policy state
498
-
499
- Example JSON output:
500
-
501
- ```json
502
- {
503
- "ok": true,
504
- "attestation": {
505
- "checkedAt": "2026-05-10T20:00:00.000Z",
506
- "policy": {
507
- "path": "policy.jsonc",
508
- "hash": "sha256:..."
509
- },
510
- "workspace": {
511
- "scope": "policy",
512
- "hash": "sha256:..."
513
- },
514
- "findingsHash": "sha256:...",
515
- "attestationHash": "sha256:..."
516
- },
517
- "evidence": {
518
- "channels": [
519
- {
520
- "id": "telegram",
521
- "provider": "telegram",
522
- "source": "oc://fengming.config/channels/telegram",
523
- "enabled": false
524
- }
525
- ],
526
- "mcpServers": [
527
- {
528
- "id": "docs",
529
- "transport": "stdio",
530
- "source": "oc://fengming.config/mcp/servers/docs",
531
- "command": "npx"
532
- }
533
- ],
534
- "modelProviders": [
535
- {
536
- "id": "openai",
537
- "source": "oc://fengming.config/models/providers/openai"
538
- }
539
- ],
540
- "modelRefs": [
541
- {
542
- "ref": "openai/gpt-5.5",
543
- "provider": "openai",
544
- "model": "gpt-5.5",
545
- "source": "oc://fengming.config/agents/defaults/model"
546
- }
547
- ],
548
- "network": [
549
- {
550
- "id": "browser-private-network",
551
- "source": "oc://fengming.config/browser/ssrfPolicy/dangerouslyAllowPrivateNetwork",
552
- "value": false
553
- }
554
- ],
555
- "gatewayExposure": [
556
- {
557
- "id": "gateway-bind",
558
- "kind": "bind",
559
- "source": "oc://fengming.config/gateway/bind",
560
- "value": "loopback",
561
- "nonLoopback": false,
562
- "explicit": true
563
- }
564
- ],
565
- "agentWorkspace": [
566
- {
567
- "id": "agents-defaults-workspace-access",
568
- "kind": "workspaceAccess",
569
- "source": "oc://fengming.config/agents/defaults/sandbox/workspaceAccess",
570
- "scope": "defaults",
571
- "value": "ro",
572
- "sandboxMode": "all",
573
- "sandboxModeSource": "oc://fengming.config/agents/defaults/sandbox/mode",
574
- "sandboxEnabled": true,
575
- "explicit": true
576
- },
577
- {
578
- "id": "agents-defaults-tool-exec",
579
- "kind": "toolDeny",
580
- "source": "oc://fengming.config/tools/deny",
581
- "scope": "defaults",
582
- "tool": "exec",
583
- "denied": true,
584
- "explicit": true
585
- }
586
- ],
587
- "secrets": [
588
- {
589
- "id": "vault",
590
- "kind": "provider",
591
- "source": "oc://fengming.config/secrets/providers/vault",
592
- "providerSource": "env"
593
- },
594
- {
595
- "id": "oc://fengming.config/models/providers/openai/apiKey",
596
- "kind": "input",
597
- "source": "oc://fengming.config/models/providers/openai/apiKey",
598
- "provenance": "secretRef",
599
- "refSource": "env",
600
- "refProvider": "vault"
601
- }
602
- ],
603
- "authProfiles": [
604
- {
605
- "id": "github",
606
- "source": "oc://fengming.config/auth/profiles/github",
607
- "validMetadata": true,
608
- "provider": "github",
609
- "mode": "token"
610
- }
611
- ],
612
- "tools": [
613
- {
614
- "id": "deploy",
615
- "source": "oc://TOOLS.md/tools/deploy",
616
- "line": 12,
617
- "risk": "critical",
618
- "sensitivity": "restricted",
619
- "capabilities": ["IRREVERSIBLE_EXTERNAL"]
620
- }
621
- ]
622
- },
623
- "checksRun": 30,
624
- "checksSkipped": 0,
625
- "findings": []
626
- }
627
- ```
628
-
629
- The policy hash identifies the authored rule artifact. The evidence block
630
- records the observed FengMing state used by the policy checks. The
631
- `workspace.hash` value identifies that evidence payload for the checked scope.
632
- The findings hash identifies the exact finding set returned by the check.
633
- `checkedAt` records when the evaluation ran. The attestation hash identifies
634
- the stable claim: policy hash, evidence hash, findings hash, and whether the
635
- result was clean. It intentionally does not include `checkedAt`, so the same
636
- policy state produces the same attestation across repeated checks. Together,
637
- these form the audit tuple for this policy check.
638
-
639
- If a later gateway or supervisor uses policy to block, approve, or annotate a
640
- runtime action, it should record the attestation hash from the last clean policy
641
- check. `checkedAt` stays in JSON output for audit logs, but is not part of the
642
- stable attestation hash.
643
-
644
- Use this lifecycle when accepting policy state:
645
-
646
- 1. Author or review `policy.jsonc`.
647
- 2. Run `fengming policy check --json`.
648
- 3. If the result is clean, record `attestation.policy.hash` as `expectedHash`.
649
- 4. Record `attestation.attestationHash` as `expectedAttestationHash`.
650
- 5. Re-run `fengming doctor --lint` in CI or release gates.
651
-
652
- If policy rules change intentionally, update both accepted hashes from a clean
653
- check. If workspace settings change intentionally but policy stays the same,
654
- only `expectedAttestationHash` usually changes.
655
-
656
- Enabling or upgrading `agents.workspace` rules adds `agentWorkspace` evidence to
657
- the workspace hash and attestation hash. Operators should review the new
658
- evidence and refresh accepted attestation hashes after enabling these rules.
659
- Enabling or upgrading tool posture rules adds `toolPosture` evidence in the
660
- same way.
661
-
662
- `fengming policy watch` runs the same check repeatedly and reports when the
663
- current evidence no longer matches `expectedAttestationHash`:
664
-
665
- ```bash
666
- fengming policy watch --json
667
- ```
668
-
669
- Use `--once` in CI or scripts that only need one drift evaluation. Without
670
- `--once`, the command polls every two seconds by default; use `--interval-ms` to
671
- choose a different interval.
672
-
673
- ## Findings
674
-
675
- Policy currently verifies:
676
-
677
- | Check id | Finding |
678
- | ------------------------------------------------- | --------------------------------------------------------------------------------- |
679
- | `policy/policy-jsonc-missing` | Policy is enabled but `policy.jsonc` is missing. |
680
- | `policy/policy-jsonc-invalid` | Policy cannot be parsed or contains malformed rule entries. |
681
- | `policy/policy-hash-mismatch` | Policy does not match configured `expectedHash`. |
682
- | `policy/attestation-hash-mismatch` | Current policy evidence no longer matches the accepted attestation. |
683
- | `policy/policy-conformance-invalid` | A baseline or checked policy file has invalid comparison syntax. |
684
- | `policy/policy-conformance-missing` | A checked policy file is missing a rule required by the baseline policy file. |
685
- | `policy/policy-conformance-weaker` | A checked policy file has a weaker value than the baseline policy file. |
686
- | `policy/channels-denied-provider` | An enabled channel matches a channel deny rule. |
687
- | `policy/mcp-denied-server` | A configured MCP server is denied by policy. |
688
- | `policy/mcp-unapproved-server` | A configured MCP server is outside the allowlist. |
689
- | `policy/models-denied-provider` | A configured model provider or model ref uses a denied provider. |
690
- | `policy/models-unapproved-provider` | A configured model provider or model ref is outside the allowlist. |
691
- | `policy/network-private-access-enabled` | A private-network SSRF escape hatch is enabled when policy denies it. |
692
- | `policy/ingress-dm-policy-unapproved` | A channel DM policy is outside the policy allowlist. |
693
- | `policy/ingress-dm-scope-unapproved` | `session.dmScope` does not match the policy-required DM isolation scope. |
694
- | `policy/ingress-open-groups-denied` | A channel group policy is `open` while policy denies open group ingress. |
695
- | `policy/ingress-group-mention-required` | A channel or group entry disables mention gates while policy requires them. |
696
- | `policy/gateway-non-loopback-bind` | Gateway bind posture permits non-loopback exposure when policy denies it. |
697
- | `policy/gateway-auth-disabled` | Gateway authentication is disabled when policy requires auth. |
698
- | `policy/gateway-rate-limit-missing` | Gateway auth rate-limit posture is not explicit when policy requires it. |
699
- | `policy/gateway-control-ui-insecure` | Gateway Control UI insecure exposure toggles are enabled. |
700
- | `policy/gateway-tailscale-funnel` | Gateway Tailscale Funnel exposure is enabled when policy denies it. |
701
- | `policy/gateway-remote-enabled` | Gateway remote mode is active when policy denies it. |
702
- | `policy/gateway-http-endpoint-enabled` | A Gateway HTTP API endpoint is enabled while denied by policy. |
703
- | `policy/gateway-http-url-fetch-unrestricted` | Gateway HTTP URL-fetch input lacks a required URL allowlist. |
704
- | `policy/agents-workspace-access-denied` | Agent sandbox mode or workspace access is outside the policy allowlist. |
705
- | `policy/agents-tool-not-denied` | An agent or default config does not deny a tool required by policy. |
706
- | `policy/tools-profile-unapproved` | A configured global or per-agent tool profile is outside the allowlist. |
707
- | `policy/tools-fs-workspace-only-required` | Filesystem tools are not configured with workspace-only path posture. |
708
- | `policy/tools-exec-security-unapproved` | Exec security mode is outside the policy allowlist. |
709
- | `policy/tools-exec-ask-unapproved` | Exec ask mode is outside the policy allowlist. |
710
- | `policy/tools-exec-host-unapproved` | Exec host routing is outside the policy allowlist. |
711
- | `policy/tools-elevated-enabled` | Elevated tool mode is enabled when policy denies it. |
712
- | `policy/tools-also-allow-missing` | A configured `alsoAllow` list is missing an entry required by policy. |
713
- | `policy/tools-also-allow-unexpected` | A configured `alsoAllow` list includes an entry not expected by policy. |
714
- | `policy/tools-required-deny-missing` | A global or per-agent tool deny list does not include a required denied tool. |
715
- | `policy/sandbox-mode-unapproved` | Sandbox mode is outside the policy allowlist. |
716
- | `policy/sandbox-backend-unapproved` | Sandbox backend is outside the policy allowlist. |
717
- | `policy/sandbox-container-posture-unobservable` | A container posture rule is enabled for a backend that cannot observe it. |
718
- | `policy/sandbox-container-host-network-denied` | A container-backed sandbox or browser uses host network mode. |
719
- | `policy/sandbox-container-namespace-join-denied` | A container-backed sandbox or browser joins another container namespace. |
720
- | `policy/sandbox-container-mount-mode-required` | A container-backed sandbox or browser mount is not read-only. |
721
- | `policy/sandbox-container-runtime-socket-mount` | A container-backed sandbox or browser mount exposes the container runtime socket. |
722
- | `policy/sandbox-container-unconfined-profile` | Container sandbox profile is unconfined when policy denies it. |
723
- | `policy/sandbox-browser-cdp-source-range-missing` | Sandbox browser CDP source range is missing when policy requires one. |
724
- | `policy/secrets-unmanaged-provider` | A config SecretRef references a provider not declared under `secrets.providers`. |
725
- | `policy/secrets-denied-provider-source` | A config secret provider or SecretRef uses a source denied by policy. |
726
- | `policy/secrets-insecure-provider` | A secret provider opts into insecure posture when policy denies it. |
727
- | `policy/auth-profile-invalid-metadata` | A config auth profile is missing valid provider or mode metadata. |
728
- | `policy/auth-profile-unapproved-mode` | A config auth profile mode is outside the policy allowlist. |
729
- | `policy/tools-missing-risk-level` | A governed tool declaration is missing risk metadata. |
730
- | `policy/tools-unknown-risk-level` | A governed tool declaration uses an unknown risk value. |
731
- | `policy/tools-missing-sensitivity-token` | A governed tool declaration is missing sensitivity metadata. |
732
- | `policy/tools-missing-owner` | A governed tool declaration is missing owner metadata. |
733
- | `policy/tools-unknown-sensitivity-token` | A governed tool declaration uses an unknown sensitivity value. |
734
-
735
- Policy findings can include both `target` and `requirement`. `target` is the
736
- observed workspace thing that does not conform. `requirement` is the authored
737
- policy rule that made it a finding. Both values are addresses today, usually
738
- `oc://` paths, but the field names describe their policy role rather than the
739
- address format.
740
-
741
- Example JSON finding:
742
-
743
- ```json
744
- {
745
- "checkId": "policy/channels-denied-provider",
746
- "severity": "error",
747
- "message": "Channel 'telegram' uses denied provider 'telegram'.",
748
- "source": "policy",
749
- "path": "fengming config",
750
- "ocPath": "oc://fengming.config/channels/telegram",
751
- "target": "oc://fengming.config/channels/telegram",
752
- "requirement": "oc://policy.jsonc/channels/denyRules/#0",
753
- "fixHint": "Telegram is not approved for this workspace."
754
- }
755
- ```
756
-
757
- Example tool finding:
758
-
759
- ```json
760
- {
761
- "checkId": "policy/tools-missing-risk-level",
762
- "severity": "error",
763
- "message": "TOOLS.md tool 'deploy' has no explicit risk classification.",
764
- "source": "policy",
765
- "path": "TOOLS.md",
766
- "line": 12,
767
- "ocPath": "oc://TOOLS.md/tools/deploy",
768
- "target": "oc://TOOLS.md/tools/deploy",
769
- "requirement": "oc://policy.jsonc/tools/requireMetadata"
770
- }
771
- ```
772
-
773
- Example MCP finding:
774
-
775
- ```json
776
- {
777
- "checkId": "policy/mcp-unapproved-server",
778
- "severity": "error",
779
- "message": "MCP server 'remote' is not in the policy allowlist.",
780
- "source": "policy",
781
- "path": "fengming config",
782
- "ocPath": "oc://fengming.config/mcp/servers/remote",
783
- "target": "oc://fengming.config/mcp/servers/remote",
784
- "requirement": "oc://policy.jsonc/mcp/servers/allow"
785
- }
786
- ```
787
-
788
- Example model-provider finding:
789
-
790
- ```json
791
- {
792
- "checkId": "policy/models-unapproved-provider",
793
- "severity": "error",
794
- "message": "Model ref 'anthropic/claude-sonnet-4.7' uses unapproved provider 'anthropic'.",
795
- "source": "policy",
796
- "path": "fengming config",
797
- "ocPath": "oc://fengming.config/agents/defaults/model/fallbacks/#0",
798
- "target": "oc://fengming.config/agents/defaults/model/fallbacks/#0",
799
- "requirement": "oc://policy.jsonc/models/providers/allow"
800
- }
801
- ```
802
-
803
- Example network finding:
804
-
805
- ```json
806
- {
807
- "checkId": "policy/network-private-access-enabled",
808
- "severity": "error",
809
- "message": "Network setting 'browser-private-network' allows private-network access.",
810
- "source": "policy",
811
- "path": "fengming config",
812
- "ocPath": "oc://fengming.config/browser/ssrfPolicy/dangerouslyAllowPrivateNetwork",
813
- "target": "oc://fengming.config/browser/ssrfPolicy/dangerouslyAllowPrivateNetwork",
814
- "requirement": "oc://policy.jsonc/network/privateNetwork/allow"
815
- }
816
- ```
817
-
818
- Example Gateway exposure finding:
819
-
820
- ```json
821
- {
822
- "checkId": "policy/gateway-non-loopback-bind",
823
- "severity": "error",
824
- "message": "Gateway bind setting 'gateway-bind' permits non-loopback exposure.",
825
- "source": "policy",
826
- "path": "fengming config",
827
- "ocPath": "oc://fengming.config/gateway/bind",
828
- "target": "oc://fengming.config/gateway/bind",
829
- "requirement": "oc://policy.jsonc/gateway/exposure/allowNonLoopbackBind"
830
- }
831
- ```
832
-
833
- Example agent workspace finding:
834
-
835
- ```json
836
- {
837
- "checkId": "policy/agents-workspace-access-denied",
838
- "severity": "error",
839
- "message": "agents.defaults sandbox workspaceAccess 'rw' is not allowed by policy.",
840
- "source": "policy",
841
- "path": "fengming config",
842
- "ocPath": "oc://fengming.config/agents/defaults/sandbox/workspaceAccess",
843
- "target": "oc://fengming.config/agents/defaults/sandbox/workspaceAccess",
844
- "requirement": "oc://policy.jsonc/agents/workspace/allowedAccess"
845
- }
846
- ```
847
-
848
- ## Repair
849
-
850
- `doctor --lint` and `policy check` are read-only.
851
-
852
- `doctor --fix` only edits policy-managed workspace settings when
853
- `workspaceRepairs` is explicitly enabled. Without that opt-in, policy checks
854
- report what they would repair and leave settings unchanged.
855
-
856
- In this version, repair can disable channels that are enabled in FengMing config
857
- but denied by `channels.denyRules`. Enable `workspaceRepairs` only after the
858
- policy file has been reviewed, because a valid deny rule can turn off a
859
- configured channel:
860
-
861
- ```jsonc
862
- {
863
- "plugins": {
864
- "entries": {
865
- "policy": {
866
- "config": {
867
- "workspaceRepairs": true,
868
- },
869
- },
870
- },
871
- },
872
- }
873
- ```
874
-
875
- ## Exit codes
876
-
877
- | Command | `0` | `1` | `2` |
878
- | ---------------- | ------------------------------------------------------ | ------------------------------------------------------------------- | ---------------------------- |
879
- | `policy check` | No findings at the threshold. | One or more findings met the threshold. | Argument or runtime failure. |
880
- | `policy compare` | The policy file is at least as strict as the baseline. | The policy file is invalid, missing, or weaker than baseline rules. | Argument or runtime failure. |
881
- | `policy watch` | No findings and accepted hash is current. | Findings exist or accepted attestation is stale. | Argument or runtime failure. |
882
-
883
- ## Related
884
-
885
- - [Doctor lint mode](/cli/doctor#lint-mode)
886
- - [Path CLI](/cli/path)