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/cli/path.md
DELETED
|
@@ -1,511 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
summary: "CLI reference for `fengming path` (inspect and edit workspace files via the `oc://` addressing scheme)"
|
|
3
|
-
read_when:
|
|
4
|
-
- You want to read or write a leaf inside a workspace file from the terminal
|
|
5
|
-
- You're scripting against workspace state and want a stable, kind-agnostic addressing scheme
|
|
6
|
-
- You're debugging a `oc://` path (validate the syntax, see what it resolves to)
|
|
7
|
-
title: "Path"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# `fengming path`
|
|
11
|
-
|
|
12
|
-
Plugin-provided shell access to the `oc://` addressing substrate: one
|
|
13
|
-
kind-dispatched path scheme for inspecting and editing addressable workspace
|
|
14
|
-
files (markdown, jsonc, jsonl, yaml/yml/lobster). Self-hosters, plugin
|
|
15
|
-
authors, and editor extensions use it to read, find, or update a narrow
|
|
16
|
-
location without hand-rolling per-file parsers.
|
|
17
|
-
|
|
18
|
-
The CLI mirrors the substrate's public verbs:
|
|
19
|
-
|
|
20
|
-
- `resolve` is concrete and single-match.
|
|
21
|
-
- `find` is the multi-match verb for wildcards, unions, predicates, and
|
|
22
|
-
positional expansion.
|
|
23
|
-
- `set` only accepts concrete paths or insertion markers; wildcard patterns are
|
|
24
|
-
rejected before writing.
|
|
25
|
-
|
|
26
|
-
`path` is provided by the bundled optional `oc-path` plugin. Enable it before
|
|
27
|
-
first use:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
fengming plugins enable oc-path
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Why use it
|
|
34
|
-
|
|
35
|
-
FengMing state is spread across human-edited markdown, commented JSONC config,
|
|
36
|
-
append-only JSONL logs, and YAML workflow/spec files. Shell scripts, hooks,
|
|
37
|
-
and agents often need one small value from those files: a frontmatter key, a
|
|
38
|
-
plugin setting, a log record field, a YAML step, or a bullet item under a named
|
|
39
|
-
section.
|
|
40
|
-
|
|
41
|
-
`fengming path` gives those callers a stable address instead of a one-off grep,
|
|
42
|
-
regex, or parser for each file kind. The same `oc://` path can be validated,
|
|
43
|
-
resolved, searched, dry-run, and written from the terminal, which makes narrow
|
|
44
|
-
automation easier to review and safer to replay. It is especially useful when
|
|
45
|
-
you want to update one leaf while preserving the rest of the file's comments,
|
|
46
|
-
line endings, and surrounding formatting.
|
|
47
|
-
|
|
48
|
-
Use it when the thing you want has a logical address, but the physical file
|
|
49
|
-
shape varies:
|
|
50
|
-
|
|
51
|
-
- A hook wants to read one setting from commented JSONC without losing comments
|
|
52
|
-
when it writes the value back.
|
|
53
|
-
- A maintenance script wants to find every matching event field in a JSONL log
|
|
54
|
-
without loading the whole log into a custom parser.
|
|
55
|
-
- An editor extension wants to jump to a markdown section or bullet item by
|
|
56
|
-
slug, then render the exact line it resolved to.
|
|
57
|
-
- An agent wants to dry-run a tiny workspace edit before applying it, with the
|
|
58
|
-
changed bytes visible in review.
|
|
59
|
-
|
|
60
|
-
You probably do not need `fengming path` for ordinary whole-file edits, rich
|
|
61
|
-
config migrations, or memory-specific writes. Those should use the owner
|
|
62
|
-
command or plugin. `path` is for small, addressable file operations where a
|
|
63
|
-
repeatable terminal command is clearer than another bespoke parser.
|
|
64
|
-
|
|
65
|
-
## How it is used
|
|
66
|
-
|
|
67
|
-
Read one value from a human-edited config file:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
fengming path resolve 'oc://config.jsonc/plugins/github/enabled'
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Preview a write without touching disk:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
fengming path set 'oc://config.jsonc/plugins/github/enabled' 'true' --dry-run
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Find matching records in an append-only JSONL log:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
fengming path find 'oc://session.jsonl/[event=tool_call]/name'
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Address an instruction in markdown by section and item instead of by line
|
|
86
|
-
number:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
fengming path resolve 'oc://AGENTS.md/runtime-safety/fengming-gateway'
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Validate a path in CI or a preflight script before the script reads or writes:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
fengming path validate 'oc://AGENTS.md/tools/$last/risk'
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Those commands are meant to be copyable into shell scripts. Use `--json` when a
|
|
99
|
-
caller needs structured output and `--human` when a person is inspecting the
|
|
100
|
-
result.
|
|
101
|
-
|
|
102
|
-
## How it works
|
|
103
|
-
|
|
104
|
-
`fengming path` does four things:
|
|
105
|
-
|
|
106
|
-
1. Parses the `oc://` address into slots: file, section, item, field, and
|
|
107
|
-
optional session.
|
|
108
|
-
2. Chooses the file-kind adapter from the target extension (`.md`, `.jsonc`,
|
|
109
|
-
`.jsonl`, `.yaml`, `.yml`, `.lobster`, and related aliases).
|
|
110
|
-
3. Resolves the slots against that file kind's AST: markdown headings/items,
|
|
111
|
-
JSONC object keys/array indexes, JSONL line records, or YAML map/sequence
|
|
112
|
-
nodes.
|
|
113
|
-
4. For `set`, emits edited bytes through the same adapter so the untouched
|
|
114
|
-
parts of the file keep their comments, line endings, and nearby formatting
|
|
115
|
-
where the kind supports it.
|
|
116
|
-
|
|
117
|
-
`resolve` and `set` require one concrete target. `find` is the exploratory
|
|
118
|
-
verb: it expands wildcards, unions, predicates, and ordinals into the concrete
|
|
119
|
-
matches you can inspect before choosing one to write.
|
|
120
|
-
|
|
121
|
-
## Subcommands
|
|
122
|
-
|
|
123
|
-
| Subcommand | Purpose |
|
|
124
|
-
| ----------------------- | ---------------------------------------------------------------------------- |
|
|
125
|
-
| `resolve <oc-path>` | Print the concrete match at the path (or "not found"). |
|
|
126
|
-
| `find <pattern>` | Enumerate matches for a wildcard / union / predicate path. |
|
|
127
|
-
| `set <oc-path> <value>` | Write a leaf or insertion target at a concrete path. Supports `--dry-run`. |
|
|
128
|
-
| `validate <oc-path>` | Parse-only; print structural breakdown (file / section / item / field). |
|
|
129
|
-
| `emit <file>` | Round-trip a file through `parseXxx` + `emitXxx` (byte-fidelity diagnostic). |
|
|
130
|
-
|
|
131
|
-
## Global flags
|
|
132
|
-
|
|
133
|
-
| Flag | Purpose |
|
|
134
|
-
| --------------- | ------------------------------------------------------------------------ |
|
|
135
|
-
| `--cwd <dir>` | Resolve the file slot against this directory (default: `process.cwd()`). |
|
|
136
|
-
| `--file <path>` | Override the file slot's resolved path (absolute access). |
|
|
137
|
-
| `--json` | Force JSON output (default when stdout is not a TTY). |
|
|
138
|
-
| `--human` | Force human output (default when stdout is a TTY). |
|
|
139
|
-
| `--dry-run` | (only on `set`) print the bytes that would be written without writing. |
|
|
140
|
-
| `--diff` | (with `set --dry-run`) print a unified diff instead of the full bytes. |
|
|
141
|
-
|
|
142
|
-
## `oc://` syntax
|
|
143
|
-
|
|
144
|
-
```
|
|
145
|
-
oc://FILE/SECTION/ITEM/FIELD?session=SCOPE
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Slot rules: `field` requires `item`, and `item` requires `section`. Across all
|
|
149
|
-
four slots:
|
|
150
|
-
|
|
151
|
-
- **Quoted segments** — `"a/b.c"` survives `/` and `.` separators.
|
|
152
|
-
Content is byte-literal; `"` and `\` are not allowed inside quotes.
|
|
153
|
-
The file slot is also quote-aware: `oc://"skills/email-drafter"/Tools/$last`
|
|
154
|
-
treats `skills/email-drafter` as a single file path.
|
|
155
|
-
- **Predicates** — `[k=v]`, `[k!=v]`, `[k<v]`, `[k<=v]`, `[k>v]`,
|
|
156
|
-
`[k>=v]`. Numeric ops require both sides to coerce to finite numbers.
|
|
157
|
-
- **Unions** — `{a,b,c}` matches any of the alternatives.
|
|
158
|
-
- **Wildcards** — `*` (single sub-segment) and `**` (zero-or-more,
|
|
159
|
-
recursive). `find` accepts these; `resolve` and `set` reject them as
|
|
160
|
-
ambiguous.
|
|
161
|
-
- **Positional** — `$first` / `$last` resolve to the first / last index or
|
|
162
|
-
declared key.
|
|
163
|
-
- **Ordinal** — `#N` for Nth match by document order.
|
|
164
|
-
- **Insertion markers** — `+`, `+key`, `+nnn` for keyed / indexed
|
|
165
|
-
insertion (use with `set`).
|
|
166
|
-
- **Session scope** — `?session=cron-daily` etc. Orthogonal to slot
|
|
167
|
-
nesting. Session values are raw, not percent-decoded; they may not contain
|
|
168
|
-
control characters or reserved query delimiters (`?`, `&`, `%`).
|
|
169
|
-
|
|
170
|
-
Reserved characters (`?`, `&`, `%`) outside quoted, predicate, or union
|
|
171
|
-
segments are rejected. Control characters (U+0000-U+001F, U+007F) are rejected
|
|
172
|
-
anywhere, including the `session` query value.
|
|
173
|
-
|
|
174
|
-
`formatOcPath(parseOcPath(path)) === path` is guaranteed for canonical paths.
|
|
175
|
-
Non-canonical query parameters are ignored except for the first non-empty
|
|
176
|
-
`session=` value.
|
|
177
|
-
|
|
178
|
-
## Addressing by file kind
|
|
179
|
-
|
|
180
|
-
| Kind | Addressing model |
|
|
181
|
-
| ----------------- | --------------------------------------------------------------------------------------------------- |
|
|
182
|
-
| Markdown | H2 sections by slug, bullet items by slug or `#N`, frontmatter via `[frontmatter]`. |
|
|
183
|
-
| JSONC/JSON | Object keys and array indexes; dots split nested sub-segments unless quoted. |
|
|
184
|
-
| JSONL | Top-level line addresses (`L1`, `L2`, `$first`, `$last`), then JSONC-style descent inside the line. |
|
|
185
|
-
| YAML/YML/.lobster | Map keys and sequence indexes; comments and flow style are handled by the YAML document API. |
|
|
186
|
-
|
|
187
|
-
`resolve` returns a structured match: `root`, `node`, `leaf`, or
|
|
188
|
-
`insertion-point`, with a 1-based line number. Leaf values are surfaced as text
|
|
189
|
-
plus a `leafType` so plugin authors can render previews without depending on
|
|
190
|
-
the per-kind AST shape.
|
|
191
|
-
|
|
192
|
-
## Mutation contract
|
|
193
|
-
|
|
194
|
-
`set` writes one concrete target:
|
|
195
|
-
|
|
196
|
-
- Markdown frontmatter values and `- key: value` item fields are string leaves.
|
|
197
|
-
Markdown insertions append sections, frontmatter keys, or section items and
|
|
198
|
-
render a canonical markdown shape for the changed file.
|
|
199
|
-
- JSONC leaf writes coerce the string value to the existing leaf type
|
|
200
|
-
(`string`, finite `number`, `true`/`false`, or `null`). Use `--value-json`
|
|
201
|
-
when a JSONC/JSON/JSONL leaf replacement should parse `<value>` as JSON and
|
|
202
|
-
may change shape, such as replacing a string SecretRef shorthand with an
|
|
203
|
-
object. JSONC object and array insertions parse `<value>` as JSON and use the
|
|
204
|
-
`jsonc-parser` edit path for ordinary leaf writes, preserving comments and
|
|
205
|
-
nearby formatting.
|
|
206
|
-
- JSONL leaf writes coerce like JSONC inside a line. Whole-line replacement and
|
|
207
|
-
append parse `<value>` as JSON. Rendered JSONL preserves the file's dominant
|
|
208
|
-
LF/CRLF line-ending convention.
|
|
209
|
-
- YAML leaf writes coerce to the existing scalar type (`string`, finite
|
|
210
|
-
`number`, `true`/`false`, or `null`). YAML insertions use the bundled
|
|
211
|
-
`yaml` package's document API for map/sequence updates. Malformed YAML
|
|
212
|
-
documents with parser errors are refused before mutation with `parse-error`.
|
|
213
|
-
|
|
214
|
-
Use `--dry-run` before user-visible writes when the exact bytes matter. The
|
|
215
|
-
substrate preserves byte-identical output for parse/emit round-trips, but a
|
|
216
|
-
mutation can canonicalize the edited region or file depending on kind.
|
|
217
|
-
Add `--diff` when you want the preview as a focused before/after patch instead
|
|
218
|
-
of the full rendered file.
|
|
219
|
-
|
|
220
|
-
## Examples
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
# Validate a path (no filesystem access)
|
|
224
|
-
fengming path validate 'oc://AGENTS.md/Tools/$last/risk'
|
|
225
|
-
|
|
226
|
-
# Read a leaf
|
|
227
|
-
fengming path resolve 'oc://gateway.jsonc/version'
|
|
228
|
-
|
|
229
|
-
# Wildcard search
|
|
230
|
-
fengming path find 'oc://session.jsonl/*/event' --file ./logs/session.jsonl
|
|
231
|
-
|
|
232
|
-
# Dry-run a write
|
|
233
|
-
fengming path set 'oc://gateway.jsonc/version' '2.0' --dry-run
|
|
234
|
-
|
|
235
|
-
# Dry-run a write as a unified diff
|
|
236
|
-
fengming path set 'oc://gateway.jsonc/version' '2.0' --dry-run --diff
|
|
237
|
-
|
|
238
|
-
# Apply the write
|
|
239
|
-
fengming path set 'oc://gateway.jsonc/version' '2.0'
|
|
240
|
-
|
|
241
|
-
# Byte-fidelity round-trip (diagnostic)
|
|
242
|
-
fengming path emit ./AGENTS.md
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
More grammar examples:
|
|
246
|
-
|
|
247
|
-
```bash
|
|
248
|
-
# Quote keys containing / or .
|
|
249
|
-
fengming path resolve 'oc://config.jsonc/agents.defaults.models/"anthropic/claude-opus-4-7"/alias'
|
|
250
|
-
|
|
251
|
-
# Deep JSON/JSONC paths can use slash segments; they normalize to dotted subsegments
|
|
252
|
-
fengming path set 'oc://fengming.json/agents/list/0/tools/exec/security' 'allowlist' --dry-run
|
|
253
|
-
|
|
254
|
-
# Replace a JSONC leaf with a parsed object
|
|
255
|
-
fengming path set 'oc://fengming.json/gateway/auth/token' '{"source":"file","provider":"secrets","id":"/test"}' --value-json --dry-run
|
|
256
|
-
|
|
257
|
-
# Predicate search over JSONC children
|
|
258
|
-
fengming path find 'oc://config.jsonc/plugins/[enabled=true]/id'
|
|
259
|
-
|
|
260
|
-
# Insert into a JSONC array
|
|
261
|
-
fengming path set 'oc://config.jsonc/items/+1' '{"id":"new","enabled":true}' --dry-run
|
|
262
|
-
|
|
263
|
-
# Insert a JSONC object key
|
|
264
|
-
fengming path set 'oc://config.jsonc/plugins/+github' '{"enabled":true}' --dry-run
|
|
265
|
-
|
|
266
|
-
# Append a JSONL event
|
|
267
|
-
fengming path set 'oc://session.jsonl/+' '{"event":"checkpoint","ok":true}' --file ./logs/session.jsonl
|
|
268
|
-
|
|
269
|
-
# Resolve the last JSONL value line
|
|
270
|
-
fengming path resolve 'oc://session.jsonl/$last/event' --file ./logs/session.jsonl
|
|
271
|
-
|
|
272
|
-
# Resolve a YAML workflow step
|
|
273
|
-
fengming path resolve 'oc://workflow.yaml/steps/0/id'
|
|
274
|
-
|
|
275
|
-
# Update a YAML scalar
|
|
276
|
-
fengming path set 'oc://workflow.yaml/steps/$last/id' 'classify-renamed' --dry-run
|
|
277
|
-
|
|
278
|
-
# Address markdown frontmatter
|
|
279
|
-
fengming path resolve 'oc://AGENTS.md/[frontmatter]/name'
|
|
280
|
-
|
|
281
|
-
# Insert markdown frontmatter
|
|
282
|
-
fengming path set 'oc://AGENTS.md/[frontmatter]/+description' 'Agent instructions' --dry-run
|
|
283
|
-
|
|
284
|
-
# Find markdown item fields
|
|
285
|
-
fengming path find 'oc://SKILL.md/Tools/*/send_email'
|
|
286
|
-
|
|
287
|
-
# Validate a session-scoped path
|
|
288
|
-
fengming path validate 'oc://AGENTS.md/Tools/$last/risk?session=cron-daily'
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Recipes by file kind
|
|
292
|
-
|
|
293
|
-
The same five verbs work across kinds; the addressing scheme dispatches on the
|
|
294
|
-
file extension. The examples below use the fixtures from the PR description.
|
|
295
|
-
|
|
296
|
-
### Markdown
|
|
297
|
-
|
|
298
|
-
```text
|
|
299
|
-
<!-- frontmatter.md -->
|
|
300
|
-
---
|
|
301
|
-
name: drafter
|
|
302
|
-
description: email drafting agent
|
|
303
|
-
tier: core
|
|
304
|
-
---
|
|
305
|
-
## Tools
|
|
306
|
-
- gh: GitHub CLI
|
|
307
|
-
- curl: HTTP client
|
|
308
|
-
- send_email: enabled
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
$ fengming path resolve 'oc://x.md/[frontmatter]/tier' --file frontmatter.md --human
|
|
313
|
-
leaf @ L4: "core" (string)
|
|
314
|
-
|
|
315
|
-
$ fengming path resolve 'oc://x.md/tools/gh/gh' --file frontmatter.md --human
|
|
316
|
-
leaf @ L9: "GitHub CLI" (string)
|
|
317
|
-
|
|
318
|
-
$ fengming path find 'oc://x.md/tools/*' --file frontmatter.md --human
|
|
319
|
-
3 matches for oc://x.md/tools/*:
|
|
320
|
-
oc://x.md/tools/gh → node @ L9 [md-item]
|
|
321
|
-
oc://x.md/tools/curl → node @ L10 [md-item]
|
|
322
|
-
oc://x.md/tools/send-email → node @ L11 [md-item]
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
The `[frontmatter]` predicate addresses the YAML frontmatter block; `tools`
|
|
326
|
-
matches the `## Tools` heading via slug, and item leaves keep their slug form
|
|
327
|
-
even when the source uses underscores (`send_email` → `send-email`).
|
|
328
|
-
|
|
329
|
-
### JSONC
|
|
330
|
-
|
|
331
|
-
```text
|
|
332
|
-
// config.jsonc
|
|
333
|
-
{
|
|
334
|
-
"plugins": {
|
|
335
|
-
"github": {"enabled": true, "role": "vcs"},
|
|
336
|
-
"slack": {"enabled": false, "role": "chat"}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
$ fengming path resolve 'oc://config.jsonc/plugins/github/enabled' --file config.jsonc --human
|
|
343
|
-
leaf @ L4: "true" (boolean)
|
|
344
|
-
|
|
345
|
-
$ fengming path set 'oc://config.jsonc/plugins/slack/enabled' 'true' --file config.jsonc --dry-run
|
|
346
|
-
--dry-run: would write 142 bytes to /…/config.jsonc
|
|
347
|
-
{
|
|
348
|
-
"plugins": {
|
|
349
|
-
"github": {"enabled": true, "role": "vcs"},
|
|
350
|
-
"slack": {"enabled": true, "role": "chat"}
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
JSONC edits go through `jsonc-parser`, so comments and whitespace survive a
|
|
356
|
-
`set`. Run with `--dry-run` first to inspect the bytes before committing.
|
|
357
|
-
|
|
358
|
-
### JSONL
|
|
359
|
-
|
|
360
|
-
```text
|
|
361
|
-
{"event":"start","userId":"u1","ts":1}
|
|
362
|
-
{"event":"action","userId":"u1","ts":2}
|
|
363
|
-
{"event":"end","userId":"u1","ts":3}
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
$ fengming path find 'oc://session.jsonl/[event=action]/userId' --file session.jsonl --human
|
|
368
|
-
1 match for oc://session.jsonl/[event=action]/userId:
|
|
369
|
-
oc://session.jsonl/L2/userId → leaf @ L2: "u1" (string)
|
|
370
|
-
|
|
371
|
-
$ fengming path resolve 'oc://session.jsonl/L2/ts' --file session.jsonl --human
|
|
372
|
-
leaf @ L2: "2" (number)
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
Each line is a record. Address by predicate (`[event=action]`) when you do not
|
|
376
|
-
know the line number, or by the canonical `LN` segment when you do.
|
|
377
|
-
|
|
378
|
-
### YAML
|
|
379
|
-
|
|
380
|
-
```text
|
|
381
|
-
# workflow.yaml
|
|
382
|
-
name: inbox-triage
|
|
383
|
-
steps:
|
|
384
|
-
- id: fetch
|
|
385
|
-
command: gmail.search
|
|
386
|
-
- id: classify
|
|
387
|
-
command: fengming.invoke
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
```bash
|
|
391
|
-
$ fengming path resolve 'oc://workflow.yaml/steps/0/id' --file workflow.yaml --human
|
|
392
|
-
leaf @ L3: "fetch" (string)
|
|
393
|
-
|
|
394
|
-
$ fengming path set 'oc://workflow.yaml/steps/$last/id' 'classify-renamed' --file workflow.yaml --dry-run
|
|
395
|
-
--dry-run: would write 99 bytes to /…/workflow.yaml
|
|
396
|
-
name: inbox-triage
|
|
397
|
-
steps:
|
|
398
|
-
- id: fetch
|
|
399
|
-
command: gmail.search
|
|
400
|
-
- id: classify-renamed
|
|
401
|
-
command: fengming.invoke
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
YAML uses the `yaml` package's `Document` API rather than a hand-rolled parser,
|
|
405
|
-
so ordinary parse/emit round-trips preserve comments and authoring shape while
|
|
406
|
-
resolved paths use the same map-key / sequence-index model as JSONC. The same
|
|
407
|
-
adapter handles `.yaml`, `.yml`, and `.lobster` files.
|
|
408
|
-
|
|
409
|
-
## Subcommand reference
|
|
410
|
-
|
|
411
|
-
### `resolve <oc-path>`
|
|
412
|
-
|
|
413
|
-
Read a single leaf or node. Wildcards are rejected — use `find` for those.
|
|
414
|
-
Exits `0` on a match, `1` on a clean miss, `2` on a parse error or refused
|
|
415
|
-
pattern.
|
|
416
|
-
|
|
417
|
-
```bash
|
|
418
|
-
fengming path resolve 'oc://AGENTS.md/tools/gh/risk' --human
|
|
419
|
-
fengming path resolve 'oc://gateway.jsonc/server/port' --json
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
### `find <pattern>`
|
|
423
|
-
|
|
424
|
-
Enumerate every match for a wildcard / predicate / union pattern. Exits `0`
|
|
425
|
-
on at least one match, `1` on zero. File-slot wildcards are rejected with
|
|
426
|
-
`OC_PATH_FILE_WILDCARD_UNSUPPORTED` — pass a concrete file (multi-file
|
|
427
|
-
globbing is a follow-up feature).
|
|
428
|
-
|
|
429
|
-
```bash
|
|
430
|
-
fengming path find 'oc://AGENTS.md/tools/**/risk'
|
|
431
|
-
fengming path find 'oc://session.jsonl/[event=action]/userId'
|
|
432
|
-
fengming path find 'oc://config.jsonc/plugins/{github,slack}/enabled'
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### `set <oc-path> <value>`
|
|
436
|
-
|
|
437
|
-
Write a leaf. Pair with `--dry-run` to preview the bytes that would be
|
|
438
|
-
written without touching the file. Add `--diff` for a unified diff preview.
|
|
439
|
-
Exits `0` on a successful write, `1` if the substrate refuses (for example, a
|
|
440
|
-
sentinel guard hit), `2` on parse errors.
|
|
441
|
-
|
|
442
|
-
```bash
|
|
443
|
-
fengming path set 'oc://gateway.jsonc/version' '2.0' --dry-run
|
|
444
|
-
fengming path set 'oc://gateway.jsonc/version' '2.0' --dry-run --diff
|
|
445
|
-
fengming path set 'oc://gateway.jsonc/version' '2.0'
|
|
446
|
-
fengming path set 'oc://AGENTS.md/Tools/+gh/risk' 'low'
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
The `+key` insertion marker creates the named child if it does not already
|
|
450
|
-
exist; `+nnn` and bare `+` work for indexed and append insertion respectively.
|
|
451
|
-
|
|
452
|
-
### `validate <oc-path>`
|
|
453
|
-
|
|
454
|
-
Parse-only check. No filesystem access. Useful when you want to confirm a
|
|
455
|
-
template path is well-formed before substituting variables, or when you want
|
|
456
|
-
the structural breakdown for debugging:
|
|
457
|
-
|
|
458
|
-
```bash
|
|
459
|
-
$ fengming path validate 'oc://AGENTS.md/tools/gh' --human
|
|
460
|
-
valid: oc://AGENTS.md/tools/gh
|
|
461
|
-
file: AGENTS.md
|
|
462
|
-
section: tools
|
|
463
|
-
item: gh
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
Exits `0` when valid, `1` when invalid (with a structured `code` and
|
|
467
|
-
`message`), `2` on argument errors.
|
|
468
|
-
|
|
469
|
-
### `emit <file>`
|
|
470
|
-
|
|
471
|
-
Round-trip a file through the per-kind parser and emitter. The output should
|
|
472
|
-
be byte-identical to the input on a sound file — divergence indicates a
|
|
473
|
-
parser bug or a sentinel hit. Useful for debugging substrate behavior on
|
|
474
|
-
real-world inputs.
|
|
475
|
-
|
|
476
|
-
```bash
|
|
477
|
-
fengming path emit ./AGENTS.md
|
|
478
|
-
fengming path emit ./gateway.jsonc --json
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
## Exit codes
|
|
482
|
-
|
|
483
|
-
| Code | Meaning |
|
|
484
|
-
| ---- | -------------------------------------------------------------------------- |
|
|
485
|
-
| `0` | Success. (`resolve` / `find`: at least one match. `set`: write succeeded.) |
|
|
486
|
-
| `1` | No match, or `set` rejected by the substrate (no system-level error). |
|
|
487
|
-
| `2` | Argument or parse error. |
|
|
488
|
-
|
|
489
|
-
## Output mode
|
|
490
|
-
|
|
491
|
-
`fengming path` is TTY-aware: human-readable output on a terminal, JSON when
|
|
492
|
-
stdout is piped or redirected. `--json` and `--human` override the
|
|
493
|
-
auto-detection.
|
|
494
|
-
|
|
495
|
-
## Notes
|
|
496
|
-
|
|
497
|
-
- `set` writes bytes through the substrate's emit path, which applies the
|
|
498
|
-
redaction-sentinel guard automatically. A leaf carrying
|
|
499
|
-
`__FENGMING_REDACTED__` (verbatim or as a substring) is refused at write
|
|
500
|
-
time.
|
|
501
|
-
- JSONC parsing and leaf edits use the plugin-local `jsonc-parser`
|
|
502
|
-
dependency, so comments and formatting are preserved on ordinary leaf
|
|
503
|
-
writes instead of going through a hand-rolled parser/re-render path.
|
|
504
|
-
- `path` does not know about LKG. If the file is LKG-tracked, the next
|
|
505
|
-
observe call decides whether to promote / recover. `set --batch` for
|
|
506
|
-
atomic multi-set through the LKG promote/recover lifecycle is planned
|
|
507
|
-
alongside the LKG-recovery substrate.
|
|
508
|
-
|
|
509
|
-
## Related
|
|
510
|
-
|
|
511
|
-
- [CLI reference](/cli)
|