fengming 0.3.9 → 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/{bundled-channel-config-schema-DpdKMATU.d.ts → bundled-channel-config-schema-Bte--ZlY.d.ts} +26 -26
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli-startup-metadata.json +8 -8
- package/dist/control-ui/assets/{activity-B2W-IeAT.js → activity-wgT0-JR0.js} +2 -2
- package/dist/control-ui/assets/{agents-mRUyNVCz.js → agents-DG5PobrT.js} +2 -2
- package/dist/control-ui/assets/{channels-8QHOqBnt.js → channels-CX28oM42.js} +2 -2
- package/dist/control-ui/assets/{cron-H3unP_mO.js → cron-B8ixwBqU.js} +2 -2
- package/dist/control-ui/assets/{debug-CxLsQ9vH.js → debug-CnkYZUXy.js} +2 -2
- package/dist/control-ui/assets/{index-jtIYT0Eh.js → index-DQRZJKbO.js} +4 -4
- package/dist/control-ui/assets/{instances-B1JQeCRb.js → instances-BE3mV1JC.js} +2 -2
- package/dist/control-ui/assets/{nodes-RGOmq_1l.js → nodes-Cou4PWRX.js} +2 -2
- package/dist/control-ui/assets/{sessions-C2O-Jgpg.js → sessions-DpAaBT21.js} +2 -2
- package/dist/control-ui/assets/{skills-jyJOYA4I.js → skills-DjA_j_20.js} +2 -2
- package/dist/control-ui/assets/{workboard-uM_kK8cQ.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-DhOQs6M_.d.ts → index-DuDY3bCZ.d.ts} +45 -45
- 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 +4 -4
- 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/dist/{zod-schema.core-Cuz0lz6m.d.ts → zod-schema.core-BGLctDlK.d.ts} +1 -1
- package/package.json +7 -412
- package/CHANGELOG.md +0 -38
- 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
package/docs/providers/openai.md
DELETED
|
@@ -1,1093 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Use OpenAI via API keys or Codex subscription in FengMing"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to use OpenAI models in FengMing
|
|
5
|
-
- You want Codex subscription auth instead of API keys
|
|
6
|
-
- You need stricter GPT-5 agent execution behavior
|
|
7
|
-
title: "OpenAI"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
OpenAI provides developer APIs for GPT models, and Codex is also available as a
|
|
11
|
-
ChatGPT-plan coding agent through OpenAI's Codex clients. FengMing uses one
|
|
12
|
-
provider id, `openai`, for both auth shapes.
|
|
13
|
-
|
|
14
|
-
FengMing uses `openai/*` as the canonical OpenAI model route. Embedded agent
|
|
15
|
-
turns on OpenAI models run through the native Codex app-server runtime by
|
|
16
|
-
default; direct OpenAI API-key auth remains available for non-agent OpenAI
|
|
17
|
-
surfaces such as images, embeddings, speech, and realtime.
|
|
18
|
-
|
|
19
|
-
- **Agent models** - `openai/*` models through the Codex runtime; sign in with
|
|
20
|
-
Codex auth for ChatGPT/Codex subscription use, or configure a Codex-compatible
|
|
21
|
-
OpenAI API-key backup when you intentionally want API-key auth.
|
|
22
|
-
- **Non-agent OpenAI APIs** - direct OpenAI Platform access with usage-based
|
|
23
|
-
billing through `OPENAI_API_KEY` or OpenAI API-key onboarding.
|
|
24
|
-
- **Legacy config** - `openai-codex/*` model refs are repaired by
|
|
25
|
-
`fengming doctor --fix` to `openai/*` plus the Codex runtime.
|
|
26
|
-
|
|
27
|
-
OpenAI explicitly supports subscription OAuth usage in external tools and workflows like FengMing.
|
|
28
|
-
|
|
29
|
-
Provider, model, runtime, and channel are separate layers. If those labels are
|
|
30
|
-
getting mixed together, read [Agent runtimes](/concepts/agent-runtimes) before
|
|
31
|
-
changing config.
|
|
32
|
-
|
|
33
|
-
## Quick choice
|
|
34
|
-
|
|
35
|
-
| Goal | Use | Notes |
|
|
36
|
-
| ---------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
37
|
-
| ChatGPT/Codex subscription with native Codex runtime | `openai/gpt-5.5` | Default OpenAI agent setup. Sign in with Codex auth. |
|
|
38
|
-
| Direct API-key billing for agent models | `openai/gpt-5.5` plus a Codex-compatible API-key profile | Use `auth.order.openai` to place the backup after subscription auth. |
|
|
39
|
-
| Direct API-key billing through explicit FengMing | `openai/gpt-5.5` plus provider/model runtime `fengming` | Select a normal `openai` API-key profile. |
|
|
40
|
-
| Latest ChatGPT Instant API alias | `openai/chat-latest` | Direct API-key only. Moving alias for experiments, not the default. |
|
|
41
|
-
| ChatGPT/Codex subscription auth through FengMing | `openai/gpt-5.5` plus provider/model runtime `fengming` | Select an `openai` OAuth profile for the compatibility route. |
|
|
42
|
-
| Image generation or editing | `openai/gpt-image-2` | Works with either `OPENAI_API_KEY` or OpenAI Codex OAuth. |
|
|
43
|
-
| Transparent-background images | `openai/gpt-image-1.5` | Use `outputFormat=png` or `webp` and `openai.background=transparent`. |
|
|
44
|
-
|
|
45
|
-
## Naming map
|
|
46
|
-
|
|
47
|
-
The names are similar but not interchangeable:
|
|
48
|
-
|
|
49
|
-
| Name you see | Layer | Meaning |
|
|
50
|
-
| --------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------- |
|
|
51
|
-
| `openai` | Provider prefix | Canonical OpenAI model route; agent turns use the Codex runtime. |
|
|
52
|
-
| `openai-codex` | Legacy prefix | Older model/profile namespace. `fengming doctor --fix` migrates it to `openai`. |
|
|
53
|
-
| `codex` plugin | Plugin | Bundled FengMing plugin that provides native Codex app-server runtime and `/codex` chat controls. |
|
|
54
|
-
| provider/model `agentRuntime.id: codex` | Agent runtime | Force the native Codex app-server harness for matching embedded turns. |
|
|
55
|
-
| `/codex ...` | Chat command set | Bind/control Codex app-server threads from a conversation. |
|
|
56
|
-
| `runtime: "acp", agentId: "codex"` | ACP session route | Explicit fallback path that runs Codex through ACP/acpx. |
|
|
57
|
-
|
|
58
|
-
This means a config can intentionally contain `openai/*` model refs while auth
|
|
59
|
-
profiles point at either API-key or ChatGPT/Codex OAuth credentials. Use
|
|
60
|
-
`auth.order.openai` for config; `fengming doctor --fix` rewrites legacy
|
|
61
|
-
`openai-codex/*` model refs, `openai-codex:*` profile ids, and
|
|
62
|
-
`auth.order.openai-codex` to the canonical OpenAI route.
|
|
63
|
-
|
|
64
|
-
<Note>
|
|
65
|
-
GPT-5.5 is available through both direct OpenAI Platform API-key access and
|
|
66
|
-
subscription/OAuth routes. For ChatGPT/Codex subscription plus native Codex
|
|
67
|
-
execution, use `openai/gpt-5.5`; unset runtime config now selects the Codex
|
|
68
|
-
harness for OpenAI agent turns. Use OpenAI API-key profiles only when you want
|
|
69
|
-
direct API-key auth for an OpenAI agent model.
|
|
70
|
-
</Note>
|
|
71
|
-
|
|
72
|
-
<Note>
|
|
73
|
-
OpenAI agent model turns require the bundled Codex app-server plugin. Explicit
|
|
74
|
-
FengMing runtime config remains available as an opt-in compatibility route. When FengMing is
|
|
75
|
-
explicitly selected with an `openai` OAuth profile, FengMing keeps the
|
|
76
|
-
public model ref as `openai/*` and routes internally through the Codex-auth
|
|
77
|
-
transport. Run `fengming doctor --fix` to repair stale
|
|
78
|
-
`openai-codex/*`, `codex-cli/*`, or old runtime session pins that do not come from
|
|
79
|
-
explicit runtime config.
|
|
80
|
-
</Note>
|
|
81
|
-
|
|
82
|
-
## FengMing feature coverage
|
|
83
|
-
|
|
84
|
-
| OpenAI capability | FengMing surface | Status |
|
|
85
|
-
| ------------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
86
|
-
| Chat / Responses | `openai/<model>` model provider | Yes |
|
|
87
|
-
| Codex subscription models | `openai/<model>` with OpenAI OAuth | Yes |
|
|
88
|
-
| Legacy Codex model refs | `openai-codex/<model>` or `codex-cli/<model>` | Repaired by doctor to `openai/<model>` |
|
|
89
|
-
| Codex app-server harness | `openai/<model>` with omitted runtime or provider/model `agentRuntime.id: codex` | Yes |
|
|
90
|
-
| Server-side web search | Native OpenAI Responses tool | Yes, when web search is enabled and no provider pinned |
|
|
91
|
-
| Images | `image_generate` | Yes |
|
|
92
|
-
| Videos | `video_generate` | Yes |
|
|
93
|
-
| Text-to-speech | `messages.tts.provider: "openai"` / `tts` | Yes |
|
|
94
|
-
| Batch speech-to-text | `tools.media.audio` / media understanding | Yes |
|
|
95
|
-
| Streaming speech-to-text | Voice Call `streaming.provider: "openai"` | Yes |
|
|
96
|
-
| Realtime voice | Voice Call `realtime.provider: "openai"` / Control UI Talk `talk.realtime.provider: "openai"` | Yes (requires OpenAI Platform credits, not Codex/ChatGPT subscription) |
|
|
97
|
-
| Embeddings | memory embedding provider | Yes |
|
|
98
|
-
|
|
99
|
-
<Note>
|
|
100
|
-
OpenAI Realtime voice (used by Voice Call's `realtime.provider: "openai"` and
|
|
101
|
-
Control UI Talk with `talk.realtime.provider: "openai"`) goes through the
|
|
102
|
-
public **OpenAI Platform Realtime API**, which is billed against OpenAI
|
|
103
|
-
Platform credits rather than Codex/ChatGPT subscription quota. An account
|
|
104
|
-
with healthy OpenAI OAuth that runs Codex-backed chat models without
|
|
105
|
-
issue can still hit `insufficient_quota` / "You exceeded your current
|
|
106
|
-
quota" on the first Realtime turn if the same OpenAI organization has no
|
|
107
|
-
Platform billing set up.
|
|
108
|
-
|
|
109
|
-
Fix: top up Platform credits at
|
|
110
|
-
[platform.openai.com/account/billing](https://platform.openai.com/account/billing)
|
|
111
|
-
for the organization backing your realtime credentials. Realtime accepts
|
|
112
|
-
either a Platform `OPENAI_API_KEY` (configured via `talk.realtime.providers.openai.apiKey`
|
|
113
|
-
for Control UI Talk, or `plugins.entries.voice-call.config.realtime.providers.openai.apiKey`
|
|
114
|
-
for Voice Call) or an `openai` OAuth profile whose underlying
|
|
115
|
-
organization has Platform billing — both routes mint Realtime client secrets
|
|
116
|
-
through the Platform API, so either way the org needs funded Platform
|
|
117
|
-
credits. For chat turns you can still use Codex-backed `openai/*` models against the same
|
|
118
|
-
FengMing install; Realtime is the one route that needs Platform billing.
|
|
119
|
-
</Note>
|
|
120
|
-
|
|
121
|
-
## Memory embeddings
|
|
122
|
-
|
|
123
|
-
FengMing can use OpenAI, or an OpenAI-compatible embedding endpoint, for
|
|
124
|
-
`memory_search` indexing and query embeddings:
|
|
125
|
-
|
|
126
|
-
```json5
|
|
127
|
-
{
|
|
128
|
-
agents: {
|
|
129
|
-
defaults: {
|
|
130
|
-
memorySearch: {
|
|
131
|
-
provider: "openai",
|
|
132
|
-
model: "text-embedding-3-small",
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
}
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
For OpenAI-compatible endpoints that require asymmetric embedding labels, set
|
|
140
|
-
`queryInputType` and `documentInputType` under `memorySearch`. FengMing forwards
|
|
141
|
-
those as provider-specific `input_type` request fields: query embeddings use
|
|
142
|
-
`queryInputType`; indexed memory chunks and batch indexing use
|
|
143
|
-
`documentInputType`. See the [Memory configuration reference](/reference/memory-config#provider-specific-config) for the full example.
|
|
144
|
-
|
|
145
|
-
## Getting started
|
|
146
|
-
|
|
147
|
-
Choose your preferred auth method and follow the setup steps.
|
|
148
|
-
|
|
149
|
-
<Tabs>
|
|
150
|
-
<Tab title="API key (OpenAI Platform)">
|
|
151
|
-
**Best for:** direct API access and usage-based billing.
|
|
152
|
-
|
|
153
|
-
<Steps>
|
|
154
|
-
<Step title="Get your API key">
|
|
155
|
-
Create or copy an API key from the [OpenAI Platform dashboard](https://platform.openai.com/api-keys).
|
|
156
|
-
</Step>
|
|
157
|
-
<Step title="Run onboarding">
|
|
158
|
-
```bash
|
|
159
|
-
fengming onboard --auth-choice openai-api-key
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Or pass the key directly:
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
fengming onboard --openai-api-key "$OPENAI_API_KEY"
|
|
166
|
-
```
|
|
167
|
-
</Step>
|
|
168
|
-
<Step title="Verify the model is available">
|
|
169
|
-
```bash
|
|
170
|
-
fengming models list --provider openai
|
|
171
|
-
```
|
|
172
|
-
</Step>
|
|
173
|
-
</Steps>
|
|
174
|
-
|
|
175
|
-
### Route summary
|
|
176
|
-
|
|
177
|
-
| Model ref | Runtime config | Route | Auth |
|
|
178
|
-
| ---------------------- | -------------------------- | --------------------------- | ---------------- |
|
|
179
|
-
| `openai/gpt-5.5` | omitted / provider/model `agentRuntime.id: "codex"` | Codex app-server harness | Codex-compatible OpenAI profile |
|
|
180
|
-
| `openai/gpt-5.4-mini` | omitted / provider/model `agentRuntime.id: "codex"` | Codex app-server harness | Codex-compatible OpenAI profile |
|
|
181
|
-
| `openai/gpt-5.5` | provider/model `agentRuntime.id: "fengming"` | FengMing embedded runtime | Selected `openai` profile |
|
|
182
|
-
|
|
183
|
-
<Note>
|
|
184
|
-
`openai/*` agent models use the Codex app-server harness. To use API-key
|
|
185
|
-
auth for an agent model, create a Codex-compatible API-key profile and order
|
|
186
|
-
it with `auth.order.openai`; `OPENAI_API_KEY` remains the direct fallback for
|
|
187
|
-
non-agent OpenAI API surfaces. Run `fengming doctor --fix` to migrate older
|
|
188
|
-
`auth.order.openai-codex` entries.
|
|
189
|
-
</Note>
|
|
190
|
-
|
|
191
|
-
### Config example
|
|
192
|
-
|
|
193
|
-
```json5
|
|
194
|
-
{
|
|
195
|
-
env: { OPENAI_API_KEY: "example-openai-key-not-real" },
|
|
196
|
-
agents: { defaults: { model: { primary: "openai/gpt-5.5" } } },
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
To try ChatGPT's current Instant model from the OpenAI API, set the model
|
|
201
|
-
to `openai/chat-latest`:
|
|
202
|
-
|
|
203
|
-
```json5
|
|
204
|
-
{
|
|
205
|
-
env: { OPENAI_API_KEY: "example-openai-key-not-real" },
|
|
206
|
-
agents: { defaults: { model: { primary: "openai/chat-latest" } } },
|
|
207
|
-
}
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
`chat-latest` is a moving alias. OpenAI documents it as the latest Instant
|
|
211
|
-
model used in ChatGPT and recommends `gpt-5.5` for production API usage, so
|
|
212
|
-
keep `openai/gpt-5.5` as the stable default unless you explicitly want that
|
|
213
|
-
alias behavior. The alias currently accepts only `medium` text verbosity, so
|
|
214
|
-
FengMing normalizes incompatible OpenAI text-verbosity overrides for this
|
|
215
|
-
model.
|
|
216
|
-
|
|
217
|
-
<Warning>
|
|
218
|
-
FengMing does **not** expose `gpt-5.3-codex-spark` on the direct OpenAI API-key route. It is available only through Codex subscription catalog entries when your signed-in account exposes it.
|
|
219
|
-
</Warning>
|
|
220
|
-
|
|
221
|
-
</Tab>
|
|
222
|
-
|
|
223
|
-
<Tab title="Codex subscription">
|
|
224
|
-
**Best for:** using your ChatGPT/Codex subscription with native Codex app-server execution instead of a separate API key. Codex cloud requires ChatGPT sign-in.
|
|
225
|
-
|
|
226
|
-
<Steps>
|
|
227
|
-
<Step title="Run Codex OAuth">
|
|
228
|
-
```bash
|
|
229
|
-
fengming onboard --auth-choice openai
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
Or run OAuth directly:
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
fengming models auth login --provider openai
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
For headless or callback-hostile setups, add `--device-code` to sign in with a ChatGPT device-code flow instead of the localhost browser callback:
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
fengming models auth login --provider openai --device-code
|
|
242
|
-
```
|
|
243
|
-
</Step>
|
|
244
|
-
<Step title="Use the canonical OpenAI model route">
|
|
245
|
-
```bash
|
|
246
|
-
fengming config set agents.defaults.model.primary openai/gpt-5.5
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
No runtime config is required for the default path. OpenAI agent turns
|
|
250
|
-
select the native Codex app-server runtime automatically, and FengMing
|
|
251
|
-
installs or repairs the bundled Codex plugin when this route is chosen.
|
|
252
|
-
</Step>
|
|
253
|
-
<Step title="Verify Codex auth is available">
|
|
254
|
-
```bash
|
|
255
|
-
fengming models list --provider openai
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
After the gateway is running, send `/codex status` or `/codex models`
|
|
259
|
-
in chat to verify the native app-server runtime.
|
|
260
|
-
</Step>
|
|
261
|
-
</Steps>
|
|
262
|
-
|
|
263
|
-
### Route summary
|
|
264
|
-
|
|
265
|
-
| Model ref | Runtime config | Route | Auth |
|
|
266
|
-
|-----------|----------------|-------|------|
|
|
267
|
-
| `openai/gpt-5.5` | omitted / provider/model `agentRuntime.id: "codex"` | Native Codex app-server harness | Codex sign-in or ordered `openai` auth profile |
|
|
268
|
-
| `openai/gpt-5.5` | provider/model `agentRuntime.id: "fengming"` | FengMing embedded runtime with internal Codex-auth transport | Selected `openai` OAuth profile |
|
|
269
|
-
| `openai-codex/gpt-5.5` | repaired by doctor | Legacy route rewritten to `openai/gpt-5.5` | Migrated OpenAI OAuth profile |
|
|
270
|
-
| `codex-cli/gpt-5.5` | repaired by doctor | Legacy CLI route rewritten to `openai/gpt-5.5` | Codex app-server auth |
|
|
271
|
-
|
|
272
|
-
<Warning>
|
|
273
|
-
Prefer `openai/gpt-5.5` for new subscription-backed agent config. Older
|
|
274
|
-
`openai-codex/gpt-*` refs are legacy FengMing routes, not the native Codex runtime
|
|
275
|
-
path; run `fengming doctor --fix` when you want to migrate them to canonical
|
|
276
|
-
`openai/*` refs. `gpt-5.3-codex-spark` remains limited to accounts whose
|
|
277
|
-
Codex subscription catalog advertises that model; direct OpenAI API-key and
|
|
278
|
-
Azure refs for it remain suppressed.
|
|
279
|
-
</Warning>
|
|
280
|
-
|
|
281
|
-
<Note>
|
|
282
|
-
The `openai-codex/*` model prefix is legacy config repaired by doctor. For
|
|
283
|
-
the common subscription plus native runtime setup, sign in with Codex auth
|
|
284
|
-
but keep the model ref as `openai/gpt-5.5`. New config should put OpenAI
|
|
285
|
-
agent auth order under `auth.order.openai`; doctor migrates older
|
|
286
|
-
`auth.order.openai-codex` entries.
|
|
287
|
-
</Note>
|
|
288
|
-
|
|
289
|
-
### Config example
|
|
290
|
-
|
|
291
|
-
```json5
|
|
292
|
-
{
|
|
293
|
-
plugins: { entries: { codex: { enabled: true } } },
|
|
294
|
-
agents: {
|
|
295
|
-
defaults: {
|
|
296
|
-
model: { primary: "openai/gpt-5.5" },
|
|
297
|
-
},
|
|
298
|
-
},
|
|
299
|
-
}
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
With an API-key backup, keep the model on `openai/gpt-5.5` and put the
|
|
303
|
-
auth order under `openai`. FengMing will try the subscription first, then
|
|
304
|
-
the API key, while staying on the Codex harness:
|
|
305
|
-
|
|
306
|
-
```json5
|
|
307
|
-
{
|
|
308
|
-
plugins: { entries: { codex: { enabled: true } } },
|
|
309
|
-
agents: {
|
|
310
|
-
defaults: {
|
|
311
|
-
model: { primary: "openai/gpt-5.5" },
|
|
312
|
-
},
|
|
313
|
-
},
|
|
314
|
-
auth: {
|
|
315
|
-
order: {
|
|
316
|
-
openai: [
|
|
317
|
-
"openai:user@example.com",
|
|
318
|
-
"openai:api-key-backup",
|
|
319
|
-
],
|
|
320
|
-
},
|
|
321
|
-
},
|
|
322
|
-
}
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
<Note>
|
|
326
|
-
Onboarding no longer imports OAuth material from `~/.codex`. Sign in with browser OAuth (default) or the device-code flow above — FengMing manages the resulting credentials in its own agent auth store.
|
|
327
|
-
</Note>
|
|
328
|
-
|
|
329
|
-
### Check and recover Codex OAuth routing
|
|
330
|
-
|
|
331
|
-
Use these commands to see which model, runtime, and auth route your default
|
|
332
|
-
agent is using:
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
|
-
fengming models status
|
|
336
|
-
fengming models auth list --provider openai
|
|
337
|
-
fengming config get agents.defaults.model --json
|
|
338
|
-
fengming config get models.providers.openai.agentRuntime --json
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
For a specific agent, add `--agent <id>`:
|
|
342
|
-
|
|
343
|
-
```bash
|
|
344
|
-
fengming models status --agent <id>
|
|
345
|
-
fengming models auth list --agent <id> --provider openai
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
If an older config still has `openai-codex/gpt-*` or a stale OpenAI runtime
|
|
349
|
-
session pin without explicit runtime config, repair it:
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
fengming doctor --fix
|
|
353
|
-
fengming config validate
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
If `models auth list --provider openai` shows no usable profile, sign
|
|
357
|
-
in again:
|
|
358
|
-
|
|
359
|
-
```bash
|
|
360
|
-
fengming models auth login --provider openai
|
|
361
|
-
fengming models status --probe --probe-provider openai
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
Use `--profile-id` when you want multiple Codex OAuth logins in the same
|
|
365
|
-
agent and later want to control them via auth ordering or `/model ...@<profileId>`:
|
|
366
|
-
|
|
367
|
-
```bash
|
|
368
|
-
fengming models auth login --provider openai --profile-id openai:ritsuko
|
|
369
|
-
fengming models auth login --provider openai --profile-id openai:lain
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
`openai/*` is the model route for OpenAI agent turns through Codex. Run
|
|
373
|
-
`fengming doctor --fix` to migrate older `openai-codex` profile ids and
|
|
374
|
-
order entries before relying on profile ordering.
|
|
375
|
-
|
|
376
|
-
### Status indicator
|
|
377
|
-
|
|
378
|
-
Chat `/status` shows which model runtime is active for the current session.
|
|
379
|
-
The bundled Codex app-server harness appears as `Runtime: OpenAI Codex` for
|
|
380
|
-
OpenAI agent model turns. Stale OpenAI runtime session pins are repaired to Codex unless
|
|
381
|
-
config explicitly pins FengMing.
|
|
382
|
-
|
|
383
|
-
### Doctor warning
|
|
384
|
-
|
|
385
|
-
If `openai-codex/*` routes or stale OpenAI runtime pins remain in config or
|
|
386
|
-
session state, `fengming doctor --fix` rewrites them to `openai/*` with the
|
|
387
|
-
Codex runtime unless FengMing is explicitly configured.
|
|
388
|
-
|
|
389
|
-
### Context window cap
|
|
390
|
-
|
|
391
|
-
FengMing treats model metadata and the runtime context cap as separate values.
|
|
392
|
-
|
|
393
|
-
For `openai/gpt-5.5` through the Codex OAuth catalog:
|
|
394
|
-
|
|
395
|
-
- Native `contextWindow`: `1000000`
|
|
396
|
-
- Default runtime `contextTokens` cap: `272000`
|
|
397
|
-
|
|
398
|
-
The smaller default cap has better latency and quality characteristics in practice. Override it with `contextTokens`:
|
|
399
|
-
|
|
400
|
-
```json5
|
|
401
|
-
{
|
|
402
|
-
models: {
|
|
403
|
-
providers: {
|
|
404
|
-
openai: {
|
|
405
|
-
models: [{ id: "gpt-5.5", contextTokens: 160000 }],
|
|
406
|
-
},
|
|
407
|
-
},
|
|
408
|
-
},
|
|
409
|
-
}
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
<Note>
|
|
413
|
-
Use `contextWindow` to declare native model metadata. Use `contextTokens` to limit the runtime context budget.
|
|
414
|
-
</Note>
|
|
415
|
-
|
|
416
|
-
### Catalog recovery
|
|
417
|
-
|
|
418
|
-
FengMing uses upstream Codex catalog metadata for `gpt-5.5` when it is
|
|
419
|
-
present. If live Codex discovery omits the `gpt-5.5` row while
|
|
420
|
-
the account is authenticated, FengMing synthesizes that OAuth model row so
|
|
421
|
-
cron, sub-agent, and configured default-model runs do not fail with
|
|
422
|
-
`Unknown model`.
|
|
423
|
-
|
|
424
|
-
</Tab>
|
|
425
|
-
</Tabs>
|
|
426
|
-
|
|
427
|
-
## Native Codex app-server auth
|
|
428
|
-
|
|
429
|
-
The native Codex app-server harness uses `openai/*` model refs plus omitted
|
|
430
|
-
runtime config or provider/model `agentRuntime.id: "codex"`, but its auth is
|
|
431
|
-
still account-based. FengMing selects auth in this order:
|
|
432
|
-
|
|
433
|
-
1. Ordered OpenAI auth profiles for the agent, preferably under
|
|
434
|
-
`auth.order.openai`. Run `fengming doctor --fix` to migrate older
|
|
435
|
-
`openai-codex:*` profiles and `auth.order.openai-codex`.
|
|
436
|
-
2. The app-server's existing account, such as a local Codex CLI ChatGPT sign-in.
|
|
437
|
-
3. For local stdio app-server launches only, `CODEX_API_KEY`, then
|
|
438
|
-
`OPENAI_API_KEY`, when the app-server reports no account and still requires
|
|
439
|
-
OpenAI auth.
|
|
440
|
-
|
|
441
|
-
That means a local ChatGPT/Codex subscription sign-in is not replaced just
|
|
442
|
-
because the gateway process also has `OPENAI_API_KEY` for direct OpenAI models
|
|
443
|
-
or embeddings. Env API-key fallback is only the local stdio no-account path; it
|
|
444
|
-
is not sent to WebSocket app-server connections. When a subscription-style Codex
|
|
445
|
-
profile is selected, FengMing also keeps `CODEX_API_KEY` and `OPENAI_API_KEY`
|
|
446
|
-
out of the spawned stdio app-server child and sends the selected credentials
|
|
447
|
-
through the app-server login RPC. When that subscription profile is blocked by a
|
|
448
|
-
Codex usage limit, FengMing can rotate to the next ordered `openai:*` API-key
|
|
449
|
-
profile without changing the selected model or dropping out of the Codex
|
|
450
|
-
harness. Once the subscription reset time passes, the subscription profile is
|
|
451
|
-
eligible again.
|
|
452
|
-
|
|
453
|
-
## Image generation
|
|
454
|
-
|
|
455
|
-
The bundled `openai` plugin registers image generation through the `image_generate` tool.
|
|
456
|
-
It supports both OpenAI API-key image generation and Codex OAuth image
|
|
457
|
-
generation through the same `openai/gpt-image-2` model ref.
|
|
458
|
-
|
|
459
|
-
| Capability | OpenAI API key | Codex OAuth |
|
|
460
|
-
| ------------------------- | ---------------------------------- | ------------------------------------ |
|
|
461
|
-
| Model ref | `openai/gpt-image-2` | `openai/gpt-image-2` |
|
|
462
|
-
| Auth | `OPENAI_API_KEY` | OpenAI Codex OAuth sign-in |
|
|
463
|
-
| Transport | OpenAI Images API | Codex Responses backend |
|
|
464
|
-
| Max images per request | 4 | 4 |
|
|
465
|
-
| Edit mode | Enabled (up to 5 reference images) | Enabled (up to 5 reference images) |
|
|
466
|
-
| Size overrides | Supported, including 2K/4K sizes | Supported, including 2K/4K sizes |
|
|
467
|
-
| Aspect ratio / resolution | Not forwarded to OpenAI Images API | Mapped to a supported size when safe |
|
|
468
|
-
|
|
469
|
-
```json5
|
|
470
|
-
{
|
|
471
|
-
agents: {
|
|
472
|
-
defaults: {
|
|
473
|
-
imageGenerationModel: { primary: "openai/gpt-image-2" },
|
|
474
|
-
},
|
|
475
|
-
},
|
|
476
|
-
}
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
<Note>
|
|
480
|
-
See [Image Generation](/tools/image-generation) for shared tool parameters, provider selection, and failover behavior.
|
|
481
|
-
</Note>
|
|
482
|
-
|
|
483
|
-
`gpt-image-2` is the default for both OpenAI text-to-image generation and image
|
|
484
|
-
editing. `gpt-image-1.5`, `gpt-image-1`, and `gpt-image-1-mini` remain usable as
|
|
485
|
-
explicit model overrides. Use `openai/gpt-image-1.5` for transparent-background
|
|
486
|
-
PNG/WebP output; the current `gpt-image-2` API rejects
|
|
487
|
-
`background: "transparent"`.
|
|
488
|
-
|
|
489
|
-
For a transparent-background request, agents should call `image_generate` with
|
|
490
|
-
`model: "openai/gpt-image-1.5"`, `outputFormat: "png"` or `"webp"`, and
|
|
491
|
-
`background: "transparent"`; the older `openai.background` provider option is
|
|
492
|
-
still accepted. FengMing also protects the public OpenAI and
|
|
493
|
-
OpenAI Codex OAuth routes by rewriting default `openai/gpt-image-2` transparent
|
|
494
|
-
requests to `gpt-image-1.5`; Azure and custom OpenAI-compatible endpoints keep
|
|
495
|
-
their configured deployment/model names.
|
|
496
|
-
|
|
497
|
-
The same setting is exposed for headless CLI runs:
|
|
498
|
-
|
|
499
|
-
```bash
|
|
500
|
-
fengming infer image generate \
|
|
501
|
-
--model openai/gpt-image-1.5 \
|
|
502
|
-
--output-format png \
|
|
503
|
-
--background transparent \
|
|
504
|
-
--prompt "A simple red circle sticker on a transparent background" \
|
|
505
|
-
--json
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
Use the same `--output-format` and `--background` flags with
|
|
509
|
-
`fengming infer image edit` when starting from an input file.
|
|
510
|
-
`--openai-background` remains available as an OpenAI-specific alias.
|
|
511
|
-
|
|
512
|
-
For ChatGPT/Codex OAuth installs, keep the same `openai/gpt-image-2` ref. When an
|
|
513
|
-
`openai` OAuth profile is configured, FengMing resolves that stored OAuth
|
|
514
|
-
access token and sends image requests through the Codex Responses backend. It
|
|
515
|
-
does not first try `OPENAI_API_KEY` or silently fall back to an API key for that
|
|
516
|
-
request. Configure `models.providers.openai` explicitly with an API key,
|
|
517
|
-
custom base URL, or Azure endpoint when you want the direct OpenAI Images API
|
|
518
|
-
route instead.
|
|
519
|
-
If that custom image endpoint is on a trusted LAN/private address, also set
|
|
520
|
-
`browser.ssrfPolicy.dangerouslyAllowPrivateNetwork: true`; FengMing keeps
|
|
521
|
-
private/internal OpenAI-compatible image endpoints blocked unless this opt-in is
|
|
522
|
-
present.
|
|
523
|
-
|
|
524
|
-
Generate:
|
|
525
|
-
|
|
526
|
-
```
|
|
527
|
-
/tool image_generate model=openai/gpt-image-2 prompt="A polished launch poster for FengMing on macOS" size=3840x2160 count=1
|
|
528
|
-
```
|
|
529
|
-
|
|
530
|
-
Generate a transparent PNG:
|
|
531
|
-
|
|
532
|
-
```
|
|
533
|
-
/tool image_generate model=openai/gpt-image-1.5 prompt="A simple red circle sticker on a transparent background" outputFormat=png background=transparent
|
|
534
|
-
```
|
|
535
|
-
|
|
536
|
-
Edit:
|
|
537
|
-
|
|
538
|
-
```
|
|
539
|
-
/tool image_generate model=openai/gpt-image-2 prompt="Preserve the object shape, change the material to translucent glass" image=/path/to/reference.png size=1024x1536
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
## Video generation
|
|
543
|
-
|
|
544
|
-
The bundled `openai` plugin registers video generation through the `video_generate` tool.
|
|
545
|
-
|
|
546
|
-
| Capability | Value |
|
|
547
|
-
| ---------------- | --------------------------------------------------------------------------------- |
|
|
548
|
-
| Default model | `openai/sora-2` |
|
|
549
|
-
| Modes | Text-to-video, image-to-video, single-video edit |
|
|
550
|
-
| Reference inputs | 1 image or 1 video |
|
|
551
|
-
| Size overrides | Supported for text-to-video and image-to-video |
|
|
552
|
-
| Other overrides | `aspectRatio`, `resolution`, `audio`, `watermark` are ignored with a tool warning |
|
|
553
|
-
|
|
554
|
-
OpenAI image-to-video requests use `POST /v1/videos` with an image
|
|
555
|
-
`input_reference`. Single-video edits use `POST /v1/videos/edits` with the
|
|
556
|
-
uploaded video in the `video` field.
|
|
557
|
-
|
|
558
|
-
```json5
|
|
559
|
-
{
|
|
560
|
-
agents: {
|
|
561
|
-
defaults: {
|
|
562
|
-
videoGenerationModel: { primary: "openai/sora-2" },
|
|
563
|
-
},
|
|
564
|
-
},
|
|
565
|
-
}
|
|
566
|
-
```
|
|
567
|
-
|
|
568
|
-
<Note>
|
|
569
|
-
See [Video Generation](/tools/video-generation) for shared tool parameters, provider selection, and failover behavior.
|
|
570
|
-
</Note>
|
|
571
|
-
|
|
572
|
-
## GPT-5 prompt contribution
|
|
573
|
-
|
|
574
|
-
FengMing adds a shared GPT-5 prompt contribution for GPT-5-family runs on FengMing-assembled prompt surfaces. It applies by model id, so FengMing/provider routes such as legacy pre-repair refs (`openai-codex/gpt-5.5`), `openrouter/openai/gpt-5.5`, `opencode/gpt-5.5`, and other compatible GPT-5 refs receive the same overlay. Older GPT-4.x models do not.
|
|
575
|
-
|
|
576
|
-
The bundled native Codex harness does not receive this FengMing GPT-5 overlay through Codex app-server developer instructions. Native Codex keeps Codex-owned base, model, and project-doc behavior, while FengMing disables Codex's built-in personality for native threads so agent workspace personality files stay authoritative. FengMing contributes only runtime context such as channel delivery, FengMing dynamic tools, ACP delegation, workspace context, and FengMing skills.
|
|
577
|
-
|
|
578
|
-
The GPT-5 contribution adds a tagged behavior contract for persona persistence, execution safety, tool discipline, output shape, completion checks, and verification on matching FengMing-assembled prompts. Channel-specific reply and silent-message behavior stays in the shared FengMing system prompt and outbound delivery policy. The friendly interaction-style layer is separate and configurable.
|
|
579
|
-
|
|
580
|
-
| Value | Effect |
|
|
581
|
-
| ---------------------- | ------------------------------------------- |
|
|
582
|
-
| `"friendly"` (default) | Enable the friendly interaction-style layer |
|
|
583
|
-
| `"on"` | Alias for `"friendly"` |
|
|
584
|
-
| `"off"` | Disable only the friendly style layer |
|
|
585
|
-
|
|
586
|
-
<Tabs>
|
|
587
|
-
<Tab title="Config">
|
|
588
|
-
```json5
|
|
589
|
-
{
|
|
590
|
-
agents: {
|
|
591
|
-
defaults: {
|
|
592
|
-
promptOverlays: {
|
|
593
|
-
gpt5: { personality: "friendly" },
|
|
594
|
-
},
|
|
595
|
-
},
|
|
596
|
-
},
|
|
597
|
-
}
|
|
598
|
-
```
|
|
599
|
-
</Tab>
|
|
600
|
-
<Tab title="CLI">
|
|
601
|
-
```bash
|
|
602
|
-
fengming config set agents.defaults.promptOverlays.gpt5.personality off
|
|
603
|
-
```
|
|
604
|
-
</Tab>
|
|
605
|
-
</Tabs>
|
|
606
|
-
|
|
607
|
-
<Tip>
|
|
608
|
-
Values are case-insensitive at runtime, so `"Off"` and `"off"` both disable the friendly style layer.
|
|
609
|
-
</Tip>
|
|
610
|
-
|
|
611
|
-
<Note>
|
|
612
|
-
Legacy `plugins.entries.openai.config.personality` is still read as a compatibility fallback when the shared `agents.defaults.promptOverlays.gpt5.personality` setting is not set.
|
|
613
|
-
</Note>
|
|
614
|
-
|
|
615
|
-
## Voice and speech
|
|
616
|
-
|
|
617
|
-
<AccordionGroup>
|
|
618
|
-
<Accordion title="Speech synthesis (TTS)">
|
|
619
|
-
The bundled `openai` plugin registers speech synthesis for the `messages.tts` surface.
|
|
620
|
-
|
|
621
|
-
| Setting | Config path | Default |
|
|
622
|
-
|---------|------------|---------|
|
|
623
|
-
| Model | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` |
|
|
624
|
-
| Voice | `messages.tts.providers.openai.speakerVoice` | `coral` |
|
|
625
|
-
| Speed | `messages.tts.providers.openai.speed` | (unset) |
|
|
626
|
-
| Instructions | `messages.tts.providers.openai.instructions` | (unset, `gpt-4o-mini-tts` only) |
|
|
627
|
-
| Format | `messages.tts.providers.openai.responseFormat` | `opus` for voice notes, `mp3` for files |
|
|
628
|
-
| API key | `messages.tts.providers.openai.apiKey` | Falls back to `OPENAI_API_KEY` |
|
|
629
|
-
| Base URL | `messages.tts.providers.openai.baseUrl` | `https://api.openai.com/v1` |
|
|
630
|
-
| Extra body | `messages.tts.providers.openai.extraBody` / `extra_body` | (unset) |
|
|
631
|
-
|
|
632
|
-
Available models: `gpt-4o-mini-tts`, `tts-1`, `tts-1-hd`. Available voices: `alloy`, `ash`, `ballad`, `cedar`, `coral`, `echo`, `fable`, `juniper`, `marin`, `onyx`, `nova`, `sage`, `shimmer`, `verse`.
|
|
633
|
-
|
|
634
|
-
`extraBody` is merged into `/audio/speech` request JSON after FengMing's generated fields, so use it for OpenAI-compatible endpoints that require additional keys such as `lang`. Prototype keys are ignored.
|
|
635
|
-
|
|
636
|
-
```json5
|
|
637
|
-
{
|
|
638
|
-
messages: {
|
|
639
|
-
tts: {
|
|
640
|
-
providers: {
|
|
641
|
-
openai: { model: "gpt-4o-mini-tts", speakerVoice: "coral" },
|
|
642
|
-
},
|
|
643
|
-
},
|
|
644
|
-
},
|
|
645
|
-
}
|
|
646
|
-
```
|
|
647
|
-
|
|
648
|
-
<Note>
|
|
649
|
-
Set `OPENAI_TTS_BASE_URL` to override the TTS base URL without affecting the chat API endpoint. OpenAI TTS is still configured through an API key; for OAuth-only live talk-back, use the Realtime voice path instead of agent-mode STT -> TTS speech.
|
|
650
|
-
</Note>
|
|
651
|
-
|
|
652
|
-
</Accordion>
|
|
653
|
-
|
|
654
|
-
<Accordion title="Speech-to-text">
|
|
655
|
-
The bundled `openai` plugin registers batch speech-to-text through
|
|
656
|
-
FengMing's media-understanding transcription surface.
|
|
657
|
-
|
|
658
|
-
- Default model: `gpt-4o-transcribe`
|
|
659
|
-
- Endpoint: OpenAI REST `/v1/audio/transcriptions`
|
|
660
|
-
- Input path: multipart audio file upload
|
|
661
|
-
- Supported by FengMing wherever inbound audio transcription uses
|
|
662
|
-
`tools.media.audio`, including Discord voice-channel segments and channel
|
|
663
|
-
audio attachments
|
|
664
|
-
|
|
665
|
-
To force OpenAI for inbound audio transcription:
|
|
666
|
-
|
|
667
|
-
```json5
|
|
668
|
-
{
|
|
669
|
-
tools: {
|
|
670
|
-
media: {
|
|
671
|
-
audio: {
|
|
672
|
-
models: [
|
|
673
|
-
{
|
|
674
|
-
type: "provider",
|
|
675
|
-
provider: "openai",
|
|
676
|
-
model: "gpt-4o-transcribe",
|
|
677
|
-
},
|
|
678
|
-
],
|
|
679
|
-
},
|
|
680
|
-
},
|
|
681
|
-
},
|
|
682
|
-
}
|
|
683
|
-
```
|
|
684
|
-
|
|
685
|
-
Language and prompt hints are forwarded to OpenAI when supplied by the
|
|
686
|
-
shared audio media config or per-call transcription request.
|
|
687
|
-
|
|
688
|
-
</Accordion>
|
|
689
|
-
|
|
690
|
-
<Accordion title="Realtime transcription">
|
|
691
|
-
The bundled `openai` plugin registers realtime transcription for the Voice Call plugin.
|
|
692
|
-
|
|
693
|
-
| Setting | Config path | Default |
|
|
694
|
-
|---------|------------|---------|
|
|
695
|
-
| Model | `plugins.entries.voice-call.config.streaming.providers.openai.model` | `gpt-4o-transcribe` |
|
|
696
|
-
| Language | `...openai.language` | (unset) |
|
|
697
|
-
| Prompt | `...openai.prompt` | (unset) |
|
|
698
|
-
| Silence duration | `...openai.silenceDurationMs` | `800` |
|
|
699
|
-
| VAD threshold | `...openai.vadThreshold` | `0.5` |
|
|
700
|
-
| Auth | `...openai.apiKey`, `OPENAI_API_KEY`, or `openai` OAuth | API keys connect directly; OAuth mints a Realtime transcription client secret |
|
|
701
|
-
|
|
702
|
-
<Note>
|
|
703
|
-
Uses a WebSocket connection to `wss://api.openai.com/v1/realtime` with G.711 u-law (`g711_ulaw` / `audio/pcmu`) audio. When only `openai` OAuth is configured, the Gateway mints an ephemeral Realtime transcription client secret before opening the WebSocket. This streaming provider is for Voice Call's realtime transcription path; Discord voice currently records short segments and uses the batch `tools.media.audio` transcription path instead.
|
|
704
|
-
</Note>
|
|
705
|
-
|
|
706
|
-
</Accordion>
|
|
707
|
-
|
|
708
|
-
<Accordion title="Realtime voice">
|
|
709
|
-
The bundled `openai` plugin registers realtime voice for the Voice Call plugin.
|
|
710
|
-
|
|
711
|
-
| Setting | Config path | Default |
|
|
712
|
-
|---------|------------|---------|
|
|
713
|
-
| Model | `plugins.entries.voice-call.config.realtime.providers.openai.model` | `gpt-realtime-2` |
|
|
714
|
-
| Voice | `...openai.voice` | `alloy` |
|
|
715
|
-
| Temperature (Azure deployment bridge) | `...openai.temperature` | `0.8` |
|
|
716
|
-
| VAD threshold | `...openai.vadThreshold` | `0.5` |
|
|
717
|
-
| Silence duration | `...openai.silenceDurationMs` | `500` |
|
|
718
|
-
| Prefix padding | `...openai.prefixPaddingMs` | `300` |
|
|
719
|
-
| Reasoning effort | `...openai.reasoningEffort` | (unset) |
|
|
720
|
-
| Auth | `...openai.apiKey`, `OPENAI_API_KEY`, or `openai` OAuth | Browser Talk and non-Azure backend bridges can use OpenAI OAuth |
|
|
721
|
-
|
|
722
|
-
Available built-in Realtime voices for `gpt-realtime-2`: `alloy`, `ash`,
|
|
723
|
-
`ballad`, `coral`, `echo`, `sage`, `shimmer`, `verse`, `marin`, `cedar`.
|
|
724
|
-
OpenAI recommends `marin` and `cedar` for the best Realtime quality. This
|
|
725
|
-
is a separate set from the Text-to-speech voices above; do not assume a TTS
|
|
726
|
-
voice such as `fable`, `nova`, or `onyx` is valid for Realtime sessions.
|
|
727
|
-
|
|
728
|
-
<Note>
|
|
729
|
-
Backend OpenAI realtime bridges use the GA Realtime WebSocket session shape, which does not accept `session.temperature`. Azure OpenAI deployments remain available via `azureEndpoint` and `azureDeployment` and keep the deployment-compatible session shape. Supports bidirectional tool calling and G.711 u-law audio.
|
|
730
|
-
</Note>
|
|
731
|
-
|
|
732
|
-
<Note>
|
|
733
|
-
Realtime voice is selected when the session is created. OpenAI allows most
|
|
734
|
-
session fields to change later, but the voice cannot be changed after the
|
|
735
|
-
model has emitted audio in that session. FengMing currently exposes the
|
|
736
|
-
built-in Realtime voice ids as strings.
|
|
737
|
-
</Note>
|
|
738
|
-
|
|
739
|
-
<Note>
|
|
740
|
-
Control UI Talk uses OpenAI browser realtime sessions with a Gateway-minted
|
|
741
|
-
ephemeral client secret and a direct browser WebRTC SDP exchange against the
|
|
742
|
-
OpenAI Realtime API. When no direct OpenAI API key is configured, the
|
|
743
|
-
Gateway can mint that client secret with the selected `openai` OAuth
|
|
744
|
-
profile. Gateway relay and Voice Call backend realtime WebSocket bridges use
|
|
745
|
-
the same OAuth fallback for native OpenAI endpoints. Maintainer live
|
|
746
|
-
verification is available with
|
|
747
|
-
`OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts`;
|
|
748
|
-
the OpenAI legs verify both the backend WebSocket bridge and the browser
|
|
749
|
-
WebRTC SDP exchange without logging secrets.
|
|
750
|
-
</Note>
|
|
751
|
-
|
|
752
|
-
</Accordion>
|
|
753
|
-
</AccordionGroup>
|
|
754
|
-
|
|
755
|
-
## Azure OpenAI endpoints
|
|
756
|
-
|
|
757
|
-
The bundled `openai` provider can target an Azure OpenAI resource for image
|
|
758
|
-
generation by overriding the base URL. On the image-generation path, FengMing
|
|
759
|
-
detects Azure hostnames on `models.providers.openai.baseUrl` and switches to
|
|
760
|
-
Azure's request shape automatically.
|
|
761
|
-
|
|
762
|
-
<Note>
|
|
763
|
-
Realtime voice uses a separate configuration path
|
|
764
|
-
(`plugins.entries.voice-call.config.realtime.providers.openai.azureEndpoint`)
|
|
765
|
-
and is not affected by `models.providers.openai.baseUrl`. See the **Realtime
|
|
766
|
-
voice** accordion under [Voice and speech](#voice-and-speech) for its Azure
|
|
767
|
-
settings.
|
|
768
|
-
</Note>
|
|
769
|
-
|
|
770
|
-
Use Azure OpenAI when:
|
|
771
|
-
|
|
772
|
-
- You already have an Azure OpenAI subscription, quota, or enterprise agreement
|
|
773
|
-
- You need regional data residency or compliance controls Azure provides
|
|
774
|
-
- You want to keep traffic inside an existing Azure tenancy
|
|
775
|
-
|
|
776
|
-
### Configuration
|
|
777
|
-
|
|
778
|
-
For Azure image generation through the bundled `openai` provider, point
|
|
779
|
-
`models.providers.openai.baseUrl` at your Azure resource and set `apiKey` to
|
|
780
|
-
the Azure OpenAI key (not an OpenAI Platform key):
|
|
781
|
-
|
|
782
|
-
```json5
|
|
783
|
-
{
|
|
784
|
-
models: {
|
|
785
|
-
providers: {
|
|
786
|
-
openai: {
|
|
787
|
-
baseUrl: "https://<your-resource>.openai.azure.com",
|
|
788
|
-
apiKey: "<azure-openai-api-key>",
|
|
789
|
-
},
|
|
790
|
-
},
|
|
791
|
-
},
|
|
792
|
-
}
|
|
793
|
-
```
|
|
794
|
-
|
|
795
|
-
FengMing recognizes these Azure host suffixes for the Azure image-generation
|
|
796
|
-
route:
|
|
797
|
-
|
|
798
|
-
- `*.openai.azure.com`
|
|
799
|
-
- `*.services.ai.azure.com`
|
|
800
|
-
- `*.cognitiveservices.azure.com`
|
|
801
|
-
|
|
802
|
-
For image-generation requests on a recognized Azure host, FengMing:
|
|
803
|
-
|
|
804
|
-
- Sends the `api-key` header instead of `Authorization: Bearer`
|
|
805
|
-
- Uses deployment-scoped paths (`/openai/deployments/{deployment}/...`)
|
|
806
|
-
- Appends `?api-version=...` to each request
|
|
807
|
-
- Uses a 600s default request timeout for Azure image-generation calls.
|
|
808
|
-
Per-call `timeoutMs` values still override this default.
|
|
809
|
-
|
|
810
|
-
Other base URLs (public OpenAI, OpenAI-compatible proxies) keep the standard
|
|
811
|
-
OpenAI image request shape.
|
|
812
|
-
|
|
813
|
-
<Note>
|
|
814
|
-
Azure routing for the `openai` provider's image-generation path requires
|
|
815
|
-
FengMing 2026.4.22 or later. Earlier versions treat any custom
|
|
816
|
-
`openai.baseUrl` like the public OpenAI endpoint and will fail against Azure
|
|
817
|
-
image deployments.
|
|
818
|
-
</Note>
|
|
819
|
-
|
|
820
|
-
### API version
|
|
821
|
-
|
|
822
|
-
Set `AZURE_OPENAI_API_VERSION` to pin a specific Azure preview or GA version
|
|
823
|
-
for the Azure image-generation path:
|
|
824
|
-
|
|
825
|
-
```bash
|
|
826
|
-
export AZURE_OPENAI_API_VERSION="2024-12-01-preview"
|
|
827
|
-
```
|
|
828
|
-
|
|
829
|
-
The default is `2024-12-01-preview` when the variable is unset.
|
|
830
|
-
|
|
831
|
-
### Model names are deployment names
|
|
832
|
-
|
|
833
|
-
Azure OpenAI binds models to deployments. For Azure image-generation requests
|
|
834
|
-
routed through the bundled `openai` provider, the `model` field in FengMing
|
|
835
|
-
must be the **Azure deployment name** you configured in the Azure portal, not
|
|
836
|
-
the public OpenAI model id.
|
|
837
|
-
|
|
838
|
-
If you create a deployment called `gpt-image-2-prod` that serves `gpt-image-2`:
|
|
839
|
-
|
|
840
|
-
```
|
|
841
|
-
/tool image_generate model=openai/gpt-image-2-prod prompt="A clean poster" size=1024x1024 count=1
|
|
842
|
-
```
|
|
843
|
-
|
|
844
|
-
The same deployment-name rule applies to image-generation calls routed through
|
|
845
|
-
the bundled `openai` provider.
|
|
846
|
-
|
|
847
|
-
### Regional availability
|
|
848
|
-
|
|
849
|
-
Azure image generation is currently available only in a subset of regions
|
|
850
|
-
(for example `eastus2`, `swedencentral`, `polandcentral`, `westus3`,
|
|
851
|
-
`uaenorth`). Check Microsoft's current region list before creating a
|
|
852
|
-
deployment, and confirm the specific model is offered in your region.
|
|
853
|
-
|
|
854
|
-
### Parameter differences
|
|
855
|
-
|
|
856
|
-
Azure OpenAI and public OpenAI do not always accept the same image parameters.
|
|
857
|
-
Azure may reject options that public OpenAI allows (for example certain
|
|
858
|
-
`background` values on `gpt-image-2`) or expose them only on specific model
|
|
859
|
-
versions. These differences come from Azure and the underlying model, not
|
|
860
|
-
FengMing. If an Azure request fails with a validation error, check the
|
|
861
|
-
parameter set supported by your specific deployment and API version in the
|
|
862
|
-
Azure portal.
|
|
863
|
-
|
|
864
|
-
<Note>
|
|
865
|
-
Azure OpenAI uses native transport and compat behavior but does not receive
|
|
866
|
-
FengMing's hidden attribution headers — see the **Native vs OpenAI-compatible
|
|
867
|
-
routes** accordion under [Advanced configuration](#advanced-configuration).
|
|
868
|
-
|
|
869
|
-
For chat or Responses traffic on Azure (beyond image generation), use the
|
|
870
|
-
onboarding flow or a dedicated Azure provider config — `openai.baseUrl` alone
|
|
871
|
-
does not pick up the Azure API/auth shape. A separate
|
|
872
|
-
`azure-openai-responses/*` provider exists; see
|
|
873
|
-
the Server-side compaction accordion below.
|
|
874
|
-
</Note>
|
|
875
|
-
|
|
876
|
-
## Advanced configuration
|
|
877
|
-
|
|
878
|
-
<AccordionGroup>
|
|
879
|
-
<Accordion title="Transport (WebSocket vs SSE)">
|
|
880
|
-
FengMing uses WebSocket-first with SSE fallback (`"auto"`) for `openai/*`.
|
|
881
|
-
|
|
882
|
-
In `"auto"` mode, FengMing:
|
|
883
|
-
- Retries one early WebSocket failure before falling back to SSE
|
|
884
|
-
- After a failure, marks WebSocket as degraded for ~60 seconds and uses SSE during cool-down
|
|
885
|
-
- Attaches stable session and turn identity headers for retries and reconnects
|
|
886
|
-
- Normalizes usage counters (`input_tokens` / `prompt_tokens`) across transport variants
|
|
887
|
-
|
|
888
|
-
| Value | Behavior |
|
|
889
|
-
|-------|----------|
|
|
890
|
-
| `"auto"` (default) | WebSocket first, SSE fallback |
|
|
891
|
-
| `"sse"` | Force SSE only |
|
|
892
|
-
| `"websocket"` | Force WebSocket only |
|
|
893
|
-
|
|
894
|
-
```json5
|
|
895
|
-
{
|
|
896
|
-
agents: {
|
|
897
|
-
defaults: {
|
|
898
|
-
models: {
|
|
899
|
-
"openai/gpt-5.5": {
|
|
900
|
-
params: { transport: "auto" },
|
|
901
|
-
},
|
|
902
|
-
},
|
|
903
|
-
},
|
|
904
|
-
},
|
|
905
|
-
}
|
|
906
|
-
```
|
|
907
|
-
|
|
908
|
-
Related OpenAI docs:
|
|
909
|
-
- [Realtime API with WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
|
|
910
|
-
- [Streaming API responses (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
|
|
911
|
-
|
|
912
|
-
</Accordion>
|
|
913
|
-
|
|
914
|
-
<Accordion title="Fast mode">
|
|
915
|
-
FengMing exposes a shared fast-mode toggle for `openai/*`:
|
|
916
|
-
|
|
917
|
-
- **Chat/UI:** `/fast status|on|off`
|
|
918
|
-
- **Config:** `agents.defaults.models["<provider>/<model>"].params.fastMode`
|
|
919
|
-
|
|
920
|
-
When enabled, FengMing maps fast mode to OpenAI priority processing (`service_tier = "priority"`). Existing `service_tier` values are preserved, and fast mode does not rewrite `reasoning` or `text.verbosity`.
|
|
921
|
-
|
|
922
|
-
```json5
|
|
923
|
-
{
|
|
924
|
-
agents: {
|
|
925
|
-
defaults: {
|
|
926
|
-
models: {
|
|
927
|
-
"openai/gpt-5.5": { params: { fastMode: true } },
|
|
928
|
-
},
|
|
929
|
-
},
|
|
930
|
-
},
|
|
931
|
-
}
|
|
932
|
-
```
|
|
933
|
-
|
|
934
|
-
<Note>
|
|
935
|
-
Session overrides win over config. Clearing the session override in the Sessions UI returns the session to the configured default.
|
|
936
|
-
</Note>
|
|
937
|
-
|
|
938
|
-
</Accordion>
|
|
939
|
-
|
|
940
|
-
<Accordion title="Priority processing (service_tier)">
|
|
941
|
-
OpenAI's API exposes priority processing via `service_tier`. Set it per model in FengMing:
|
|
942
|
-
|
|
943
|
-
```json5
|
|
944
|
-
{
|
|
945
|
-
agents: {
|
|
946
|
-
defaults: {
|
|
947
|
-
models: {
|
|
948
|
-
"openai/gpt-5.5": { params: { serviceTier: "priority" } },
|
|
949
|
-
},
|
|
950
|
-
},
|
|
951
|
-
},
|
|
952
|
-
}
|
|
953
|
-
```
|
|
954
|
-
|
|
955
|
-
Supported values: `auto`, `default`, `flex`, `priority`.
|
|
956
|
-
|
|
957
|
-
<Warning>
|
|
958
|
-
`serviceTier` is only forwarded to native OpenAI endpoints (`api.openai.com`) and native Codex endpoints (`chatgpt.com/backend-api`). If you route either provider through a proxy, FengMing leaves `service_tier` untouched.
|
|
959
|
-
</Warning>
|
|
960
|
-
|
|
961
|
-
</Accordion>
|
|
962
|
-
|
|
963
|
-
<Accordion title="Server-side compaction (Responses API)">
|
|
964
|
-
For direct OpenAI Responses models (`openai/*` on `api.openai.com`), the OpenAI plugin's FengMing stream wrapper auto-enables server-side compaction:
|
|
965
|
-
|
|
966
|
-
- Forces `store: true` (unless model compat sets `supportsStore: false`)
|
|
967
|
-
- Injects `context_management: [{ type: "compaction", compact_threshold: ... }]`
|
|
968
|
-
- Default `compact_threshold`: 70% of `contextWindow` (or `80000` when unavailable)
|
|
969
|
-
|
|
970
|
-
This applies to the built-in FengMing runtime path and to OpenAI provider hooks used by embedded runs. The native Codex app-server harness manages its own context through Codex and is configured by OpenAI's default agent route or provider/model runtime policy.
|
|
971
|
-
|
|
972
|
-
<Tabs>
|
|
973
|
-
<Tab title="Enable explicitly">
|
|
974
|
-
Useful for compatible endpoints like Azure OpenAI Responses:
|
|
975
|
-
|
|
976
|
-
```json5
|
|
977
|
-
{
|
|
978
|
-
agents: {
|
|
979
|
-
defaults: {
|
|
980
|
-
models: {
|
|
981
|
-
"azure-openai-responses/gpt-5.5": {
|
|
982
|
-
params: { responsesServerCompaction: true },
|
|
983
|
-
},
|
|
984
|
-
},
|
|
985
|
-
},
|
|
986
|
-
},
|
|
987
|
-
}
|
|
988
|
-
```
|
|
989
|
-
</Tab>
|
|
990
|
-
<Tab title="Custom threshold">
|
|
991
|
-
```json5
|
|
992
|
-
{
|
|
993
|
-
agents: {
|
|
994
|
-
defaults: {
|
|
995
|
-
models: {
|
|
996
|
-
"openai/gpt-5.5": {
|
|
997
|
-
params: {
|
|
998
|
-
responsesServerCompaction: true,
|
|
999
|
-
responsesCompactThreshold: 120000,
|
|
1000
|
-
},
|
|
1001
|
-
},
|
|
1002
|
-
},
|
|
1003
|
-
},
|
|
1004
|
-
},
|
|
1005
|
-
}
|
|
1006
|
-
```
|
|
1007
|
-
</Tab>
|
|
1008
|
-
<Tab title="Disable">
|
|
1009
|
-
```json5
|
|
1010
|
-
{
|
|
1011
|
-
agents: {
|
|
1012
|
-
defaults: {
|
|
1013
|
-
models: {
|
|
1014
|
-
"openai/gpt-5.5": {
|
|
1015
|
-
params: { responsesServerCompaction: false },
|
|
1016
|
-
},
|
|
1017
|
-
},
|
|
1018
|
-
},
|
|
1019
|
-
},
|
|
1020
|
-
}
|
|
1021
|
-
```
|
|
1022
|
-
</Tab>
|
|
1023
|
-
</Tabs>
|
|
1024
|
-
|
|
1025
|
-
<Note>
|
|
1026
|
-
`responsesServerCompaction` only controls `context_management` injection. Direct OpenAI Responses models still force `store: true` unless compat sets `supportsStore: false`.
|
|
1027
|
-
</Note>
|
|
1028
|
-
|
|
1029
|
-
</Accordion>
|
|
1030
|
-
|
|
1031
|
-
<Accordion title="Strict-agentic GPT mode">
|
|
1032
|
-
For GPT-5-family runs on `openai/*`, FengMing can use a stricter embedded execution contract:
|
|
1033
|
-
|
|
1034
|
-
```json5
|
|
1035
|
-
{
|
|
1036
|
-
agents: {
|
|
1037
|
-
defaults: {
|
|
1038
|
-
embeddedAgent: { executionContract: "strict-agentic" },
|
|
1039
|
-
},
|
|
1040
|
-
},
|
|
1041
|
-
}
|
|
1042
|
-
```
|
|
1043
|
-
|
|
1044
|
-
With `strict-agentic`, FengMing:
|
|
1045
|
-
- No longer treats a plan-only turn as successful progress when a tool action is available
|
|
1046
|
-
- Retries the turn with an act-now steer
|
|
1047
|
-
- Auto-enables `update_plan` for substantial work
|
|
1048
|
-
- Surfaces an explicit blocked state if the model keeps planning without acting
|
|
1049
|
-
|
|
1050
|
-
<Note>
|
|
1051
|
-
Scoped to OpenAI and Codex GPT-5-family runs only. Other providers and older model families keep default behavior.
|
|
1052
|
-
</Note>
|
|
1053
|
-
|
|
1054
|
-
</Accordion>
|
|
1055
|
-
|
|
1056
|
-
<Accordion title="Native vs OpenAI-compatible routes">
|
|
1057
|
-
FengMing treats direct OpenAI, Codex, and Azure OpenAI endpoints differently from generic OpenAI-compatible `/v1` proxies:
|
|
1058
|
-
|
|
1059
|
-
**Native routes** (`openai/*`, Azure OpenAI):
|
|
1060
|
-
- Keep `reasoning: { effort: "none" }` only for models that support the OpenAI `none` effort
|
|
1061
|
-
- Omit disabled reasoning for models or proxies that reject `reasoning.effort: "none"`
|
|
1062
|
-
- Default tool schemas to strict mode
|
|
1063
|
-
- Attach hidden attribution headers on verified native hosts only
|
|
1064
|
-
- Keep OpenAI-only request shaping (`service_tier`, `store`, reasoning-compat, prompt-cache hints)
|
|
1065
|
-
|
|
1066
|
-
**Proxy/compatible routes:**
|
|
1067
|
-
- Use looser compat behavior
|
|
1068
|
-
- Strip Completions `store` from non-native `openai-completions` payloads
|
|
1069
|
-
- Accept advanced `params.extra_body`/`params.extraBody` pass-through JSON for OpenAI-compatible Completions proxies
|
|
1070
|
-
- Accept `params.chat_template_kwargs` for OpenAI-compatible Completions proxies such as vLLM
|
|
1071
|
-
- Do not force strict tool schemas or native-only headers
|
|
1072
|
-
|
|
1073
|
-
Azure OpenAI uses native transport and compat behavior but does not receive the hidden attribution headers.
|
|
1074
|
-
|
|
1075
|
-
</Accordion>
|
|
1076
|
-
</AccordionGroup>
|
|
1077
|
-
|
|
1078
|
-
## Related
|
|
1079
|
-
|
|
1080
|
-
<CardGroup cols={2}>
|
|
1081
|
-
<Card title="Model selection" href="/concepts/model-providers" icon="layers">
|
|
1082
|
-
Choosing providers, model refs, and failover behavior.
|
|
1083
|
-
</Card>
|
|
1084
|
-
<Card title="Image generation" href="/tools/image-generation" icon="image">
|
|
1085
|
-
Shared image tool parameters and provider selection.
|
|
1086
|
-
</Card>
|
|
1087
|
-
<Card title="Video generation" href="/tools/video-generation" icon="video">
|
|
1088
|
-
Shared video tool parameters and provider selection.
|
|
1089
|
-
</Card>
|
|
1090
|
-
<Card title="OAuth and auth" href="/gateway/authentication" icon="key">
|
|
1091
|
-
Auth details and credential reuse rules.
|
|
1092
|
-
</Card>
|
|
1093
|
-
</CardGroup>
|