fengming 0.3.10 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli/run-main.js +3 -3
- package/dist/cli-startup-metadata.json +8 -8
- package/dist/{command-registry-DMB-HKIk.js → command-registry-BHIBvpgR.js} +2 -2
- package/dist/{command-registry-C5ooX6PF.js → command-registry-BT5icv-c.js} +2 -2
- package/dist/{command-registry-core-B2w_XWvn.js → command-registry-core-C-a3GaYV.js} +2 -2
- package/dist/{completion-cli-Bf4mEw2W.js → completion-cli-BUfFF31m.js} +2 -2
- package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-DF1iC1pF.js} +2 -2
- package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-CDGNJA8n.js} +2 -2
- package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CAPFdCrE.js} +2 -2
- package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-DUUdUzzu.js} +2 -2
- package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-BwfVXGKK.js} +2 -2
- package/dist/control-ui/assets/{index-jUDczxhd.js → index-JWV4rMUy.js} +4 -4
- package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BqAPpn0Y.js} +2 -2
- package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-gya-0PkG.js} +2 -2
- package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-BdttyTpI.js} +2 -2
- package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-D_rtwBjc.js} +2 -2
- package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-CIGDGkWB.js} +2 -2
- package/dist/control-ui/index.html +1 -1
- package/dist/control-ui/sw.js +1 -1
- package/dist/crestodian/crestodian.js +1 -1
- package/dist/crestodian/rescue-message.js +1 -1
- package/dist/{crestodian-C0x7JjF-.js → crestodian-CAxGCgHM.js} +3 -3
- package/dist/{dialogue-No0NvYX7.js → dialogue-CHuN9qet.js} +1 -1
- package/dist/gateway/protocol/index.d.ts +1 -1
- package/dist/{index-AZzJCgph.d.ts → index-DbpfOFUf.d.ts} +1 -1
- package/dist/{operations-Z85LFqsT.js → operations-Mvnrndji.js} +1 -1
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/{agent-harness-runtime-CgQiThzm.d.ts → agent-harness-runtime-Bkrjji63.d.ts} +2 -2
- package/dist/plugin-sdk/agent-harness-runtime.d.ts +4 -4
- package/dist/plugin-sdk/agent-harness-task-runtime.d.ts +1 -1
- package/dist/plugin-sdk/agent-harness.d.ts +4 -4
- package/dist/plugin-sdk/agent-runtime.d.ts +1 -1
- package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-ZTBQez8k.d.ts} +9 -9
- package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
- package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
- package/dist/plugin-sdk/channel-core.d.ts +2 -2
- package/dist/plugin-sdk/channel-entry-contract.d.ts +1 -1
- package/dist/plugin-sdk/{channel-pairing-CX6ncj1r.d.ts → channel-pairing-CzsPAHgH.d.ts} +1 -1
- package/dist/plugin-sdk/channel-pairing.d.ts +1 -1
- package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
- package/dist/plugin-sdk/cli-backend.d.ts +1 -1
- package/dist/plugin-sdk/compat.d.ts +4 -4
- package/dist/plugin-sdk/{config-schema-DuJUjn6k.d.ts → config-schema-N64y7n8C.d.ts} +1 -1
- package/dist/plugin-sdk/config-schema.d.ts +4 -4
- package/dist/plugin-sdk/{core-CPtu2Ftl.d.ts → core-BWZB2hNB.d.ts} +1 -1
- package/dist/plugin-sdk/core.d.ts +7 -7
- package/dist/plugin-sdk/{delegate-uk6vAMkc.d.ts → delegate-o5xckIuc.d.ts} +1 -1
- package/dist/plugin-sdk/discord.d.ts +3 -3
- package/dist/plugin-sdk/{fengming-runtime-Dt2ZEVYX.d.ts → fengming-runtime-abXAXyq2.d.ts} +1 -1
- package/dist/plugin-sdk/gateway-runtime.d.ts +1 -1
- package/dist/plugin-sdk/{host-compat-CM0h9ODw.d.ts → host-compat-D2Ky8seZ.d.ts} +1 -1
- package/dist/plugin-sdk/{http-registry-BniL_epL.d.ts → http-registry-oxJbX3E-.d.ts} +2 -2
- package/dist/plugin-sdk/image-generation-core.d.ts +4 -4
- package/dist/plugin-sdk/image-generation-runtime.d.ts +3 -3
- package/dist/plugin-sdk/index.d.ts +4 -4
- package/dist/plugin-sdk/lmstudio.d.ts +1 -1
- package/dist/plugin-sdk/{loader-aELh60PE.d.ts → loader-CgJhYjxT.d.ts} +3 -3
- package/dist/plugin-sdk/{logger-BpB3--7Z.d.ts → logger-CyDIBtoX.d.ts} +1 -1
- package/dist/plugin-sdk/logging-core.d.ts +3 -3
- package/dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts +2 -2
- package/dist/plugin-sdk/memory-core-host-engine-foundation.d.ts +3 -3
- package/dist/plugin-sdk/{memory-core-host-engine-storage-DYPjOQCg.d.ts → memory-core-host-engine-storage-DfW7ZqD0.d.ts} +1 -1
- package/dist/plugin-sdk/memory-core-host-engine-storage.d.ts +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-cli.d.ts +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-core.d.ts +3 -3
- package/dist/plugin-sdk/memory-core.d.ts +3 -3
- package/dist/plugin-sdk/memory-host-core.d.ts +3 -3
- package/dist/plugin-sdk/migration-runtime.d.ts +1 -1
- package/dist/plugin-sdk/migration.d.ts +1 -1
- package/dist/plugin-sdk/music-generation-core.d.ts +2 -2
- package/dist/plugin-sdk/{plugin-entry-DO9kQeTr.d.ts → plugin-entry-C9xM-ZA9.d.ts} +1 -1
- package/dist/plugin-sdk/plugin-entry.d.ts +3 -3
- package/dist/plugin-sdk/plugin-runtime.d.ts +3 -3
- package/dist/plugin-sdk/{provider-api-key-auth-DvIiojS6.d.ts → provider-api-key-auth-DOmYPTC2.d.ts} +1 -1
- package/dist/plugin-sdk/provider-auth-api-key.d.ts +4 -4
- package/dist/plugin-sdk/{provider-auth-helpers-CYkWZ0vq.d.ts → provider-auth-helpers-pqDNrZTd.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-auth-input-DUV6ZTw4.d.ts → provider-auth-input-Ckt-cU4H.d.ts} +1 -1
- package/dist/plugin-sdk/provider-auth-result.d.ts +1 -1
- package/dist/plugin-sdk/provider-auth-runtime.d.ts +1 -1
- package/dist/plugin-sdk/provider-auth.d.ts +5 -5
- package/dist/plugin-sdk/provider-catalog-runtime.d.ts +2 -2
- package/dist/plugin-sdk/{provider-catalog-shared-Cm3SyFfL.d.ts → provider-catalog-shared-QvOT8Wz1.d.ts} +1 -1
- package/dist/plugin-sdk/provider-catalog-shared.d.ts +2 -2
- package/dist/plugin-sdk/provider-entry.d.ts +3 -3
- package/dist/plugin-sdk/{provider-model-shared-D5rgn7Gb.d.ts → provider-model-shared-Bnc8IMx5.d.ts} +1 -1
- package/dist/plugin-sdk/provider-model-shared.d.ts +2 -2
- package/dist/plugin-sdk/{provider-registry-DxdZT9UN.d.ts → provider-registry-Ba1nNfhA.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-registry-DiKX35tc.d.ts → provider-registry-CqB5bSAD.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-registry-D0vmhPWL.d.ts → provider-registry-CxdVib8g.d.ts} +1 -1
- package/dist/plugin-sdk/{provider-self-hosted-setup-BPx7JMDC.d.ts → provider-self-hosted-setup-eMoeVPnF.d.ts} +1 -1
- package/dist/plugin-sdk/provider-setup.d.ts +2 -2
- package/dist/plugin-sdk/{provider-stream-DcC2vn_N.d.ts → provider-stream-CGaLae9n.d.ts} +1 -1
- package/dist/plugin-sdk/provider-stream-family.d.ts +2 -2
- package/dist/plugin-sdk/{provider-stream-shared-ByDv3QKm.d.ts → provider-stream-shared-u5mt-8_i.d.ts} +1 -1
- package/dist/plugin-sdk/provider-stream-shared.d.ts +1 -1
- package/dist/plugin-sdk/provider-stream.d.ts +2 -2
- package/dist/plugin-sdk/provider-tools.d.ts +1 -1
- package/dist/plugin-sdk/provider-web-fetch-contract.d.ts +1 -1
- package/dist/plugin-sdk/provider-web-fetch.d.ts +1 -1
- package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
- package/dist/plugin-sdk/{provider-web-search-contract-fields-CY4v8kS-.d.ts → provider-web-search-contract-fields-BiWOSs_d.d.ts} +1 -1
- package/dist/plugin-sdk/provider-web-search-contract.d.ts +2 -2
- package/dist/plugin-sdk/provider-web-search.d.ts +1 -1
- package/dist/plugin-sdk/realtime-transcription.d.ts +1 -1
- package/dist/plugin-sdk/realtime-voice.d.ts +1 -1
- package/dist/plugin-sdk/{redact-identifier-CVwkabcI.d.ts → redact-identifier-CVqsKaEK.d.ts} +1 -1
- package/dist/plugin-sdk/{registry-CzaGoAKH.d.ts → registry-Gq9OFlb3.d.ts} +2 -2
- package/dist/plugin-sdk/{registry-types-DN1yiH3F.d.ts → registry-types-DyBkef1H.d.ts} +2 -2
- package/dist/plugin-sdk/reply-runtime.d.ts +1 -1
- package/dist/plugin-sdk/runtime-env.d.ts +3 -3
- package/dist/plugin-sdk/runtime-store.d.ts +1 -1
- package/dist/plugin-sdk/runtime.d.ts +3 -3
- package/dist/plugin-sdk/self-hosted-provider-setup.d.ts +2 -2
- package/dist/plugin-sdk/simple-completion-runtime.d.ts +1 -1
- package/dist/plugin-sdk/speech-core.d.ts +2 -2
- package/dist/plugin-sdk/speech.d.ts +2 -2
- package/dist/plugin-sdk/{subsystem-n4Y4vCcQ.d.ts → subsystem-Boo2DQIV.d.ts} +1 -1
- package/dist/plugin-sdk/text-runtime.d.ts +2 -2
- package/dist/plugin-sdk/tool-plugin.d.ts +2 -2
- package/dist/plugin-sdk/{types-BI8R-vGd.d.ts → types-DGF1KeaJ.d.ts} +2 -2
- package/dist/plugin-sdk/{types-CsqNt0j8.d.ts → types-DpaN54PS.d.ts} +1 -1
- package/dist/plugin-sdk/{unhandled-rejections-D9eBl3hT.d.ts → unhandled-rejections-Bez6JG0y.d.ts} +2 -2
- package/dist/plugin-sdk/video-generation-core.d.ts +3 -3
- package/dist/plugin-sdk/video-generation-runtime.d.ts +3 -3
- package/dist/plugin-sdk/webhook-ingress.d.ts +1 -1
- package/dist/plugin-sdk/webhook-targets.d.ts +1 -1
- package/dist/{program-D19g2jaa.js → program-BaCHjV-F.js} +1 -1
- package/dist/{register.crestodian-BhIukKDA.js → register.crestodian-DMJEPMf3.js} +1 -1
- package/dist/register.subclis-B0BgjwyK.js +3 -0
- package/dist/{register.subclis-DVk0HU4k.js → register.subclis-BuoWG93n.js} +2 -2
- package/dist/{register.subclis-core-BK7nVvl6.js → register.subclis-core-BGBFrWE3.js} +2 -2
- package/dist/{standalone-CHrieUsw.js → standalone-CV2Ud6F7.js} +1 -1
- package/dist/tui-Bvt7hhwe.js +3 -0
- package/dist/tui-CFSmzhsm.js +2 -0
- package/dist/{tui-backend-_Pn3Byj-.js → tui-backend-Bm_t5G7x.js} +4 -4
- package/dist/{tui-cli-CAiC39zd.js → tui-cli-9Ny23hmo.js} +1 -1
- package/dist/tui-ink-run-CuExfFLV.js +2 -0
- package/dist/{tui-ink-run-ChXEGj1h.js → tui-ink-run-qNL49iQn.js} +17 -1
- package/package.json +6 -410
- package/CHANGELOG.md +0 -42
- package/THIRD_PARTY_NOTICES.md +0 -37
- package/dist/register.subclis-Bsvdh8RI.js +0 -3
- package/dist/tui-C733Qov0.js +0 -2
- package/dist/tui-DqbscVN5.js +0 -3
- package/dist/tui-ink-run-D4mSfLHj.js +0 -2
- package/docs/.i18n/README.md +0 -81
- package/docs/.i18n/ar-navigation.json +0 -18
- package/docs/.i18n/de-navigation.json +0 -18
- package/docs/.i18n/es-navigation.json +0 -18
- package/docs/.i18n/fr-navigation.json +0 -18
- package/docs/.i18n/glossary.ar.json +0 -78
- package/docs/.i18n/glossary.de.json +0 -78
- package/docs/.i18n/glossary.es.json +0 -78
- package/docs/.i18n/glossary.fa.json +0 -78
- package/docs/.i18n/glossary.fr.json +0 -78
- package/docs/.i18n/glossary.id.json +0 -78
- package/docs/.i18n/glossary.it.json +0 -78
- package/docs/.i18n/glossary.ja-JP.json +0 -98
- package/docs/.i18n/glossary.ko.json +0 -78
- package/docs/.i18n/glossary.nl.json +0 -78
- package/docs/.i18n/glossary.pl.json +0 -78
- package/docs/.i18n/glossary.pt-BR.json +0 -78
- package/docs/.i18n/glossary.th.json +0 -78
- package/docs/.i18n/glossary.tr.json +0 -78
- package/docs/.i18n/glossary.uk.json +0 -78
- package/docs/.i18n/glossary.vi.json +0 -78
- package/docs/.i18n/glossary.zh-CN.json +0 -1122
- package/docs/.i18n/glossary.zh-TW.json +0 -78
- package/docs/.i18n/id-navigation.json +0 -18
- package/docs/.i18n/it-navigation.json +0 -18
- package/docs/.i18n/ja-navigation.json +0 -18
- package/docs/.i18n/ko-navigation.json +0 -18
- package/docs/.i18n/pl-navigation.json +0 -18
- package/docs/.i18n/pt-BR-navigation.json +0 -18
- package/docs/.i18n/tr-navigation.json +0 -18
- package/docs/.i18n/translation-workflow.md +0 -111
- package/docs/.i18n/zh-Hans-navigation.json +0 -552
- package/docs/AGENTS.md +0 -36
- package/docs/CLAUDE.md +0 -1
- package/docs/agent-runtime-architecture.md +0 -48
- package/docs/announcements/bluebubbles-imessage.md +0 -79
- package/docs/auth-credential-semantics.md +0 -124
- package/docs/automation/auth-monitoring.md +0 -11
- package/docs/automation/clawflow.md +0 -12
- package/docs/automation/cron-jobs.md +0 -534
- package/docs/automation/cron-vs-heartbeat.md +0 -11
- package/docs/automation/gmail-pubsub.md +0 -11
- package/docs/automation/hooks.md +0 -387
- package/docs/automation/index.md +0 -135
- package/docs/automation/poll.md +0 -12
- package/docs/automation/standing-orders.md +0 -250
- package/docs/automation/taskflow.md +0 -155
- package/docs/automation/tasks.md +0 -374
- package/docs/automation/troubleshooting.md +0 -12
- package/docs/automation/webhook.md +0 -12
- package/docs/brave-search.md +0 -11
- package/docs/channels/access-groups.md +0 -201
- package/docs/channels/ambient-room-events.md +0 -214
- package/docs/channels/bot-loop-protection.md +0 -131
- package/docs/channels/broadcast-groups.md +0 -472
- package/docs/channels/channel-routing.md +0 -162
- package/docs/channels/clickclack.md +0 -138
- package/docs/channels/discord.md +0 -1758
- package/docs/channels/feishu.md +0 -650
- package/docs/channels/googlechat.md +0 -284
- package/docs/channels/group-messages.md +0 -95
- package/docs/channels/groups.md +0 -524
- package/docs/channels/imessage-from-bluebubbles.md +0 -259
- package/docs/channels/imessage.md +0 -839
- package/docs/channels/index.md +0 -64
- package/docs/channels/irc.md +0 -253
- package/docs/channels/line.md +0 -243
- package/docs/channels/location.md +0 -71
- package/docs/channels/matrix-migration.md +0 -370
- package/docs/channels/matrix-presentation.md +0 -77
- package/docs/channels/matrix-push-rules.md +0 -150
- package/docs/channels/matrix.md +0 -921
- package/docs/channels/mattermost.md +0 -542
- package/docs/channels/msteams.md +0 -1096
- package/docs/channels/nextcloud-talk.md +0 -176
- package/docs/channels/nostr.md +0 -253
- package/docs/channels/pairing.md +0 -214
- package/docs/channels/qqbot.md +0 -314
- package/docs/channels/signal.md +0 -417
- package/docs/channels/slack.md +0 -1623
- package/docs/channels/synology-chat.md +0 -187
- package/docs/channels/telegram.md +0 -1124
- package/docs/channels/tlon.md +0 -296
- package/docs/channels/troubleshooting.md +0 -162
- package/docs/channels/twitch.md +0 -431
- package/docs/channels/wechat.md +0 -171
- package/docs/channels/whatsapp.md +0 -796
- package/docs/channels/yuanbao.md +0 -416
- package/docs/channels/zalo.md +0 -253
- package/docs/channels/zalouser.md +0 -217
- package/docs/ci.md +0 -657
- package/docs/clawhub/publishing.md +0 -96
- package/docs/cli/acp.md +0 -370
- package/docs/cli/agent.md +0 -109
- package/docs/cli/agents.md +0 -253
- package/docs/cli/approvals.md +0 -190
- package/docs/cli/backup.md +0 -98
- package/docs/cli/browser.md +0 -307
- package/docs/cli/channels.md +0 -154
- package/docs/cli/clawbot.md +0 -25
- package/docs/cli/commitments.md +0 -90
- package/docs/cli/completion.md +0 -39
- package/docs/cli/config.md +0 -504
- package/docs/cli/configure.md +0 -77
- package/docs/cli/crestodian.md +0 -337
- package/docs/cli/cron.md +0 -304
- package/docs/cli/daemon.md +0 -67
- package/docs/cli/dashboard.md +0 -33
- package/docs/cli/devices.md +0 -240
- package/docs/cli/directory.md +0 -68
- package/docs/cli/dns.md +0 -53
- package/docs/cli/docs.md +0 -63
- package/docs/cli/doctor.md +0 -241
- package/docs/cli/flows.md +0 -52
- package/docs/cli/gateway.md +0 -572
- package/docs/cli/health.md +0 -43
- package/docs/cli/hooks.md +0 -345
- package/docs/cli/index.md +0 -400
- package/docs/cli/infer.md +0 -364
- package/docs/cli/logs.md +0 -68
- package/docs/cli/mcp.md +0 -529
- package/docs/cli/memory.md +0 -183
- package/docs/cli/message.md +0 -317
- package/docs/cli/migrate.md +0 -334
- package/docs/cli/models.md +0 -239
- package/docs/cli/node.md +0 -177
- package/docs/cli/nodes.md +0 -76
- package/docs/cli/onboard.md +0 -250
- package/docs/cli/pairing.md +0 -77
- package/docs/cli/path.md +0 -511
- package/docs/cli/plugins.md +0 -459
- package/docs/cli/policy.md +0 -886
- package/docs/cli/proxy.md +0 -89
- package/docs/cli/qr.md +0 -56
- package/docs/cli/reset.md +0 -39
- package/docs/cli/sandbox.md +0 -208
- package/docs/cli/secrets.md +0 -202
- package/docs/cli/security.md +0 -136
- package/docs/cli/sessions.md +0 -164
- package/docs/cli/setup.md +0 -59
- package/docs/cli/skills.md +0 -122
- package/docs/cli/status.md +0 -45
- package/docs/cli/system.md +0 -89
- package/docs/cli/tasks.md +0 -111
- package/docs/cli/transcripts.md +0 -151
- package/docs/cli/tui.md +0 -91
- package/docs/cli/uninstall.md +0 -44
- package/docs/cli/update.md +0 -243
- package/docs/cli/voicecall.md +0 -204
- package/docs/cli/webhooks.md +0 -117
- package/docs/cli/wiki.md +0 -256
- package/docs/concepts/active-memory.md +0 -856
- package/docs/concepts/agent-loop.md +0 -185
- package/docs/concepts/agent-runtimes.md +0 -276
- package/docs/concepts/agent-workspace.md +0 -230
- package/docs/concepts/agent.md +0 -140
- package/docs/concepts/architecture.md +0 -154
- package/docs/concepts/channel-docking.md +0 -145
- package/docs/concepts/commitments.md +0 -150
- package/docs/concepts/compaction.md +0 -203
- package/docs/concepts/context-engine.md +0 -347
- package/docs/concepts/context.md +0 -199
- package/docs/concepts/delegate-architecture.md +0 -319
- package/docs/concepts/dreaming.md +0 -264
- package/docs/concepts/experimental-features.md +0 -109
- package/docs/concepts/features.md +0 -91
- package/docs/concepts/fengming-sdk.md +0 -323
- package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
- package/docs/concepts/mantis.md +0 -744
- package/docs/concepts/markdown-formatting.md +0 -139
- package/docs/concepts/memory-builtin.md +0 -148
- package/docs/concepts/memory-honcho.md +0 -144
- package/docs/concepts/memory-qmd.md +0 -271
- package/docs/concepts/memory-search.md +0 -167
- package/docs/concepts/memory.md +0 -299
- package/docs/concepts/message-lifecycle-refactor.md +0 -1126
- package/docs/concepts/messages.md +0 -214
- package/docs/concepts/model-failover.md +0 -384
- package/docs/concepts/model-providers.md +0 -719
- package/docs/concepts/models.md +0 -371
- package/docs/concepts/multi-agent.md +0 -625
- package/docs/concepts/oauth.md +0 -198
- package/docs/concepts/parallel-specialist-lanes.md +0 -127
- package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
- package/docs/concepts/presence.md +0 -117
- package/docs/concepts/progress-drafts.md +0 -406
- package/docs/concepts/qa-e2e-automation.md +0 -947
- package/docs/concepts/qa-matrix.md +0 -139
- package/docs/concepts/queue-steering.md +0 -90
- package/docs/concepts/queue.md +0 -136
- package/docs/concepts/retry.md +0 -86
- package/docs/concepts/session-pruning.md +0 -104
- package/docs/concepts/session-tool.md +0 -188
- package/docs/concepts/session.md +0 -164
- package/docs/concepts/soul.md +0 -116
- package/docs/concepts/streaming.md +0 -257
- package/docs/concepts/system-prompt.md +0 -328
- package/docs/concepts/timezone.md +0 -47
- package/docs/concepts/typebox.md +0 -309
- package/docs/concepts/typing-indicators.md +0 -88
- package/docs/concepts/usage-tracking.md +0 -66
- package/docs/date-time.md +0 -126
- package/docs/debug/node-issue.md +0 -90
- package/docs/diagnostics/flags.md +0 -182
- package/docs/docs.json +0 -1862
- package/docs/fengming-agent-runtime.md +0 -82
- package/docs/gateway/authentication.md +0 -256
- package/docs/gateway/background-process.md +0 -147
- package/docs/gateway/bonjour.md +0 -303
- package/docs/gateway/bridge-protocol.md +0 -97
- package/docs/gateway/cli-backends.md +0 -439
- package/docs/gateway/config-agents.md +0 -1525
- package/docs/gateway/config-channels.md +0 -945
- package/docs/gateway/config-tools.md +0 -774
- package/docs/gateway/configuration-examples.md +0 -704
- package/docs/gateway/configuration-reference.md +0 -1391
- package/docs/gateway/configuration.md +0 -739
- package/docs/gateway/diagnostics.md +0 -213
- package/docs/gateway/discovery.md +0 -154
- package/docs/gateway/doctor.md +0 -575
- package/docs/gateway/gateway-lock.md +0 -37
- package/docs/gateway/health.md +0 -73
- package/docs/gateway/heartbeat.md +0 -498
- package/docs/gateway/index.md +0 -383
- package/docs/gateway/local-model-services.md +0 -205
- package/docs/gateway/local-models.md +0 -355
- package/docs/gateway/logging.md +0 -149
- package/docs/gateway/multiple-gateways.md +0 -178
- package/docs/gateway/network-model.md +0 -15
- package/docs/gateway/openai-http-api.md +0 -378
- package/docs/gateway/openresponses-http-api.md +0 -347
- package/docs/gateway/openshell.md +0 -316
- package/docs/gateway/opentelemetry.md +0 -433
- package/docs/gateway/operator-scopes.md +0 -119
- package/docs/gateway/pairing.md +0 -207
- package/docs/gateway/prometheus.md +0 -249
- package/docs/gateway/protocol.md +0 -826
- package/docs/gateway/remote-gateway-readme.md +0 -169
- package/docs/gateway/remote.md +0 -280
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
- package/docs/gateway/sandboxing.md +0 -546
- package/docs/gateway/secrets-plan-contract.md +0 -159
- package/docs/gateway/secrets.md +0 -805
- package/docs/gateway/security/audit-checks.md +0 -127
- package/docs/gateway/security/exposure-runbook.md +0 -212
- package/docs/gateway/security/index.md +0 -1343
- package/docs/gateway/security/secure-file-operations.md +0 -76
- package/docs/gateway/security/shrinkwrap.md +0 -111
- package/docs/gateway/tailscale.md +0 -156
- package/docs/gateway/tools-invoke-http-api.md +0 -169
- package/docs/gateway/troubleshooting.md +0 -877
- package/docs/gateway/trusted-proxy-auth.md +0 -483
- package/docs/help/debugging.md +0 -341
- package/docs/help/environment.md +0 -233
- package/docs/help/faq-first-run.md +0 -870
- package/docs/help/faq-models.md +0 -556
- package/docs/help/faq.md +0 -2041
- package/docs/help/index.md +0 -39
- package/docs/help/scripts.md +0 -56
- package/docs/help/testing-live.md +0 -587
- package/docs/help/testing-updates-plugins.md +0 -299
- package/docs/help/testing.md +0 -977
- package/docs/help/troubleshooting.md +0 -449
- package/docs/index.md +0 -196
- package/docs/install/ansible.md +0 -233
- package/docs/install/azure.md +0 -315
- package/docs/install/bun.md +0 -59
- package/docs/install/clawdock.md +0 -112
- package/docs/install/development-channels.md +0 -148
- package/docs/install/digitalocean.md +0 -174
- package/docs/install/docker-vm-runtime.md +0 -154
- package/docs/install/docker.md +0 -564
- package/docs/install/exe-dev.md +0 -201
- package/docs/install/fly.md +0 -524
- package/docs/install/gcp.md +0 -418
- package/docs/install/hetzner.md +0 -285
- package/docs/install/hostinger.md +0 -98
- package/docs/install/index.md +0 -232
- package/docs/install/installer.md +0 -447
- package/docs/install/kubernetes.md +0 -196
- package/docs/install/macos-vm.md +0 -281
- package/docs/install/migrating-claude.md +0 -165
- package/docs/install/migrating-hermes.md +0 -178
- package/docs/install/migrating.md +0 -137
- package/docs/install/nix.md +0 -112
- package/docs/install/node.md +0 -142
- package/docs/install/northflank.mdx +0 -44
- package/docs/install/oracle.md +0 -218
- package/docs/install/podman.md +0 -216
- package/docs/install/railway.mdx +0 -92
- package/docs/install/raspberry-pi.md +0 -234
- package/docs/install/render.mdx +0 -167
- package/docs/install/uninstall.md +0 -131
- package/docs/install/updating.md +0 -284
- package/docs/install/upstash.md +0 -96
- package/docs/logging.md +0 -320
- package/docs/nav-tabs-underline.js +0 -100
- package/docs/network.md +0 -72
- package/docs/nodes/audio.md +0 -216
- package/docs/nodes/camera.md +0 -166
- package/docs/nodes/images.md +0 -77
- package/docs/nodes/index.md +0 -439
- package/docs/nodes/location-command.md +0 -102
- package/docs/nodes/media-understanding.md +0 -495
- package/docs/nodes/talk.md +0 -160
- package/docs/nodes/troubleshooting.md +0 -123
- package/docs/nodes/voicewake.md +0 -93
- package/docs/perplexity.md +0 -11
- package/docs/plan/codex-context-engine-harness.md +0 -624
- package/docs/plan/ui-channels.md +0 -284
- package/docs/platforms/digitalocean.md +0 -12
- package/docs/platforms/easyrunner.md +0 -109
- package/docs/platforms/index.md +0 -51
- package/docs/platforms/linux.md +0 -141
- package/docs/platforms/mac/bundled-gateway.md +0 -79
- package/docs/platforms/mac/canvas.md +0 -128
- package/docs/platforms/mac/child-process.md +0 -72
- package/docs/platforms/mac/dev-setup.md +0 -112
- package/docs/platforms/mac/health.md +0 -39
- package/docs/platforms/mac/icon.md +0 -36
- package/docs/platforms/mac/logging.md +0 -62
- package/docs/platforms/mac/menu-bar.md +0 -93
- package/docs/platforms/mac/peekaboo.md +0 -96
- package/docs/platforms/mac/permissions.md +0 -73
- package/docs/platforms/mac/remote.md +0 -123
- package/docs/platforms/mac/signing.md +0 -52
- package/docs/platforms/mac/skills.md +0 -43
- package/docs/platforms/mac/voice-overlay.md +0 -66
- package/docs/platforms/mac/voicewake.md +0 -73
- package/docs/platforms/mac/webchat.md +0 -54
- package/docs/platforms/mac/xpc.md +0 -66
- package/docs/platforms/oracle.md +0 -12
- package/docs/platforms/raspberry-pi.md +0 -13
- package/docs/platforms/windows.md +0 -286
- package/docs/plugins/adding-capabilities.md +0 -146
- package/docs/plugins/admin-http-rpc.md +0 -216
- package/docs/plugins/agent-tools.md +0 -13
- package/docs/plugins/architecture-internals.md +0 -1196
- package/docs/plugins/architecture.md +0 -483
- package/docs/plugins/building-extensions.md +0 -13
- package/docs/plugins/building-plugins.md +0 -335
- package/docs/plugins/bundles.md +0 -310
- package/docs/plugins/cli-backend-plugins.md +0 -310
- package/docs/plugins/codex-computer-use.md +0 -297
- package/docs/plugins/codex-harness-reference.md +0 -470
- package/docs/plugins/codex-harness-runtime.md +0 -268
- package/docs/plugins/codex-harness.md +0 -780
- package/docs/plugins/codex-native-plugins.md +0 -276
- package/docs/plugins/community.md +0 -77
- package/docs/plugins/compatibility.md +0 -167
- package/docs/plugins/copilot.md +0 -356
- package/docs/plugins/dependency-resolution.md +0 -176
- package/docs/plugins/google-meet.md +0 -1737
- package/docs/plugins/hooks.md +0 -484
- package/docs/plugins/install-overrides.md +0 -80
- package/docs/plugins/manage-plugins.md +0 -210
- package/docs/plugins/manifest.md +0 -1457
- package/docs/plugins/memory-lancedb.md +0 -385
- package/docs/plugins/memory-wiki.md +0 -529
- package/docs/plugins/message-presentation.md +0 -473
- package/docs/plugins/oc-path.md +0 -166
- package/docs/plugins/plugin-inventory.md +0 -189
- package/docs/plugins/plugin-permission-requests.md +0 -193
- package/docs/plugins/reference/acpx.md +0 -23
- package/docs/plugins/reference/admin-http-rpc.md +0 -23
- package/docs/plugins/reference/alibaba.md +0 -23
- package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
- package/docs/plugins/reference/amazon-bedrock.md +0 -23
- package/docs/plugins/reference/anthropic-vertex.md +0 -19
- package/docs/plugins/reference/anthropic.md +0 -23
- package/docs/plugins/reference/arcee.md +0 -23
- package/docs/plugins/reference/azure-speech.md +0 -23
- package/docs/plugins/reference/bonjour.md +0 -19
- package/docs/plugins/reference/brave.md +0 -23
- package/docs/plugins/reference/browser.md +0 -23
- package/docs/plugins/reference/byteplus.md +0 -19
- package/docs/plugins/reference/canvas.md +0 -19
- package/docs/plugins/reference/cerebras.md +0 -23
- package/docs/plugins/reference/chutes.md +0 -23
- package/docs/plugins/reference/clickclack.md +0 -23
- package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
- package/docs/plugins/reference/codex-supervisor.md +0 -27
- package/docs/plugins/reference/codex.md +0 -23
- package/docs/plugins/reference/comfy.md +0 -23
- package/docs/plugins/reference/copilot-proxy.md +0 -19
- package/docs/plugins/reference/copilot.md +0 -23
- package/docs/plugins/reference/deepgram.md +0 -23
- package/docs/plugins/reference/deepinfra.md +0 -23
- package/docs/plugins/reference/deepseek.md +0 -23
- package/docs/plugins/reference/diagnostics-otel.md +0 -19
- package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
- package/docs/plugins/reference/diffs-language-pack.md +0 -19
- package/docs/plugins/reference/diffs.md +0 -19
- package/docs/plugins/reference/discord.md +0 -23
- package/docs/plugins/reference/document-extract.md +0 -23
- package/docs/plugins/reference/duckduckgo.md +0 -23
- package/docs/plugins/reference/elevenlabs.md +0 -23
- package/docs/plugins/reference/exa.md +0 -23
- package/docs/plugins/reference/fal.md +0 -23
- package/docs/plugins/reference/feishu.md +0 -23
- package/docs/plugins/reference/file-transfer.md +0 -19
- package/docs/plugins/reference/firecrawl.md +0 -23
- package/docs/plugins/reference/fireworks.md +0 -23
- package/docs/plugins/reference/github-copilot.md +0 -23
- package/docs/plugins/reference/gmi.md +0 -23
- package/docs/plugins/reference/google-meet.md +0 -23
- package/docs/plugins/reference/google.md +0 -23
- package/docs/plugins/reference/googlechat.md +0 -23
- package/docs/plugins/reference/gradium.md +0 -23
- package/docs/plugins/reference/groq.md +0 -23
- package/docs/plugins/reference/huggingface.md +0 -23
- package/docs/plugins/reference/imessage.md +0 -23
- package/docs/plugins/reference/inworld.md +0 -23
- package/docs/plugins/reference/irc.md +0 -23
- package/docs/plugins/reference/kilocode.md +0 -23
- package/docs/plugins/reference/kimi.md +0 -23
- package/docs/plugins/reference/line.md +0 -23
- package/docs/plugins/reference/litellm.md +0 -23
- package/docs/plugins/reference/llm-task.md +0 -19
- package/docs/plugins/reference/lmstudio.md +0 -23
- package/docs/plugins/reference/lobster.md +0 -19
- package/docs/plugins/reference/matrix.md +0 -23
- package/docs/plugins/reference/mattermost.md +0 -23
- package/docs/plugins/reference/memory-core.md +0 -19
- package/docs/plugins/reference/memory-lancedb.md +0 -23
- package/docs/plugins/reference/memory-wiki.md +0 -23
- package/docs/plugins/reference/microsoft-foundry.md +0 -19
- package/docs/plugins/reference/microsoft.md +0 -19
- package/docs/plugins/reference/migrate-claude.md +0 -19
- package/docs/plugins/reference/migrate-hermes.md +0 -19
- package/docs/plugins/reference/minimax.md +0 -23
- package/docs/plugins/reference/mistral.md +0 -23
- package/docs/plugins/reference/moonshot.md +0 -23
- package/docs/plugins/reference/msteams.md +0 -23
- package/docs/plugins/reference/nextcloud-talk.md +0 -23
- package/docs/plugins/reference/nostr.md +0 -23
- package/docs/plugins/reference/novita.md +0 -23
- package/docs/plugins/reference/nvidia.md +0 -23
- package/docs/plugins/reference/oc-path.md +0 -23
- package/docs/plugins/reference/ollama.md +0 -23
- package/docs/plugins/reference/open-prose.md +0 -19
- package/docs/plugins/reference/openai.md +0 -23
- package/docs/plugins/reference/opencode-go.md +0 -23
- package/docs/plugins/reference/opencode.md +0 -23
- package/docs/plugins/reference/openrouter.md +0 -23
- package/docs/plugins/reference/openshell.md +0 -19
- package/docs/plugins/reference/perplexity.md +0 -23
- package/docs/plugins/reference/pixverse.md +0 -23
- package/docs/plugins/reference/policy.md +0 -72
- package/docs/plugins/reference/qa-channel.md +0 -23
- package/docs/plugins/reference/qa-lab.md +0 -19
- package/docs/plugins/reference/qa-matrix.md +0 -19
- package/docs/plugins/reference/qianfan.md +0 -23
- package/docs/plugins/reference/qqbot.md +0 -23
- package/docs/plugins/reference/qwen.md +0 -23
- package/docs/plugins/reference/runway.md +0 -23
- package/docs/plugins/reference/searxng.md +0 -19
- package/docs/plugins/reference/senseaudio.md +0 -23
- package/docs/plugins/reference/sglang.md +0 -23
- package/docs/plugins/reference/signal.md +0 -23
- package/docs/plugins/reference/skill-workshop.md +0 -23
- package/docs/plugins/reference/slack.md +0 -23
- package/docs/plugins/reference/stepfun.md +0 -23
- package/docs/plugins/reference/synology-chat.md +0 -23
- package/docs/plugins/reference/synthetic.md +0 -23
- package/docs/plugins/reference/tavily.md +0 -23
- package/docs/plugins/reference/telegram.md +0 -23
- package/docs/plugins/reference/tencent.md +0 -23
- package/docs/plugins/reference/tlon.md +0 -23
- package/docs/plugins/reference/together.md +0 -23
- package/docs/plugins/reference/tokenjuice.md +0 -23
- package/docs/plugins/reference/tts-local-cli.md +0 -19
- package/docs/plugins/reference/twitch.md +0 -23
- package/docs/plugins/reference/venice.md +0 -23
- package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
- package/docs/plugins/reference/vllm.md +0 -23
- package/docs/plugins/reference/voice-call.md +0 -23
- package/docs/plugins/reference/volcengine.md +0 -23
- package/docs/plugins/reference/voyage.md +0 -19
- package/docs/plugins/reference/vydra.md +0 -23
- package/docs/plugins/reference/web-readability.md +0 -19
- package/docs/plugins/reference/webhooks.md +0 -23
- package/docs/plugins/reference/whatsapp.md +0 -23
- package/docs/plugins/reference/workboard.md +0 -23
- package/docs/plugins/reference/xai.md +0 -23
- package/docs/plugins/reference/xiaomi.md +0 -23
- package/docs/plugins/reference/zai.md +0 -23
- package/docs/plugins/reference/zalo.md +0 -23
- package/docs/plugins/reference/zalouser.md +0 -24
- package/docs/plugins/reference.md +0 -145
- package/docs/plugins/sdk-agent-harness.md +0 -338
- package/docs/plugins/sdk-channel-inbound.md +0 -70
- package/docs/plugins/sdk-channel-ingress.md +0 -137
- package/docs/plugins/sdk-channel-message.md +0 -18
- package/docs/plugins/sdk-channel-outbound.md +0 -113
- package/docs/plugins/sdk-channel-plugins.md +0 -765
- package/docs/plugins/sdk-channel-turn.md +0 -9
- package/docs/plugins/sdk-entrypoints.md +0 -344
- package/docs/plugins/sdk-migration.md +0 -979
- package/docs/plugins/sdk-overview.md +0 -511
- package/docs/plugins/sdk-provider-plugins.md +0 -846
- package/docs/plugins/sdk-runtime.md +0 -676
- package/docs/plugins/sdk-setup.md +0 -550
- package/docs/plugins/sdk-subpaths.md +0 -391
- package/docs/plugins/sdk-testing.md +0 -403
- package/docs/plugins/skill-workshop.md +0 -713
- package/docs/plugins/tool-plugins.md +0 -411
- package/docs/plugins/voice-call.md +0 -942
- package/docs/plugins/webhooks.md +0 -192
- package/docs/plugins/workboard.md +0 -252
- package/docs/plugins/zalouser.md +0 -86
- package/docs/prose.md +0 -137
- package/docs/providers/alibaba.md +0 -158
- package/docs/providers/anthropic.md +0 -381
- package/docs/providers/arcee.md +0 -144
- package/docs/providers/azure-speech.md +0 -119
- package/docs/providers/bedrock-mantle.md +0 -211
- package/docs/providers/bedrock.md +0 -414
- package/docs/providers/cerebras.md +0 -130
- package/docs/providers/chutes.md +0 -153
- package/docs/providers/claude-max-api-proxy.md +0 -191
- package/docs/providers/cloudflare-ai-gateway.md +0 -119
- package/docs/providers/comfy.md +0 -362
- package/docs/providers/deepgram.md +0 -184
- package/docs/providers/deepinfra.md +0 -92
- package/docs/providers/deepseek.md +0 -146
- package/docs/providers/ds4.md +0 -309
- package/docs/providers/elevenlabs.md +0 -130
- package/docs/providers/fal.md +0 -240
- package/docs/providers/fireworks.md +0 -144
- package/docs/providers/github-copilot.md +0 -257
- package/docs/providers/gmi.md +0 -92
- package/docs/providers/google.md +0 -472
- package/docs/providers/gradium.md +0 -123
- package/docs/providers/groq.md +0 -171
- package/docs/providers/huggingface.md +0 -235
- package/docs/providers/index.md +0 -105
- package/docs/providers/inferrs.md +0 -272
- package/docs/providers/inworld.md +0 -120
- package/docs/providers/kilocode.md +0 -135
- package/docs/providers/litellm.md +0 -234
- package/docs/providers/lmstudio.md +0 -224
- package/docs/providers/minimax.md +0 -505
- package/docs/providers/mistral.md +0 -235
- package/docs/providers/models.md +0 -64
- package/docs/providers/moonshot.md +0 -413
- package/docs/providers/novita.md +0 -92
- package/docs/providers/nvidia.md +0 -158
- package/docs/providers/ollama-cloud.md +0 -115
- package/docs/providers/ollama.md +0 -1225
- package/docs/providers/openai.md +0 -1093
- package/docs/providers/opencode-go.md +0 -123
- package/docs/providers/opencode.md +0 -149
- package/docs/providers/openrouter.md +0 -349
- package/docs/providers/perplexity-provider.md +0 -123
- package/docs/providers/pixverse.md +0 -165
- package/docs/providers/qianfan.md +0 -132
- package/docs/providers/qwen-oauth.md +0 -115
- package/docs/providers/qwen.md +0 -364
- package/docs/providers/runway.md +0 -103
- package/docs/providers/senseaudio.md +0 -68
- package/docs/providers/sglang.md +0 -161
- package/docs/providers/stepfun.md +0 -229
- package/docs/providers/synthetic.md +0 -154
- package/docs/providers/tencent.md +0 -130
- package/docs/providers/together.md +0 -140
- package/docs/providers/venice.md +0 -312
- package/docs/providers/vercel-ai-gateway.md +0 -128
- package/docs/providers/vllm.md +0 -407
- package/docs/providers/volcengine.md +0 -199
- package/docs/providers/vydra.md +0 -180
- package/docs/providers/xai.md +0 -571
- package/docs/providers/xiaomi.md +0 -262
- package/docs/providers/zai.md +0 -224
- package/docs/refactor/access.md +0 -9
- package/docs/refactor/acp.md +0 -298
- package/docs/refactor/canvas.md +0 -131
- package/docs/refactor/database-first.md +0 -2256
- package/docs/refactor/ingress-core.md +0 -341
- package/docs/reference/AGENTS.default.md +0 -131
- package/docs/reference/RELEASING.md +0 -799
- package/docs/reference/api-usage-costs.md +0 -208
- package/docs/reference/application-modernization-plan.md +0 -208
- package/docs/reference/code-mode.md +0 -773
- package/docs/reference/credits.md +0 -33
- package/docs/reference/device-models.md +0 -50
- package/docs/reference/fengming-sdk-api-design.md +0 -390
- package/docs/reference/full-release-validation.md +0 -202
- package/docs/reference/memory-config.md +0 -604
- package/docs/reference/prompt-caching.md +0 -358
- package/docs/reference/release-performance-sweep.md +0 -360
- package/docs/reference/rich-output-protocol.md +0 -101
- package/docs/reference/rpc.md +0 -43
- package/docs/reference/secret-placeholder-conventions.md +0 -33
- package/docs/reference/secretref-credential-surface.md +0 -159
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
- package/docs/reference/session-management-compaction.md +0 -474
- package/docs/reference/templates/AGENTS.dev.md +0 -90
- package/docs/reference/templates/AGENTS.md +0 -227
- package/docs/reference/templates/BOOT.md +0 -16
- package/docs/reference/templates/BOOTSTRAP.md +0 -66
- package/docs/reference/templates/CLAUDE.md +0 -1
- package/docs/reference/templates/HEARTBEAT.md +0 -24
- package/docs/reference/templates/IDENTITY.dev.md +0 -52
- package/docs/reference/templates/IDENTITY.md +0 -34
- package/docs/reference/templates/SOUL.dev.md +0 -82
- package/docs/reference/templates/SOUL.md +0 -49
- package/docs/reference/templates/TOOLS.dev.md +0 -29
- package/docs/reference/templates/TOOLS.md +0 -51
- package/docs/reference/templates/USER.dev.md +0 -23
- package/docs/reference/templates/USER.md +0 -28
- package/docs/reference/test.md +0 -247
- package/docs/reference/token-use.md +0 -246
- package/docs/reference/transcript-hygiene.md +0 -214
- package/docs/reference/wizard.md +0 -252
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
- package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
- package/docs/security/formal-verification.md +0 -170
- package/docs/security/incident-response.md +0 -59
- package/docs/security/network-proxy.md +0 -268
- package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
- package/docs/snippets/plugin-publish/minimal-package.json +0 -16
- package/docs/specs/claw-supervisor.md +0 -247
- package/docs/start/bootstrapping.md +0 -49
- package/docs/start/docs-directory.md +0 -69
- package/docs/start/fengming.md +0 -252
- package/docs/start/getting-started.md +0 -152
- package/docs/start/hubs.md +0 -201
- package/docs/start/lore.md +0 -223
- package/docs/start/onboarding-overview.md +0 -72
- package/docs/start/onboarding.md +0 -98
- package/docs/start/quickstart.md +0 -25
- package/docs/start/setup.md +0 -178
- package/docs/start/showcase.md +0 -363
- package/docs/start/wizard-cli-automation.md +0 -232
- package/docs/start/wizard-cli-reference.md +0 -331
- package/docs/start/wizard.md +0 -141
- package/docs/style.css +0 -137
- package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
- package/docs/tools/acp-agents-setup.md +0 -351
- package/docs/tools/acp-agents.md +0 -854
- package/docs/tools/agent-send.md +0 -130
- package/docs/tools/apply-patch.md +0 -64
- package/docs/tools/brave-search.md +0 -139
- package/docs/tools/browser-control.md +0 -391
- package/docs/tools/browser-linux-troubleshooting.md +0 -173
- package/docs/tools/browser-login.md +0 -77
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
- package/docs/tools/browser.md +0 -810
- package/docs/tools/btw.md +0 -159
- package/docs/tools/capability-cookbook.md +0 -12
- package/docs/tools/clawhub.md +0 -5
- package/docs/tools/code-execution.md +0 -173
- package/docs/tools/creating-skills.md +0 -158
- package/docs/tools/diffs.md +0 -525
- package/docs/tools/duckduckgo-search.md +0 -109
- package/docs/tools/elevated.md +0 -128
- package/docs/tools/exa-search.md +0 -152
- package/docs/tools/exec-approvals-advanced.md +0 -444
- package/docs/tools/exec-approvals.md +0 -494
- package/docs/tools/exec.md +0 -285
- package/docs/tools/firecrawl.md +0 -155
- package/docs/tools/gemini-search.md +0 -114
- package/docs/tools/goal.md +0 -217
- package/docs/tools/grok-search.md +0 -129
- package/docs/tools/image-generation.md +0 -493
- package/docs/tools/index.md +0 -178
- package/docs/tools/kimi-search.md +0 -105
- package/docs/tools/llm-task.md +0 -137
- package/docs/tools/lobster.md +0 -365
- package/docs/tools/loop-detection.md +0 -154
- package/docs/tools/media-overview.md +0 -160
- package/docs/tools/minimax-search.md +0 -102
- package/docs/tools/multi-agent-sandbox-tools.md +0 -409
- package/docs/tools/music-generation.md +0 -372
- package/docs/tools/ollama-search.md +0 -153
- package/docs/tools/pdf.md +0 -213
- package/docs/tools/perplexity-search.md +0 -220
- package/docs/tools/plugin.md +0 -363
- package/docs/tools/reactions.md +0 -100
- package/docs/tools/searxng-search.md +0 -141
- package/docs/tools/skills-config.md +0 -195
- package/docs/tools/skills.md +0 -569
- package/docs/tools/slash-commands.md +0 -487
- package/docs/tools/steer.md +0 -77
- package/docs/tools/subagents.md +0 -651
- package/docs/tools/tavily.md +0 -162
- package/docs/tools/thinking.md +0 -142
- package/docs/tools/tokenjuice.md +0 -84
- package/docs/tools/tool-search.md +0 -269
- package/docs/tools/trajectory.md +0 -229
- package/docs/tools/tts.md +0 -1009
- package/docs/tools/video-generation.md +0 -555
- package/docs/tools/web-fetch.md +0 -210
- package/docs/tools/web.md +0 -461
- package/docs/tts.md +0 -11
- package/docs/vps.md +0 -139
- package/docs/web/control-ui.md +0 -512
- package/docs/web/dashboard.md +0 -107
- package/docs/web/index.md +0 -133
- package/docs/web/tui.md +0 -250
- package/docs/web/webchat.md +0 -102
- package/npm-shrinkwrap.json +0 -12861
- package/patches/.gitkeep +0 -0
- package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
- package/pnpm-workspace.yaml +0 -120
- package/scripts/crabbox-wrapper.mjs +0 -2004
- package/scripts/lib/official-external-channel-catalog.json +0 -560
- package/scripts/lib/official-external-plugin-catalog.json +0 -264
- package/scripts/lib/official-external-provider-catalog.json +0 -158
- package/scripts/lib/package-dist-imports.mjs +0 -171
- package/scripts/npm-runner.mjs +0 -91
- package/scripts/postinstall-bundled-plugins.mjs +0 -978
- package/scripts/preinstall-package-manager-warning.mjs +0 -64
- package/scripts/prepare-git-hooks.mjs +0 -72
- package/scripts/windows-cmd-helpers.mjs +0 -22
- package/skills/batch/SKILL.md +0 -118
- package/skills/code-review/SKILL.md +0 -107
- package/skills/debug/SKILL.md +0 -83
- package/skills/loop/SKILL.md +0 -118
- package/skills/run/SKILL.md +0 -79
- package/skills/run-skill-generator/SKILL.md +0 -179
- package/skills/verify/SKILL.md +0 -103
- package/src/agents/templates/HEARTBEAT.md +0 -3
package/docs/refactor/acp.md
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Migration plan for making ACP session and ACPX process ownership explicit"
|
|
3
|
-
read_when:
|
|
4
|
-
- Refactoring ACP session lifecycle or ACPX process cleanup
|
|
5
|
-
- Debugging ACPX orphan processes, PID reuse, or multi-gateway cleanup safety
|
|
6
|
-
- Changing sessions_list visibility for spawned ACP or subagent sessions
|
|
7
|
-
- Designing ownership metadata for background tasks, ACP sessions, or process leases
|
|
8
|
-
title: "ACP lifecycle refactor"
|
|
9
|
-
sidebarTitle: "ACP lifecycle refactor"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
ACP lifecycle currently works, but too much of it is inferred after the fact.
|
|
13
|
-
Process cleanup reconstructs ownership from PIDs, command strings, wrapper
|
|
14
|
-
paths, and the live process table. Session visibility reconstructs ownership
|
|
15
|
-
from session-key strings plus secondary `sessions.list({ spawnedBy })` lookups.
|
|
16
|
-
That makes narrow fixes possible, but it also makes edge cases easy to miss:
|
|
17
|
-
PID reuse, quoted commands, adapter grandchildren, multi-gateway state roots,
|
|
18
|
-
`cancel` versus `close`, and `tree` versus `all` visibility all become separate
|
|
19
|
-
places to rediscover the same ownership rules.
|
|
20
|
-
|
|
21
|
-
This refactor makes ownership first-class. The goal is not a new ACP product
|
|
22
|
-
surface; it is a safer internal contract for the existing ACP and ACPX behavior.
|
|
23
|
-
|
|
24
|
-
## Goals
|
|
25
|
-
|
|
26
|
-
- Cleanup never signals a process unless current live evidence matches an
|
|
27
|
-
FengMing-owned lease.
|
|
28
|
-
- `cancel`, `close`, and startup reaping have distinct lifecycle intents.
|
|
29
|
-
- `sessions_list`, `sessions_history`, `sessions_send`, and status checks use
|
|
30
|
-
the same requester-owned session model.
|
|
31
|
-
- Multi-gateway installs cannot reap each other's ACPX wrappers.
|
|
32
|
-
- Old ACPX session records keep working during migration.
|
|
33
|
-
- The runtime remains plugin-owned; core does not learn ACPX package details.
|
|
34
|
-
|
|
35
|
-
## Non-goals
|
|
36
|
-
|
|
37
|
-
- Replacing ACPX or changing the public `/acp` command surface.
|
|
38
|
-
- Moving vendor-specific ACP adapter behavior into core.
|
|
39
|
-
- Requiring users to manually clean state before upgrading.
|
|
40
|
-
- Making `cancel` close reusable ACP sessions.
|
|
41
|
-
|
|
42
|
-
## Target Model
|
|
43
|
-
|
|
44
|
-
### Gateway Instance Identity
|
|
45
|
-
|
|
46
|
-
Each Gateway process should have a stable runtime instance id:
|
|
47
|
-
|
|
48
|
-
```ts
|
|
49
|
-
type GatewayInstanceId = string;
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
It can be generated on Gateway startup and persisted in state for the life of
|
|
53
|
-
that install. It is not a security secret; it is an ownership discriminator used
|
|
54
|
-
to avoid confusing one Gateway's ACP processes with another Gateway's processes.
|
|
55
|
-
|
|
56
|
-
### ACP Session Ownership
|
|
57
|
-
|
|
58
|
-
Every spawned ACP session should have normalized ownership metadata:
|
|
59
|
-
|
|
60
|
-
```ts
|
|
61
|
-
type AcpSessionOwner = {
|
|
62
|
-
sessionKey: string;
|
|
63
|
-
spawnedBy?: string;
|
|
64
|
-
parentSessionKey?: string;
|
|
65
|
-
ownerSessionKey: string;
|
|
66
|
-
agentId: string;
|
|
67
|
-
backend: "acpx";
|
|
68
|
-
gatewayInstanceId: GatewayInstanceId;
|
|
69
|
-
createdAt: number;
|
|
70
|
-
};
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
The Gateway should return these fields on session rows where they are known.
|
|
74
|
-
Visibility filtering should be a pure check over row metadata:
|
|
75
|
-
|
|
76
|
-
```ts
|
|
77
|
-
canSeeSessionRow({
|
|
78
|
-
row,
|
|
79
|
-
requesterSessionKey,
|
|
80
|
-
visibility,
|
|
81
|
-
a2aPolicy,
|
|
82
|
-
});
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
That removes hidden secondary `sessions.list({ spawnedBy })` calls from
|
|
86
|
-
visibility checks. A spawned cross-agent ACP child is requester-owned because
|
|
87
|
-
the row says so, not because a second query happens to find it.
|
|
88
|
-
|
|
89
|
-
### ACPX Process Leases
|
|
90
|
-
|
|
91
|
-
Every generated wrapper launch should create a lease record:
|
|
92
|
-
|
|
93
|
-
```ts
|
|
94
|
-
type AcpxProcessLease = {
|
|
95
|
-
leaseId: string;
|
|
96
|
-
gatewayInstanceId: GatewayInstanceId;
|
|
97
|
-
sessionKey: string;
|
|
98
|
-
wrapperRoot: string;
|
|
99
|
-
wrapperPath: string;
|
|
100
|
-
rootPid: number;
|
|
101
|
-
processGroupId?: number;
|
|
102
|
-
commandHash: string;
|
|
103
|
-
startedAt: number;
|
|
104
|
-
state: "open" | "closing" | "closed" | "lost";
|
|
105
|
-
};
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
The wrapper process should receive the lease id and gateway instance id in its
|
|
109
|
-
environment:
|
|
110
|
-
|
|
111
|
-
```sh
|
|
112
|
-
FENGMING_ACPX_LEASE_ID=...
|
|
113
|
-
FENGMING_GATEWAY_INSTANCE_ID=...
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
When the platform allows it, verification should prefer live process metadata
|
|
117
|
-
that cannot be confused by command quoting:
|
|
118
|
-
|
|
119
|
-
- root PID still exists
|
|
120
|
-
- live wrapper path is under `wrapperRoot`
|
|
121
|
-
- process group matches the lease when available
|
|
122
|
-
- environment contains the expected lease id when readable
|
|
123
|
-
- command hash or executable path matches the lease
|
|
124
|
-
|
|
125
|
-
If the live process cannot be verified, cleanup fails closed.
|
|
126
|
-
|
|
127
|
-
## Lifecycle Controller
|
|
128
|
-
|
|
129
|
-
Introduce one ACPX lifecycle controller that owns process leases and cleanup
|
|
130
|
-
policy:
|
|
131
|
-
|
|
132
|
-
```ts
|
|
133
|
-
interface AcpxLifecycleController {
|
|
134
|
-
ensureSession(input: AcpRuntimeEnsureInput): Promise<AcpRuntimeHandle>;
|
|
135
|
-
cancelTurn(handle: AcpRuntimeHandle): Promise<void>;
|
|
136
|
-
closeSession(input: {
|
|
137
|
-
handle: AcpRuntimeHandle;
|
|
138
|
-
discardPersistentState?: boolean;
|
|
139
|
-
reason?: string;
|
|
140
|
-
}): Promise<void>;
|
|
141
|
-
reapStartupOrphans(): Promise<void>;
|
|
142
|
-
verifyOwnedTree(lease: AcpxProcessLease): Promise<OwnedProcessTree | null>;
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
`cancelTurn` requests turn cancellation only. It must not reap reusable wrapper
|
|
147
|
-
or adapter processes.
|
|
148
|
-
|
|
149
|
-
`closeSession` is allowed to reap, but only after loading the session record,
|
|
150
|
-
loading the lease, and verifying the live process tree still belongs to that
|
|
151
|
-
lease.
|
|
152
|
-
|
|
153
|
-
`reapStartupOrphans` starts from open leases in state. It may use the process
|
|
154
|
-
table to find descendants, but it should not scan arbitrary ACP-looking
|
|
155
|
-
commands first and then decide they are probably ours.
|
|
156
|
-
|
|
157
|
-
## Wrapper Contract
|
|
158
|
-
|
|
159
|
-
Generated wrappers should stay small. They should:
|
|
160
|
-
|
|
161
|
-
- start the adapter in a process group where supported
|
|
162
|
-
- forward normal termination signals to the process group
|
|
163
|
-
- detect parent death
|
|
164
|
-
- on parent death, send SIGTERM, then keep the wrapper alive until the SIGKILL
|
|
165
|
-
fallback runs
|
|
166
|
-
- report root PID and process group id back to the lifecycle controller when
|
|
167
|
-
that is available
|
|
168
|
-
|
|
169
|
-
Wrappers should not decide session policy. They only enforce local process-tree
|
|
170
|
-
cleanup for their own adapter group.
|
|
171
|
-
|
|
172
|
-
## Session Visibility Contract
|
|
173
|
-
|
|
174
|
-
Visibility should use normalized row ownership:
|
|
175
|
-
|
|
176
|
-
```ts
|
|
177
|
-
type SessionVisibilityInput = {
|
|
178
|
-
requesterSessionKey: string;
|
|
179
|
-
row: {
|
|
180
|
-
key: string;
|
|
181
|
-
agentId: string;
|
|
182
|
-
ownerSessionKey?: string;
|
|
183
|
-
spawnedBy?: string;
|
|
184
|
-
parentSessionKey?: string;
|
|
185
|
-
};
|
|
186
|
-
visibility: "self" | "tree" | "agent" | "all";
|
|
187
|
-
a2aPolicy: AgentToAgentPolicy;
|
|
188
|
-
};
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Rules:
|
|
192
|
-
|
|
193
|
-
- `self`: only the requester session.
|
|
194
|
-
- `tree`: requester session plus rows owned by or spawned from the requester.
|
|
195
|
-
- `all`: all same-agent rows, a2a-allowed cross-agent rows, and requester-owned
|
|
196
|
-
spawned cross-agent rows even when general a2a is disabled.
|
|
197
|
-
- `agent`: same agent only, unless an explicit owner relationship says the row
|
|
198
|
-
belongs to the requester.
|
|
199
|
-
|
|
200
|
-
This makes `tree` and `all` monotonic: `all` must not hide an owned child that
|
|
201
|
-
`tree` would show.
|
|
202
|
-
|
|
203
|
-
## Migration Plan
|
|
204
|
-
|
|
205
|
-
### Phase 1: Add Identity And Leases
|
|
206
|
-
|
|
207
|
-
- Add `gatewayInstanceId` to Gateway state.
|
|
208
|
-
- Add an ACPX lease store under the ACPX state directory.
|
|
209
|
-
- Write a lease before spawning a generated wrapper.
|
|
210
|
-
- Store `leaseId` on new ACPX session records.
|
|
211
|
-
- Keep existing PID and command fields for old records.
|
|
212
|
-
|
|
213
|
-
### Phase 2: Lease-First Cleanup
|
|
214
|
-
|
|
215
|
-
- Change close cleanup to load `leaseId` first.
|
|
216
|
-
- Verify live process ownership against the lease before signaling.
|
|
217
|
-
- Keep the current root PID and wrapper-root fallback only for legacy records.
|
|
218
|
-
- Mark leases `closed` after verified cleanup.
|
|
219
|
-
- Mark leases `lost` when the process is gone before cleanup.
|
|
220
|
-
|
|
221
|
-
### Phase 3: Lease-First Startup Reaping
|
|
222
|
-
|
|
223
|
-
- Startup reaping scans open leases.
|
|
224
|
-
- For each lease, verify the root process and collect descendants.
|
|
225
|
-
- Reap verified trees children-first.
|
|
226
|
-
- Expire old `closed` and `lost` leases with a bounded retention window.
|
|
227
|
-
- Keep command-marker scanning only as a temporary legacy fallback, guarded by
|
|
228
|
-
wrapper root and Gateway instance where possible.
|
|
229
|
-
|
|
230
|
-
### Phase 4: Session Ownership Rows
|
|
231
|
-
|
|
232
|
-
- Add ownership metadata to Gateway session rows.
|
|
233
|
-
- Teach ACPX, subagent, background-task, and session-store writers to populate
|
|
234
|
-
`ownerSessionKey` or `spawnedBy`.
|
|
235
|
-
- Convert session visibility checks to use row metadata.
|
|
236
|
-
- Remove visibility-time secondary `sessions.list({ spawnedBy })` lookups.
|
|
237
|
-
|
|
238
|
-
### Phase 5: Remove Legacy Heuristics
|
|
239
|
-
|
|
240
|
-
After one release window:
|
|
241
|
-
|
|
242
|
-
- stop relying on stored root command strings for non-legacy ACPX cleanup
|
|
243
|
-
- remove command-marker startup scans
|
|
244
|
-
- remove visibility fallback list lookups
|
|
245
|
-
- keep defensive fail-closed behavior for missing or unverifiable leases
|
|
246
|
-
|
|
247
|
-
## Tests
|
|
248
|
-
|
|
249
|
-
Add two table-driven suites.
|
|
250
|
-
|
|
251
|
-
Process lifecycle simulator:
|
|
252
|
-
|
|
253
|
-
- PID reused by unrelated process
|
|
254
|
-
- PID reused by another Gateway's wrapper root
|
|
255
|
-
- stored wrapper command is shell-quoted, live `ps` command is not
|
|
256
|
-
- adapter child exits, grandchild remains in the process group
|
|
257
|
-
- parent death SIGTERM fallback reaches SIGKILL
|
|
258
|
-
- process listing unavailable
|
|
259
|
-
- stale lease with missing process
|
|
260
|
-
- startup orphan with wrapper, adapter child, and grandchild
|
|
261
|
-
|
|
262
|
-
Session visibility matrix:
|
|
263
|
-
|
|
264
|
-
- `self`, `tree`, `agent`, `all`
|
|
265
|
-
- a2a enabled and disabled
|
|
266
|
-
- same-agent row
|
|
267
|
-
- cross-agent row
|
|
268
|
-
- requester-owned spawned cross-agent ACP row
|
|
269
|
-
- sandboxed requester clamped to `tree`
|
|
270
|
-
- list, history, send, and status actions
|
|
271
|
-
|
|
272
|
-
The important invariant: a requester-owned spawned child is visible wherever
|
|
273
|
-
the configured visibility includes the requester session tree, and `all` is not
|
|
274
|
-
less capable than `tree`.
|
|
275
|
-
|
|
276
|
-
## Compatibility Notes
|
|
277
|
-
|
|
278
|
-
Old session records may not have `leaseId`. They should use the legacy
|
|
279
|
-
fail-closed cleanup path:
|
|
280
|
-
|
|
281
|
-
- require a live root process
|
|
282
|
-
- require wrapper-root ownership when a generated wrapper is expected
|
|
283
|
-
- require command agreement for non-wrapper roots
|
|
284
|
-
- never signal based only on stale stored PID metadata
|
|
285
|
-
|
|
286
|
-
If a legacy record cannot be verified, leave it alone. Startup lease cleanup and
|
|
287
|
-
the next release window should eventually retire the fallback.
|
|
288
|
-
|
|
289
|
-
## Success Criteria
|
|
290
|
-
|
|
291
|
-
- Closing an old or stale ACPX session cannot kill another Gateway's process.
|
|
292
|
-
- Parent death does not leave stubborn adapter grandchildren running.
|
|
293
|
-
- `cancel` aborts the active turn without closing reusable sessions.
|
|
294
|
-
- `sessions_list` can show requester-owned cross-agent ACP children under both
|
|
295
|
-
`tree` and `all`.
|
|
296
|
-
- Startup cleanup is driven by leases, not broad command-string scans.
|
|
297
|
-
- The focused process and visibility matrix tests cover every edge case that
|
|
298
|
-
previously required one-off review fixes.
|
package/docs/refactor/canvas.md
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "Plan and audit checklist for moving Canvas out of core and into a bundled experimental plugin."
|
|
3
|
-
read_when:
|
|
4
|
-
- Moving Canvas host, tools, commands, docs, or protocol ownership
|
|
5
|
-
- Auditing whether Canvas is still core-owned
|
|
6
|
-
- Preparing or reviewing the experimental Canvas plugin PR
|
|
7
|
-
title: "Canvas plugin refactor"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Canvas plugin refactor
|
|
11
|
-
|
|
12
|
-
Canvas is low-use and experimental. Treat it as a bundled plugin, not a core feature. Core may keep generic gateway, node, HTTP, auth, config, and native-client plumbing, but Canvas-specific behavior should live under `extensions/canvas`.
|
|
13
|
-
|
|
14
|
-
## Goal
|
|
15
|
-
|
|
16
|
-
Move Canvas ownership to `extensions/canvas` while preserving the current paired-node behavior:
|
|
17
|
-
|
|
18
|
-
- the agent-facing `canvas` tool is registered by the Canvas plugin
|
|
19
|
-
- Canvas node commands are allowed only when the Canvas plugin registers them
|
|
20
|
-
- A2UI host/source files live under the Canvas plugin
|
|
21
|
-
- Canvas document materialization lives under the Canvas plugin
|
|
22
|
-
- CLI command implementation lives under the Canvas plugin, or delegates through a plugin-owned runtime barrel
|
|
23
|
-
- docs and plugin inventory describe Canvas as experimental and plugin-backed
|
|
24
|
-
|
|
25
|
-
## Non-goals
|
|
26
|
-
|
|
27
|
-
- Do not redesign the native app Canvas UI in this refactor.
|
|
28
|
-
- Do not remove Canvas protocol/client support from iOS, Android, or macOS unless a separate product decision says Canvas should be deleted.
|
|
29
|
-
- Do not build a broad plugin service framework only for Canvas unless at least one other bundled plugin needs the same seam.
|
|
30
|
-
|
|
31
|
-
## Current branch state
|
|
32
|
-
|
|
33
|
-
Done:
|
|
34
|
-
|
|
35
|
-
- Added bundled plugin package in `extensions/canvas`.
|
|
36
|
-
- Added `extensions/canvas/fengming.plugin.json`.
|
|
37
|
-
- Moved the agent `canvas` tool from `src/agents/tools/canvas-tool.ts` to `extensions/canvas/src/tool.ts`.
|
|
38
|
-
- Removed core registration of `createCanvasTool` from `src/agents/fengming-tools.ts`.
|
|
39
|
-
- Moved Canvas host implementation from `src/canvas-host` to `extensions/canvas/src/host`.
|
|
40
|
-
- Kept `extensions/canvas/runtime-api.ts` as the plugin-owned compatibility barrel for tests, packaging, and external public Canvas helpers.
|
|
41
|
-
- Moved Canvas document materialization from `src/gateway/canvas-documents.ts` to `extensions/canvas/src/documents.ts`.
|
|
42
|
-
- Moved Canvas CLI implementation and A2UI JSONL helpers into `extensions/canvas/src/cli.ts`.
|
|
43
|
-
- Moved Canvas host URL and scoped capability helpers into `extensions/canvas/src`.
|
|
44
|
-
- Moved Canvas node command defaults out of hardcoded core lists and into plugin `nodeInvokePolicies`.
|
|
45
|
-
- Added plugin-owned Canvas host config at `plugins.entries.canvas.config.host`.
|
|
46
|
-
- Moved Canvas and A2UI HTTP serving behind Canvas plugin HTTP route registration.
|
|
47
|
-
- Added generic plugin WebSocket upgrade dispatch for plugin-owned HTTP routes.
|
|
48
|
-
- Replaced Canvas-specific gateway host URL and node capability auth with generic hosted plugin surface and node capability helpers.
|
|
49
|
-
- Added plugin-owned hosted media resolvers so Canvas document URLs resolve through the Canvas plugin instead of core importing Canvas document internals.
|
|
50
|
-
- Added `api.registerNodeCliFeature(...)` so Canvas can declare `fengming nodes canvas` as a plugin-owned node feature without manually spelling the parent command path.
|
|
51
|
-
- Removed production `src/**` imports of `extensions/canvas/runtime-api.js`.
|
|
52
|
-
- Moved the A2UI bundle source from `apps/shared/FengMingKit/Tools/CanvasA2UI` to `extensions/canvas/src/host/a2ui-app`.
|
|
53
|
-
- Moved A2UI build/copy implementation under `extensions/canvas/scripts` and replaced root build wiring with generic bundled-plugin asset hooks.
|
|
54
|
-
- Removed the runtime legacy top-level `canvasHost` config alias.
|
|
55
|
-
- Kept the Canvas doctor migration so `fengming doctor --fix` rewrites old `canvasHost` configs into `plugins.entries.canvas.config.host`.
|
|
56
|
-
- Removed old-agent Canvas protocol compatibility behind gateway protocol v4. Native clients and gateways now use only `pluginSurfaceUrls.canvas` plus `node.pluginSurface.refresh`; the deprecated `canvasHostUrl`, `canvasCapability`, and `node.canvas.capability.refresh` path is intentionally unsupported in this experimental refactor.
|
|
57
|
-
- Updated generated plugin inventory to include Canvas.
|
|
58
|
-
- Added plugin reference docs at `docs/plugins/reference/canvas.md`.
|
|
59
|
-
|
|
60
|
-
Known remaining core-owned Canvas surfaces:
|
|
61
|
-
|
|
62
|
-
- Native app Canvas handlers under `apps/` still intentionally consume the Canvas plugin surface
|
|
63
|
-
- native app Canvas protocol/client handlers under `apps/`
|
|
64
|
-
- published artifact output still uses `dist/canvas-host/a2ui` for backwards-compatible runtime lookup, but the copy step is now plugin-owned
|
|
65
|
-
|
|
66
|
-
## Target shape
|
|
67
|
-
|
|
68
|
-
`extensions/canvas` should own:
|
|
69
|
-
|
|
70
|
-
- plugin manifest and package metadata
|
|
71
|
-
- agent tool registration
|
|
72
|
-
- node invoke command policy
|
|
73
|
-
- Canvas host and A2UI runtime
|
|
74
|
-
- Canvas A2UI bundle source and asset build/copy scripts
|
|
75
|
-
- Canvas document creation and asset resolution
|
|
76
|
-
- Canvas CLI implementation
|
|
77
|
-
- Canvas docs page and plugin inventory entry
|
|
78
|
-
|
|
79
|
-
Core should own only generic seams:
|
|
80
|
-
|
|
81
|
-
- plugin discovery and registration
|
|
82
|
-
- generic agent tool registry
|
|
83
|
-
- generic node invoke policy registry
|
|
84
|
-
- generic gateway HTTP/auth and WebSocket upgrade dispatch
|
|
85
|
-
- generic hosted plugin surface URL resolution
|
|
86
|
-
- generic hosted media resolver registration
|
|
87
|
-
- generic node capability transport
|
|
88
|
-
- generic config plumbing
|
|
89
|
-
- generic bundled-plugin asset hook discovery
|
|
90
|
-
|
|
91
|
-
Native apps may keep Canvas command handlers as clients of the protocol. They are not the plugin runtime owner.
|
|
92
|
-
|
|
93
|
-
## Migration steps
|
|
94
|
-
|
|
95
|
-
1. Treat `plugins.entries.canvas.config.host` as the plugin-owned config surface.
|
|
96
|
-
2. Update docs so Canvas is described as an experimental bundled plugin.
|
|
97
|
-
3. Run focused Canvas tests, plugin inventory checks, plugin SDK API checks, and build/type gates affected by runtime boundaries.
|
|
98
|
-
|
|
99
|
-
## Audit checklist
|
|
100
|
-
|
|
101
|
-
Before calling the refactor complete:
|
|
102
|
-
|
|
103
|
-
- `rg "src/canvas-host|../canvas-host"` returns no live source imports.
|
|
104
|
-
- `rg "canvas-tool|createCanvasTool" src` finds no core-owned Canvas tool implementation.
|
|
105
|
-
- `rg "canvas.present|canvas.snapshot|canvas.a2ui" src/gateway` finds no hardcoded allowlist defaults outside generic plugin policy tests.
|
|
106
|
-
- `rg "extensions/canvas/runtime-api" src --glob '!**/*.test.ts'` is empty.
|
|
107
|
-
- `rg "canvas-documents" src` is empty.
|
|
108
|
-
- `rg "registerNodesCanvasCommands|nodes-canvas" src` is empty; the Canvas plugin registers `fengming nodes canvas` through nested plugin CLI metadata.
|
|
109
|
-
- `rg "createCanvasHostHandler|handleA2uiHttpRequest" src/gateway` returns no gateway runtime ownership.
|
|
110
|
-
- `rg "apps/shared/FengMingKit/Tools/CanvasA2UI|canvas-a2ui-copy|extensions/canvas/src/host/a2ui" scripts .github package.json` finds only compatibility wrappers or plugin-owned paths.
|
|
111
|
-
- `pnpm plugins:inventory:check` passes.
|
|
112
|
-
- `pnpm plugin-sdk:api:check` passes, or generated API baselines are intentionally updated and reviewed.
|
|
113
|
-
- Targeted Canvas tests pass.
|
|
114
|
-
- Changed-lanes tests pass for Canvas host/A2UI paths.
|
|
115
|
-
- PR body explicitly says Canvas is experimental and plugin-backed.
|
|
116
|
-
|
|
117
|
-
## Verification commands
|
|
118
|
-
|
|
119
|
-
Use targeted local checks while iterating:
|
|
120
|
-
|
|
121
|
-
```sh
|
|
122
|
-
pnpm test extensions/canvas/src/host/server.test.ts extensions/canvas/src/host/server.state-dir.test.ts extensions/canvas/src/host/file-resolver.test.ts
|
|
123
|
-
pnpm test src/gateway/server.plugin-node-capability-auth.test.ts src/gateway/server-import-boundary.test.ts
|
|
124
|
-
pnpm test extensions/canvas/src/config-migration.test.ts src/commands/doctor-legacy-config.migrations.test.ts
|
|
125
|
-
pnpm test test/scripts/changed-lanes.test.ts test/scripts/build-all.test.ts extensions/canvas/scripts/bundle-a2ui.test.ts test/scripts/bundled-plugin-assets.test.ts extensions/canvas/scripts/copy-a2ui.test.ts src/infra/run-node.test.ts
|
|
126
|
-
pnpm tsgo:extensions
|
|
127
|
-
pnpm plugins:inventory:check
|
|
128
|
-
pnpm plugin-sdk:api:check
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Run `pnpm build` before push if runtime barrel, lazy import, packaging, or published plugin surfaces change.
|