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.
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli/run-main.js +3 -3
- package/dist/cli-startup-metadata.json +8 -8
- package/dist/{command-registry-DMB-HKIk.js → command-registry-BHIBvpgR.js} +2 -2
- package/dist/{command-registry-C5ooX6PF.js → command-registry-BT5icv-c.js} +2 -2
- package/dist/{command-registry-core-B2w_XWvn.js → command-registry-core-C-a3GaYV.js} +2 -2
- package/dist/{completion-cli-Bf4mEw2W.js → completion-cli-BUfFF31m.js} +2 -2
- package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-DF1iC1pF.js} +2 -2
- package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-CDGNJA8n.js} +2 -2
- package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CAPFdCrE.js} +2 -2
- package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-DUUdUzzu.js} +2 -2
- package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-BwfVXGKK.js} +2 -2
- package/dist/control-ui/assets/{index-jUDczxhd.js → index-JWV4rMUy.js} +4 -4
- package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BqAPpn0Y.js} +2 -2
- package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-gya-0PkG.js} +2 -2
- package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-BdttyTpI.js} +2 -2
- package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-D_rtwBjc.js} +2 -2
- package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-CIGDGkWB.js} +2 -2
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/sw.js +1 -1
- package/dist/crestodian/crestodian.js +1 -1
- package/dist/crestodian/rescue-message.js +1 -1
- package/dist/{crestodian-C0x7JjF-.js → crestodian-CAxGCgHM.js} +3 -3
- package/dist/{dialogue-No0NvYX7.js → dialogue-CHuN9qet.js} +1 -1
- package/dist/gateway/protocol/index.d.ts +1 -1
- package/dist/{index-AZzJCgph.d.ts → index-DbpfOFUf.d.ts} +1 -1
- package/dist/{operations-Z85LFqsT.js → operations-Mvnrndji.js} +1 -1
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/{agent-harness-runtime-CgQiThzm.d.ts → agent-harness-runtime-Bkrjji63.d.ts} +2 -2
- package/dist/plugin-sdk/agent-harness-runtime.d.ts +4 -4
- package/dist/plugin-sdk/agent-harness-task-runtime.d.ts +1 -1
- package/dist/plugin-sdk/agent-harness.d.ts +4 -4
- package/dist/plugin-sdk/agent-runtime.d.ts +1 -1
- package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-ZTBQez8k.d.ts} +9 -9
- package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
- package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
- package/dist/plugin-sdk/channel-core.d.ts +2 -2
- package/dist/plugin-sdk/channel-entry-contract.d.ts +1 -1
- package/dist/plugin-sdk/{channel-pairing-CX6ncj1r.d.ts → channel-pairing-CzsPAHgH.d.ts} +1 -1
- package/dist/plugin-sdk/channel-pairing.d.ts +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
- package/dist/plugin-sdk/cli-backend.d.ts +1 -1
- package/dist/plugin-sdk/compat.d.ts +4 -4
- package/dist/plugin-sdk/{config-schema-DuJUjn6k.d.ts → config-schema-N64y7n8C.d.ts} +1 -1
- package/dist/plugin-sdk/config-schema.d.ts +4 -4
- package/dist/plugin-sdk/{core-CPtu2Ftl.d.ts → core-BWZB2hNB.d.ts} +1 -1
- package/dist/plugin-sdk/core.d.ts +7 -7
- package/dist/plugin-sdk/{delegate-uk6vAMkc.d.ts → delegate-o5xckIuc.d.ts} +1 -1
- package/dist/plugin-sdk/discord.d.ts +3 -3
- package/dist/plugin-sdk/{fengming-runtime-Dt2ZEVYX.d.ts → fengming-runtime-abXAXyq2.d.ts} +1 -1
- package/dist/plugin-sdk/gateway-runtime.d.ts +1 -1
- package/dist/plugin-sdk/{host-compat-CM0h9ODw.d.ts → host-compat-D2Ky8seZ.d.ts} +1 -1
- package/dist/plugin-sdk/{http-registry-BniL_epL.d.ts → http-registry-oxJbX3E-.d.ts} +2 -2
- package/dist/plugin-sdk/image-generation-core.d.ts +4 -4
- package/dist/plugin-sdk/image-generation-runtime.d.ts +3 -3
- package/dist/plugin-sdk/index.d.ts +4 -4
- package/dist/plugin-sdk/lmstudio.d.ts +1 -1
- package/dist/plugin-sdk/{loader-aELh60PE.d.ts → loader-CgJhYjxT.d.ts} +3 -3
- package/dist/plugin-sdk/{logger-BpB3--7Z.d.ts → logger-CyDIBtoX.d.ts} +1 -1
- package/dist/plugin-sdk/logging-core.d.ts +3 -3
- package/dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts +2 -2
- package/dist/plugin-sdk/memory-core-host-engine-foundation.d.ts +3 -3
- package/dist/plugin-sdk/{memory-core-host-engine-storage-DYPjOQCg.d.ts → memory-core-host-engine-storage-DfW7ZqD0.d.ts} +1 -1
- package/dist/plugin-sdk/memory-core-host-engine-storage.d.ts +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-cli.d.ts +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-core.d.ts +3 -3
- package/dist/plugin-sdk/memory-core.d.ts +3 -3
- package/dist/plugin-sdk/memory-host-core.d.ts +3 -3
- package/dist/plugin-sdk/migration-runtime.d.ts +1 -1
- package/dist/plugin-sdk/migration.d.ts +1 -1
- package/dist/plugin-sdk/music-generation-core.d.ts +2 -2
- package/dist/plugin-sdk/{plugin-entry-DO9kQeTr.d.ts → plugin-entry-C9xM-ZA9.d.ts} +1 -1
- package/dist/plugin-sdk/plugin-entry.d.ts +3 -3
- package/dist/plugin-sdk/plugin-runtime.d.ts +3 -3
- package/dist/plugin-sdk/{provider-api-key-auth-DvIiojS6.d.ts → provider-api-key-auth-DOmYPTC2.d.ts} +1 -1
- package/dist/plugin-sdk/provider-auth-api-key.d.ts +4 -4
- package/dist/plugin-sdk/{provider-auth-helpers-CYkWZ0vq.d.ts → provider-auth-helpers-pqDNrZTd.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-auth-input-DUV6ZTw4.d.ts → provider-auth-input-Ckt-cU4H.d.ts} +1 -1
- package/dist/plugin-sdk/provider-auth-result.d.ts +1 -1
- package/dist/plugin-sdk/provider-auth-runtime.d.ts +1 -1
- package/dist/plugin-sdk/provider-auth.d.ts +5 -5
- package/dist/plugin-sdk/provider-catalog-runtime.d.ts +2 -2
- package/dist/plugin-sdk/{provider-catalog-shared-Cm3SyFfL.d.ts → provider-catalog-shared-QvOT8Wz1.d.ts} +1 -1
- package/dist/plugin-sdk/provider-catalog-shared.d.ts +2 -2
- package/dist/plugin-sdk/provider-entry.d.ts +3 -3
- package/dist/plugin-sdk/{provider-model-shared-D5rgn7Gb.d.ts → provider-model-shared-Bnc8IMx5.d.ts} +1 -1
- package/dist/plugin-sdk/provider-model-shared.d.ts +2 -2
- package/dist/plugin-sdk/{provider-registry-DxdZT9UN.d.ts → provider-registry-Ba1nNfhA.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-registry-DiKX35tc.d.ts → provider-registry-CqB5bSAD.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-registry-D0vmhPWL.d.ts → provider-registry-CxdVib8g.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-self-hosted-setup-BPx7JMDC.d.ts → provider-self-hosted-setup-eMoeVPnF.d.ts} +1 -1
- package/dist/plugin-sdk/provider-setup.d.ts +2 -2
- package/dist/plugin-sdk/{provider-stream-DcC2vn_N.d.ts → provider-stream-CGaLae9n.d.ts} +1 -1
- package/dist/plugin-sdk/provider-stream-family.d.ts +2 -2
- package/dist/plugin-sdk/{provider-stream-shared-ByDv3QKm.d.ts → provider-stream-shared-u5mt-8_i.d.ts} +1 -1
- package/dist/plugin-sdk/provider-stream-shared.d.ts +1 -1
- package/dist/plugin-sdk/provider-stream.d.ts +2 -2
- package/dist/plugin-sdk/provider-tools.d.ts +1 -1
- package/dist/plugin-sdk/provider-web-fetch-contract.d.ts +1 -1
- package/dist/plugin-sdk/provider-web-fetch.d.ts +1 -1
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
- package/dist/plugin-sdk/{provider-web-search-contract-fields-CY4v8kS-.d.ts → provider-web-search-contract-fields-BiWOSs_d.d.ts} +1 -1
- package/dist/plugin-sdk/provider-web-search-contract.d.ts +2 -2
- package/dist/plugin-sdk/provider-web-search.d.ts +1 -1
- package/dist/plugin-sdk/realtime-transcription.d.ts +1 -1
- package/dist/plugin-sdk/realtime-voice.d.ts +1 -1
- package/dist/plugin-sdk/{redact-identifier-CVwkabcI.d.ts → redact-identifier-CVqsKaEK.d.ts} +1 -1
- package/dist/plugin-sdk/{registry-CzaGoAKH.d.ts → registry-Gq9OFlb3.d.ts} +2 -2
- package/dist/plugin-sdk/{registry-types-DN1yiH3F.d.ts → registry-types-DyBkef1H.d.ts} +2 -2
- package/dist/plugin-sdk/reply-runtime.d.ts +1 -1
- package/dist/plugin-sdk/runtime-env.d.ts +3 -3
- package/dist/plugin-sdk/runtime-store.d.ts +1 -1
- package/dist/plugin-sdk/runtime.d.ts +3 -3
- package/dist/plugin-sdk/self-hosted-provider-setup.d.ts +2 -2
- package/dist/plugin-sdk/simple-completion-runtime.d.ts +1 -1
- package/dist/plugin-sdk/speech-core.d.ts +2 -2
- package/dist/plugin-sdk/speech.d.ts +2 -2
- package/dist/plugin-sdk/{subsystem-n4Y4vCcQ.d.ts → subsystem-Boo2DQIV.d.ts} +1 -1
- package/dist/plugin-sdk/text-runtime.d.ts +2 -2
- package/dist/plugin-sdk/tool-plugin.d.ts +2 -2
- package/dist/plugin-sdk/{types-BI8R-vGd.d.ts → types-DGF1KeaJ.d.ts} +2 -2
- package/dist/plugin-sdk/{types-CsqNt0j8.d.ts → types-DpaN54PS.d.ts} +1 -1
- package/dist/plugin-sdk/{unhandled-rejections-D9eBl3hT.d.ts → unhandled-rejections-Bez6JG0y.d.ts} +2 -2
- package/dist/plugin-sdk/video-generation-core.d.ts +3 -3
- package/dist/plugin-sdk/video-generation-runtime.d.ts +3 -3
- package/dist/plugin-sdk/webhook-ingress.d.ts +1 -1
- package/dist/plugin-sdk/webhook-targets.d.ts +1 -1
- package/dist/{program-D19g2jaa.js → program-BaCHjV-F.js} +1 -1
- package/dist/{register.crestodian-BhIukKDA.js → register.crestodian-DMJEPMf3.js} +1 -1
- package/dist/register.subclis-B0BgjwyK.js +3 -0
- package/dist/{register.subclis-DVk0HU4k.js → register.subclis-BuoWG93n.js} +2 -2
- package/dist/{register.subclis-core-BK7nVvl6.js → register.subclis-core-BGBFrWE3.js} +2 -2
- package/dist/{standalone-CHrieUsw.js → standalone-CV2Ud6F7.js} +1 -1
- package/dist/tui-Bvt7hhwe.js +3 -0
- package/dist/tui-CFSmzhsm.js +2 -0
- package/dist/{tui-backend-_Pn3Byj-.js → tui-backend-Bm_t5G7x.js} +4 -4
- package/dist/{tui-cli-CAiC39zd.js → tui-cli-9Ny23hmo.js} +1 -1
- package/dist/tui-ink-run-CuExfFLV.js +2 -0
- package/dist/{tui-ink-run-ChXEGj1h.js → tui-ink-run-qNL49iQn.js} +17 -1
- package/package.json +6 -410
- package/CHANGELOG.md +0 -42
- package/THIRD_PARTY_NOTICES.md +0 -37
- package/dist/register.subclis-Bsvdh8RI.js +0 -3
- package/dist/tui-C733Qov0.js +0 -2
- package/dist/tui-DqbscVN5.js +0 -3
- package/dist/tui-ink-run-D4mSfLHj.js +0 -2
- package/docs/.i18n/README.md +0 -81
- package/docs/.i18n/ar-navigation.json +0 -18
- package/docs/.i18n/de-navigation.json +0 -18
- package/docs/.i18n/es-navigation.json +0 -18
- package/docs/.i18n/fr-navigation.json +0 -18
- package/docs/.i18n/glossary.ar.json +0 -78
- package/docs/.i18n/glossary.de.json +0 -78
- package/docs/.i18n/glossary.es.json +0 -78
- package/docs/.i18n/glossary.fa.json +0 -78
- package/docs/.i18n/glossary.fr.json +0 -78
- package/docs/.i18n/glossary.id.json +0 -78
- package/docs/.i18n/glossary.it.json +0 -78
- package/docs/.i18n/glossary.ja-JP.json +0 -98
- package/docs/.i18n/glossary.ko.json +0 -78
- package/docs/.i18n/glossary.nl.json +0 -78
- package/docs/.i18n/glossary.pl.json +0 -78
- package/docs/.i18n/glossary.pt-BR.json +0 -78
- package/docs/.i18n/glossary.th.json +0 -78
- package/docs/.i18n/glossary.tr.json +0 -78
- package/docs/.i18n/glossary.uk.json +0 -78
- package/docs/.i18n/glossary.vi.json +0 -78
- package/docs/.i18n/glossary.zh-CN.json +0 -1122
- package/docs/.i18n/glossary.zh-TW.json +0 -78
- package/docs/.i18n/id-navigation.json +0 -18
- package/docs/.i18n/it-navigation.json +0 -18
- package/docs/.i18n/ja-navigation.json +0 -18
- package/docs/.i18n/ko-navigation.json +0 -18
- package/docs/.i18n/pl-navigation.json +0 -18
- package/docs/.i18n/pt-BR-navigation.json +0 -18
- package/docs/.i18n/tr-navigation.json +0 -18
- package/docs/.i18n/translation-workflow.md +0 -111
- package/docs/.i18n/zh-Hans-navigation.json +0 -552
- package/docs/AGENTS.md +0 -36
- package/docs/CLAUDE.md +0 -1
- package/docs/agent-runtime-architecture.md +0 -48
- package/docs/announcements/bluebubbles-imessage.md +0 -79
- package/docs/auth-credential-semantics.md +0 -124
- package/docs/automation/auth-monitoring.md +0 -11
- package/docs/automation/clawflow.md +0 -12
- package/docs/automation/cron-jobs.md +0 -534
- package/docs/automation/cron-vs-heartbeat.md +0 -11
- package/docs/automation/gmail-pubsub.md +0 -11
- package/docs/automation/hooks.md +0 -387
- package/docs/automation/index.md +0 -135
- package/docs/automation/poll.md +0 -12
- package/docs/automation/standing-orders.md +0 -250
- package/docs/automation/taskflow.md +0 -155
- package/docs/automation/tasks.md +0 -374
- package/docs/automation/troubleshooting.md +0 -12
- package/docs/automation/webhook.md +0 -12
- package/docs/brave-search.md +0 -11
- package/docs/channels/access-groups.md +0 -201
- package/docs/channels/ambient-room-events.md +0 -214
- package/docs/channels/bot-loop-protection.md +0 -131
- package/docs/channels/broadcast-groups.md +0 -472
- package/docs/channels/channel-routing.md +0 -162
- package/docs/channels/clickclack.md +0 -138
- package/docs/channels/discord.md +0 -1758
- package/docs/channels/feishu.md +0 -650
- package/docs/channels/googlechat.md +0 -284
- package/docs/channels/group-messages.md +0 -95
- package/docs/channels/groups.md +0 -524
- package/docs/channels/imessage-from-bluebubbles.md +0 -259
- package/docs/channels/imessage.md +0 -839
- package/docs/channels/index.md +0 -64
- package/docs/channels/irc.md +0 -253
- package/docs/channels/line.md +0 -243
- package/docs/channels/location.md +0 -71
- package/docs/channels/matrix-migration.md +0 -370
- package/docs/channels/matrix-presentation.md +0 -77
- package/docs/channels/matrix-push-rules.md +0 -150
- package/docs/channels/matrix.md +0 -921
- package/docs/channels/mattermost.md +0 -542
- package/docs/channels/msteams.md +0 -1096
- package/docs/channels/nextcloud-talk.md +0 -176
- package/docs/channels/nostr.md +0 -253
- package/docs/channels/pairing.md +0 -214
- package/docs/channels/qqbot.md +0 -314
- package/docs/channels/signal.md +0 -417
- package/docs/channels/slack.md +0 -1623
- package/docs/channels/synology-chat.md +0 -187
- package/docs/channels/telegram.md +0 -1124
- package/docs/channels/tlon.md +0 -296
- package/docs/channels/troubleshooting.md +0 -162
- package/docs/channels/twitch.md +0 -431
- package/docs/channels/wechat.md +0 -171
- package/docs/channels/whatsapp.md +0 -796
- package/docs/channels/yuanbao.md +0 -416
- package/docs/channels/zalo.md +0 -253
- package/docs/channels/zalouser.md +0 -217
- package/docs/ci.md +0 -657
- package/docs/clawhub/publishing.md +0 -96
- package/docs/cli/acp.md +0 -370
- package/docs/cli/agent.md +0 -109
- package/docs/cli/agents.md +0 -253
- package/docs/cli/approvals.md +0 -190
- package/docs/cli/backup.md +0 -98
- package/docs/cli/browser.md +0 -307
- package/docs/cli/channels.md +0 -154
- package/docs/cli/clawbot.md +0 -25
- package/docs/cli/commitments.md +0 -90
- package/docs/cli/completion.md +0 -39
- package/docs/cli/config.md +0 -504
- package/docs/cli/configure.md +0 -77
- package/docs/cli/crestodian.md +0 -337
- package/docs/cli/cron.md +0 -304
- package/docs/cli/daemon.md +0 -67
- package/docs/cli/dashboard.md +0 -33
- package/docs/cli/devices.md +0 -240
- package/docs/cli/directory.md +0 -68
- package/docs/cli/dns.md +0 -53
- package/docs/cli/docs.md +0 -63
- package/docs/cli/doctor.md +0 -241
- package/docs/cli/flows.md +0 -52
- package/docs/cli/gateway.md +0 -572
- package/docs/cli/health.md +0 -43
- package/docs/cli/hooks.md +0 -345
- package/docs/cli/index.md +0 -400
- package/docs/cli/infer.md +0 -364
- package/docs/cli/logs.md +0 -68
- package/docs/cli/mcp.md +0 -529
- package/docs/cli/memory.md +0 -183
- package/docs/cli/message.md +0 -317
- package/docs/cli/migrate.md +0 -334
- package/docs/cli/models.md +0 -239
- package/docs/cli/node.md +0 -177
- package/docs/cli/nodes.md +0 -76
- package/docs/cli/onboard.md +0 -250
- package/docs/cli/pairing.md +0 -77
- package/docs/cli/path.md +0 -511
- package/docs/cli/plugins.md +0 -459
- package/docs/cli/policy.md +0 -886
- package/docs/cli/proxy.md +0 -89
- package/docs/cli/qr.md +0 -56
- package/docs/cli/reset.md +0 -39
- package/docs/cli/sandbox.md +0 -208
- package/docs/cli/secrets.md +0 -202
- package/docs/cli/security.md +0 -136
- package/docs/cli/sessions.md +0 -164
- package/docs/cli/setup.md +0 -59
- package/docs/cli/skills.md +0 -122
- package/docs/cli/status.md +0 -45
- package/docs/cli/system.md +0 -89
- package/docs/cli/tasks.md +0 -111
- package/docs/cli/transcripts.md +0 -151
- package/docs/cli/tui.md +0 -91
- package/docs/cli/uninstall.md +0 -44
- package/docs/cli/update.md +0 -243
- package/docs/cli/voicecall.md +0 -204
- package/docs/cli/webhooks.md +0 -117
- package/docs/cli/wiki.md +0 -256
- package/docs/concepts/active-memory.md +0 -856
- package/docs/concepts/agent-loop.md +0 -185
- package/docs/concepts/agent-runtimes.md +0 -276
- package/docs/concepts/agent-workspace.md +0 -230
- package/docs/concepts/agent.md +0 -140
- package/docs/concepts/architecture.md +0 -154
- package/docs/concepts/channel-docking.md +0 -145
- package/docs/concepts/commitments.md +0 -150
- package/docs/concepts/compaction.md +0 -203
- package/docs/concepts/context-engine.md +0 -347
- package/docs/concepts/context.md +0 -199
- package/docs/concepts/delegate-architecture.md +0 -319
- package/docs/concepts/dreaming.md +0 -264
- package/docs/concepts/experimental-features.md +0 -109
- package/docs/concepts/features.md +0 -91
- package/docs/concepts/fengming-sdk.md +0 -323
- package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
- package/docs/concepts/mantis.md +0 -744
- package/docs/concepts/markdown-formatting.md +0 -139
- package/docs/concepts/memory-builtin.md +0 -148
- package/docs/concepts/memory-honcho.md +0 -144
- package/docs/concepts/memory-qmd.md +0 -271
- package/docs/concepts/memory-search.md +0 -167
- package/docs/concepts/memory.md +0 -299
- package/docs/concepts/message-lifecycle-refactor.md +0 -1126
- package/docs/concepts/messages.md +0 -214
- package/docs/concepts/model-failover.md +0 -384
- package/docs/concepts/model-providers.md +0 -719
- package/docs/concepts/models.md +0 -371
- package/docs/concepts/multi-agent.md +0 -625
- package/docs/concepts/oauth.md +0 -198
- package/docs/concepts/parallel-specialist-lanes.md +0 -127
- package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
- package/docs/concepts/presence.md +0 -117
- package/docs/concepts/progress-drafts.md +0 -406
- package/docs/concepts/qa-e2e-automation.md +0 -947
- package/docs/concepts/qa-matrix.md +0 -139
- package/docs/concepts/queue-steering.md +0 -90
- package/docs/concepts/queue.md +0 -136
- package/docs/concepts/retry.md +0 -86
- package/docs/concepts/session-pruning.md +0 -104
- package/docs/concepts/session-tool.md +0 -188
- package/docs/concepts/session.md +0 -164
- package/docs/concepts/soul.md +0 -116
- package/docs/concepts/streaming.md +0 -257
- package/docs/concepts/system-prompt.md +0 -328
- package/docs/concepts/timezone.md +0 -47
- package/docs/concepts/typebox.md +0 -309
- package/docs/concepts/typing-indicators.md +0 -88
- package/docs/concepts/usage-tracking.md +0 -66
- package/docs/date-time.md +0 -126
- package/docs/debug/node-issue.md +0 -90
- package/docs/diagnostics/flags.md +0 -182
- package/docs/docs.json +0 -1862
- package/docs/fengming-agent-runtime.md +0 -82
- package/docs/gateway/authentication.md +0 -256
- package/docs/gateway/background-process.md +0 -147
- package/docs/gateway/bonjour.md +0 -303
- package/docs/gateway/bridge-protocol.md +0 -97
- package/docs/gateway/cli-backends.md +0 -439
- package/docs/gateway/config-agents.md +0 -1525
- package/docs/gateway/config-channels.md +0 -945
- package/docs/gateway/config-tools.md +0 -774
- package/docs/gateway/configuration-examples.md +0 -704
- package/docs/gateway/configuration-reference.md +0 -1391
- package/docs/gateway/configuration.md +0 -739
- package/docs/gateway/diagnostics.md +0 -213
- package/docs/gateway/discovery.md +0 -154
- package/docs/gateway/doctor.md +0 -575
- package/docs/gateway/gateway-lock.md +0 -37
- package/docs/gateway/health.md +0 -73
- package/docs/gateway/heartbeat.md +0 -498
- package/docs/gateway/index.md +0 -383
- package/docs/gateway/local-model-services.md +0 -205
- package/docs/gateway/local-models.md +0 -355
- package/docs/gateway/logging.md +0 -149
- package/docs/gateway/multiple-gateways.md +0 -178
- package/docs/gateway/network-model.md +0 -15
- package/docs/gateway/openai-http-api.md +0 -378
- package/docs/gateway/openresponses-http-api.md +0 -347
- package/docs/gateway/openshell.md +0 -316
- package/docs/gateway/opentelemetry.md +0 -433
- package/docs/gateway/operator-scopes.md +0 -119
- package/docs/gateway/pairing.md +0 -207
- package/docs/gateway/prometheus.md +0 -249
- package/docs/gateway/protocol.md +0 -826
- package/docs/gateway/remote-gateway-readme.md +0 -169
- package/docs/gateway/remote.md +0 -280
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
- package/docs/gateway/sandboxing.md +0 -546
- package/docs/gateway/secrets-plan-contract.md +0 -159
- package/docs/gateway/secrets.md +0 -805
- package/docs/gateway/security/audit-checks.md +0 -127
- package/docs/gateway/security/exposure-runbook.md +0 -212
- package/docs/gateway/security/index.md +0 -1343
- package/docs/gateway/security/secure-file-operations.md +0 -76
- package/docs/gateway/security/shrinkwrap.md +0 -111
- package/docs/gateway/tailscale.md +0 -156
- package/docs/gateway/tools-invoke-http-api.md +0 -169
- package/docs/gateway/troubleshooting.md +0 -877
- package/docs/gateway/trusted-proxy-auth.md +0 -483
- package/docs/help/debugging.md +0 -341
- package/docs/help/environment.md +0 -233
- package/docs/help/faq-first-run.md +0 -870
- package/docs/help/faq-models.md +0 -556
- package/docs/help/faq.md +0 -2041
- package/docs/help/index.md +0 -39
- package/docs/help/scripts.md +0 -56
- package/docs/help/testing-live.md +0 -587
- package/docs/help/testing-updates-plugins.md +0 -299
- package/docs/help/testing.md +0 -977
- package/docs/help/troubleshooting.md +0 -449
- package/docs/index.md +0 -196
- package/docs/install/ansible.md +0 -233
- package/docs/install/azure.md +0 -315
- package/docs/install/bun.md +0 -59
- package/docs/install/clawdock.md +0 -112
- package/docs/install/development-channels.md +0 -148
- package/docs/install/digitalocean.md +0 -174
- package/docs/install/docker-vm-runtime.md +0 -154
- package/docs/install/docker.md +0 -564
- package/docs/install/exe-dev.md +0 -201
- package/docs/install/fly.md +0 -524
- package/docs/install/gcp.md +0 -418
- package/docs/install/hetzner.md +0 -285
- package/docs/install/hostinger.md +0 -98
- package/docs/install/index.md +0 -232
- package/docs/install/installer.md +0 -447
- package/docs/install/kubernetes.md +0 -196
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating-claude.md +0 -165
- package/docs/install/migrating-hermes.md +0 -178
- package/docs/install/migrating.md +0 -137
- package/docs/install/nix.md +0 -112
- package/docs/install/node.md +0 -142
- package/docs/install/northflank.mdx +0 -44
- package/docs/install/oracle.md +0 -218
- package/docs/install/podman.md +0 -216
- package/docs/install/railway.mdx +0 -92
- package/docs/install/raspberry-pi.md +0 -234
- package/docs/install/render.mdx +0 -167
- package/docs/install/uninstall.md +0 -131
- package/docs/install/updating.md +0 -284
- package/docs/install/upstash.md +0 -96
- package/docs/logging.md +0 -320
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -72
- package/docs/nodes/audio.md +0 -216
- package/docs/nodes/camera.md +0 -166
- package/docs/nodes/images.md +0 -77
- package/docs/nodes/index.md +0 -439
- package/docs/nodes/location-command.md +0 -102
- package/docs/nodes/media-understanding.md +0 -495
- package/docs/nodes/talk.md +0 -160
- package/docs/nodes/troubleshooting.md +0 -123
- package/docs/nodes/voicewake.md +0 -93
- package/docs/perplexity.md +0 -11
- package/docs/plan/codex-context-engine-harness.md +0 -624
- package/docs/plan/ui-channels.md +0 -284
- package/docs/platforms/digitalocean.md +0 -12
- package/docs/platforms/easyrunner.md +0 -109
- package/docs/platforms/index.md +0 -51
- package/docs/platforms/linux.md +0 -141
- package/docs/platforms/mac/bundled-gateway.md +0 -79
- package/docs/platforms/mac/canvas.md +0 -128
- package/docs/platforms/mac/child-process.md +0 -72
- package/docs/platforms/mac/dev-setup.md +0 -112
- package/docs/platforms/mac/health.md +0 -39
- package/docs/platforms/mac/icon.md +0 -36
- package/docs/platforms/mac/logging.md +0 -62
- package/docs/platforms/mac/menu-bar.md +0 -93
- package/docs/platforms/mac/peekaboo.md +0 -96
- package/docs/platforms/mac/permissions.md +0 -73
- package/docs/platforms/mac/remote.md +0 -123
- package/docs/platforms/mac/signing.md +0 -52
- package/docs/platforms/mac/skills.md +0 -43
- package/docs/platforms/mac/voice-overlay.md +0 -66
- package/docs/platforms/mac/voicewake.md +0 -73
- package/docs/platforms/mac/webchat.md +0 -54
- package/docs/platforms/mac/xpc.md +0 -66
- package/docs/platforms/oracle.md +0 -12
- package/docs/platforms/raspberry-pi.md +0 -13
- package/docs/platforms/windows.md +0 -286
- package/docs/plugins/adding-capabilities.md +0 -146
- package/docs/plugins/admin-http-rpc.md +0 -216
- package/docs/plugins/agent-tools.md +0 -13
- package/docs/plugins/architecture-internals.md +0 -1196
- package/docs/plugins/architecture.md +0 -483
- package/docs/plugins/building-extensions.md +0 -13
- package/docs/plugins/building-plugins.md +0 -335
- package/docs/plugins/bundles.md +0 -310
- package/docs/plugins/cli-backend-plugins.md +0 -310
- package/docs/plugins/codex-computer-use.md +0 -297
- package/docs/plugins/codex-harness-reference.md +0 -470
- package/docs/plugins/codex-harness-runtime.md +0 -268
- package/docs/plugins/codex-harness.md +0 -780
- package/docs/plugins/codex-native-plugins.md +0 -276
- package/docs/plugins/community.md +0 -77
- package/docs/plugins/compatibility.md +0 -167
- package/docs/plugins/copilot.md +0 -356
- package/docs/plugins/dependency-resolution.md +0 -176
- package/docs/plugins/google-meet.md +0 -1737
- package/docs/plugins/hooks.md +0 -484
- package/docs/plugins/install-overrides.md +0 -80
- package/docs/plugins/manage-plugins.md +0 -210
- package/docs/plugins/manifest.md +0 -1457
- package/docs/plugins/memory-lancedb.md +0 -385
- package/docs/plugins/memory-wiki.md +0 -529
- package/docs/plugins/message-presentation.md +0 -473
- package/docs/plugins/oc-path.md +0 -166
- package/docs/plugins/plugin-inventory.md +0 -189
- package/docs/plugins/plugin-permission-requests.md +0 -193
- package/docs/plugins/reference/acpx.md +0 -23
- package/docs/plugins/reference/admin-http-rpc.md +0 -23
- package/docs/plugins/reference/alibaba.md +0 -23
- package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
- package/docs/plugins/reference/amazon-bedrock.md +0 -23
- package/docs/plugins/reference/anthropic-vertex.md +0 -19
- package/docs/plugins/reference/anthropic.md +0 -23
- package/docs/plugins/reference/arcee.md +0 -23
- package/docs/plugins/reference/azure-speech.md +0 -23
- package/docs/plugins/reference/bonjour.md +0 -19
- package/docs/plugins/reference/brave.md +0 -23
- package/docs/plugins/reference/browser.md +0 -23
- package/docs/plugins/reference/byteplus.md +0 -19
- package/docs/plugins/reference/canvas.md +0 -19
- package/docs/plugins/reference/cerebras.md +0 -23
- package/docs/plugins/reference/chutes.md +0 -23
- package/docs/plugins/reference/clickclack.md +0 -23
- package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
- package/docs/plugins/reference/codex-supervisor.md +0 -27
- package/docs/plugins/reference/codex.md +0 -23
- package/docs/plugins/reference/comfy.md +0 -23
- package/docs/plugins/reference/copilot-proxy.md +0 -19
- package/docs/plugins/reference/copilot.md +0 -23
- package/docs/plugins/reference/deepgram.md +0 -23
- package/docs/plugins/reference/deepinfra.md +0 -23
- package/docs/plugins/reference/deepseek.md +0 -23
- package/docs/plugins/reference/diagnostics-otel.md +0 -19
- package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
- package/docs/plugins/reference/diffs-language-pack.md +0 -19
- package/docs/plugins/reference/diffs.md +0 -19
- package/docs/plugins/reference/discord.md +0 -23
- package/docs/plugins/reference/document-extract.md +0 -23
- package/docs/plugins/reference/duckduckgo.md +0 -23
- package/docs/plugins/reference/elevenlabs.md +0 -23
- package/docs/plugins/reference/exa.md +0 -23
- package/docs/plugins/reference/fal.md +0 -23
- package/docs/plugins/reference/feishu.md +0 -23
- package/docs/plugins/reference/file-transfer.md +0 -19
- package/docs/plugins/reference/firecrawl.md +0 -23
- package/docs/plugins/reference/fireworks.md +0 -23
- package/docs/plugins/reference/github-copilot.md +0 -23
- package/docs/plugins/reference/gmi.md +0 -23
- package/docs/plugins/reference/google-meet.md +0 -23
- package/docs/plugins/reference/google.md +0 -23
- package/docs/plugins/reference/googlechat.md +0 -23
- package/docs/plugins/reference/gradium.md +0 -23
- package/docs/plugins/reference/groq.md +0 -23
- package/docs/plugins/reference/huggingface.md +0 -23
- package/docs/plugins/reference/imessage.md +0 -23
- package/docs/plugins/reference/inworld.md +0 -23
- package/docs/plugins/reference/irc.md +0 -23
- package/docs/plugins/reference/kilocode.md +0 -23
- package/docs/plugins/reference/kimi.md +0 -23
- package/docs/plugins/reference/line.md +0 -23
- package/docs/plugins/reference/litellm.md +0 -23
- package/docs/plugins/reference/llm-task.md +0 -19
- package/docs/plugins/reference/lmstudio.md +0 -23
- package/docs/plugins/reference/lobster.md +0 -19
- package/docs/plugins/reference/matrix.md +0 -23
- package/docs/plugins/reference/mattermost.md +0 -23
- package/docs/plugins/reference/memory-core.md +0 -19
- package/docs/plugins/reference/memory-lancedb.md +0 -23
- package/docs/plugins/reference/memory-wiki.md +0 -23
- package/docs/plugins/reference/microsoft-foundry.md +0 -19
- package/docs/plugins/reference/microsoft.md +0 -19
- package/docs/plugins/reference/migrate-claude.md +0 -19
- package/docs/plugins/reference/migrate-hermes.md +0 -19
- package/docs/plugins/reference/minimax.md +0 -23
- package/docs/plugins/reference/mistral.md +0 -23
- package/docs/plugins/reference/moonshot.md +0 -23
- package/docs/plugins/reference/msteams.md +0 -23
- package/docs/plugins/reference/nextcloud-talk.md +0 -23
- package/docs/plugins/reference/nostr.md +0 -23
- package/docs/plugins/reference/novita.md +0 -23
- package/docs/plugins/reference/nvidia.md +0 -23
- package/docs/plugins/reference/oc-path.md +0 -23
- package/docs/plugins/reference/ollama.md +0 -23
- package/docs/plugins/reference/open-prose.md +0 -19
- package/docs/plugins/reference/openai.md +0 -23
- package/docs/plugins/reference/opencode-go.md +0 -23
- package/docs/plugins/reference/opencode.md +0 -23
- package/docs/plugins/reference/openrouter.md +0 -23
- package/docs/plugins/reference/openshell.md +0 -19
- package/docs/plugins/reference/perplexity.md +0 -23
- package/docs/plugins/reference/pixverse.md +0 -23
- package/docs/plugins/reference/policy.md +0 -72
- package/docs/plugins/reference/qa-channel.md +0 -23
- package/docs/plugins/reference/qa-lab.md +0 -19
- package/docs/plugins/reference/qa-matrix.md +0 -19
- package/docs/plugins/reference/qianfan.md +0 -23
- package/docs/plugins/reference/qqbot.md +0 -23
- package/docs/plugins/reference/qwen.md +0 -23
- package/docs/plugins/reference/runway.md +0 -23
- package/docs/plugins/reference/searxng.md +0 -19
- package/docs/plugins/reference/senseaudio.md +0 -23
- package/docs/plugins/reference/sglang.md +0 -23
- package/docs/plugins/reference/signal.md +0 -23
- package/docs/plugins/reference/skill-workshop.md +0 -23
- package/docs/plugins/reference/slack.md +0 -23
- package/docs/plugins/reference/stepfun.md +0 -23
- package/docs/plugins/reference/synology-chat.md +0 -23
- package/docs/plugins/reference/synthetic.md +0 -23
- package/docs/plugins/reference/tavily.md +0 -23
- package/docs/plugins/reference/telegram.md +0 -23
- package/docs/plugins/reference/tencent.md +0 -23
- package/docs/plugins/reference/tlon.md +0 -23
- package/docs/plugins/reference/together.md +0 -23
- package/docs/plugins/reference/tokenjuice.md +0 -23
- package/docs/plugins/reference/tts-local-cli.md +0 -19
- package/docs/plugins/reference/twitch.md +0 -23
- package/docs/plugins/reference/venice.md +0 -23
- package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
- package/docs/plugins/reference/vllm.md +0 -23
- package/docs/plugins/reference/voice-call.md +0 -23
- package/docs/plugins/reference/volcengine.md +0 -23
- package/docs/plugins/reference/voyage.md +0 -19
- package/docs/plugins/reference/vydra.md +0 -23
- package/docs/plugins/reference/web-readability.md +0 -19
- package/docs/plugins/reference/webhooks.md +0 -23
- package/docs/plugins/reference/whatsapp.md +0 -23
- package/docs/plugins/reference/workboard.md +0 -23
- package/docs/plugins/reference/xai.md +0 -23
- package/docs/plugins/reference/xiaomi.md +0 -23
- package/docs/plugins/reference/zai.md +0 -23
- package/docs/plugins/reference/zalo.md +0 -23
- package/docs/plugins/reference/zalouser.md +0 -24
- package/docs/plugins/reference.md +0 -145
- package/docs/plugins/sdk-agent-harness.md +0 -338
- package/docs/plugins/sdk-channel-inbound.md +0 -70
- package/docs/plugins/sdk-channel-ingress.md +0 -137
- package/docs/plugins/sdk-channel-message.md +0 -18
- package/docs/plugins/sdk-channel-outbound.md +0 -113
- package/docs/plugins/sdk-channel-plugins.md +0 -765
- package/docs/plugins/sdk-channel-turn.md +0 -9
- package/docs/plugins/sdk-entrypoints.md +0 -344
- package/docs/plugins/sdk-migration.md +0 -979
- package/docs/plugins/sdk-overview.md +0 -511
- package/docs/plugins/sdk-provider-plugins.md +0 -846
- package/docs/plugins/sdk-runtime.md +0 -676
- package/docs/plugins/sdk-setup.md +0 -550
- package/docs/plugins/sdk-subpaths.md +0 -391
- package/docs/plugins/sdk-testing.md +0 -403
- package/docs/plugins/skill-workshop.md +0 -713
- package/docs/plugins/tool-plugins.md +0 -411
- package/docs/plugins/voice-call.md +0 -942
- package/docs/plugins/webhooks.md +0 -192
- package/docs/plugins/workboard.md +0 -252
- package/docs/plugins/zalouser.md +0 -86
- package/docs/prose.md +0 -137
- package/docs/providers/alibaba.md +0 -158
- package/docs/providers/anthropic.md +0 -381
- package/docs/providers/arcee.md +0 -144
- package/docs/providers/azure-speech.md +0 -119
- package/docs/providers/bedrock-mantle.md +0 -211
- package/docs/providers/bedrock.md +0 -414
- package/docs/providers/cerebras.md +0 -130
- package/docs/providers/chutes.md +0 -153
- package/docs/providers/claude-max-api-proxy.md +0 -191
- package/docs/providers/cloudflare-ai-gateway.md +0 -119
- package/docs/providers/comfy.md +0 -362
- package/docs/providers/deepgram.md +0 -184
- package/docs/providers/deepinfra.md +0 -92
- package/docs/providers/deepseek.md +0 -146
- package/docs/providers/ds4.md +0 -309
- package/docs/providers/elevenlabs.md +0 -130
- package/docs/providers/fal.md +0 -240
- package/docs/providers/fireworks.md +0 -144
- package/docs/providers/github-copilot.md +0 -257
- package/docs/providers/gmi.md +0 -92
- package/docs/providers/google.md +0 -472
- package/docs/providers/gradium.md +0 -123
- package/docs/providers/groq.md +0 -171
- package/docs/providers/huggingface.md +0 -235
- package/docs/providers/index.md +0 -105
- package/docs/providers/inferrs.md +0 -272
- package/docs/providers/inworld.md +0 -120
- package/docs/providers/kilocode.md +0 -135
- package/docs/providers/litellm.md +0 -234
- package/docs/providers/lmstudio.md +0 -224
- package/docs/providers/minimax.md +0 -505
- package/docs/providers/mistral.md +0 -235
- package/docs/providers/models.md +0 -64
- package/docs/providers/moonshot.md +0 -413
- package/docs/providers/novita.md +0 -92
- package/docs/providers/nvidia.md +0 -158
- package/docs/providers/ollama-cloud.md +0 -115
- package/docs/providers/ollama.md +0 -1225
- package/docs/providers/openai.md +0 -1093
- package/docs/providers/opencode-go.md +0 -123
- package/docs/providers/opencode.md +0 -149
- package/docs/providers/openrouter.md +0 -349
- package/docs/providers/perplexity-provider.md +0 -123
- package/docs/providers/pixverse.md +0 -165
- package/docs/providers/qianfan.md +0 -132
- package/docs/providers/qwen-oauth.md +0 -115
- package/docs/providers/qwen.md +0 -364
- package/docs/providers/runway.md +0 -103
- package/docs/providers/senseaudio.md +0 -68
- package/docs/providers/sglang.md +0 -161
- package/docs/providers/stepfun.md +0 -229
- package/docs/providers/synthetic.md +0 -154
- package/docs/providers/tencent.md +0 -130
- package/docs/providers/together.md +0 -140
- package/docs/providers/venice.md +0 -312
- package/docs/providers/vercel-ai-gateway.md +0 -128
- package/docs/providers/vllm.md +0 -407
- package/docs/providers/volcengine.md +0 -199
- package/docs/providers/vydra.md +0 -180
- package/docs/providers/xai.md +0 -571
- package/docs/providers/xiaomi.md +0 -262
- package/docs/providers/zai.md +0 -224
- package/docs/refactor/access.md +0 -9
- package/docs/refactor/acp.md +0 -298
- package/docs/refactor/canvas.md +0 -131
- package/docs/refactor/database-first.md +0 -2256
- package/docs/refactor/ingress-core.md +0 -341
- package/docs/reference/AGENTS.default.md +0 -131
- package/docs/reference/RELEASING.md +0 -799
- package/docs/reference/api-usage-costs.md +0 -208
- package/docs/reference/application-modernization-plan.md +0 -208
- package/docs/reference/code-mode.md +0 -773
- package/docs/reference/credits.md +0 -33
- package/docs/reference/device-models.md +0 -50
- package/docs/reference/fengming-sdk-api-design.md +0 -390
- package/docs/reference/full-release-validation.md +0 -202
- package/docs/reference/memory-config.md +0 -604
- package/docs/reference/prompt-caching.md +0 -358
- package/docs/reference/release-performance-sweep.md +0 -360
- package/docs/reference/rich-output-protocol.md +0 -101
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/secret-placeholder-conventions.md +0 -33
- package/docs/reference/secretref-credential-surface.md +0 -159
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
- package/docs/reference/session-management-compaction.md +0 -474
- package/docs/reference/templates/AGENTS.dev.md +0 -90
- package/docs/reference/templates/AGENTS.md +0 -227
- package/docs/reference/templates/BOOT.md +0 -16
- package/docs/reference/templates/BOOTSTRAP.md +0 -66
- package/docs/reference/templates/CLAUDE.md +0 -1
- package/docs/reference/templates/HEARTBEAT.md +0 -24
- package/docs/reference/templates/IDENTITY.dev.md +0 -52
- package/docs/reference/templates/IDENTITY.md +0 -34
- package/docs/reference/templates/SOUL.dev.md +0 -82
- package/docs/reference/templates/SOUL.md +0 -49
- package/docs/reference/templates/TOOLS.dev.md +0 -29
- package/docs/reference/templates/TOOLS.md +0 -51
- package/docs/reference/templates/USER.dev.md +0 -23
- package/docs/reference/templates/USER.md +0 -28
- package/docs/reference/test.md +0 -247
- package/docs/reference/token-use.md +0 -246
- package/docs/reference/transcript-hygiene.md +0 -214
- package/docs/reference/wizard.md +0 -252
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
- package/docs/security/formal-verification.md +0 -170
- package/docs/security/incident-response.md +0 -59
- package/docs/security/network-proxy.md +0 -268
- package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
- package/docs/snippets/plugin-publish/minimal-package.json +0 -16
- package/docs/specs/claw-supervisor.md +0 -247
- package/docs/start/bootstrapping.md +0 -49
- package/docs/start/docs-directory.md +0 -69
- package/docs/start/fengming.md +0 -252
- package/docs/start/getting-started.md +0 -152
- package/docs/start/hubs.md +0 -201
- package/docs/start/lore.md +0 -223
- package/docs/start/onboarding-overview.md +0 -72
- package/docs/start/onboarding.md +0 -98
- package/docs/start/quickstart.md +0 -25
- package/docs/start/setup.md +0 -178
- package/docs/start/showcase.md +0 -363
- package/docs/start/wizard-cli-automation.md +0 -232
- package/docs/start/wizard-cli-reference.md +0 -331
- package/docs/start/wizard.md +0 -141
- package/docs/style.css +0 -137
- package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
- package/docs/tools/acp-agents-setup.md +0 -351
- package/docs/tools/acp-agents.md +0 -854
- package/docs/tools/agent-send.md +0 -130
- package/docs/tools/apply-patch.md +0 -64
- package/docs/tools/brave-search.md +0 -139
- package/docs/tools/browser-control.md +0 -391
- package/docs/tools/browser-linux-troubleshooting.md +0 -173
- package/docs/tools/browser-login.md +0 -77
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
- package/docs/tools/browser.md +0 -810
- package/docs/tools/btw.md +0 -159
- package/docs/tools/capability-cookbook.md +0 -12
- package/docs/tools/clawhub.md +0 -5
- package/docs/tools/code-execution.md +0 -173
- package/docs/tools/creating-skills.md +0 -158
- package/docs/tools/diffs.md +0 -525
- package/docs/tools/duckduckgo-search.md +0 -109
- package/docs/tools/elevated.md +0 -128
- package/docs/tools/exa-search.md +0 -152
- package/docs/tools/exec-approvals-advanced.md +0 -444
- package/docs/tools/exec-approvals.md +0 -494
- package/docs/tools/exec.md +0 -285
- package/docs/tools/firecrawl.md +0 -155
- package/docs/tools/gemini-search.md +0 -114
- package/docs/tools/goal.md +0 -217
- package/docs/tools/grok-search.md +0 -129
- package/docs/tools/image-generation.md +0 -493
- package/docs/tools/index.md +0 -178
- package/docs/tools/kimi-search.md +0 -105
- package/docs/tools/llm-task.md +0 -137
- package/docs/tools/lobster.md +0 -365
- package/docs/tools/loop-detection.md +0 -154
- package/docs/tools/media-overview.md +0 -160
- package/docs/tools/minimax-search.md +0 -102
- package/docs/tools/multi-agent-sandbox-tools.md +0 -409
- package/docs/tools/music-generation.md +0 -372
- package/docs/tools/ollama-search.md +0 -153
- package/docs/tools/pdf.md +0 -213
- package/docs/tools/perplexity-search.md +0 -220
- package/docs/tools/plugin.md +0 -363
- package/docs/tools/reactions.md +0 -100
- package/docs/tools/searxng-search.md +0 -141
- package/docs/tools/skills-config.md +0 -195
- package/docs/tools/skills.md +0 -569
- package/docs/tools/slash-commands.md +0 -487
- package/docs/tools/steer.md +0 -77
- package/docs/tools/subagents.md +0 -651
- package/docs/tools/tavily.md +0 -162
- package/docs/tools/thinking.md +0 -142
- package/docs/tools/tokenjuice.md +0 -84
- package/docs/tools/tool-search.md +0 -269
- package/docs/tools/trajectory.md +0 -229
- package/docs/tools/tts.md +0 -1009
- package/docs/tools/video-generation.md +0 -555
- package/docs/tools/web-fetch.md +0 -210
- package/docs/tools/web.md +0 -461
- package/docs/tts.md +0 -11
- package/docs/vps.md +0 -139
- package/docs/web/control-ui.md +0 -512
- package/docs/web/dashboard.md +0 -107
- package/docs/web/index.md +0 -133
- package/docs/web/tui.md +0 -250
- package/docs/web/webchat.md +0 -102
- package/npm-shrinkwrap.json +0 -12861
- package/patches/.gitkeep +0 -0
- package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
- package/pnpm-workspace.yaml +0 -120
- package/scripts/crabbox-wrapper.mjs +0 -2004
- package/scripts/lib/official-external-channel-catalog.json +0 -560
- package/scripts/lib/official-external-plugin-catalog.json +0 -264
- package/scripts/lib/official-external-provider-catalog.json +0 -158
- package/scripts/lib/package-dist-imports.mjs +0 -171
- package/scripts/npm-runner.mjs +0 -91
- package/scripts/postinstall-bundled-plugins.mjs +0 -978
- package/scripts/preinstall-package-manager-warning.mjs +0 -64
- package/scripts/prepare-git-hooks.mjs +0 -72
- package/scripts/windows-cmd-helpers.mjs +0 -22
- package/skills/batch/SKILL.md +0 -118
- package/skills/code-review/SKILL.md +0 -107
- package/skills/debug/SKILL.md +0 -83
- package/skills/loop/SKILL.md +0 -118
- package/skills/run/SKILL.md +0 -79
- package/skills/run-skill-generator/SKILL.md +0 -179
- package/skills/verify/SKILL.md +0 -103
- package/src/agents/templates/HEARTBEAT.md +0 -3
package/docs/gateway/bonjour.md
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Bonjour/mDNS discovery + debugging (Gateway beacons, clients, and common failure modes)"
|
|
3
|
-
read_when:
|
|
4
|
-
- Debugging Bonjour discovery issues on macOS/iOS
|
|
5
|
-
- Changing mDNS service types, TXT records, or discovery UX
|
|
6
|
-
title: "Bonjour discovery"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
FengMing can use Bonjour (mDNS / DNS-SD) to discover an active Gateway (WebSocket endpoint).
|
|
10
|
-
Multicast `local.` browsing is a **LAN-only convenience**. The bundled `bonjour`
|
|
11
|
-
plugin owns LAN advertising. It auto-starts on macOS hosts and is opt-in on
|
|
12
|
-
Linux, Windows, and containerized Gateway deployments. For cross-network discovery, the same
|
|
13
|
-
beacon can also be published through a configured wide-area DNS-SD domain. Discovery
|
|
14
|
-
is still best-effort and does **not** replace SSH or Tailnet-based connectivity.
|
|
15
|
-
|
|
16
|
-
## Wide-area Bonjour (Unicast DNS-SD) over Tailscale
|
|
17
|
-
|
|
18
|
-
If the node and gateway are on different networks, multicast mDNS won't cross the
|
|
19
|
-
boundary. You can keep the same discovery UX by switching to **unicast DNS-SD**
|
|
20
|
-
("Wide-Area Bonjour") over Tailscale.
|
|
21
|
-
|
|
22
|
-
High-level steps:
|
|
23
|
-
|
|
24
|
-
1. Run a DNS server on the gateway host (reachable over Tailnet).
|
|
25
|
-
2. Publish DNS-SD records for `_fengming-gw._tcp` under a dedicated zone
|
|
26
|
-
(example: `fengming.internal.`).
|
|
27
|
-
3. Configure Tailscale **split DNS** so your chosen domain resolves via that
|
|
28
|
-
DNS server for clients (including iOS).
|
|
29
|
-
|
|
30
|
-
FengMing supports any discovery domain; `fengming.internal.` is just an example.
|
|
31
|
-
iOS/Android nodes browse both `local.` and your configured wide-area domain.
|
|
32
|
-
|
|
33
|
-
### Gateway config (recommended)
|
|
34
|
-
|
|
35
|
-
```json5
|
|
36
|
-
{
|
|
37
|
-
gateway: { bind: "tailnet" }, // tailnet-only (recommended)
|
|
38
|
-
discovery: { wideArea: { enabled: true } }, // enables wide-area DNS-SD publishing
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### One-time DNS server setup (gateway host)
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
fengming dns setup --apply
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
This installs CoreDNS and configures it to:
|
|
49
|
-
|
|
50
|
-
- listen on port 53 only on the gateway's Tailscale interfaces
|
|
51
|
-
- serve your chosen domain (example: `fengming.internal.`) from `~/.fengming/dns/<domain>.db`
|
|
52
|
-
|
|
53
|
-
Validate from a tailnet-connected machine:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
dns-sd -B _fengming-gw._tcp fengming.internal.
|
|
57
|
-
dig @<TAILNET_IPV4> -p 53 _fengming-gw._tcp.fengming.internal PTR +short
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Tailscale DNS settings
|
|
61
|
-
|
|
62
|
-
In the Tailscale admin console:
|
|
63
|
-
|
|
64
|
-
- Add a nameserver pointing at the gateway's tailnet IP (UDP/TCP 53).
|
|
65
|
-
- Add split DNS so your discovery domain uses that nameserver.
|
|
66
|
-
|
|
67
|
-
Once clients accept tailnet DNS, iOS nodes and CLI discovery can browse
|
|
68
|
-
`_fengming-gw._tcp` in your discovery domain without multicast.
|
|
69
|
-
|
|
70
|
-
### Gateway listener security (recommended)
|
|
71
|
-
|
|
72
|
-
The Gateway WS port (default `18789`) binds to loopback by default. For LAN/tailnet
|
|
73
|
-
access, bind explicitly and keep auth enabled.
|
|
74
|
-
|
|
75
|
-
For tailnet-only setups:
|
|
76
|
-
|
|
77
|
-
- Set `gateway.bind: "tailnet"` in `~/.fengming/fengming.json`.
|
|
78
|
-
- Restart the Gateway (or restart the macOS menubar app).
|
|
79
|
-
|
|
80
|
-
## What advertises
|
|
81
|
-
|
|
82
|
-
Only the Gateway advertises `_fengming-gw._tcp`. LAN multicast advertising is
|
|
83
|
-
provided by the bundled `bonjour` plugin when the plugin is enabled; wide-area
|
|
84
|
-
DNS-SD publishing remains Gateway-owned.
|
|
85
|
-
|
|
86
|
-
## Service types
|
|
87
|
-
|
|
88
|
-
- `_fengming-gw._tcp` - gateway transport beacon (used by macOS/iOS/Android nodes).
|
|
89
|
-
|
|
90
|
-
## TXT keys (non-secret hints)
|
|
91
|
-
|
|
92
|
-
The Gateway advertises small non-secret hints to make UI flows convenient:
|
|
93
|
-
|
|
94
|
-
- `role=gateway`
|
|
95
|
-
- `displayName=<friendly name>`
|
|
96
|
-
- `lanHost=<hostname>.local`
|
|
97
|
-
- `gatewayPort=<port>` (Gateway WS + HTTP)
|
|
98
|
-
- `gatewayTls=1` (only when TLS is enabled)
|
|
99
|
-
- `gatewayTlsSha256=<sha256>` (only when TLS is enabled and fingerprint is available)
|
|
100
|
-
- `canvasPort=<port>` (only when the canvas host is enabled; currently the same as `gatewayPort`)
|
|
101
|
-
- `transport=gateway`
|
|
102
|
-
- `tailnetDns=<magicdns>` (mDNS full mode only, optional hint when Tailnet is available)
|
|
103
|
-
- `sshPort=<port>` (full mode only; omitted in minimal and off modes)
|
|
104
|
-
- `cliPath=<path>` (full mode only; omitted in minimal and off modes)
|
|
105
|
-
|
|
106
|
-
Security notes:
|
|
107
|
-
|
|
108
|
-
- Bonjour/mDNS TXT records are **unauthenticated**. Clients must not treat TXT as authoritative routing.
|
|
109
|
-
- Clients should route using the resolved service endpoint (SRV + A/AAAA). Treat `lanHost`, `tailnetDns`, `gatewayPort`, and `gatewayTlsSha256` as hints only.
|
|
110
|
-
- SSH auto-targeting should likewise use the resolved service host, not TXT-only hints.
|
|
111
|
-
- TLS pinning must never allow an advertised `gatewayTlsSha256` to override a previously stored pin.
|
|
112
|
-
- iOS/Android nodes should treat discovery-based direct connects as **TLS-only** and require explicit user confirmation before trusting a first-time fingerprint.
|
|
113
|
-
|
|
114
|
-
## Debugging on macOS
|
|
115
|
-
|
|
116
|
-
Useful built-in tools:
|
|
117
|
-
|
|
118
|
-
- Browse instances:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
dns-sd -B _fengming-gw._tcp local.
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
- Resolve one instance (replace `<instance>`):
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
dns-sd -L "<instance>" _fengming-gw._tcp local.
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
If browsing works but resolving fails, you're usually hitting a LAN policy or
|
|
131
|
-
mDNS resolver issue.
|
|
132
|
-
|
|
133
|
-
## Debugging in Gateway logs
|
|
134
|
-
|
|
135
|
-
The Gateway writes a rolling log file (printed on startup as
|
|
136
|
-
`gateway log file: ...`). Look for `bonjour:` lines, especially:
|
|
137
|
-
|
|
138
|
-
- `bonjour: advertise failed ...`
|
|
139
|
-
- `bonjour: suppressing ciao cancellation ...`
|
|
140
|
-
- `bonjour: ... name conflict resolved` / `hostname conflict resolved`
|
|
141
|
-
- `bonjour: watchdog detected non-announced service ...`
|
|
142
|
-
- `bonjour: disabling advertiser after ... failed restarts ...`
|
|
143
|
-
|
|
144
|
-
The watchdog treats active `probing`, `announcing`, and fresh conflict-renames as
|
|
145
|
-
in-progress states. If the service never reaches `announced`, FengMing eventually
|
|
146
|
-
recreates the advertiser and, after repeated failures, disables Bonjour for that
|
|
147
|
-
Gateway process instead of re-advertising forever.
|
|
148
|
-
|
|
149
|
-
Bonjour uses the system hostname for the advertised `.local` host when it is a
|
|
150
|
-
valid DNS label. If the system hostname contains spaces, underscores, or another
|
|
151
|
-
invalid DNS-label character, FengMing falls back to `fengming.local`. Set
|
|
152
|
-
`FENGMING_MDNS_HOSTNAME=<name>` before starting the Gateway when you need an
|
|
153
|
-
explicit host label.
|
|
154
|
-
|
|
155
|
-
## Debugging on iOS node
|
|
156
|
-
|
|
157
|
-
The iOS node uses `NWBrowser` to discover `_fengming-gw._tcp`.
|
|
158
|
-
|
|
159
|
-
To capture logs:
|
|
160
|
-
|
|
161
|
-
- Settings → Gateway → Advanced → **Discovery Debug Logs**
|
|
162
|
-
- Settings → Gateway → Advanced → **Discovery Logs** → reproduce → **Copy**
|
|
163
|
-
|
|
164
|
-
The log includes browser state transitions and result-set changes.
|
|
165
|
-
|
|
166
|
-
## When to enable Bonjour
|
|
167
|
-
|
|
168
|
-
Bonjour auto-starts for empty-config Gateway startup on macOS hosts because the
|
|
169
|
-
local app and nearby iOS/Android nodes commonly rely on same-LAN discovery.
|
|
170
|
-
|
|
171
|
-
Enable Bonjour explicitly when same-LAN auto-discovery is useful on Linux,
|
|
172
|
-
Windows, or another non-macOS host:
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
fengming plugins enable bonjour
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
When enabled, Bonjour uses `discovery.mdns.mode` to decide how much TXT metadata
|
|
179
|
-
to publish. The same mode controls optional TXT hints in wide-area DNS-SD records.
|
|
180
|
-
The default mode is `minimal`; use `full` only when clients need `cliPath` or
|
|
181
|
-
`sshPort` hints. Use `off` to suppress LAN multicast without changing plugin
|
|
182
|
-
enablement; wide-area DNS-SD can still publish the minimal Gateway beacon when
|
|
183
|
-
`discovery.wideArea.enabled` is true.
|
|
184
|
-
|
|
185
|
-
## When to disable Bonjour
|
|
186
|
-
|
|
187
|
-
Leave Bonjour disabled when LAN multicast advertising is unnecessary, unavailable,
|
|
188
|
-
or harmful. The common cases are non-macOS servers, Docker bridge networking,
|
|
189
|
-
WSL, or a network policy that drops mDNS multicast. In those environments the
|
|
190
|
-
Gateway is still reachable through its published URL, SSH, Tailnet, or wide-area
|
|
191
|
-
DNS-SD, but LAN auto-discovery is not reliable.
|
|
192
|
-
|
|
193
|
-
Prefer the existing environment override when the problem is deployment-scoped:
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
FENGMING_DISABLE_BONJOUR=1
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
That disables LAN multicast advertising without changing plugin configuration.
|
|
200
|
-
It is safe for Docker images, service files, launch scripts, and one-off
|
|
201
|
-
debugging because the setting disappears when the environment does.
|
|
202
|
-
|
|
203
|
-
Use plugin configuration when you intentionally want to turn off the bundled LAN
|
|
204
|
-
discovery plugin for that FengMing config:
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
fengming plugins disable bonjour
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## Docker gotchas
|
|
211
|
-
|
|
212
|
-
The bundled Bonjour plugin auto-disables LAN multicast advertising in detected
|
|
213
|
-
containers when `FENGMING_DISABLE_BONJOUR` is unset. Docker bridge networks
|
|
214
|
-
usually do not forward mDNS multicast (`224.0.0.251:5353`) between the container
|
|
215
|
-
and the LAN, so advertising from the container rarely makes discovery work.
|
|
216
|
-
|
|
217
|
-
Important gotchas:
|
|
218
|
-
|
|
219
|
-
- Bonjour auto-starts on macOS hosts and is opt-in elsewhere. Leaving it
|
|
220
|
-
disabled does not stop the Gateway; it only skips LAN multicast advertising.
|
|
221
|
-
- Disabling Bonjour does not change `gateway.bind`; Docker still defaults to
|
|
222
|
-
`FENGMING_GATEWAY_BIND=lan` so the published host port can work.
|
|
223
|
-
- Disabling Bonjour does not disable wide-area DNS-SD. Use wide-area discovery
|
|
224
|
-
or Tailnet when the Gateway and node are not on the same LAN.
|
|
225
|
-
- Reusing the same `FENGMING_CONFIG_DIR` outside Docker does not persist the
|
|
226
|
-
container auto-disable policy.
|
|
227
|
-
- Set `FENGMING_DISABLE_BONJOUR=0` only for host networking, macvlan, or another
|
|
228
|
-
network where mDNS multicast is known to pass; set it to `1` to force-disable.
|
|
229
|
-
|
|
230
|
-
## Troubleshooting disabled Bonjour
|
|
231
|
-
|
|
232
|
-
If a node no longer auto-discovers the Gateway after Docker setup:
|
|
233
|
-
|
|
234
|
-
1. Confirm whether the Gateway is running in auto, forced-on, or forced-off mode:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
docker compose config | grep FENGMING_DISABLE_BONJOUR
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
2. Confirm the Gateway itself is reachable through the published port:
|
|
241
|
-
|
|
242
|
-
```bash
|
|
243
|
-
curl -fsS http://127.0.0.1:18789/healthz
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
3. Use a direct target when Bonjour is disabled:
|
|
247
|
-
- Control UI or local tools: `http://127.0.0.1:18789`
|
|
248
|
-
- LAN clients: `http://<gateway-host>:18789`
|
|
249
|
-
- Cross-network clients: Tailnet MagicDNS, Tailnet IP, SSH tunnel, or
|
|
250
|
-
wide-area DNS-SD
|
|
251
|
-
|
|
252
|
-
4. If you deliberately enabled the Bonjour plugin in Docker and forced advertising
|
|
253
|
-
with `FENGMING_DISABLE_BONJOUR=0`, test multicast from the host:
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
dns-sd -B _fengming-gw._tcp local.
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
If browsing is empty or the Gateway logs show repeated ciao watchdog
|
|
260
|
-
cancellations, restore `FENGMING_DISABLE_BONJOUR=1` and use a direct or
|
|
261
|
-
Tailnet route.
|
|
262
|
-
|
|
263
|
-
## Common failure modes
|
|
264
|
-
|
|
265
|
-
- **Bonjour doesn't cross networks**: use Tailnet or SSH.
|
|
266
|
-
- **Multicast blocked**: some Wi-Fi networks disable mDNS.
|
|
267
|
-
- **Advertiser stuck in probing/announcing**: hosts with blocked multicast,
|
|
268
|
-
container bridges, WSL, or interface churn can leave the ciao advertiser in a
|
|
269
|
-
non-announced state. FengMing retries a few times and then disables Bonjour
|
|
270
|
-
for the current Gateway process instead of restarting the advertiser forever.
|
|
271
|
-
- **Docker bridge networking**: Bonjour auto-disables in detected containers.
|
|
272
|
-
Set `FENGMING_DISABLE_BONJOUR=0` only for host, macvlan, or another
|
|
273
|
-
mDNS-capable network.
|
|
274
|
-
- **Sleep / interface churn**: macOS may temporarily drop mDNS results; retry.
|
|
275
|
-
- **Browse works but resolve fails**: keep machine names simple (avoid emojis or
|
|
276
|
-
punctuation), then restart the Gateway. The service instance name derives from
|
|
277
|
-
the host name, so overly complex names can confuse some resolvers.
|
|
278
|
-
|
|
279
|
-
## Escaped instance names (`\032`)
|
|
280
|
-
|
|
281
|
-
Bonjour/DNS-SD often escapes bytes in service instance names as decimal `\DDD`
|
|
282
|
-
sequences (e.g. spaces become `\032`).
|
|
283
|
-
|
|
284
|
-
- This is normal at the protocol level.
|
|
285
|
-
- UIs should decode for display (iOS uses `BonjourEscapes.decode`).
|
|
286
|
-
|
|
287
|
-
## Enabling / disabling / configuration
|
|
288
|
-
|
|
289
|
-
- macOS hosts auto-start the bundled LAN discovery plugin by default.
|
|
290
|
-
- `fengming plugins enable bonjour` enables the bundled LAN discovery plugin on hosts where it is not default-enabled.
|
|
291
|
-
- `fengming plugins disable bonjour` disables LAN multicast advertising by disabling the bundled plugin.
|
|
292
|
-
- `FENGMING_DISABLE_BONJOUR=1` disables LAN multicast advertising without changing plugin config; accepted truthy values are `1`, `true`, `yes`, and `on` (legacy: `FENGMING_DISABLE_BONJOUR`).
|
|
293
|
-
- `FENGMING_DISABLE_BONJOUR=0` forces LAN multicast advertising on, including inside detected containers; accepted falsy values are `0`, `false`, `no`, and `off`.
|
|
294
|
-
- When the Bonjour plugin is enabled and `FENGMING_DISABLE_BONJOUR` is unset, Bonjour advertises on normal hosts and auto-disables inside detected containers.
|
|
295
|
-
- `gateway.bind` in `~/.fengming/fengming.json` controls the Gateway bind mode.
|
|
296
|
-
- `FENGMING_SSH_PORT` overrides the SSH port when `sshPort` is advertised (legacy: `FENGMING_SSH_PORT`).
|
|
297
|
-
- `FENGMING_TAILNET_DNS` publishes a MagicDNS hint in TXT when mDNS full mode is enabled (legacy: `FENGMING_TAILNET_DNS`).
|
|
298
|
-
- `FENGMING_CLI_PATH` overrides the advertised CLI path (legacy: `FENGMING_CLI_PATH`).
|
|
299
|
-
|
|
300
|
-
## Related docs
|
|
301
|
-
|
|
302
|
-
- Discovery policy and transport selection: [Discovery](/gateway/discovery)
|
|
303
|
-
- Node pairing + approvals: [Gateway pairing](/gateway/pairing)
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Historical bridge protocol (legacy nodes): TCP JSONL, pairing, scoped RPC"
|
|
3
|
-
read_when:
|
|
4
|
-
- Building or debugging node clients (iOS/Android/macOS node mode)
|
|
5
|
-
- Investigating pairing or bridge auth failures
|
|
6
|
-
- Auditing the node surface exposed by the gateway
|
|
7
|
-
title: "Bridge protocol"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
<Warning>
|
|
11
|
-
The TCP bridge has been **removed**. Current FengMing builds do not ship the bridge listener and `bridge.*` config keys are no longer in the schema. This page is kept for historical reference only. Use the [Gateway Protocol](/gateway/protocol) for all node/operator clients.
|
|
12
|
-
</Warning>
|
|
13
|
-
|
|
14
|
-
## Why it existed
|
|
15
|
-
|
|
16
|
-
- **Security boundary**: the bridge exposes a small allowlist instead of the
|
|
17
|
-
full gateway API surface.
|
|
18
|
-
- **Pairing + node identity**: node admission is owned by the gateway and tied
|
|
19
|
-
to a per-node token.
|
|
20
|
-
- **Discovery UX**: nodes can discover gateways via Bonjour on LAN, or connect
|
|
21
|
-
directly over a tailnet.
|
|
22
|
-
- **Loopback WS**: the full WS control plane stays local unless tunneled via SSH.
|
|
23
|
-
|
|
24
|
-
## Transport
|
|
25
|
-
|
|
26
|
-
- TCP, one JSON object per line (JSONL).
|
|
27
|
-
- Optional TLS (when `bridge.tls.enabled` is true).
|
|
28
|
-
- Historical default listener port was `18790` (current builds do not start a
|
|
29
|
-
TCP bridge).
|
|
30
|
-
|
|
31
|
-
When TLS is enabled, discovery TXT records include `bridgeTls=1` plus
|
|
32
|
-
`bridgeTlsSha256` as a non-secret hint. Note that Bonjour/mDNS TXT records are
|
|
33
|
-
unauthenticated; clients must not treat the advertised fingerprint as an
|
|
34
|
-
authoritative pin without explicit user intent or other out-of-band verification.
|
|
35
|
-
|
|
36
|
-
## Handshake + pairing
|
|
37
|
-
|
|
38
|
-
1. Client sends `hello` with node metadata + token (if already paired).
|
|
39
|
-
2. If not paired, gateway replies `error` (`NOT_PAIRED`/`UNAUTHORIZED`).
|
|
40
|
-
3. Client sends `pair-request`.
|
|
41
|
-
4. Gateway waits for approval, then sends `pair-ok` and `hello-ok`.
|
|
42
|
-
|
|
43
|
-
Historically, `hello-ok` returned `serverName`; hosted plugin surfaces are now
|
|
44
|
-
advertised through `pluginSurfaceUrls`. Canvas/A2UI uses
|
|
45
|
-
`pluginSurfaceUrls.canvas`; the deprecated `canvasHostUrl` alias is not part of
|
|
46
|
-
the refactored protocol.
|
|
47
|
-
|
|
48
|
-
## Frames
|
|
49
|
-
|
|
50
|
-
Client → Gateway:
|
|
51
|
-
|
|
52
|
-
- `req` / `res`: scoped gateway RPC (chat, sessions, config, health, voicewake, skills.bins)
|
|
53
|
-
- `event`: node signals (voice transcript, agent request, chat subscribe, exec lifecycle)
|
|
54
|
-
|
|
55
|
-
Gateway → Client:
|
|
56
|
-
|
|
57
|
-
- `invoke` / `invoke-res`: node commands (`canvas.*`, `camera.*`, `screen.record`,
|
|
58
|
-
`location.get`, `sms.send`)
|
|
59
|
-
- `event`: chat updates for subscribed sessions
|
|
60
|
-
- `ping` / `pong`: keepalive
|
|
61
|
-
|
|
62
|
-
Legacy allowlist enforcement lived in `src/gateway/server-bridge.ts` (removed).
|
|
63
|
-
|
|
64
|
-
## Exec lifecycle events
|
|
65
|
-
|
|
66
|
-
Nodes can emit `exec.finished` events to surface completed `system.run` activity.
|
|
67
|
-
These are mapped to system events in the gateway. (Legacy nodes may still emit `exec.started`.)
|
|
68
|
-
Nodes may emit `exec.denied` for denied `system.run` attempts; the gateway accepts
|
|
69
|
-
the event as a terminal denial and does not enqueue a system event or wake agent work.
|
|
70
|
-
|
|
71
|
-
Payload fields (all optional unless noted):
|
|
72
|
-
|
|
73
|
-
- `sessionKey` (required): agent session for event correlation and, for
|
|
74
|
-
`exec.finished`, system event delivery.
|
|
75
|
-
- `runId`: unique exec id for grouping.
|
|
76
|
-
- `command`: raw or formatted command string.
|
|
77
|
-
- `exitCode`, `timedOut`, `success`, `output`: completion details (finished only).
|
|
78
|
-
- `reason`: denial reason (denied only).
|
|
79
|
-
|
|
80
|
-
## Historical tailnet usage
|
|
81
|
-
|
|
82
|
-
- Bind the bridge to a tailnet IP: `bridge.bind: "tailnet"` in
|
|
83
|
-
`~/.fengming/fengming.json` (historical only; `bridge.*` is no longer valid).
|
|
84
|
-
- Clients connect via MagicDNS name or tailnet IP.
|
|
85
|
-
- Bonjour does **not** cross networks; use manual host/port or wide-area DNS-SD
|
|
86
|
-
when needed.
|
|
87
|
-
|
|
88
|
-
## Versioning
|
|
89
|
-
|
|
90
|
-
The bridge was **implicit v1** (no min/max negotiation). This section is
|
|
91
|
-
historical reference only; current node/operator clients use the WebSocket
|
|
92
|
-
[Gateway Protocol](/gateway/protocol).
|
|
93
|
-
|
|
94
|
-
## Related
|
|
95
|
-
|
|
96
|
-
- [Gateway protocol](/gateway/protocol)
|
|
97
|
-
- [Nodes](/nodes)
|