Align the openclaw side of the dynamic-* tool family with the new Plexum design (decision #31, 2026-06-04 revision): - trim-tool-result → dynamic-trim (same on-wire schema; same semantics) - Drop list-tool-results entirely. Agents find the opaque tool_call_id by reading their own prior assistant message's toolCall block id instead of querying a separate "directory" tool. This removes a workflow-step prerequisite and matches how Anthropic-shaped APIs surface tool_use ids to the model anyway. - On agent_end drain, ALSO self-compact the dynamic-trim's own tool_use.input: rewrite to {tool_call_id, _self_compacted: true}. Without this the bulky `replacement` text sits duplicated — once in the rewritten target tool_result, once in dynamic-trim's call input. Picks up the selfCallId from openclaw's execute(toolCallId, ...) first arg (was previously discarded as _id). Cross-runtime contract: tool name, input schema, return shape, and sentinel prefix ("[trimmed by self] ") match Plexum's dynamic-trim in internal/dynmem/trim.go + internal/persistence/trim.go. Sim e2e tested: dynamic-trim queues, agent_end drain rewrites both the target tool_result content AND the trim call's tool_use input. No takeover errors. trimmed_bytes positive on real workloads.
30 lines
714 B
JSON
30 lines
714 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"
|
|
]
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": { "type": "boolean", "default": true },
|
|
"secretMgrPath": { "type": "string", "default": "" },
|
|
"openclawProfilePath": { "type": "string", "default": "" },
|
|
"proxyAllowlist": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"default": []
|
|
}
|
|
}
|
|
}
|
|
}
|