mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 12:56:01 -06:00
424521a3d3
* fix(file-transfer): bind standing approvals exactly * fix(file-transfer): keep validator error lint-safe * fix(file-transfer): bind directory listing target before I/O * fix(file-transfer): keep dir list preflight type stable * test(file-transfer): split directory listing policy coverage * fix(file-transfer): bind final node effects * fix(file-transfer): close migration and archive gaps * fix(file-transfer): bind standing grants before preflight * fix(file-transfer): bind directory listings to checked target * fix(file-transfer): bind final effects to filesystem identity * test(file-transfer): prove exact approval transport * fix(file-transfer): keep reapproval prompts path-scoped * chore(config): refresh generated baselines
95 lines
2.7 KiB
JSON
95 lines
2.7 KiB
JSON
{
|
|
"id": "file-transfer",
|
|
"activation": {
|
|
"onStartup": true
|
|
},
|
|
"enabledByDefault": true,
|
|
"name": "File Transfer",
|
|
"description": "Fetch, list, and write files on paired nodes via dedicated node commands. Bypasses bash stdout truncation by using base64 over node.invoke for binaries up to 16 MB.",
|
|
"cliCommands": [
|
|
{
|
|
"name": "file-transfer",
|
|
"description": "Review file-transfer standing approvals",
|
|
"hasSubcommands": true
|
|
}
|
|
],
|
|
"doctorContract": {
|
|
"configRepair": true
|
|
},
|
|
"contracts": {
|
|
"tools": ["file_fetch", "dir_list", "dir_fetch", "file_write"]
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"policyVersion": {
|
|
"type": "integer",
|
|
"const": 2
|
|
},
|
|
"literalGrants": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["nodeId", "command", "requestedPath", "canonicalPath"],
|
|
"properties": {
|
|
"nodeId": { "type": "string", "minLength": 1 },
|
|
"command": {
|
|
"type": "string",
|
|
"enum": ["file.fetch", "dir.list", "dir.fetch", "file.write"]
|
|
},
|
|
"requestedPath": { "type": "string", "minLength": 1 },
|
|
"canonicalPath": { "type": "string", "minLength": 1 }
|
|
}
|
|
}
|
|
},
|
|
"pendingReapprovals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["selector", "kind", "path"],
|
|
"properties": {
|
|
"selector": { "type": "string", "minLength": 1 },
|
|
"kind": { "type": "string", "enum": ["read", "write"] },
|
|
"path": { "type": "string", "minLength": 1 }
|
|
}
|
|
}
|
|
},
|
|
"nodes": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"ask": {
|
|
"type": "string",
|
|
"enum": ["off", "on-miss", "always"]
|
|
},
|
|
"allowReadPaths": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
},
|
|
"allowWritePaths": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
},
|
|
"denyPaths": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
},
|
|
"maxBytes": {
|
|
"type": "number"
|
|
},
|
|
"followSymlinks": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|