openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
191 lines (190 loc) • 4.37 kB
JSON
{
"id": "file-transfer",
"categories": [
"documents-files"
],
"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"
]
},
"configGroups": [
{
"id": "standing-approvals",
"title": "Standing approvals",
"order": 10,
"properties": [
"policyVersion",
"literalGrants",
"pendingReapprovals"
]
},
{
"id": "node-file-policies",
"title": "Node file policies",
"order": 20,
"properties": [
"nodes"
]
}
],
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"workspaces": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": false,
"required": [
"nodeId",
"remoteRoot"
],
"properties": {
"nodeId": {
"type": "string",
"minLength": 1
},
"remoteRoot": {
"type": "string",
"pattern": "^/"
}
}
}
},
"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",
"file.stat",
"dir.list",
"dir.fetch",
"file.write",
"file.create"
]
},
"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
}
}
}
}
}
}
}