Implements the openclaw side of Plexum decision #37: agent-driven per-session whitelist of which tools the model sees. Cross-runtime aligned with Plexum's host implementation (same tool names, same input schemas, takes-effect-next-turn). New surface: - tools/dynamic-tools-cache.ts: Catalog (in-memory map), Cache file (atomic tmp+rename at <openclaw>/agents/<id>/sessions/<sid>/dynamic-tools-cache.json), 4 tool factories (list/search/cache/evict), allowTool gate, installGlobalApi for globalThis.__padded with buffer-drain - index.ts: install __padded early; register the 4 cache tools as factories wrapping ctx into execute - openclaw.plugin.json contracts.tools += 4 names Other Hangman-Lab plugins (Fabric / HF / Dialectic) opt in to the gate by wrapping their registerTool calls (separate commits in those repos). Built-in openclaw tools and non-opt-in plugins remain always-on. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
34 lines
830 B
JSON
34 lines
830 B
JSON
{
|
|
"id": "padded-cell",
|
|
"name": "PaddedCell",
|
|
"description": "Secure secret management, agent identity management, safe execution, and coordinated agent restart",
|
|
"activation": {
|
|
"onStartup": true
|
|
},
|
|
"contracts": {
|
|
"tools": [
|
|
"pcexec",
|
|
"proxy-pcexec",
|
|
"safe_restart",
|
|
"dynamic-trim",
|
|
"dynamic-list-tools",
|
|
"dynamic-search-tools",
|
|
"dynamic-cache-tools",
|
|
"dynamic-evict-tools"
|
|
]
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": { "type": "boolean", "default": true },
|
|
"secretMgrPath": { "type": "string", "default": "" },
|
|
"openclawProfilePath": { "type": "string", "default": "" },
|
|
"proxyAllowlist": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"default": []
|
|
}
|
|
}
|
|
}
|
|
}
|