mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-25 00:37:43 +00:00
* feat: node-hosted plugins — dynamic tools, MCP servers, and skills Nodes become declarative plugin hosts: - node.pluginTools.update: node hosts publish plugin-registered agent tool descriptors; gateway materializes them as agent tools executing via node.invoke under the node command allowlist, with tools.effective invalidation and node online/offline removal. - Trusted paired-node descriptors: no gateway-side plugin registration required; gateway.nodes.pluginTools.enabled off-switch (default on); description/count caps; deterministic node-prefixed collision names. - Declarative node-hosted MCP: nodeHost.mcp.servers (McpServerConfig shape) starts MCP clients on the node host, publishes tools as pluginId node-mcp, executes via built-in mcp.tools.call.v1 with per-layer timeouts, failure isolation, and orphan-safe shutdown. No re-pairing when servers change. - Node-hosted skills: node.skills.update publishes ~/.openclaw/skills content (64 skills/64KB/512KB caps both sides); gateway merges them into the skills snapshot while connected and exec host=node is available, with node:// locators, node-prefixed collisions, disabled command dispatch, and gateway.nodes.skills.enabled + nodeHost.skills.enabled switches. - Security: node-supplied pluginIds cannot satisfy pluginId-scoped tool allowlists unless gateway-registered; reserved node-mcp id requires the core MCP descriptor shape; protocol registry kept out of public plugin-sdk dts. - E2E: pond harness proves publication, MCP round-trip, skills locator, and disconnect/reconnect for all three surfaces. * style: format node-plugin-tools test * fix(skills): keep status loader unfiltered when eligibility is passed skills.status started passing eligibility for the node-skill merge, which flipped loadWorkspaceSkillEntries into filtered mode and dropped disabled skills from status reports (QA plugin-lifecycle-hot-reload timeout). Status now merges node skills explicitly around an unfiltered load. Also: regen docs_map for new node docs sections; add the intentional node-host MCP onclose suppression to the lint-suppression allowlist. |
||
|---|---|---|
| .. | ||
| security | ||
| authentication.md | ||
| background-process.md | ||
| bonjour.md | ||
| bridge-protocol.md | ||
| cli-backends.md | ||
| config-agents.md | ||
| config-channels.md | ||
| config-tools.md | ||
| configuration-examples.md | ||
| configuration-reference.md | ||
| configuration.md | ||
| diagnostics.md | ||
| discovery.md | ||
| doctor.md | ||
| external-apps.md | ||
| gateway-lock.md | ||
| health.md | ||
| heartbeat.md | ||
| index.md | ||
| local-model-services.md | ||
| local-models.md | ||
| logging.md | ||
| multiple-gateways.md | ||
| network-model.md | ||
| openai-http-api.md | ||
| openresponses-http-api.md | ||
| openshell.md | ||
| opentelemetry.md | ||
| operator-scopes.md | ||
| pairing.md | ||
| prometheus.md | ||
| protocol.md | ||
| remote-gateway-readme.md | ||
| remote.md | ||
| restart-recovery.md | ||
| sandbox-vs-tool-policy-vs-elevated.md | ||
| sandboxing.md | ||
| secrets-plan-contract.md | ||
| secrets.md | ||
| tailscale.md | ||
| tools-invoke-http-api.md | ||
| troubleshooting.md | ||
| trusted-proxy-auth.md | ||