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,744 +0,0 @@
1
- ---
2
- summary: "Mantis is the visual end-to-end verification system for reproducing FengMing bugs on live transports, capturing before and after evidence, and attaching artifacts to PRs."
3
- title: "Mantis"
4
- read_when:
5
- - Building or running live visual QA for FengMing bugs
6
- - Adding before and after verification for a pull request
7
- - Adding Discord, Slack, WhatsApp, or other live transport scenarios
8
- - Debugging QA runs that need screenshots, browser automation, or VNC access
9
- ---
10
-
11
- Mantis is the FengMing end-to-end verification system for bugs that need a real
12
- runtime, a real transport, and visible proof. It runs a scenario against a known
13
- bad ref, captures evidence, runs the same scenario against a candidate ref, and
14
- publishes the comparison as artifacts that a maintainer can inspect from a PR or
15
- from a local command.
16
-
17
- Mantis starts with Discord because Discord gives us a high-value first lane:
18
- real bot auth, real guild channels, reactions, threads, native commands, and a
19
- browser UI where humans can visually confirm what the transport showed.
20
-
21
- ## Goals
22
-
23
- - Reproduce a bug from a GitHub issue or PR with the same transport shape users
24
- see.
25
- - Capture a **before** artifact on the baseline ref before applying the fix.
26
- - Capture an **after** artifact on the candidate ref after applying the fix.
27
- - Use a deterministic oracle whenever possible, such as a Discord REST reaction
28
- read or channel transcript check.
29
- - Capture screenshots when the bug has a visible UI surface.
30
- - Run locally from an agent-controlled CLI and remotely from GitHub.
31
- - Preserve enough machine state for VNC rescue when login, browser automation, or
32
- provider auth gets stuck.
33
- - Post concise status to an operator Discord channel when the run is blocked,
34
- needs manual VNC help, or finishes.
35
-
36
- ## Non goals
37
-
38
- - Mantis is not a replacement for unit tests. A Mantis run should usually become
39
- a smaller regression test after the fix is understood.
40
- - Mantis is not the normal fast CI gate. It is slower, uses live credentials, and
41
- is reserved for bugs where the live environment matters.
42
- - Mantis should not require a human for normal operation. Manual VNC is a rescue
43
- path, not the happy path.
44
- - Mantis does not store raw secrets in artifacts, logs, screenshots, Markdown
45
- reports, or PR comments.
46
-
47
- ## Ownership
48
-
49
- Mantis lives in the FengMing QA stack.
50
-
51
- - FengMing owns the scenario runtime, transport adapters, evidence schema, and
52
- local CLI under `pnpm fengming qa mantis`.
53
- - QA Lab owns the live transport harness pieces, browser capture helpers, and
54
- artifact writers.
55
- - Crabbox owns warmed Linux machines when a remote VM is needed.
56
- - GitHub Actions owns the remote workflow entrypoint and artifact retention.
57
- - ClawSweeper owns GitHub comment routing: parsing maintainer commands,
58
- dispatching the workflow, and posting the final PR comment.
59
- - FengMing agents drive Mantis through Codex when a scenario needs agentic setup,
60
- debugging, or stuck-state reporting.
61
-
62
- This boundary keeps transport knowledge in FengMing, machine scheduling in
63
- Crabbox, and maintainer workflow glue in ClawSweeper.
64
-
65
- ## Command shape
66
-
67
- The first local command verifies the Discord bot, guild, channel, message send,
68
- reaction send, and artifact path:
69
-
70
- ```bash
71
- pnpm fengming qa mantis discord-smoke \
72
- --output-dir .artifacts/qa-e2e/mantis/discord-smoke
73
- ```
74
-
75
- The local before and after runner accepts this shape:
76
-
77
- ```bash
78
- pnpm fengming qa mantis run \
79
- --transport discord \
80
- --scenario discord-status-reactions-tool-only \
81
- --baseline origin/main \
82
- --candidate HEAD \
83
- --output-dir .artifacts/qa-e2e/mantis/local-discord-status-reactions
84
- ```
85
-
86
- The runner creates detached baseline and candidate worktrees under the output
87
- directory, installs dependencies, builds each ref, runs the scenario with
88
- `--allow-failures`, then writes `baseline/`, `candidate/`, `comparison.json`,
89
- and `mantis-report.md`. For the first Discord scenario, a successful verification
90
- means baseline status is `fail` and candidate status is `pass`.
91
-
92
- The second Discord before/after probe targets thread attachments:
93
-
94
- ```bash
95
- pnpm fengming qa mantis run \
96
- --transport discord \
97
- --scenario discord-thread-reply-filepath-attachment \
98
- --baseline <bug-ref> \
99
- --candidate <fix-ref> \
100
- --output-dir .artifacts/qa-e2e/mantis/local-discord-thread-attachment
101
- ```
102
-
103
- That scenario posts a parent message with the driver bot, creates a real Discord
104
- thread, calls FengMing's `message.thread-reply` action with a repo-local
105
- `filePath`, then polls the thread for the SUT reply and attachment filename. The
106
- baseline screenshot shows the reply with no attachment; the candidate screenshot
107
- shows the expected `mantis-thread-report.md` attachment.
108
-
109
- The first VM/browser primitive is the desktop smoke:
110
-
111
- ```bash
112
- pnpm fengming qa mantis desktop-browser-smoke \
113
- --output-dir .artifacts/qa-e2e/mantis/desktop-browser
114
- ```
115
-
116
- It leases or reuses a Crabbox desktop machine, starts a visible browser inside the
117
- VNC session, captures the desktop, pulls artifacts back to the local output
118
- directory, and writes the reconnect command into the report. The command defaults
119
- to the Hetzner provider because it is the first provider with working desktop/VNC
120
- coverage in the Mantis lane. Override it with `--provider`, `--crabbox-bin`, or
121
- `FENGMING_MANTIS_CRABBOX_PROVIDER` when running against another Crabbox fleet.
122
-
123
- Useful desktop smoke flags:
124
-
125
- - `--lease-id <cbx_...>` or `FENGMING_MANTIS_CRABBOX_LEASE_ID` reuses a warmed desktop.
126
- - `--browser-url <url>` changes the page opened in the visible browser.
127
- - `--html-file <path>` renders a repo-local HTML artifact in the visible browser. Mantis uses this to capture the generated Discord status-reaction timeline through a real Crabbox desktop.
128
- - `--browser-profile-dir <remote-path>` reuses a remote Chrome user-data-dir so a persistent Mantis desktop can stay logged in between runs. Use this for the long-lived Discord Web viewer profile.
129
- - `--browser-profile-archive-env <name>` restores a base64 `.tgz` Chrome user-data-dir archive from the named environment variable before launching the browser. Use this for logged-in witnesses such as Discord Web. The default env var is `FENGMING_MANTIS_BROWSER_PROFILE_TGZ_B64`.
130
- - `--video-duration <seconds>` controls the MP4 capture length. Use a longer duration for slow logged-in web apps that need time to settle.
131
- - `--keep-lease` or `FENGMING_MANTIS_KEEP_VM=1` keeps a newly created passing lease open for VNC inspection. Failed runs keep the lease by default when one was created so an operator can reconnect.
132
- - `--class`, `--idle-timeout`, and `--ttl` tune machine size and lease lifetime.
133
-
134
- For Discord Web evidence, Mantis uses a dedicated viewer account instead of a
135
- bot token. The live Discord API scenario remains the oracle: it creates the real
136
- thread, sends the SUT `thread-reply`, and checks the attachment through Discord
137
- REST. When `FENGMING_QA_DISCORD_CAPTURE_UI_METADATA=1` is set, the scenario also
138
- writes a Discord Web URL artifact. When `FENGMING_QA_DISCORD_KEEP_THREADS=1` is
139
- set, it leaves that thread available long enough for a logged-in browser to open
140
- and record it.
141
-
142
- The GitHub workflow opens the candidate thread URL in Discord Web, captures a
143
- screenshot, records an MP4, and generates a trimmed GIF preview when Crabbox
144
- media tooling is available. Prefer a persistent viewer profile path configured
145
- through `MANTIS_DISCORD_VIEWER_CHROME_PROFILE_DIR`, because full Chrome profile
146
- archives can outgrow GitHub's secret-size limit. For small/bootstrap profiles,
147
- the workflow can also restore a base64 `.tgz` archive from
148
- `MANTIS_DISCORD_VIEWER_CHROME_PROFILE_TGZ_B64`. If neither profile source is
149
- configured, the workflow still publishes the deterministic baseline/candidate
150
- attachment screenshots and logs a notice that the logged-in Discord Web witness
151
- was skipped.
152
-
153
- The first full desktop transport primitive is the Slack desktop smoke:
154
-
155
- ```bash
156
- pnpm fengming qa mantis slack-desktop-smoke \
157
- --output-dir .artifacts/qa-e2e/mantis/slack-desktop \
158
- --gateway-setup \
159
- --scenario slack-canary \
160
- --keep-lease
161
- ```
162
-
163
- It leases or reuses a Crabbox desktop machine, syncs the current checkout into
164
- the VM, runs `pnpm fengming qa slack` inside that VM, opens Slack Web in the VNC
165
- browser, captures the visible desktop, and copies both the Slack QA artifacts and
166
- the VNC screenshot back to the local output directory. This is the first Mantis
167
- shape where the SUT FengMing gateway and the browser both live inside the same
168
- Linux desktop VM.
169
-
170
- With `--gateway-setup`, the command prepares a persistent disposable FengMing
171
- home at `$HOME/.fengming-mantis/slack-fengming`, patches Slack Socket Mode
172
- configuration for the selected channel, starts `fengming gateway run` on port
173
- `38973`, and keeps Chrome running in the VNC session. This is the "leave me a
174
- Linux desktop with Slack and a claw running" mode; the bot-to-bot Slack QA lane
175
- remains the default when `--gateway-setup` is omitted.
176
-
177
- Required inputs for `--credential-source env`:
178
-
179
- - `FENGMING_QA_SLACK_CHANNEL_ID`
180
- - `FENGMING_QA_SLACK_DRIVER_BOT_TOKEN`
181
- - `FENGMING_QA_SLACK_SUT_BOT_TOKEN`
182
- - `FENGMING_QA_SLACK_SUT_APP_TOKEN`
183
- - `FENGMING_LIVE_OPENAI_KEY` for the remote model lane. If only
184
- `OPENAI_API_KEY` is set locally, Mantis maps it to `FENGMING_LIVE_OPENAI_KEY`
185
- before invoking Crabbox so Crabbox's `FENGMING_*` env forwarding can carry it
186
- into the VM.
187
-
188
- With `--gateway-setup --credential-source convex`, Mantis leases the Slack SUT
189
- credential from the shared pool before creating the VM and forwards the leased
190
- channel id, Socket Mode app token, and bot token as the `FENGMING_MANTIS_SLACK_*`
191
- runtime env inside the desktop. That keeps GitHub workflows thin: they only need
192
- the Convex broker secret, not raw Slack bot or app tokens.
193
-
194
- Useful Slack desktop flags:
195
-
196
- - `--lease-id <cbx_...>` reruns against a machine where an operator already logged in to Slack Web through VNC.
197
- - `--gateway-setup` starts a persistent FengMing Slack gateway in the VM instead of only running the bot-to-bot QA lane.
198
- - `--keep-lease` keeps the gateway VM open for VNC inspection after success; `--no-keep-lease` stops it after collecting artifacts.
199
- - `--slack-url <url>` opens a specific Slack Web URL. Without it, Mantis derives `https://app.slack.com/client/<team>/<channel>` from Slack `auth.test` when the SUT bot token is available.
200
- - `--slack-channel-id <id>` controls the Slack channel allowlist used by gateway setup.
201
- - `FENGMING_MANTIS_SLACK_BROWSER_PROFILE_DIR` controls the persistent Chrome profile inside the VM. The default is `$HOME/.config/fengming-mantis/slack-chrome-profile`, so a manual Slack Web login survives reruns on the same lease.
202
- - `--credential-source convex --credential-role ci` uses the shared credential pool instead of direct Slack env tokens.
203
- - `--provider-mode`, `--model`, `--alt-model`, and `--fast` pass through to the Slack live lane.
204
-
205
- Approval checkpoint runs render Slack API message snapshots into checkpoint PNGs
206
- for CI-safe visual proof. `slack-desktop-smoke.png` is only proof of Slack Web
207
- when the lease uses a warm browser profile that is already logged in.
208
-
209
- The GitHub smoke workflow is `Mantis Discord Smoke`. The before and after GitHub
210
- workflow for the first real scenario is `Mantis Discord Status Reactions`. It
211
- accepts:
212
-
213
- - `baseline_ref`: the ref expected to reproduce queued-only behavior.
214
- - `candidate_ref`: the ref expected to show `queued -> thinking -> done`.
215
-
216
- It checks out the workflow harness ref, builds separate baseline and candidate
217
- worktrees, runs `discord-status-reactions-tool-only` against each worktree, and
218
- uploads `baseline/`, `candidate/`, `comparison.json`, and `mantis-report.md` as
219
- Actions artifacts. It also renders each lane's timeline HTML in a Crabbox
220
- desktop browser and publishes those VNC screenshots beside the deterministic
221
- timeline PNGs in the PR comment. The same PR comment embeds lightweight
222
- motion-trimmed GIF previews generated by `crabbox media preview`, links to the
223
- matching motion-trimmed MP4 clips, and keeps the full desktop MP4 files for deep
224
- inspection. Screenshots stay inline for quick review. The workflow builds the
225
- Crabbox CLI from
226
- `fengming/crabbox` main so it can use the current desktop/browser lease flags
227
- before the next Crabbox binary release is cut.
228
-
229
- `Mantis Scenario` is the generic manual entrypoint. It takes a `scenario_id`,
230
- `candidate_ref`, optional `baseline_ref`, and optional `pr_number`, then
231
- dispatches the scenario-owned workflow. The wrapper is intentionally thin:
232
- scenario workflows still own their transport setup, credentials, VM class,
233
- expected oracle, and artifact manifest.
234
-
235
- `Mantis Slack Desktop Smoke` is the first Slack VM workflow. It checks out the
236
- trusted candidate ref in a separate worktree, leases a Crabbox Linux desktop,
237
- runs `pnpm fengming qa mantis slack-desktop-smoke --gateway-setup` against that
238
- candidate, opens Slack Web in the VNC browser, records the desktop, generates a
239
- motion-trimmed preview with `crabbox media preview`, uploads the full artifact
240
- directory, and optionally posts the inline evidence comment on the target PR.
241
- It defaults to AWS for the desktop lease and exposes a manual provider input so
242
- operators can switch to Hetzner when AWS capacity is slow or unavailable. Use
243
- this lane when you want "a Linux desktop with Slack and a claw running" instead
244
- of only a bot-to-bot Slack transcript.
245
-
246
- `Mantis Telegram Live` wraps the existing Telegram live QA lane in the same PR
247
- evidence pipeline. It checks out the trusted candidate ref in a separate
248
- worktree, runs `pnpm fengming qa telegram --credential-source convex
249
- --credential-role ci`, writes a `mantis-evidence.json` manifest from the
250
- Telegram QA summary and observed-message artifact, renders the redacted
251
- transcript HTML through a Crabbox desktop browser, generates a motion-trimmed GIF
252
- with `crabbox media preview`, and posts the inline PR evidence comment when a PR
253
- number is available. This lane is transcript-visual rather than logged-in
254
- Telegram Web proof: the Telegram Bot API gives stable live message evidence, but
255
- Telegram Web login state is not required for normal Mantis automation.
256
-
257
- `Mantis Telegram Desktop Proof` is the agentic native Telegram Desktop
258
- before/after wrapper. A maintainer can trigger it from a PR comment with
259
- `@fengming-mantis telegram desktop proof`, from the Actions UI with freeform
260
- instructions, or through the generic `Mantis Scenario` dispatcher. The workflow
261
- hands the PR, baseline ref, candidate ref, and maintainer instructions to Codex.
262
- The agent reads the PR, decides what Telegram-visible behavior proves the
263
- change, runs the real-user Crabbox Telegram Desktop proof lane for baseline and
264
- candidate, iterates until the native GIFs are useful, writes paired
265
- `motionPreview` artifacts into `mantis-evidence.json`, uploads the bundle, and
266
- posts a 2-column PR evidence table when a PR number is available.
267
-
268
- For human-in-the-loop Telegram desktop setup, use the scenario builder:
269
-
270
- ```bash
271
- pnpm fengming qa mantis telegram-desktop-builder \
272
- --credential-source convex \
273
- --credential-role maintainer \
274
- --keep-lease
275
- ```
276
-
277
- The builder leases or reuses a Crabbox desktop, installs the native Linux
278
- Telegram Desktop binary, optionally restores a user-session archive, configures
279
- FengMing with the leased Telegram SUT bot token, starts `fengming gateway run`
280
- on port `38974`, posts a driver-bot readiness message to the leased private
281
- group, then captures a screenshot and MP4 from the visible VNC desktop. A bot
282
- token never logs Telegram Desktop in; it only configures FengMing. The desktop
283
- viewer is a separate Telegram user session restored from
284
- `--telegram-profile-archive-env <name>` or created manually through VNC and kept
285
- alive with `--keep-lease`.
286
-
287
- Useful Telegram desktop builder flags:
288
-
289
- - `--lease-id <cbx_...>` reruns against a VM where an operator already logged in to Telegram Desktop.
290
- - `--telegram-profile-archive-env <name>` reads a base64 `.tgz` Telegram Desktop profile archive from that env var and restores it before launch.
291
- - `--telegram-profile-dir <remote-path>` controls the remote Telegram Desktop profile directory. The default is `$HOME/.local/share/TelegramDesktop`.
292
- - `--no-gateway-setup` installs and opens Telegram Desktop without configuring FengMing.
293
- - `--credential-source convex --credential-role ci` uses the shared credential broker instead of direct Telegram env tokens.
294
-
295
- Every PR-publishing scenario writes `mantis-evidence.json` next to its report.
296
- This schema is the handoff between scenario code and GitHub comments:
297
-
298
- ```json
299
- {
300
- "schemaVersion": 1,
301
- "id": "discord-status-reactions",
302
- "title": "Mantis Discord Status Reactions QA",
303
- "summary": "Human-readable top summary for the PR comment.",
304
- "scenario": "discord-status-reactions-tool-only",
305
- "comparison": {
306
- "baseline": { "sha": "...", "status": "fail", "expected": "queued-only" },
307
- "candidate": { "sha": "...", "status": "pass", "expected": "queued -> thinking -> done" },
308
- "pass": true
309
- },
310
- "artifacts": [
311
- {
312
- "kind": "timeline",
313
- "lane": "baseline",
314
- "label": "Baseline queued-only",
315
- "path": "baseline/timeline.png",
316
- "targetPath": "baseline.png",
317
- "alt": "Baseline Discord timeline",
318
- "width": 420
319
- }
320
- ]
321
- }
322
- ```
323
-
324
- Artifact `path` values are relative to the manifest directory. `targetPath`
325
- values are relative paths under the configured Mantis R2/S3 artifact prefix. The
326
- publisher rejects path traversal and skips entries marked `"required": false`
327
- when optional previews or videos are unavailable.
328
-
329
- Supported artifact kinds:
330
-
331
- - `timeline`: deterministic scenario screenshot, usually before/after.
332
- - `desktopScreenshot`: VNC/browser desktop screenshot.
333
- - `motionPreview`: inline animated GIF generated from the desktop recording.
334
- - `motionClip`: motion-trimmed MP4 that removes static lead-in and tail.
335
- - `fullVideo`: full MP4 recording for deep inspection.
336
- - `metadata`: JSON/log sidecar.
337
- - `report`: Markdown report.
338
-
339
- The reusable publisher is `scripts/mantis/publish-pr-evidence.mjs`. Workflows
340
- call it with the manifest, target PR, artifact target root, comment marker,
341
- Actions artifact URL, run URL, and request source. It uploads declared artifacts
342
- to the configured Mantis R2/S3 bucket, builds a summary-first PR comment with
343
- inline images/previews and linked videos, then updates the existing marker
344
- comment or creates one. The workflows publish to `fengming-crabbox-artifacts`
345
- with public URLs under `https://artifacts.fengming.ai`. They provide bucket,
346
- region, and public URL values directly. The reusable publisher requires:
347
-
348
- - `MANTIS_ARTIFACT_R2_ACCESS_KEY_ID`
349
- - `MANTIS_ARTIFACT_R2_SECRET_ACCESS_KEY`
350
- - `MANTIS_ARTIFACT_R2_BUCKET`
351
- - `MANTIS_ARTIFACT_R2_ENDPOINT`
352
- - `MANTIS_ARTIFACT_R2_REGION`
353
- - `MANTIS_ARTIFACT_R2_PUBLIC_BASE_URL`
354
-
355
- You can also trigger the status-reactions run directly from a PR comment:
356
-
357
- ```text
358
- @fengming-mantis discord status reactions
359
- ```
360
-
361
- The comment trigger is intentionally narrow. It only runs on pull request
362
- comments from users with write, maintain, or admin access, and it only recognizes
363
- Discord status-reaction requests. By default it uses the known bad baseline ref
364
- and the current PR head SHA as the candidate. Maintainers can override either
365
- ref:
366
-
367
- ```text
368
- @fengming-mantis discord status reactions baseline=origin/main candidate=HEAD
369
- ```
370
-
371
- Telegram live QA can also be triggered from a PR comment:
372
-
373
- ```text
374
- @fengming-mantis telegram
375
- @fengming-mantis telegram scenario=telegram-status-command
376
- @fengming-mantis telegram scenarios=telegram-status-command,telegram-mentioned-message-reply
377
- ```
378
-
379
- By default it uses the current PR head SHA as the candidate and runs
380
- `telegram-status-command`. Maintainers can override `candidate=...`,
381
- `provider=aws|hetzner`, and `lease=<cbx_...>` when they need a specific ref or a
382
- pre-warmed Crabbox desktop.
383
-
384
- ClawSweeper command examples:
385
-
386
- ```text
387
- @clawsweeper mantis discord discord-status-reactions-tool-only
388
- @clawsweeper verify e2e discord
389
- ```
390
-
391
- The first command is explicit and scenario-focused. The second can later map a PR
392
- or issue to recommended Mantis scenarios from labels, changed files, and
393
- ClawSweeper review findings.
394
-
395
- ## Run lifecycle
396
-
397
- 1. Acquire credentials.
398
- 2. Allocate or reuse a VM.
399
- 3. Prepare the desktop/browser profile when the scenario needs UI evidence.
400
- 4. Prepare a clean checkout for the baseline ref.
401
- 5. Install dependencies and build only what the scenario needs.
402
- 6. Start a child FengMing Gateway with an isolated state directory.
403
- 7. Configure the live transport, provider, model, and browser profile.
404
- 8. Run the scenario and capture baseline evidence.
405
- 9. Stop the gateway and preserve logs.
406
- 10. Prepare the candidate ref in the same VM.
407
- 11. Run the same scenario and capture candidate evidence.
408
- 12. Compare the oracle results and visual evidence.
409
- 13. Write Markdown, JSON, logs, screenshots, and optional trace artifacts.
410
- 14. Upload GitHub Actions artifacts.
411
- 15. Post a concise PR or Discord status message.
412
-
413
- The scenario should be able to fail in two different ways:
414
-
415
- - **Bug reproduced**: baseline failed in the expected way.
416
- - **Harness failure**: environment setup, credentials, Discord API, browser, or
417
- provider failed before the bug oracle was meaningful.
418
-
419
- The final report must separate these cases so maintainers do not confuse a flaky
420
- environment with product behavior.
421
-
422
- ## Discord MVP
423
-
424
- The first scenario should target Discord status reactions in guild channels where
425
- the source reply delivery mode is `message_tool_only`.
426
-
427
- Why it is a good Mantis seed:
428
-
429
- - It is visible in Discord as reactions on the triggering message.
430
- - It has a strong REST oracle through Discord message reaction state.
431
- - It exercises a real FengMing Gateway, Discord bot auth, message dispatch,
432
- source reply delivery mode, status reaction state, and model turn lifecycle.
433
- - It is narrow enough to keep the first implementation honest.
434
-
435
- Expected scenario shape:
436
-
437
- ```yaml
438
- id: discord-status-reactions-tool-only
439
- transport: discord
440
- baseline:
441
- expect:
442
- reproduced: true
443
- candidate:
444
- expect:
445
- fixed: true
446
- config:
447
- messages:
448
- ackReaction: "👀"
449
- ackReactionScope: "group-mentions"
450
- groupChat:
451
- visibleReplies: "message_tool"
452
- statusReactions:
453
- enabled: true
454
- timing:
455
- debounceMs: 0
456
- discord:
457
- requireMention: true
458
- notifyChannel: operator-notify
459
- evidence:
460
- rest:
461
- messageReactions: true
462
- browser:
463
- screenshotMessageRow: true
464
- ```
465
-
466
- Baseline evidence should show the queued acknowledgement reaction but no
467
- lifecycle transition in tool-only mode. Candidate evidence should show lifecycle
468
- status reactions running when `messages.statusReactions.enabled` is explicitly
469
- true.
470
-
471
- The executable first slice is the opt-in Discord live QA scenario:
472
-
473
- ```bash
474
- pnpm fengming qa discord \
475
- --scenario discord-status-reactions-tool-only \
476
- --provider-mode live-frontier \
477
- --model openai/gpt-5.4 \
478
- --alt-model openai/gpt-5.4 \
479
- --fast \
480
- --output-dir .artifacts/qa-e2e/mantis/discord-status-reactions-candidate
481
- ```
482
-
483
- It configures the SUT with always-on guild handling, `visibleReplies:
484
- "message_tool"`, `ackReaction: "👀"`, and explicit status reactions. The oracle
485
- polls the real Discord triggering message and expects the observed sequence
486
- `👀 -> 🤔 -> 👍`. Artifacts include `discord-qa-reaction-timelines.json`,
487
- `discord-status-reactions-tool-only-timeline.html`, and
488
- `discord-status-reactions-tool-only-timeline.png`.
489
-
490
- ## Existing QA pieces
491
-
492
- Mantis should build on the existing private QA stack instead of starting from
493
- zero:
494
-
495
- - `pnpm fengming qa discord` already runs a live Discord lane with driver and
496
- SUT bots.
497
- - The live transport runner already writes reports and observed-message
498
- artifacts under `.artifacts/qa-e2e/`.
499
- - Convex credential leases already provide exclusive access to shared live
500
- transport credentials.
501
- - The browser control service already supports screenshots, snapshots,
502
- headless managed profiles, and remote CDP profiles.
503
- - QA Lab already has a debugger UI and bus for transport-shaped testing.
504
-
505
- The first Mantis implementation can be a thin before/after runner over these
506
- pieces, plus one visual evidence layer.
507
-
508
- ## Evidence model
509
-
510
- Every run writes a stable artifact directory:
511
-
512
- ```text
513
- .artifacts/qa-e2e/mantis/<run-id>/
514
- mantis-report.md
515
- mantis-summary.json
516
- baseline/
517
- summary.json
518
- discord-message.json
519
- screenshot-message-row.png
520
- gateway-debug/
521
- candidate/
522
- summary.json
523
- discord-message.json
524
- screenshot-message-row.png
525
- gateway-debug/
526
- comparison.json
527
- run.log
528
- ```
529
-
530
- `mantis-summary.json` should be the machine-readable source of truth. The
531
- Markdown report is for PR comments and human review.
532
-
533
- The summary must include:
534
-
535
- - refs and SHAs tested
536
- - transport and scenario id
537
- - machine provider and machine id or lease id
538
- - credential source without secret values
539
- - baseline result
540
- - candidate result
541
- - whether the bug reproduced on baseline
542
- - whether the candidate fixed it
543
- - artifact paths
544
- - sanitized setup or cleanup issues
545
-
546
- Screenshots are evidence, not secrets. They still need redaction discipline:
547
- private channel names, user names, or message content may appear. For public PRs,
548
- prefer GitHub Actions artifact links over inline images until the redaction story
549
- is stronger.
550
-
551
- ## Browser and VNC
552
-
553
- The browser lane has two modes:
554
-
555
- - **Headless automation**: default for CI. Chrome runs with CDP enabled, and
556
- Playwright or FengMing browser control captures screenshots.
557
- - **VNC rescue**: enabled on the same VM when login, MFA, Discord anti-automation,
558
- or visual debugging needs a human.
559
-
560
- The Discord observer browser profile should be persistent enough to avoid
561
- logging in for every run, but isolated from personal browser state. A profile
562
- belongs to the Mantis machine pool, not to a developer laptop.
563
-
564
- When Mantis gets stuck, it posts a Discord status message with:
565
-
566
- - run id
567
- - scenario id
568
- - machine provider
569
- - artifact directory
570
- - VNC or noVNC connection instructions if available
571
- - short blocker text
572
-
573
- The first private deployment can post these messages to the existing operator
574
- channel and move to a dedicated Mantis channel later.
575
-
576
- ## Machines
577
-
578
- Mantis should prefer AWS through Crabbox for the first remote implementation.
579
- Crabbox gives us warmed machines, lease tracking, hydration, logs, results, and
580
- cleanup. If AWS capacity is too slow or unavailable, add a Hetzner provider
581
- behind the same machine interface.
582
-
583
- Minimum VM requirements:
584
-
585
- - Linux with a desktop-capable Chrome or Chromium install
586
- - CDP access for browser automation
587
- - VNC or noVNC for rescue
588
- - Node 22 and pnpm
589
- - FengMing checkout and dependency cache
590
- - Playwright Chromium browser cache when Playwright is used
591
- - enough CPU and memory for one FengMing Gateway, one browser, and one model run
592
- - outbound access to Discord, GitHub, model providers, and the credential broker
593
-
594
- The VM should not keep long-lived raw secrets outside the expected credential or
595
- browser profile stores.
596
-
597
- ## Secrets
598
-
599
- Secrets live in GitHub organization or repository secrets for remote runs, and in
600
- a local operator-controlled secret file for local runs.
601
-
602
- Recommended secret names:
603
-
604
- - `FENGMING_QA_DISCORD_MANTIS_BOT_TOKEN`
605
- - `FENGMING_QA_DISCORD_DRIVER_BOT_TOKEN`
606
- - `FENGMING_QA_DISCORD_SUT_BOT_TOKEN`
607
- - `FENGMING_QA_DISCORD_GUILD_ID`
608
- - `FENGMING_QA_DISCORD_CHANNEL_ID`
609
- - `FENGMING_QA_DISCORD_NOTIFY_CHANNEL_ID`
610
- - `FENGMING_QA_REDACT_PUBLIC_METADATA=1` for public GitHub artifact uploads
611
- - `FENGMING_QA_CONVEX_SITE_URL`
612
- - `FENGMING_QA_CONVEX_SECRET_CI`
613
- - `FENGMING_QA_MANTIS_CRABBOX_COORDINATOR`
614
- - `FENGMING_QA_MANTIS_CRABBOX_COORDINATOR_TOKEN`
615
-
616
- Long term, the Convex credential pool should remain the normal source for live
617
- transport credentials. GitHub secrets bootstrap the broker and fallback lanes.
618
- The Discord status-reactions workflow maps the Mantis Crabbox secrets back to
619
- the `CRABBOX_COORDINATOR` and `CRABBOX_COORDINATOR_TOKEN` environment variables
620
- that the Crabbox CLI expects. The plain `CRABBOX_*` GitHub secret names remain
621
- accepted as a compatibility fallback.
622
-
623
- The Mantis runner must never print:
624
-
625
- - Discord bot tokens
626
- - provider API keys
627
- - browser cookies
628
- - auth profile contents
629
- - VNC passwords
630
- - raw credential payloads
631
-
632
- Public artifact uploads should also redact Discord target metadata such as bot,
633
- guild, channel, and message ids. The GitHub smoke workflow enables
634
- `FENGMING_QA_REDACT_PUBLIC_METADATA=1` for this reason.
635
-
636
- If a token is accidentally pasted into an issue, PR, chat, or log, rotate it
637
- after the new secret has been stored.
638
-
639
- ## GitHub artifacts and PR comments
640
-
641
- Mantis workflows should upload the full evidence bundle as a short-lived Actions
642
- artifact. When the workflow is run for a bug report or fix PR, it should also
643
- publish redacted inline media to the configured Mantis R2/S3 bucket and upsert a
644
- comment on that bug or fix PR with inline before/after screenshots. Do not post
645
- the primary proof only on a generic QA automation PR. Raw logs, observed
646
- messages, and other bulky evidence stay in the Actions artifact.
647
-
648
- Production workflows should post those comments with the Mantis GitHub App, not
649
- with `github-actions[bot]`. Store the app id and private key as
650
- `MANTIS_GITHUB_APP_ID` and `MANTIS_GITHUB_APP_PRIVATE_KEY` GitHub Actions
651
- secrets. The workflow uses a hidden marker as the upsert key, updates that
652
- comment when the token can edit it, and creates a new Mantis-owned comment when
653
- an older bot-owned marker cannot be edited.
654
-
655
- The PR comment should be short and visual:
656
-
657
- ```md
658
- Mantis Discord Status Reactions QA
659
-
660
- Summary: Mantis reran the reported Discord status-reaction bug against the known
661
- bad baseline and the candidate fix. The baseline reproduced the bug, while the
662
- candidate showed the expected queued -> thinking -> done sequence.
663
-
664
- - Scenario: `discord-status-reactions-tool-only`
665
- - Run: <workflow run link>
666
- - Artifact: <artifact link>
667
- - Baseline: `<status>` at `<sha>`
668
- - Candidate: `<status>` at `<sha>`
669
-
670
- | Baseline | Candidate |
671
- | ------------------- | ------------------- |
672
- | <inline screenshot> | <inline screenshot> |
673
- ```
674
-
675
- When the run fails because the harness failed, the comment must say that instead
676
- of implying the candidate failed.
677
-
678
- ## Private deployment notes
679
-
680
- A private deployment may already have a Mantis Discord application. Reuse that
681
- application instead of creating another app when it has the right bot
682
- permissions and can be safely rotated.
683
-
684
- Set the initial operator notification channel through secrets or deployment
685
- configuration. It can point at an existing maintainer or operations channel
686
- first, then move to a dedicated Mantis channel once one exists.
687
-
688
- Do not put guild ids, channel ids, bot tokens, browser cookies, or VNC passwords
689
- in this document. Store them in GitHub secrets, the credential broker, or the
690
- operator's local secret store.
691
-
692
- ## Adding a scenario
693
-
694
- A Mantis scenario should declare:
695
-
696
- - id and title
697
- - transport
698
- - required credentials
699
- - baseline ref policy
700
- - candidate ref policy
701
- - FengMing config patch
702
- - setup steps
703
- - stimulus
704
- - expected baseline oracle
705
- - expected candidate oracle
706
- - visual capture targets
707
- - timeout budget
708
- - cleanup steps
709
-
710
- Scenarios should prefer small, typed oracles:
711
-
712
- - Discord reaction state for reaction bugs
713
- - Discord message references for threading bugs
714
- - Slack thread ts and reaction API state for Slack bugs
715
- - email message ids and headers for email bugs
716
- - browser screenshots when UI is the only reliable observable
717
-
718
- Vision checks should be additive. If a platform API can prove the bug, use the
719
- API as the pass/fail oracle and keep screenshots for human confidence.
720
-
721
- ## Provider expansion
722
-
723
- After Discord, the same runner can add:
724
-
725
- - Slack: reactions, threads, app mentions, modals, file uploads.
726
- - Email: Gmail auth and message threading using `gog` where connectors are not
727
- enough.
728
- - WhatsApp: QR login, re-identification, message delivery, media, reactions.
729
- - Telegram: group mention gating, commands, reactions where available.
730
- - Matrix: encrypted rooms, thread or reply relations, restart resume.
731
-
732
- Each transport should have one cheap smoke scenario and one or more bug-class
733
- scenarios. Expensive visual scenarios should stay opt-in.
734
-
735
- ## Open questions
736
-
737
- - Which Discord bot should be the driver, and which should be the SUT, when the
738
- existing Mantis bot is reused?
739
- - Should the observer browser login use a human Discord account, a test account,
740
- or only bot-readable REST evidence for the first phase?
741
- - How long should GitHub retain Mantis artifacts for PRs?
742
- - When should ClawSweeper automatically recommend Mantis instead of waiting for a
743
- maintainer command?
744
- - Should screenshots be redacted or cropped before upload for public PRs?