{
  "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.",
  "contracts": {
    "tools": ["file_fetch", "dir_list", "dir_fetch", "file_write"]
  },
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "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
            }
          }
        }
      }
    }
  }
}
