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/concepts/oauth.md
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "OAuth in FengMing: token exchange, storage, and multi-account patterns"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to understand FengMing OAuth end-to-end
|
|
5
|
-
- You hit token invalidation / logout issues
|
|
6
|
-
- You want Claude CLI or OAuth auth flows
|
|
7
|
-
- You want multiple accounts or profile routing
|
|
8
|
-
title: "OAuth"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
FengMing supports "subscription auth" via OAuth for providers that offer it
|
|
12
|
-
(notably **OpenAI Codex (ChatGPT OAuth)**). For Anthropic, the practical split
|
|
13
|
-
is now:
|
|
14
|
-
|
|
15
|
-
- **Anthropic API key**: normal Anthropic API billing
|
|
16
|
-
- **Anthropic Claude CLI / subscription auth inside FengMing**: Anthropic staff
|
|
17
|
-
told us this usage is allowed again
|
|
18
|
-
|
|
19
|
-
OpenAI Codex OAuth is explicitly supported for use in external tools like
|
|
20
|
-
FengMing. This page explains:
|
|
21
|
-
|
|
22
|
-
For Anthropic in production, API key auth is the safer recommended path.
|
|
23
|
-
|
|
24
|
-
- how the OAuth **token exchange** works (PKCE)
|
|
25
|
-
- where tokens are **stored** (and why)
|
|
26
|
-
- how to handle **multiple accounts** (profiles + per-session overrides)
|
|
27
|
-
|
|
28
|
-
FengMing also supports **provider plugins** that ship their own OAuth or API-key
|
|
29
|
-
flows. Run them via:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
fengming models auth login --provider <id>
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## The token sink (why it exists)
|
|
36
|
-
|
|
37
|
-
OAuth providers commonly mint a **new refresh token** during login/refresh flows. Some providers (or OAuth clients) can invalidate older refresh tokens when a new one is issued for the same user/app.
|
|
38
|
-
|
|
39
|
-
Practical symptom:
|
|
40
|
-
|
|
41
|
-
- you log in via FengMing _and_ via Claude Code / Codex CLI → one of them randomly gets "logged out" later
|
|
42
|
-
|
|
43
|
-
To reduce that, FengMing treats `auth-profiles.json` as a **token sink**:
|
|
44
|
-
|
|
45
|
-
- the runtime reads credentials from **one place**
|
|
46
|
-
- we can keep multiple profiles and route them deterministically
|
|
47
|
-
- external CLI reuse is provider-specific: Codex CLI can bootstrap an empty
|
|
48
|
-
`openai:default` profile, but once FengMing has a local OAuth profile,
|
|
49
|
-
the local refresh token is canonical. If that local refresh token is rejected,
|
|
50
|
-
FengMing can use a usable same-account Codex CLI token as a runtime-only
|
|
51
|
-
fallback; other integrations can remain externally managed and re-read their
|
|
52
|
-
CLI auth store
|
|
53
|
-
- status and startup paths that already know the configured provider set scope
|
|
54
|
-
external CLI discovery to that set, so an unrelated CLI login store is not
|
|
55
|
-
probed for a single-provider setup
|
|
56
|
-
|
|
57
|
-
## Storage (where tokens live)
|
|
58
|
-
|
|
59
|
-
Secrets are stored in agent auth stores:
|
|
60
|
-
|
|
61
|
-
- Auth profiles (OAuth + API keys + optional value-level refs): `~/.fengming/agents/<agentId>/agent/auth-profiles.json`
|
|
62
|
-
- Legacy compatibility file: `~/.fengming/agents/<agentId>/agent/auth.json`
|
|
63
|
-
(static `api_key` entries are scrubbed when discovered)
|
|
64
|
-
|
|
65
|
-
Legacy import-only file (still supported, but not the main store):
|
|
66
|
-
|
|
67
|
-
- `~/.fengming/credentials/oauth.json` (imported into `auth-profiles.json` on first use)
|
|
68
|
-
|
|
69
|
-
All of the above also respect `$FENGMING_STATE_DIR` (state dir override). Full reference: [/gateway/configuration](/gateway/configuration-reference#auth-storage)
|
|
70
|
-
|
|
71
|
-
For static secret refs and runtime snapshot activation behavior, see [Secrets Management](/gateway/secrets).
|
|
72
|
-
|
|
73
|
-
When a secondary agent has no local auth profile, FengMing uses read-through
|
|
74
|
-
inheritance from the default/main agent store. It does not clone the main
|
|
75
|
-
agent's `auth-profiles.json` on read. OAuth refresh tokens are especially
|
|
76
|
-
sensitive: normal copy flows skip them by default because some providers rotate
|
|
77
|
-
or invalidate refresh tokens after use. Configure a separate OAuth login for an
|
|
78
|
-
agent when it needs an independent account.
|
|
79
|
-
|
|
80
|
-
## Anthropic legacy token compatibility
|
|
81
|
-
|
|
82
|
-
<Warning>
|
|
83
|
-
Anthropic's public Claude Code docs say direct Claude Code use stays within
|
|
84
|
-
Claude subscription limits, and Anthropic staff told us FengMing-style Claude
|
|
85
|
-
CLI usage is allowed again. FengMing therefore treats Claude CLI reuse and
|
|
86
|
-
`claude -p` usage as sanctioned for this integration unless Anthropic
|
|
87
|
-
publishes a new policy.
|
|
88
|
-
|
|
89
|
-
For Anthropic's current direct-Claude-Code plan docs, see [Using Claude Code
|
|
90
|
-
with your Pro or Max
|
|
91
|
-
plan](https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan)
|
|
92
|
-
and [Using Claude Code with your Team or Enterprise
|
|
93
|
-
plan](https://support.anthropic.com/en/articles/11845131-using-claude-code-with-your-team-or-enterprise-plan/).
|
|
94
|
-
|
|
95
|
-
If you want other subscription-style options in FengMing, see [OpenAI
|
|
96
|
-
Codex](/providers/openai), [Qwen Cloud Coding
|
|
97
|
-
Plan](/providers/qwen), [MiniMax Coding Plan](/providers/minimax),
|
|
98
|
-
and [Z.AI / GLM Coding Plan](/providers/zai).
|
|
99
|
-
</Warning>
|
|
100
|
-
|
|
101
|
-
FengMing also exposes Anthropic setup-token as a supported token-auth path, but it now prefers Claude CLI reuse and `claude -p` when available.
|
|
102
|
-
|
|
103
|
-
## Anthropic Claude CLI migration
|
|
104
|
-
|
|
105
|
-
FengMing supports Anthropic Claude CLI reuse again. If you already have a local
|
|
106
|
-
Claude login on the host, onboarding/configure can reuse it directly.
|
|
107
|
-
|
|
108
|
-
## OAuth exchange (how login works)
|
|
109
|
-
|
|
110
|
-
FengMing's interactive login flows are implemented in `fengming/plugin-sdk/llm` and wired into the wizards/commands.
|
|
111
|
-
|
|
112
|
-
### Anthropic setup-token
|
|
113
|
-
|
|
114
|
-
Flow shape:
|
|
115
|
-
|
|
116
|
-
1. start Anthropic setup-token or paste-token from FengMing
|
|
117
|
-
2. FengMing stores the resulting Anthropic credential in an auth profile
|
|
118
|
-
3. model selection stays on `anthropic/...`
|
|
119
|
-
4. existing Anthropic auth profiles remain available for rollback/order control
|
|
120
|
-
|
|
121
|
-
### OpenAI Codex (ChatGPT OAuth)
|
|
122
|
-
|
|
123
|
-
OpenAI Codex OAuth is explicitly supported for use outside the Codex CLI, including FengMing workflows.
|
|
124
|
-
|
|
125
|
-
Flow shape (PKCE):
|
|
126
|
-
|
|
127
|
-
1. generate PKCE verifier/challenge + random `state`
|
|
128
|
-
2. open `https://auth.openai.com/oauth/authorize?...`
|
|
129
|
-
3. try to capture callback on `http://127.0.0.1:1455/auth/callback`
|
|
130
|
-
4. if callback can't bind (or you're remote/headless), paste the redirect URL/code
|
|
131
|
-
5. exchange at `https://auth.openai.com/oauth/token`
|
|
132
|
-
6. extract `accountId` from the access token and store `{ access, refresh, expires, accountId }`
|
|
133
|
-
|
|
134
|
-
Wizard path is `fengming onboard` → auth choice `openai`.
|
|
135
|
-
|
|
136
|
-
## Refresh + expiry
|
|
137
|
-
|
|
138
|
-
Profiles store an `expires` timestamp.
|
|
139
|
-
|
|
140
|
-
At runtime:
|
|
141
|
-
|
|
142
|
-
- if `expires` is in the future → use the stored access token
|
|
143
|
-
- if expired → refresh (under a file lock) and overwrite the stored credentials
|
|
144
|
-
- if a secondary agent reads an inherited main-agent OAuth profile, refresh
|
|
145
|
-
writes back to the main agent store instead of copying the refresh token into
|
|
146
|
-
the secondary agent store
|
|
147
|
-
- exception: some external CLI credentials stay externally managed; FengMing
|
|
148
|
-
re-reads those CLI auth stores instead of spending copied refresh tokens.
|
|
149
|
-
Codex CLI bootstrap is intentionally narrower: it seeds an empty
|
|
150
|
-
`openai:default` profile, then FengMing-owned refreshes keep the local
|
|
151
|
-
profile canonical. If the local Codex refresh fails and Codex CLI has a
|
|
152
|
-
usable token for the same account, FengMing may use that token for the current
|
|
153
|
-
runtime request without writing it back to `auth-profiles.json`.
|
|
154
|
-
|
|
155
|
-
The refresh flow is automatic; you generally don't need to manage tokens manually.
|
|
156
|
-
|
|
157
|
-
## Multiple accounts (profiles) + routing
|
|
158
|
-
|
|
159
|
-
Two patterns:
|
|
160
|
-
|
|
161
|
-
### 1) Preferred: separate agents
|
|
162
|
-
|
|
163
|
-
If you want "personal" and "work" to never interact, use isolated agents (separate sessions + credentials + workspace):
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
fengming agents add work
|
|
167
|
-
fengming agents add personal
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Then configure auth per-agent (wizard) and route chats to the right agent.
|
|
171
|
-
|
|
172
|
-
### 2) Advanced: multiple profiles in one agent
|
|
173
|
-
|
|
174
|
-
`auth-profiles.json` supports multiple profile IDs for the same provider.
|
|
175
|
-
|
|
176
|
-
Pick which profile is used:
|
|
177
|
-
|
|
178
|
-
- globally via config ordering (`auth.order`)
|
|
179
|
-
- per-session via `/model ...@<profileId>`
|
|
180
|
-
|
|
181
|
-
Example (session override):
|
|
182
|
-
|
|
183
|
-
- `/model Opus@anthropic:work`
|
|
184
|
-
|
|
185
|
-
How to see what profile IDs exist:
|
|
186
|
-
|
|
187
|
-
- `fengming channels list --json` (shows `auth[]`)
|
|
188
|
-
|
|
189
|
-
Related docs:
|
|
190
|
-
|
|
191
|
-
- [Model failover](/concepts/model-failover) (rotation + cooldown rules)
|
|
192
|
-
- [Slash commands](/tools/slash-commands) (command surface)
|
|
193
|
-
|
|
194
|
-
## Related
|
|
195
|
-
|
|
196
|
-
- [Authentication](/gateway/authentication) - model provider auth overview
|
|
197
|
-
- [Secrets](/gateway/secrets) - credential storage and SecretRef
|
|
198
|
-
- [Configuration Reference](/gateway/configuration-reference#auth-storage) - auth config keys
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Run parallel specialist agents without clogging shared model and tool capacity"
|
|
3
|
-
title: "Parallel specialist lanes"
|
|
4
|
-
sidebarTitle: "Specialist lanes"
|
|
5
|
-
read_when:
|
|
6
|
-
- You route group chats to dedicated agents
|
|
7
|
-
- You want parallel work without one long task blocking every chat
|
|
8
|
-
- You are designing a multi-agent operations setup
|
|
9
|
-
status: active
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
Parallel specialist lanes let one Gateway route different chats or rooms to
|
|
13
|
-
different agents, while keeping the user experience fast. The trick is to treat
|
|
14
|
-
parallelism as a scarce-resource design problem, not just as "more agents".
|
|
15
|
-
|
|
16
|
-
## First principles
|
|
17
|
-
|
|
18
|
-
A specialist lane only improves throughput when it reduces contention for the
|
|
19
|
-
real bottlenecks:
|
|
20
|
-
|
|
21
|
-
- **Session locks**: only one run should mutate a given session at a time.
|
|
22
|
-
- **Global model capacity**: all visible chat runs still share provider limits.
|
|
23
|
-
- **Tool capacity**: shell, browser, network, and repository work can be slower
|
|
24
|
-
than the model turn itself.
|
|
25
|
-
- **Context budget**: long transcripts make every future turn slower and less
|
|
26
|
-
focused.
|
|
27
|
-
- **Ownership ambiguity**: duplicate agents doing the same job waste capacity.
|
|
28
|
-
|
|
29
|
-
FengMing already serializes runs per session and caps global parallelism through
|
|
30
|
-
the [command queue](/concepts/queue). Specialist lanes add policy on top:
|
|
31
|
-
which agent owns which work, what stays in chat, and what becomes background
|
|
32
|
-
work.
|
|
33
|
-
|
|
34
|
-
## Recommended rollout
|
|
35
|
-
|
|
36
|
-
### Phase 1: lane contracts + background heavy work
|
|
37
|
-
|
|
38
|
-
Give every lane a written contract in its workspace and system prompt:
|
|
39
|
-
|
|
40
|
-
- **Purpose**: the work this lane owns.
|
|
41
|
-
- **Non-goals**: work it should hand off instead of attempting.
|
|
42
|
-
- **Chat budget**: quick answers stay in chat; long tasks should acknowledge
|
|
43
|
-
briefly, then run in a background sub-agent or task.
|
|
44
|
-
- **Handoff rule**: when another lane owns the work, say where it should go and
|
|
45
|
-
provide a compact handoff summary.
|
|
46
|
-
- **Tool-risk rule**: prefer the smallest tool surface that can do the job.
|
|
47
|
-
|
|
48
|
-
This is the cheapest phase and fixes most clogging: one coding job no longer
|
|
49
|
-
turns the research lane into molasses, and each chat keeps its own context clean.
|
|
50
|
-
|
|
51
|
-
### Phase 2: priority and concurrency controls
|
|
52
|
-
|
|
53
|
-
Tune queue and model capacity around the business value of each lane:
|
|
54
|
-
|
|
55
|
-
```json5
|
|
56
|
-
{
|
|
57
|
-
agents: {
|
|
58
|
-
defaults: {
|
|
59
|
-
maxConcurrent: 4,
|
|
60
|
-
subagents: { maxConcurrent: 8, delegationMode: "prefer" },
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
messages: {
|
|
64
|
-
queue: {
|
|
65
|
-
mode: "collect",
|
|
66
|
-
debounceMs: 1000,
|
|
67
|
-
cap: 20,
|
|
68
|
-
drop: "summarize",
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Use direct/personal chats and production-ops agents for high-priority work. Let
|
|
75
|
-
research, drafting, and batch coding move to background tasks when the system is
|
|
76
|
-
busy.
|
|
77
|
-
|
|
78
|
-
### Phase 3: coordinator / traffic controller
|
|
79
|
-
|
|
80
|
-
Add a small coordinator pattern once multiple lanes are active:
|
|
81
|
-
|
|
82
|
-
- Track active lane tasks and owners.
|
|
83
|
-
- Detect duplicate requests across groups.
|
|
84
|
-
- Route handoff summaries between lanes.
|
|
85
|
-
- Surface only blockers, completed results, and decisions the human must make.
|
|
86
|
-
|
|
87
|
-
Do not start here. A coordinator without lane contracts just coordinates chaos.
|
|
88
|
-
|
|
89
|
-
## Minimal lane contract template
|
|
90
|
-
|
|
91
|
-
```md
|
|
92
|
-
# Lane contract
|
|
93
|
-
|
|
94
|
-
## Owns
|
|
95
|
-
|
|
96
|
-
- <job this lane is responsible for>
|
|
97
|
-
|
|
98
|
-
## Does not own
|
|
99
|
-
|
|
100
|
-
- <work to hand off>
|
|
101
|
-
|
|
102
|
-
## Chat budget
|
|
103
|
-
|
|
104
|
-
- Answer quick questions directly.
|
|
105
|
-
- For multi-step, slow, or tool-heavy work: acknowledge briefly, spawn/background
|
|
106
|
-
the work, then return the result when complete.
|
|
107
|
-
|
|
108
|
-
## Handoff
|
|
109
|
-
|
|
110
|
-
If another lane owns the request, reply with:
|
|
111
|
-
|
|
112
|
-
- target lane
|
|
113
|
-
- objective
|
|
114
|
-
- relevant context
|
|
115
|
-
- exact next action
|
|
116
|
-
|
|
117
|
-
## Tool posture
|
|
118
|
-
|
|
119
|
-
Use the smallest tool surface that can complete the task. Avoid broad shell or
|
|
120
|
-
network work unless this lane explicitly owns it.
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## Related
|
|
124
|
-
|
|
125
|
-
- [Multi-agent routing](/concepts/multi-agent)
|
|
126
|
-
- [Command queue](/concepts/queue)
|
|
127
|
-
- [Sub-agents](/tools/subagents)
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Local qa-channel scenarios for privacy-preserving personal assistant workflow checks."
|
|
3
|
-
read_when:
|
|
4
|
-
- Running local personal agent reliability checks
|
|
5
|
-
- Extending the repo-backed QA scenario catalog
|
|
6
|
-
- Verifying reminder, reply, memory, redaction, safe tool followthrough, task status, share-safe diagnostics, proof-backed completion claims, and failure recovery
|
|
7
|
-
title: "Personal agent benchmark pack"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
The Personal Agent Benchmark Pack is a small repo-backed QA scenario pack for
|
|
11
|
-
local personal assistant workflows. It is not a generic model benchmark and it
|
|
12
|
-
does not require a new runner. The pack reuses the private QA stack described in
|
|
13
|
-
[QA overview](/concepts/qa-e2e-automation), the synthetic
|
|
14
|
-
[QA channel](/channels/qa-channel), and the existing `qa/scenarios` markdown
|
|
15
|
-
catalog.
|
|
16
|
-
|
|
17
|
-
The first pack is intentionally narrow:
|
|
18
|
-
|
|
19
|
-
- fake personal reminders through local cron delivery
|
|
20
|
-
- fake DM and thread reply routing through `qa-channel`
|
|
21
|
-
- fake preference recall from the temporary QA workspace memory files
|
|
22
|
-
- fake secret no-echo checks
|
|
23
|
-
- safe read-backed tool followthrough after a short approval-style turn
|
|
24
|
-
- approval denial stop behavior for a sensitive local read request
|
|
25
|
-
- proof-backed task status reporting that keeps pending, blocked, and done separate
|
|
26
|
-
- share-safe diagnostics artifacts that keep useful status while omitting raw personal content
|
|
27
|
-
- proof-backed completion claims that avoid fake progress before local evidence exists
|
|
28
|
-
- failure recovery that reports partial status and keeps retry boundaries clear
|
|
29
|
-
|
|
30
|
-
## Scenarios
|
|
31
|
-
|
|
32
|
-
The machine-readable pack metadata lives in
|
|
33
|
-
`extensions/qa-lab/src/scenario-packs.ts`. Run the pack with
|
|
34
|
-
`--pack personal-agent`:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
FENGMING_ENABLE_PRIVATE_QA_CLI=1 pnpm fengming qa suite \
|
|
38
|
-
--provider-mode mock-openai \
|
|
39
|
-
--pack personal-agent \
|
|
40
|
-
--concurrency 1
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`--pack` is additive with repeated `--scenario` flags. Explicit scenarios run
|
|
44
|
-
first, then the pack scenarios run in `QA_PERSONAL_AGENT_SCENARIO_IDS` order with
|
|
45
|
-
duplicates removed.
|
|
46
|
-
|
|
47
|
-
The pack is designed for `qa-channel` with `mock-openai` or another local QA
|
|
48
|
-
provider lane. It should not be pointed at live chat services or real personal
|
|
49
|
-
accounts.
|
|
50
|
-
|
|
51
|
-
## Privacy Model
|
|
52
|
-
|
|
53
|
-
The scenarios use only fake users, fake preferences, fake secrets, and the
|
|
54
|
-
temporary QA gateway workspace created by the suite. They must not read or write
|
|
55
|
-
real FengMing user memory, sessions, credentials, launch agents, global configs,
|
|
56
|
-
or live gateway state.
|
|
57
|
-
|
|
58
|
-
Artifacts stay under the existing QA suite artifact directory and should be
|
|
59
|
-
treated like test output. Redaction checks use fake markers so failures are safe
|
|
60
|
-
to inspect and file in issues.
|
|
61
|
-
|
|
62
|
-
## Extending The Pack
|
|
63
|
-
|
|
64
|
-
Add new cases under `qa/scenarios/personal/`, then add the scenario id to
|
|
65
|
-
`QA_PERSONAL_AGENT_SCENARIO_IDS`. Keep each case small, local, deterministic in
|
|
66
|
-
`mock-openai`, and focused on one personal assistant behavior.
|
|
67
|
-
|
|
68
|
-
Good follow-up candidates:
|
|
69
|
-
|
|
70
|
-
- redacted trajectory export checks
|
|
71
|
-
- local-only plugin workflow checks
|
|
72
|
-
|
|
73
|
-
Avoid adding a new runner, plugin, dependency, live transport, or model judge
|
|
74
|
-
until the scenario catalog has enough stable cases to justify that surface.
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "How FengMing presence entries are produced, merged, and displayed"
|
|
3
|
-
read_when:
|
|
4
|
-
- Debugging the Instances tab
|
|
5
|
-
- Investigating duplicate or stale instance rows
|
|
6
|
-
- Changing gateway WS connect or system-event beacons
|
|
7
|
-
title: "Presence"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
FengMing "presence" is a lightweight, best-effort view of:
|
|
11
|
-
|
|
12
|
-
- the **Gateway** itself, and
|
|
13
|
-
- **clients connected to the Gateway** (mac app, WebChat, CLI, etc.)
|
|
14
|
-
|
|
15
|
-
Presence is used primarily to render the macOS app's **Instances** tab and to
|
|
16
|
-
provide quick operator visibility.
|
|
17
|
-
|
|
18
|
-
## Presence fields (what shows up)
|
|
19
|
-
|
|
20
|
-
Presence entries are structured objects with fields like:
|
|
21
|
-
|
|
22
|
-
- `instanceId` (optional but strongly recommended): stable client identity (usually `connect.client.instanceId`)
|
|
23
|
-
- `host`: human-friendly host name
|
|
24
|
-
- `ip`: best-effort IP address
|
|
25
|
-
- `version`: client version string
|
|
26
|
-
- `deviceFamily` / `modelIdentifier`: hardware hints
|
|
27
|
-
- `mode`: `ui`, `webchat`, `cli`, `backend`, `probe`, `test`, `node`, ...
|
|
28
|
-
- `lastInputSeconds`: "seconds since last user input" (if known)
|
|
29
|
-
- `reason`: `self`, `connect`, `node-connected`, `periodic`, ...
|
|
30
|
-
- `ts`: last update timestamp (ms since epoch)
|
|
31
|
-
|
|
32
|
-
## Producers (where presence comes from)
|
|
33
|
-
|
|
34
|
-
Presence entries are produced by multiple sources and **merged**.
|
|
35
|
-
|
|
36
|
-
### 1) Gateway self entry
|
|
37
|
-
|
|
38
|
-
The Gateway always seeds a "self" entry at startup so UIs show the gateway host
|
|
39
|
-
even before any clients connect.
|
|
40
|
-
|
|
41
|
-
### 2) WebSocket connect
|
|
42
|
-
|
|
43
|
-
Every WS client begins with a `connect` request. On successful handshake the
|
|
44
|
-
Gateway upserts a presence entry for that connection.
|
|
45
|
-
|
|
46
|
-
#### Why one-off CLI commands do not show up
|
|
47
|
-
|
|
48
|
-
The CLI often connects for short, one-off commands. To avoid spamming the
|
|
49
|
-
Instances list, `client.mode === "cli"` is **not** turned into a presence entry.
|
|
50
|
-
|
|
51
|
-
### 3) `system-event` beacons
|
|
52
|
-
|
|
53
|
-
Clients can send richer periodic beacons via the `system-event` method. The mac
|
|
54
|
-
app uses this to report host name, IP, and `lastInputSeconds`.
|
|
55
|
-
|
|
56
|
-
### 4) Node connects (role: node)
|
|
57
|
-
|
|
58
|
-
When a node connects over the Gateway WebSocket with `role: node`, the Gateway
|
|
59
|
-
upserts a presence entry for that node (same flow as other WS clients).
|
|
60
|
-
|
|
61
|
-
## Merge + dedupe rules (why `instanceId` matters)
|
|
62
|
-
|
|
63
|
-
Presence entries are stored in a single in-memory map:
|
|
64
|
-
|
|
65
|
-
- Entries are keyed by a **presence key**.
|
|
66
|
-
- The best key is a stable `instanceId` (from `connect.client.instanceId`) that survives restarts.
|
|
67
|
-
- Keys are case-insensitive.
|
|
68
|
-
|
|
69
|
-
If a client reconnects without a stable `instanceId`, it may show up as a
|
|
70
|
-
**duplicate** row.
|
|
71
|
-
|
|
72
|
-
## TTL and bounded size
|
|
73
|
-
|
|
74
|
-
Presence is intentionally ephemeral:
|
|
75
|
-
|
|
76
|
-
- **TTL:** entries older than 5 minutes are pruned
|
|
77
|
-
- **Max entries:** 200 (oldest dropped first)
|
|
78
|
-
|
|
79
|
-
This keeps the list fresh and avoids unbounded memory growth.
|
|
80
|
-
|
|
81
|
-
## Remote/tunnel caveat (loopback IPs)
|
|
82
|
-
|
|
83
|
-
When a client connects over an SSH tunnel / local port forward, the Gateway may
|
|
84
|
-
see the remote address as `127.0.0.1`. To avoid overwriting a good client-reported
|
|
85
|
-
IP, loopback remote addresses are ignored.
|
|
86
|
-
|
|
87
|
-
## Consumers
|
|
88
|
-
|
|
89
|
-
### macOS Instances tab
|
|
90
|
-
|
|
91
|
-
The macOS app renders the output of `system-presence` and applies a small status
|
|
92
|
-
indicator (Active/Idle/Stale) based on the age of the last update.
|
|
93
|
-
|
|
94
|
-
## Debugging tips
|
|
95
|
-
|
|
96
|
-
- To see the raw list, call `system-presence` against the Gateway.
|
|
97
|
-
- If you see duplicates:
|
|
98
|
-
- confirm clients send a stable `client.instanceId` in the handshake
|
|
99
|
-
- confirm periodic beacons use the same `instanceId`
|
|
100
|
-
- check whether the connection-derived entry is missing `instanceId` (duplicates are expected)
|
|
101
|
-
|
|
102
|
-
## Related
|
|
103
|
-
|
|
104
|
-
<CardGroup cols={2}>
|
|
105
|
-
<Card title="Typing indicators" href="/concepts/typing-indicators" icon="ellipsis">
|
|
106
|
-
When typing indicators are sent and how to tune them.
|
|
107
|
-
</Card>
|
|
108
|
-
<Card title="Streaming and chunking" href="/concepts/streaming" icon="bars-staggered">
|
|
109
|
-
Outbound streaming, chunking, and per-channel formatting.
|
|
110
|
-
</Card>
|
|
111
|
-
<Card title="Gateway architecture" href="/concepts/architecture" icon="diagram-project">
|
|
112
|
-
Gateway components and the WebSocket protocol that drives presence updates.
|
|
113
|
-
</Card>
|
|
114
|
-
<Card title="Gateway protocol" href="/gateway/protocol" icon="plug">
|
|
115
|
-
The wire protocol for `connect`, `system-event`, and `system-presence`.
|
|
116
|
-
</Card>
|
|
117
|
-
</CardGroup>
|