{
  "id": "desktop",
  "kind": "helper",
  "version": "1.0.0",
  "platforms": [
    "linux",
    "windows",
    "macos"
  ],
  "commands": [
    {
      "name": "desktop.info",
      "description": "Probe desktop helper capability, monitors, and session state",
      "risk_level": "low",
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "requires_approval": false
    },
    {
      "name": "desktop.screenshot",
      "description": "Capture a display or region as a PNG artifact",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "display": {
            "minimum": 0,
            "type": "integer"
          },
          "region": {
            "additionalProperties": false,
            "properties": {
              "height": {
                "type": "number"
              },
              "width": {
                "type": "number"
              },
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y",
              "width",
              "height"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.move",
      "description": "Move the mouse cursor",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "display": {
            "minimum": 0,
            "type": "integer"
          },
          "relative": {
            "type": "boolean"
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.click",
      "description": "Click the mouse",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "button": {
            "enum": [
              "left",
              "right",
              "middle"
            ],
            "type": "string"
          },
          "count": {
            "maximum": 3,
            "minimum": 1,
            "type": "integer"
          },
          "display": {
            "minimum": 0,
            "type": "integer"
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.scroll",
      "description": "Scroll the mouse wheel",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "delta": {
            "type": "integer"
          },
          "display": {
            "minimum": 0,
            "type": "integer"
          },
          "dx": {
            "type": "integer"
          },
          "dy": {
            "type": "integer"
          },
          "x": {
            "type": "number"
          },
          "y": {
            "type": "number"
          }
        },
        "required": [
          "x",
          "y"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.drag",
      "description": "Drag the mouse from one point to another",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "button": {
            "enum": [
              "left",
              "right",
              "middle"
            ],
            "type": "string"
          },
          "display": {
            "minimum": 0,
            "type": "integer"
          },
          "duration_ms": {
            "minimum": 0,
            "type": "integer"
          },
          "from": {
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y"
            ],
            "type": "object"
          },
          "to": {
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y"
            ],
            "type": "object"
          }
        },
        "required": [
          "from",
          "to"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.type",
      "description": "Type Unicode text",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "delay_ms": {
            "minimum": 0,
            "type": "integer"
          },
          "text": {
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.key",
      "description": "Press, release, or tap a key combo",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "action": {
            "enum": [
              "press",
              "release",
              "tap"
            ],
            "type": "string"
          },
          "key": {
            "minLength": 1,
            "type": "string"
          },
          "modifiers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.clipboard.get",
      "description": "Read clipboard text or image",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "format": {
            "enum": [
              "text",
              "image"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.clipboard.set",
      "description": "Write clipboard text or image",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "artifact_id": {
            "format": "uuid",
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.session.open",
      "description": "Open a persistent desktop capture session",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "display": {
            "minimum": 0,
            "type": "integer"
          },
          "format": {
            "enum": [
              "png",
              "jpeg"
            ],
            "type": "string"
          },
          "fps": {
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "max_duration_secs": {
            "maximum": 3600,
            "minimum": 30,
            "type": "integer"
          },
          "session_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.session.frame",
      "description": "Fetch the latest frame from a desktop session",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "session_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "session_id"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.session.input",
      "description": "Send a batch of input events to a desktop session",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "events": {
            "items": {
              "type": "object"
            },
            "maxItems": 64,
            "minItems": 1,
            "type": "array"
          },
          "session_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "events"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.session.close",
      "description": "Close a desktop capture session",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "session_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "session_id"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.app.launch",
      "description": "Launch an application in the GUI session",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "app": {
            "type": "string"
          },
          "args": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "cwd": {
            "type": "string"
          },
          "wait_window_ms": {
            "type": "integer"
          }
        },
        "required": [
          "app"
        ],
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.window.list",
      "description": "List visible windows in the GUI session",
      "risk_level": "low",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "include_hidden": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "requires_approval": false
    },
    {
      "name": "desktop.window.focus",
      "description": "Focus a window by id, title, or app",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "app": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "requires_approval": true
    },
    {
      "name": "desktop.window.wait",
      "description": "Wait until a matching window appears or is focused",
      "risk_level": "low",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "app": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "state": {
            "enum": [
              "visible",
              "focused"
            ],
            "type": "string"
          },
          "timeout_ms": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "requires_approval": false
    },
    {
      "name": "desktop.shell.run",
      "description": "Run an explicit argv process inside the GUI user session",
      "risk_level": "high",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "argv": {
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          },
          "cwd": {
            "type": "string"
          },
          "env": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "timeout_secs": {
            "type": "integer"
          }
        },
        "required": [
          "argv"
        ],
        "type": "object"
      },
      "requires_approval": true
    }
  ],
  "mcp": {
    "skills": [
      "desktop-commands"
    ],
    "rules": []
  },
  "artifacts": [
    {
      "filename": "hecate-lampad-desktop_1.0.0_amd64.deb",
      "os": "linux",
      "arch": "x86_64",
      "sha256": "55a9d5054a36032dfdbd8048f17a644bb4abcd51d76377a1f496bd13a226ff65",
      "size": 1527924,
      "installer_type": "deb",
      "update_signature": "GneeZ7D2w9NExqtuGTUbKXip53cW24yjaRsLBcZ0/RIsIrv6ktNX3wpYV6YR5N9HWdELvYuXg25GhofODO19DA=="
    },
    {
      "filename": "hecate-lampad-desktop_1.0.0_macos-aarch64.pkg",
      "os": "macos",
      "arch": "aarch64",
      "sha256": "141a715953f8fb35fe32a18c38ce4a5457599e2adfd8427ce82f9d5e873d3160",
      "size": 1780665,
      "installer_type": "pkg",
      "update_signature": "adpgwFFl4ZLaTazbMl2pSexX8D7lDbkhIZUBcepwyIKVxj/AxZIZ1jzyeevMIebtUCTxyRsVYWptW5Pjj0+MBw=="
    },
    {
      "filename": "hecate-lampad-desktop_1.0.0_windows-amd64.msi",
      "os": "windows",
      "arch": "x86_64",
      "sha256": "45fceac1c501b3443f257987bac0ac861e213341d3a0e76b534cf98d9adc494e",
      "size": 4941824,
      "installer_type": "msi",
      "update_signature": "RjwLO5Sb33InOAnuy2zz4N2jfJdDxl9b1tzSxnA5iX+YfU5f/Lxatjk2ctJ6jjIZwP8r9gHzw9lMEcyY4mqkAg=="
    }
  ],
  "helper": {
    "binary": "hecate-lampad-desktop",
    "privilege": "user",
    "socket": "desktop.sock",
    "tags": [
      "desktop"
    ]
  },
  "depends_on": [
    {
      "id": "agent",
      "min_version": "1.0.0"
    }
  ]
}
