fengming 0.3.10 → 0.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli-startup-metadata.json +8 -8
- package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-wgT0-JR0.js} +2 -2
- package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-DG5PobrT.js} +2 -2
- package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CX28oM42.js} +2 -2
- package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-B8ixwBqU.js} +2 -2
- package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-CnkYZUXy.js} +2 -2
- package/dist/control-ui/assets/{index-jUDczxhd.js → index-DQRZJKbO.js} +4 -4
- package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BE3mV1JC.js} +2 -2
- package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-Cou4PWRX.js} +2 -2
- package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-DpAaBT21.js} +2 -2
- package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-DjA_j_20.js} +2 -2
- package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-BFnvbS0k.js} +2 -2
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/sw.js +1 -1
- package/dist/gateway/protocol/index.d.ts +1 -1
- package/dist/{index-AZzJCgph.d.ts → index-DuDY3bCZ.d.ts} +2 -2
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/agent-config-primitives.d.ts +1 -1
- package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-BPFNnbwu.d.ts} +23 -23
- package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +3 -3
- package/dist/plugin-sdk/channel-config-primitives.d.ts +2 -2
- package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +3 -3
- package/dist/plugin-sdk/channel-config-schema.d.ts +2 -2
- package/dist/plugin-sdk/channel-core.d.ts +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +1 -1
- package/dist/plugin-sdk/compat.d.ts +2 -2
- package/dist/plugin-sdk/{config-schema-DUddICQM.d.ts → config-schema-D7cABQ6o.d.ts} +1 -1
- package/dist/plugin-sdk/config-schema.d.ts +2 -2
- package/dist/plugin-sdk/core.d.ts +1 -1
- package/dist/plugin-sdk/discord.d.ts +2 -2
- package/dist/plugin-sdk/tts-runtime.d.ts +1 -1
- package/dist/plugin-sdk/{zod-schema.core-B4_b2R5K.d.ts → zod-schema.core-CwBNqcXp.d.ts} +1 -1
- package/package.json +4 -409
- package/CHANGELOG.md +0 -42
- package/THIRD_PARTY_NOTICES.md +0 -37
- 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
|
@@ -1,411 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Build simple typed agent tools with defineToolPlugin and fengming plugins init/build/validate"
|
|
3
|
-
title: "Tool plugins"
|
|
4
|
-
sidebarTitle: "Tool Plugins"
|
|
5
|
-
read_when:
|
|
6
|
-
- You want to build a simple FengMing plugin that only adds agent tools
|
|
7
|
-
- You want to use defineToolPlugin instead of hand-writing plugin manifest metadata
|
|
8
|
-
- You need to scaffold, generate, validate, test, or publish a tool-only plugin
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
Tool plugins add agent-callable tools to FengMing without adding a channel,
|
|
12
|
-
model provider, hook, service, or setup backend. Use `defineToolPlugin` when the
|
|
13
|
-
plugin owns a fixed list of tools and you want FengMing to generate the manifest
|
|
14
|
-
metadata that keeps those tools discoverable without loading runtime code.
|
|
15
|
-
|
|
16
|
-
The recommended flow is:
|
|
17
|
-
|
|
18
|
-
1. Scaffold a package with `fengming plugins init`.
|
|
19
|
-
2. Write tools with `defineToolPlugin`.
|
|
20
|
-
3. Build JavaScript.
|
|
21
|
-
4. Generate `fengming.plugin.json` and `package.json` metadata with
|
|
22
|
-
`fengming plugins build`.
|
|
23
|
-
5. Validate the generated metadata before publishing or installing.
|
|
24
|
-
|
|
25
|
-
For provider, channel, hook, service, or mixed-capability plugins, start with
|
|
26
|
-
[Building plugins](/plugins/building-plugins), [Channel Plugins](/plugins/sdk-channel-plugins),
|
|
27
|
-
or [Provider Plugins](/plugins/sdk-provider-plugins) instead.
|
|
28
|
-
|
|
29
|
-
## Requirements
|
|
30
|
-
|
|
31
|
-
- Node >= 22.
|
|
32
|
-
- TypeScript ESM package output.
|
|
33
|
-
- `typebox` for config and tool parameter schemas.
|
|
34
|
-
- `fengming >=2026.5.17`, the first FengMing version that exports
|
|
35
|
-
`fengming/plugin-sdk/tool-plugin`.
|
|
36
|
-
- A package root that can ship `dist/`, `fengming.plugin.json`, and
|
|
37
|
-
`package.json`.
|
|
38
|
-
|
|
39
|
-
The generated plugin imports `typebox` at runtime, so keep `typebox` in
|
|
40
|
-
`dependencies`, not only `devDependencies`.
|
|
41
|
-
|
|
42
|
-
## Quickstart
|
|
43
|
-
|
|
44
|
-
Create a new plugin package:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
fengming plugins init stock-quotes --name "Stock Quotes"
|
|
48
|
-
cd stock-quotes
|
|
49
|
-
npm install
|
|
50
|
-
npm run plugin:build
|
|
51
|
-
npm run plugin:validate
|
|
52
|
-
npm test
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
The scaffold creates:
|
|
56
|
-
|
|
57
|
-
- `src/index.ts`: a `defineToolPlugin` entry with an `echo` tool.
|
|
58
|
-
- `src/index.test.ts`: a small metadata test.
|
|
59
|
-
- `tsconfig.json`: NodeNext TypeScript output to `dist/`.
|
|
60
|
-
- `package.json`: scripts, runtime dependencies, and
|
|
61
|
-
`fengming.extensions: ["./dist/index.js"]`.
|
|
62
|
-
- `fengming.plugin.json`: generated manifest metadata for the initial tool.
|
|
63
|
-
|
|
64
|
-
Expected validation output:
|
|
65
|
-
|
|
66
|
-
```text
|
|
67
|
-
Plugin stock-quotes is valid.
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Write a tool
|
|
71
|
-
|
|
72
|
-
`defineToolPlugin` takes plugin identity, an optional config schema, and a
|
|
73
|
-
static list of tools. Parameter and config types are inferred from TypeBox
|
|
74
|
-
schemas.
|
|
75
|
-
|
|
76
|
-
```typescript
|
|
77
|
-
import { Type } from "typebox";
|
|
78
|
-
import { defineToolPlugin } from "fengming/plugin-sdk/tool-plugin";
|
|
79
|
-
|
|
80
|
-
export default defineToolPlugin({
|
|
81
|
-
id: "stock-quotes",
|
|
82
|
-
name: "Stock Quotes",
|
|
83
|
-
description: "Fetch stock quote snapshots.",
|
|
84
|
-
configSchema: Type.Object({
|
|
85
|
-
apiKey: Type.Optional(Type.String({ description: "Quote API key." })),
|
|
86
|
-
baseUrl: Type.Optional(Type.String({ description: "Quote API base URL." })),
|
|
87
|
-
}),
|
|
88
|
-
tools: (tool) => [
|
|
89
|
-
tool({
|
|
90
|
-
name: "stock_quote",
|
|
91
|
-
label: "Stock Quote",
|
|
92
|
-
description: "Fetch a stock quote snapshot.",
|
|
93
|
-
parameters: Type.Object({
|
|
94
|
-
symbol: Type.String({ description: "Ticker symbol, for example OPEN." }),
|
|
95
|
-
}),
|
|
96
|
-
async execute({ symbol }, config, context) {
|
|
97
|
-
context.signal?.throwIfAborted();
|
|
98
|
-
return {
|
|
99
|
-
symbol: symbol.toUpperCase(),
|
|
100
|
-
configured: Boolean(config.apiKey),
|
|
101
|
-
baseUrl: config.baseUrl ?? "https://api.example.com",
|
|
102
|
-
};
|
|
103
|
-
},
|
|
104
|
-
}),
|
|
105
|
-
],
|
|
106
|
-
});
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Tool names are the stable API. Pick names that are unique, lowercase, and
|
|
110
|
-
specific enough to avoid collisions with core tools or other plugins.
|
|
111
|
-
|
|
112
|
-
## Optional and factory tools
|
|
113
|
-
|
|
114
|
-
Set `optional: true` when users should explicitly allowlist the tool before it
|
|
115
|
-
is sent to a model:
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
tool({
|
|
119
|
-
name: "workflow_run",
|
|
120
|
-
description: "Run an external workflow.",
|
|
121
|
-
parameters: Type.Object({ goal: Type.String() }),
|
|
122
|
-
optional: true,
|
|
123
|
-
execute: ({ goal }) => ({ queued: true, goal }),
|
|
124
|
-
});
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
`fengming plugins build` writes the matching `toolMetadata.<tool>.optional`
|
|
128
|
-
manifest entry, so FengMing can discover the tool without loading plugin
|
|
129
|
-
runtime code.
|
|
130
|
-
|
|
131
|
-
Use `factory` when a tool needs the runtime tool context before it can be
|
|
132
|
-
created. The factory keeps metadata static while letting the tool opt out for a
|
|
133
|
-
specific run, inspect sandbox state, or bind runtime helpers.
|
|
134
|
-
|
|
135
|
-
```typescript
|
|
136
|
-
tool({
|
|
137
|
-
name: "local_workflow",
|
|
138
|
-
description: "Run a local workflow outside sandboxed sessions.",
|
|
139
|
-
parameters: Type.Object({ goal: Type.String() }),
|
|
140
|
-
optional: true,
|
|
141
|
-
factory({ api, toolContext }) {
|
|
142
|
-
if (toolContext.sandboxed) {
|
|
143
|
-
return null;
|
|
144
|
-
}
|
|
145
|
-
return createLocalWorkflowTool(api);
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
Factories are still for fixed tool names. Use `definePluginEntry` directly when
|
|
151
|
-
the plugin computes tool names dynamically or combines tools with hooks,
|
|
152
|
-
services, providers, commands, or other runtime surfaces.
|
|
153
|
-
|
|
154
|
-
## Return values
|
|
155
|
-
|
|
156
|
-
`defineToolPlugin` wraps plain return values into the FengMing tool-result
|
|
157
|
-
format:
|
|
158
|
-
|
|
159
|
-
- Return a string when the model should see that exact text.
|
|
160
|
-
- Return a JSON-compatible value when you want the model to see formatted JSON
|
|
161
|
-
and FengMing to keep the original value in `details`.
|
|
162
|
-
|
|
163
|
-
```typescript
|
|
164
|
-
tool({
|
|
165
|
-
name: "echo_text",
|
|
166
|
-
description: "Echo input text.",
|
|
167
|
-
parameters: Type.Object({
|
|
168
|
-
input: Type.String(),
|
|
169
|
-
}),
|
|
170
|
-
execute: ({ input }) => input,
|
|
171
|
-
});
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
```typescript
|
|
175
|
-
tool({
|
|
176
|
-
name: "echo_json",
|
|
177
|
-
description: "Echo input as structured JSON.",
|
|
178
|
-
parameters: Type.Object({
|
|
179
|
-
input: Type.String(),
|
|
180
|
-
}),
|
|
181
|
-
execute: ({ input }) => ({ input, length: input.length }),
|
|
182
|
-
});
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Use a factory tool when you need to return a custom `AgentToolResult` or reuse
|
|
186
|
-
an existing `api.registerTool` implementation. Use `definePluginEntry` instead
|
|
187
|
-
of `defineToolPlugin` when you need fully dynamic tools or mixed plugin
|
|
188
|
-
capabilities.
|
|
189
|
-
|
|
190
|
-
## Configuration
|
|
191
|
-
|
|
192
|
-
`configSchema` is optional. If you omit it, FengMing uses a strict empty object
|
|
193
|
-
schema and the generated manifest still includes `configSchema`.
|
|
194
|
-
|
|
195
|
-
```typescript
|
|
196
|
-
export default defineToolPlugin({
|
|
197
|
-
id: "no-config-tools",
|
|
198
|
-
name: "No Config Tools",
|
|
199
|
-
description: "Adds tools that do not need configuration.",
|
|
200
|
-
tools: () => [],
|
|
201
|
-
});
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
When you include `configSchema`, the second `execute` argument is typed from the
|
|
205
|
-
schema:
|
|
206
|
-
|
|
207
|
-
```typescript
|
|
208
|
-
const configSchema = Type.Object({
|
|
209
|
-
apiKey: Type.String(),
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
export default defineToolPlugin({
|
|
213
|
-
id: "configured-tools",
|
|
214
|
-
name: "Configured Tools",
|
|
215
|
-
description: "Adds configured tools.",
|
|
216
|
-
configSchema,
|
|
217
|
-
tools: (tool) => [
|
|
218
|
-
tool({
|
|
219
|
-
name: "configured_ping",
|
|
220
|
-
description: "Check whether configuration is available.",
|
|
221
|
-
parameters: Type.Object({}),
|
|
222
|
-
execute: (_params, config) => ({ hasKey: config.apiKey.length > 0 }),
|
|
223
|
-
}),
|
|
224
|
-
],
|
|
225
|
-
});
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
FengMing reads plugin config from the plugin entry in the Gateway config. Do not
|
|
229
|
-
hard-code secrets in source or in docs examples. Use config, environment
|
|
230
|
-
variables, or SecretRefs according to the plugin's security model.
|
|
231
|
-
|
|
232
|
-
## Generated metadata
|
|
233
|
-
|
|
234
|
-
FengMing discovers installed plugins from cold metadata. It must be able to read
|
|
235
|
-
the plugin manifest before importing plugin runtime code. `defineToolPlugin`
|
|
236
|
-
therefore exposes static metadata, and `fengming plugins build` writes that
|
|
237
|
-
metadata into the package.
|
|
238
|
-
|
|
239
|
-
Run the generator after changing plugin id, name, description, config schema,
|
|
240
|
-
activation, or tool names:
|
|
241
|
-
|
|
242
|
-
```bash
|
|
243
|
-
npm run build
|
|
244
|
-
fengming plugins build --entry ./dist/index.js
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
For a one-tool plugin, the generated manifest looks like this:
|
|
248
|
-
|
|
249
|
-
```json
|
|
250
|
-
{
|
|
251
|
-
"id": "stock-quotes",
|
|
252
|
-
"name": "Stock Quotes",
|
|
253
|
-
"description": "Fetch stock quote snapshots.",
|
|
254
|
-
"version": "0.1.0",
|
|
255
|
-
"configSchema": {
|
|
256
|
-
"type": "object",
|
|
257
|
-
"additionalProperties": false,
|
|
258
|
-
"properties": {}
|
|
259
|
-
},
|
|
260
|
-
"activation": {
|
|
261
|
-
"onStartup": true
|
|
262
|
-
},
|
|
263
|
-
"contracts": {
|
|
264
|
-
"tools": ["stock_quote"]
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
`contracts.tools` is the important discovery contract. It tells FengMing which
|
|
270
|
-
plugin owns each tool without loading every installed plugin runtime. If the
|
|
271
|
-
manifest is stale, the tool may be missing from discovery or the wrong plugin
|
|
272
|
-
may be blamed for a registration error.
|
|
273
|
-
|
|
274
|
-
## Package metadata
|
|
275
|
-
|
|
276
|
-
For the simple tool-plugin workflow, `fengming plugins build` aligns
|
|
277
|
-
`package.json` to the selected single runtime entry:
|
|
278
|
-
|
|
279
|
-
```json
|
|
280
|
-
{
|
|
281
|
-
"type": "module",
|
|
282
|
-
"files": ["dist", "fengming.plugin.json", "README.md"],
|
|
283
|
-
"dependencies": {
|
|
284
|
-
"typebox": "^1.1.38"
|
|
285
|
-
},
|
|
286
|
-
"peerDependencies": {
|
|
287
|
-
"fengming": ">=2026.5.17"
|
|
288
|
-
},
|
|
289
|
-
"fengming": {
|
|
290
|
-
"extensions": ["./dist/index.js"]
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
Use built JavaScript such as `./dist/index.js` for installed packages. Source
|
|
296
|
-
entries are useful in workspace development, but published packages should not
|
|
297
|
-
depend on TypeScript runtime loading.
|
|
298
|
-
|
|
299
|
-
## Validate in CI
|
|
300
|
-
|
|
301
|
-
Use `plugins build --check` to fail CI when generated metadata is stale without
|
|
302
|
-
rewriting files:
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
npm run build
|
|
306
|
-
fengming plugins build --entry ./dist/index.js --check
|
|
307
|
-
fengming plugins validate --entry ./dist/index.js
|
|
308
|
-
npm test
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
`plugins validate` checks that:
|
|
312
|
-
|
|
313
|
-
- `fengming.plugin.json` exists and passes the normal manifest loader.
|
|
314
|
-
- The current entry exports `defineToolPlugin` metadata.
|
|
315
|
-
- Generated manifest fields match the entry metadata.
|
|
316
|
-
- `contracts.tools` matches the declared tool names.
|
|
317
|
-
- `package.json` points `fengming.extensions` at the selected runtime entry.
|
|
318
|
-
|
|
319
|
-
## Install and inspect locally
|
|
320
|
-
|
|
321
|
-
From a separate FengMing checkout or installed CLI, install the package path:
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
fengming plugins install ./stock-quotes
|
|
325
|
-
fengming plugins inspect stock-quotes --runtime
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
For a packaged smoke, pack first and install the tarball:
|
|
329
|
-
|
|
330
|
-
```bash
|
|
331
|
-
npm pack
|
|
332
|
-
fengming plugins install npm-pack:./fengming-plugin-stock-quotes-0.1.0.tgz
|
|
333
|
-
fengming plugins inspect stock-quotes --runtime --json
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
After installation, start or restart the Gateway and ask the agent to use the
|
|
337
|
-
tool. If you are debugging tool visibility, inspect the plugin runtime and the
|
|
338
|
-
effective tool catalog before changing the code.
|
|
339
|
-
|
|
340
|
-
## Publish
|
|
341
|
-
|
|
342
|
-
Publish through ClawHub when the package is ready:
|
|
343
|
-
|
|
344
|
-
```bash
|
|
345
|
-
clawhub package publish your-org/stock-quotes --dry-run
|
|
346
|
-
clawhub package publish your-org/stock-quotes
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
Install with an explicit ClawHub locator:
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
fengming plugins install clawhub:your-org/stock-quotes
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
Bare npm package specs remain supported during the launch cutover, but ClawHub
|
|
356
|
-
is the preferred discovery and distribution surface for FengMing plugins.
|
|
357
|
-
|
|
358
|
-
## Troubleshooting
|
|
359
|
-
|
|
360
|
-
### `plugin entry not found: ./dist/index.js`
|
|
361
|
-
|
|
362
|
-
The selected entry file does not exist. Run `npm run build`, then rerun
|
|
363
|
-
`fengming plugins build --entry ./dist/index.js` or
|
|
364
|
-
`fengming plugins validate --entry ./dist/index.js`.
|
|
365
|
-
|
|
366
|
-
### `plugin entry does not expose defineToolPlugin metadata`
|
|
367
|
-
|
|
368
|
-
The entry did not export a value created by `defineToolPlugin`. Check that the
|
|
369
|
-
module default export is the `defineToolPlugin(...)` result, or pass the correct
|
|
370
|
-
entry with `--entry`.
|
|
371
|
-
|
|
372
|
-
### `fengming.plugin.json generated metadata is stale`
|
|
373
|
-
|
|
374
|
-
The manifest no longer matches the entry metadata. Run:
|
|
375
|
-
|
|
376
|
-
```bash
|
|
377
|
-
npm run build
|
|
378
|
-
fengming plugins build --entry ./dist/index.js
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
Commit both `fengming.plugin.json` and `package.json` changes.
|
|
382
|
-
|
|
383
|
-
### `package.json fengming.extensions must include ./dist/index.js`
|
|
384
|
-
|
|
385
|
-
The package metadata points at a different runtime entry. Run
|
|
386
|
-
`fengming plugins build --entry ./dist/index.js` so the generator aligns the
|
|
387
|
-
package metadata with the entry you intend to ship.
|
|
388
|
-
|
|
389
|
-
### `Cannot find package 'typebox'`
|
|
390
|
-
|
|
391
|
-
The built plugin imports `typebox` at runtime. Keep `typebox` in
|
|
392
|
-
`dependencies`, reinstall package dependencies, rebuild, and rerun validation.
|
|
393
|
-
|
|
394
|
-
### Tool does not appear after install
|
|
395
|
-
|
|
396
|
-
Check these in order:
|
|
397
|
-
|
|
398
|
-
1. `fengming plugins inspect <plugin-id> --runtime`
|
|
399
|
-
2. `fengming plugins validate --root <plugin-root> --entry ./dist/index.js`
|
|
400
|
-
3. `fengming.plugin.json` has `contracts.tools` with the expected tool names.
|
|
401
|
-
4. `package.json` has `fengming.extensions: ["./dist/index.js"]`.
|
|
402
|
-
5. The Gateway was restarted or reloaded after installing the plugin.
|
|
403
|
-
|
|
404
|
-
## See also
|
|
405
|
-
|
|
406
|
-
- [Building plugins](/plugins/building-plugins)
|
|
407
|
-
- [Plugin entry points](/plugins/sdk-entrypoints)
|
|
408
|
-
- [Plugin SDK subpaths](/plugins/sdk-subpaths)
|
|
409
|
-
- [Plugin manifest](/plugins/manifest)
|
|
410
|
-
- [Plugins CLI](/cli/plugins)
|
|
411
|
-
- [ClawHub publishing](/clawhub/publishing)
|