{
  "id": "desktop",
  "kind": "helper",
  "version": "1.0.2",
  "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.2_amd64.deb",
      "os": "linux",
      "arch": "x86_64",
      "sha256": "a5f173503db56c5213a5d586cd47505054e5ed9283c19792a7514f6b7e988f16",
      "size": 1527370,
      "installer_type": "deb",
      "update_signature": "A71SwixFWODbOSuEz1HNcm+KYtEjw52tpzAhHrgRWPwYOEz18Bd+ebWxZRWg2IqXdmMflI+A3yupMKvwLC56BA=="
    },
    {
      "filename": "hecate-lampad-desktop_1.0.2_macos-aarch64.pkg",
      "os": "macos",
      "arch": "aarch64",
      "sha256": "b31fa62e2eaf364d92923bdf518dddff77ec15cfd39609e0fb20ae747c6c3ab7",
      "size": 1780468,
      "installer_type": "pkg",
      "update_signature": "uskXO7a7REF3s7OYvqsd/n+lIA+eLPFvu1q6dxS+aH/6vysBi1t1yLKJsuJ6OKO8Fh5YQqhrY5Prxme6s3eIDA=="
    },
    {
      "filename": "hecate-lampad-desktop_1.0.2_windows-amd64.msi",
      "os": "windows",
      "arch": "x86_64",
      "sha256": "50d1c08a86686ff5fdc43f3730204da1834cbeaa7dd3877bf2097de146bf1a04",
      "size": 4937216,
      "installer_type": "msi",
      "update_signature": "Chz/kMRT3FsKzRmfVS0//eRIp0uql9zbQ4tf3BKlDnS+3dEM7DtEL7aQ5voFBK18sWy18yz5CnttKvBYkK1HCA=="
    }
  ],
  "helper": {
    "binary": "hecate-lampad-desktop",
    "privilege": "user",
    "socket": "desktop.sock",
    "tags": [
      "desktop"
    ]
  },
  "depends_on": [
    {
      "id": "agent",
      "min_version": "1.0.0"
    }
  ]
}
