{
  "description": "Machine-readable index of UiPath.Terminal.Activities for agent / code-generation consumption. Mirrors the per-activity markdown docs under docs/activities/. Update both when adding or changing an activity.",
  "package": "UiPath.Terminal.Activities",
  "namespaceUri": "http://schemas.uipath.com/workflow/activities/terminal",
  "xamlPrefix": "uit",
  "activities": [
    {
      "xamlElement": "TerminalSession",
      "className": "UiPath.Terminal.Activities.TerminalSession",
      "displayName": "Terminal Session",
      "category": "App Integration.Terminals",
      "requiredScope": null,
      "requiredProperties": [],
      "optionalProperties": ["ConnectionString", "ExistingConnection", "OutputConnection", "CloseConnection", "SSHUserName", "SSHPassword", "TimeoutMS", "DelayMS", "ContinueOnError"],
      "outputProperties": ["OutputConnection"],
      "isContainer": true,
      "docPath": "activities/TerminalSession.md"
    },
    {
      "xamlElement": "TerminalGetText",
      "className": "UiPath.Terminal.Activities.TerminalGetText",
      "displayName": "Get Text",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": [],
      "optionalProperties": ["Text", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Text"],
      "isContainer": false,
      "docPath": "activities/GetText.md"
    },
    {
      "xamlElement": "TerminalGetField",
      "className": "UiPath.Terminal.Activities.TerminalGetField",
      "displayName": "Get Field",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": [],
      "optionalProperties": ["LabeledBy", "FollowedBy", "Index", "Text", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Text"],
      "isContainer": false,
      "docPath": "activities/GetField.md",
      "notes": "At least one of LabeledBy or FollowedBy must be set. Label-based field identification varies by provider — for cross-provider workflows prefer GetTextAtPosition or GetScreenArea."
    },
    {
      "xamlElement": "TerminalSetField",
      "className": "UiPath.Terminal.Activities.TerminalSetField",
      "displayName": "Set Field",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Text"],
      "optionalProperties": ["LabeledBy", "FollowedBy", "Index", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/SetField.md",
      "notes": "At least one of LabeledBy or FollowedBy must be set. Label-based field identification varies by provider — for cross-provider workflows prefer MoveCursor+SendKeys or SetFieldAtPosition."
    },
    {
      "xamlElement": "TerminalGetCursorPosition",
      "className": "UiPath.Terminal.Activities.TerminalGetCursorPosition",
      "displayName": "Get Cursor Position",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": [],
      "optionalProperties": ["Row", "Column", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Row", "Column"],
      "isContainer": false,
      "docPath": "activities/GetCursorPosition.md"
    },
    {
      "xamlElement": "TerminalSendControlKey",
      "className": "UiPath.Terminal.Activities.TerminalSendControlKey",
      "displayName": "Send Control Key",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Key"],
      "optionalProperties": ["TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/SendControlKey.md",
      "notes": "Key is an enum (ControlKey). Common values: Transmit (3270 enter), Return (VT enter), Tab, F1-F24."
    },
    {
      "xamlElement": "TerminalWaitScreenText",
      "className": "UiPath.Terminal.Activities.TerminalWaitScreenText",
      "displayName": "Wait Screen Text",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Text"],
      "optionalProperties": ["MatchCase", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/WaitScreenText.md",
      "defaults": { "TimeoutMS": 30000 }
    },
    {
      "xamlElement": "TerminalWaitFieldText",
      "className": "UiPath.Terminal.Activities.TerminalWaitFieldText",
      "displayName": "Wait Field Text",
      "category": "App Integration.Terminals",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Text"],
      "optionalProperties": ["LabeledBy", "FollowedBy", "Index", "MatchCase", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/WaitFieldText.md",
      "defaults": { "TimeoutMS": 30000 },
      "notes": "At least one of LabeledBy or FollowedBy must be set."
    },
    {
      "xamlElement": "TerminalMoveCursor",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalMoveCursor",
      "displayName": "Move Cursor",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column"],
      "optionalProperties": ["TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/MoveCursor.md"
    },
    {
      "xamlElement": "TerminalSendKeys",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalSendKeys",
      "displayName": "Send Keys",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Keys"],
      "optionalProperties": ["TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/SendKeys.md",
      "notes": "Plaintext only. Use SendKeysSecure for credentials."
    },
    {
      "xamlElement": "TerminalSendKeysSecure",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalSendKeysSecure",
      "displayName": "Send Keys Secure",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["SecureText"],
      "optionalProperties": ["TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/SendKeysSecure.md"
    },
    {
      "xamlElement": "TerminalWaitScreenReady",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalWaitScreenReady",
      "displayName": "Wait Screen Ready",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": [],
      "optionalProperties": ["TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/WaitScreenReady.md",
      "defaults": { "TimeoutMS": 30000, "DelayMS": 0 },
      "notes": "Always waits for READY regardless of WaitType. Avoid placing as the very first child after a fresh TLS connect — see TerminalSession DelayMS tuning."
    },
    {
      "xamlElement": "TerminalGetScreenArea",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalGetScreenArea",
      "displayName": "Get Screen Area",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column", "EndRow", "EndColumn"],
      "optionalProperties": ["Text", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Text"],
      "isContainer": false,
      "docPath": "activities/GetScreenArea.md"
    },
    {
      "xamlElement": "TerminalGetTextAtPosition",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalGetTextAtPosition",
      "displayName": "Get Text at Position",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column"],
      "optionalProperties": ["Length", "Text", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Text"],
      "isContainer": false,
      "docPath": "activities/GetTextAtPosition.md"
    },
    {
      "xamlElement": "TerminalGetFieldAtPosition",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalGetFieldAtPosition",
      "displayName": "Get Field at Position",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column"],
      "optionalProperties": ["Text", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Text"],
      "isContainer": false,
      "docPath": "activities/GetFieldAtPosition.md"
    },
    {
      "xamlElement": "TerminalGetColorAtPosition",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalGetColorAtPosition",
      "displayName": "Get Color at Position",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column"],
      "optionalProperties": ["TerminalColor", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["TerminalColor"],
      "isContainer": false,
      "docPath": "activities/GetColorAtPosition.md",
      "notes": "Color support depends on the provider. TandemHLL always returns LightGreen."
    },
    {
      "xamlElement": "TerminalSetFieldAtPosition",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalSetFieldAtPosition",
      "displayName": "Set Field at Position",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column", "Text"],
      "optionalProperties": ["BackwardsCompatible", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/SetFieldAtPosition.md",
      "notes": "Set BackwardsCompatible=false for new workflows to get cursor-stays-at-end behavior."
    },
    {
      "xamlElement": "TerminalWaitTextAtPosition",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalWaitTextAtPosition",
      "displayName": "Wait Text at Position",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Row", "Column", "Text"],
      "optionalProperties": ["MatchCase", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": [],
      "isContainer": false,
      "docPath": "activities/WaitTextAtPosition.md",
      "defaults": { "TimeoutMS": 30000 }
    },
    {
      "xamlElement": "TerminalFindTextInScreen",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalFindTextInScreen",
      "displayName": "Find Text",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Text"],
      "optionalProperties": ["StartRow", "StartColumn", "IgnoreCase", "Row", "Column", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Row", "Column"],
      "isContainer": false,
      "docPath": "activities/FindText.md",
      "notes": "Throws InvalidCoordinates if not found."
    },
    {
      "xamlElement": "TerminalMoveCursorToText",
      "className": "UiPath.Terminal.Advanced.Activities.TerminalMoveCursorToText",
      "displayName": "Move Cursor to Text",
      "category": "App Integration.Terminals.Advanced",
      "requiredScope": "TerminalSession",
      "requiredProperties": ["Text"],
      "optionalProperties": ["StartRow", "StartColumn", "IgnoreCase", "Row", "Column", "TimeoutMS", "DelayMS", "WaitType"],
      "outputProperties": ["Row", "Column"],
      "isContainer": false,
      "docPath": "activities/MoveCursorToText.md",
      "notes": "Throws InvalidCoordinates if not found. Equivalent to FindText + MoveCursor."
    }
  ],
  "commonOptions": {
    "docPath": "activities/TerminalSession/_common-options.md",
    "appliesTo": "all entries with requiredScope == 'TerminalSession'",
    "properties": {
      "TimeoutMS": { "type": "InArgument<int>", "typicalDefault": 5000, "waitActivityDefault": 30000 },
      "DelayMS":   { "type": "InArgument<int>", "typicalDefault": 300,  "waitScreenReadyDefault": 0 },
      "WaitType":  { "type": "WaitMode property", "default": "READY", "enum": ["NONE", "READY", "COMPLETE"] }
    }
  }
}
